This is an automated email from the ASF dual-hosted git repository.
mcgilman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new cd7559cdc8 [NIFI-13469] add attributes to jolt ui (#9028)
cd7559cdc8 is described below
commit cd7559cdc89d89c9046676bd588324d23ea807e8
Author: Scott Aslan <[email protected]>
AuthorDate: Wed Jul 10 14:45:06 2024 -0500
[NIFI-13469] add attributes to jolt ui (#9028)
* [NIFI-13469] add attributes to jolt ui
* fix unit tests
* expansion panel styles and adding comments and organizing global styles
* Update
nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.ts
Co-authored-by: Matt Gilman <[email protected]>
* Update
nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.ts
Co-authored-by: Matt Gilman <[email protected]>
---------
Co-authored-by: Matt Gilman <[email protected]>
This closes #9028
---
.../apps/nifi-jolt-transform-ui/jest.config.ts | 2 +-
.../_jolt-transform-json-ui.component-theme.scss | 2 +-
.../feature/jolt-transform-json-ui.component.html | 20 ++-
.../feature/jolt-transform-json-ui.component.ts | 44 ++++--
.../feature/jolt-transform-json-ui.module.ts | 5 +-
.../add-tenant-to-policy-dialog.component.ts | 2 +-
.../override-policy-dialog.component.ts | 2 +-
.../cluster-node-detail-dialog.component.ts | 2 +-
.../action-details/action-details.component.ts | 3 +-
.../purge-history/purge-history.component.ts | 3 +-
.../change-color-dialog.component.ts | 3 +-
.../create-connection.component.ts | 3 +-
.../change-version-dialog/change-version-dialog.ts | 3 +-
.../import-from-registry.component.ts | 3 +-
.../local-changes-dialog/local-changes-dialog.ts | 2 +-
.../save-version-dialog.component.ts | 3 +-
.../items/label/edit-label/edit-label.component.ts | 3 +-
.../port/create-port/create-port.component.ts | 3 +-
.../items/port/edit-port/edit-port.component.ts | 4 +-
.../create-process-group.component.ts | 2 +-
.../create-remote-process-group.component.ts | 2 +-
.../edit-remote-process-group.component.ts | 2 +-
.../edit-remote-port/edit-remote-port.component.ts | 2 +-
.../provenance-search-dialog.component.ts | 2 +-
.../create-flow-analysis-rule.component.ts | 2 +-
.../create-parameter-provider.component.ts | 2 +-
...etch-parameter-provider-parameters.component.ts | 2 +-
.../create-registry-client.component.ts | 2 +-
.../create-reporting-task.component.ts | 2 +-
.../cluster-summary-dialog.component.ts | 2 +-
.../user-access-policies.component.ts | 2 +-
.../property-verification.effects.ts | 3 +-
.../apps/nifi/src/app/state/shared/index.ts | 5 -
.../common/about-dialog/about-dialog.component.ts | 3 +-
.../change-component-version-dialog.ts | 3 +-
.../component-state/component-state.component.ts | 3 +-
.../create-controller-service.component.ts | 2 +-
.../disable-controller-service.component.ts | 3 +-
.../enable-controller-service.component.ts | 4 +-
.../edit-parameter-dialog.component.ts | 3 +-
.../edit-tenant/edit-tenant-dialog.component.ts | 3 +-
.../extension-creation.component.ts | 3 +-
.../new-property-dialog.component.ts | 2 +-
.../app/ui/common/ok-dialog/ok-dialog.component.ts | 2 +-
.../editors/nf-editor/nf-editor.component.ts | 3 +-
.../referenced-attributes-dialog.component.ts | 5 +-
.../status-history/status-history.component.ts | 4 +-
.../tabbed-dialog/tabbed-dialog.component.ts | 3 +-
.../yes-no-dialog/yes-no-dialog.component.ts | 2 +-
.../src/main/frontend/apps/nifi/src/styles.scss | 2 +-
.../src/main/frontend/libs/shared/jest.config.ts | 24 +--
.../shared/{src/test-setup.ts => setup-jest.ts} | 11 +-
.../libs/shared/src/assets/styles/_app.scss | 171 +++++++++++++++------
.../close-on-escape-dialog.component.ts | 0
.../frontend/libs/shared/src/components/index.ts | 5 +
.../text-editor/_text-editor.component-theme.scss | 0
.../editors/text-editor/text-editor.component.html | 0
.../editors/text-editor/text-editor.component.scss | 0
.../text-editor/text-editor.component.spec.ts | 0
.../editors/text-editor/text-editor.component.ts | 4 +-
.../components}/map-table/map-table.component.html | 0
.../components}/map-table/map-table.component.scss | 0
.../map-table/map-table.component.spec.ts | 2 +-
.../components}/map-table/map-table.component.ts | 13 +-
.../new-map-table-entry-dialog.component.html | 0
.../new-map-table-entry-dialog.component.scss | 0
.../new-map-table-entry-dialog.component.spec.ts | 3 +-
.../new-map-table-entry-dialog.component.ts | 6 +-
.../components}/resizable/resizable.component.html | 0
.../components}/resizable/resizable.component.scss | 0
.../resizable/resizable.component.spec.ts | 0
.../components}/resizable/resizable.component.ts | 0
.../src/main/frontend/libs/shared/src/index.ts | 19 +++
.../frontend/libs/shared/src/services/index.ts | 1 +
.../src/services}/map-table-helper.service.ts | 7 +-
.../main/frontend/libs/shared/tsconfig.spec.json | 6 +-
76 files changed, 282 insertions(+), 184 deletions(-)
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/jest.config.ts
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/jest.config.ts
index 12cf628919..5c74e1cb6a 100644
--- a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/jest.config.ts
+++ b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/jest.config.ts
@@ -18,7 +18,7 @@
import type { Config } from 'jest';
const config: Config = {
- displayName: 'NiFi',
+ displayName: 'NiFi Jolt Transform UI',
clearMocks: true,
coverageDirectory: '../../coverage/apps/nifi',
extensionsToTreatAsEsm: ['.ts'],
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/_jolt-transform-json-ui.component-theme.scss
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/_jolt-transform-json-ui.component-theme.scss
index 0485ed7a23..60668a952f 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/_jolt-transform-json-ui.component-theme.scss
+++
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/_jolt-transform-json-ui.component-theme.scss
@@ -46,7 +46,7 @@
}
}
- .listing-table {
+ .attributes-editor {
height: calc(100vh - 362px);
min-height: 168px;
}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.html
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.html
index 6ae6832c3c..b41da2d267 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.html
+++
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.html
@@ -254,14 +254,28 @@
class="fa
fa-info-circle primary-color ml-2"
nifiTooltip
[tooltipComponentType]="TextTip"
-
tooltipInputData="Enter Attributes And Values To Reference Within Your
Specification For Testing Input. These Attribute Values Will Only Be Available
For Testing And Not When Executing The Actual Flow:"></i>
+
tooltipInputData="Enter test attributes to be transformed according to the
specification along with the flow file input. NOTE: These attributes are not
saved and will only be available during testing and not when executing the
actual flow."></i>
</div>
</div>
</mat-panel-title>
</mat-expansion-panel-header>
- <div class="listing-table">
- <!--
TODO: Attributes-->
+ <div class="attributes-editor">
+ <map-table
+
formControlName="expressionLanguageAttributes"
+ [createNew]="createNew"
+ [reportChangesOnly]="false">
+ <div class="flex flex-row
justify-end items-center">
+ <button
+ mat-icon-button
+ [disabled]="isEmpty()"
+ color="primary"
+ type="button"
+
(click)="clearAttributesClicked()">
+ <i class="fa
fa-eraser"></i>
+ </button>
+ </div>
+ </map-table>
</div>
</mat-expansion-panel>
</mat-accordion>
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.ts
index d43f3aeee1..9a224c684b 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.component.ts
@@ -19,7 +19,7 @@ import { js_beautify } from 'js-beautify';
import { Component, OnDestroy } from '@angular/core';
import { Store } from '@ngrx/store';
import { NiFiJoltTransformJsonUiState } from '../../../state';
-import { TextTip, isDefinedAndNotNull } from '@nifi/shared';
+import { TextTip, isDefinedAndNotNull, MapTableHelperService, MapTableEntry }
from '@nifi/shared';
import {
selectClientIdFromRoute,
selectDisconnectedNodeAcknowledgedFromRoute,
@@ -29,7 +29,7 @@ import {
selectProcessorIdFromRoute,
selectRevisionFromRoute
} from '../state/jolt-transform-json-ui/jolt-transform-json-ui.selectors';
-import { tap } from 'rxjs';
+import { Observable, tap } from 'rxjs';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import {
loadProcessorDetails,
@@ -65,10 +65,13 @@ export class JoltTransformJsonUi implements OnDestroy {
joltState = this.store.selectSignal(selectJoltTransformJsonUiState);
processorDetails$ = this.store.select(selectProcessorDetails);
editable: boolean = false;
+ createNew: (existingEntries: string[]) => Observable<MapTableEntry> =
+ this.mapTableHelperService.createNewEntry('Attribute');
constructor(
private formBuilder: FormBuilder,
- private store: Store<NiFiJoltTransformJsonUiState>
+ private store: Store<NiFiJoltTransformJsonUiState>,
+ private mapTableHelperService: MapTableHelperService
) {
// Select the processor id from the query params and GET processor
details
this.store
@@ -105,7 +108,7 @@ export class JoltTransformJsonUi implements OnDestroy {
specification: processorDetails.properties['Jolt
Specification'],
transform: processorDetails.properties['Jolt Transform'],
customClass: processorDetails.properties['Custom
Transformation Class Name'],
- expressionLanguageAttributes: {},
+ expressionLanguageAttributes: [],
modules: processorDetails.properties['Custom Module
Directory']
});
@@ -124,7 +127,7 @@ export class JoltTransformJsonUi implements OnDestroy {
specification: new FormControl('', Validators.required),
transform: new FormControl('', Validators.required),
customClass: new FormControl(''),
- expressionLanguageAttributes: new FormControl({}), // TODO:
Attributes
+ expressionLanguageAttributes: new FormControl([]),
modules: new FormControl('')
});
@@ -236,7 +239,9 @@ export class JoltTransformJsonUi implements OnDestroy {
validateJoltSpec() {
const payload: ValidateJoltSpecRequest = {
customClass:
this.editJoltTransformJSONProcessorForm.get('customClass')?.value,
- expressionLanguageAttributes: {}, // TODO: Attributes
+ expressionLanguageAttributes: this.mapExpressionLanguageAttributes(
+
this.editJoltTransformJSONProcessorForm.get('expressionLanguageAttributes')?.value
+ ),
input: this.editJoltTransformJSONProcessorForm.get('input')?.value,
modules:
this.editJoltTransformJSONProcessorForm.get('modules')?.value,
specification:
this.editJoltTransformJSONProcessorForm.get('specification')?.value,
@@ -253,7 +258,9 @@ export class JoltTransformJsonUi implements OnDestroy {
transformJoltSpec() {
const payload: ValidateJoltSpecRequest = {
customClass:
this.editJoltTransformJSONProcessorForm.get('customClass')?.value,
- expressionLanguageAttributes: {}, // TODO: Attributes
+ expressionLanguageAttributes: this.mapExpressionLanguageAttributes(
+
this.editJoltTransformJSONProcessorForm.get('expressionLanguageAttributes')?.value
+ ),
input: this.editJoltTransformJSONProcessorForm.get('input')?.value,
modules:
this.editJoltTransformJSONProcessorForm.get('modules')?.value,
specification:
this.editJoltTransformJSONProcessorForm.get('specification')?.value,
@@ -275,7 +282,8 @@ export class JoltTransformJsonUi implements OnDestroy {
);
this.editJoltTransformJSONProcessorForm.setValue({
customClass:
this.editJoltTransformJSONProcessorForm.get('customClass')?.value,
- expressionLanguageAttributes: {},
+ expressionLanguageAttributes:
+
this.editJoltTransformJSONProcessorForm.get('expressionLanguageAttributes')?.value,
input: jsonValue,
modules:
this.editJoltTransformJSONProcessorForm.get('modules')?.value,
specification:
this.editJoltTransformJSONProcessorForm.get('specification')?.value,
@@ -292,7 +300,8 @@ export class JoltTransformJsonUi implements OnDestroy {
);
this.editJoltTransformJSONProcessorForm.setValue({
customClass:
this.editJoltTransformJSONProcessorForm.get('customClass')?.value,
- expressionLanguageAttributes: {},
+ expressionLanguageAttributes:
+
this.editJoltTransformJSONProcessorForm.get('expressionLanguageAttributes')?.value,
input:
this.editJoltTransformJSONProcessorForm.get('input')?.value,
modules:
this.editJoltTransformJSONProcessorForm.get('modules')?.value,
specification: jsonValue,
@@ -300,4 +309,21 @@ export class JoltTransformJsonUi implements OnDestroy {
});
}
}
+
+ isEmpty() {
+ const attributes =
this.editJoltTransformJSONProcessorForm.get('expressionLanguageAttributes')?.value
|| [];
+ return attributes.length === 0;
+ }
+
+ clearAttributesClicked() {
+
this.editJoltTransformJSONProcessorForm.get('expressionLanguageAttributes')?.setValue([]);
+ }
+
+ private mapExpressionLanguageAttributes(attributeArray: MapTableEntry[]) {
+ const result: { [key: string]: string | null } = {};
+ if (attributeArray) {
+ attributeArray.forEach((attriubte) => (result[attriubte.name] =
attriubte.value));
+ }
+ return result;
+ }
}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.module.ts
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.module.ts
index 6d0c1d6c72..425be758ab 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.module.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi-jolt-transform-ui/src/app/pages/jolt-transform-json-ui/feature/jolt-transform-json-ui.module.ts
@@ -33,7 +33,7 @@ import { CdkDrag } from '@angular/cdk/drag-drop';
import { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';
import { MatOption } from '@angular/material/autocomplete';
import { MatSelect } from '@angular/material/select';
-import { NifiTooltipDirective, ComponentContext } from '@nifi/shared';
+import { NifiTooltipDirective, ComponentContext, MapTable } from
'@nifi/shared';
import { MatInput } from '@angular/material/input';
import { MatExpansionModule } from '@angular/material/expansion';
@@ -61,7 +61,8 @@ import { MatExpansionModule } from
'@angular/material/expansion';
MatHint,
ComponentContext,
MatExpansionModule,
- FormsModule
+ FormsModule,
+ MapTable
]
})
export class JoltTransformJsonUiModule {}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/add-tenant-to-policy-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/add-tenant-to-policy-dialog.component.ts
index 79117d00cc..b8f8e817f6 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/add-tenant-to-policy-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/add-tenant-to-policy-dialog/add-tenant-to-policy-dialog.component.ts
@@ -31,7 +31,7 @@ import { TenantEntity, UserEntity, UserGroupEntity } from
'../../../../../state/
import { AddTenantsToPolicyRequest, AddTenantToPolicyDialogRequest } from
'../../../state/access-policy';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { NifiSpinnerDirective } from
'../../../../../ui/common/spinner/nifi-spinner.directive';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'add-tenant-to-policy-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/override-policy-dialog/override-policy-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/override-policy-dialog/override-policy-dialog.component.ts
index bf824e3827..a770118f2a 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/override-policy-dialog/override-policy-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/access-policies/ui/common/override-policy-dialog/override-policy-dialog.component.ts
@@ -20,7 +20,7 @@ import { MatDialogModule } from '@angular/material/dialog';
import { MatButtonModule } from '@angular/material/button';
import { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule
} from '@angular/forms';
import { MatRadioModule } from '@angular/material/radio';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'override-policy-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/cluster/ui/cluster-node-listing/cluster-node-detail-dialog/cluster-node-detail-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/cluster/ui/cluster-node-listing/cluster-node-detail-dialog/cluster-node-detail-dialog.component.ts
index e6d270456d..a85de54956 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/cluster/ui/cluster-node-listing/cluster-node-detail-dialog/cluster-node-detail-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/cluster/ui/cluster-node-listing/cluster-node-detail-dialog/cluster-node-detail-dialog.component.ts
@@ -19,7 +19,7 @@ import { Component, Inject } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { MatButton } from '@angular/material/button';
import { ClusterNode } from '../../../state/cluster-listing';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'cluster-node-detail-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/action-details/action-details.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/action-details/action-details.component.ts
index d49fa9bde0..41dc702597 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/action-details/action-details.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/action-details/action-details.component.ts
@@ -28,9 +28,8 @@ import {
PurgeActionDetails,
RemoteProcessGroupDetails
} from '../../../state/flow-configuration-history-listing';
-import { PipesModule } from '@nifi/shared';
+import { PipesModule, CloseOnEscapeDialog } from '@nifi/shared';
import { MatButtonModule } from '@angular/material/button';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'action-details',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/purge-history/purge-history.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/purge-history/purge-history.component.ts
index 13aec63df4..597370f8aa 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/purge-history/purge-history.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-configuration-history/ui/flow-configuration-history-listing/purge-history/purge-history.component.ts
@@ -24,12 +24,11 @@ import {
FlowConfigurationHistoryListingState,
PurgeHistoryRequest
} from '../../../state/flow-configuration-history-listing';
-import { NiFiCommon } from '@nifi/shared';
+import { NiFiCommon, CloseOnEscapeDialog } from '@nifi/shared';
import { MatInputModule } from '@angular/material/input';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { selectAbout } from '../../../../../state/about/about.selectors';
import { Store } from '@ngrx/store';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'purge-history',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/change-color-dialog/change-color-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/change-color-dialog/change-color-dialog.component.ts
index 8e5e814f9b..e75e418200 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/change-color-dialog/change-color-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/change-color-dialog/change-color-dialog.component.ts
@@ -31,9 +31,8 @@ import { ChangeColorRequest } from '../../../state/flow';
import { MatFormField, MatLabel } from '@angular/material/form-field';
import { MatInput } from '@angular/material/input';
import { ComponentType } from 'libs/shared/src';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
import { CanvasUtils } from '../../../service/canvas-utils.service';
-import { NiFiCommon, ComponentTypeNamePipe, ComponentContext } from
'@nifi/shared';
+import { NiFiCommon, ComponentTypeNamePipe, ComponentContext,
CloseOnEscapeDialog } from '@nifi/shared';
import { MatCheckbox } from '@angular/material/checkbox';
@Component({
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/create-connection/create-connection.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/create-connection/create-connection.component.ts
index 5c6399c9b1..6539132103 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/create-connection/create-connection.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/connection/create-connection/create-connection.component.ts
@@ -35,7 +35,7 @@ import { MatOptionModule } from '@angular/material/core';
import { MatSelectModule } from '@angular/material/select';
import { NifiSpinnerDirective } from
'../../../../../../../ui/common/spinner/nifi-spinner.directive';
import { MatTabsModule } from '@angular/material/tabs';
-import { TextTip, NifiTooltipDirective } from '@nifi/shared';
+import { TextTip, NifiTooltipDirective, CloseOnEscapeDialog } from
'@nifi/shared';
import { ComponentType } from 'libs/shared/src';
import { NiFiState } from '../../../../../../../state';
import { selectPrioritizerTypes } from
'../../../../../../../state/extension-types/extension-types.selectors';
@@ -57,7 +57,6 @@ import { BreadcrumbEntity } from
'../../../../../state/shared';
import { ClusterConnectionService } from
'../../../../../../../service/cluster-connection.service';
import { CanvasUtils } from '../../../../../service/canvas-utils.service';
import { ErrorBanner } from
'../../../../../../../ui/common/error-banner/error-banner.component';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'create-connection',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-dialog/change-version-dialog.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-dialog/change-version-dialog.ts
index 643188958e..e725edbe31 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-dialog/change-version-dialog.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/change-version-dialog/change-version-dialog.ts
@@ -26,8 +26,7 @@ import { ChangeVersionDialogRequest,
VersionControlInformation } from '../../../
import { Store } from '@ngrx/store';
import { CanvasState } from '../../../../../state';
import { selectTimeOffset } from
'../../../../../../../state/flow-configuration/flow-configuration.selectors';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
-import { NiFiCommon } from '@nifi/shared';
+import { NiFiCommon, CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'change-version-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/import-from-registry/import-from-registry.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/import-from-registry/import-from-registry.component.ts
index 829277db36..1e5cfd69b2 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/import-from-registry/import-from-registry.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/import-from-registry/import-from-registry.component.ts
@@ -44,13 +44,12 @@ import { Observable, of, take } from 'rxjs';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
import { MatSortModule, Sort } from '@angular/material/sort';
-import { NiFiCommon, TextTip, NifiTooltipDirective } from '@nifi/shared';
+import { NiFiCommon, TextTip, NifiTooltipDirective, CloseOnEscapeDialog } from
'@nifi/shared';
import { selectTimeOffset } from
'../../../../../../../state/flow-configuration/flow-configuration.selectors';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { Client } from '../../../../../../../service/client.service';
import { importFromRegistry } from '../../../../../state/flow/flow.actions';
import { ClusterConnectionService } from
'../../../../../../../service/cluster-connection.service';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
import { isDefinedAndNotNull, SelectOption } from 'libs/shared/src';
@Component({
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/local-changes-dialog/local-changes-dialog.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/local-changes-dialog/local-changes-dialog.ts
index a5c2eb0517..79c9183d39 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/local-changes-dialog/local-changes-dialog.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/local-changes-dialog/local-changes-dialog.ts
@@ -29,7 +29,7 @@ import { MatInput } from '@angular/material/input';
import { MatOption } from '@angular/material/autocomplete';
import { ReactiveFormsModule } from '@angular/forms';
import { LocalChangesTable } from './local-changes-table/local-changes-table';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'local-changes-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/save-version-dialog/save-version-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/save-version-dialog/save-version-dialog.component.ts
index 06df725503..5d89292e19 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/save-version-dialog/save-version-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/flow/save-version-dialog/save-version-dialog.component.ts
@@ -33,10 +33,9 @@ import { Observable, of, take } from 'rxjs';
import { SelectOption } from 'libs/shared/src';
import { BranchEntity, BucketEntity, RegistryClientEntity } from
'../../../../../../../state/shared';
import { SaveVersionDialogRequest, SaveVersionRequest,
VersionControlInformation } from '../../../../../state/flow';
-import { TextTip, NiFiCommon, NifiTooltipDirective } from '@nifi/shared';
+import { TextTip, NiFiCommon, NifiTooltipDirective, CloseOnEscapeDialog } from
'@nifi/shared';
import { NgForOf, NgIf } from '@angular/common';
import { MatInput } from '@angular/material/input';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'save-version-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/label/edit-label/edit-label.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/label/edit-label/edit-label.component.ts
index eb60d29a3c..77d6bfce9b 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/label/edit-label/edit-label.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/label/edit-label/edit-label.component.ts
@@ -34,8 +34,7 @@ import { NifiSpinnerDirective } from
'../../../../../../../ui/common/spinner/nif
import { ClusterConnectionService } from
'../../../../../../../service/cluster-connection.service';
import { MatOption } from '@angular/material/autocomplete';
import { MatSelect } from '@angular/material/select';
-import { NifiTooltipDirective } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { NifiTooltipDirective, CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'edit-label',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/create-port/create-port.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/create-port/create-port.component.ts
index 5f4393f656..3f42a5e5a4 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/create-port/create-port.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/create-port/create-port.component.ts
@@ -32,8 +32,7 @@ import { ErrorBanner } from
'../../../../../../../ui/common/error-banner/error-b
import { AsyncPipe } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
import { NifiSpinnerDirective } from
'../../../../../../../ui/common/spinner/nifi-spinner.directive';
-import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { NifiTooltipDirective, TextTip, CloseOnEscapeDialog } from
'@nifi/shared';
@Component({
selector: 'create-port',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/edit-port/edit-port.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/edit-port/edit-port.component.ts
index 28f0c73f8c..4c416d19e0 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/edit-port/edit-port.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/port/edit-port/edit-port.component.ts
@@ -33,9 +33,7 @@ import { selectSaving } from
'../../../../../state/flow/flow.selectors';
import { NifiSpinnerDirective } from
'../../../../../../../ui/common/spinner/nifi-spinner.directive';
import { ClusterConnectionService } from
'../../../../../../../service/cluster-connection.service';
import { CanvasUtils } from '../../../../../service/canvas-utils.service';
-import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
-
+import { NifiTooltipDirective, TextTip, CloseOnEscapeDialog } from
'@nifi/shared';
@Component({
selector: 'edit-port',
standalone: true,
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/create-process-group.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/create-process-group.component.ts
index f0cb2fcd67..4e56cc2a50 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/create-process-group.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/process-group/create-process-group/create-process-group.component.ts
@@ -34,7 +34,7 @@ import { NifiSpinnerDirective } from
'../../../../../../../ui/common/spinner/nif
import { FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators
} from '@angular/forms';
import { MatIconModule } from '@angular/material/icon';
import { NiFiCommon, TextTip, NifiTooltipDirective } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'create-process-group',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/create-remote-process-group/create-remote-process-group.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/create-remote-process-group/create-remote-process-group.component.ts
index d2b71c5708..2feba7d47c 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/create-remote-process-group/create-remote-process-group.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/create-remote-process-group/create-remote-process-group.component.ts
@@ -33,7 +33,7 @@ import { FormBuilder, FormControl, FormGroup,
ReactiveFormsModule, Validators }
import { MatIconModule } from '@angular/material/icon';
import { CreateComponentRequest } from '../../../../../state/flow';
import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
standalone: true,
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/edit-remote-process-group/edit-remote-process-group.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/edit-remote-process-group/edit-remote-process-group.component.ts
index ffd087e6a5..a17a7aa2a3 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/edit-remote-process-group/edit-remote-process-group.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/canvas/items/remote-process-group/edit-remote-process-group/edit-remote-process-group.component.ts
@@ -31,7 +31,7 @@ import { EditComponentDialogRequest } from
'../../../../../state/flow';
import { ErrorBanner } from
'../../../../../../../ui/common/error-banner/error-banner.component';
import { CanvasUtils } from '../../../../../service/canvas-utils.service';
import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
standalone: true,
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/manage-remote-ports/edit-remote-port/edit-remote-port.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/manage-remote-ports/edit-remote-port/edit-remote-port.component.ts
index 0447bcb4ec..2d86230031 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/manage-remote-ports/edit-remote-port/edit-remote-port.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/flow-designer/ui/manage-remote-ports/edit-remote-port/edit-remote-port.component.ts
@@ -33,7 +33,7 @@ import { PortSummary } from
'../../../state/manage-remote-ports';
import { configureRemotePort } from
'../../../state/manage-remote-ports/manage-remote-ports.actions';
import { ClusterConnectionService } from
'../../../../../service/cluster-connection.service';
import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
import { CanvasState } from '../../../state';
@Component({
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-search-dialog/provenance-search-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-search-dialog/provenance-search-dialog.component.ts
index b2271b7767..6d614f1604 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-search-dialog/provenance-search-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-search-dialog/provenance-search-dialog.component.ts
@@ -32,7 +32,7 @@ import { NiFiCommon, TextTip, NifiTooltipDirective } from
'@nifi/shared';
import { SelectOption } from 'libs/shared/src';
import { MatOption } from '@angular/material/autocomplete';
import { MatSelect } from '@angular/material/select';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'provenance-search-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/flow-analysis-rules/create-flow-analysis-rule/create-flow-analysis-rule.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/flow-analysis-rules/create-flow-analysis-rule/create-flow-analysis-rule.component.ts
index 5c27efdf77..c5ead075cb 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/flow-analysis-rules/create-flow-analysis-rule/create-flow-analysis-rule.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/flow-analysis-rules/create-flow-analysis-rule/create-flow-analysis-rule.component.ts
@@ -25,7 +25,7 @@ import { Client } from
'../../../../../service/client.service';
import { DocumentedType } from '../../../../../state/shared';
import { selectSaving } from
'../../../state/flow-analysis-rules/flow-analysis-rules.selectors';
import { AsyncPipe } from '@angular/common';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'create-flow-analysis-rule',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/create-parameter-provider/create-parameter-provider.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/create-parameter-provider/create-parameter-provider.component.ts
index 5dbe9d56ae..ebfbcd9847 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/create-parameter-provider/create-parameter-provider.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/create-parameter-provider/create-parameter-provider.component.ts
@@ -22,7 +22,7 @@ import { DocumentedType } from '../../../../../state/shared';
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
import { CreateParameterProviderDialogRequest } from
'../../../state/parameter-providers';
import { ExtensionCreation } from
'../../../../../ui/common/extension-creation/extension-creation.component';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'create-parameter-provider',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
index 6c1028440f..9e25f35b48 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/parameter-providers/fetch-parameter-provider-parameters/fetch-parameter-provider-parameters.component.ts
@@ -46,7 +46,7 @@ import * as ParameterProviderActions from
'../../../state/parameter-providers/pa
import { Store } from '@ngrx/store';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ClusterConnectionService } from
'../../../../../service/cluster-connection.service';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'fetch-parameter-provider-parameters',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/registry-clients/create-registry-client/create-registry-client.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/registry-clients/create-registry-client/create-registry-client.component.ts
index 3e69d517be..08e91d2a7e 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/registry-clients/create-registry-client/create-registry-client.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/registry-clients/create-registry-client/create-registry-client.component.ts
@@ -30,7 +30,7 @@ import { Client } from
'../../../../../service/client.service';
import { MatSelectModule } from '@angular/material/select';
import { NiFiCommon, TextTip, NifiTooltipDirective } from '@nifi/shared';
import { ClusterConnectionService } from
'../../../../../service/cluster-connection.service';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'create-registry-client',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/reporting-tasks/create-reporting-task/create-reporting-task.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/reporting-tasks/create-reporting-task/create-reporting-task.component.ts
index b08bccdb2f..4ab6f22f5a 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/reporting-tasks/create-reporting-task/create-reporting-task.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/settings/ui/reporting-tasks/create-reporting-task/create-reporting-task.component.ts
@@ -25,7 +25,7 @@ import { Client } from
'../../../../../service/client.service';
import { DocumentedType } from '../../../../../state/shared';
import { selectSaving } from
'../../../state/reporting-tasks/reporting-tasks.selectors';
import { AsyncPipe } from '@angular/common';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'create-reporting-task',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/summary/ui/common/cluster-summary-dialog/cluster-summary-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/summary/ui/common/cluster-summary-dialog/cluster-summary-dialog.component.ts
index f109c5b909..5289dba0be 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/summary/ui/common/cluster-summary-dialog/cluster-summary-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/summary/ui/common/cluster-summary-dialog/cluster-summary-dialog.component.ts
@@ -47,7 +47,7 @@ import { PortClusterTable } from
'./port-cluster-table/port-cluster-table.compon
import { RemoteProcessGroupClusterTable } from
'./remote-process-group-cluster-table/remote-process-group-cluster-table.component';
import { ConnectionClusterTable } from
'./connection-cluster-table/connection-cluster-table.component';
import { ProcessGroupClusterTable } from
'./process-group-cluster-table/process-group-cluster-table.component';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
interface Helper {
getName: () => string;
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/users/ui/user-listing/user-access-policies/user-access-policies.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/users/ui/user-listing/user-access-policies/user-access-policies.component.ts
index c57b801fdb..e8777487d4 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/users/ui/user-listing/user-access-policies/user-access-policies.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/users/ui/user-listing/user-access-policies/user-access-policies.component.ts
@@ -26,7 +26,7 @@ import { NiFiCommon } from '@nifi/shared';
import { RouterLink } from '@angular/router';
import { UserAccessPoliciesDialogRequest } from '../../../state/user-listing';
import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
-import { CloseOnEscapeDialog } from
'../../../../../ui/common/close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
import { ComponentType, SelectOption } from 'libs/shared/src';
@Component({
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/property-verification/property-verification.effects.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/property-verification/property-verification.effects.ts
index 1dca6cc971..8e083dc9e3 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/property-verification/property-verification.effects.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/property-verification/property-verification.effects.ts
@@ -27,7 +27,6 @@ import { asyncScheduler, catchError, filter, from, interval,
map, of, switchMap,
import { PropertyVerificationService } from
'../../service/property-verification.service';
import { HttpErrorResponse } from '@angular/common/http';
import { concatLatestFrom } from '@ngrx/operators';
-import { MapTableEntry } from '../shared';
import {
selectActivePropertyVerificationRequest,
selectPropertyVerificationAttributes,
@@ -37,7 +36,7 @@ import { PropertyVerificationProgress } from
'../../ui/common/property-verificat
import { isDefinedAndNotNull, MEDIUM_DIALOG, SMALL_DIALOG } from
'libs/shared/src';
import { ReferencedAttributesDialog } from
'../../ui/common/property-verification/common/referenced-attributes-dialog/referenced-attributes-dialog.component';
import { PropertyTableHelperService } from
'../../service/property-table-helper.service';
-import { MapTableHelperService } from '../../service/map-table-helper.service';
+import { MapTableHelperService, MapTableEntry } from '@nifi/shared';
@Injectable()
export class PropertyVerificationEffects {
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/shared/index.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/shared/index.ts
index c49fd1ec72..6f216f0d53 100644
--- a/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/shared/index.ts
+++ b/nifi-frontend/src/main/frontend/apps/nifi/src/app/state/shared/index.ts
@@ -671,8 +671,3 @@ export interface OpenChangeComponentVersionDialogRequest {
fetchRequest: FetchComponentVersionsRequest;
componentVersions: DocumentedType[];
}
-
-export interface MapTableEntry {
- name: string;
- value: string | null;
-}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/about-dialog/about-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/about-dialog/about-dialog.component.ts
index f2095947c9..a469739b94 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/about-dialog/about-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/about-dialog/about-dialog.component.ts
@@ -21,7 +21,7 @@ import { MatDialogModule } from '@angular/material/dialog';
import { MatTableModule } from '@angular/material/table';
import { MatSortModule } from '@angular/material/sort';
import { AsyncPipe, NgOptimizedImage } from '@angular/common';
-import { NifiTooltipDirective } from '@nifi/shared';
+import { NifiTooltipDirective, CloseOnEscapeDialog } from '@nifi/shared';
import { NifiSpinnerDirective } from '../spinner/nifi-spinner.directive';
import { Store } from '@ngrx/store';
import { ReactiveFormsModule } from '@angular/forms';
@@ -29,7 +29,6 @@ import { MatFormFieldModule } from
'@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { AboutState } from '../../../state/about';
import { selectAbout } from '../../../state/about/about.selectors';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'about',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/change-component-version-dialog/change-component-version-dialog.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/change-component-version-dialog/change-component-version-dialog.ts
index d8a69765e0..6b74153c30 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/change-component-version-dialog/change-component-version-dialog.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/change-component-version-dialog/change-component-version-dialog.ts
@@ -21,9 +21,8 @@ import { MatButton } from '@angular/material/button';
import { Bundle, DocumentedType, OpenChangeComponentVersionDialogRequest }
from '../../../state/shared';
import { MatFormField, MatLabel, MatOption, MatSelect } from
'@angular/material/select';
import { FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators
} from '@angular/forms';
-import { TextTip, NifiTooltipDirective, NiFiCommon } from '@nifi/shared';
+import { TextTip, NifiTooltipDirective, NiFiCommon, CloseOnEscapeDialog } from
'@nifi/shared';
import { ControllerServiceApi } from
'../controller-service/controller-service-api/controller-service-api.component';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'change-component-version-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/component-state/component-state.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/component-state/component-state.component.ts
index dbede3846e..dac599e631 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/component-state/component-state.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/component-state/component-state.component.ts
@@ -21,7 +21,7 @@ import { MatDialogModule } from '@angular/material/dialog';
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
import { MatSortModule, Sort } from '@angular/material/sort';
import { AsyncPipe } from '@angular/common';
-import { NifiTooltipDirective, NiFiCommon } from '@nifi/shared';
+import { NifiTooltipDirective, NiFiCommon, CloseOnEscapeDialog } from
'@nifi/shared';
import { NifiSpinnerDirective } from '../spinner/nifi-spinner.directive';
import { ComponentStateState, StateEntry, StateItem, StateMap } from
'../../../state/component-state';
import { Store } from '@ngrx/store';
@@ -40,7 +40,6 @@ import { MatInputModule } from '@angular/material/input';
import { selectClusterSummary } from
'../../../state/cluster-summary/cluster-summary.selectors';
import { ErrorBanner } from '../error-banner/error-banner.component';
import { clearBannerErrors } from '../../../state/error/error.actions';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'component-state',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/create-controller-service/create-controller-service.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/create-controller-service/create-controller-service.component.ts
index 2b8b2c5261..179d9dbc4f 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/create-controller-service/create-controller-service.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/create-controller-service/create-controller-service.component.ts
@@ -21,7 +21,7 @@ import { CreateControllerServiceDialogRequest, DocumentedType
} from '../../../.
import { ExtensionCreation } from
'../../extension-creation/extension-creation.component';
import { Observable } from 'rxjs';
import { AsyncPipe } from '@angular/common';
-import { CloseOnEscapeDialog } from
'../../close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'create-controller-service',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.ts
index dbcfa95a99..5939a32d6d 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/disable-controller-service/disable-controller-service.component.ts
@@ -31,7 +31,7 @@ import { MatSelectModule } from '@angular/material/select';
import { ControllerServiceApi } from
'../controller-service-api/controller-service-api.component';
import { ControllerServiceReferences } from
'../controller-service-references/controller-service-references.component';
import { NifiSpinnerDirective } from '../../spinner/nifi-spinner.directive';
-import { NifiTooltipDirective, TextTip } from '@nifi/shared';
+import { NifiTooltipDirective, TextTip, CloseOnEscapeDialog } from
'@nifi/shared';
import { ControllerServiceState, SetEnableRequest, SetEnableStep } from
'../../../../state/contoller-service-state';
import { Store } from '@ngrx/store';
import {
@@ -44,7 +44,6 @@ import {
selectControllerService,
selectControllerServiceSetEnableRequest
} from
'../../../../state/contoller-service-state/controller-service-state.selectors';
-import { CloseOnEscapeDialog } from
'../../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'disable-controller-service',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.ts
index e61735c4cc..010e6c8f88 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/controller-service/enable-controller-service/enable-controller-service.component.ts
@@ -32,7 +32,7 @@ import { MatSelectModule } from '@angular/material/select';
import { ControllerServiceApi } from
'../controller-service-api/controller-service-api.component';
import { ControllerServiceReferences } from
'../controller-service-references/controller-service-references.component';
import { NifiSpinnerDirective } from '../../spinner/nifi-spinner.directive';
-import { TextTip, NifiTooltipDirective } from '@nifi/shared';
+import { TextTip, NifiTooltipDirective, SelectOption, CloseOnEscapeDialog }
from '@nifi/shared';
import {
controllerServiceActionScopes,
ControllerServiceState,
@@ -50,8 +50,6 @@ import {
selectControllerService,
selectControllerServiceSetEnableRequest
} from
'../../../../state/contoller-service-state/controller-service-state.selectors';
-import { CloseOnEscapeDialog } from
'../../close-on-escape-dialog/close-on-escape-dialog.component';
-import { SelectOption } from 'libs/shared/src';
@Component({
selector: 'enable-controller-service',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-parameter-dialog/edit-parameter-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-parameter-dialog/edit-parameter-dialog.component.ts
index b6f07c60f6..0128521448 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-parameter-dialog/edit-parameter-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-parameter-dialog/edit-parameter-dialog.component.ts
@@ -37,8 +37,7 @@ import { MatCheckboxModule } from
'@angular/material/checkbox';
import { NifiSpinnerDirective } from '../spinner/nifi-spinner.directive';
import { AsyncPipe } from '@angular/common';
import { Observable } from 'rxjs';
-import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
+import { NifiTooltipDirective, TextTip, CloseOnEscapeDialog } from
'@nifi/shared';
@Component({
selector: 'edit-parameter-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-tenant/edit-tenant-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-tenant/edit-tenant-dialog.component.ts
index 7de9427bbc..05b9f602b8 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-tenant/edit-tenant-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/edit-tenant/edit-tenant-dialog.component.ts
@@ -39,9 +39,8 @@ import { AsyncPipe } from '@angular/common';
import { Observable } from 'rxjs';
import { MatListModule } from '@angular/material/list';
import { Client } from '../../../service/client.service';
-import { NiFiCommon } from '@nifi/shared';
+import { NiFiCommon, CloseOnEscapeDialog } from '@nifi/shared';
import { ErrorBanner } from '../error-banner/error-banner.component';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'edit-tenant-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
index 750c19fc34..d4549bfae5 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/extension-creation/extension-creation.component.ts
@@ -22,14 +22,13 @@ import { MatTableDataSource, MatTableModule } from
'@angular/material/table';
import { MatSortModule, Sort } from '@angular/material/sort';
import { ControllerServiceApiTipInput, DocumentedType, RestrictionsTipInput }
from '../../../state/shared';
-import { NifiTooltipDirective, NiFiCommon } from '@nifi/shared';
+import { NifiTooltipDirective, NiFiCommon, CloseOnEscapeDialog } from
'@nifi/shared';
import { RestrictionsTip } from
'../tooltips/restrictions-tip/restrictions-tip.component';
import { ControllerServiceApiTip } from
'../tooltips/controller-service-api-tip/controller-service-api-tip.component';
import { NifiSpinnerDirective } from '../spinner/nifi-spinner.directive';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { ReactiveFormsModule } from '@angular/forms';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'extension-creation',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-property-dialog/new-property-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-property-dialog/new-property-dialog.component.ts
index f06a9fa149..6e931f5a5d 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-property-dialog/new-property-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-property-dialog/new-property-dialog.component.ts
@@ -33,7 +33,7 @@ import {
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatRadioModule } from '@angular/material/radio';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'new-property-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/ok-dialog/ok-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/ok-dialog/ok-dialog.component.ts
index 1a44a09777..e3867397cf 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/ok-dialog/ok-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/ok-dialog/ok-dialog.component.ts
@@ -19,7 +19,7 @@ import { Component, EventEmitter, Inject, Output } from
'@angular/core';
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { OkDialogRequest } from '../../../state/shared';
import { MatButtonModule } from '@angular/material/button';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'ok-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-table/editors/nf-editor/nf-editor.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-table/editors/nf-editor/nf-editor.component.ts
index 47e24fae67..fe71f8cd29 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-table/editors/nf-editor/nf-editor.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-table/editors/nf-editor/nf-editor.component.ts
@@ -24,7 +24,7 @@ import { MatInputModule } from '@angular/material/input';
import { MatButtonModule } from '@angular/material/button';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { NgTemplateOutlet } from '@angular/common';
-import { NifiTooltipDirective } from '@nifi/shared';
+import { NifiTooltipDirective, Resizable } from '@nifi/shared';
import { PropertyHintTip } from
'../../../tooltips/property-hint-tip/property-hint-tip.component';
import { Parameter, PropertyHintTipInput } from '../../../../../state/shared';
import { A11yModule } from '@angular/cdk/a11y';
@@ -32,7 +32,6 @@ import { CodemirrorModule } from '@ctrl/ngx-codemirror';
import { NfEl } from './modes/nfel';
import { NfPr } from './modes/nfpr';
import { Editor } from 'codemirror';
-import { Resizable } from '../../../resizable/resizable.component';
@Component({
selector: 'nf-editor',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-verification/common/referenced-attributes-dialog/referenced-attributes-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-verification/common/referenced-attributes-dialog/referenced-attributes-dialog.component.ts
index 5ff6b9d3f8..03cdd13021 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-verification/common/referenced-attributes-dialog/referenced-attributes-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/property-verification/common/referenced-attributes-dialog/referenced-attributes-dialog.component.ts
@@ -26,12 +26,9 @@ import {
} from '@angular/material/dialog';
import { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from
'@angular/forms';
import { Observable } from 'rxjs';
-import { MapTableEntry } from '../../../../../state/shared';
import { MatButton, MatIconButton } from '@angular/material/button';
import { NifiSpinnerDirective } from '../../../spinner/nifi-spinner.directive';
-import { MapTable } from '../../../map-table/map-table.component';
-import { NifiTooltipDirective, TextTip } from '@nifi/shared';
-import { CloseOnEscapeDialog } from
'../../../close-on-escape-dialog/close-on-escape-dialog.component';
+import { NifiTooltipDirective, TextTip, MapTable, CloseOnEscapeDialog,
MapTableEntry } from '@nifi/shared';
export interface ReferencedAttributesDialogData {
attributes: MapTableEntry[];
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/status-history/status-history.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/status-history/status-history.component.ts
index 0b220f6f9a..13bdeefdb1 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/status-history/status-history.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/status-history/status-history.component.ts
@@ -42,16 +42,14 @@ import { FormBuilder, FormGroup, ReactiveFormsModule } from
'@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatSelectModule } from '@angular/material/select';
import * as d3 from 'd3';
-import { NifiTooltipDirective, NiFiCommon, TextTip } from '@nifi/shared';
+import { NifiTooltipDirective, NiFiCommon, TextTip, Resizable,
CloseOnEscapeDialog } from '@nifi/shared';
import { isDefinedAndNotNull } from 'libs/shared/src';
import { MatCheckboxChange, MatCheckboxModule } from
'@angular/material/checkbox';
-import { Resizable } from '../resizable/resizable.component';
import { Instance, NIFI_NODE_CONFIG, Stats } from './index';
import { StatusHistoryChart } from
'./status-history-chart/status-history-chart.component';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ErrorBanner } from '../error-banner/error-banner.component';
import { clearBannerErrors } from '../../../state/error/error.actions';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
@Component({
selector: 'status-history',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/tabbed-dialog/tabbed-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/tabbed-dialog/tabbed-dialog.component.ts
index e6e65abe8f..a5d6328ab2 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/tabbed-dialog/tabbed-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/tabbed-dialog/tabbed-dialog.component.ts
@@ -16,8 +16,7 @@
*/
import { Component, Inject, inject } from '@angular/core';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
-import { Storage } from '@nifi/shared';
+import { Storage, CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'tabbed-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/yes-no-dialog/yes-no-dialog.component.ts
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/yes-no-dialog/yes-no-dialog.component.ts
index 3c74806171..5a877a8c6b 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/yes-no-dialog/yes-no-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/yes-no-dialog/yes-no-dialog.component.ts
@@ -19,7 +19,7 @@ import { Component, EventEmitter, Inject, Output } from
'@angular/core';
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { YesNoDialogRequest } from '../../../state/shared';
import { MatButtonModule } from '@angular/material/button';
-import { CloseOnEscapeDialog } from
'../close-on-escape-dialog/close-on-escape-dialog.component';
+import { CloseOnEscapeDialog } from '@nifi/shared';
@Component({
selector: 'yes-no-dialog',
diff --git a/nifi-frontend/src/main/frontend/apps/nifi/src/styles.scss
b/nifi-frontend/src/main/frontend/apps/nifi/src/styles.scss
index 38f9093b8d..affe19340c 100644
--- a/nifi-frontend/src/main/frontend/apps/nifi/src/styles.scss
+++ b/nifi-frontend/src/main/frontend/apps/nifi/src/styles.scss
@@ -50,7 +50,7 @@
@use
'app/pages/summary/ui/processor-status-listing/processor-status-table/processor-status-table.component-theme'
as
processor-status-table;
@use
'app/pages/flow-designer/ui/canvas/change-color-dialog/change-color-dialog.component-theme'
as change-color-dialog;
-@use 'app/ui/common/map-table/editors/text-editor/text-editor.component-theme'
as text-editor;
+@use
'libs/shared/src/components/map-table/editors/text-editor/text-editor.component-theme'
as text-editor;
// Plus imports for other components in your app.
@use 'libs/shared/src/assets/fonts/flowfont/flowfont.css';
diff --git a/nifi-frontend/src/main/frontend/libs/shared/jest.config.ts
b/nifi-frontend/src/main/frontend/libs/shared/jest.config.ts
index 1f9a53c8f4..3f8badc586 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/jest.config.ts
+++ b/nifi-frontend/src/main/frontend/libs/shared/jest.config.ts
@@ -16,10 +16,21 @@
*/
export default {
- displayName: 'shared',
- preset: '../../jest.preset.js',
- setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
+ displayName: 'NiFi shared lib',
+ clearMocks: true,
coverageDirectory: '../../coverage/libs/shared',
+ extensionsToTreatAsEsm: ['.ts'],
+
+ // A preset that is used as a base for Jest's configuration
+ preset: '../../jest.preset.js',
+
+ // The paths to modules that run some code to configure or set up the
testing environment before each test
+ setupFilesAfterEnv: ['<rootDir>/setup-jest.ts'],
+
+ // The test environment that will be used for testing
+ testEnvironment: '@happy-dom/jest-environment',
+
+ // A map from regular expressions to paths to transformers
transform: {
'^.+\\.(ts|mjs|js|html)$': [
'jest-preset-angular',
@@ -29,10 +40,5 @@ export default {
}
]
},
- transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
- snapshotSerializers: [
- 'jest-preset-angular/build/serializers/no-ng-attributes',
- 'jest-preset-angular/build/serializers/ng-snapshot',
- 'jest-preset-angular/build/serializers/html-comment'
- ]
+ transformIgnorePatterns: []
};
diff --git a/nifi-frontend/src/main/frontend/libs/shared/src/test-setup.ts
b/nifi-frontend/src/main/frontend/libs/shared/setup-jest.ts
similarity index 77%
rename from nifi-frontend/src/main/frontend/libs/shared/src/test-setup.ts
rename to nifi-frontend/src/main/frontend/libs/shared/setup-jest.ts
index 824396687c..c29b91558a 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/src/test-setup.ts
+++ b/nifi-frontend/src/main/frontend/libs/shared/setup-jest.ts
@@ -14,12 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import 'jest-preset-angular/setup-jest';
-// @ts-expect-error
https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
-globalThis.ngJest = {
- testEnvironmentOptions: {
- errorOnUnknownElements: true,
- errorOnUnknownProperties: true
- }
+// jsdom testing environment does not provide crypto functionality... provide
a dummy implementation in its place.
+window.crypto.randomUUID = () => {
+ return '7DC4EA44-EA0F-4EAE-8438-274B52620B02';
};
-import 'jest-preset-angular/setup-jest';
diff --git
a/nifi-frontend/src/main/frontend/libs/shared/src/assets/styles/_app.scss
b/nifi-frontend/src/main/frontend/libs/shared/src/assets/styles/_app.scss
index 091144017d..6f0e4a19dd 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/src/assets/styles/_app.scss
+++ b/nifi-frontend/src/main/frontend/libs/shared/src/assets/styles/_app.scss
@@ -113,6 +113,57 @@
/* overriding 3rd party styles */
+ /* Codemirror begin */
+
+ .CodeMirror-hints {
+ z-index: 1000 !important;
+ overflow-y: scroll !important;
+ }
+
+ /* Codemirror end */
+
+ /* material typography begin */
+
+ .mat-h2,
+ .mat-typography .mat-h2,
+ .mat-typography h2 {
+ // Because angular material typography adds bottom margin
+ margin: unset;
+ }
+
+ .mat-h4,
+ .mat-typography .mat-h4,
+ .mat-typography h4 {
+ // Because angular material typography adds bottom margin
+ margin: unset;
+ }
+
+ /* material typography end */
+
+ /* material expansion panels begin (upload NARs and JOLT UI) */
+
+ .mat-expansion-panel-header.mat-expanded {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+
+ .mat-expansion-panel-header-title,
+ .mat-expansion-panel-header-description {
+ margin-right: 0 !important;
+ }
+
+ .mat-expansion-panel-body {
+ overflow-y: auto;
+ }
+
+ .mat-content.mat-content-hide-toggle {
+ margin-right: 0 !important;
+ }
+
+ /* material expansion panels end */
+
+ /* material cdk drag and drop begin (connection prioritizers and parameter
inheritence) */
+
.cdk-drag-disabled {
cursor: not-allowed !important;
}
@@ -161,20 +212,40 @@
}
}
- //This style is needed due to an incompatibility between material and
tailwind.
+ /* material cdk drag and drop end */
+
+ /* material dialog overrides begin */
+
+ .mat-mdc-dialog-actions {
+ height: 52px;
+ display: block;
+ padding: 8px;
+ }
+
+ .mdc-dialog__content {
+ font-size: 14px !important;
+ }
+
+ /* material dialog overrides end */
+
+ /* material form field overrides begin */
+
.mdc-notched-outline__notch {
border-right: none;
}
- .CodeMirror-hints {
- z-index: 1000 !important;
- overflow-y: scroll !important;
- }
+ /* material form field overrides end */
+
+ /* material tab overrides begin */
.mat-mdc-tab-header {
user-select: none;
}
+ /* material tab overrides end *
+
+ /* material button overrides begin */
+
.mat-mdc-icon-button {
--mdc-icon-button-state-layer-size: 28px;
--mdc-icon-button-icon-size: 14px;
@@ -186,17 +257,47 @@
}
}
+ /* material button overrides end */
+
+ /* material paginator overrides begin */
+
.mat-mdc-paginator {
background-color: unset !important;
}
- .mdc-dialog__content {
- font-size: 14px !important;
- }
+ /* material paginator overrides end */
+
+ /* material menu overrides begin */
.mat-mdc-menu-content .mat-mdc-menu-item {
min-height: 2.25rem;
}
+
+ .mat-mdc-menu-panel {
+ max-width: 420px;
+
+ .fa {
+ width: 14px;
+ height: 14px;
+ text-align: center;
+ }
+
+ .icon {
+ display: inline-block;
+ width: 14px;
+ text-align: center;
+ }
+ }
+
+ /* material menu overrides end */
+
+ /* material card overrides begin */
+
+ .mat-mdc-card-header-text {
+ width: 100%;
+ }
+
+ /* material card overrides end */
}
@mixin generate-material-theme($material-theme) {
@@ -233,11 +334,6 @@
$material-theme-warn-palette-lighter:
mat.get-color-from-palette($material-theme-warn-palette, lighter);
$material-theme-warn-palette-darker:
mat.get-color-from-palette($material-theme-warn-palette, darker);
- // support dark-mode browser default inputs (time, color, ...)
- input {
- color-scheme: if($is-dark, dark, light);
- }
-
// semantic classes for the material theme
.primary-contrast {
@@ -290,6 +386,11 @@
);
}
+ // support dark-mode browser default inputs (time, color, ...)
+ input {
+ color-scheme: if($is-dark, dark, light);
+ }
+
.has-errors,
.invalid,
.stopped,
@@ -312,39 +413,7 @@
)};
}
- .mat-h2,
- .mat-typography .mat-h2,
- .mat-typography h2 {
- // Because angular material typography adds bottom margin
- margin: unset;
- }
-
- .mat-h4,
- .mat-typography .mat-h4,
- .mat-typography h4 {
- // Because angular material typography adds bottom margin
- margin: unset;
- }
-
- .mat-mdc-menu-panel {
- max-width: 420px;
-
- .fa {
- width: 14px;
- height: 14px;
- text-align: center;
- }
-
- .icon {
- display: inline-block;
- width: 14px;
- text-align: center;
- }
- }
-
- .mat-mdc-card-header-text {
- width: 100%;
- }
+ /* material cdk drag and drop begin (connection prioritizers and parameter
inheritence) */
// center input text in form fields
.mdc-text-field--outlined .mat-mdc-form-field-infix {
@@ -364,6 +433,8 @@
background-color: $material-theme-primary-palette-default;
}
}
+
+ /* material cdk drag and drop end */
}
@mixin generate-supplemental-theme($supplemental-theme) {
@@ -488,6 +559,8 @@
border-color: $alternate-surface;
}
+ /* material cdk drag and drop begin (connection prioritizers and parameter
inheritence) */
+
.cdk-drop-list {
background: if(
$is-dark,
@@ -546,7 +619,13 @@
}
}
+ /* material cdk drag and drop end */
+
+ /* ngx-skeleton loader begin */
+
ngx-skeleton-loader .skeleton-loader {
background: $alternate-surface;
}
+
+ /* ngx-skeleton loader end */
}
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/close-on-escape-dialog/close-on-escape-dialog.component.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/close-on-escape-dialog/close-on-escape-dialog.component.ts
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/close-on-escape-dialog/close-on-escape-dialog.component.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/close-on-escape-dialog/close-on-escape-dialog.component.ts
diff --git
a/nifi-frontend/src/main/frontend/libs/shared/src/components/index.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/index.ts
index 2ee5e64a1d..9f61252dbc 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/src/components/index.ts
+++ b/nifi-frontend/src/main/frontend/libs/shared/src/components/index.ts
@@ -15,5 +15,10 @@
* limitations under the License.
*/
+export * from './close-on-escape-dialog/close-on-escape-dialog.component';
export * from './component-context/component-context.component';
+export * from './map-table/editors/text-editor/text-editor.component';
+export * from './map-table/map-table.component';
+export * from
'./new-map-table-entry-dialog/new-map-table-entry-dialog.component';
+export * from './resizable/resizable.component';
export * from './tooltips/text-tip/text-tip.component';
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/_text-editor.component-theme.scss
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/_text-editor.component-theme.scss
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/_text-editor.component-theme.scss
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/_text-editor.component-theme.scss
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.html
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.html
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.html
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.html
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.scss
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.scss
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.scss
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.scss
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.spec.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.spec.ts
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.spec.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.spec.ts
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.ts
similarity index 98%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.ts
index a6e4a1c8d0..4cc4b01a0c 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/editors/text-editor/text-editor.component.ts
+++
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/editors/text-editor/text-editor.component.ts
@@ -17,7 +17,6 @@
import { Component, EventEmitter, Input, Output, Renderer2, ViewContainerRef }
from '@angular/core';
import { CommonModule } from '@angular/common';
-import { MapTableItem } from '../../map-table.component';
import { AbstractControl, FormBuilder, FormControl, FormGroup,
ReactiveFormsModule } from '@angular/forms';
import { Editor } from 'codemirror';
import { CdkDrag } from '@angular/cdk/drag-drop';
@@ -25,8 +24,9 @@ import { CdkTrapFocus } from '@angular/cdk/a11y';
import { CodemirrorModule } from '@ctrl/ngx-codemirror';
import { MatButton } from '@angular/material/button';
import { MatCheckbox } from '@angular/material/checkbox';
-import { NifiTooltipDirective } from '@nifi/shared';
+import { NifiTooltipDirective } from '../../../../directives';
import { Resizable } from '../../../resizable/resizable.component';
+import { MapTableItem } from '../../../../index';
@Component({
selector: 'text-editor',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.html
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.html
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.html
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.html
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.scss
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.scss
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.scss
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.scss
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.spec.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.spec.ts
similarity index 97%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.spec.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.spec.ts
index 5129ff0d2f..f85d5c5699 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.spec.ts
+++
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.spec.ts
@@ -18,7 +18,7 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MapTable } from './map-table.component';
-describe('EditableMapTable', () => {
+describe('MapTable', () => {
let component: MapTable;
let fixture: ComponentFixture<MapTable>;
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.ts
similarity index 97%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.ts
index 0ade648c28..100b5feb87 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/map-table/map-table.component.ts
+++
b/nifi-frontend/src/main/frontend/libs/shared/src/components/map-table/map-table.component.ts
@@ -28,7 +28,6 @@ import {
} from '@angular/core';
import { CommonModule } from '@angular/common';
import { Observable, take } from 'rxjs';
-import { MapTableEntry } from '../../../state/shared';
import {
MatCell,
MatCellDef,
@@ -49,21 +48,13 @@ import {
OriginConnectionPosition,
OverlayConnectionPosition
} from '@angular/cdk/overlay';
-import { NiFiCommon, NifiTooltipDirective, TextTip } from '@nifi/shared';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { MatIconButton } from '@angular/material/button';
import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
import { TextEditor } from './editors/text-editor/text-editor.component';
-
-export interface MapTableItem {
- entry: MapTableEntry;
- id: number;
- triggerEdit: boolean;
- deleted: boolean;
- dirty: boolean;
- added: boolean;
-}
+import { NifiTooltipDirective } from '../../directives';
+import { MapTableEntry, MapTableItem, NiFiCommon, TextTip } from '../../index';
@Component({
selector: 'map-table',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.html
b/nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.html
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.html
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.html
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.scss
b/nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.scss
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.scss
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.scss
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.spec.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.spec.ts
similarity index 93%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.spec.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.spec.ts
index 9453399047..cb37fb39d7 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.spec.ts
+++
b/nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.spec.ts
@@ -16,9 +16,10 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { MapTableEntryData, NewMapTableEntryDialog } from
'./new-map-table-entry-dialog.component';
+import { NewMapTableEntryDialog } from
'./new-map-table-entry-dialog.component';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
+import { MapTableEntryData } from '../../index';
describe('NewMapTableEntryDialog', () => {
let component: NewMapTableEntryDialog;
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.ts
similarity index 97%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.ts
index 5ab0bb351a..013089500d 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component.ts
+++
b/nifi-frontend/src/main/frontend/libs/shared/src/components/new-map-table-entry-dialog/new-map-table-entry-dialog.component.ts
@@ -39,11 +39,7 @@ import { MatButton } from '@angular/material/button';
import { MatError, MatFormField, MatLabel } from
'@angular/material/form-field';
import { MatInput } from '@angular/material/input';
import { MatRadioButton, MatRadioGroup } from '@angular/material/radio';
-
-export interface MapTableEntryData {
- existingEntries: string[];
- entryTypeLabel?: string;
-}
+import { MapTableEntryData } from '../../index';
@Component({
selector: 'new-map-table-entry-dialog',
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.html
b/nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.html
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.html
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.html
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.scss
b/nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.scss
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.scss
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.scss
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.spec.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.spec.ts
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.spec.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.spec.ts
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.ts
similarity index 100%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/resizable/resizable.component.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/components/resizable/resizable.component.ts
diff --git a/nifi-frontend/src/main/frontend/libs/shared/src/index.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/index.ts
index ada44d4dda..b2ac28232a 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/src/index.ts
+++ b/nifi-frontend/src/main/frontend/libs/shared/src/index.ts
@@ -67,6 +67,25 @@ export interface SelectOption {
disabled?: boolean;
}
+export interface MapTableEntry {
+ name: string;
+ value: string | null;
+}
+
+export interface MapTableItem {
+ entry: MapTableEntry;
+ id: number;
+ triggerEdit: boolean;
+ deleted: boolean;
+ dirty: boolean;
+ added: boolean;
+}
+
+export interface MapTableEntryData {
+ existingEntries: string[];
+ entryTypeLabel?: string;
+}
+
export function isDefinedAndNotNull<T>() {
return (source$: Observable<null | undefined | T>) =>
source$.pipe(
diff --git a/nifi-frontend/src/main/frontend/libs/shared/src/services/index.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/services/index.ts
index cd9aa8dfcf..5e5054972e 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/src/services/index.ts
+++ b/nifi-frontend/src/main/frontend/libs/shared/src/services/index.ts
@@ -18,3 +18,4 @@
export * from './nifi-common.service';
export * from './storage.service';
export * from './theming.service';
+export * from './map-table-helper.service';
diff --git
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/service/map-table-helper.service.ts
b/nifi-frontend/src/main/frontend/libs/shared/src/services/map-table-helper.service.ts
similarity index 89%
rename from
nifi-frontend/src/main/frontend/apps/nifi/src/app/service/map-table-helper.service.ts
rename to
nifi-frontend/src/main/frontend/libs/shared/src/services/map-table-helper.service.ts
index c549f72284..b70e0bbe1e 100644
---
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/service/map-table-helper.service.ts
+++
b/nifi-frontend/src/main/frontend/libs/shared/src/services/map-table-helper.service.ts
@@ -16,14 +16,9 @@
*/
import { Injectable } from '@angular/core';
-import { MapTableEntry } from '../state/shared';
import { Observable, of, switchMap, takeUntil } from 'rxjs';
import { MatDialog } from '@angular/material/dialog';
-import { SMALL_DIALOG } from 'libs/shared/src';
-import {
- MapTableEntryData,
- NewMapTableEntryDialog
-} from
'../ui/common/new-map-table-entry-dialog/new-map-table-entry-dialog.component';
+import { MapTableEntry, MapTableEntryData, NewMapTableEntryDialog,
SMALL_DIALOG } from '../index';
@Injectable({
providedIn: 'root'
diff --git a/nifi-frontend/src/main/frontend/libs/shared/tsconfig.spec.json
b/nifi-frontend/src/main/frontend/libs/shared/tsconfig.spec.json
index b2d9173f1c..f122381989 100644
--- a/nifi-frontend/src/main/frontend/libs/shared/tsconfig.spec.json
+++ b/nifi-frontend/src/main/frontend/libs/shared/tsconfig.spec.json
@@ -2,9 +2,9 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
- "module": "commonjs",
- "target": "es2016",
- "types": ["jest", "node"]
+ "types": ["jest"],
+ "module": "ES2022",
+ "esModuleInterop": true
},
"files": ["src/test-setup.ts"],
"include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts",
"src/**/*.d.ts"]