wuic-framework-lib 1.7.0 → 1.7.1

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 (21) hide show
  1. package/fesm2022/{wuic-framework-lib-chart-list.component-Bl424n7x.mjs → wuic-framework-lib-chart-list.component-Dq9IEKsY.mjs} +2 -2
  2. package/fesm2022/{wuic-framework-lib-code-editor.component-N6HMl2mf.mjs → wuic-framework-lib-code-editor.component-B6IpTSo8.mjs} +2 -2
  3. package/fesm2022/{wuic-framework-lib-designer.component-Bd2fwl6H.mjs → wuic-framework-lib-designer.component-D6cbqNFg.mjs} +2 -2
  4. package/fesm2022/{wuic-framework-lib-first-run-wizard.component-NN6cWVHL.mjs → wuic-framework-lib-first-run-wizard.component-D1ZQUl-q.mjs} +349 -33
  5. package/fesm2022/{wuic-framework-lib-framework-docs.component-B867JAYe.mjs → wuic-framework-lib-framework-docs.component-C_o5r7pg.mjs} +1424 -977
  6. package/fesm2022/{wuic-framework-lib-pivot-builder.component-DWukH0L-.mjs → wuic-framework-lib-pivot-builder.component-DkWGzJpr.mjs} +2 -2
  7. package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-DWO1Rcgv.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-D29go5yA.mjs} +2 -2
  8. package/fesm2022/{wuic-framework-lib-report-designer.component-QcrU81m6.mjs → wuic-framework-lib-report-designer.component-DcpCWghx.mjs} +2 -2
  9. package/fesm2022/{wuic-framework-lib-report-scaffold-dialog.component-U-zdOoRV.mjs → wuic-framework-lib-report-scaffold-dialog.component-CgUjG7Bi.mjs} +2 -2
  10. package/fesm2022/{wuic-framework-lib-report-viewer.component-B4LhA3SL.mjs → wuic-framework-lib-report-viewer.component-C4Opgl_M.mjs} +2 -2
  11. package/fesm2022/{wuic-framework-lib-scene3d-designer.component-DjOfzKLo.mjs → wuic-framework-lib-scene3d-designer.component-8l3vsyEb.mjs} +3 -3
  12. package/fesm2022/{wuic-framework-lib-scene3d-light-baker-gpu-C96T9uIW.mjs → wuic-framework-lib-scene3d-light-baker-gpu-C1w-8Aai.mjs} +2 -2
  13. package/fesm2022/{wuic-framework-lib-scene3d-viewer.component-Dboz1fjl.mjs → wuic-framework-lib-scene3d-viewer.component-nMSl5jbe.mjs} +2 -2
  14. package/fesm2022/{wuic-framework-lib-scheduler-list.component--wY21R3o.mjs → wuic-framework-lib-scheduler-list.component-Cvk3Zg0Q.mjs} +2 -2
  15. package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-Ek30J8v-.mjs → wuic-framework-lib-spreadsheet-list-sf.component-C1U7JPiq.mjs} +2 -2
  16. package/fesm2022/{wuic-framework-lib-timeline-list.component-aqCH4P0G.mjs → wuic-framework-lib-timeline-list.component-cZbPgNh1.mjs} +4 -4
  17. package/fesm2022/{wuic-framework-lib-workflow-designer.component-DMM8BeXm.mjs → wuic-framework-lib-workflow-designer.component-C_4RQGa0.mjs} +2 -2
  18. package/fesm2022/{wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs → wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs} +48 -24
  19. package/fesm2022/wuic-framework-lib.mjs +1 -1
  20. package/package.json +19 -2
  21. package/types/wuic-framework-lib.d.ts +5 -0
@@ -25,7 +25,7 @@ import { TableModule } from 'primeng/table';
25
25
  import { Tabs, TabList, Tab, TabPanels, TabPanel } from 'primeng/tabs';
26
26
  import * as i1$3 from '@materia-ui/ngx-monaco-editor';
27
27
  import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
28
- import { W as WtoolboxService, U as UserInfoService, T as TranslationManagerService, M as MetadataProviderService, h as DataProviderService, o as MetaInfo, g as MetadatiColonna, q as FilterInfo, G as GlobalHandler, m as WuicClientException, n as WuicErrorCodes, r as LicenseFeatureService, C as ChatbotHostRegistryService, b as DataSourceComponent, F as FilterBarComponent } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
28
+ import { W as WtoolboxService, U as UserInfoService, T as TranslationManagerService, M as MetadataProviderService, h as DataProviderService, o as MetaInfo, g as MetadatiColonna, q as FilterInfo, G as GlobalHandler, m as WuicClientException, n as WuicErrorCodes, r as LicenseFeatureService, C as ChatbotHostRegistryService, b as DataSourceComponent, F as FilterBarComponent } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
29
29
  import * as i7 from 'primeng/tooltip';
30
30
  import { TooltipModule } from 'primeng/tooltip';
31
31
  import { ClassicPreset, NodeEditor } from 'rete';
@@ -4950,4 +4950,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
4950
4950
  }] } });
4951
4951
 
4952
4952
  export { PivotBuilderComponent };
4953
- //# sourceMappingURL=wuic-framework-lib-pivot-builder.component-DWukH0L-.mjs.map
4953
+ //# sourceMappingURL=wuic-framework-lib-pivot-builder.component-DkWGzJpr.mjs.map
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Output, Input, Component } from '@angular/core';
3
3
  import * as i2 from 'primeng/dialog';
4
4
  import { DialogModule } from 'primeng/dialog';
5
- import { f as ParametricDialogComponent } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
5
+ import { f as ParametricDialogComponent } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
6
6
 
7
7
  class PromptDialogFallbackHostComponent {
8
8
  datasource;
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
96
96
  }] } });
97
97
 
98
98
  export { PromptDialogFallbackHostComponent };
99
- //# sourceMappingURL=wuic-framework-lib-prompt-dialog-fallback-host.component-DWO1Rcgv.mjs.map
99
+ //# sourceMappingURL=wuic-framework-lib-prompt-dialog-fallback-host.component-D29go5yA.mjs.map
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ViewChild, Component } from '@angular/core';
3
- import { W as WtoolboxService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
3
+ import { W as WtoolboxService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
4
4
  import * as i4 from 'stimulsoft-designer-angular';
5
5
  import { StimulsoftDesignerModule, StimulsoftDesignerComponent } from 'stimulsoft-designer-angular';
6
6
  import * as i1 from '@angular/router';
@@ -377,4 +377,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
377
377
  }] } });
378
378
 
379
379
  export { ReportDesignerComponent };
380
- //# sourceMappingURL=wuic-framework-lib-report-designer.component-QcrU81m6.mjs.map
380
+ //# sourceMappingURL=wuic-framework-lib-report-designer.component-DcpCWghx.mjs.map
@@ -13,7 +13,7 @@ import * as i6 from 'primeng/radiobutton';
13
13
  import { RadioButtonModule } from 'primeng/radiobutton';
14
14
  import * as i5$1 from 'primeng/select';
15
15
  import { SelectModule } from 'primeng/select';
16
- import { W as WtoolboxService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
16
+ import { W as WtoolboxService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
17
17
  import * as i1 from 'primeng/dynamicdialog';
18
18
  import * as i1$1 from '@angular/common/http';
19
19
 
@@ -428,4 +428,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
428
428
  }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }, { type: i1$1.HttpClient }] });
429
429
 
430
430
  export { ReportScaffoldDialogComponent };
431
- //# sourceMappingURL=wuic-framework-lib-report-scaffold-dialog.component-U-zdOoRV.mjs.map
431
+ //# sourceMappingURL=wuic-framework-lib-report-scaffold-dialog.component-CgUjG7Bi.mjs.map
@@ -5,7 +5,7 @@ import { NavigationEnd } from '@angular/router';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import * as i3 from 'stimulsoft-viewer-angular';
7
7
  import { StimulsoftViewerModule, StimulsoftViewerComponent } from 'stimulsoft-viewer-angular';
8
- import { W as WtoolboxService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
8
+ import { W as WtoolboxService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
9
9
  import { e as ensureWuicStimulsoftLicenseRegistered } from './wuic-framework-lib-stimulsoft-license.service-CsNNSFYs.mjs';
10
10
  import { firstValueFrom } from 'rxjs';
11
11
  import * as i1$1 from '@angular/common/http';
@@ -471,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
471
471
  }] } });
472
472
 
473
473
  export { ReportViewerComponent };
474
- //# sourceMappingURL=wuic-framework-lib-report-viewer.component-B4LhA3SL.mjs.map
474
+ //# sourceMappingURL=wuic-framework-lib-report-viewer.component-C4Opgl_M.mjs.map
@@ -18,7 +18,7 @@ import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
18
18
  import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
19
19
  import { STLLoader } from 'three/examples/jsm/loaders/STLLoader.js';
20
20
  import { i as isWebGpuSupported, d as defaultMeshRepeaterConfig, a as defaultRepeaterAxisDir, b as defaultCarouselConfig, c as defaultChartConfig, e as defaultSurfaceConfig, f as defaultGaugeConfig, g as defaultGraphConfig, h as defaultMapConfig, j as defaultWarehouseConfig, k as defaultKanbanConfig, l as defaultCalendarConfig, m as defaultStackedConfig, W as WUIC_TRANSIENT_FLAG, n as createScene3dRenderer, o as WUIC_SHADER_EFFECT_KEY, p as makeTextSpriteMesh, q as WUIC_MESH_REPEATER_KEY, r as addRepeaterPlaceholder, s as resolveAssetFormat, t as parseShaderEffect, S as SCENE3D_SHADER_EFFECT_DEFAULT, u as SCENE3D_SHADER_EFFECT_SCHEMA, v as buildEffectNodeMaterial, w as buildEffectShaderMaterial, x as getMeshRepeaterConfig, y as WUIC_REPEATER_CHILD, C as CarouselController, z as normalizeAssetToUnit, A as buildUploadTextureResolver, B as applyRepeaterTextureTo, D as defaultRepeaterTextureApply, E as regenerateRepeater, F as getPhysicsDef, G as createPhysicsWorld, H as WUIC_PHYSICS_KEY, I as WUIC_OBJECT_TYPE_KEY, J as carouselArrowDir, K as WUIC_REPEATER_RECORD, L as runRepeaterCallback, M as closeItemPopup, N as showItemPopup, O as WUIC_BINDING_KEY, P as swapNodeEffectMaterialsForSerialization, Q as serializeScene, R as deserializeScene } from './wuic-framework-lib-scene3d-shader-effect-DjHyCAFK.mjs';
21
- import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
21
+ import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
22
22
  import * as i1 from '@angular/router';
23
23
  import * as i3 from 'primeng/api';
24
24
 
@@ -2323,7 +2323,7 @@ class Scene3dDesignerComponent {
2323
2323
  // triangle soup): ordini di grandezza piu' veloce del raycaster CPU
2324
2324
  // sulle scene dense. Fallback CPU trasparente su qualsiasi errore.
2325
2325
  try {
2326
- const { bakeVertexLightingGpu } = await import('./wuic-framework-lib-scene3d-light-baker-gpu-C96T9uIW.mjs');
2326
+ const { bakeVertexLightingGpu } = await import('./wuic-framework-lib-scene3d-light-baker-gpu-C1w-8Aai.mjs');
2327
2327
  result = await bakeVertexLightingGpu(this.renderer, this.contentGroup, lights, bakeOptions);
2328
2328
  engine = 'gpu';
2329
2329
  }
@@ -4810,4 +4810,4 @@ var scene3dDesigner_component = /*#__PURE__*/Object.freeze({
4810
4810
  });
4811
4811
 
4812
4812
  export { WUIC_BAKED_FLAG as W, isBakeableMesh as i, scene3dDesigner_component as s };
4813
- //# sourceMappingURL=wuic-framework-lib-scene3d-designer.component-DjOfzKLo.mjs.map
4813
+ //# sourceMappingURL=wuic-framework-lib-scene3d-designer.component-8l3vsyEb.mjs.map
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import { i as isBakeableMesh, W as WUIC_BAKED_FLAG } from './wuic-framework-lib-scene3d-designer.component-DjOfzKLo.mjs';
2
+ import { i as isBakeableMesh, W as WUIC_BAKED_FLAG } from './wuic-framework-lib-scene3d-designer.component-8l3vsyEb.mjs';
3
3
 
4
4
  /**
5
5
  * Lightmap baking su COMPUTE SHADER (WebGPU) — stessa semantica del baker CPU
@@ -300,4 +300,4 @@ function applyBakeResults(ranges, packedColors) {
300
300
  }
301
301
 
302
302
  export { bakeVertexLightingGpu };
303
- //# sourceMappingURL=wuic-framework-lib-scene3d-light-baker-gpu-C96T9uIW.mjs.map
303
+ //# sourceMappingURL=wuic-framework-lib-scene3d-light-baker-gpu-C1w-8Aai.mjs.map
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Input, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import * as THREE from 'three';
4
4
  import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
5
- import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
5
+ import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
6
6
  import { R as deserializeScene, i as isWebGpuSupported, n as createScene3dRenderer, o as WUIC_SHADER_EFFECT_KEY, t as parseShaderEffect, v as buildEffectNodeMaterial, w as buildEffectShaderMaterial, x as getMeshRepeaterConfig, E as regenerateRepeater, y as WUIC_REPEATER_CHILD, C as CarouselController, b as defaultCarouselConfig, A as buildUploadTextureResolver, p as makeTextSpriteMesh, s as resolveAssetFormat, z as normalizeAssetToUnit, B as applyRepeaterTextureTo, G as createPhysicsWorld, F as getPhysicsDef, O as WUIC_BINDING_KEY, J as carouselArrowDir, K as WUIC_REPEATER_RECORD, M as closeItemPopup, N as showItemPopup, L as runRepeaterCallback } from './wuic-framework-lib-scene3d-shader-effect-DjHyCAFK.mjs';
7
7
  import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
8
8
  import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
@@ -1127,4 +1127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1127
1127
  }] } });
1128
1128
 
1129
1129
  export { Scene3dViewerComponent };
1130
- //# sourceMappingURL=wuic-framework-lib-scene3d-viewer.component-Dboz1fjl.mjs.map
1130
+ //# sourceMappingURL=wuic-framework-lib-scene3d-viewer.component-nMSl5jbe.mjs.map
@@ -12,7 +12,7 @@ import interactionPlugin from '@fullcalendar/interaction';
12
12
  import timeGridPlugin from '@fullcalendar/timegrid';
13
13
  import * as i1 from '@angular/platform-browser';
14
14
  import { Title } from '@angular/platform-browser';
15
- import { W as WtoolboxService, f as ParametricDialogComponent, q as FilterInfo, s as FilterItem, M as MetadataProviderService, D as DynamicGenericTemplateComponent, T as TranslationManagerService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
15
+ import { W as WtoolboxService, f as ParametricDialogComponent, q as FilterInfo, s as FilterItem, M as MetadataProviderService, D as DynamicGenericTemplateComponent, T as TranslationManagerService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
16
16
  import { BehaviorSubject } from 'rxjs';
17
17
 
18
18
  // https://fullcalendar.io/docs/initialize-globals#premium-bundle -
@@ -756,4 +756,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
756
756
  }] } });
757
757
 
758
758
  export { SchedulerListComponent };
759
- //# sourceMappingURL=wuic-framework-lib-scheduler-list.component--wY21R3o.mjs.map
759
+ //# sourceMappingURL=wuic-framework-lib-scheduler-list.component-Cvk3Zg0Q.mjs.map
@@ -7,7 +7,7 @@ import * as i8 from '@ngx-translate/core';
7
7
  import { TranslateModule } from '@ngx-translate/core';
8
8
  import * as i7 from '@syncfusion/ej2-angular-spreadsheet';
9
9
  import { SpreadsheetModule } from '@syncfusion/ej2-angular-spreadsheet';
10
- import { W as WtoolboxService, M as MetadataProviderService, U as UserInfoService, b as DataSourceComponent, I as ImportExportButtonComponent } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
10
+ import { W as WtoolboxService, M as MetadataProviderService, U as UserInfoService, b as DataSourceComponent, I as ImportExportButtonComponent } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
11
11
  import { registerLicense } from '@syncfusion/ej2-base';
12
12
  import * as i1 from '@angular/platform-browser';
13
13
  import * as i1$1 from '@angular/router';
@@ -4394,4 +4394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
4394
4394
  }] } });
4395
4395
 
4396
4396
  export { SpreadsheetListSfComponent };
4397
- //# sourceMappingURL=wuic-framework-lib-spreadsheet-list-sf.component-Ek30J8v-.mjs.map
4397
+ //# sourceMappingURL=wuic-framework-lib-spreadsheet-list-sf.component-C1U7JPiq.mjs.map
@@ -6,7 +6,7 @@ import { ButtonModule } from 'primeng/button';
6
6
  import * as i8 from '@ngx-translate/core';
7
7
  import { TranslateModule } from '@ngx-translate/core';
8
8
  import Gantt from 'frappe-gantt';
9
- import { u as TimelineOptions, g as MetadatiColonna, W as WtoolboxService, T as TranslationManagerService } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
9
+ import { u as TimelineOptions, g as MetadatiColonna, W as WtoolboxService, T as TranslationManagerService } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
10
10
  import * as i1 from '@angular/router';
11
11
 
12
12
  /**
@@ -424,7 +424,7 @@ class TimelineListComponent {
424
424
  }
425
425
  try {
426
426
  ds.setCurrent(task.record);
427
- const { ParametricDialogComponent } = await import('./wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs').then(function (n) { return n.c9; });
427
+ const { ParametricDialogComponent } = await import('./wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs').then(function (n) { return n.c9; });
428
428
  const header = `${this.t('timeline.popup.edit', 'Modifica')} ${this.metaInfo?.tableMetadata?.md_display_string || ''}`.trim();
429
429
  const ref = WtoolboxService.dialogService.open(ParametricDialogComponent, {
430
430
  data: {
@@ -477,7 +477,7 @@ class TimelineListComponent {
477
477
  // getModelFromObservable→setCurrent→getObservable e il valore torna null
478
478
  // al salvataggio (il chip resta visibile, ma il payload parte vuoto).
479
479
  const record = ds.addNewRecord(this.buildPredecessorPreset(task));
480
- const { ParametricDialogComponent } = await import('./wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs').then(function (n) { return n.c9; });
480
+ const { ParametricDialogComponent } = await import('./wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs').then(function (n) { return n.c9; });
481
481
  const header = `${this.t('timeline.popup.add', 'Nuovo')} ${this.metaInfo?.tableMetadata?.md_display_string || ''}`.trim();
482
482
  const ref = WtoolboxService.dialogService.open(ParametricDialogComponent, {
483
483
  data: {
@@ -802,4 +802,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
802
802
  }] } });
803
803
 
804
804
  export { TimelineListComponent };
805
- //# sourceMappingURL=wuic-framework-lib-timeline-list.component-aqCH4P0G.mjs.map
805
+ //# sourceMappingURL=wuic-framework-lib-timeline-list.component-cZbPgNh1.mjs.map
@@ -23,7 +23,7 @@ import { TooltipModule } from 'primeng/tooltip';
23
23
  import * as i8 from '@ngx-translate/core';
24
24
  import { TranslateModule } from '@ngx-translate/core';
25
25
  import { BehaviorSubject } from 'rxjs';
26
- import { W as WtoolboxService, M as MetadataProviderService, f as ParametricDialogComponent, m as WuicClientException, n as WuicErrorCodes, G as GlobalHandler, h as DataProviderService, C as ChatbotHostRegistryService, b as DataSourceComponent, l as MetadataEditorComponent } from './wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs';
26
+ import { W as WtoolboxService, M as MetadataProviderService, f as ParametricDialogComponent, m as WuicClientException, n as WuicErrorCodes, G as GlobalHandler, h as DataProviderService, C as ChatbotHostRegistryService, b as DataSourceComponent, l as MetadataEditorComponent } from './wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs';
27
27
 
28
28
  class WorkflowDesignerLayoutHelper {
29
29
  /**
@@ -9501,4 +9501,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
9501
9501
  }] } });
9502
9502
 
9503
9503
  export { WorkflowDesignerComponent };
9504
- //# sourceMappingURL=wuic-framework-lib-workflow-designer.component-DMM8BeXm.mjs.map
9504
+ //# sourceMappingURL=wuic-framework-lib-workflow-designer.component-C_4RQGa0.mjs.map
@@ -195,6 +195,12 @@ const WuicErrorCodes = {
195
195
  // SqlException e' coinvolta — il client mostrava il dialog "Errore database"
196
196
  // con stack e query al posto di un messaggio comprensibile.
197
197
  ValidationOptimisticConcurrency: 'errors.validation.optimistic_concurrency',
198
+ // CRUD senza predicato (HTTP 400): l'entity inviata non contiene alcuna colonna
199
+ // riconosciuta dai metadata, quindi la WHERE della UPDATE/DELETE autogenerata
200
+ // sarebbe vuota e lo statement colpirebbe l'intera tabella. Il server rifiuta.
201
+ // Causa tipica lato client: chiavi con case diverso da `mc_nome_colonna`, che e'
202
+ // case-sensitive (es. `cityID` invece di `CityID`), o PK omessa dal payload.
203
+ CrudMissingKeyPredicate: 'errors.metaservice.crud.missing_key_predicate',
198
204
  DbSqlException: 'errors.db.sql_exception', // passthrough — dialog dedicato
199
205
  DbConnection: 'errors.db.connection',
200
206
  DbTimeout: 'errors.db.timeout',
@@ -3334,7 +3340,7 @@ class WtoolboxService {
3334
3340
  const appRef = resolvedInjector.get(ApplicationRef);
3335
3341
  const environmentInjector = resolvedInjector.get(EnvironmentInjector);
3336
3342
  const close$ = new Subject();
3337
- const { PromptDialogFallbackHostComponent } = await import('./wuic-framework-lib-prompt-dialog-fallback-host.component-DWO1Rcgv.mjs');
3343
+ const { PromptDialogFallbackHostComponent } = await import('./wuic-framework-lib-prompt-dialog-fallback-host.component-D29go5yA.mjs');
3338
3344
  const hostRef = createComponent(PromptDialogFallbackHostComponent, { environmentInjector });
3339
3345
  hostRef.instance.datasource = dialogConfig?.data?.datasource;
3340
3346
  hostRef.instance.header = String(dialogConfig?.header || '');
@@ -24188,7 +24194,7 @@ class LazySchedulerListComponent {
24188
24194
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
24189
24195
  */
24190
24196
  async ngOnInit() {
24191
- schedulerListComponentPromise ??= import('./wuic-framework-lib-scheduler-list.component--wY21R3o.mjs').then((m) => m.SchedulerListComponent);
24197
+ schedulerListComponentPromise ??= import('./wuic-framework-lib-scheduler-list.component-Cvk3Zg0Q.mjs').then((m) => m.SchedulerListComponent);
24192
24198
  this.loadedComponent = await schedulerListComponentPromise;
24193
24199
  this.cdr.markForCheck();
24194
24200
  }
@@ -24396,7 +24402,7 @@ class LazySpreadsheetListSfComponent {
24396
24402
  this.activatedRoute = activatedRoute;
24397
24403
  }
24398
24404
  async ngOnInit() {
24399
- spreadsheetListSfComponentPromise ??= import('./wuic-framework-lib-spreadsheet-list-sf.component-Ek30J8v-.mjs').then((m) => m.SpreadsheetListSfComponent);
24405
+ spreadsheetListSfComponentPromise ??= import('./wuic-framework-lib-spreadsheet-list-sf.component-C1U7JPiq.mjs').then((m) => m.SpreadsheetListSfComponent);
24400
24406
  this.loadedComponent = await spreadsheetListSfComponentPromise;
24401
24407
  // Quando la promise e' gia' risolta dal cache module-scope (secondo mount
24402
24408
  // post-refresh), il microtask che risolve `await` non scatena sempre CD
@@ -24674,7 +24680,7 @@ class LazyChartListComponent {
24674
24680
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
24675
24681
  */
24676
24682
  async ngOnInit() {
24677
- chartListComponentPromise ??= import('./wuic-framework-lib-chart-list.component-Bl424n7x.mjs').then((m) => m.ChartListComponent);
24683
+ chartListComponentPromise ??= import('./wuic-framework-lib-chart-list.component-Dq9IEKsY.mjs').then((m) => m.ChartListComponent);
24678
24684
  this.loadedComponent = await chartListComponentPromise;
24679
24685
  this.cdr.markForCheck();
24680
24686
  }
@@ -24996,7 +25002,7 @@ class LazyTimelineListComponent {
24996
25002
  this.cdr = cdr;
24997
25003
  }
24998
25004
  async ngOnInit() {
24999
- timelineListComponentPromise ??= import('./wuic-framework-lib-timeline-list.component-aqCH4P0G.mjs').then((m) => m.TimelineListComponent);
25005
+ timelineListComponentPromise ??= import('./wuic-framework-lib-timeline-list.component-cZbPgNh1.mjs').then((m) => m.TimelineListComponent);
25000
25006
  this.loadedComponent = await timelineListComponentPromise;
25001
25007
  this.cdr.markForCheck();
25002
25008
  }
@@ -30682,7 +30688,7 @@ class MetadataEditorComponent {
30682
30688
  }
30683
30689
  let result;
30684
30690
  try {
30685
- const { ReportScaffoldDialogComponent } = await import('./wuic-framework-lib-report-scaffold-dialog.component-U-zdOoRV.mjs');
30691
+ const { ReportScaffoldDialogComponent } = await import('./wuic-framework-lib-report-scaffold-dialog.component-CgUjG7Bi.mjs');
30686
30692
  WtoolboxService.resolveDialogServiceFromInjector();
30687
30693
  const ref = WtoolboxService.dialogService?.open?.(ReportScaffoldDialogComponent, {
30688
30694
  header: this.t('report.scaffold.dialog_title', 'Create report'),
@@ -41367,6 +41373,14 @@ class MapListComponent {
41367
41373
  /**
41368
41374
  * Proprieta di stato del componente per map lib, usata dalla logica interna e dal template.
41369
41375
  */
41376
+ /** True when the Maps JavaScript API is not loaded (missing API key): the view
41377
+ * shows an inline notice instead of failing with a blocking error dialog. */
41378
+ mapsApiUnavailable = false;
41379
+ /** The Maps script sets `window.google.maps.importLibrary` once it has loaded. */
41380
+ static isMapsApiAvailable() {
41381
+ const g = globalThis.google;
41382
+ return !!(g && g.maps && typeof g.maps.importLibrary === 'function');
41383
+ }
41370
41384
  MAP_LIB;
41371
41385
  /**
41372
41386
  * Proprieta di stato del componente per marker lib, usata dalla logica interna e dal template.
@@ -41810,6 +41824,16 @@ class MapListComponent {
41810
41824
  this.syncMapViewportFromMeta(info.metaInfo);
41811
41825
  let title = self.metaInfo.tableMetadata.md_display_string;
41812
41826
  self.titleService.setTitle(title);
41827
+ // Google Maps JavaScript API needs an API key (also on localhost): the
41828
+ // browser loads the script only after `/api/Config/MapsKey` answers with
41829
+ // one. Without it `google` is undefined and every call below threw a
41830
+ // ReferenceError that surfaced as the application-wide modal error
41831
+ // dialog, blocking the whole UI. Report it inside the view instead.
41832
+ if (!MapListComponent.isMapsApiAvailable()) {
41833
+ this.mapsApiUnavailable = true;
41834
+ this.loading = false;
41835
+ return;
41836
+ }
41813
41837
  if (!self.initCompleted) {
41814
41838
  // Drawing library NON piu' importata: deprecata da Maps JavaScript
41815
41839
  // API (annunciato 2025-08, rimossa in versioni rilasciate 2026-05).
@@ -43494,11 +43518,11 @@ class MapListComponent {
43494
43518
  window.removeEventListener('scroll', this.onWindowScroll, true);
43495
43519
  }
43496
43520
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MapListComponent, deps: [{ token: i1$5.Title }, { token: i0.ChangeDetectorRef }, { token: i1$2.ActivatedRoute }, { token: UserInfoService }, { token: TranslationManagerService }], target: i0.ɵɵFactoryTarget.Component });
43497
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: MapListComponent, isStandalone: true, selector: "wuic-map-list", inputs: { hardcodedRoute: "hardcodedRoute", parentRecord: "parentRecord", parentMetaInfo: "parentMetaInfo", datasource: "datasource", hardcodedDatasource: "hardcodedDatasource", hideToolbar: "hideToolbar" }, outputs: { onMapClick: "onMapClick", onMarkerDragStart: "onMarkerDragStart", onMarkerDragEnd: "onMarkerDragEnd", onMarkerClick: "onMarkerClick", onPolygonClick: "onPolygonClick", onPolygonShapeChangedEvent: "onPolygonShapeChangedEvent", onMapDataBound: "onMapDataBound", onMapBoundsChanged: "onMapBoundsChanged", onMapCenterChanged: "onMapCenterChanged", onMapContextMenu: "onMapContextMenu", onMapDrag: "onMapDrag", onMapDragEnd: "onMapDragEnd", onMapDragStart: "onMapDragStart", onMapMouseMove: "onMapMouseMove", onMapMouseOut: "onMapMouseOut", onMapMouseOver: "onMapMouseOver", onMapResize: "onMapResize", onMapZoomChanged: "onMapZoomChanged" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }, { propertyName: "info", first: true, predicate: MapInfoWindow, descendants: true }, { propertyName: "mapHostRef", first: true, predicate: ["mapHostRef"], descendants: true }, { propertyName: "markerElements", predicate: ["markerElem"], descendants: true }], ngImport: i0, template: "<div class=\"map-list-root\" #mapHostRef [style.height.px]=\"mapHostHeightPx\" [style.max-height.px]=\"mapHostHeightPx\">\n @if (loading) {\n <div class=\"map-loading-overlay\">\n <div class=\"map-loading-spinner\" aria-hidden=\"true\"></div>\n <div class=\"map-loading-label\">Loading map...</div>\n </div>\n }\n @if (archetypeOptions) {\n <google-map #map height=\"100%\" width=\"100%\" [zoom]=\"zoom\" [center]=\"center\" [options]=\"archetypeOptions\"\n (boundsChanged)=\"handleMapBoundsChanged()\" (centerChanged)=\"handleMapCenterChanged()\"\n (mapRightclick)=\"handleMapContextMenu($event)\" (mapDrag)=\"handleMapDrag($event)\"\n (mapDragend)=\"handleMapDragEnd($event)\" (mapDragstart)=\"handleMapDragStart($event)\"\n (mapMousemove)=\"handleMapMouseMove($event)\" (mapMouseout)=\"handleMapMouseOut($event)\"\n (mapMouseover)=\"handleMapMouseOver($event)\" (zoomChanged)=\"handleMapZoomChanged()\" (mapClick)=\"hello($event)\">\n @for (record of data; track record) {\n @if (record.__marker) {\n <!-- 2026-05-03: rimosso `(mapClick)=\"openInfo(...)\"` perche'\n @angular/google-maps@21.x espone `mapClick` come\n `getLazyEmitter('click')` sul AdvancedMarkerElement; Google ha\n deprecato l'evento `click` (use `gmp-click` instead). Il binding\n viene fatto manualmente in ngAfterViewInit + markerElements.changes\n (vedi `wireMarkerGmpClick()` nel .ts). -->\n <map-advanced-marker #markerElem=\"mapAdvancedMarker\" [position]=\"record.__marker.position\"\n [title]=\"record.__marker.title\" [options]=\"record.__marker.options\" [gmpDraggable]=\"record.__marker.draggable\"\n (mapDragstart)=\"mapDragstart(markerElem, record.__marker, $event)\" [content]=\"record.__marker.content\"\n (mapDragend)=\"mapDragend(markerElem, record.__marker, $event)\"></map-advanced-marker>\n }\n }\n @for (record of data; track record; let polygonIndex = $index) {\n @if (record.__polygon) {\n <map-polygon #polygonElem=\"mapPolygon\" [paths]=\"record.__polygon.paths\" [options]=\"record.__polygon.options\"\n (polygonClick)=\"openPolygonInfo(record.__polygon, $event)\"\n (polygonMouseup)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"\n (polygonDragend)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"></map-polygon>\n }\n }\n @for (poly of polylines; track poly.group) {\n <map-polyline [path]=\"poly.path\" [options]=\"poly.options\"></map-polyline>\n }\n @for (dot of polylineDots; track dot) {\n <map-circle [center]=\"dot.center\" [radius]=\"dot.options.radius\" [options]=\"dot.options\"\n (circleClick)=\"openWaypointInfo(dot, $event)\"></map-circle>\n }\n <map-info-window #info [options]=\"infoWindowOptions\">\n @if (currentMarker) {\n <ng-container\n *ngComponentOutlet=\"itemTemplate; inputs: { record: currentMarker, rowData: currentMarker, metaInfo: metaInfo, datasource: datasource, getDescription: renderMarkerInfo.bind(this) }\"></ng-container>\n }\n </map-info-window>\n </google-map>\n @if (!hideToolbar) {\n <div class=\"map-controls\">\n <p-button [label]=\"'map.zoom_in' | translate\" (onClick)=\"zoomIn()\"></p-button>\n <p-button [label]=\"'map.zoom_out' | translate\" (onClick)=\"zoomOut()\"></p-button>\n @if (showMarkerDragButton()) {\n <p-button [label]=\"'map.toggle_marker_draggable' | translate\" (onClick)=\"setAllDraggable()\"></p-button>\n }\n @if (showPolygonEditButton()) {\n <p-button [label]=\"polygonEditMode ? 'Save polygons' : 'Edit polygons'\"\n [severity]=\"polygonEditMode ? 'success' : 'secondary'\" (onClick)=\"togglePolygonEditing()\"></p-button>\n }\n @if (isAdmin) {\n <p-button [label]=\"'map.configure' | translate\" icon=\"pi pi-cog\" (onClick)=\"openMapConfig()\"></p-button>\n }\n </div>\n }\n }\n @if (!archetypeOptions && !loading) {\n <div class=\"map-empty-placeholder\"></div>\n }\n</div>\n\n<wuic-archetype-configurator [visible]=\"showConfigDialog\" (visibleChange)=\"showConfigDialog = $event\"\n [archetype]=\"'map'\" [metaInfo]=\"metaInfo\" [value]=\"archetypeOptions\" (applyConfig)=\"applyMapConfig($event)\">\n</wuic-archetype-configurator>", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;overflow:hidden}.map-list-root{position:relative;display:flex;flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.map-list-root google-map{display:flex;flex:1 1 auto;height:100%}.map-controls{position:absolute;bottom:30px;left:.5rem;z-index:3;display:flex;gap:.5rem;flex-wrap:wrap}.map-loading-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:color-mix(in srgb,var(--surface-ground, #f8fafc) 88%,transparent)}.map-loading-spinner{width:2.4rem;height:2.4rem;border-radius:50%;border:3px solid var(--surface-border, #cbd5e1);border-top-color:var(--primary-color, #3b82f6);animation:wuic-map-spin .8s linear infinite}.map-loading-label{font-size:.95rem;color:var(--text-color-secondary, #475569)}.map-empty-placeholder{width:100%;height:100%}@keyframes wuic-map-spin{to{transform:rotate(360deg)}}.map-config-grid{display:grid;grid-template-columns:1fr;gap:.45rem}.map-config-grid input,.map-config-grid select,.map-config-grid textarea{width:100%}.map-config-grid textarea{resize:vertical}:host ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #ffffff);color:var(--text-color, #1f2937);border:1px solid var(--surface-border, #e5e7eb);box-shadow:0 10px 24px #0003;border-radius:10px;overflow:visible!important}:host ::ng-deep .gm-style .gm-style-iw-d{overflow:visible!important;max-height:none!important;color:inherit}:host ::ng-deep .gm-style .gm-ui-hover-effect{filter:none}:host ::ng-deep .gm-style .map-info{color:inherit}:host ::ng-deep .gm-style .map-info-title{color:inherit;font-weight:600}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #111827);color:var(--text-color, #e5e7eb);border-color:var(--surface-border, #374151);box-shadow:0 12px 28px #00000073}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-tc:after{background:var(--surface-card, #111827)}:host-context(.theme-dark) ::ng-deep .gm-style .gm-ui-hover-effect>span{background-color:var(--text-color, #e5e7eb)!important}:host-context(.theme-dark) ::ng-deep .gm-style .p-tieredmenu,:host-context(.theme-dark) ::ng-deep .gm-style .dropdown-content{background:var(--surface-overlay, #0f172a)!important;color:var(--text-color, #e5e7eb)!important;border-color:var(--surface-border, #334155)!important}\n"], dependencies: [{ kind: "ngmodule", type: GoogleMapsModule }, { kind: "component", type: i5$2.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapId", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i5$2.MapCircle, selector: "map-circle", inputs: ["options", "center", "radius"], outputs: ["centerChanged", "circleClick", "circleDblclick", "circleDrag", "circleDragend", "circleDragstart", "circleMousedown", "circleMousemove", "circleMouseout", "circleMouseover", "circleMouseup", "radiusChanged", "circleRightclick", "circleInitialized"], exportAs: ["mapCircle"] }, { kind: "directive", type: i5$2.MapInfoWindow, selector: "map-info-window", inputs: ["options", "position"], outputs: ["closeclick", "contentChanged", "domready", "positionChanged", "zindexChanged", "infoWindowInitialized"], exportAs: ["mapInfoWindow"] }, { kind: "directive", type: i5$2.MapAdvancedMarker, selector: "map-advanced-marker", inputs: ["title", "position", "content", "gmpDraggable", "options", "zIndex"], outputs: ["mapClick", "mapDblclick", "mapMouseout", "mapMouseover", "mapMouseup", "mapRightclick", "mapDrag", "mapDragend", "mapDragstart", "markerInitialized"], exportAs: ["mapAdvancedMarker"] }, { kind: "directive", type: i5$2.MapPolygon, selector: "map-polygon", inputs: ["options", "paths"], outputs: ["polygonClick", "polygonDblclick", "polygonDrag", "polygonDragend", "polygonDragstart", "polygonMousedown", "polygonMousemove", "polygonMouseout", "polygonMouseover", "polygonMouseup", "polygonRightclick", "polygonInitialized"], exportAs: ["mapPolygon"] }, { kind: "directive", type: i5$2.MapPolyline, selector: "map-polyline", inputs: ["options", "path"], outputs: ["polylineClick", "polylineDblclick", "polylineDrag", "polylineDragend", "polylineDragstart", "polylineMousedown", "polylineMousemove", "polylineMouseout", "polylineMouseover", "polylineMouseup", "polylineRightclick", "polylineInitialized"], exportAs: ["mapPolyline"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ArchetypeConfiguratorComponent, selector: "wuic-archetype-configurator", inputs: ["visible", "archetype", "metaInfo", "value"], outputs: ["visibleChange", "applyConfig"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
43521
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: MapListComponent, isStandalone: true, selector: "wuic-map-list", inputs: { hardcodedRoute: "hardcodedRoute", parentRecord: "parentRecord", parentMetaInfo: "parentMetaInfo", datasource: "datasource", hardcodedDatasource: "hardcodedDatasource", hideToolbar: "hideToolbar" }, outputs: { onMapClick: "onMapClick", onMarkerDragStart: "onMarkerDragStart", onMarkerDragEnd: "onMarkerDragEnd", onMarkerClick: "onMarkerClick", onPolygonClick: "onPolygonClick", onPolygonShapeChangedEvent: "onPolygonShapeChangedEvent", onMapDataBound: "onMapDataBound", onMapBoundsChanged: "onMapBoundsChanged", onMapCenterChanged: "onMapCenterChanged", onMapContextMenu: "onMapContextMenu", onMapDrag: "onMapDrag", onMapDragEnd: "onMapDragEnd", onMapDragStart: "onMapDragStart", onMapMouseMove: "onMapMouseMove", onMapMouseOut: "onMapMouseOut", onMapMouseOver: "onMapMouseOver", onMapResize: "onMapResize", onMapZoomChanged: "onMapZoomChanged" }, viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true }, { propertyName: "info", first: true, predicate: MapInfoWindow, descendants: true }, { propertyName: "mapHostRef", first: true, predicate: ["mapHostRef"], descendants: true }, { propertyName: "markerElements", predicate: ["markerElem"], descendants: true }], ngImport: i0, template: "<div class=\"map-list-root\" #mapHostRef [style.height.px]=\"mapHostHeightPx\" [style.max-height.px]=\"mapHostHeightPx\">\r\n @if (loading) {\r\n <div class=\"map-loading-overlay\">\r\n <div class=\"map-loading-spinner\" aria-hidden=\"true\"></div>\r\n <div class=\"map-loading-label\">Loading map...</div>\r\n </div>\r\n }\r\n @if (mapsApiUnavailable) {\r\n <div class=\"map-unavailable\" role=\"status\">\r\n <i class=\"pi pi-map\" aria-hidden=\"true\"></i>\r\n <div class=\"map-unavailable__title\">{{ 'map.api_key_missing.title' | translate }}</div>\r\n <div class=\"map-unavailable__text\">{{ 'map.api_key_missing.detail' | translate }}</div>\r\n </div>\r\n }\r\n @if (archetypeOptions && !mapsApiUnavailable) {\r\n <google-map #map height=\"100%\" width=\"100%\" [zoom]=\"zoom\" [center]=\"center\" [options]=\"archetypeOptions\"\r\n (boundsChanged)=\"handleMapBoundsChanged()\" (centerChanged)=\"handleMapCenterChanged()\"\r\n (mapRightclick)=\"handleMapContextMenu($event)\" (mapDrag)=\"handleMapDrag($event)\"\r\n (mapDragend)=\"handleMapDragEnd($event)\" (mapDragstart)=\"handleMapDragStart($event)\"\r\n (mapMousemove)=\"handleMapMouseMove($event)\" (mapMouseout)=\"handleMapMouseOut($event)\"\r\n (mapMouseover)=\"handleMapMouseOver($event)\" (zoomChanged)=\"handleMapZoomChanged()\" (mapClick)=\"hello($event)\">\r\n @for (record of data; track record) {\r\n @if (record.__marker) {\r\n <!-- 2026-05-03: rimosso `(mapClick)=\"openInfo(...)\"` perche'\r\n @angular/google-maps@21.x espone `mapClick` come\r\n `getLazyEmitter('click')` sul AdvancedMarkerElement; Google ha\r\n deprecato l'evento `click` (use `gmp-click` instead). Il binding\r\n viene fatto manualmente in ngAfterViewInit + markerElements.changes\r\n (vedi `wireMarkerGmpClick()` nel .ts). -->\r\n <map-advanced-marker #markerElem=\"mapAdvancedMarker\" [position]=\"record.__marker.position\"\r\n [title]=\"record.__marker.title\" [options]=\"record.__marker.options\" [gmpDraggable]=\"record.__marker.draggable\"\r\n (mapDragstart)=\"mapDragstart(markerElem, record.__marker, $event)\" [content]=\"record.__marker.content\"\r\n (mapDragend)=\"mapDragend(markerElem, record.__marker, $event)\"></map-advanced-marker>\r\n }\r\n }\r\n @for (record of data; track record; let polygonIndex = $index) {\r\n @if (record.__polygon) {\r\n <map-polygon #polygonElem=\"mapPolygon\" [paths]=\"record.__polygon.paths\" [options]=\"record.__polygon.options\"\r\n (polygonClick)=\"openPolygonInfo(record.__polygon, $event)\"\r\n (polygonMouseup)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"\r\n (polygonDragend)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"></map-polygon>\r\n }\r\n }\r\n @for (poly of polylines; track poly.group) {\r\n <map-polyline [path]=\"poly.path\" [options]=\"poly.options\"></map-polyline>\r\n }\r\n @for (dot of polylineDots; track dot) {\r\n <map-circle [center]=\"dot.center\" [radius]=\"dot.options.radius\" [options]=\"dot.options\"\r\n (circleClick)=\"openWaypointInfo(dot, $event)\"></map-circle>\r\n }\r\n <map-info-window #info [options]=\"infoWindowOptions\">\r\n @if (currentMarker) {\r\n <ng-container\r\n *ngComponentOutlet=\"itemTemplate; inputs: { record: currentMarker, rowData: currentMarker, metaInfo: metaInfo, datasource: datasource, getDescription: renderMarkerInfo.bind(this) }\"></ng-container>\r\n }\r\n </map-info-window>\r\n </google-map>\r\n @if (!hideToolbar) {\r\n <div class=\"map-controls\">\r\n <p-button [label]=\"'map.zoom_in' | translate\" (onClick)=\"zoomIn()\"></p-button>\r\n <p-button [label]=\"'map.zoom_out' | translate\" (onClick)=\"zoomOut()\"></p-button>\r\n @if (showMarkerDragButton()) {\r\n <p-button [label]=\"'map.toggle_marker_draggable' | translate\" (onClick)=\"setAllDraggable()\"></p-button>\r\n }\r\n @if (showPolygonEditButton()) {\r\n <p-button [label]=\"polygonEditMode ? 'Save polygons' : 'Edit polygons'\"\r\n [severity]=\"polygonEditMode ? 'success' : 'secondary'\" (onClick)=\"togglePolygonEditing()\"></p-button>\r\n }\r\n @if (isAdmin) {\r\n <p-button [label]=\"'map.configure' | translate\" icon=\"pi pi-cog\" (onClick)=\"openMapConfig()\"></p-button>\r\n }\r\n </div>\r\n }\r\n }\r\n @if (!archetypeOptions && !loading) {\r\n <div class=\"map-empty-placeholder\"></div>\r\n }\r\n</div>\r\n\r\n<wuic-archetype-configurator [visible]=\"showConfigDialog\" (visibleChange)=\"showConfigDialog = $event\"\r\n [archetype]=\"'map'\" [metaInfo]=\"metaInfo\" [value]=\"archetypeOptions\" (applyConfig)=\"applyMapConfig($event)\">\r\n</wuic-archetype-configurator>", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;overflow:hidden}.map-list-root{position:relative;display:flex;flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.map-list-root google-map{display:flex;flex:1 1 auto;height:100%}.map-controls{position:absolute;bottom:30px;left:.5rem;z-index:3;display:flex;gap:.5rem;flex-wrap:wrap}.map-loading-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:color-mix(in srgb,var(--surface-ground, #f8fafc) 88%,transparent)}.map-loading-spinner{width:2.4rem;height:2.4rem;border-radius:50%;border:3px solid var(--surface-border, #cbd5e1);border-top-color:var(--primary-color, #3b82f6);animation:wuic-map-spin .8s linear infinite}.map-loading-label{font-size:.95rem;color:var(--text-color-secondary, #475569)}.map-empty-placeholder{width:100%;height:100%}@keyframes wuic-map-spin{to{transform:rotate(360deg)}}.map-config-grid{display:grid;grid-template-columns:1fr;gap:.45rem}.map-config-grid input,.map-config-grid select,.map-config-grid textarea{width:100%}.map-config-grid textarea{resize:vertical}:host ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #ffffff);color:var(--text-color, #1f2937);border:1px solid var(--surface-border, #e5e7eb);box-shadow:0 10px 24px #0003;border-radius:10px;overflow:visible!important}:host ::ng-deep .gm-style .gm-style-iw-d{overflow:visible!important;max-height:none!important;color:inherit}:host ::ng-deep .gm-style .gm-ui-hover-effect{filter:none}:host ::ng-deep .gm-style .map-info{color:inherit}:host ::ng-deep .gm-style .map-info-title{color:inherit;font-weight:600}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #111827);color:var(--text-color, #e5e7eb);border-color:var(--surface-border, #374151);box-shadow:0 12px 28px #00000073}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-tc:after{background:var(--surface-card, #111827)}:host-context(.theme-dark) ::ng-deep .gm-style .gm-ui-hover-effect>span{background-color:var(--text-color, #e5e7eb)!important}:host-context(.theme-dark) ::ng-deep .gm-style .p-tieredmenu,:host-context(.theme-dark) ::ng-deep .gm-style .dropdown-content{background:var(--surface-overlay, #0f172a)!important;color:var(--text-color, #e5e7eb)!important;border-color:var(--surface-border, #334155)!important}.map-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;height:100%;min-height:220px;padding:1.5rem;text-align:center;color:var(--text-color-secondary, #64748b);background:var(--surface-ground, #f8fafc);border:1px dashed var(--surface-border, #e2e8f0);border-radius:6px}.map-unavailable i{font-size:1.75rem;opacity:.6}.map-unavailable__title{font-weight:600;color:var(--text-color, #1e293b)}.map-unavailable__text{max-width:46ch;line-height:1.45;font-size:.9rem}\n"], dependencies: [{ kind: "ngmodule", type: GoogleMapsModule }, { kind: "component", type: i5$2.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapId", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i5$2.MapCircle, selector: "map-circle", inputs: ["options", "center", "radius"], outputs: ["centerChanged", "circleClick", "circleDblclick", "circleDrag", "circleDragend", "circleDragstart", "circleMousedown", "circleMousemove", "circleMouseout", "circleMouseover", "circleMouseup", "radiusChanged", "circleRightclick", "circleInitialized"], exportAs: ["mapCircle"] }, { kind: "directive", type: i5$2.MapInfoWindow, selector: "map-info-window", inputs: ["options", "position"], outputs: ["closeclick", "contentChanged", "domready", "positionChanged", "zindexChanged", "infoWindowInitialized"], exportAs: ["mapInfoWindow"] }, { kind: "directive", type: i5$2.MapAdvancedMarker, selector: "map-advanced-marker", inputs: ["title", "position", "content", "gmpDraggable", "options", "zIndex"], outputs: ["mapClick", "mapDblclick", "mapMouseout", "mapMouseover", "mapMouseup", "mapRightclick", "mapDrag", "mapDragend", "mapDragstart", "markerInitialized"], exportAs: ["mapAdvancedMarker"] }, { kind: "directive", type: i5$2.MapPolygon, selector: "map-polygon", inputs: ["options", "paths"], outputs: ["polygonClick", "polygonDblclick", "polygonDrag", "polygonDragend", "polygonDragstart", "polygonMousedown", "polygonMousemove", "polygonMouseout", "polygonMouseover", "polygonMouseup", "polygonRightclick", "polygonInitialized"], exportAs: ["mapPolygon"] }, { kind: "directive", type: i5$2.MapPolyline, selector: "map-polyline", inputs: ["options", "path"], outputs: ["polylineClick", "polylineDblclick", "polylineDrag", "polylineDragend", "polylineDragstart", "polylineMousedown", "polylineMousemove", "polylineMouseout", "polylineMouseover", "polylineMouseup", "polylineRightclick", "polylineInitialized"], exportAs: ["mapPolyline"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["hostName", "type", "badge", "disabled", "raised", "rounded", "text", "plain", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "iconPos", "icon", "label", "loading", "loadingIcon", "severity", "buttonProps", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ArchetypeConfiguratorComponent, selector: "wuic-archetype-configurator", inputs: ["visible", "archetype", "metaInfo", "value"], outputs: ["visibleChange", "applyConfig"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
43498
43522
  }
43499
43523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MapListComponent, decorators: [{
43500
43524
  type: Component,
43501
- args: [{ selector: 'wuic-map-list', imports: [GoogleMapsModule, NgComponentOutlet, ButtonModule, TranslateModule, ArchetypeConfiguratorComponent], template: "<div class=\"map-list-root\" #mapHostRef [style.height.px]=\"mapHostHeightPx\" [style.max-height.px]=\"mapHostHeightPx\">\n @if (loading) {\n <div class=\"map-loading-overlay\">\n <div class=\"map-loading-spinner\" aria-hidden=\"true\"></div>\n <div class=\"map-loading-label\">Loading map...</div>\n </div>\n }\n @if (archetypeOptions) {\n <google-map #map height=\"100%\" width=\"100%\" [zoom]=\"zoom\" [center]=\"center\" [options]=\"archetypeOptions\"\n (boundsChanged)=\"handleMapBoundsChanged()\" (centerChanged)=\"handleMapCenterChanged()\"\n (mapRightclick)=\"handleMapContextMenu($event)\" (mapDrag)=\"handleMapDrag($event)\"\n (mapDragend)=\"handleMapDragEnd($event)\" (mapDragstart)=\"handleMapDragStart($event)\"\n (mapMousemove)=\"handleMapMouseMove($event)\" (mapMouseout)=\"handleMapMouseOut($event)\"\n (mapMouseover)=\"handleMapMouseOver($event)\" (zoomChanged)=\"handleMapZoomChanged()\" (mapClick)=\"hello($event)\">\n @for (record of data; track record) {\n @if (record.__marker) {\n <!-- 2026-05-03: rimosso `(mapClick)=\"openInfo(...)\"` perche'\n @angular/google-maps@21.x espone `mapClick` come\n `getLazyEmitter('click')` sul AdvancedMarkerElement; Google ha\n deprecato l'evento `click` (use `gmp-click` instead). Il binding\n viene fatto manualmente in ngAfterViewInit + markerElements.changes\n (vedi `wireMarkerGmpClick()` nel .ts). -->\n <map-advanced-marker #markerElem=\"mapAdvancedMarker\" [position]=\"record.__marker.position\"\n [title]=\"record.__marker.title\" [options]=\"record.__marker.options\" [gmpDraggable]=\"record.__marker.draggable\"\n (mapDragstart)=\"mapDragstart(markerElem, record.__marker, $event)\" [content]=\"record.__marker.content\"\n (mapDragend)=\"mapDragend(markerElem, record.__marker, $event)\"></map-advanced-marker>\n }\n }\n @for (record of data; track record; let polygonIndex = $index) {\n @if (record.__polygon) {\n <map-polygon #polygonElem=\"mapPolygon\" [paths]=\"record.__polygon.paths\" [options]=\"record.__polygon.options\"\n (polygonClick)=\"openPolygonInfo(record.__polygon, $event)\"\n (polygonMouseup)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"\n (polygonDragend)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"></map-polygon>\n }\n }\n @for (poly of polylines; track poly.group) {\n <map-polyline [path]=\"poly.path\" [options]=\"poly.options\"></map-polyline>\n }\n @for (dot of polylineDots; track dot) {\n <map-circle [center]=\"dot.center\" [radius]=\"dot.options.radius\" [options]=\"dot.options\"\n (circleClick)=\"openWaypointInfo(dot, $event)\"></map-circle>\n }\n <map-info-window #info [options]=\"infoWindowOptions\">\n @if (currentMarker) {\n <ng-container\n *ngComponentOutlet=\"itemTemplate; inputs: { record: currentMarker, rowData: currentMarker, metaInfo: metaInfo, datasource: datasource, getDescription: renderMarkerInfo.bind(this) }\"></ng-container>\n }\n </map-info-window>\n </google-map>\n @if (!hideToolbar) {\n <div class=\"map-controls\">\n <p-button [label]=\"'map.zoom_in' | translate\" (onClick)=\"zoomIn()\"></p-button>\n <p-button [label]=\"'map.zoom_out' | translate\" (onClick)=\"zoomOut()\"></p-button>\n @if (showMarkerDragButton()) {\n <p-button [label]=\"'map.toggle_marker_draggable' | translate\" (onClick)=\"setAllDraggable()\"></p-button>\n }\n @if (showPolygonEditButton()) {\n <p-button [label]=\"polygonEditMode ? 'Save polygons' : 'Edit polygons'\"\n [severity]=\"polygonEditMode ? 'success' : 'secondary'\" (onClick)=\"togglePolygonEditing()\"></p-button>\n }\n @if (isAdmin) {\n <p-button [label]=\"'map.configure' | translate\" icon=\"pi pi-cog\" (onClick)=\"openMapConfig()\"></p-button>\n }\n </div>\n }\n }\n @if (!archetypeOptions && !loading) {\n <div class=\"map-empty-placeholder\"></div>\n }\n</div>\n\n<wuic-archetype-configurator [visible]=\"showConfigDialog\" (visibleChange)=\"showConfigDialog = $event\"\n [archetype]=\"'map'\" [metaInfo]=\"metaInfo\" [value]=\"archetypeOptions\" (applyConfig)=\"applyMapConfig($event)\">\n</wuic-archetype-configurator>", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;overflow:hidden}.map-list-root{position:relative;display:flex;flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.map-list-root google-map{display:flex;flex:1 1 auto;height:100%}.map-controls{position:absolute;bottom:30px;left:.5rem;z-index:3;display:flex;gap:.5rem;flex-wrap:wrap}.map-loading-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:color-mix(in srgb,var(--surface-ground, #f8fafc) 88%,transparent)}.map-loading-spinner{width:2.4rem;height:2.4rem;border-radius:50%;border:3px solid var(--surface-border, #cbd5e1);border-top-color:var(--primary-color, #3b82f6);animation:wuic-map-spin .8s linear infinite}.map-loading-label{font-size:.95rem;color:var(--text-color-secondary, #475569)}.map-empty-placeholder{width:100%;height:100%}@keyframes wuic-map-spin{to{transform:rotate(360deg)}}.map-config-grid{display:grid;grid-template-columns:1fr;gap:.45rem}.map-config-grid input,.map-config-grid select,.map-config-grid textarea{width:100%}.map-config-grid textarea{resize:vertical}:host ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #ffffff);color:var(--text-color, #1f2937);border:1px solid var(--surface-border, #e5e7eb);box-shadow:0 10px 24px #0003;border-radius:10px;overflow:visible!important}:host ::ng-deep .gm-style .gm-style-iw-d{overflow:visible!important;max-height:none!important;color:inherit}:host ::ng-deep .gm-style .gm-ui-hover-effect{filter:none}:host ::ng-deep .gm-style .map-info{color:inherit}:host ::ng-deep .gm-style .map-info-title{color:inherit;font-weight:600}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #111827);color:var(--text-color, #e5e7eb);border-color:var(--surface-border, #374151);box-shadow:0 12px 28px #00000073}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-tc:after{background:var(--surface-card, #111827)}:host-context(.theme-dark) ::ng-deep .gm-style .gm-ui-hover-effect>span{background-color:var(--text-color, #e5e7eb)!important}:host-context(.theme-dark) ::ng-deep .gm-style .p-tieredmenu,:host-context(.theme-dark) ::ng-deep .gm-style .dropdown-content{background:var(--surface-overlay, #0f172a)!important;color:var(--text-color, #e5e7eb)!important;border-color:var(--surface-border, #334155)!important}\n"] }]
43525
+ args: [{ selector: 'wuic-map-list', imports: [GoogleMapsModule, NgComponentOutlet, ButtonModule, TranslateModule, ArchetypeConfiguratorComponent], template: "<div class=\"map-list-root\" #mapHostRef [style.height.px]=\"mapHostHeightPx\" [style.max-height.px]=\"mapHostHeightPx\">\r\n @if (loading) {\r\n <div class=\"map-loading-overlay\">\r\n <div class=\"map-loading-spinner\" aria-hidden=\"true\"></div>\r\n <div class=\"map-loading-label\">Loading map...</div>\r\n </div>\r\n }\r\n @if (mapsApiUnavailable) {\r\n <div class=\"map-unavailable\" role=\"status\">\r\n <i class=\"pi pi-map\" aria-hidden=\"true\"></i>\r\n <div class=\"map-unavailable__title\">{{ 'map.api_key_missing.title' | translate }}</div>\r\n <div class=\"map-unavailable__text\">{{ 'map.api_key_missing.detail' | translate }}</div>\r\n </div>\r\n }\r\n @if (archetypeOptions && !mapsApiUnavailable) {\r\n <google-map #map height=\"100%\" width=\"100%\" [zoom]=\"zoom\" [center]=\"center\" [options]=\"archetypeOptions\"\r\n (boundsChanged)=\"handleMapBoundsChanged()\" (centerChanged)=\"handleMapCenterChanged()\"\r\n (mapRightclick)=\"handleMapContextMenu($event)\" (mapDrag)=\"handleMapDrag($event)\"\r\n (mapDragend)=\"handleMapDragEnd($event)\" (mapDragstart)=\"handleMapDragStart($event)\"\r\n (mapMousemove)=\"handleMapMouseMove($event)\" (mapMouseout)=\"handleMapMouseOut($event)\"\r\n (mapMouseover)=\"handleMapMouseOver($event)\" (zoomChanged)=\"handleMapZoomChanged()\" (mapClick)=\"hello($event)\">\r\n @for (record of data; track record) {\r\n @if (record.__marker) {\r\n <!-- 2026-05-03: rimosso `(mapClick)=\"openInfo(...)\"` perche'\r\n @angular/google-maps@21.x espone `mapClick` come\r\n `getLazyEmitter('click')` sul AdvancedMarkerElement; Google ha\r\n deprecato l'evento `click` (use `gmp-click` instead). Il binding\r\n viene fatto manualmente in ngAfterViewInit + markerElements.changes\r\n (vedi `wireMarkerGmpClick()` nel .ts). -->\r\n <map-advanced-marker #markerElem=\"mapAdvancedMarker\" [position]=\"record.__marker.position\"\r\n [title]=\"record.__marker.title\" [options]=\"record.__marker.options\" [gmpDraggable]=\"record.__marker.draggable\"\r\n (mapDragstart)=\"mapDragstart(markerElem, record.__marker, $event)\" [content]=\"record.__marker.content\"\r\n (mapDragend)=\"mapDragend(markerElem, record.__marker, $event)\"></map-advanced-marker>\r\n }\r\n }\r\n @for (record of data; track record; let polygonIndex = $index) {\r\n @if (record.__polygon) {\r\n <map-polygon #polygonElem=\"mapPolygon\" [paths]=\"record.__polygon.paths\" [options]=\"record.__polygon.options\"\r\n (polygonClick)=\"openPolygonInfo(record.__polygon, $event)\"\r\n (polygonMouseup)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"\r\n (polygonDragend)=\"onPolygonShapeChanged(polygonElem, record, polygonIndex)\"></map-polygon>\r\n }\r\n }\r\n @for (poly of polylines; track poly.group) {\r\n <map-polyline [path]=\"poly.path\" [options]=\"poly.options\"></map-polyline>\r\n }\r\n @for (dot of polylineDots; track dot) {\r\n <map-circle [center]=\"dot.center\" [radius]=\"dot.options.radius\" [options]=\"dot.options\"\r\n (circleClick)=\"openWaypointInfo(dot, $event)\"></map-circle>\r\n }\r\n <map-info-window #info [options]=\"infoWindowOptions\">\r\n @if (currentMarker) {\r\n <ng-container\r\n *ngComponentOutlet=\"itemTemplate; inputs: { record: currentMarker, rowData: currentMarker, metaInfo: metaInfo, datasource: datasource, getDescription: renderMarkerInfo.bind(this) }\"></ng-container>\r\n }\r\n </map-info-window>\r\n </google-map>\r\n @if (!hideToolbar) {\r\n <div class=\"map-controls\">\r\n <p-button [label]=\"'map.zoom_in' | translate\" (onClick)=\"zoomIn()\"></p-button>\r\n <p-button [label]=\"'map.zoom_out' | translate\" (onClick)=\"zoomOut()\"></p-button>\r\n @if (showMarkerDragButton()) {\r\n <p-button [label]=\"'map.toggle_marker_draggable' | translate\" (onClick)=\"setAllDraggable()\"></p-button>\r\n }\r\n @if (showPolygonEditButton()) {\r\n <p-button [label]=\"polygonEditMode ? 'Save polygons' : 'Edit polygons'\"\r\n [severity]=\"polygonEditMode ? 'success' : 'secondary'\" (onClick)=\"togglePolygonEditing()\"></p-button>\r\n }\r\n @if (isAdmin) {\r\n <p-button [label]=\"'map.configure' | translate\" icon=\"pi pi-cog\" (onClick)=\"openMapConfig()\"></p-button>\r\n }\r\n </div>\r\n }\r\n }\r\n @if (!archetypeOptions && !loading) {\r\n <div class=\"map-empty-placeholder\"></div>\r\n }\r\n</div>\r\n\r\n<wuic-archetype-configurator [visible]=\"showConfigDialog\" (visibleChange)=\"showConfigDialog = $event\"\r\n [archetype]=\"'map'\" [metaInfo]=\"metaInfo\" [value]=\"archetypeOptions\" (applyConfig)=\"applyMapConfig($event)\">\r\n</wuic-archetype-configurator>", styles: [":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;overflow:hidden}.map-list-root{position:relative;display:flex;flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.map-list-root google-map{display:flex;flex:1 1 auto;height:100%}.map-controls{position:absolute;bottom:30px;left:.5rem;z-index:3;display:flex;gap:.5rem;flex-wrap:wrap}.map-loading-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:color-mix(in srgb,var(--surface-ground, #f8fafc) 88%,transparent)}.map-loading-spinner{width:2.4rem;height:2.4rem;border-radius:50%;border:3px solid var(--surface-border, #cbd5e1);border-top-color:var(--primary-color, #3b82f6);animation:wuic-map-spin .8s linear infinite}.map-loading-label{font-size:.95rem;color:var(--text-color-secondary, #475569)}.map-empty-placeholder{width:100%;height:100%}@keyframes wuic-map-spin{to{transform:rotate(360deg)}}.map-config-grid{display:grid;grid-template-columns:1fr;gap:.45rem}.map-config-grid input,.map-config-grid select,.map-config-grid textarea{width:100%}.map-config-grid textarea{resize:vertical}:host ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #ffffff);color:var(--text-color, #1f2937);border:1px solid var(--surface-border, #e5e7eb);box-shadow:0 10px 24px #0003;border-radius:10px;overflow:visible!important}:host ::ng-deep .gm-style .gm-style-iw-d{overflow:visible!important;max-height:none!important;color:inherit}:host ::ng-deep .gm-style .gm-ui-hover-effect{filter:none}:host ::ng-deep .gm-style .map-info{color:inherit}:host ::ng-deep .gm-style .map-info-title{color:inherit;font-weight:600}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-c{background:var(--surface-card, #111827);color:var(--text-color, #e5e7eb);border-color:var(--surface-border, #374151);box-shadow:0 12px 28px #00000073}:host-context(.theme-dark) ::ng-deep .gm-style .gm-style-iw-tc:after{background:var(--surface-card, #111827)}:host-context(.theme-dark) ::ng-deep .gm-style .gm-ui-hover-effect>span{background-color:var(--text-color, #e5e7eb)!important}:host-context(.theme-dark) ::ng-deep .gm-style .p-tieredmenu,:host-context(.theme-dark) ::ng-deep .gm-style .dropdown-content{background:var(--surface-overlay, #0f172a)!important;color:var(--text-color, #e5e7eb)!important;border-color:var(--surface-border, #334155)!important}.map-unavailable{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;height:100%;min-height:220px;padding:1.5rem;text-align:center;color:var(--text-color-secondary, #64748b);background:var(--surface-ground, #f8fafc);border:1px dashed var(--surface-border, #e2e8f0);border-radius:6px}.map-unavailable i{font-size:1.75rem;opacity:.6}.map-unavailable__title{font-weight:600;color:var(--text-color, #1e293b)}.map-unavailable__text{max-width:46ch;line-height:1.45;font-size:.9rem}\n"] }]
43502
43526
  }], ctorParameters: () => [{ type: i1$5.Title }, { type: i0.ChangeDetectorRef }, { type: i1$2.ActivatedRoute }, { type: UserInfoService }, { type: TranslationManagerService }], propDecorators: { map: [{
43503
43527
  type: ViewChild,
43504
43528
  args: [GoogleMap, { static: false }]
@@ -50016,7 +50040,7 @@ class LazyFirstRunWizardComponent {
50016
50040
  this.cdr = cdr;
50017
50041
  }
50018
50042
  async ngOnInit() {
50019
- firstRunWizardComponentPromise ??= import('./wuic-framework-lib-first-run-wizard.component-NN6cWVHL.mjs').then((m) => m.WuicFirstRunWizardComponent);
50043
+ firstRunWizardComponentPromise ??= import('./wuic-framework-lib-first-run-wizard.component-D1ZQUl-q.mjs').then((m) => m.WuicFirstRunWizardComponent);
50020
50044
  const componentClass = await firstRunWizardComponentPromise;
50021
50045
  this.componentRef = this.vcr.createComponent(componentClass);
50022
50046
  // Forward output del componente reale al wrapper. Type assertion necessaria
@@ -61717,7 +61741,7 @@ class LazyCodeEditorComponent {
61717
61741
  this.cdr = cdr;
61718
61742
  }
61719
61743
  async ngOnInit() {
61720
- codeEditorComponentPromise ??= import('./wuic-framework-lib-code-editor.component-N6HMl2mf.mjs').then((m) => m.CodeEditorComponent);
61744
+ codeEditorComponentPromise ??= import('./wuic-framework-lib-code-editor.component-B6IpTSo8.mjs').then((m) => m.CodeEditorComponent);
61721
61745
  this.loadedComponent = await codeEditorComponentPromise;
61722
61746
  this.cdr.markForCheck();
61723
61747
  }
@@ -63896,7 +63920,7 @@ class DesignerRouteComponent {
63896
63920
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
63897
63921
  */
63898
63922
  async ngOnInit() {
63899
- designerComponentPromise ??= import('./wuic-framework-lib-designer.component-Bd2fwl6H.mjs').then((m) => m.DesignerComponent);
63923
+ designerComponentPromise ??= import('./wuic-framework-lib-designer.component-D6cbqNFg.mjs').then((m) => m.DesignerComponent);
63900
63924
  this.loadedComponent = await designerComponentPromise;
63901
63925
  }
63902
63926
  /**
@@ -63977,7 +64001,7 @@ class LazyPivotBuilderComponent {
63977
64001
  this.cdr = cdr;
63978
64002
  }
63979
64003
  async ngOnInit() {
63980
- pivotBuilderComponentPromise ??= import('./wuic-framework-lib-pivot-builder.component-DWukH0L-.mjs').then((m) => m.PivotBuilderComponent);
64004
+ pivotBuilderComponentPromise ??= import('./wuic-framework-lib-pivot-builder.component-DkWGzJpr.mjs').then((m) => m.PivotBuilderComponent);
63981
64005
  this.loadedComponent = await pivotBuilderComponentPromise;
63982
64006
  this.cdr.markForCheck();
63983
64007
  }
@@ -64016,7 +64040,7 @@ class WorkflowDesignerRouteComponent {
64016
64040
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
64017
64041
  */
64018
64042
  async ngOnInit() {
64019
- workflowDesignerComponentPromise ??= import('./wuic-framework-lib-workflow-designer.component-DMM8BeXm.mjs').then((m) => m.WorkflowDesignerComponent);
64043
+ workflowDesignerComponentPromise ??= import('./wuic-framework-lib-workflow-designer.component-C_4RQGa0.mjs').then((m) => m.WorkflowDesignerComponent);
64020
64044
  this.loadedComponent = await workflowDesignerComponentPromise;
64021
64045
  }
64022
64046
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowDesignerRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -64062,7 +64086,7 @@ class Scene3dDesignerRouteComponent {
64062
64086
  /** Componente designer runtime caricato lazy, usato dal template. */
64063
64087
  loadedComponent = null;
64064
64088
  async ngOnInit() {
64065
- scene3dDesignerComponentPromise ??= import('./wuic-framework-lib-scene3d-designer.component-DjOfzKLo.mjs').then(function (n) { return n.s; }).then((m) => m.Scene3dDesignerComponent);
64089
+ scene3dDesignerComponentPromise ??= import('./wuic-framework-lib-scene3d-designer.component-8l3vsyEb.mjs').then(function (n) { return n.s; }).then((m) => m.Scene3dDesignerComponent);
64066
64090
  this.loadedComponent = await scene3dDesignerComponentPromise;
64067
64091
  }
64068
64092
  /** Delega al designer runtime la conferma navigazione con pending changes. */
@@ -64118,7 +64142,7 @@ class Scene3dViewerRouteComponent {
64118
64142
  /** Componente viewer runtime caricato lazy, usato dal template. */
64119
64143
  loadedComponent = null;
64120
64144
  async ngOnInit() {
64121
- scene3dViewerComponentPromise ??= import('./wuic-framework-lib-scene3d-viewer.component-Dboz1fjl.mjs').then((m) => m.Scene3dViewerComponent);
64145
+ scene3dViewerComponentPromise ??= import('./wuic-framework-lib-scene3d-viewer.component-nMSl5jbe.mjs').then((m) => m.Scene3dViewerComponent);
64122
64146
  this.loadedComponent = await scene3dViewerComponentPromise;
64123
64147
  }
64124
64148
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Scene3dViewerRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -64179,7 +64203,7 @@ class LazyReportDesignerComponent {
64179
64203
  this.cdr = cdr;
64180
64204
  }
64181
64205
  async ngOnInit() {
64182
- reportDesignerComponentPromise ??= import('./wuic-framework-lib-report-designer.component-QcrU81m6.mjs').then((m) => m.ReportDesignerComponent);
64206
+ reportDesignerComponentPromise ??= import('./wuic-framework-lib-report-designer.component-DcpCWghx.mjs').then((m) => m.ReportDesignerComponent);
64183
64207
  this.loadedComponent = await reportDesignerComponentPromise;
64184
64208
  this.cdr.markForCheck();
64185
64209
  }
@@ -64234,7 +64258,7 @@ class LazyReportViewerComponent {
64234
64258
  this.cdr = cdr;
64235
64259
  }
64236
64260
  async ngOnInit() {
64237
- reportViewerComponentPromise ??= import('./wuic-framework-lib-report-viewer.component-B4LhA3SL.mjs').then((m) => m.ReportViewerComponent);
64261
+ reportViewerComponentPromise ??= import('./wuic-framework-lib-report-viewer.component-C4Opgl_M.mjs').then((m) => m.ReportViewerComponent);
64238
64262
  this.loadedComponent = await reportViewerComponentPromise;
64239
64263
  this.cdr.markForCheck();
64240
64264
  }
@@ -68558,7 +68582,7 @@ const themeBuilderPendingChangesGuard = (component) => {
68558
68582
  const routes = [
68559
68583
  {
68560
68584
  path: 'framework-docs',
68561
- loadComponent: () => import('./wuic-framework-lib-framework-docs.component-B867JAYe.mjs').then((m) => m.FrameworkDocsComponent),
68585
+ loadComponent: () => import('./wuic-framework-lib-framework-docs.component-C_o5r7pg.mjs').then((m) => m.FrameworkDocsComponent),
68562
68586
  canMatch: [menuRouteAccessCanMatchGuard],
68563
68587
  canActivate: [menuRouteAccessCanActivateGuard],
68564
68588
  data: {
@@ -68567,7 +68591,7 @@ const routes = [
68567
68591
  },
68568
68592
  {
68569
68593
  path: 'framework-docs/:slug',
68570
- loadComponent: () => import('./wuic-framework-lib-framework-docs.component-B867JAYe.mjs').then((m) => m.FrameworkDocsComponent),
68594
+ loadComponent: () => import('./wuic-framework-lib-framework-docs.component-C_o5r7pg.mjs').then((m) => m.FrameworkDocsComponent),
68571
68595
  canMatch: [menuRouteAccessCanMatchGuard],
68572
68596
  canActivate: [menuRouteAccessCanActivateGuard],
68573
68597
  data: {
@@ -68612,7 +68636,7 @@ const routes = [
68612
68636
  },
68613
68637
  {
68614
68638
  path: ':route/report-designer',
68615
- loadComponent: () => import('./wuic-framework-lib-report-designer.component-QcrU81m6.mjs').then((m) => m.ReportDesignerComponent),
68639
+ loadComponent: () => import('./wuic-framework-lib-report-designer.component-DcpCWghx.mjs').then((m) => m.ReportDesignerComponent),
68616
68640
  canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
68617
68641
  canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
68618
68642
  data: {
@@ -68622,7 +68646,7 @@ const routes = [
68622
68646
  },
68623
68647
  {
68624
68648
  path: ':route/report-viewer',
68625
- loadComponent: () => import('./wuic-framework-lib-report-viewer.component-B4LhA3SL.mjs').then((m) => m.ReportViewerComponent),
68649
+ loadComponent: () => import('./wuic-framework-lib-report-viewer.component-C4Opgl_M.mjs').then((m) => m.ReportViewerComponent),
68626
68650
  canMatch: [menuRouteAccessCanMatchGuard],
68627
68651
  canActivate: [menuRouteAccessCanActivateGuard],
68628
68652
  data: {
@@ -68642,7 +68666,7 @@ const routes = [
68642
68666
  },
68643
68667
  {
68644
68668
  path: ':route/pivot-builder',
68645
- loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-DWukH0L-.mjs').then((m) => m.PivotBuilderComponent),
68669
+ loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-DkWGzJpr.mjs').then((m) => m.PivotBuilderComponent),
68646
68670
  canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
68647
68671
  canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
68648
68672
  data: {
@@ -68652,7 +68676,7 @@ const routes = [
68652
68676
  },
68653
68677
  {
68654
68678
  path: 'pivot-builder',
68655
- loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-DWukH0L-.mjs').then((m) => m.PivotBuilderComponent),
68679
+ loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-DkWGzJpr.mjs').then((m) => m.PivotBuilderComponent),
68656
68680
  canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
68657
68681
  canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
68658
68682
  data: {
@@ -70752,4 +70776,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
70752
70776
  */
70753
70777
 
70754
70778
  export { DEFAULT_THEME_VALUE as $, ArchetypeConfiguratorComponent as A, AuthSessionService as B, ChatbotHostRegistryService as C, DynamicGenericTemplateComponent as D, BooleanEditorComponent as E, FilterBarComponent as F, GlobalHandler as G, BoundedRepeaterComponent as H, ImportExportButtonComponent as I, ButtonEditorComponent as J, CUSTOM_THEMES_STORAGE_KEY as K, LazyParametricDialogComponent as L, MetadataProviderService as M, CallbackPipe as N, CallbackPipe2 as O, PagerComponent as P, CarouselListComponent as Q, CodeAreaEditorComponent as R, ColorEditorComponent as S, TranslationManagerService as T, UserInfoService as U, CrashReporterService as V, WtoolboxService as W, CustomAttributesService as X, CustomException as Y, DEFAULT_FONT_STACK as Z, DEFAULT_THEME_STORAGE_KEY as _, DynamicCompilerService as a, UserMenuComponent as a$, DataActionButtonComponent as a0, DataProviderOdataService as a1, DateEditorComponent as a2, DesignerRouteComponent as a3, DictionaryEditorComponent as a4, DynamicRowTemplateComponent as a5, FormatGridViewValuePipe as a6, GetSrcUploadPreviewPipe as a7, HtmlEditorComponent as a8, ImageWrapperComponent as a9, NumberEditorComponent as aA, PALETTE_STOPS as aB, PREVIEW_RESTORE_KEY as aC, PRIMARY_PALETTES as aD, PerformanceInspectorComponent as aE, PointFilterComponent as aF, PropertyArrayEditorComponent as aG, PropertyObjectEditorComponent as aH, RAG_DESTRUCTIVE_KINDS as aI, RouteMetricsDashboardComponent as aJ, Scene3dDesignerRouteComponent as aK, Scene3dViewerRouteComponent as aL, THEME_MODE_STORAGE_KEY as aM, THEME_OPTIONS as aN, THEME_STORAGE_KEY as aO, TextAreaEditorComponent as aP, TextEditorComponent as aQ, ThemeBuilderComponent as aR, ThemeCatalogService as aS, ThemePreviewPanelComponent as aT, ThemeRuntimeService as aU, ThemeSelectorComponent as aV, TreeListComponent as aW, TreeViewSelectorComponent as aX, UploadDialogComponent as aY, UploadEditorComponent as aZ, UserLanguageService as a_, IsSelectedRowPipe as aa, KanbanListComponent as ab, KanbanOptions as ac, KanbanStatusColumnItem as ad, LazyChartListComponent as ae, LazyCodeEditorComponent as af, LazyDataActionButtonComponent as ag, LazyDataSourceComponent as ah, LazyFieldEditorComponent as ai, LazyFirstRunWizardComponent as aj, LazyImageWrapperComponent as ak, LazyKanbanListComponent as al, LazyMetaMenuComponent as am, LazyPivotBuilderComponent as an, LazyReportDesignerComponent as ao, LazyReportViewerComponent as ap, LazySchedulerListComponent as aq, LazySpreadsheetListSfComponent as ar, LazyTimelineListComponent as as, ListGridComponent as at, LookupEditorComponent as au, MapListComponent as av, MetaMenuComponent as aw, MetadatiTabella as ax, NotificationBellComponent as ay, NotificationRealtimeService as az, DataSourceComponent as b, resolveThemePresetForOption as b$, ValidationRule as b0, ValueChangedPayload as b1, VisibleFieldListPipe as b2, WUIC_FONT_CATALOG as b3, WidgetDefinition as b4, WorkflowDesignerRouteComponent as b5, WorkflowRunnerComponent as b6, WuicAziendaSwitcherComponent as b7, WuicErrorDialogComponent as b8, WuicErrorInterceptor as b9, isDestructiveRagAction as bA, isRoutePersistenceEnabled as bB, loadBooleanEditorComponent as bC, loadButtonEditorComponent as bD, loadCodeAreaEditorComponent as bE, loadColorEditorComponent as bF, loadDateEditorComponent as bG, loadDictionaryEditorComponent as bH, loadHtmlEditorComponent as bI, loadLookupEditorComponent as bJ, loadNumberEditorComponent as bK, loadPropertyArrayEditorComponent as bL, loadPropertyObjectEditorComponent as bM, loadTextAreaEditorComponent as bN, loadTextEditorComponent as bO, loadTreeViewSelectorComponent as bP, loadUploadEditorComponent as bQ, menuRouteAccessCanActivateGuard as bR, menuRouteAccessCanMatchGuard as bS, nearestPrimaryName as bT, normalizeHex$1 as bU, oklchToHex as bV, oklchToRgb as bW, resolveBackgroundCss as bX, resolveFontStack as bY, resolveGridStrengths as bZ, resolveThemePreset as b_, WuicFeatureDirective as ba, WuicFrozenColumnDirective as bb, WuicRagChatbotComponent as bc, WuicRagChatbotFabComponent as bd, WuicRagService as be, WuicRowTogglerDirective as bf, _PRIMENG_TABLE_DIRECTIVES_NAMES as bg, authExpiredInterceptor as bh, bestContrastColor as bi, boundedRepeaterPendingChangesGuard as bj, buildCustomPreset as bk, buildThemeValue as bl, computeDataQualitySummary as bm, contrastRatio as bn, createDraftTheme as bo, featureRouteCanActivateGuard as bp, featureRouteCanMatchGuard as bq, generatePrimaryPalette as br, generateSurfacePalette as bs, getQualityInspectorOptions as bt, getThemePrimaryHex as bu, hexToOklch as bv, hexToRgb as bw, hsbaToRgbaString as bx, inferTemplateFieldFromBaseClass as by, isCustomThemeValue as bz, DataRepeaterComponent as c, rgbToHex as c0, rgbToOklch as c1, rgbaToHsbaModel as c2, routeMetricsClient as c3, routes as c4, scene3dDesignerPendingChangesGuard as c5, themeBuilderPendingChangesGuard as c6, wcagLevel as c7, wuicErrorInterceptor as c8, parametricDialog_component as c9, clampAlpha as d, toPersistedColor as e, ParametricDialogComponent as f, MetadatiColonna as g, DataProviderService as h, MetadataEditorService as i, WorkflowRuntimeMetadataService as j, FieldEditorComponent as k, MetadataEditorComponent as l, WuicClientException as m, WuicErrorCodes as n, MetaInfo as o, WUIC_SUPPRESS_GLOBAL_ERROR as p, FilterInfo as q, LicenseFeatureService as r, FilterItem as s, toHsbaModel as t, TimelineOptions as u, getThemeOptions as v, AUTH_REDIRECT_REASON_KEY as w, AppHeaderComponent as x, AppHeaderConfigService as y, AppSettingsEditorComponent as z };
70755
- //# sourceMappingURL=wuic-framework-lib-wuic-framework-lib-dfLTqam5.mjs.map
70779
+ //# sourceMappingURL=wuic-framework-lib-wuic-framework-lib-BZZwta8b.mjs.map