rfellows commented on code in PR #8075:
URL: https://github.com/apache/nifi/pull/8075#discussion_r1409527869
##
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-frontend/src/main/nifi/src/app/pages/canvas/ui/process-group/edit-process-group/edit-process-group.component.ts:
##
@@ -0,0 +1,227 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
+import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
+import { FormBuilder, FormControl, FormGroup, FormsModule,
ReactiveFormsModule, Validators } from '@angular/forms';
+import { MatInputModule } from '@angular/material/input';
+import { MatCheckboxModule } from '@angular/material/checkbox';
+import { MatButtonModule } from '@angular/material/button';
+import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
+import { MatTabsModule } from '@angular/material/tabs';
+import { MatOptionModule } from '@angular/material/core';
+import { MatSelectModule } from '@angular/material/select';
+import { Observable } from 'rxjs';
+import { SelectOption, TextTipInput } from '../../../../../state/shared';
+import { Client } from '../../../../../service/client.service';
+import { EditComponentDialogRequest } from '../../../state/flow';
+import { PropertyTable } from
'../../../../../ui/common/property-table/property-table.component';
+import { NifiSpinnerDirective } from
'../../../../../ui/common/spinner/nifi-spinner.directive';
+import { NifiTooltipDirective } from
'../../../../../ui/common/tooltips/nifi-tooltip.directive';
+import { TextTip } from
'../../../../../ui/common/tooltips/text-tip/text-tip.component';
+import { ParameterContextEntity } from
'../../../../parameter-contexts/state/parameter-context-listing';
+import { ControllerServiceTable } from
'../../../../../ui/common/controller-service/controller-service-table/controller-service-table.component';
+
+@Component({
+selector: 'edit-process-group',
+standalone: true,
+templateUrl: './edit-process-group.component.html',
+imports: [
+ReactiveFormsModule,
+MatDialogModule,
+MatInputModule,
+MatCheckboxModule,
+MatButtonModule,
+NgIf,
+MatTabsModule,
+MatOptionModule,
+MatSelectModule,
+NgForOf,
+AsyncPipe,
+PropertyTable,
+NifiSpinnerDirective,
+NifiTooltipDirective,
+FormsModule,
+ControllerServiceTable
+],
+styleUrls: ['./edit-process-group.component.scss']
+})
+export class EditProcessGroup {
+@Input() set parameterContexts(parameterContexts:
ParameterContextEntity[]) {
+parameterContexts.forEach((parameterContext) => {
+if (parameterContext.permissions.canRead) {
+this.parameterContextsOptions.push({
+text: parameterContext.component.name,
+value: parameterContext.id,
+description: parameterContext.component.description
+});
+}
+});
+
+if (this.request.entity.component.parameterContext) {
+this.editProcessGroupForm.addControl(
+'parameterContext',
+new
FormControl(this.request.entity.component.parameterContext.id)
+);
+} else {
+this.editProcessGroupForm.addControl('parameterContext', new
FormControl(null));
+}
+}
+@Input() saving$!: Observable;
+@Output() editProcessGroup: EventEmitter = new EventEmitter();
+
+protected readonly TextTip = TextTip;
+
+editProcessGroupForm: FormGroup;
+parameterContextsOptions: SelectOption[] = [];
+
+executionEngineOptions: SelectOption[] = [
+{
+text: 'Inherited',
+value: 'INHERITED',
+description: 'Use whichever Execution Engine the parent Process
Group is configured to use.'
+},
+{
+text: 'Standard',
+value: 'STANDARD',
+description: 'Use the Standard NiFi Execution Engine. See the User
Guide for additional details.'
+},
+{
+text: 'Stateless',
+