wuic-framework-lib 1.0.20 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. package/fesm2022/{wuic-framework-lib-chart-list.component-B44k_wZe.mjs → wuic-framework-lib-chart-list.component-C9_EDkGu.mjs} +2 -2
  2. package/fesm2022/{wuic-framework-lib-code-editor.component-D1dy4Dl9.mjs → wuic-framework-lib-code-editor.component-D_p7LGSQ.mjs} +4 -4
  3. package/fesm2022/{wuic-framework-lib-designer.component-CnOQbvEH.mjs → wuic-framework-lib-designer.component-Dx6RraAn.mjs} +4 -4
  4. package/fesm2022/{wuic-framework-lib-first-run-wizard.component-C9lswoxG.mjs → wuic-framework-lib-first-run-wizard.component-Cp8IKDb9.mjs} +4 -4
  5. package/fesm2022/{wuic-framework-lib-framework-docs.component-B6qNTs5H.mjs → wuic-framework-lib-framework-docs.component-CxckBsIX.mjs} +406 -10
  6. package/fesm2022/{wuic-framework-lib-pivot-builder.component-DMk26H0M.mjs → wuic-framework-lib-pivot-builder.component-C-ceJi48.mjs} +10 -10
  7. package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-y3shST6g.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-DPZCgxOB.mjs} +3 -3
  8. package/fesm2022/{wuic-framework-lib-report-designer.component-BnngR2eL.mjs → wuic-framework-lib-report-designer.component-3-hUYft8.mjs} +2 -2
  9. package/fesm2022/{wuic-framework-lib-report-viewer.component-LGNRIQh2.mjs → wuic-framework-lib-report-viewer.component-D4QD_wPl.mjs} +2 -2
  10. package/fesm2022/{wuic-framework-lib-scheduler-list.component-DbcFMwx5.mjs → wuic-framework-lib-scheduler-list.component-C0nY8Wd6.mjs} +2 -2
  11. package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-DXyRX0YK.mjs → wuic-framework-lib-spreadsheet-list-sf.component-C9sWgq61.mjs} +443 -4
  12. package/fesm2022/{wuic-framework-lib-workflow-designer.component-Bm719AWV.mjs → wuic-framework-lib-workflow-designer.component-8mv_Rbz9.mjs} +4 -4
  13. package/fesm2022/{wuic-framework-lib-wuic-framework-lib-CGCZvtKK.mjs → wuic-framework-lib-wuic-framework-lib-DJZAYFw8.mjs} +4887 -3819
  14. package/fesm2022/wuic-framework-lib.mjs +1 -1
  15. package/package.json +1 -1
  16. package/types/wuic-framework-lib.d.ts +1575 -1005
@@ -9,7 +9,7 @@ import * as i1 from '@angular/forms';
9
9
  import { FormsModule } from '@angular/forms';
10
10
  import * as i2$1 from 'primeng/autocomplete';
11
11
  import { AutoCompleteModule } from 'primeng/autocomplete';
12
- import * as i13 from 'primeng/contextmenu';
12
+ import * as i14 from 'primeng/contextmenu';
13
13
  import { ContextMenuModule } from 'primeng/contextmenu';
14
14
  import * as i2 from 'primeng/dialog';
15
15
  import { DialogModule } from 'primeng/dialog';
@@ -20,7 +20,7 @@ import { SelectModule } from 'primeng/select';
20
20
  import * as i8 from '@ngx-translate/core';
21
21
  import { TranslateModule } from '@ngx-translate/core';
22
22
  import { BehaviorSubject } from 'rxjs';
23
- import { W as WtoolboxService, M as MetadataProviderService, d as ParametricDialogComponent, k as WuicClientException, l as WuicErrorCodes, G as GlobalHandler, f as DataProviderService, b as DataSourceComponent, j as MetadataEditorComponent } from './wuic-framework-lib-wuic-framework-lib-CGCZvtKK.mjs';
23
+ import { W as WtoolboxService, M as MetadataProviderService, d as ParametricDialogComponent, k as WuicClientException, l as WuicErrorCodes, G as GlobalHandler, f as DataProviderService, b as DataSourceComponent, j as MetadataEditorComponent } from './wuic-framework-lib-wuic-framework-lib-DJZAYFw8.mjs';
24
24
 
25
25
  class WorkflowDesignerLayoutHelper {
26
26
  /**
@@ -5060,7 +5060,7 @@ class WorkflowDesignerComponent {
5060
5060
  });
5061
5061
  }
5062
5062
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowDesignerComponent, deps: [{ token: i0.Injector }, { token: DataProviderService }], target: i0.ɵɵFactoryTarget.Component });
5063
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: WorkflowDesignerComponent, isStandalone: true, selector: "wuic-workflow-designer", outputs: { workflowChange: "workflowChange" }, viewQueries: [{ propertyName: "workflowCanvasRef", first: true, predicate: ["workflowCanvas"], descendants: true, static: true }, { propertyName: "primeContextMenu", first: true, predicate: ["primeContextMenu"], descendants: true }, { propertyName: "routeMetadataDs", first: true, predicate: ["routeMetadataDs"], descendants: true }, { propertyName: "startMenuDs", first: true, predicate: ["startMenuDs"], descendants: true }, { propertyName: "menuAuthDs", first: true, predicate: ["menuAuthDs"], descendants: true }, { propertyName: "routeMetadataEditor", first: true, predicate: ["routeMetadataEditor"], descendants: true }, { propertyName: "actionMetadataEditor", first: true, predicate: ["actionMetadataEditor"], descendants: true }], ngImport: i0, template: "<div class=\"workflow-designer\">\n <div class=\"workflow-toolbar\">\n <div class=\"workflow-current-graph\">{{ currentGraphCaption }}</div>\n <div class=\"workflow-toolbar-menu-group\">\n <button type=\"button\" (click)=\"graphActionsMenu.toggle($event)\">\n Azioni grafo\n </button>\n <p-menu #graphActionsMenu [popup]=\"true\" [model]=\"graphActionsMenuItems\" appendTo=\"body\"></p-menu>\n </div>\n <div class=\"workflow-toolbar-menu-group\">\n <button type=\"button\" (click)=\"runnerActionsMenu.toggle($event)\" [disabled]=\"!canOpenWorkflowRunner\">\n Runner\n </button>\n <p-menu #runnerActionsMenu [popup]=\"true\" [model]=\"runnerActionsMenuItems\" appendTo=\"body\"></p-menu>\n </div>\n </div>\n\n <aside class=\"workflow-palette\">\n <div class=\"workflow-palette-title\">{{ 'workflow.palette' | translate }}</div>\n <div class=\"workflow-palette-list\">\n @for (item of paletteNodes; track item) {\n <div\n class=\"workflow-palette-item\"\n [ngClass]=\"{\n 'workflow-palette-item-route': item.type === 'route',\n 'workflow-palette-item-action': item.type === 'action',\n 'workflow-palette-item-start': item.type === 'start',\n 'workflow-palette-item-condition': item.type === 'condition',\n 'workflow-palette-item-end': item.type === 'end',\n 'workflow-palette-item-disabled': !isPaletteNodeEnabled(item)\n }\"\n [attr.draggable]=\"isPaletteNodeEnabled(item) ? 'true' : 'false'\"\n (dragstart)=\"onPaletteDragStart($event, item)\">\n <div class=\"workflow-palette-item-title\">{{ item.label }}</div>\n @if (item.type === 'route') {\n <div class=\"workflow-palette-item-badge\">{{ 'workflow.badge.route' | translate }}</div>\n }\n @if (item.type === 'action') {\n <div class=\"workflow-palette-item-badge\">{{ 'workflow.badge.action_scope' | translate }}</div>\n }\n <div class=\"workflow-palette-item-description\">{{ item.description }}</div>\n </div>\n }\n </div>\n </aside>\n\n <section\n #workflowCanvas\n class=\"workflow-canvas\"\n (dragover)=\"onCanvasDragOver($event)\"\n (drop)=\"onCanvasDrop($event)\"\n (contextmenu)=\"onCanvasContextMenu($event)\"\n (click)=\"onCanvasClick()\">\n <div class=\"workflow-canvas-hint\">\n {{ 'workflow.drag_hint' | translate }}\n </div>\n </section>\n <p-contextMenu\n #primeContextMenu\n [model]=\"contextMenuItems\"\n appendTo=\"body\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"13000\">\n </p-contextMenu>\n</div>\n\n<p-dialog\n [header]=\"'Riapri grafo'\"\n [(visible)]=\"reopenWorkflowDialogVisible\"\n [modal]=\"true\"\n [closable]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [appendTo]=\"'body'\"\n [style]=\"{ width: '34rem' }\"\n (onHide)=\"cancelReopenWorkflowDialog()\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-reopen-select\">Grafi esistenti</label>\n <p-select\n inputId=\"workflow-reopen-select\"\n [options]=\"savedGraphOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"reopenDialogSelectedGraphKey\"\n [filter]=\"true\"\n [showClear]=\"true\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelReopenWorkflowDialog()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmReopenWorkflowDialog()\"\n [disabled]=\"!reopenDialogSelectedGraphKey || loadingWorkflow\">Riapri</button>\n </div>\n </div>\n</p-dialog>\n\n<div style=\"display:none\">\n <wuic-data-source #routeMetadataDs [hardcodedRoute]=\"routeMetadataRoute\"></wuic-data-source>\n <wuic-data-source #startMenuDs [hardcodedRoute]=\"' metadati menu'\"></wuic-data-source>\n <wuic-data-source #menuAuthDs [hardcodedRoute]=\"' mtdt tnt trizzazioni menus'\"></wuic-data-source>\n @if (routeMetadataDs) {\n <wuic-metadata-editor\n #actionMetadataEditor\n [hardcodedDatasource]=\"routeMetadataDs!\"\n [saveCallback]=\"routeMetadataSaveCallback\"\n [hideReports]=\"true\"\n [hideRelatedTableActions]=\"true\"\n [hideRelatedColumnActions]=\"true\">\n </wuic-metadata-editor>\n }\n</div>\n\n<p-dialog\n [header]=\"'workflow.configure_route' | translate\"\n [(visible)]=\"routePopupVisible\"\n [modal]=\"true\"\n [closable]=\"false\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '32rem' }\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-route-source-select\">Sorgente nodo</label>\n <p-select\n inputId=\"workflow-route-source-select\"\n [options]=\"routeSourceOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedRouteSourceType\"\n (ngModelChange)=\"onRouteSourceTypeChanged()\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n @if (selectedRouteSourceType === 'route') {\n <label for=\"workflow-route-select\">{{ 'workflow.route' | translate }}</label>\n <p-autoComplete\n inputId=\"workflow-route-select\"\n [(ngModel)]=\"selectedRouteName\"\n [suggestions]=\"filteredRouteOptions\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n dropdownMode=\"current\"\n [optionLabel]=\"'label'\"\n [optionValue]=\"'value'\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\"\n (completeMethod)=\"filterRouteOptions($event)\" />\n <label for=\"workflow-action-select\">{{ 'workflow.action' | translate }}</label>\n <p-select\n inputId=\"workflow-action-select\"\n [options]=\"routeActionOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedRouteAction\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n } @else {\n <label for=\"workflow-dashboard-select\">Dashboard</label>\n <p-autoComplete\n inputId=\"workflow-dashboard-select\"\n [(ngModel)]=\"selectedDashboardRoute\"\n [suggestions]=\"filteredDashboardOptions\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n dropdownMode=\"current\"\n [optionLabel]=\"'label'\"\n [optionValue]=\"'value'\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\"\n (completeMethod)=\"filterDashboardOptions($event)\" />\n }\n\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelRouteDrop()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmRouteDrop()\"\n [disabled]=\"selectedRouteSourceType === 'dashboard' ? !selectedDashboardRoute : (!selectedRouteName || !selectedRouteAction)\">{{ 'confirmation' | translate }}</button>\n </div>\n </div>\n</p-dialog>\n\n<p-dialog\n [header]=\"'workflow.metadata_route' | translate\"\n [(visible)]=\"routeMetadataDialogVisible\"\n [modal]=\"true\"\n position=\"top\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [appendTo]=\"'body'\"\n styleClass=\"workflow-route-metadata-dialog\"\n [style]=\"{ width: '78rem', maxHeight: 'calc(100vh - 2rem)' }\"\n [contentStyle]=\"{ overflow: 'visible', maxHeight: 'calc(100vh - 10rem)' }\">\n @if (routeMetadataDialogVisible && routeMetadataDs) {\n <wuic-metadata-editor\n #routeMetadataEditor\n [hardcodedDatasource]=\"routeMetadataDs!\"\n [saveCallback]=\"routeMetadataSaveCallback\"\n [hideReports]=\"true\"\n [hideRelatedTableActions]=\"false\"\n [hideRelatedColumnActions]=\"false\">\n </wuic-metadata-editor>\n }\n</p-dialog>\n\n<p-dialog\n [header]=\"'workflow.configure_action' | translate\"\n [(visible)]=\"actionPopupVisible\"\n [modal]=\"true\"\n [closable]=\"false\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '32rem' }\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-action-type-select\">{{ 'workflow.action_type' | translate }}</label>\n <p-select\n inputId=\"workflow-action-type-select\"\n [options]=\"actionTypeOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedActionTypeId\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n <label for=\"workflow-action-scope-select\">{{ 'workflow.action_scope' | translate }}</label>\n <p-select\n inputId=\"workflow-action-scope-select\"\n [options]=\"actionScopeOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedActionScopeId\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelActionDrop()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmActionDrop()\"\n [disabled]=\"selectedActionTypeId === null || selectedActionTypeId === undefined || selectedActionScopeId === null || selectedActionScopeId === undefined\">{{ 'confirmation' | translate }}</button>\n </div>\n </div>\n</p-dialog>\n\n<p-dialog\n [header]=\"'Opzioni workflow'\"\n [(visible)]=\"workflowOptionsDialogVisible\"\n [modal]=\"true\"\n [closable]=\"false\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '32rem' }\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-options-caption\">Caption menu start</label>\n <input\n id=\"workflow-options-caption\"\n class=\"workflow-options-input\"\n type=\"text\"\n [(ngModel)]=\"workflowOptionsCaption\" />\n\n <label class=\"workflow-options-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"workflowOptionsInheritMetadata\" />\n <span>Eredita metadati</span>\n </label>\n\n <label class=\"workflow-options-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"workflowOptionsExclusiveMenu\" />\n <span>Menu esclusivo</span>\n </label>\n\n <label class=\"workflow-options-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"workflowOptionsShowExit\" />\n <span>Mostra esci</span>\n </label>\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelWorkflowOptionsDialog()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmWorkflowOptionsDialog()\">{{ 'confirmation' | translate }}</button>\n </div>\n </div>\n</p-dialog>\n", styles: [":host{display:block;height:100%}.workflow-designer{display:grid;grid-template-rows:auto 1fr;grid-template-columns:260px 1fr;gap:12px;height:100%;min-height:520px}.workflow-toolbar{grid-column:1 / span 2;display:flex;align-items:center;flex-wrap:wrap;gap:8px;border:1px solid #d5dce6;border-radius:10px;background:#f7f9fc;padding:10px 12px}.workflow-toolbar label{font-size:.82rem;font-weight:600;color:#2f3f58}.workflow-toolbar input{height:30px;border:1px solid #c7d2e2;border-radius:6px;background:#fff;padding:0 8px;min-width:170px}.workflow-toolbar button{height:30px;border:1px solid #2f67d8;border-radius:6px;background:#2f67d8;color:#fff;padding:0 10px;font-size:.82rem;cursor:pointer}.workflow-toolbar button[disabled]{opacity:.6;cursor:not-allowed}.workflow-toolbar-menu-group{display:inline-flex}.workflow-current-graph{flex:1 1 auto;min-width:240px;font-size:.82rem;font-weight:600;color:#2f3f58}.workflow-palette{border:1px solid #d5dce6;border-radius:10px;background:#f7f9fc;overflow:auto}.workflow-palette-title{padding:10px 12px;font-size:.86rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#3d4f67;border-bottom:1px solid #d5dce6}.workflow-palette-list{display:flex;flex-direction:column;gap:8px;padding:10px}.workflow-palette-item{border:1px solid #c8d3e2;border-radius:8px;background:#fff;padding:10px;cursor:grab;-webkit-user-select:none;user-select:none}.workflow-palette-item-badge{display:inline-block;margin-top:4px;margin-bottom:4px;padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:#e2e8f0;color:#334155}.workflow-palette-item-route{border-color:#93c5fd;background:#eff6ff}.workflow-palette-item-route .workflow-palette-item-badge{background:#dbeafe;color:#1d4ed8}.workflow-palette-item-action{border-color:#c4b5fd;background:#f5f3ff}.workflow-palette-item-action .workflow-palette-item-badge{background:#ede9fe;color:#6d28d9}.workflow-palette-item-start{border-color:#86efac;background:#f0fdf4}.workflow-palette-item-condition{border-color:#99f6e4;background:#f0fdfa}.workflow-palette-item-end{border-color:#fda4af;background:#fff1f2}.workflow-palette-item:active{cursor:grabbing}.workflow-palette-item-disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.2)}:host-context(.theme-dark) .workflow-palette-item-disabled{opacity:.5}.workflow-palette-item-title{font-size:.94rem;font-weight:600;color:#21324a}.workflow-palette-item-description{margin-top:4px;font-size:.82rem;color:#60738f}.workflow-canvas{position:relative;border:1px solid #d5dce6;border-radius:10px;overflow:hidden;background:radial-gradient(circle at 1px 1px,#dbe3ef 1px,transparent 0);background-size:24px 24px;background-color:#f8fbff}.workflow-canvas-hint{position:absolute;right:12px;bottom:12px;font-size:.82rem;color:#60738f;background:#ffffffeb;border:1px solid #d5dce6;border-radius:6px;padding:5px 8px}.route-popup-form{display:flex;flex-direction:column;gap:8px}.route-popup-form label{font-size:.85rem;font-weight:600;color:#2f3f58;margin-top:2px}.workflow-options-input{width:100%;height:34px;border:1px solid #c7d2e2;border-radius:6px;background:#fff;padding:0 8px;color:#1f2f49}.workflow-options-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:#2f3f58;margin-top:2px}.workflow-options-toggle input[type=checkbox]{width:16px;height:16px}.route-popup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.route-popup-btn{border:1px solid #c7d2e2;background:#fff;color:#1f2f49;border-radius:6px;padding:7px 12px;font-size:.85rem;cursor:pointer}.route-popup-btn-primary{border-color:#2f67d8;background:#2f67d8;color:#fff}:host ::ng-deep .workflow-route-metadata-dialog.p-dialog{max-height:calc(100vh - 2rem)}:host ::ng-deep .workflow-route-metadata-dialog .p-dialog-content{overflow:visible;max-height:calc(100vh - 10rem)}:host ::ng-deep .workflow-canvas [data-wf-node-type] .node{border:1px solid var(--wf-node-accent, #64748b)!important;background:var(--wf-node-bg, #f8fafc)!important}:host ::ng-deep .workflow-canvas [data-wf-node-type] .title{background:var(--wf-node-accent, #64748b)!important;color:#fff!important;font-weight:700}:host ::ng-deep .workflow-canvas [data-wf-node-type=action][data-wf-action-scope=col] .node{border-style:dashed!important}:host ::ng-deep .workflow-canvas [data-wf-node-type=action][data-wf-action-scope=tab] .node{border-style:solid!important}:host-context(.theme-dark) .workflow-toolbar{border-color:#2a3447;background:#141b27}:host-context(.theme-dark) .workflow-current-graph,:host-context(.theme-dark) .workflow-toolbar label{color:#d8e2f1}:host-context(.theme-dark) .workflow-toolbar input{border-color:#334155;background:#0f1724;color:#e5ecf8}:host-context(.theme-dark) .workflow-toolbar button{border-color:#335fcf;background:#335fcf}:host-context(.theme-dark) .workflow-palette{border-color:#2a3447;background:#141b27}:host-context(.theme-dark) .workflow-palette-title{color:#dbe4f2;border-bottom-color:#2a3447}:host-context(.theme-dark) .workflow-palette-item{border-color:#334155;background:#0f1724}:host-context(.theme-dark) .workflow-palette-item-title{color:#e6edf8}:host-context(.theme-dark) .workflow-palette-item-description{color:#9fb0c7}:host-context(.theme-dark) .workflow-palette-item-badge{background:#273247;color:#c9d7ec}:host-context(.theme-dark) .workflow-palette-item-route{border-color:#3b82f6;background:#0f1f35}:host-context(.theme-dark) .workflow-palette-item-route .workflow-palette-item-badge{background:#1e3a6a;color:#c8ddff}:host-context(.theme-dark) .workflow-palette-item-action{border-color:#8b5cf6;background:#24183d}:host-context(.theme-dark) .workflow-palette-item-action .workflow-palette-item-badge{background:#3a2370;color:#ded1ff}:host-context(.theme-dark) .workflow-palette-item-start{border-color:#22c55e;background:#11281c}:host-context(.theme-dark) .workflow-palette-item-condition{border-color:#14b8a6;background:#0f2726}:host-context(.theme-dark) .workflow-palette-item-end{border-color:#ef4444;background:#30171b}:host-context(.theme-dark) .workflow-canvas{border-color:#2a3447;background:radial-gradient(circle at 1px 1px,#334155 1px,transparent 0);background-size:24px 24px;background-color:#0f1724}:host-context(.theme-dark) .workflow-canvas-hint{color:#b9c8de;background:#0f1724e6;border-color:#334155}:host-context(.theme-dark) .route-popup-form label,:host-context(.theme-dark) .workflow-options-toggle{color:#d8e2f1}:host-context(.theme-dark) .workflow-options-input{border-color:#334155;background:#0f1724;color:#e5ecf8}:host-context(.theme-dark) .route-popup-btn{border-color:#334155;background:#111b2b;color:#d8e2f1}:host-context(.theme-dark) .route-popup-btn-primary{border-color:#335fcf;background:#335fcf;color:#fff}:host-context(.theme-dark) ::ng-deep .p-menu,:host-context(.theme-dark) ::ng-deep .p-contextmenu{background:#121b2b;border-color:#334155;color:#dbe4f2}:host-context(.theme-dark) ::ng-deep .p-menu .p-menu-item-content,:host-context(.theme-dark) ::ng-deep .p-contextmenu .p-menu-item-content{color:#dbe4f2}:host-context(.theme-dark) ::ng-deep .p-menu .p-menu-item-content:hover,:host-context(.theme-dark) ::ng-deep .p-contextmenu .p-menu-item-content:hover{background:#1f2a3d}:host-context(.theme-dark) ::ng-deep .p-dialog{background:#121b2b;border-color:#334155;color:#dbe4f2}:host-context(.theme-dark) ::ng-deep .p-dialog .p-dialog-header,:host-context(.theme-dark) ::ng-deep .p-dialog .p-dialog-content,:host-context(.theme-dark) ::ng-deep .p-dialog .p-dialog-footer{background:#121b2b;color:#dbe4f2;border-color:#334155}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "maskMotionOptions", "motionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i6.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i2$1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "minQueryLength", "delay", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "addOnTab", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "addOnBlur", "separator", "appendTo", "motionOptions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onAdd", "onFocus", "onBlur", "onDropdownClick", "onClear", "onInputKeydown", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i9.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo", "motionOptions"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i13.ContextMenu, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: DataSourceComponent, selector: "wuic-data-source", inputs: ["route", "routeFromRouting", "hardcodedRoute", "autoload", "loading", "changeTracking", "parentRecord", "parentMetaInfo", "parentDatasource", "useComboEndpoint", "comboFormulaLookup", "comboMcId", "comboField", "comboExtraFields", "comboCurrentRecord", "componentRef"] }, { kind: "component", type: MetadataEditorComponent, selector: "wuic-metadata-editor", inputs: ["datasource", "hardcodedDatasource", "saveCallback", "hideReports", "hideRelatedTableActions", "hideRelatedColumnActions"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
5063
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: WorkflowDesignerComponent, isStandalone: true, selector: "wuic-workflow-designer", outputs: { workflowChange: "workflowChange" }, viewQueries: [{ propertyName: "workflowCanvasRef", first: true, predicate: ["workflowCanvas"], descendants: true, static: true }, { propertyName: "primeContextMenu", first: true, predicate: ["primeContextMenu"], descendants: true }, { propertyName: "routeMetadataDs", first: true, predicate: ["routeMetadataDs"], descendants: true }, { propertyName: "startMenuDs", first: true, predicate: ["startMenuDs"], descendants: true }, { propertyName: "menuAuthDs", first: true, predicate: ["menuAuthDs"], descendants: true }, { propertyName: "routeMetadataEditor", first: true, predicate: ["routeMetadataEditor"], descendants: true }, { propertyName: "actionMetadataEditor", first: true, predicate: ["actionMetadataEditor"], descendants: true }], ngImport: i0, template: "<div class=\"workflow-designer\">\n <div class=\"workflow-toolbar\">\n <div class=\"workflow-current-graph\">{{ currentGraphCaption }}</div>\n <div class=\"workflow-toolbar-menu-group\">\n <button type=\"button\" (click)=\"graphActionsMenu.toggle($event)\">\n Azioni grafo\n </button>\n <p-menu #graphActionsMenu [popup]=\"true\" [model]=\"graphActionsMenuItems\" appendTo=\"body\"></p-menu>\n </div>\n <div class=\"workflow-toolbar-menu-group\">\n <button type=\"button\" (click)=\"runnerActionsMenu.toggle($event)\" [disabled]=\"!canOpenWorkflowRunner\">\n Runner\n </button>\n <p-menu #runnerActionsMenu [popup]=\"true\" [model]=\"runnerActionsMenuItems\" appendTo=\"body\"></p-menu>\n </div>\n </div>\n\n <aside class=\"workflow-palette\">\n <div class=\"workflow-palette-title\">{{ 'workflow.palette' | translate }}</div>\n <div class=\"workflow-palette-list\">\n @for (item of paletteNodes; track item) {\n <div\n class=\"workflow-palette-item\"\n [ngClass]=\"{\n 'workflow-palette-item-route': item.type === 'route',\n 'workflow-palette-item-action': item.type === 'action',\n 'workflow-palette-item-start': item.type === 'start',\n 'workflow-palette-item-condition': item.type === 'condition',\n 'workflow-palette-item-end': item.type === 'end',\n 'workflow-palette-item-disabled': !isPaletteNodeEnabled(item)\n }\"\n [attr.draggable]=\"isPaletteNodeEnabled(item) ? 'true' : 'false'\"\n (dragstart)=\"onPaletteDragStart($event, item)\">\n <div class=\"workflow-palette-item-title\">{{ item.label }}</div>\n @if (item.type === 'route') {\n <div class=\"workflow-palette-item-badge\">{{ 'workflow.badge.route' | translate }}</div>\n }\n @if (item.type === 'action') {\n <div class=\"workflow-palette-item-badge\">{{ 'workflow.badge.action_scope' | translate }}</div>\n }\n <div class=\"workflow-palette-item-description\">{{ item.description }}</div>\n </div>\n }\n </div>\n </aside>\n\n <section\n #workflowCanvas\n class=\"workflow-canvas\"\n (dragover)=\"onCanvasDragOver($event)\"\n (drop)=\"onCanvasDrop($event)\"\n (contextmenu)=\"onCanvasContextMenu($event)\"\n (click)=\"onCanvasClick()\">\n <div class=\"workflow-canvas-hint\">\n {{ 'workflow.drag_hint' | translate }}\n </div>\n </section>\n <p-contextMenu\n #primeContextMenu\n [model]=\"contextMenuItems\"\n appendTo=\"body\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"13000\">\n </p-contextMenu>\n</div>\n\n<p-dialog\n [header]=\"'Riapri grafo'\"\n [(visible)]=\"reopenWorkflowDialogVisible\"\n [modal]=\"true\"\n [closable]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [appendTo]=\"'body'\"\n [style]=\"{ width: '34rem' }\"\n (onHide)=\"cancelReopenWorkflowDialog()\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-reopen-select\">Grafi esistenti</label>\n <p-select\n inputId=\"workflow-reopen-select\"\n [options]=\"savedGraphOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"reopenDialogSelectedGraphKey\"\n [filter]=\"true\"\n [showClear]=\"true\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelReopenWorkflowDialog()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmReopenWorkflowDialog()\"\n [disabled]=\"!reopenDialogSelectedGraphKey || loadingWorkflow\">Riapri</button>\n </div>\n </div>\n</p-dialog>\n\n<div style=\"display:none\">\n <wuic-data-source #routeMetadataDs [hardcodedRoute]=\"routeMetadataRoute\"></wuic-data-source>\n <wuic-data-source #startMenuDs [hardcodedRoute]=\"' metadati menu'\"></wuic-data-source>\n <wuic-data-source #menuAuthDs [hardcodedRoute]=\"' mtdt tnt trizzazioni menus'\"></wuic-data-source>\n @if (routeMetadataDs) {\n <wuic-metadata-editor\n #actionMetadataEditor\n [hardcodedDatasource]=\"routeMetadataDs!\"\n [saveCallback]=\"routeMetadataSaveCallback\"\n [hideReports]=\"true\"\n [hideRelatedTableActions]=\"true\"\n [hideRelatedColumnActions]=\"true\">\n </wuic-metadata-editor>\n }\n</div>\n\n<p-dialog\n [header]=\"'workflow.configure_route' | translate\"\n [(visible)]=\"routePopupVisible\"\n [modal]=\"true\"\n [closable]=\"false\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '32rem' }\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-route-source-select\">Sorgente nodo</label>\n <p-select\n inputId=\"workflow-route-source-select\"\n [options]=\"routeSourceOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedRouteSourceType\"\n (ngModelChange)=\"onRouteSourceTypeChanged()\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n @if (selectedRouteSourceType === 'route') {\n <label for=\"workflow-route-select\">{{ 'workflow.route' | translate }}</label>\n <p-autoComplete\n inputId=\"workflow-route-select\"\n [(ngModel)]=\"selectedRouteName\"\n [suggestions]=\"filteredRouteOptions\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n dropdownMode=\"current\"\n [optionLabel]=\"'label'\"\n [optionValue]=\"'value'\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\"\n (completeMethod)=\"filterRouteOptions($event)\" />\n <label for=\"workflow-action-select\">{{ 'workflow.action' | translate }}</label>\n <p-select\n inputId=\"workflow-action-select\"\n [options]=\"routeActionOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedRouteAction\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n } @else {\n <label for=\"workflow-dashboard-select\">Dashboard</label>\n <p-autoComplete\n inputId=\"workflow-dashboard-select\"\n [(ngModel)]=\"selectedDashboardRoute\"\n [suggestions]=\"filteredDashboardOptions\"\n [forceSelection]=\"true\"\n [dropdown]=\"true\"\n dropdownMode=\"current\"\n [optionLabel]=\"'label'\"\n [optionValue]=\"'value'\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\"\n (completeMethod)=\"filterDashboardOptions($event)\" />\n }\n\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelRouteDrop()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmRouteDrop()\"\n [disabled]=\"selectedRouteSourceType === 'dashboard' ? !selectedDashboardRoute : (!selectedRouteName || !selectedRouteAction)\">{{ 'confirmation' | translate }}</button>\n </div>\n </div>\n</p-dialog>\n\n<p-dialog\n [header]=\"'workflow.metadata_route' | translate\"\n [(visible)]=\"routeMetadataDialogVisible\"\n [modal]=\"true\"\n position=\"top\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [appendTo]=\"'body'\"\n styleClass=\"workflow-route-metadata-dialog\"\n [style]=\"{ width: '78rem', maxHeight: 'calc(100vh - 2rem)' }\"\n [contentStyle]=\"{ overflow: 'visible', maxHeight: 'calc(100vh - 10rem)' }\">\n @if (routeMetadataDialogVisible && routeMetadataDs) {\n <wuic-metadata-editor\n #routeMetadataEditor\n [hardcodedDatasource]=\"routeMetadataDs!\"\n [saveCallback]=\"routeMetadataSaveCallback\"\n [hideReports]=\"true\"\n [hideRelatedTableActions]=\"false\"\n [hideRelatedColumnActions]=\"false\">\n </wuic-metadata-editor>\n }\n</p-dialog>\n\n<p-dialog\n [header]=\"'workflow.configure_action' | translate\"\n [(visible)]=\"actionPopupVisible\"\n [modal]=\"true\"\n [closable]=\"false\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '32rem' }\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-action-type-select\">{{ 'workflow.action_type' | translate }}</label>\n <p-select\n inputId=\"workflow-action-type-select\"\n [options]=\"actionTypeOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedActionTypeId\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n <label for=\"workflow-action-scope-select\">{{ 'workflow.action_scope' | translate }}</label>\n <p-select\n inputId=\"workflow-action-scope-select\"\n [options]=\"actionScopeOptions\"\n optionLabel=\"label\"\n optionValue=\"value\"\n [(ngModel)]=\"selectedActionScopeId\"\n [style]=\"{ width: '100%' }\"\n appendTo=\"body\" />\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelActionDrop()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmActionDrop()\"\n [disabled]=\"selectedActionTypeId === null || selectedActionTypeId === undefined || selectedActionScopeId === null || selectedActionScopeId === undefined\">{{ 'confirmation' | translate }}</button>\n </div>\n </div>\n</p-dialog>\n\n<p-dialog\n [header]=\"'Opzioni workflow'\"\n [(visible)]=\"workflowOptionsDialogVisible\"\n [modal]=\"true\"\n [closable]=\"false\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [style]=\"{ width: '32rem' }\">\n <div class=\"route-popup-form\">\n <label for=\"workflow-options-caption\">Caption menu start</label>\n <input\n id=\"workflow-options-caption\"\n class=\"workflow-options-input\"\n type=\"text\"\n [(ngModel)]=\"workflowOptionsCaption\" />\n\n <label class=\"workflow-options-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"workflowOptionsInheritMetadata\" />\n <span>Eredita metadati</span>\n </label>\n\n <label class=\"workflow-options-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"workflowOptionsExclusiveMenu\" />\n <span>Menu esclusivo</span>\n </label>\n\n <label class=\"workflow-options-toggle\">\n <input type=\"checkbox\" [(ngModel)]=\"workflowOptionsShowExit\" />\n <span>Mostra esci</span>\n </label>\n\n <div class=\"route-popup-actions\">\n <button type=\"button\" class=\"route-popup-btn\" (click)=\"cancelWorkflowOptionsDialog()\">{{ 'cancel' | translate }}</button>\n <button type=\"button\" class=\"route-popup-btn route-popup-btn-primary\" (click)=\"confirmWorkflowOptionsDialog()\">{{ 'confirmation' | translate }}</button>\n </div>\n </div>\n</p-dialog>\n", styles: [":host{display:block;height:100%}.workflow-designer{display:grid;grid-template-rows:auto 1fr;grid-template-columns:260px 1fr;gap:12px;height:100%;min-height:520px}.workflow-toolbar{grid-column:1 / span 2;display:flex;align-items:center;flex-wrap:wrap;gap:8px;border:1px solid #d5dce6;border-radius:10px;background:#f7f9fc;padding:10px 12px}.workflow-toolbar label{font-size:.82rem;font-weight:600;color:#2f3f58}.workflow-toolbar input{height:30px;border:1px solid #c7d2e2;border-radius:6px;background:#fff;padding:0 8px;min-width:170px}.workflow-toolbar button{height:30px;border:1px solid #2f67d8;border-radius:6px;background:#2f67d8;color:#fff;padding:0 10px;font-size:.82rem;cursor:pointer}.workflow-toolbar button[disabled]{opacity:.6;cursor:not-allowed}.workflow-toolbar-menu-group{display:inline-flex}.workflow-current-graph{flex:1 1 auto;min-width:240px;font-size:.82rem;font-weight:600;color:#2f3f58}.workflow-palette{border:1px solid #d5dce6;border-radius:10px;background:#f7f9fc;overflow:auto}.workflow-palette-title{padding:10px 12px;font-size:.86rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#3d4f67;border-bottom:1px solid #d5dce6}.workflow-palette-list{display:flex;flex-direction:column;gap:8px;padding:10px}.workflow-palette-item{border:1px solid #c8d3e2;border-radius:8px;background:#fff;padding:10px;cursor:grab;-webkit-user-select:none;user-select:none}.workflow-palette-item-badge{display:inline-block;margin-top:4px;margin-bottom:4px;padding:2px 7px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:#e2e8f0;color:#334155}.workflow-palette-item-route{border-color:#93c5fd;background:#eff6ff}.workflow-palette-item-route .workflow-palette-item-badge{background:#dbeafe;color:#1d4ed8}.workflow-palette-item-action{border-color:#c4b5fd;background:#f5f3ff}.workflow-palette-item-action .workflow-palette-item-badge{background:#ede9fe;color:#6d28d9}.workflow-palette-item-start{border-color:#86efac;background:#f0fdf4}.workflow-palette-item-condition{border-color:#99f6e4;background:#f0fdfa}.workflow-palette-item-end{border-color:#fda4af;background:#fff1f2}.workflow-palette-item:active{cursor:grabbing}.workflow-palette-item-disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.2)}:host-context(.theme-dark) .workflow-palette-item-disabled{opacity:.5}.workflow-palette-item-title{font-size:.94rem;font-weight:600;color:#21324a}.workflow-palette-item-description{margin-top:4px;font-size:.82rem;color:#60738f}.workflow-canvas{position:relative;border:1px solid #d5dce6;border-radius:10px;overflow:hidden;background:radial-gradient(circle at 1px 1px,#dbe3ef 1px,transparent 0);background-size:24px 24px;background-color:#f8fbff}.workflow-canvas-hint{position:absolute;right:12px;bottom:12px;font-size:.82rem;color:#60738f;background:#ffffffeb;border:1px solid #d5dce6;border-radius:6px;padding:5px 8px}.route-popup-form{display:flex;flex-direction:column;gap:8px}.route-popup-form label{font-size:.85rem;font-weight:600;color:#2f3f58;margin-top:2px}.workflow-options-input{width:100%;height:34px;border:1px solid #c7d2e2;border-radius:6px;background:#fff;padding:0 8px;color:#1f2f49}.workflow-options-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:#2f3f58;margin-top:2px}.workflow-options-toggle input[type=checkbox]{width:16px;height:16px}.route-popup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.route-popup-btn{border:1px solid #c7d2e2;background:#fff;color:#1f2f49;border-radius:6px;padding:7px 12px;font-size:.85rem;cursor:pointer}.route-popup-btn-primary{border-color:#2f67d8;background:#2f67d8;color:#fff}:host ::ng-deep .workflow-route-metadata-dialog.p-dialog{max-height:calc(100vh - 2rem)}:host ::ng-deep .workflow-route-metadata-dialog .p-dialog-content{overflow:visible;max-height:calc(100vh - 10rem)}:host ::ng-deep .workflow-canvas [data-wf-node-type] .node{border:1px solid var(--wf-node-accent, #64748b)!important;background:var(--wf-node-bg, #f8fafc)!important}:host ::ng-deep .workflow-canvas [data-wf-node-type] .title{background:var(--wf-node-accent, #64748b)!important;color:#fff!important;font-weight:700}:host ::ng-deep .workflow-canvas [data-wf-node-type=action][data-wf-action-scope=col] .node{border-style:dashed!important}:host ::ng-deep .workflow-canvas [data-wf-node-type=action][data-wf-action-scope=tab] .node{border-style:solid!important}:host-context(.theme-dark) .workflow-toolbar{border-color:#2a3447;background:#141b27}:host-context(.theme-dark) .workflow-current-graph,:host-context(.theme-dark) .workflow-toolbar label{color:#d8e2f1}:host-context(.theme-dark) .workflow-toolbar input{border-color:#334155;background:#0f1724;color:#e5ecf8}:host-context(.theme-dark) .workflow-toolbar button{border-color:#335fcf;background:#335fcf}:host-context(.theme-dark) .workflow-palette{border-color:#2a3447;background:#141b27}:host-context(.theme-dark) .workflow-palette-title{color:#dbe4f2;border-bottom-color:#2a3447}:host-context(.theme-dark) .workflow-palette-item{border-color:#334155;background:#0f1724}:host-context(.theme-dark) .workflow-palette-item-title{color:#e6edf8}:host-context(.theme-dark) .workflow-palette-item-description{color:#9fb0c7}:host-context(.theme-dark) .workflow-palette-item-badge{background:#273247;color:#c9d7ec}:host-context(.theme-dark) .workflow-palette-item-route{border-color:#3b82f6;background:#0f1f35}:host-context(.theme-dark) .workflow-palette-item-route .workflow-palette-item-badge{background:#1e3a6a;color:#c8ddff}:host-context(.theme-dark) .workflow-palette-item-action{border-color:#8b5cf6;background:#24183d}:host-context(.theme-dark) .workflow-palette-item-action .workflow-palette-item-badge{background:#3a2370;color:#ded1ff}:host-context(.theme-dark) .workflow-palette-item-start{border-color:#22c55e;background:#11281c}:host-context(.theme-dark) .workflow-palette-item-condition{border-color:#14b8a6;background:#0f2726}:host-context(.theme-dark) .workflow-palette-item-end{border-color:#ef4444;background:#30171b}:host-context(.theme-dark) .workflow-canvas{border-color:#2a3447;background:radial-gradient(circle at 1px 1px,#334155 1px,transparent 0);background-size:24px 24px;background-color:#0f1724}:host-context(.theme-dark) .workflow-canvas-hint{color:#b9c8de;background:#0f1724e6;border-color:#334155}:host-context(.theme-dark) .route-popup-form label,:host-context(.theme-dark) .workflow-options-toggle{color:#d8e2f1}:host-context(.theme-dark) .workflow-options-input{border-color:#334155;background:#0f1724;color:#e5ecf8}:host-context(.theme-dark) .route-popup-btn{border-color:#334155;background:#111b2b;color:#d8e2f1}:host-context(.theme-dark) .route-popup-btn-primary{border-color:#335fcf;background:#335fcf;color:#fff}:host-context(.theme-dark) ::ng-deep .p-menu,:host-context(.theme-dark) ::ng-deep .p-contextmenu{background:#121b2b;border-color:#334155;color:#dbe4f2}:host-context(.theme-dark) ::ng-deep .p-menu .p-menu-item-content,:host-context(.theme-dark) ::ng-deep .p-contextmenu .p-menu-item-content{color:#dbe4f2}:host-context(.theme-dark) ::ng-deep .p-menu .p-menu-item-content:hover,:host-context(.theme-dark) ::ng-deep .p-contextmenu .p-menu-item-content:hover{background:#1f2a3d}:host-context(.theme-dark) ::ng-deep .p-dialog{background:#121b2b;border-color:#334155;color:#dbe4f2}:host-context(.theme-dark) ::ng-deep .p-dialog .p-dialog-header,:host-context(.theme-dark) ::ng-deep .p-dialog .p-dialog-content,:host-context(.theme-dark) ::ng-deep .p-dialog .p-dialog-footer{background:#121b2b;color:#dbe4f2;border-color:#334155}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["hostName", "header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "maskMotionOptions", "motionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i6.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "panelStyle", "styleClass", "panelStyleClass", "readonly", "editable", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "filterValue", "options", "appendTo", "motionOptions"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i2$1.AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "minQueryLength", "delay", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "addOnTab", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "addOnBlur", "separator", "appendTo", "motionOptions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onAdd", "onFocus", "onBlur", "onDropdownClick", "onClear", "onInputKeydown", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i9.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo", "motionOptions"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i14.ContextMenu, selector: "p-contextMenu, p-contextmenu, p-context-menu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "autoZIndex", "baseZIndex", "id", "breakpoint", "ariaLabel", "ariaLabelledBy", "pressDelay", "appendTo", "motionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: DataSourceComponent, selector: "wuic-data-source", inputs: ["route", "routeFromRouting", "hardcodedRoute", "autoload", "loading", "changeTracking", "parentRecord", "parentMetaInfo", "parentDatasource", "useComboEndpoint", "comboFormulaLookup", "comboMcId", "comboField", "comboExtraFields", "comboCurrentRecord", "componentRef"] }, { kind: "component", type: MetadataEditorComponent, selector: "wuic-metadata-editor", inputs: ["datasource", "hardcodedDatasource", "saveCallback", "hideReports", "hideRelatedTableActions", "hideRelatedColumnActions"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
5064
5064
  }
5065
5065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowDesignerComponent, decorators: [{
5066
5066
  type: Component,
@@ -5091,4 +5091,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
5091
5091
  }] } });
5092
5092
 
5093
5093
  export { WorkflowDesignerComponent };
5094
- //# sourceMappingURL=wuic-framework-lib-workflow-designer.component-Bm719AWV.mjs.map
5094
+ //# sourceMappingURL=wuic-framework-lib-workflow-designer.component-8mv_Rbz9.mjs.map