wuic-framework-lib 1.7.2 → 1.7.4

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-MeAS47VV.mjs → wuic-framework-lib-chart-list.component-Bd81NAA4.mjs} +2 -2
  2. package/fesm2022/{wuic-framework-lib-code-editor.component-WtZC2MZC.mjs → wuic-framework-lib-code-editor.component-CT9RQP0j.mjs} +2 -2
  3. package/fesm2022/{wuic-framework-lib-designer.component-Dt7Yz5hn.mjs → wuic-framework-lib-designer.component-DARgqyVY.mjs} +2 -2
  4. package/fesm2022/{wuic-framework-lib-first-run-wizard.component-C8nhy5yK.mjs → wuic-framework-lib-first-run-wizard.component-CpE5e6eG.mjs} +28 -2
  5. package/fesm2022/{wuic-framework-lib-framework-docs.component-CGsugPCx.mjs → wuic-framework-lib-framework-docs.component-C04bapkD.mjs} +8 -8
  6. package/fesm2022/{wuic-framework-lib-pivot-builder.component-S5zqy3vj.mjs → wuic-framework-lib-pivot-builder.component-D48ouhKb.mjs} +2 -2
  7. package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-VY-gtgRW.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-CHdqlPlh.mjs} +2 -2
  8. package/fesm2022/{wuic-framework-lib-report-designer.component-QRxxueU-.mjs → wuic-framework-lib-report-designer.component-CR6AWWCs.mjs} +2 -2
  9. package/fesm2022/{wuic-framework-lib-report-scaffold-dialog.component-OGdglGPw.mjs → wuic-framework-lib-report-scaffold-dialog.component-UOHh2H80.mjs} +2 -2
  10. package/fesm2022/{wuic-framework-lib-report-viewer.component-CuXw3e0j.mjs → wuic-framework-lib-report-viewer.component-jggUwuS6.mjs} +2 -2
  11. package/fesm2022/{wuic-framework-lib-scene3d-designer.component-LhC0KzWO.mjs → wuic-framework-lib-scene3d-designer.component-Cf99bYCj.mjs} +3 -3
  12. package/fesm2022/{wuic-framework-lib-scene3d-light-baker-gpu-B5ywsrSp.mjs → wuic-framework-lib-scene3d-light-baker-gpu-CIilDU9M.mjs} +2 -2
  13. package/fesm2022/{wuic-framework-lib-scene3d-viewer.component-DiDqJO-P.mjs → wuic-framework-lib-scene3d-viewer.component-BOMK1lig.mjs} +2 -2
  14. package/fesm2022/{wuic-framework-lib-scheduler-list.component-5JbxIBdp.mjs → wuic-framework-lib-scheduler-list.component-QpRYvvOw.mjs} +2 -2
  15. package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-Dxk5d9au.mjs → wuic-framework-lib-spreadsheet-list-sf.component-qCPw_JOC.mjs} +2 -2
  16. package/fesm2022/{wuic-framework-lib-timeline-list.component-B1ro-16J.mjs → wuic-framework-lib-timeline-list.component-DUHygnTw.mjs} +4 -4
  17. package/fesm2022/{wuic-framework-lib-workflow-designer.component-D32ZMxq2.mjs → wuic-framework-lib-workflow-designer.component-BcFyxfQI.mjs} +2 -2
  18. package/fesm2022/{wuic-framework-lib-wuic-framework-lib-81WUtxz8.mjs → wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs} +39 -24
  19. package/fesm2022/wuic-framework-lib.mjs +1 -1
  20. package/package.json +1 -1
  21. package/types/wuic-framework-lib.d.ts +13 -0
@@ -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-81WUtxz8.mjs';
3
+ import { W as WtoolboxService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-QRxxueU-.mjs.map
380
+ //# sourceMappingURL=wuic-framework-lib-report-designer.component-CR6AWWCs.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-81WUtxz8.mjs';
16
+ import { W as WtoolboxService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-OGdglGPw.mjs.map
431
+ //# sourceMappingURL=wuic-framework-lib-report-scaffold-dialog.component-UOHh2H80.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-81WUtxz8.mjs';
8
+ import { W as WtoolboxService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-CuXw3e0j.mjs.map
474
+ //# sourceMappingURL=wuic-framework-lib-report-viewer.component-jggUwuS6.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-gBEFKNvi.mjs';
21
- import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-81WUtxz8.mjs';
21
+ import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService, C as ChatbotHostRegistryService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-B5ywsrSp.mjs');
2326
+ const { bakeVertexLightingGpu } = await import('./wuic-framework-lib-scene3d-light-baker-gpu-CIilDU9M.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-LhC0KzWO.mjs.map
4813
+ //# sourceMappingURL=wuic-framework-lib-scene3d-designer.component-Cf99bYCj.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-LhC0KzWO.mjs';
2
+ import { i as isBakeableMesh, W as WUIC_BAKED_FLAG } from './wuic-framework-lib-scene3d-designer.component-Cf99bYCj.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-B5ywsrSp.mjs.map
303
+ //# sourceMappingURL=wuic-framework-lib-scene3d-light-baker-gpu-CIilDU9M.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-81WUtxz8.mjs';
5
+ import { W as WtoolboxService, h as DataProviderService, M as MetadataProviderService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-gBEFKNvi.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-DiDqJO-P.mjs.map
1130
+ //# sourceMappingURL=wuic-framework-lib-scene3d-viewer.component-BOMK1lig.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-81WUtxz8.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-B2TNmDgm.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-5JbxIBdp.mjs.map
759
+ //# sourceMappingURL=wuic-framework-lib-scheduler-list.component-QpRYvvOw.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-81WUtxz8.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-B2TNmDgm.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-Dxk5d9au.mjs.map
4397
+ //# sourceMappingURL=wuic-framework-lib-spreadsheet-list-sf.component-qCPw_JOC.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-81WUtxz8.mjs';
9
+ import { u as TimelineOptions, g as MetadatiColonna, W as WtoolboxService, T as TranslationManagerService } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-81WUtxz8.mjs').then(function (n) { return n.c9; });
427
+ const { ParametricDialogComponent } = await import('./wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-81WUtxz8.mjs').then(function (n) { return n.c9; });
480
+ const { ParametricDialogComponent } = await import('./wuic-framework-lib-wuic-framework-lib-B2TNmDgm.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-B1ro-16J.mjs.map
805
+ //# sourceMappingURL=wuic-framework-lib-timeline-list.component-DUHygnTw.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-81WUtxz8.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-B2TNmDgm.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-D32ZMxq2.mjs.map
9504
+ //# sourceMappingURL=wuic-framework-lib-workflow-designer.component-BcFyxfQI.mjs.map
@@ -3340,7 +3340,7 @@ class WtoolboxService {
3340
3340
  const appRef = resolvedInjector.get(ApplicationRef);
3341
3341
  const environmentInjector = resolvedInjector.get(EnvironmentInjector);
3342
3342
  const close$ = new Subject();
3343
- const { PromptDialogFallbackHostComponent } = await import('./wuic-framework-lib-prompt-dialog-fallback-host.component-VY-gtgRW.mjs');
3343
+ const { PromptDialogFallbackHostComponent } = await import('./wuic-framework-lib-prompt-dialog-fallback-host.component-CHdqlPlh.mjs');
3344
3344
  const hostRef = createComponent(PromptDialogFallbackHostComponent, { environmentInjector });
3345
3345
  hostRef.instance.datasource = dialogConfig?.data?.datasource;
3346
3346
  hostRef.instance.header = String(dialogConfig?.header || '');
@@ -24194,7 +24194,7 @@ class LazySchedulerListComponent {
24194
24194
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
24195
24195
  */
24196
24196
  async ngOnInit() {
24197
- schedulerListComponentPromise ??= import('./wuic-framework-lib-scheduler-list.component-5JbxIBdp.mjs').then((m) => m.SchedulerListComponent);
24197
+ schedulerListComponentPromise ??= import('./wuic-framework-lib-scheduler-list.component-QpRYvvOw.mjs').then((m) => m.SchedulerListComponent);
24198
24198
  this.loadedComponent = await schedulerListComponentPromise;
24199
24199
  this.cdr.markForCheck();
24200
24200
  }
@@ -24402,7 +24402,7 @@ class LazySpreadsheetListSfComponent {
24402
24402
  this.activatedRoute = activatedRoute;
24403
24403
  }
24404
24404
  async ngOnInit() {
24405
- spreadsheetListSfComponentPromise ??= import('./wuic-framework-lib-spreadsheet-list-sf.component-Dxk5d9au.mjs').then((m) => m.SpreadsheetListSfComponent);
24405
+ spreadsheetListSfComponentPromise ??= import('./wuic-framework-lib-spreadsheet-list-sf.component-qCPw_JOC.mjs').then((m) => m.SpreadsheetListSfComponent);
24406
24406
  this.loadedComponent = await spreadsheetListSfComponentPromise;
24407
24407
  // Quando la promise e' gia' risolta dal cache module-scope (secondo mount
24408
24408
  // post-refresh), il microtask che risolve `await` non scatena sempre CD
@@ -24680,7 +24680,7 @@ class LazyChartListComponent {
24680
24680
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
24681
24681
  */
24682
24682
  async ngOnInit() {
24683
- chartListComponentPromise ??= import('./wuic-framework-lib-chart-list.component-MeAS47VV.mjs').then((m) => m.ChartListComponent);
24683
+ chartListComponentPromise ??= import('./wuic-framework-lib-chart-list.component-Bd81NAA4.mjs').then((m) => m.ChartListComponent);
24684
24684
  this.loadedComponent = await chartListComponentPromise;
24685
24685
  this.cdr.markForCheck();
24686
24686
  }
@@ -25002,7 +25002,7 @@ class LazyTimelineListComponent {
25002
25002
  this.cdr = cdr;
25003
25003
  }
25004
25004
  async ngOnInit() {
25005
- timelineListComponentPromise ??= import('./wuic-framework-lib-timeline-list.component-B1ro-16J.mjs').then((m) => m.TimelineListComponent);
25005
+ timelineListComponentPromise ??= import('./wuic-framework-lib-timeline-list.component-DUHygnTw.mjs').then((m) => m.TimelineListComponent);
25006
25006
  this.loadedComponent = await timelineListComponentPromise;
25007
25007
  this.cdr.markForCheck();
25008
25008
  }
@@ -30688,7 +30688,7 @@ class MetadataEditorComponent {
30688
30688
  }
30689
30689
  let result;
30690
30690
  try {
30691
- const { ReportScaffoldDialogComponent } = await import('./wuic-framework-lib-report-scaffold-dialog.component-OGdglGPw.mjs');
30691
+ const { ReportScaffoldDialogComponent } = await import('./wuic-framework-lib-report-scaffold-dialog.component-UOHh2H80.mjs');
30692
30692
  WtoolboxService.resolveDialogServiceFromInjector();
30693
30693
  const ref = WtoolboxService.dialogService?.open?.(ReportScaffoldDialogComponent, {
30694
30694
  header: this.t('report.scaffold.dialog_title', 'Create report'),
@@ -41381,6 +41381,21 @@ class MapListComponent {
41381
41381
  const g = globalThis.google;
41382
41382
  return !!(g && g.maps && typeof g.maps.importLibrary === 'function');
41383
41383
  }
41384
+ /**
41385
+ * Il template monta `<google-map>` solo se questo e' vero.
41386
+ *
41387
+ * Serve un GETTER e non `!mapsApiUnavailable`: quel flag viene alzato dentro la
41388
+ * sottoscrizione al datasource, cioe' dopo che il template e' gia' stato valutato almeno
41389
+ * una volta. In quella finestra `<google-map>` di @angular/google-maps si costruiva e
41390
+ * lanciava `ReferenceError: google is not defined` dal suo codice interno; l'eccezione
41391
+ * risaliva al dialog di errore applicativo e bloccava l'intera UI, che e' proprio il guasto
41392
+ * che l'avviso in pagina doveva sostituire. Essendo un getter, la condizione viene rivalutata
41393
+ * a ogni ciclo di change detection: se lo script di Maps arriva piu' tardi, la mappa compare
41394
+ * da sola senza ricaricare.
41395
+ */
41396
+ get mapsApiReady() {
41397
+ return MapListComponent.isMapsApiAvailable();
41398
+ }
41384
41399
  MAP_LIB;
41385
41400
  /**
41386
41401
  * Proprieta di stato del componente per marker lib, usata dalla logica interna e dal template.
@@ -43518,11 +43533,11 @@ class MapListComponent {
43518
43533
  window.removeEventListener('scroll', this.onWindowScroll, true);
43519
43534
  }
43520
43535
  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 });
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" }] });
43536
+ 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 <!-- `mapsApiReady` e non `!mapsApiUnavailable`: quel flag viene alzato solo quando il\r\n datasource emette, mentre questo blocco viene valutato SUBITO. Nel frattempo\r\n <google-map> di @angular/google-maps si inizializzava e lanciava lui\r\n `ReferenceError: google is not defined`, che risaliva al dialog di errore applicativo\r\n e bloccava tutta l'interfaccia \u2014 esattamente il guasto che l'avviso qui sopra doveva\r\n evitare (riprodotto il 12/09, journey linux-server-tutorial modulo 35). `mapsApiReady`\r\n e' un getter: la rilevazione viene rifatta a ogni ciclo di change detection, quindi se\r\n lo script di Maps arriva dopo la mappa compare da sola, senza ricaricare la pagina. -->\r\n @if (archetypeOptions && mapsApiReady) {\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" }] });
43522
43537
  }
43523
43538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: MapListComponent, decorators: [{
43524
43539
  type: Component,
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"] }]
43540
+ 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 <!-- `mapsApiReady` e non `!mapsApiUnavailable`: quel flag viene alzato solo quando il\r\n datasource emette, mentre questo blocco viene valutato SUBITO. Nel frattempo\r\n <google-map> di @angular/google-maps si inizializzava e lanciava lui\r\n `ReferenceError: google is not defined`, che risaliva al dialog di errore applicativo\r\n e bloccava tutta l'interfaccia \u2014 esattamente il guasto che l'avviso qui sopra doveva\r\n evitare (riprodotto il 12/09, journey linux-server-tutorial modulo 35). `mapsApiReady`\r\n e' un getter: la rilevazione viene rifatta a ogni ciclo di change detection, quindi se\r\n lo script di Maps arriva dopo la mappa compare da sola, senza ricaricare la pagina. -->\r\n @if (archetypeOptions && mapsApiReady) {\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"] }]
43526
43541
  }], ctorParameters: () => [{ type: i1$5.Title }, { type: i0.ChangeDetectorRef }, { type: i1$2.ActivatedRoute }, { type: UserInfoService }, { type: TranslationManagerService }], propDecorators: { map: [{
43527
43542
  type: ViewChild,
43528
43543
  args: [GoogleMap, { static: false }]
@@ -50040,7 +50055,7 @@ class LazyFirstRunWizardComponent {
50040
50055
  this.cdr = cdr;
50041
50056
  }
50042
50057
  async ngOnInit() {
50043
- firstRunWizardComponentPromise ??= import('./wuic-framework-lib-first-run-wizard.component-C8nhy5yK.mjs').then((m) => m.WuicFirstRunWizardComponent);
50058
+ firstRunWizardComponentPromise ??= import('./wuic-framework-lib-first-run-wizard.component-CpE5e6eG.mjs').then((m) => m.WuicFirstRunWizardComponent);
50044
50059
  const componentClass = await firstRunWizardComponentPromise;
50045
50060
  this.componentRef = this.vcr.createComponent(componentClass);
50046
50061
  // Forward output del componente reale al wrapper. Type assertion necessaria
@@ -61741,7 +61756,7 @@ class LazyCodeEditorComponent {
61741
61756
  this.cdr = cdr;
61742
61757
  }
61743
61758
  async ngOnInit() {
61744
- codeEditorComponentPromise ??= import('./wuic-framework-lib-code-editor.component-WtZC2MZC.mjs').then((m) => m.CodeEditorComponent);
61759
+ codeEditorComponentPromise ??= import('./wuic-framework-lib-code-editor.component-CT9RQP0j.mjs').then((m) => m.CodeEditorComponent);
61745
61760
  this.loadedComponent = await codeEditorComponentPromise;
61746
61761
  this.cdr.markForCheck();
61747
61762
  }
@@ -63920,7 +63935,7 @@ class DesignerRouteComponent {
63920
63935
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
63921
63936
  */
63922
63937
  async ngOnInit() {
63923
- designerComponentPromise ??= import('./wuic-framework-lib-designer.component-Dt7Yz5hn.mjs').then((m) => m.DesignerComponent);
63938
+ designerComponentPromise ??= import('./wuic-framework-lib-designer.component-DARgqyVY.mjs').then((m) => m.DesignerComponent);
63924
63939
  this.loadedComponent = await designerComponentPromise;
63925
63940
  }
63926
63941
  /**
@@ -64001,7 +64016,7 @@ class LazyPivotBuilderComponent {
64001
64016
  this.cdr = cdr;
64002
64017
  }
64003
64018
  async ngOnInit() {
64004
- pivotBuilderComponentPromise ??= import('./wuic-framework-lib-pivot-builder.component-S5zqy3vj.mjs').then((m) => m.PivotBuilderComponent);
64019
+ pivotBuilderComponentPromise ??= import('./wuic-framework-lib-pivot-builder.component-D48ouhKb.mjs').then((m) => m.PivotBuilderComponent);
64005
64020
  this.loadedComponent = await pivotBuilderComponentPromise;
64006
64021
  this.cdr.markForCheck();
64007
64022
  }
@@ -64040,7 +64055,7 @@ class WorkflowDesignerRouteComponent {
64040
64055
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
64041
64056
  */
64042
64057
  async ngOnInit() {
64043
- workflowDesignerComponentPromise ??= import('./wuic-framework-lib-workflow-designer.component-D32ZMxq2.mjs').then((m) => m.WorkflowDesignerComponent);
64058
+ workflowDesignerComponentPromise ??= import('./wuic-framework-lib-workflow-designer.component-BcFyxfQI.mjs').then((m) => m.WorkflowDesignerComponent);
64044
64059
  this.loadedComponent = await workflowDesignerComponentPromise;
64045
64060
  }
64046
64061
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowDesignerRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -64086,7 +64101,7 @@ class Scene3dDesignerRouteComponent {
64086
64101
  /** Componente designer runtime caricato lazy, usato dal template. */
64087
64102
  loadedComponent = null;
64088
64103
  async ngOnInit() {
64089
- scene3dDesignerComponentPromise ??= import('./wuic-framework-lib-scene3d-designer.component-LhC0KzWO.mjs').then(function (n) { return n.s; }).then((m) => m.Scene3dDesignerComponent);
64104
+ scene3dDesignerComponentPromise ??= import('./wuic-framework-lib-scene3d-designer.component-Cf99bYCj.mjs').then(function (n) { return n.s; }).then((m) => m.Scene3dDesignerComponent);
64090
64105
  this.loadedComponent = await scene3dDesignerComponentPromise;
64091
64106
  }
64092
64107
  /** Delega al designer runtime la conferma navigazione con pending changes. */
@@ -64142,7 +64157,7 @@ class Scene3dViewerRouteComponent {
64142
64157
  /** Componente viewer runtime caricato lazy, usato dal template. */
64143
64158
  loadedComponent = null;
64144
64159
  async ngOnInit() {
64145
- scene3dViewerComponentPromise ??= import('./wuic-framework-lib-scene3d-viewer.component-DiDqJO-P.mjs').then((m) => m.Scene3dViewerComponent);
64160
+ scene3dViewerComponentPromise ??= import('./wuic-framework-lib-scene3d-viewer.component-BOMK1lig.mjs').then((m) => m.Scene3dViewerComponent);
64146
64161
  this.loadedComponent = await scene3dViewerComponentPromise;
64147
64162
  }
64148
64163
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Scene3dViewerRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -64203,7 +64218,7 @@ class LazyReportDesignerComponent {
64203
64218
  this.cdr = cdr;
64204
64219
  }
64205
64220
  async ngOnInit() {
64206
- reportDesignerComponentPromise ??= import('./wuic-framework-lib-report-designer.component-QRxxueU-.mjs').then((m) => m.ReportDesignerComponent);
64221
+ reportDesignerComponentPromise ??= import('./wuic-framework-lib-report-designer.component-CR6AWWCs.mjs').then((m) => m.ReportDesignerComponent);
64207
64222
  this.loadedComponent = await reportDesignerComponentPromise;
64208
64223
  this.cdr.markForCheck();
64209
64224
  }
@@ -64258,7 +64273,7 @@ class LazyReportViewerComponent {
64258
64273
  this.cdr = cdr;
64259
64274
  }
64260
64275
  async ngOnInit() {
64261
- reportViewerComponentPromise ??= import('./wuic-framework-lib-report-viewer.component-CuXw3e0j.mjs').then((m) => m.ReportViewerComponent);
64276
+ reportViewerComponentPromise ??= import('./wuic-framework-lib-report-viewer.component-jggUwuS6.mjs').then((m) => m.ReportViewerComponent);
64262
64277
  this.loadedComponent = await reportViewerComponentPromise;
64263
64278
  this.cdr.markForCheck();
64264
64279
  }
@@ -68582,7 +68597,7 @@ const themeBuilderPendingChangesGuard = (component) => {
68582
68597
  const routes = [
68583
68598
  {
68584
68599
  path: 'framework-docs',
68585
- loadComponent: () => import('./wuic-framework-lib-framework-docs.component-CGsugPCx.mjs').then((m) => m.FrameworkDocsComponent),
68600
+ loadComponent: () => import('./wuic-framework-lib-framework-docs.component-C04bapkD.mjs').then((m) => m.FrameworkDocsComponent),
68586
68601
  canMatch: [menuRouteAccessCanMatchGuard],
68587
68602
  canActivate: [menuRouteAccessCanActivateGuard],
68588
68603
  data: {
@@ -68591,7 +68606,7 @@ const routes = [
68591
68606
  },
68592
68607
  {
68593
68608
  path: 'framework-docs/:slug',
68594
- loadComponent: () => import('./wuic-framework-lib-framework-docs.component-CGsugPCx.mjs').then((m) => m.FrameworkDocsComponent),
68609
+ loadComponent: () => import('./wuic-framework-lib-framework-docs.component-C04bapkD.mjs').then((m) => m.FrameworkDocsComponent),
68595
68610
  canMatch: [menuRouteAccessCanMatchGuard],
68596
68611
  canActivate: [menuRouteAccessCanActivateGuard],
68597
68612
  data: {
@@ -68636,7 +68651,7 @@ const routes = [
68636
68651
  },
68637
68652
  {
68638
68653
  path: ':route/report-designer',
68639
- loadComponent: () => import('./wuic-framework-lib-report-designer.component-QRxxueU-.mjs').then((m) => m.ReportDesignerComponent),
68654
+ loadComponent: () => import('./wuic-framework-lib-report-designer.component-CR6AWWCs.mjs').then((m) => m.ReportDesignerComponent),
68640
68655
  canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
68641
68656
  canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
68642
68657
  data: {
@@ -68646,7 +68661,7 @@ const routes = [
68646
68661
  },
68647
68662
  {
68648
68663
  path: ':route/report-viewer',
68649
- loadComponent: () => import('./wuic-framework-lib-report-viewer.component-CuXw3e0j.mjs').then((m) => m.ReportViewerComponent),
68664
+ loadComponent: () => import('./wuic-framework-lib-report-viewer.component-jggUwuS6.mjs').then((m) => m.ReportViewerComponent),
68650
68665
  canMatch: [menuRouteAccessCanMatchGuard],
68651
68666
  canActivate: [menuRouteAccessCanActivateGuard],
68652
68667
  data: {
@@ -68666,7 +68681,7 @@ const routes = [
68666
68681
  },
68667
68682
  {
68668
68683
  path: ':route/pivot-builder',
68669
- loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-S5zqy3vj.mjs').then((m) => m.PivotBuilderComponent),
68684
+ loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-D48ouhKb.mjs').then((m) => m.PivotBuilderComponent),
68670
68685
  canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
68671
68686
  canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
68672
68687
  data: {
@@ -68676,7 +68691,7 @@ const routes = [
68676
68691
  },
68677
68692
  {
68678
68693
  path: 'pivot-builder',
68679
- loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-S5zqy3vj.mjs').then((m) => m.PivotBuilderComponent),
68694
+ loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-D48ouhKb.mjs').then((m) => m.PivotBuilderComponent),
68680
68695
  canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
68681
68696
  canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
68682
68697
  data: {
@@ -70776,4 +70791,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
70776
70791
  */
70777
70792
 
70778
70793
  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 };
70779
- //# sourceMappingURL=wuic-framework-lib-wuic-framework-lib-81WUtxz8.mjs.map
70794
+ //# sourceMappingURL=wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs.map
@@ -1,2 +1,2 @@
1
- export { w as AUTH_REDIRECT_REASON_KEY, x as AppHeaderComponent, y as AppHeaderConfigService, z as AppSettingsEditorComponent, B as AuthSessionService, E as BooleanEditorComponent, H as BoundedRepeaterComponent, J as ButtonEditorComponent, K as CUSTOM_THEMES_STORAGE_KEY, N as CallbackPipe, O as CallbackPipe2, Q as CarouselListComponent, R as CodeAreaEditorComponent, S as ColorEditorComponent, V as CrashReporterService, X as CustomAttributesService, Y as CustomException, Z as DEFAULT_FONT_STACK, _ as DEFAULT_THEME_STORAGE_KEY, $ as DEFAULT_THEME_VALUE, a0 as DataActionButtonComponent, a1 as DataProviderOdataService, c as DataRepeaterComponent, b as DataSourceComponent, a2 as DateEditorComponent, a3 as DesignerRouteComponent, a4 as DictionaryEditorComponent, a as DynamicCompilerService, a5 as DynamicRowTemplateComponent, k as FieldEditorComponent, F as FilterBarComponent, q as FilterInfo, a6 as FormatGridViewValuePipe, a7 as GetSrcUploadPreviewPipe, G as GlobalHandler, a8 as HtmlEditorComponent, a9 as ImageWrapperComponent, I as ImportExportButtonComponent, aa as IsSelectedRowPipe, ab as KanbanListComponent, ac as KanbanOptions, ad as KanbanStatusColumnItem, ae as LazyChartListComponent, af as LazyCodeEditorComponent, ag as LazyDataActionButtonComponent, ah as LazyDataSourceComponent, ai as LazyFieldEditorComponent, aj as LazyFirstRunWizardComponent, ak as LazyImageWrapperComponent, al as LazyKanbanListComponent, am as LazyMetaMenuComponent, an as LazyPivotBuilderComponent, ao as LazyReportDesignerComponent, ap as LazyReportViewerComponent, aq as LazySchedulerListComponent, ar as LazySpreadsheetListSfComponent, as as LazyTimelineListComponent, r as LicenseFeatureService, at as ListGridComponent, au as LookupEditorComponent, av as MapListComponent, o as MetaInfo, aw as MetaMenuComponent, i as MetadataEditorService, M as MetadataProviderService, g as MetadatiColonna, ax as MetadatiTabella, ay as NotificationBellComponent, az as NotificationRealtimeService, aA as NumberEditorComponent, aB as PALETTE_STOPS, aC as PREVIEW_RESTORE_KEY, aD as PRIMARY_PALETTES, P as PagerComponent, f as ParametricDialogComponent, aE as PerformanceInspectorComponent, aF as PointFilterComponent, aG as PropertyArrayEditorComponent, aH as PropertyObjectEditorComponent, aI as RAG_DESTRUCTIVE_KINDS, aJ as RouteMetricsDashboardComponent, aK as Scene3dDesignerRouteComponent, aL as Scene3dViewerRouteComponent, aM as THEME_MODE_STORAGE_KEY, aN as THEME_OPTIONS, aO as THEME_STORAGE_KEY, aP as TextAreaEditorComponent, aQ as TextEditorComponent, aR as ThemeBuilderComponent, aS as ThemeCatalogService, aT as ThemePreviewPanelComponent, aU as ThemeRuntimeService, aV as ThemeSelectorComponent, u as TimelineOptions, T as TranslationManagerService, aW as TreeListComponent, aX as TreeViewSelectorComponent, aY as UploadDialogComponent, aZ as UploadEditorComponent, U as UserInfoService, a_ as UserLanguageService, a$ as UserMenuComponent, b0 as ValidationRule, b1 as ValueChangedPayload, b2 as VisibleFieldListPipe, b3 as WUIC_FONT_CATALOG, p as WUIC_SUPPRESS_GLOBAL_ERROR, b4 as WidgetDefinition, b5 as WorkflowDesignerRouteComponent, b6 as WorkflowRunnerComponent, j as WorkflowRuntimeMetadataService, W as WtoolboxService, b7 as WuicAziendaSwitcherComponent, b8 as WuicErrorDialogComponent, b9 as WuicErrorInterceptor, ba as WuicFeatureDirective, bb as WuicFrozenColumnDirective, bc as WuicRagChatbotComponent, bd as WuicRagChatbotFabComponent, be as WuicRagService, bf as WuicRowTogglerDirective, bg as _PRIMENG_TABLE_DIRECTIVES_NAMES, bh as authExpiredInterceptor, bi as bestContrastColor, bj as boundedRepeaterPendingChangesGuard, bk as buildCustomPreset, bl as buildThemeValue, d as clampAlpha, bm as computeDataQualitySummary, bn as contrastRatio, bo as createDraftTheme, bp as featureRouteCanActivateGuard, bq as featureRouteCanMatchGuard, br as generatePrimaryPalette, bs as generateSurfacePalette, bt as getQualityInspectorOptions, v as getThemeOptions, bu as getThemePrimaryHex, bv as hexToOklch, bw as hexToRgb, bx as hsbaToRgbaString, by as inferTemplateFieldFromBaseClass, bz as isCustomThemeValue, bA as isDestructiveRagAction, bB as isRoutePersistenceEnabled, bC as loadBooleanEditorComponent, bD as loadButtonEditorComponent, bE as loadCodeAreaEditorComponent, bF as loadColorEditorComponent, bG as loadDateEditorComponent, bH as loadDictionaryEditorComponent, bI as loadHtmlEditorComponent, bJ as loadLookupEditorComponent, bK as loadNumberEditorComponent, bL as loadPropertyArrayEditorComponent, bM as loadPropertyObjectEditorComponent, bN as loadTextAreaEditorComponent, bO as loadTextEditorComponent, bP as loadTreeViewSelectorComponent, bQ as loadUploadEditorComponent, bR as menuRouteAccessCanActivateGuard, bS as menuRouteAccessCanMatchGuard, bT as nearestPrimaryName, bU as normalizeHex, bV as oklchToHex, bW as oklchToRgb, bX as resolveBackgroundCss, bY as resolveFontStack, bZ as resolveGridStrengths, b_ as resolveThemePreset, b$ as resolveThemePresetForOption, c0 as rgbToHex, c1 as rgbToOklch, c2 as rgbaToHsbaModel, c3 as routeMetricsClient, c4 as routes, c5 as scene3dDesignerPendingChangesGuard, c6 as themeBuilderPendingChangesGuard, t as toHsbaModel, e as toPersistedColor, c7 as wcagLevel, c8 as wuicErrorInterceptor } from './wuic-framework-lib-wuic-framework-lib-81WUtxz8.mjs';
1
+ export { w as AUTH_REDIRECT_REASON_KEY, x as AppHeaderComponent, y as AppHeaderConfigService, z as AppSettingsEditorComponent, B as AuthSessionService, E as BooleanEditorComponent, H as BoundedRepeaterComponent, J as ButtonEditorComponent, K as CUSTOM_THEMES_STORAGE_KEY, N as CallbackPipe, O as CallbackPipe2, Q as CarouselListComponent, R as CodeAreaEditorComponent, S as ColorEditorComponent, V as CrashReporterService, X as CustomAttributesService, Y as CustomException, Z as DEFAULT_FONT_STACK, _ as DEFAULT_THEME_STORAGE_KEY, $ as DEFAULT_THEME_VALUE, a0 as DataActionButtonComponent, a1 as DataProviderOdataService, c as DataRepeaterComponent, b as DataSourceComponent, a2 as DateEditorComponent, a3 as DesignerRouteComponent, a4 as DictionaryEditorComponent, a as DynamicCompilerService, a5 as DynamicRowTemplateComponent, k as FieldEditorComponent, F as FilterBarComponent, q as FilterInfo, a6 as FormatGridViewValuePipe, a7 as GetSrcUploadPreviewPipe, G as GlobalHandler, a8 as HtmlEditorComponent, a9 as ImageWrapperComponent, I as ImportExportButtonComponent, aa as IsSelectedRowPipe, ab as KanbanListComponent, ac as KanbanOptions, ad as KanbanStatusColumnItem, ae as LazyChartListComponent, af as LazyCodeEditorComponent, ag as LazyDataActionButtonComponent, ah as LazyDataSourceComponent, ai as LazyFieldEditorComponent, aj as LazyFirstRunWizardComponent, ak as LazyImageWrapperComponent, al as LazyKanbanListComponent, am as LazyMetaMenuComponent, an as LazyPivotBuilderComponent, ao as LazyReportDesignerComponent, ap as LazyReportViewerComponent, aq as LazySchedulerListComponent, ar as LazySpreadsheetListSfComponent, as as LazyTimelineListComponent, r as LicenseFeatureService, at as ListGridComponent, au as LookupEditorComponent, av as MapListComponent, o as MetaInfo, aw as MetaMenuComponent, i as MetadataEditorService, M as MetadataProviderService, g as MetadatiColonna, ax as MetadatiTabella, ay as NotificationBellComponent, az as NotificationRealtimeService, aA as NumberEditorComponent, aB as PALETTE_STOPS, aC as PREVIEW_RESTORE_KEY, aD as PRIMARY_PALETTES, P as PagerComponent, f as ParametricDialogComponent, aE as PerformanceInspectorComponent, aF as PointFilterComponent, aG as PropertyArrayEditorComponent, aH as PropertyObjectEditorComponent, aI as RAG_DESTRUCTIVE_KINDS, aJ as RouteMetricsDashboardComponent, aK as Scene3dDesignerRouteComponent, aL as Scene3dViewerRouteComponent, aM as THEME_MODE_STORAGE_KEY, aN as THEME_OPTIONS, aO as THEME_STORAGE_KEY, aP as TextAreaEditorComponent, aQ as TextEditorComponent, aR as ThemeBuilderComponent, aS as ThemeCatalogService, aT as ThemePreviewPanelComponent, aU as ThemeRuntimeService, aV as ThemeSelectorComponent, u as TimelineOptions, T as TranslationManagerService, aW as TreeListComponent, aX as TreeViewSelectorComponent, aY as UploadDialogComponent, aZ as UploadEditorComponent, U as UserInfoService, a_ as UserLanguageService, a$ as UserMenuComponent, b0 as ValidationRule, b1 as ValueChangedPayload, b2 as VisibleFieldListPipe, b3 as WUIC_FONT_CATALOG, p as WUIC_SUPPRESS_GLOBAL_ERROR, b4 as WidgetDefinition, b5 as WorkflowDesignerRouteComponent, b6 as WorkflowRunnerComponent, j as WorkflowRuntimeMetadataService, W as WtoolboxService, b7 as WuicAziendaSwitcherComponent, b8 as WuicErrorDialogComponent, b9 as WuicErrorInterceptor, ba as WuicFeatureDirective, bb as WuicFrozenColumnDirective, bc as WuicRagChatbotComponent, bd as WuicRagChatbotFabComponent, be as WuicRagService, bf as WuicRowTogglerDirective, bg as _PRIMENG_TABLE_DIRECTIVES_NAMES, bh as authExpiredInterceptor, bi as bestContrastColor, bj as boundedRepeaterPendingChangesGuard, bk as buildCustomPreset, bl as buildThemeValue, d as clampAlpha, bm as computeDataQualitySummary, bn as contrastRatio, bo as createDraftTheme, bp as featureRouteCanActivateGuard, bq as featureRouteCanMatchGuard, br as generatePrimaryPalette, bs as generateSurfacePalette, bt as getQualityInspectorOptions, v as getThemeOptions, bu as getThemePrimaryHex, bv as hexToOklch, bw as hexToRgb, bx as hsbaToRgbaString, by as inferTemplateFieldFromBaseClass, bz as isCustomThemeValue, bA as isDestructiveRagAction, bB as isRoutePersistenceEnabled, bC as loadBooleanEditorComponent, bD as loadButtonEditorComponent, bE as loadCodeAreaEditorComponent, bF as loadColorEditorComponent, bG as loadDateEditorComponent, bH as loadDictionaryEditorComponent, bI as loadHtmlEditorComponent, bJ as loadLookupEditorComponent, bK as loadNumberEditorComponent, bL as loadPropertyArrayEditorComponent, bM as loadPropertyObjectEditorComponent, bN as loadTextAreaEditorComponent, bO as loadTextEditorComponent, bP as loadTreeViewSelectorComponent, bQ as loadUploadEditorComponent, bR as menuRouteAccessCanActivateGuard, bS as menuRouteAccessCanMatchGuard, bT as nearestPrimaryName, bU as normalizeHex, bV as oklchToHex, bW as oklchToRgb, bX as resolveBackgroundCss, bY as resolveFontStack, bZ as resolveGridStrengths, b_ as resolveThemePreset, b$ as resolveThemePresetForOption, c0 as rgbToHex, c1 as rgbToOklch, c2 as rgbaToHsbaModel, c3 as routeMetricsClient, c4 as routes, c5 as scene3dDesignerPendingChangesGuard, c6 as themeBuilderPendingChangesGuard, t as toHsbaModel, e as toPersistedColor, c7 as wcagLevel, c8 as wuicErrorInterceptor } from './wuic-framework-lib-wuic-framework-lib-B2TNmDgm.mjs';
2
2
  //# sourceMappingURL=wuic-framework-lib.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wuic-framework-lib",
3
- "version": "1.7.2",
3
+ "version": "1.7.4",
4
4
  "description": "Wuic Angular Framework Library",
5
5
  "author": "Wuic",
6
6
  "license": "MIT",
@@ -9032,6 +9032,19 @@ declare class MapListComponent implements OnInit, AfterViewInit, OnDestroy, IBin
9032
9032
  mapsApiUnavailable: boolean;
9033
9033
  /** The Maps script sets `window.google.maps.importLibrary` once it has loaded. */
9034
9034
  static isMapsApiAvailable(): boolean;
9035
+ /**
9036
+ * Il template monta `<google-map>` solo se questo e' vero.
9037
+ *
9038
+ * Serve un GETTER e non `!mapsApiUnavailable`: quel flag viene alzato dentro la
9039
+ * sottoscrizione al datasource, cioe' dopo che il template e' gia' stato valutato almeno
9040
+ * una volta. In quella finestra `<google-map>` di @angular/google-maps si costruiva e
9041
+ * lanciava `ReferenceError: google is not defined` dal suo codice interno; l'eccezione
9042
+ * risaliva al dialog di errore applicativo e bloccava l'intera UI, che e' proprio il guasto
9043
+ * che l'avviso in pagina doveva sostituire. Essendo un getter, la condizione viene rivalutata
9044
+ * a ogni ciclo di change detection: se lo script di Maps arriva piu' tardi, la mappa compare
9045
+ * da sola senza ricaricare.
9046
+ */
9047
+ get mapsApiReady(): boolean;
9035
9048
  MAP_LIB: google.maps.MapsLibrary;
9036
9049
  /**
9037
9050
  * Proprieta di stato del componente per marker lib, usata dalla logica interna e dal template.