wuic-framework-lib 1.0.11 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. package/fesm2022/{wuic-framework-lib-chart-list.component-vuzmQW9F.mjs → wuic-framework-lib-chart-list.component-C0OYuZoM.mjs} +8 -8
  2. package/fesm2022/{wuic-framework-lib-code-editor.component-BjbIkm4g.mjs → wuic-framework-lib-code-editor.component-B8OQ3Z0k.mjs} +258 -258
  3. package/fesm2022/{wuic-framework-lib-designer.component-BM3elB-a.mjs → wuic-framework-lib-designer.component-DsWgWtFj.mjs} +99 -105
  4. package/fesm2022/{wuic-framework-lib-first-run-wizard.component-5tcl67dK.mjs → wuic-framework-lib-first-run-wizard.component-wR_LrvPK.mjs} +244 -38
  5. package/fesm2022/{wuic-framework-lib-framework-docs.component-BGcJ7k1X.mjs → wuic-framework-lib-framework-docs.component-eyzu9tdV.mjs} +31 -15
  6. package/fesm2022/{wuic-framework-lib-pivot-builder.component-ChNyMAfi.mjs → wuic-framework-lib-pivot-builder.component-BFdZW5Ch.mjs} +215 -88
  7. package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-DFLR_EmK.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-B583WbYe.mjs} +2 -2
  8. package/fesm2022/{wuic-framework-lib-report-designer.component-B_SC7VkW.mjs → wuic-framework-lib-report-designer.component-HJUpslLX.mjs} +12 -12
  9. package/fesm2022/{wuic-framework-lib-report-viewer.component-BTK-p8xF.mjs → wuic-framework-lib-report-viewer.component-El32zpzi.mjs} +81 -11
  10. package/fesm2022/{wuic-framework-lib-scheduler-list.component-CIoGVf4O.mjs → wuic-framework-lib-scheduler-list.component-E8s_e533.mjs} +16 -16
  11. package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-DQ5OxO4j.mjs → wuic-framework-lib-spreadsheet-list-sf.component-CDn0qi_C.mjs} +19 -5
  12. package/fesm2022/{wuic-framework-lib-workflow-designer.component-BHLT4MER.mjs → wuic-framework-lib-workflow-designer.component-hL7oKqYO.mjs} +2 -2
  13. package/fesm2022/{wuic-framework-lib-wuic-framework-lib-DDokY6wY.mjs → wuic-framework-lib-wuic-framework-lib-ABS_G7lO.mjs} +2149 -1089
  14. package/fesm2022/wuic-framework-lib.mjs +1 -1
  15. package/package.json +1 -1
  16. package/types/wuic-framework-lib.d.ts +308 -24
@@ -1,2 +1,2 @@
1
- export { r as AUTH_REDIRECT_REASON_KEY, s as AppSettingsEditorComponent, n as AuthSessionService, B as BooleanEditorComponent, t as BoundedRepeaterComponent, u as ButtonEditorComponent, C as CallbackPipe, v as CallbackPipe2, w as CarouselListComponent, x as CodeAreaEditorComponent, y as ColorEditorComponent, z as CrashReporterService, E as CustomException, H as DataActionButtonComponent, J as DataProviderOdataService, c as DataRepeaterComponent, b as DataSourceComponent, K as DateEditorComponent, N as DesignerRouteComponent, O as DictionaryEditorComponent, a as DynamicCompilerService, Q as DynamicRowTemplateComponent, i as FieldEditorComponent, F as FilterBarComponent, o as FilterInfo, R as FormatGridViewValuePipe, S as GetSrcUploadPreviewPipe, G as GlobalHandler, V as HtmlEditorComponent, X as ImageWrapperComponent, I as ImportExportButtonComponent, Y as IsSelectedRowPipe, Z as KanbanListComponent, _ as KanbanOptions, $ as KanbanStatusColumnItem, a0 as LazyChartListComponent, a1 as LazyCodeEditorComponent, a2 as LazyDataActionButtonComponent, a3 as LazyDataSourceComponent, a4 as LazyFieldEditorComponent, a5 as LazyFirstRunWizardComponent, a6 as LazyImageWrapperComponent, a7 as LazyKanbanListComponent, a8 as LazyMetaMenuComponent, a9 as LazyPivotBuilderComponent, aa as LazyReportDesignerComponent, ab as LazyReportViewerComponent, ac as LazySchedulerListComponent, ad as LazySpreadsheetListSfComponent, ae as LicenseFeatureService, af as ListGridComponent, ag as LookupEditorComponent, ah as MapListComponent, m as MetaInfo, ai as MetaMenuComponent, g as MetadataEditorService, M as MetadataProviderService, e as MetadatiColonna, aj as MetadatiTabella, ak as NotificationBellComponent, al as NotificationRealtimeService, am as NumberEditorComponent, an as PRIMARY_PALETTES, P as PagerComponent, d as ParametricDialogComponent, ao as PropertyArrayEditorComponent, ap as PropertyObjectEditorComponent, aq as THEME_OPTIONS, ar as TextAreaEditorComponent, as as TextEditorComponent, T as TranslationManagerService, at as TreeListComponent, au as TreeViewSelectorComponent, av as UploadDialogComponent, aw as UploadEditorComponent, U as UserInfoService, ax as ValidationRule, ay as ValueChangedPayload, az as VisibleFieldListPipe, aA as WidgetDefinition, aB as WorkflowDesignerRouteComponent, aC as WorkflowRunnerComponent, h as WorkflowRuntimeMetadataService, W as WtoolboxService, aD as WuicErrorDialogComponent, aE as WuicErrorInterceptor, aF as WuicFeatureDirective, aG as WuicFrozenColumnDirective, aH as WuicRagChatbotComponent, aI as WuicRagChatbotFabComponent, aJ as WuicRagService, aK as WuicRowTogglerDirective, aL as _PRIMENG_TABLE_DIRECTIVES_NAMES, aM as authExpiredInterceptor, aN as boundedRepeaterPendingChangesGuard, aO as featureRouteCanActivateGuard, aP as featureRouteCanMatchGuard, q as getThemeOptions, aQ as getThemePrimaryHex, aR as inferTemplateFieldFromBaseClass, aS as loadBooleanEditorComponent, aT as loadButtonEditorComponent, aU as loadCodeAreaEditorComponent, aV as loadColorEditorComponent, aW as loadDateEditorComponent, aX as loadDictionaryEditorComponent, aY as loadHtmlEditorComponent, aZ as loadLookupEditorComponent, a_ as loadNumberEditorComponent, a$ as loadPropertyArrayEditorComponent, b0 as loadPropertyObjectEditorComponent, b1 as loadTextAreaEditorComponent, b2 as loadTextEditorComponent, b3 as loadTreeViewSelectorComponent, b4 as loadUploadEditorComponent, b5 as menuRouteAccessCanActivateGuard, b6 as menuRouteAccessCanMatchGuard, b7 as routes, b8 as wuicErrorInterceptor } from './wuic-framework-lib-wuic-framework-lib-DDokY6wY.mjs';
1
+ export { s as AUTH_REDIRECT_REASON_KEY, t as AppSettingsEditorComponent, n as AuthSessionService, B as BooleanEditorComponent, u as BoundedRepeaterComponent, v as ButtonEditorComponent, C as CallbackPipe, w as CallbackPipe2, x as CarouselListComponent, y as CodeAreaEditorComponent, z as ColorEditorComponent, E as CrashReporterService, H as CustomException, J as DataActionButtonComponent, K as DataProviderOdataService, c as DataRepeaterComponent, b as DataSourceComponent, N as DateEditorComponent, O as DesignerRouteComponent, Q as DictionaryEditorComponent, a as DynamicCompilerService, R as DynamicRowTemplateComponent, i as FieldEditorComponent, F as FilterBarComponent, o as FilterInfo, S as FormatGridViewValuePipe, V as GetSrcUploadPreviewPipe, G as GlobalHandler, X as HtmlEditorComponent, Y as ImageWrapperComponent, I as ImportExportButtonComponent, Z as IsSelectedRowPipe, _ as KanbanListComponent, $ as KanbanOptions, a0 as KanbanStatusColumnItem, a1 as LazyChartListComponent, a2 as LazyCodeEditorComponent, a3 as LazyDataActionButtonComponent, a4 as LazyDataSourceComponent, a5 as LazyFieldEditorComponent, a6 as LazyFirstRunWizardComponent, a7 as LazyImageWrapperComponent, a8 as LazyKanbanListComponent, a9 as LazyMetaMenuComponent, aa as LazyPivotBuilderComponent, ab as LazyReportDesignerComponent, ac as LazyReportViewerComponent, ad as LazySchedulerListComponent, ae as LazySpreadsheetListSfComponent, p as LicenseFeatureService, af as ListGridComponent, ag as LookupEditorComponent, ah as MapListComponent, m as MetaInfo, ai as MetaMenuComponent, g as MetadataEditorService, M as MetadataProviderService, e as MetadatiColonna, aj as MetadatiTabella, ak as NotificationBellComponent, al as NotificationRealtimeService, am as NumberEditorComponent, an as PRIMARY_PALETTES, P as PagerComponent, d as ParametricDialogComponent, ao as PropertyArrayEditorComponent, ap as PropertyObjectEditorComponent, aq as THEME_OPTIONS, ar as TextAreaEditorComponent, as as TextEditorComponent, T as TranslationManagerService, at as TreeListComponent, au as TreeViewSelectorComponent, av as UploadDialogComponent, aw as UploadEditorComponent, U as UserInfoService, ax as ValidationRule, ay as ValueChangedPayload, az as VisibleFieldListPipe, aA as WidgetDefinition, aB as WorkflowDesignerRouteComponent, aC as WorkflowRunnerComponent, h as WorkflowRuntimeMetadataService, W as WtoolboxService, aD as WuicErrorDialogComponent, aE as WuicErrorInterceptor, aF as WuicFeatureDirective, aG as WuicFrozenColumnDirective, aH as WuicRagChatbotComponent, aI as WuicRagChatbotFabComponent, aJ as WuicRagService, aK as WuicRowTogglerDirective, aL as _PRIMENG_TABLE_DIRECTIVES_NAMES, aM as authExpiredInterceptor, aN as boundedRepeaterPendingChangesGuard, aO as featureRouteCanActivateGuard, aP as featureRouteCanMatchGuard, r as getThemeOptions, aQ as getThemePrimaryHex, aR as inferTemplateFieldFromBaseClass, aS as loadBooleanEditorComponent, aT as loadButtonEditorComponent, aU as loadCodeAreaEditorComponent, aV as loadColorEditorComponent, aW as loadDateEditorComponent, aX as loadDictionaryEditorComponent, aY as loadHtmlEditorComponent, aZ as loadLookupEditorComponent, a_ as loadNumberEditorComponent, a$ as loadPropertyArrayEditorComponent, b0 as loadPropertyObjectEditorComponent, b1 as loadTextAreaEditorComponent, b2 as loadTextEditorComponent, b3 as loadTreeViewSelectorComponent, b4 as loadUploadEditorComponent, b5 as menuRouteAccessCanActivateGuard, b6 as menuRouteAccessCanMatchGuard, b7 as routes, b8 as wuicErrorInterceptor } from './wuic-framework-lib-wuic-framework-lib-ABS_G7lO.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.0.11",
3
+ "version": "1.0.19",
4
4
  "description": "Wuic Angular Framework Library",
5
5
  "author": "Wuic",
6
6
  "license": "MIT",
@@ -94,11 +94,106 @@ declare class WuicClientException extends Error {
94
94
  });
95
95
  }
96
96
 
97
+ /**
98
+ * Normalized context passed to error delegates registered via
99
+ * {@link GlobalHandler.registerDelegate}.
100
+ *
101
+ * Built from any raw error (HttpErrorResponse, Error, WuicClientException,
102
+ * or arbitrary thrown object) so component delegates can do lookups
103
+ * (e.g. `ctx.message.includes('METADATA_DB_EXISTS_CONFIRM_REQUIRED')`)
104
+ * without caring about the envelope shape.
105
+ */
106
+ interface ErrorDelegateContext {
107
+ /** Raw error as received by the GlobalHandler. */
108
+ error: any;
109
+ /** `errorCode` from the typed-exception envelope (e.g. `errors.server.unhandled`). */
110
+ errorCode?: string;
111
+ /** `args` map from the typed-exception envelope. */
112
+ args?: Record<string, unknown>;
113
+ /** Server's `fallbackMessage` (raw, untranslated). */
114
+ fallbackMessage?: string;
115
+ /** Best-effort merged message — concatenates every plausible source
116
+ * (body.message, body.rootMessage, args.message, fallbackMessage,
117
+ * err.message) so substring matches work regardless of envelope shape. */
118
+ message: string;
119
+ /** HTTP status code, if the error is an HttpErrorResponse. */
120
+ status?: number;
121
+ /** Request URL, if the error is an HttpErrorResponse. */
122
+ url?: string;
123
+ /** True if the raw error looks like an HttpErrorResponse. */
124
+ isHttpError: boolean;
125
+ /** True if the raw error is a typed `WuicClientException`. */
126
+ isClientException: boolean;
127
+ }
128
+ /**
129
+ * Delegate function: returns true (sync or via Promise) to suppress the
130
+ * default error dialog. See {@link GlobalHandler.registerDelegate} for the
131
+ * full contract and async semantics.
132
+ */
133
+ type ErrorDelegate = (ctx: ErrorDelegateContext) => boolean | void | Promise<boolean | void>;
134
+ /**
135
+ * Options for {@link GlobalHandler.notify}: controls how the error is
136
+ * surfaced to the user (toast vs dialog) and what header/severity to use.
137
+ */
138
+ interface NotifyOptions {
139
+ /** True → render as PrimeNG toast (via WtoolboxService.messageNotificationService).
140
+ * False/undefined → full dialog flow (handleError path). Default: false. */
141
+ isToast?: boolean;
142
+ /** Toast header text. Default: 'Errore'. (Toast-only.) */
143
+ summary?: string;
144
+ /** Toast severity (PrimeNG). Default: 'error'. (Toast-only.) */
145
+ severity?: 'success' | 'info' | 'warn' | 'error';
146
+ /** Toast lifetime ms. Default: 6000. (Toast-only.) */
147
+ life?: number;
148
+ /** True → bypass registered delegates (rare; default false). */
149
+ skipDelegates?: boolean;
150
+ }
97
151
  declare class GlobalHandler implements ErrorHandler {
98
152
  static messageNotification: BehaviorSubject<{
99
153
  show: boolean;
100
154
  exception: CustomException;
101
155
  }>;
156
+ /**
157
+ * Flag globale "backend in restart" — quando true, `handleError` non
158
+ * mostra dialog/toast di errore e non inoltra al CrashReporter. Acceso
159
+ * da `app-settings-editor.component.ts:saveAndApply` mentre l'overlay
160
+ * "Riavvio in corso" e' visibile (poll-fail → bump → poll-up). Spento
161
+ * appena il nuovo worker risponde.
162
+ *
163
+ * Razionale: durante il restart il worker e' down per ~5-30s. Tutte le
164
+ * chiamate HTTP correnti (notification polling, crashForward, lazy
165
+ * fetches) falliscono con `ERR_CONNECTION_REFUSED`. Ogni fallimento
166
+ * fa partire `handleError` → dialog "Errore HTTP 0" sotto il dialog
167
+ * "Riavvio in corso". Brutto e fuorviante per l'utente che sta
168
+ * legittimamente aspettando il restart. Soppresso fino a fine restart.
169
+ */
170
+ private static _restartInProgress;
171
+ static setRestartInProgress(value: boolean): void;
172
+ static isRestartInProgress(): boolean;
173
+ /**
174
+ * Auto-bootstrap del CrashReporterService al primo istanziamento del
175
+ * GlobalHandler (registrato dal consumer come `{ provide: ErrorHandler,
176
+ * useClass: GlobalHandler }` → eager-instantiated dal DI Angular al boot).
177
+ *
178
+ * Bug fix 2026-04-28: prima nessun consumer (WuicTest, WuicDemo, CrmApp)
179
+ * chiamava `CrashReporterService.init()` esplicitamente → l'`enabled`
180
+ * restava false → `(globalThis as any).__wuicCrashReporter` mai assegnato
181
+ * → `handleError` saltava silenziosamente il forward → tutti i crash JS
182
+ * (incluse le `TypeError` da librerie 3p come Stimulsoft viewer)
183
+ * non arrivavano mai a `MetaService.crashForward` → e di conseguenza
184
+ * mai al receiver `errors.wuic-framework.com`. Visibile anche dal
185
+ * Network panel browser: nessuna POST a `crashForward` dopo un errore.
186
+ *
187
+ * Centralizzare il bootstrap qui ha questi vantaggi:
188
+ * 1. Niente codice consumer-side richiesto — la lib si auto-attiva.
189
+ * 2. Garantisce che `__wuicCrashReporter` sia popolato PRIMA che
190
+ * `handleError` lo legga (stesso ciclo di costruzione DI).
191
+ * 3. Guard `_bootstrapAttempted`: niente double-init se per qualche
192
+ * ragione GlobalHandler venisse istanziato N volte (es.
193
+ * `handleErrorStatic` ne crea uno transient per request).
194
+ */
195
+ private static _bootstrapAttempted;
196
+ constructor();
102
197
  /**
103
198
  * Static dispatcher — lets framework code that doesn't have access to
104
199
  * the Angular ErrorHandler instance (e.g. the HTTP interceptor)
@@ -112,6 +207,24 @@ declare class GlobalHandler implements ErrorHandler {
112
207
  * Angular zone (e.g. swallowed lifecycle errors).
113
208
  */
114
209
  static emitClientException(exc: WuicClientException): void;
210
+ /**
211
+ * Component-friendly entry point: take an error and surface it to the
212
+ * user as a TOAST (default) or DIALOG, choosing the right message
213
+ * automatically from the typed-exception envelope.
214
+ *
215
+ * Use case: components doing their own try/catch on HTTP calls (e.g.
216
+ * pivot-builder, view-builder) want to show a contextual error in a
217
+ * PrimeNG toast — they used to do
218
+ * `messageService.add({ severity:'error', detail: err.message })`
219
+ * which prints the useless "Http failure response for X: 500 OK".
220
+ * With `notify(err, { isToast:true })` the toast shows the SERVER's
221
+ * `fallbackMessage` / `args.message` from the JsonExceptionFilter envelope.
222
+ *
223
+ * Also runs the registered delegates first, so a marker-intercepting
224
+ * delegate (e.g. wizard's METADATA_DB_EXISTS) can take over and
225
+ * suppress the toast/dialog if it handles the error itself.
226
+ */
227
+ static notify(error: any, opts?: NotifyOptions): void;
115
228
  /**
116
229
  * Optional bootstrap: install window/promise handlers that wrap any
117
230
  * native unhandled error into a typed WuicClientException. Call once
@@ -123,6 +236,25 @@ declare class GlobalHandler implements ErrorHandler {
123
236
  static installWindowHandlers(opts?: {
124
237
  exposeForTests?: boolean;
125
238
  }): void;
239
+ private static delegates;
240
+ private static nextDelegateId;
241
+ /**
242
+ * Register a delegate that intercepts errors before the default dialog.
243
+ * Higher priority delegates are called first; first one returning true
244
+ * suppresses the default dialog and stops further delegate calls.
245
+ * @returns disposer function — call it to unregister (e.g. ngOnDestroy).
246
+ */
247
+ static registerDelegate(fn: ErrorDelegate, opts?: {
248
+ priority?: number;
249
+ }): () => void;
250
+ /** Build a normalized context from a raw error (HttpErrorResponse, Error,
251
+ * WuicClientException, or anything else with .error). */
252
+ private static extractErrorContext;
253
+ /** Iterate delegates; first one returning true suppresses default flow.
254
+ * Async delegates: their Promise is dispatched fire-and-forget; the
255
+ * return value seen here is `Promise` (truthy), which we treat as
256
+ * "delegate took over" → suppress default dialog. */
257
+ private static dispatchToDelegates;
126
258
  handleError(e: any): void;
127
259
  /**
128
260
  * @deprecated Pre-typed-envelope branches. Remove once server migration
@@ -3012,6 +3144,16 @@ declare class MetadataProviderService {
3012
3144
  value: string;
3013
3145
  type: string;
3014
3146
  }>>;
3147
+ /**
3148
+ * Elimina un report (file `.mrt`) e relativo cleanup metadata via `MetaService.removeReport`.
3149
+ * Solo gli utenti admin possono effettivamente cancellare; il backend ritorna `false` per non-admin.
3150
+ * Dopo successo invalida la cache report-list locale per la route, cosi' il prossimo
3151
+ * `getReportList` ricarica dal backend.
3152
+ * @param route Route applicativa che ospita il report.
3153
+ * @param name Nome file `.mrt` da rimuovere.
3154
+ * @returns `true` se la cancellazione e' andata a buon fine.
3155
+ */
3156
+ removeReport(route: string, name: string): Promise<boolean>;
3015
3157
  static ɵfac: i0.ɵɵFactoryDeclaration<MetadataProviderService, never>;
3016
3158
  static ɵprov: i0.ɵɵInjectableDeclaration<MetadataProviderService>;
3017
3159
  }
@@ -5078,6 +5220,14 @@ declare class ListGridComponent implements AfterViewInit, OnInit, OnDestroy, IDa
5078
5220
  hardcodedDatasource: DataSourceComponent;
5079
5221
  rowCustomSelect: (rowData: any, $event: any, dt: Table) => void;
5080
5222
  hideToolbar: boolean;
5223
+ /**
5224
+ * Provider letto da `<wuic-import-export-button>` al click su Export XLS.
5225
+ * Arrow function (NON metodo) per preservare il binding di `this` quando
5226
+ * passata come Input — un metodo verrebbe richiamato col `this` del child.
5227
+ * Ritorna lo stato filtri LIVE del datasource: include i filtri applicati
5228
+ * via header/filter-bar che NON vengono propagati nella URL query string.
5229
+ */
5230
+ getCurrentFilterInfoForExport: () => any;
5081
5231
  /**
5082
5232
  * Evento emesso subito prima del rendering logico della singola riga.
5083
5233
  * Il consumer puo annullare la riga chiamando `cancelRender()`.
@@ -5127,6 +5277,15 @@ declare class ListGridComponent implements AfterViewInit, OnInit, OnDestroy, IDa
5127
5277
  private outerTheadObserveRetryTimer?;
5128
5278
  records: any[];
5129
5279
  cols: any[];
5280
+ /**
5281
+ * Constant CSS value for `<col>`/`<th>` min-width binding. Pulled into a
5282
+ * field (instead of `getColumnMinWidthCss()` method) so the template binding
5283
+ * `[style.min-width]="columnMinWidthCss"` resolves to a property read
5284
+ * (no function call) and Angular's change-detection short-circuits when
5285
+ * the value didn't change. Saves ~3 function calls per column per CD cycle
5286
+ * (template uses it on `<col>`, header `<th>`, and filter row `<th>`).
5287
+ */
5288
+ readonly columnMinWidthCss = "10px";
5130
5289
  metas: MetadatiColonna[];
5131
5290
  metaInfo: MetaInfo;
5132
5291
  routeName: string;
@@ -6141,6 +6300,11 @@ declare class ListGridComponent implements AfterViewInit, OnInit, OnDestroy, IDa
6141
6300
  /**
6142
6301
  * Restituisce il valore CSS per `min-width` sulle colonne della tabella.
6143
6302
  * @returns Valore CSS da applicare.
6303
+ *
6304
+ * NOTE: per i template binding usare direttamente il field
6305
+ * `columnMinWidthCss`. Questa funzione resta solo per i call-site interni
6306
+ * (TS) che la consumano via `getColumnMinWidthForCol` o
6307
+ * `Number.parseFloat(getColumnMinWidthCss())`.
6144
6308
  */
6145
6309
  getColumnMinWidthCss(): string;
6146
6310
  /**
@@ -6480,8 +6644,25 @@ declare class ImportExportButtonComponent {
6480
6644
  private notificationRealtime;
6481
6645
  private trslSrv;
6482
6646
  private userInfo;
6647
+ private cdr;
6483
6648
  routeName: string;
6484
6649
  tableMetadata: any;
6650
+ /**
6651
+ * Callback opzionale fornito dal componente host (list-grid, spreadsheet-list-sf, ...)
6652
+ * per leggere il `filterInfo` corrente del datasource al momento del click su Export.
6653
+ *
6654
+ * Razionale: prima del fix, l'export leggeva il filtro SOLO dalla query string
6655
+ * (`?filterInfo=...`), che NON viene aggiornata quando l'utente filtra in-grid via
6656
+ * intestazioni di colonna o filter-bar — la URL resta `/cities/list` mentre lo stato
6657
+ * filtri vive in `datasource.value.filterInfo`. Risultato: l'XLS scaricato conteneva
6658
+ * SEMPRE l'intero dataset ignorando il filtro applicato.
6659
+ *
6660
+ * Il provider e' una funzione (non un binding `@Input() filterInfo: any`) per garantire
6661
+ * che venga letto il valore CORRENTE al click, non quello catturato all'ultima CD.
6662
+ * Fallback (provider non bindato): `parseFilterInfoFromQueryString()` per back-compat
6663
+ * con eventuali host esterni che non passano il provider.
6664
+ */
6665
+ filterInfoProvider?: () => any;
6485
6666
  importFileInputRef?: ElementRef<HTMLInputElement>;
6486
6667
  private popupMenuItemsCache;
6487
6668
  private popupMenuItemsCacheKey;
@@ -6526,7 +6707,7 @@ declare class ImportExportButtonComponent {
6526
6707
  private exportMonitoringOnly;
6527
6708
  private lastHandledExportResumeGuid;
6528
6709
  private exportBackgroundNotifiedGuids;
6529
- constructor(route: ActivatedRoute, dataSrv: DataProviderService, dataMetaSrv: DataProviderMetaService, notificationRealtime: NotificationRealtimeService, trslSrv: TranslationManagerService, userInfo: UserInfoService);
6710
+ constructor(route: ActivatedRoute, dataSrv: DataProviderService, dataMetaSrv: DataProviderMetaService, notificationRealtime: NotificationRealtimeService, trslSrv: TranslationManagerService, userInfo: UserInfoService, cdr: ChangeDetectorRef);
6530
6711
  private t;
6531
6712
  get canExportXls(): boolean;
6532
6713
  get canImportXls(): boolean;
@@ -6562,7 +6743,7 @@ declare class ImportExportButtonComponent {
6562
6743
  private applyImportProgressValue;
6563
6744
  private stopImportProgressPolling;
6564
6745
  static ɵfac: i0.ɵɵFactoryDeclaration<ImportExportButtonComponent, never>;
6565
- static ɵcmp: i0.ɵɵComponentDeclaration<ImportExportButtonComponent, "wuic-import-export-button", never, { "routeName": { "alias": "routeName"; "required": false; }; "tableMetadata": { "alias": "tableMetadata"; "required": false; }; }, {}, never, never, true, never>;
6746
+ static ɵcmp: i0.ɵɵComponentDeclaration<ImportExportButtonComponent, "wuic-import-export-button", never, { "routeName": { "alias": "routeName"; "required": false; }; "tableMetadata": { "alias": "tableMetadata"; "required": false; }; "filterInfoProvider": { "alias": "filterInfoProvider"; "required": false; }; }, {}, never, never, true, never>;
6566
6747
  }
6567
6748
 
6568
6749
  declare class PagerComponent implements OnInit, OnChanges, OnDestroy {
@@ -6797,6 +6978,14 @@ declare class FilterBarComponent implements OnInit, OnChanges, OnDestroy {
6797
6978
  * a bloated, unreadable URL with duplicated filter serializations.
6798
6979
  */
6799
6980
  skipUrlSync: boolean;
6981
+ /**
6982
+ * Quando true, il filter-bar non lancia `datasource.value.fetchData()` (e
6983
+ * quindi nessuna `MetaService.getFlatRecordData`) sugli apply* — emette solo
6984
+ * gli output. Usato dal pivot-builder dove il `nestedSource` non rappresenta
6985
+ * una grid visibile: la SQL preview viene rigenerata via
6986
+ * `previewViewDefinition` come reazione agli output, niente fetch sul route.
6987
+ */
6988
+ skipFetch: boolean;
6800
6989
  filterApplied: EventEmitter<void>;
6801
6990
  onFilterApplied: EventEmitter<{
6802
6991
  mode: "basic" | "advanced" | "clear";
@@ -6939,7 +7128,7 @@ declare class FilterBarComponent implements OnInit, OnChanges, OnDestroy {
6939
7128
  private syncGridStateQueryString;
6940
7129
  private resetCursorPagingState;
6941
7130
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterBarComponent, never>;
6942
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterBarComponent, "wuic-filter-bar", never, { "datasource": { "alias": "datasource"; "required": false; }; "hardcodedDatasource": { "alias": "hardcodedDatasource"; "required": false; }; "multiDatasourceMetas": { "alias": "multiDatasourceMetas"; "required": false; }; "skipUrlSync": { "alias": "skipUrlSync"; "required": false; }; }, { "filterApplied": "filterApplied"; "onFilterApplied": "onFilterApplied"; "onSortingApplied": "onSortingApplied"; "onPageSizeApplied": "onPageSizeApplied"; "onGroupingChanged": "onGroupingChanged"; "onFilterBarCollapseChanged": "onFilterBarCollapseChanged"; }, never, never, true, never>;
7131
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterBarComponent, "wuic-filter-bar", never, { "datasource": { "alias": "datasource"; "required": false; }; "hardcodedDatasource": { "alias": "hardcodedDatasource"; "required": false; }; "multiDatasourceMetas": { "alias": "multiDatasourceMetas"; "required": false; }; "skipUrlSync": { "alias": "skipUrlSync"; "required": false; }; "skipFetch": { "alias": "skipFetch"; "required": false; }; }, { "filterApplied": "filterApplied"; "onFilterApplied": "onFilterApplied"; "onSortingApplied": "onSortingApplied"; "onPageSizeApplied": "onPageSizeApplied"; "onGroupingChanged": "onGroupingChanged"; "onFilterBarCollapseChanged": "onFilterBarCollapseChanged"; }, never, never, true, never>;
6943
7132
  }
6944
7133
 
6945
7134
  declare class LazySchedulerListComponent implements OnInit {
@@ -7088,7 +7277,7 @@ interface IDesigner<T extends IDesignerProperties> {
7088
7277
  archetypeOptions: T;
7089
7278
  }
7090
7279
 
7091
- declare class MapListComponent implements OnInit, IBindable, IDesigner<MapOptions>, IDataBoundHostComponent {
7280
+ declare class MapListComponent implements OnInit, AfterViewInit, OnDestroy, IBindable, IDesigner<MapOptions>, IDataBoundHostComponent {
7092
7281
  private titleService;
7093
7282
  private cd;
7094
7283
  private route;
@@ -7122,10 +7311,6 @@ declare class MapListComponent implements OnInit, IBindable, IDesigner<MapOption
7122
7311
  * Proprieta di stato del componente per place lib, usata dalla logica interna e dal template.
7123
7312
  */
7124
7313
  PLACE_LIB: google.maps.PlacesLibrary;
7125
- /**
7126
- * Proprieta di stato del componente per drawing lib, usata dalla logica interna e dal template.
7127
- */
7128
- DRAWING_LIB: google.maps.DrawingLibrary;
7129
7314
  /**
7130
7315
  * Input dal componente padre per hardcoded route; usata nella configurazione e nel rendering del componente.
7131
7316
  */
@@ -7436,6 +7621,21 @@ declare class MapListComponent implements OnInit, IBindable, IDesigner<MapOption
7436
7621
  * Rilascia risorse e sottoscrizioni per evitare leak e stati pendenti.
7437
7622
  */
7438
7623
  ngOnDestroy(): void;
7624
+ /** Cleanup function per ogni listener gmp-click attivo. */
7625
+ private markerGmpClickCleanups;
7626
+ /** Subscription a `markerElements.changes`. */
7627
+ private markerElementsChangesSub?;
7628
+ ngAfterViewInit(): void;
7629
+ /**
7630
+ * Iterazione `markerElements` ↔ `data.filter(__marker)` in parallelo
7631
+ * (stesso ordine di rendering). Per ogni AdvancedMarkerElement:
7632
+ * - removeEventListener su quello vecchio (cleanup);
7633
+ * - addEventListener('gmp-click', ...) sul nuovo, capturando record/marker
7634
+ * nello scope per chiamare `openInfo` esattamente come faceva
7635
+ * `(mapClick)="openInfo(markerElem, record.__marker)"`.
7636
+ */
7637
+ private wireMarkerGmpClick;
7638
+ private detachAllMarkerGmpClick;
7439
7639
  /**
7440
7640
  * Si sottoscrive a `fetchInfo$` del datasource, aggiorna metadati/viewport e inizializza Google Maps al primo caricamento.
7441
7641
  * Nei caricamenti successivi ripopola marker/poligoni e aggiorna clusterer e resize pass.
@@ -7745,7 +7945,7 @@ declare class MapListComponent implements OnInit, IBindable, IDesigner<MapOption
7745
7945
  static ɵcmp: i0.ɵɵComponentDeclaration<MapListComponent, "wuic-map-list", never, { "hardcodedRoute": { "alias": "hardcodedRoute"; "required": false; }; "parentRecord": { "alias": "parentRecord"; "required": false; }; "parentMetaInfo": { "alias": "parentMetaInfo"; "required": false; }; "datasource": { "alias": "datasource"; "required": false; }; "hardcodedDatasource": { "alias": "hardcodedDatasource"; "required": false; }; "hideToolbar": { "alias": "hideToolbar"; "required": false; }; }, { "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"; }, never, never, true, never>;
7746
7946
  }
7747
7947
 
7748
- declare class CarouselListComponent implements IBindable, IDesigner<CarouselOptions>, AfterViewInit, OnDestroy, IDataBoundHostComponent {
7948
+ declare class CarouselListComponent implements IBindable, IDesigner<CarouselOptions>, OnInit, AfterViewInit, OnDestroy, IDataBoundHostComponent {
7749
7949
  private titleService;
7750
7950
  private cd;
7751
7951
  private route;
@@ -8002,7 +8202,7 @@ declare class LazySpreadsheetListSfComponent implements OnInit {
8002
8202
  static ɵcmp: i0.ɵɵComponentDeclaration<LazySpreadsheetListSfComponent, "wuic-spreadsheet-list-sf-lazy", never, { "hardcodedRoute": { "alias": "hardcodedRoute"; "required": false; }; "parentRecord": { "alias": "parentRecord"; "required": false; }; "parentMetaInfo": { "alias": "parentMetaInfo"; "required": false; }; "datasource": { "alias": "datasource"; "required": false; }; "hardcodedDatasource": { "alias": "hardcodedDatasource"; "required": false; }; "hideToolbar": { "alias": "hideToolbar"; "required": false; }; }, {}, never, never, true, never>;
8003
8203
  }
8004
8204
 
8005
- declare class TreeListComponent implements OnDestroy, IDataBoundHostComponent {
8205
+ declare class TreeListComponent implements OnInit, OnDestroy, IDataBoundHostComponent {
8006
8206
  private titleService;
8007
8207
  private dataSrv;
8008
8208
  private cd;
@@ -8146,8 +8346,12 @@ declare class TreeListComponent implements OnDestroy, IDataBoundHostComponent {
8146
8346
  constructor(titleService: Title, dataSrv: DataProviderService, cd: ChangeDetectorRef, trslSrv: TranslationManagerService);
8147
8347
  /**
8148
8348
  * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
8349
+ *
8350
+ * Fire-and-forget: Angular `OnInit.ngOnInit` deve ritornare void; deleghiamo
8351
+ * la logica async a `initAsync()` per evitare Promise floating tipizzata void.
8149
8352
  */
8150
- ngOnInit(): Promise<void>;
8353
+ ngOnInit(): void;
8354
+ private initAsync;
8151
8355
  /**
8152
8356
  * Gestisce la logica di `subscribeToDS` con regole guidate dai metadati server `_Metadati_*` (tabella/colonna), gestendo esplicitamente il ciclo di vita delle subscription RxJS, preparando/aggiornando il dataset visualizzato.
8153
8357
  */
@@ -8209,7 +8413,7 @@ declare class TreeListComponent implements OnDestroy, IDataBoundHostComponent {
8209
8413
  static ɵcmp: i0.ɵɵComponentDeclaration<TreeListComponent, "wuic-tree-list", never, { "hardcodedRoute": { "alias": "hardcodedRoute"; "required": false; }; "parentRecord": { "alias": "parentRecord"; "required": false; }; "parentMetaInfo": { "alias": "parentMetaInfo"; "required": false; }; "datasource": { "alias": "datasource"; "required": false; }; "hardcodedDatasource": { "alias": "hardcodedDatasource"; "required": false; }; "hideToolbar": { "alias": "hideToolbar"; "required": false; }; }, { "onTreeDataBound": "onTreeDataBound"; "onTreeNodeExpand": "onTreeNodeExpand"; "onTreeNodeExpanded": "onTreeNodeExpanded"; "onTreeNodeSelect": "onTreeNodeSelect"; "onTreeNodeUnselect": "onTreeNodeUnselect"; "onTreeNodeCollapse": "onTreeNodeCollapse"; }, never, never, true, never>;
8210
8414
  }
8211
8415
 
8212
- declare class ParametricDialogComponent implements OnDestroy, IDataBoundHostComponent {
8416
+ declare class ParametricDialogComponent implements OnInit, AfterViewInit, OnDestroy, IDataBoundHostComponent {
8213
8417
  ref: DynamicDialogRef | null;
8214
8418
  config: DynamicDialogConfig | null;
8215
8419
  private route;
@@ -8709,6 +8913,18 @@ declare class AppSettingsEditorComponent implements OnInit {
8709
8913
  private pristine;
8710
8914
  current: Map<string, any>;
8711
8915
  readonly activeTabValue: i0.WritableSignal<number>;
8916
+ /**
8917
+ * Chiave localStorage per persistere il tab corrente. Salvato per `name`
8918
+ * (stable identifier della sezione, non per index che puo' cambiare se
8919
+ * vengono aggiunte/rimosse sezioni). Letto in `loadSchema` per ripristinare
8920
+ * il tab dopo refresh / restart-driven reload.
8921
+ */
8922
+ private static readonly ACTIVE_TAB_LS_KEY;
8923
+ /**
8924
+ * Wire-up dal template: persiste il tab corrente su localStorage ad
8925
+ * ogni cambio. Salva il `name` della sezione (stabile cross-reload).
8926
+ */
8927
+ onTabChange(newIndex: number): void;
8712
8928
  readonly pendingChanges: i0.Signal<SaveChange[]>;
8713
8929
  readonly hasPendingChanges: i0.Signal<boolean>;
8714
8930
  readonly pendingChangesCount: i0.Signal<number>;
@@ -8777,6 +8993,52 @@ declare class AppSettingsEditorComponent implements OnInit {
8777
8993
  onReload(): Promise<void>;
8778
8994
  private confirmDiscardChanges;
8779
8995
  private sleep;
8996
+ /**
8997
+ * Restart-completion poll con flow a 4 fasi (algoritmo concordato):
8998
+ *
8999
+ * 1) Phase A — poll Health finche' fallisce. Quando il save di un setting
9000
+ * con impact `restart` ritorna, il vecchio worker e' ancora vivo per
9001
+ * ~800ms-5s prima dello StopApplication. Se non aspettiamo che muoia
9002
+ * davvero, qualunque "200 OK" iniziale e' un FALSE POSITIVE — il vecchio
9003
+ * worker risponde, dismissa il dialog, l'utente naviga e si schianta.
9004
+ *
9005
+ * 2) Phase B — wait `postDownGraceMs` (default 10s) DOPO la prima failure.
9006
+ * Margine per dotnet-watch di completare lo shutdown e arrivare in
9007
+ * "Waiting for changes" idle state.
9008
+ *
9009
+ * 3) Phase C — chiama `/api/__dev__/bump-watch-trigger` (Angular dev-server
9010
+ * proxy bypass middleware in `proxy.conf.js`). Il middleware riscrive
9011
+ * `HotReloadTrigger.cs` con un nome metodo unico → rude edit → dotnet-watch
9012
+ * fa rebuild + restart del worker. In IIS/ANCM o dotnet run puro l'endpoint
9013
+ * non esiste, la chiamata fallisce silente, ANCM/NSSM ricicla per conto suo.
9014
+ *
9015
+ * 4) Phase D — poll Health finche' un nuovo response 200 arriva: nuovo worker up.
9016
+ *
9017
+ * @param maxWaitMs budget totale in ms (default 90s).
9018
+ * @param postDownGraceMs grace post-down (default 10s).
9019
+ * @returns true se il restart e' stato completato, false su timeout.
9020
+ */
9021
+ private waitForRestart;
9022
+ /**
9023
+ * [PROD path] Polling semplice usato sotto IIS/ANCM/NSSM dove il
9024
+ * supervisor ricicla il worker autonomamente in pochi secondi.
9025
+ * Comportamento identico alla versione legacy: polla finche' Health
9026
+ * risponde 200, senza fasi di pre-attesa o trigger esterni.
9027
+ *
9028
+ * Nota: c'e' un piccolo rischio di falso positivo nel primo ping se il
9029
+ * vecchio worker non e' ancora morto (~1-2s di sovrapposizione), ma sotto
9030
+ * ANCM/NSSM la finestra e' molto stretta e il caller (`saveAndApply`)
9031
+ * gia' fa un `sleep(Math.max(800, restartDelayMs+200))` prima di chiamare
9032
+ * questo metodo, coprendo il caso normale.
9033
+ */
9034
+ private waitForHealthSimple;
9035
+ /**
9036
+ * Wrapper legacy mantenuto per back-compat: alias di
9037
+ * `waitForHealthSimple`. Eventuali consumer storici che chiamavano
9038
+ * `waitForHealth(ms)` continuano a vedere il polling semplice (non il
9039
+ * 4-phase) — coerente con ambienti prod dove il supervisor gestisce
9040
+ * il restart.
9041
+ */
8780
9042
  private waitForHealth;
8781
9043
  private forceLogout;
8782
9044
  static ɵfac: i0.ɵɵFactoryDeclaration<AppSettingsEditorComponent, never>;
@@ -8987,6 +9249,19 @@ interface LicenseStatusResponse {
8987
9249
  maintenanceExpiryUtc?: string | null;
8988
9250
  tier?: string;
8989
9251
  features?: string[];
9252
+ /**
9253
+ * DBMS utilizzato dal backend per il **DB DATI** (`AppSettings.dbms`):
9254
+ * `'mssql'` o `'mysql'`. Aggiunto 2026-04-28 per il tooltip license del
9255
+ * meta-menu — sysadmin vede a colpo d'occhio su quale provider gira il
9256
+ * deploy.
9257
+ */
9258
+ dataDbms?: string;
9259
+ /**
9260
+ * DBMS utilizzato dal backend per il **DB METADATI** (`AppSettings.meta-dbms`).
9261
+ * Tipicamente uguale a `dataDbms` ma puo' divergere quando
9262
+ * `allowMultipleDBMS=true` (es. data MySQL + metadata MSSQL).
9263
+ */
9264
+ metaDbms?: string;
8990
9265
  }
8991
9266
  /**
8992
9267
  * Client-side view of the current license. Exposes synchronous `has(feature)`
@@ -9235,6 +9510,11 @@ declare class AuthSessionService {
9235
9510
  */
9236
9511
  setSessionTimeout(minutes: number, warningMinutes?: number): void;
9237
9512
  private activityListenersAttached;
9513
+ /** Timestamp dell'ultimo reset throttled, in ms epoch. */
9514
+ private lastActivityResetAt;
9515
+ /** Min intervallo tra reset throttled (mousemove/scroll). 1s e' un buon compromesso
9516
+ * tra responsiveness al "vero" idle e overhead da event flood. */
9517
+ private static readonly ACTIVITY_RESET_THROTTLE_MS;
9238
9518
  private setupActivityListeners;
9239
9519
  /**
9240
9520
  * Avvia/riavvia i timer di sessione. Chiamato dopo login e ad ogni attività HTTP.
@@ -9410,6 +9690,7 @@ declare class MetaMenuComponent implements OnInit, AfterViewInit, OnDestroy {
9410
9690
  */
9411
9691
  private runtimeMenuSub?;
9412
9692
  private authStateSub?;
9693
+ private authConfigRefreshHandler;
9413
9694
  /**
9414
9695
  * Proprieta di stato del componente per menu updated sub, usata dalla logica interna e dal template.
9415
9696
  */
@@ -9639,7 +9920,18 @@ declare class MetaMenuComponent implements OnInit, AfterViewInit, OnDestroy {
9639
9920
  * sincronizza permessi/menu e applica l'eventuale redirect richiesto via query/hash.
9640
9921
  */
9641
9922
  loginLegacy(): Promise<void>;
9642
- private loadAuthConfig;
9923
+ /**
9924
+ * Re-carica la AuthConfig dal backend. Chiamato in `ngOnInit` al boot e
9925
+ * (via global event `wuic:auth-config-refresh`) dopo il restart del
9926
+ * backend per applicare immediatamente nuovi `sessionTimeoutMinutes`,
9927
+ * `notifySessionExpirationBefore`, `enableUserLanguageSwitch` e altri
9928
+ * setting hot-reload-relevant senza richiedere page reload.
9929
+ *
9930
+ * Esposto come `public` cosi' altri componenti (es. app-settings-editor
9931
+ * post-save) possono triggerarlo direttamente quando hanno il riferimento
9932
+ * al meta-menu, oppure dispatcciare l'evento globale.
9933
+ */
9934
+ loadAuthConfig(): Promise<void>;
9643
9935
  onDocumentClick(): void;
9644
9936
  toggleUserLanguageMenu(event?: Event): void;
9645
9937
  isCurrentUserLanguage(langId: string): boolean;
@@ -10120,7 +10412,7 @@ declare class NumberEditorComponent implements IFieldEditor, AfterViewInit {
10120
10412
  static ɵcmp: i0.ɵɵComponentDeclaration<NumberEditorComponent, "wuic-number-editor", never, { "record": { "alias": "record"; "required": false; }; "field": { "alias": "field"; "required": false; }; "metaInfo": { "alias": "metaInfo"; "required": false; }; "isFilter": { "alias": "isFilter"; "required": false; }; "nestedIndex": { "alias": "nestedIndex"; "required": false; }; "triggerProp": { "alias": "triggerProp"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, {}, never, never, true, never>;
10121
10413
  }
10122
10414
 
10123
- declare class LookupEditorComponent implements IFieldEditor, AfterViewInit, AfterViewChecked, OnInit, OnChanges {
10415
+ declare class LookupEditorComponent implements IFieldEditor, AfterViewInit, AfterViewChecked, OnChanges {
10124
10416
  private trslSrv;
10125
10417
  private cd;
10126
10418
  private hostElementRef;
@@ -10194,10 +10486,6 @@ declare class LookupEditorComponent implements IFieldEditor, AfterViewInit, Afte
10194
10486
  * @param hostElementRef Parametro in ingresso utilizzato per determinare il flusso operativo del metodo.
10195
10487
  */
10196
10488
  constructor(trslSrv: TranslationManagerService, cd: ChangeDetectorRef, hostElementRef: ElementRef<HTMLElement>);
10197
- /**
10198
- * Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
10199
- */
10200
- ngOnInit(): void;
10201
10489
  ngOnChanges(_changes: SimpleChanges): void;
10202
10490
  /**
10203
10491
  * Legge `mc_props_bag.lookup.virtualize` e determina se abilitare il virtual scroll del p-autocomplete.
@@ -10247,7 +10535,7 @@ declare class LookupEditorComponent implements IFieldEditor, AfterViewInit, Afte
10247
10535
  static ɵcmp: i0.ɵɵComponentDeclaration<LookupEditorComponent, "wuic-lookup-editor", never, { "record": { "alias": "record"; "required": false; }; "field": { "alias": "field"; "required": false; }; "metaInfo": { "alias": "metaInfo"; "required": false; }; "isFilter": { "alias": "isFilter"; "required": false; }; "nestedIndex": { "alias": "nestedIndex"; "required": false; }; "triggerProp": { "alias": "triggerProp"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; }, {}, never, never, true, never>;
10248
10536
  }
10249
10537
 
10250
- declare class DictionaryEditorComponent implements OnInit, OnChanges, AfterViewChecked, OnDestroy {
10538
+ declare class DictionaryEditorComponent implements OnInit, OnChanges, AfterViewChecked, AfterViewInit, OnDestroy {
10251
10539
  private trnSrv;
10252
10540
  private hostElementRef;
10253
10541
  /**
@@ -10688,10 +10976,6 @@ declare class ButtonEditorComponent {
10688
10976
  */
10689
10977
  constructor(confirmationService: ConfirmationService, trn: TranslateService, wtoolbox: WtoolboxService);
10690
10978
  /**
10691
- * Completa inizializzazione dopo il rendering della view e collega riferimenti UI.
10692
- */
10693
- ngAfterViewInit(): void;
10694
- /**
10695
10979
  * Valuta una condizione tramite `isButtonVisible` con il flusso specifico definito dalla sua implementazione.
10696
10980
  * @returns Esito booleano calcolato dal metodo.
10697
10981
  */
@@ -13790,4 +14074,4 @@ declare function getThemeOptions(): ThemeOption[];
13790
14074
  declare function getThemePrimaryHex(value: string): string;
13791
14075
 
13792
14076
  export { AUTH_REDIRECT_REASON_KEY, AppSettingsEditorComponent, AuthSessionService, BooleanEditorComponent, BoundedRepeaterComponent, ButtonEditorComponent, CallbackPipe, CallbackPipe2, CarouselListComponent, CodeAreaEditorComponent, ColorEditorComponent, CrashReporterService, CustomException, DataActionButtonComponent, DataProviderOdataService, DataRepeaterComponent, DataSourceComponent, DateEditorComponent, DesignerRouteComponent, DictionaryEditorComponent, DynamicCompilerService, DynamicRowTemplateComponent, FieldEditorComponent, FilterBarComponent, FilterInfo, FormatGridViewValuePipe, GetSrcUploadPreviewPipe, GlobalHandler, HtmlEditorComponent, ImageWrapperComponent, ImportExportButtonComponent, IsSelectedRowPipe, KanbanListComponent, KanbanOptions, KanbanStatusColumnItem, LazyChartListComponent, LazyCodeEditorComponent, LazyDataActionButtonComponent, LazyDataSourceComponent, LazyFieldEditorComponent, LazyFirstRunWizardComponent, LazyImageWrapperComponent, LazyKanbanListComponent, LazyMetaMenuComponent, LazyPivotBuilderComponent, LazyReportDesignerComponent, LazyReportViewerComponent, LazySchedulerListComponent, LazySpreadsheetListSfComponent, LicenseFeatureService, ListGridComponent, LookupEditorComponent, MapListComponent, MetaInfo, MetaMenuComponent, MetadataEditorService, MetadataProviderService, MetadatiColonna, MetadatiTabella, NotificationBellComponent, NotificationRealtimeService, NumberEditorComponent, PRIMARY_PALETTES, PagerComponent, ParametricDialogComponent, PropertyArrayEditorComponent, PropertyObjectEditorComponent, THEME_OPTIONS, TextAreaEditorComponent, TextEditorComponent, TranslationManagerService, TreeListComponent, TreeViewSelectorComponent, UploadDialogComponent, UploadEditorComponent, UserInfoService, ValidationRule, ValueChangedPayload, VisibleFieldListPipe, WidgetDefinition, WorkflowDesignerRouteComponent, WorkflowRunnerComponent, WorkflowRuntimeMetadataService, WtoolboxService, WuicErrorDialogComponent, WuicErrorInterceptor, WuicFeatureDirective, WuicFrozenColumnDirective, WuicRagChatbotComponent, WuicRagChatbotFabComponent, WuicRagService, WuicRowTogglerDirective, _PRIMENG_TABLE_DIRECTIVES_NAMES, authExpiredInterceptor, boundedRepeaterPendingChangesGuard, featureRouteCanActivateGuard, featureRouteCanMatchGuard, getThemeOptions, getThemePrimaryHex, inferTemplateFieldFromBaseClass, loadBooleanEditorComponent, loadButtonEditorComponent, loadCodeAreaEditorComponent, loadColorEditorComponent, loadDateEditorComponent, loadDictionaryEditorComponent, loadHtmlEditorComponent, loadLookupEditorComponent, loadNumberEditorComponent, loadPropertyArrayEditorComponent, loadPropertyObjectEditorComponent, loadTextAreaEditorComponent, loadTextEditorComponent, loadTreeViewSelectorComponent, loadUploadEditorComponent, menuRouteAccessCanActivateGuard, menuRouteAccessCanMatchGuard, routes, wuicErrorInterceptor };
13793
- export type { AuthSessionState, Breadcrumb, CompileDynamicComponentOptions, CrashReportPayload, CrashReportingConfig, DataSourceAfterSyncEvent, DataSourceBeforeSyncEvent, DataSourceSyncOperation, IDataBoundHostComponent, IFieldEditor, KanbanStatusColumn, LicenseStatusResponse, ListGridAfterRenderEvent, ListGridAfterRowRenderEvent, ListGridBeforeRowRenderEvent, MultiDatasourceMeta, NotificationItem, RagAskAcceptedResponse, RagAskRequest, RagChatHistorySnapshot, RagChatMessageDto, RagChatMessageStatus, RagChatRequest, RagChatResponse, RagChatSessionDto, RagChatTurn, RagChatbotTurn, RagHealthResponse, RagQueryRequest, RagQueryResponse, RagSource, RealtimeProgressEvent, ThemeOption, ThemePresetName, ThemePrimaryName, WorkflowRuntimeLinkedActionRouteMetadataEntry, WorkflowRuntimePreviousRouteNodeEntry, WorkflowRuntimeRouteMetadataEntry, WorkflowRuntimeRouteNodePayloadEntry };
14077
+ export type { AuthSessionState, Breadcrumb, CompileDynamicComponentOptions, CrashReportPayload, CrashReportingConfig, DataSourceAfterSyncEvent, DataSourceBeforeSyncEvent, DataSourceSyncOperation, ErrorDelegate, ErrorDelegateContext, IDataBoundHostComponent, IFieldEditor, KanbanStatusColumn, LicenseStatusResponse, ListGridAfterRenderEvent, ListGridAfterRowRenderEvent, ListGridBeforeRowRenderEvent, MultiDatasourceMeta, NotificationItem, NotifyOptions, RagAskAcceptedResponse, RagAskRequest, RagChatHistorySnapshot, RagChatMessageDto, RagChatMessageStatus, RagChatRequest, RagChatResponse, RagChatSessionDto, RagChatTurn, RagChatbotTurn, RagHealthResponse, RagQueryRequest, RagQueryResponse, RagSource, RealtimeProgressEvent, ThemeOption, ThemePresetName, ThemePrimaryName, WorkflowRuntimeLinkedActionRouteMetadataEntry, WorkflowRuntimePreviousRouteNodeEntry, WorkflowRuntimeRouteMetadataEntry, WorkflowRuntimeRouteNodePayloadEntry };