wuic-framework-lib 1.7.8 → 1.7.9
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.
- package/fesm2022/{wuic-framework-lib-chart-list.component-B-qi3f9x.mjs → wuic-framework-lib-chart-list.component-Bz93lddX.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-code-editor.component-CdZRro82.mjs → wuic-framework-lib-code-editor.component-CerH_Ptt.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-designer.component-NI80qEef.mjs → wuic-framework-lib-designer.component-D-TDt9Yp.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-first-run-wizard.component-CZRn9cUV.mjs → wuic-framework-lib-first-run-wizard.component-DTd6aeZQ.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-framework-docs.component-CreW338k.mjs → wuic-framework-lib-framework-docs.component-B2AdE4N0.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-pivot-builder.component-0iwqvcfZ.mjs → wuic-framework-lib-pivot-builder.component-B0Y_UHcw.mjs} +14 -14
- package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-DFGOpdlV.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-RLZTS8VK.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-designer.component-x1qjlyS9.mjs → wuic-framework-lib-report-designer.component-DMHg11S1.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-scaffold-dialog.component-YO8IyqI9.mjs → wuic-framework-lib-report-scaffold-dialog.component-Dz-0CKFf.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-viewer.component-AOhX1ah0.mjs → wuic-framework-lib-report-viewer.component-DcjeKFl3.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-scene3d-designer.component-B-9lIpui.mjs → wuic-framework-lib-scene3d-designer.component-DkFSmqjd.mjs} +3 -3
- package/fesm2022/{wuic-framework-lib-scene3d-light-baker-gpu-MyzRdukh.mjs → wuic-framework-lib-scene3d-light-baker-gpu-CDOGvkje.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-scene3d-viewer.component-DHrKs3zg.mjs → wuic-framework-lib-scene3d-viewer.component-CXzEo7SW.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-scheduler-list.component-B4Y92Q0p.mjs → wuic-framework-lib-scheduler-list.component-BWwp_Y2n.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-BvVnXgfH.mjs → wuic-framework-lib-spreadsheet-list-sf.component-C7XVqrk-.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-timeline-list.component-a_KcbMD0.mjs → wuic-framework-lib-timeline-list.component-BPCARDTv.mjs} +4 -4
- package/fesm2022/{wuic-framework-lib-workflow-designer.component-A6g5UefX.mjs → wuic-framework-lib-workflow-designer.component-BOTf2H42.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-wuic-framework-lib-D4Q320L6.mjs → wuic-framework-lib-wuic-framework-lib-CNl2-wAT.mjs} +238 -82
- package/fesm2022/wuic-framework-lib.mjs +1 -1
- package/package.json +1 -1
- package/types/wuic-framework-lib.d.ts +73 -2
|
@@ -2400,6 +2400,83 @@ class WtoolboxService {
|
|
|
2400
2400
|
}
|
|
2401
2401
|
};
|
|
2402
2402
|
static isBusy = new BehaviorSubject(false);
|
|
2403
|
+
/**
|
|
2404
|
+
* Quante operazioni sono in volo su OGNI subject di "occupato".
|
|
2405
|
+
*
|
|
2406
|
+
* Perche' il conteggio sta qui e non nei componenti: `isBusy` e' uno stato condiviso —
|
|
2407
|
+
* list-grid e bounded-repeater lo passano come `loading` ai datasource che creano, quindi
|
|
2408
|
+
* su una singola pagina ci scrivono piu' istanze insieme. Finche' il contatore stava dentro
|
|
2409
|
+
* il singolo datasource, la prima operazione che finiva portava il PROPRIO contatore a zero
|
|
2410
|
+
* ed emetteva `false` sul subject di tutti: aprendo una route lenta con colonne lookup, le
|
|
2411
|
+
* dodici letture di metadata rispondevano in mezzo secondo e spegnevano lo spinner della
|
|
2412
|
+
* griglia che stava ancora aspettando i suoi dati (misurato: maschera via a 1056 ms su una
|
|
2413
|
+
* query che rispondeva a 3822 ms). Un contatore per istanza su uno stato globale funziona
|
|
2414
|
+
* finche' c'e' una cosa sola in volo; alla seconda, chi finisce per primo spegne la luce
|
|
2415
|
+
* a tutti.
|
|
2416
|
+
*
|
|
2417
|
+
* WeakMap: la chiave e' il subject stesso, cosi' un subject locale che nessuno usa piu'
|
|
2418
|
+
* non trattiene una voce.
|
|
2419
|
+
*/
|
|
2420
|
+
static operazioniInVoloPerSubject = new WeakMap();
|
|
2421
|
+
/**
|
|
2422
|
+
* Segnala l'inizio di un'operazione su un subject di "occupato".
|
|
2423
|
+
*
|
|
2424
|
+
* @param subject Il subject da portare a `true`. Ignorato se assente.
|
|
2425
|
+
*/
|
|
2426
|
+
static beginBusy(subject) {
|
|
2427
|
+
if (!subject?.next) {
|
|
2428
|
+
return;
|
|
2429
|
+
}
|
|
2430
|
+
const inVolo = (WtoolboxService.operazioniInVoloPerSubject.get(subject) || 0) + 1;
|
|
2431
|
+
WtoolboxService.operazioniInVoloPerSubject.set(subject, inVolo);
|
|
2432
|
+
if (inVolo === 1) {
|
|
2433
|
+
subject.next(true);
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
/**
|
|
2437
|
+
* Segnala la fine di un'operazione: il subject torna a `false` solo quando finisce
|
|
2438
|
+
* l'ULTIMA operazione in volo, non la prima.
|
|
2439
|
+
*
|
|
2440
|
+
* @param subject Lo stesso subject passato a `beginBusy`. Ignorato se assente.
|
|
2441
|
+
*/
|
|
2442
|
+
static endBusy(subject) {
|
|
2443
|
+
if (!subject?.next) {
|
|
2444
|
+
return;
|
|
2445
|
+
}
|
|
2446
|
+
const inVolo = Math.max(0, (WtoolboxService.operazioniInVoloPerSubject.get(subject) || 0) - 1);
|
|
2447
|
+
WtoolboxService.operazioniInVoloPerSubject.set(subject, inVolo);
|
|
2448
|
+
if (inVolo === 0) {
|
|
2449
|
+
subject.next(false);
|
|
2450
|
+
}
|
|
2451
|
+
}
|
|
2452
|
+
/**
|
|
2453
|
+
* Quante operazioni risultano in volo su quel subject. Serve a chi deve rilasciare le
|
|
2454
|
+
* proprie (es. un componente che viene distrutto mentre una fetch e' ancora aperta).
|
|
2455
|
+
*
|
|
2456
|
+
* @param subject Il subject da interrogare.
|
|
2457
|
+
* @returns Il numero di operazioni aperte, 0 se il subject non e' mai stato usato.
|
|
2458
|
+
*/
|
|
2459
|
+
static busyCount(subject) {
|
|
2460
|
+
return subject ? (WtoolboxService.operazioniInVoloPerSubject.get(subject) || 0) : 0;
|
|
2461
|
+
}
|
|
2462
|
+
/**
|
|
2463
|
+
* Azzera lo stato "occupato" di quel subject, qualunque cosa risulti in volo.
|
|
2464
|
+
*
|
|
2465
|
+
* E' il ripiego per i percorsi di RECUPERO — il gestore globale degli errori, un annullo
|
|
2466
|
+
* dell'utente — dove non si sa quante operazioni siano rimaste aperte e lasciare la
|
|
2467
|
+
* clessidra accesa bloccherebbe l'interfaccia. Va usato solo li': in un flusso normale
|
|
2468
|
+
* spegne anche le operazioni degli altri, ed e' esattamente il difetto che
|
|
2469
|
+
* `beginBusy`/`endBusy` esistono per evitare.
|
|
2470
|
+
*
|
|
2471
|
+
* @param subject Il subject da riportare a `false`.
|
|
2472
|
+
*/
|
|
2473
|
+
static resetBusy(subject) {
|
|
2474
|
+
if (!subject?.next) {
|
|
2475
|
+
return;
|
|
2476
|
+
}
|
|
2477
|
+
WtoolboxService.operazioniInVoloPerSubject.set(subject, 0);
|
|
2478
|
+
subject.next(false);
|
|
2479
|
+
}
|
|
2403
2480
|
static menuUpdated = new BehaviorSubject(false);
|
|
2404
2481
|
/**
|
|
2405
2482
|
* Generic wrapper for invoking user-supplied callbacks compiled from
|
|
@@ -3144,7 +3221,7 @@ class WtoolboxService {
|
|
|
3144
3221
|
script,
|
|
3145
3222
|
' resolve();',
|
|
3146
3223
|
' } catch (_err) {',
|
|
3147
|
-
' wtoolbox.isBusy
|
|
3224
|
+
' wtoolbox.resetBusy(wtoolbox.isBusy);',
|
|
3148
3225
|
' reject(_err);',
|
|
3149
3226
|
' }',
|
|
3150
3227
|
'});'
|
|
@@ -3341,7 +3418,7 @@ class WtoolboxService {
|
|
|
3341
3418
|
const appRef = resolvedInjector.get(ApplicationRef);
|
|
3342
3419
|
const environmentInjector = resolvedInjector.get(EnvironmentInjector);
|
|
3343
3420
|
const close$ = new Subject();
|
|
3344
|
-
const { PromptDialogFallbackHostComponent } = await import('./wuic-framework-lib-prompt-dialog-fallback-host.component-
|
|
3421
|
+
const { PromptDialogFallbackHostComponent } = await import('./wuic-framework-lib-prompt-dialog-fallback-host.component-RLZTS8VK.mjs');
|
|
3345
3422
|
const hostRef = createComponent(PromptDialogFallbackHostComponent, { environmentInjector });
|
|
3346
3423
|
hostRef.instance.datasource = dialogConfig?.data?.datasource;
|
|
3347
3424
|
hostRef.instance.header = String(dialogConfig?.header || '');
|
|
@@ -4797,7 +4874,16 @@ class WtoolboxService {
|
|
|
4797
4874
|
return;
|
|
4798
4875
|
}
|
|
4799
4876
|
const fragment = {};
|
|
4800
|
-
|
|
4877
|
+
// Spuntare una foglia BOOLEANA vuol dire accenderla, non copiarne il valore di
|
|
4878
|
+
// esempio. Nel modello di riferimento quei flag stanno quasi tutti a `false` — e'
|
|
4879
|
+
// il loro default a runtime — quindi copiarlo alla lettera produceva il risultato
|
|
4880
|
+
// piu' assurdo possibile: si spunta `advancedFilter`, nel JSON compare
|
|
4881
|
+
// `"advancedFilter": false`, e l'utente deve andare a correggerlo a mano. Chi non
|
|
4882
|
+
// vuole il flag semplicemente non lo spunta: il default vale gia'.
|
|
4883
|
+
// Sui nodi non booleani (oggetti, array, stringhe d'esempio) resta il valore del
|
|
4884
|
+
// modello, che li' serve proprio come traccia da compilare.
|
|
4885
|
+
const valoreDaInserire = (typeof templateValue === 'boolean') ? true : clone(templateValue);
|
|
4886
|
+
setPathValue(fragment, path.split('.'), valoreDaInserire);
|
|
4801
4887
|
suggestedJson = WtoolboxService.deepMerge(suggestedJson, fragment);
|
|
4802
4888
|
});
|
|
4803
4889
|
let existingJson = {};
|
|
@@ -4953,7 +5039,16 @@ class WtoolboxService {
|
|
|
4953
5039
|
return;
|
|
4954
5040
|
}
|
|
4955
5041
|
const fragment = {};
|
|
4956
|
-
|
|
5042
|
+
// Spuntare una foglia BOOLEANA vuol dire accenderla, non copiarne il valore di
|
|
5043
|
+
// esempio. Nel modello di riferimento quei flag stanno quasi tutti a `false` — e'
|
|
5044
|
+
// il loro default a runtime — quindi copiarlo alla lettera produceva il risultato
|
|
5045
|
+
// piu' assurdo possibile: si spunta `advancedFilter`, nel JSON compare
|
|
5046
|
+
// `"advancedFilter": false`, e l'utente deve andare a correggerlo a mano. Chi non
|
|
5047
|
+
// vuole il flag semplicemente non lo spunta: il default vale gia'.
|
|
5048
|
+
// Sui nodi non booleani (oggetti, array, stringhe d'esempio) resta il valore del
|
|
5049
|
+
// modello, che li' serve proprio come traccia da compilare.
|
|
5050
|
+
const valoreDaInserire = (typeof templateValue === 'boolean') ? true : clone(templateValue);
|
|
5051
|
+
setPathValue(fragment, path.split('.'), valoreDaInserire);
|
|
4957
5052
|
suggestedJson = WtoolboxService.deepMerge(suggestedJson, fragment);
|
|
4958
5053
|
});
|
|
4959
5054
|
record[field.mc_nome_colonna].next(JSON.stringify(suggestedJson, null, 2));
|
|
@@ -6333,7 +6428,7 @@ class GlobalHandler {
|
|
|
6333
6428
|
GlobalHandler.messageNotification.next({ show: true, exception: cust });
|
|
6334
6429
|
}
|
|
6335
6430
|
finally {
|
|
6336
|
-
WtoolboxService.isBusy
|
|
6431
|
+
WtoolboxService.resetBusy(WtoolboxService.isBusy);
|
|
6337
6432
|
}
|
|
6338
6433
|
}
|
|
6339
6434
|
/**
|
|
@@ -8547,7 +8642,7 @@ class MetadataProviderService {
|
|
|
8547
8642
|
*/
|
|
8548
8643
|
async getMetas(route, userId, md_id) {
|
|
8549
8644
|
const metaDb = await MetadataProviderService.generateLocalDB(5);
|
|
8550
|
-
WtoolboxService.isBusy
|
|
8645
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
8551
8646
|
// GUARANTEE busy=false anche se questa funzione throwa o ritorna early con
|
|
8552
8647
|
// results vuoti. Senza il try/finally, due path leak-avano lo stato busy
|
|
8553
8648
|
// a true → spinner globale stuck sulla pagina (visibile anche su list-grid
|
|
@@ -8614,7 +8709,6 @@ class MetadataProviderService {
|
|
|
8614
8709
|
if (!rawPayload) {
|
|
8615
8710
|
// Cache miss — fall back to full request without ETag
|
|
8616
8711
|
MetadataProviderService.metadataETagByKey.delete(etagKey);
|
|
8617
|
-
WtoolboxService.isBusy.next(false);
|
|
8618
8712
|
return this.getMetas(route, userId, md_id);
|
|
8619
8713
|
}
|
|
8620
8714
|
}
|
|
@@ -8748,7 +8842,6 @@ class MetadataProviderService {
|
|
|
8748
8842
|
});
|
|
8749
8843
|
mapped = MetadataProviderService.mapMetadata(results);
|
|
8750
8844
|
mapped.schedulerInfo = Array.isArray(schedulerInfo) ? schedulerInfo : [];
|
|
8751
|
-
WtoolboxService.isBusy.next(false);
|
|
8752
8845
|
return mapped;
|
|
8753
8846
|
}
|
|
8754
8847
|
else {
|
|
@@ -8763,7 +8856,7 @@ class MetadataProviderService {
|
|
|
8763
8856
|
// });
|
|
8764
8857
|
}
|
|
8765
8858
|
finally {
|
|
8766
|
-
WtoolboxService.isBusy
|
|
8859
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
8767
8860
|
}
|
|
8768
8861
|
}
|
|
8769
8862
|
normalizeMetadataPayload(payload) {
|
|
@@ -9504,7 +9597,7 @@ ${extraScope} ${suggestCallbackSanitized}
|
|
|
9504
9597
|
if (existing != null) {
|
|
9505
9598
|
return existing;
|
|
9506
9599
|
}
|
|
9507
|
-
WtoolboxService.isBusy
|
|
9600
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
9508
9601
|
const promise = (async () => {
|
|
9509
9602
|
try {
|
|
9510
9603
|
const results = await this.http.post(MetadataProviderService.getMenuByUserIDUri, { user_id: uId }).toPromise();
|
|
@@ -9518,7 +9611,7 @@ ${extraScope} ${suggestCallbackSanitized}
|
|
|
9518
9611
|
return [];
|
|
9519
9612
|
}
|
|
9520
9613
|
finally {
|
|
9521
|
-
WtoolboxService.isBusy
|
|
9614
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
9522
9615
|
// Rilascia l'in-flight entry SOLO dopo la fine della call (ok o ko):
|
|
9523
9616
|
// fino ad allora, chiamanti concorrenti devono agganciarsi a questa
|
|
9524
9617
|
// Promise, dopo invece devono poter ripartire (es. per forceRefresh
|
|
@@ -12154,7 +12247,7 @@ class DataProviderMetaService {
|
|
|
12154
12247
|
const routeContext = this.buildRouteContext(route, 'export', 'DataProviderMetaService.exportXlsWithTheme');
|
|
12155
12248
|
const trackProgress = String(progressGuid || '').trim().length > 0;
|
|
12156
12249
|
if (!trackProgress) {
|
|
12157
|
-
WtoolboxService.isBusy
|
|
12250
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12158
12251
|
}
|
|
12159
12252
|
try {
|
|
12160
12253
|
let data = await this.http.post(MetadataProviderService.exportUri, {
|
|
@@ -12171,7 +12264,7 @@ class DataProviderMetaService {
|
|
|
12171
12264
|
}
|
|
12172
12265
|
finally {
|
|
12173
12266
|
if (!trackProgress) {
|
|
12174
|
-
WtoolboxService.isBusy
|
|
12267
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12175
12268
|
}
|
|
12176
12269
|
}
|
|
12177
12270
|
}
|
|
@@ -12247,9 +12340,9 @@ class DataProviderMetaService {
|
|
|
12247
12340
|
* @returns Oggetto dashboard serializzato restituito dal backend.
|
|
12248
12341
|
*/
|
|
12249
12342
|
async saveDashboard(payload) {
|
|
12250
|
-
WtoolboxService.isBusy
|
|
12343
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12251
12344
|
let data = await this.http.post(MetadataProviderService.saveDashboardUri, payload).toPromise();
|
|
12252
|
-
WtoolboxService.isBusy
|
|
12345
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12253
12346
|
return data;
|
|
12254
12347
|
}
|
|
12255
12348
|
/**
|
|
@@ -12258,9 +12351,9 @@ class DataProviderMetaService {
|
|
|
12258
12351
|
* @returns Stato dashboard serializzato dal backend (`dom_board` + dati correlati).
|
|
12259
12352
|
*/
|
|
12260
12353
|
async loadDashboard(payload) {
|
|
12261
|
-
WtoolboxService.isBusy
|
|
12354
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12262
12355
|
let data = await this.http.post(MetadataProviderService.loadDashboardUri, payload).toPromise();
|
|
12263
|
-
WtoolboxService.isBusy
|
|
12356
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12264
12357
|
return data;
|
|
12265
12358
|
}
|
|
12266
12359
|
/**
|
|
@@ -12270,9 +12363,9 @@ class DataProviderMetaService {
|
|
|
12270
12363
|
* @returns Esito serializzato `{ deleted, affected }`.
|
|
12271
12364
|
*/
|
|
12272
12365
|
async deleteDashboard(payload) {
|
|
12273
|
-
WtoolboxService.isBusy
|
|
12366
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12274
12367
|
const data = await this.http.post(MetadataProviderService.deleteDashboardUri, payload).toPromise();
|
|
12275
|
-
WtoolboxService.isBusy
|
|
12368
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12276
12369
|
return data;
|
|
12277
12370
|
}
|
|
12278
12371
|
/**
|
|
@@ -12283,44 +12376,44 @@ class DataProviderMetaService {
|
|
|
12283
12376
|
* @returns Esito serializzato con id/chiave/nome e numero route metadata processate.
|
|
12284
12377
|
*/
|
|
12285
12378
|
async saveWorkflowGraph(payload) {
|
|
12286
|
-
WtoolboxService.isBusy
|
|
12379
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12287
12380
|
const data = await this.http.post(MetadataProviderService.saveWorkflowGraphUri, payload).toPromise();
|
|
12288
|
-
WtoolboxService.isBusy
|
|
12381
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12289
12382
|
return data;
|
|
12290
12383
|
}
|
|
12291
12384
|
/** Feature J — persiste le transizioni di stato del workflow (`MetaService.saveWorkflowTransitions`). */
|
|
12292
12385
|
async saveWorkflowTransitions(payload) {
|
|
12293
|
-
WtoolboxService.isBusy
|
|
12386
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12294
12387
|
const data = await this.http.post(MetadataProviderService.saveWorkflowTransitionsUri, payload).toPromise();
|
|
12295
|
-
WtoolboxService.isBusy
|
|
12388
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12296
12389
|
return data;
|
|
12297
12390
|
}
|
|
12298
12391
|
/** Feature J — rilegge le transizioni di stato del workflow (`MetaService.getWorkflowTransitions`). */
|
|
12299
12392
|
async getWorkflowTransitions(payload) {
|
|
12300
|
-
WtoolboxService.isBusy
|
|
12393
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12301
12394
|
const data = await this.http.post(MetadataProviderService.getWorkflowTransitionsUri, payload).toPromise();
|
|
12302
|
-
WtoolboxService.isBusy
|
|
12395
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12303
12396
|
return data;
|
|
12304
12397
|
}
|
|
12305
12398
|
/** Feature K — salva uno snapshot versione del workflow graph (`MetaService.saveWorkflowGraphVersion`). */
|
|
12306
12399
|
async saveWorkflowGraphVersion(payload) {
|
|
12307
|
-
WtoolboxService.isBusy
|
|
12400
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12308
12401
|
const data = await this.http.post(MetadataProviderService.saveWorkflowGraphVersionUri, payload).toPromise();
|
|
12309
|
-
WtoolboxService.isBusy
|
|
12402
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12310
12403
|
return data;
|
|
12311
12404
|
}
|
|
12312
12405
|
/** Feature K — elenca le versioni storicizzate (`MetaService.getWorkflowGraphVersions`). */
|
|
12313
12406
|
async getWorkflowGraphVersions(payload) {
|
|
12314
|
-
WtoolboxService.isBusy
|
|
12407
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12315
12408
|
const data = await this.http.post(MetadataProviderService.getWorkflowGraphVersionsUri, payload).toPromise();
|
|
12316
|
-
WtoolboxService.isBusy
|
|
12409
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12317
12410
|
return data;
|
|
12318
12411
|
}
|
|
12319
12412
|
/** Feature K — ritorna il graph_json di una versione specifica (`MetaService.getWorkflowGraphVersion`). */
|
|
12320
12413
|
async getWorkflowGraphVersion(payload) {
|
|
12321
|
-
WtoolboxService.isBusy
|
|
12414
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12322
12415
|
const data = await this.http.post(MetadataProviderService.getWorkflowGraphVersionUri, payload).toPromise();
|
|
12323
|
-
WtoolboxService.isBusy
|
|
12416
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12324
12417
|
return data;
|
|
12325
12418
|
}
|
|
12326
12419
|
/**
|
|
@@ -12330,9 +12423,9 @@ class DataProviderMetaService {
|
|
|
12330
12423
|
* @returns Struttura `{ graph_key, graph_name, graph_json, route_metadata }`.
|
|
12331
12424
|
*/
|
|
12332
12425
|
async loadWorkflowGraph(payload) {
|
|
12333
|
-
WtoolboxService.isBusy
|
|
12426
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12334
12427
|
const data = await this.http.post(MetadataProviderService.loadWorkflowGraphUri, payload).toPromise();
|
|
12335
|
-
WtoolboxService.isBusy
|
|
12428
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12336
12429
|
return data;
|
|
12337
12430
|
}
|
|
12338
12431
|
/**
|
|
@@ -12341,9 +12434,9 @@ class DataProviderMetaService {
|
|
|
12341
12434
|
* @returns Collezione graph restituita dal server.
|
|
12342
12435
|
*/
|
|
12343
12436
|
async getWorkflowGraphs(payload) {
|
|
12344
|
-
WtoolboxService.isBusy
|
|
12437
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12345
12438
|
const data = await this.http.post(MetadataProviderService.getWorkflowGraphsUri, payload).toPromise();
|
|
12346
|
-
WtoolboxService.isBusy
|
|
12439
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12347
12440
|
return data;
|
|
12348
12441
|
}
|
|
12349
12442
|
/**
|
|
@@ -12352,9 +12445,9 @@ class DataProviderMetaService {
|
|
|
12352
12445
|
* @returns Risposta backend del rename.
|
|
12353
12446
|
*/
|
|
12354
12447
|
async renameWorkflowGraph(payload) {
|
|
12355
|
-
WtoolboxService.isBusy
|
|
12448
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12356
12449
|
const data = await this.http.post(MetadataProviderService.renameWorkflowGraphUri, payload).toPromise();
|
|
12357
|
-
WtoolboxService.isBusy
|
|
12450
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12358
12451
|
return data;
|
|
12359
12452
|
}
|
|
12360
12453
|
/**
|
|
@@ -12363,9 +12456,9 @@ class DataProviderMetaService {
|
|
|
12363
12456
|
* @returns Esito serializzato `{ deleted, affected }`.
|
|
12364
12457
|
*/
|
|
12365
12458
|
async deleteWorkflowGraph(payload) {
|
|
12366
|
-
WtoolboxService.isBusy
|
|
12459
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12367
12460
|
const data = await this.http.post(MetadataProviderService.deleteWorkflowGraphUri, payload).toPromise();
|
|
12368
|
-
WtoolboxService.isBusy
|
|
12461
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12369
12462
|
return data;
|
|
12370
12463
|
}
|
|
12371
12464
|
/**
|
|
@@ -12375,9 +12468,9 @@ class DataProviderMetaService {
|
|
|
12375
12468
|
* @returns Esito serializzato con id/chiave/nome.
|
|
12376
12469
|
*/
|
|
12377
12470
|
async saveScene3d(payload) {
|
|
12378
|
-
WtoolboxService.isBusy
|
|
12471
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12379
12472
|
const data = await this.http.post(MetadataProviderService.saveScene3dUri, payload).toPromise();
|
|
12380
|
-
WtoolboxService.isBusy
|
|
12473
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12381
12474
|
return data;
|
|
12382
12475
|
}
|
|
12383
12476
|
/**
|
|
@@ -12396,9 +12489,9 @@ class DataProviderMetaService {
|
|
|
12396
12489
|
* @returns Struttura `{ scene_key, scene_name, scene_json }`.
|
|
12397
12490
|
*/
|
|
12398
12491
|
async loadScene3d(payload) {
|
|
12399
|
-
WtoolboxService.isBusy
|
|
12492
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12400
12493
|
const data = await this.http.post(MetadataProviderService.loadScene3dUri, payload).toPromise();
|
|
12401
|
-
WtoolboxService.isBusy
|
|
12494
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12402
12495
|
return data;
|
|
12403
12496
|
}
|
|
12404
12497
|
/**
|
|
@@ -12407,9 +12500,9 @@ class DataProviderMetaService {
|
|
|
12407
12500
|
* @returns Collezione scene restituita dal server.
|
|
12408
12501
|
*/
|
|
12409
12502
|
async getScene3ds(payload) {
|
|
12410
|
-
WtoolboxService.isBusy
|
|
12503
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12411
12504
|
const data = await this.http.post(MetadataProviderService.getScene3dsUri, payload).toPromise();
|
|
12412
|
-
WtoolboxService.isBusy
|
|
12505
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12413
12506
|
return data;
|
|
12414
12507
|
}
|
|
12415
12508
|
/**
|
|
@@ -12418,9 +12511,9 @@ class DataProviderMetaService {
|
|
|
12418
12511
|
* @returns Lista classi CSS rilevate.
|
|
12419
12512
|
*/
|
|
12420
12513
|
async getCssClassesFromSheets(sheetPaths) {
|
|
12421
|
-
WtoolboxService.isBusy
|
|
12514
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12422
12515
|
const data = await this.http.post(MetadataProviderService.getCssClassesFromSheetsUri, { sheets: sheetPaths || [] }).toPromise();
|
|
12423
|
-
WtoolboxService.isBusy
|
|
12516
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12424
12517
|
return data || [];
|
|
12425
12518
|
}
|
|
12426
12519
|
/**
|
|
@@ -12428,9 +12521,9 @@ class DataProviderMetaService {
|
|
|
12428
12521
|
* @param sheet Foglio CSS oggetto di lettura/scrittura.
|
|
12429
12522
|
*/
|
|
12430
12523
|
async writeChangesToCssFile(sheet) {
|
|
12431
|
-
WtoolboxService.isBusy
|
|
12524
|
+
WtoolboxService.beginBusy(WtoolboxService.isBusy);
|
|
12432
12525
|
await this.http.post(MetadataProviderService.writeChangesToCssFileUri, { sheet: sheet }).toPromise();
|
|
12433
|
-
WtoolboxService.isBusy
|
|
12526
|
+
WtoolboxService.endBusy(WtoolboxService.isBusy);
|
|
12434
12527
|
}
|
|
12435
12528
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DataProviderMetaService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12436
12529
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DataProviderMetaService, providedIn: 'root' });
|
|
@@ -15176,6 +15269,14 @@ class DataSourceComponent {
|
|
|
15176
15269
|
* Contatore richieste in-flight per gestire il busy in modo concorrente-safe.
|
|
15177
15270
|
*/
|
|
15178
15271
|
loadingInFlight = 0;
|
|
15272
|
+
/**
|
|
15273
|
+
* Il subject di "occupato" su cui questa istanza ha aperto le operazioni in volo.
|
|
15274
|
+
*
|
|
15275
|
+
* Non basta rileggere `this.loading` alla chiusura: e' un `@Input()` e puo' cambiare
|
|
15276
|
+
* mentre una fetch e' in corso. Chiudendo sul subject nuovo, quello vecchio resterebbe
|
|
15277
|
+
* bloccato su `true` per sempre.
|
|
15278
|
+
*/
|
|
15279
|
+
subjectOccupatoInUso;
|
|
15179
15280
|
/**
|
|
15180
15281
|
* Flag interno per garantire emissione "after first load" una sola volta per ciclo init.
|
|
15181
15282
|
*/
|
|
@@ -15249,29 +15350,60 @@ class DataSourceComponent {
|
|
|
15249
15350
|
this.route = new BehaviorSubject(null);
|
|
15250
15351
|
}
|
|
15251
15352
|
/**
|
|
15252
|
-
*
|
|
15353
|
+
* Apre un'operazione sullo stato "occupato". Il segnale passa a `true` solo se e' la prima
|
|
15354
|
+
* in volo su quel subject: il conteggio vive in `WtoolboxService`, non qui, perche' `loading`
|
|
15355
|
+
* e' spesso condiviso con gli altri componenti della pagina.
|
|
15253
15356
|
*/
|
|
15254
15357
|
beginLoading() {
|
|
15255
|
-
this.loadingInFlight
|
|
15256
|
-
if (
|
|
15257
|
-
|
|
15358
|
+
const subject = this.loadingInFlight > 0 ? this.subjectOccupatoInUso : this.loading;
|
|
15359
|
+
if (!subject) {
|
|
15360
|
+
return;
|
|
15258
15361
|
}
|
|
15362
|
+
this.subjectOccupatoInUso = subject;
|
|
15363
|
+
this.loadingInFlight = Math.max(0, this.loadingInFlight) + 1;
|
|
15364
|
+
// Il conteggio vero sta sul subject, non qui: `loading` e' spesso
|
|
15365
|
+
// `WtoolboxService.isBusy`, condiviso con gli altri datasource della pagina. Quello
|
|
15366
|
+
// locale serve solo a sapere quante operazioni ha aperto QUESTA istanza, per poterle
|
|
15367
|
+
// rilasciare alla distruzione.
|
|
15368
|
+
WtoolboxService.beginBusy(subject);
|
|
15259
15369
|
}
|
|
15260
15370
|
/**
|
|
15261
|
-
*
|
|
15371
|
+
* Chiude un'operazione: il segnale torna a `false` solo quando finisce l'ULTIMA in volo su
|
|
15372
|
+
* quel subject, non la prima. Una chiusura senza apertura viene ignorata, altrimenti
|
|
15373
|
+
* scalerebbe le operazioni di qualcun altro.
|
|
15262
15374
|
*/
|
|
15263
15375
|
endLoading() {
|
|
15264
|
-
|
|
15376
|
+
if (this.loadingInFlight <= 0) {
|
|
15377
|
+
return;
|
|
15378
|
+
}
|
|
15379
|
+
// Si chiude sullo STESSO subject su cui si e' aperto: se nel frattempo l'input `loading`
|
|
15380
|
+
// e' cambiato, decrementare quello nuovo lascerebbe il vecchio bloccato su `true`.
|
|
15381
|
+
const subject = this.subjectOccupatoInUso;
|
|
15382
|
+
this.loadingInFlight -= 1;
|
|
15383
|
+
WtoolboxService.endBusy(subject);
|
|
15265
15384
|
if (this.loadingInFlight === 0) {
|
|
15266
|
-
this.
|
|
15385
|
+
this.subjectOccupatoInUso = undefined;
|
|
15386
|
+
}
|
|
15387
|
+
}
|
|
15388
|
+
/**
|
|
15389
|
+
* Rilascia le operazioni che questa istanza ha lasciato aperte.
|
|
15390
|
+
*
|
|
15391
|
+
* Serve alla distruzione del componente: con un contatore condiviso, un datasource che
|
|
15392
|
+
* sparisce mentre una fetch e' in volo lascerebbe lo stato "occupato" acceso per tutta
|
|
15393
|
+
* l'applicazione, e nessuno lo spegnerebbe piu'.
|
|
15394
|
+
*/
|
|
15395
|
+
rilasciaOperazioniInVolo() {
|
|
15396
|
+
while (this.loadingInFlight > 0) {
|
|
15397
|
+
this.endLoading();
|
|
15267
15398
|
}
|
|
15268
15399
|
}
|
|
15269
15400
|
/**
|
|
15270
15401
|
* Ripristina forzatamente lo stato loading in caso di recovery da errori inattesi.
|
|
15271
15402
|
*/
|
|
15272
15403
|
resetLoadingState() {
|
|
15273
|
-
|
|
15274
|
-
|
|
15404
|
+
// Rilascia solo le operazioni di QUESTA istanza: forzare `false` sul subject
|
|
15405
|
+
// spegnerebbe anche le fetch delle altre griglie della pagina, che lo condividono.
|
|
15406
|
+
this.rilasciaOperazioniInVolo();
|
|
15275
15407
|
}
|
|
15276
15408
|
/**
|
|
15277
15409
|
* Legge `filterInfo` dalla querystring, aggiorna `filterInfo.filters` (anche querystring-fixed) e sincronizza i valori nel `filterDescriptor`.
|
|
@@ -15638,6 +15770,9 @@ class DataSourceComponent {
|
|
|
15638
15770
|
*/
|
|
15639
15771
|
ngOnDestroy() {
|
|
15640
15772
|
DataSourceComponent.liveInstances.delete(this);
|
|
15773
|
+
// Con il conteggio condiviso, un datasource distrutto mentre una fetch e' ancora in volo
|
|
15774
|
+
// lascerebbe lo stato "occupato" acceso per tutta l'applicazione: qui rilascia le sue.
|
|
15775
|
+
this.rilasciaOperazioniInVolo();
|
|
15641
15776
|
// Clear the E2E introspection hook set in ngOnInit. The host element may
|
|
15642
15777
|
// outlive the component instance briefly during Angular's tear-down, so
|
|
15643
15778
|
// dropping the ref prevents stale-component leaks for tests.
|
|
@@ -16526,7 +16661,7 @@ class DataSourceComponent {
|
|
|
16526
16661
|
try {
|
|
16527
16662
|
${String(action.action_callback || '')}
|
|
16528
16663
|
} catch (_err) {
|
|
16529
|
-
wtoolbox.isBusy
|
|
16664
|
+
wtoolbox.resetBusy(wtoolbox.isBusy);
|
|
16530
16665
|
wtoolbox.errorHandler.handleError(_err);
|
|
16531
16666
|
resolve();
|
|
16532
16667
|
}
|
|
@@ -16541,7 +16676,7 @@ class DataSourceComponent {
|
|
|
16541
16676
|
try {
|
|
16542
16677
|
${String(action.disable_callback || '')}
|
|
16543
16678
|
} catch (_err) {
|
|
16544
|
-
wtoolbox.isBusy
|
|
16679
|
+
wtoolbox.resetBusy(wtoolbox.isBusy);
|
|
16545
16680
|
wtoolbox.errorHandler.handleError(_err);
|
|
16546
16681
|
return false;
|
|
16547
16682
|
// resolve(false);
|
|
@@ -17083,6 +17218,27 @@ class DataSourceComponent {
|
|
|
17083
17218
|
});
|
|
17084
17219
|
return;
|
|
17085
17220
|
}
|
|
17221
|
+
// Payload anticipato: metadati sì, righe no.
|
|
17222
|
+
//
|
|
17223
|
+
// Serve a far esistere la griglia PRIMA che la query risponda. Nella list-grid la
|
|
17224
|
+
// <p-table> — e con lei l'overlay [loading] — sta dentro @if (rowTemplate), e
|
|
17225
|
+
// rowTemplate si compila dentro la subscribe a fetchInfo$: senza questa
|
|
17226
|
+
// pubblicazione il componente non rende niente finche' i dati non arrivano, e su una
|
|
17227
|
+
// route lenta l'utente guarda una pagina vuota, senza alcun segnale di attesa.
|
|
17228
|
+
//
|
|
17229
|
+
// Solo al primo caricamento (dato ancora vuoto): su un refetch di una griglia gia'
|
|
17230
|
+
// popolata svuoterebbe la tabella per un istante, che e' peggio del problema.
|
|
17231
|
+
//
|
|
17232
|
+
// Si emette su fetchInfo$ direttamente e NON tramite publishFetchInfo, perche' quello
|
|
17233
|
+
// fa scattare anche afterFirstLoad$ — che i consumer aspettano per il primo
|
|
17234
|
+
// caricamento VERO, non per un payload vuoto.
|
|
17235
|
+
if (!this.resultInfo?.dato?.length) {
|
|
17236
|
+
this.fetchInfo$.next({
|
|
17237
|
+
resultInfo: { ...this.resultInfo, dato: [], totalRowCount: 0 },
|
|
17238
|
+
metaInfo: this.metaInfo,
|
|
17239
|
+
filterDescriptor: this.filterDescriptor
|
|
17240
|
+
});
|
|
17241
|
+
}
|
|
17086
17242
|
await this.fetchData();
|
|
17087
17243
|
}
|
|
17088
17244
|
finally {
|
|
@@ -18762,7 +18918,7 @@ class DataSourceComponent {
|
|
|
18762
18918
|
// the form closes and navigates away, destroying the typed dialog
|
|
18763
18919
|
// before it can render). Pass `rethrow:true` to runUserCallback —
|
|
18764
18920
|
// the helper still emits the typed dialog for the user.
|
|
18765
|
-
WtoolboxService.isBusy
|
|
18921
|
+
WtoolboxService.resetBusy(WtoolboxService.isBusy);
|
|
18766
18922
|
const cloneOrUpdatePhase = isClone ? 'clone' : 'update';
|
|
18767
18923
|
const insertOrExistingPhase = isInsert ? 'insert' : cloneOrUpdatePhase;
|
|
18768
18924
|
await WtoolboxService.runUserCallback('md_after_save', afterSaveCallback, [this, savingData, syncedData, isInsert, isClone, isDelete, null, WtoolboxService], {
|
|
@@ -21845,7 +22001,7 @@ class LazySchedulerListComponent {
|
|
|
21845
22001
|
* Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
|
|
21846
22002
|
*/
|
|
21847
22003
|
async ngOnInit() {
|
|
21848
|
-
schedulerListComponentPromise ??= import('./wuic-framework-lib-scheduler-list.component-
|
|
22004
|
+
schedulerListComponentPromise ??= import('./wuic-framework-lib-scheduler-list.component-BWwp_Y2n.mjs').then((m) => m.SchedulerListComponent);
|
|
21849
22005
|
this.loadedComponent = await schedulerListComponentPromise;
|
|
21850
22006
|
this.cdr.markForCheck();
|
|
21851
22007
|
}
|
|
@@ -22053,7 +22209,7 @@ class LazySpreadsheetListSfComponent {
|
|
|
22053
22209
|
this.activatedRoute = activatedRoute;
|
|
22054
22210
|
}
|
|
22055
22211
|
async ngOnInit() {
|
|
22056
|
-
spreadsheetListSfComponentPromise ??= import('./wuic-framework-lib-spreadsheet-list-sf.component-
|
|
22212
|
+
spreadsheetListSfComponentPromise ??= import('./wuic-framework-lib-spreadsheet-list-sf.component-C7XVqrk-.mjs').then((m) => m.SpreadsheetListSfComponent);
|
|
22057
22213
|
this.loadedComponent = await spreadsheetListSfComponentPromise;
|
|
22058
22214
|
// Quando la promise e' gia' risolta dal cache module-scope (secondo mount
|
|
22059
22215
|
// post-refresh), il microtask che risolve `await` non scatena sempre CD
|
|
@@ -22331,7 +22487,7 @@ class LazyChartListComponent {
|
|
|
22331
22487
|
* Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
|
|
22332
22488
|
*/
|
|
22333
22489
|
async ngOnInit() {
|
|
22334
|
-
chartListComponentPromise ??= import('./wuic-framework-lib-chart-list.component-
|
|
22490
|
+
chartListComponentPromise ??= import('./wuic-framework-lib-chart-list.component-Bz93lddX.mjs').then((m) => m.ChartListComponent);
|
|
22335
22491
|
this.loadedComponent = await chartListComponentPromise;
|
|
22336
22492
|
this.cdr.markForCheck();
|
|
22337
22493
|
}
|
|
@@ -22653,7 +22809,7 @@ class LazyTimelineListComponent {
|
|
|
22653
22809
|
this.cdr = cdr;
|
|
22654
22810
|
}
|
|
22655
22811
|
async ngOnInit() {
|
|
22656
|
-
timelineListComponentPromise ??= import('./wuic-framework-lib-timeline-list.component-
|
|
22812
|
+
timelineListComponentPromise ??= import('./wuic-framework-lib-timeline-list.component-BPCARDTv.mjs').then((m) => m.TimelineListComponent);
|
|
22657
22813
|
this.loadedComponent = await timelineListComponentPromise;
|
|
22658
22814
|
this.cdr.markForCheck();
|
|
22659
22815
|
}
|
|
@@ -23922,7 +24078,7 @@ class MetadataEditorComponent {
|
|
|
23922
24078
|
}
|
|
23923
24079
|
let result;
|
|
23924
24080
|
try {
|
|
23925
|
-
const { ReportScaffoldDialogComponent } = await import('./wuic-framework-lib-report-scaffold-dialog.component-
|
|
24081
|
+
const { ReportScaffoldDialogComponent } = await import('./wuic-framework-lib-report-scaffold-dialog.component-Dz-0CKFf.mjs');
|
|
23926
24082
|
WtoolboxService.resolveDialogServiceFromInjector();
|
|
23927
24083
|
const ref = WtoolboxService.dialogService?.open?.(ReportScaffoldDialogComponent, {
|
|
23928
24084
|
header: this.t('report.scaffold.dialog_title', 'Create report'),
|
|
@@ -50188,7 +50344,7 @@ class LazyFirstRunWizardComponent {
|
|
|
50188
50344
|
this.cdr = cdr;
|
|
50189
50345
|
}
|
|
50190
50346
|
async ngOnInit() {
|
|
50191
|
-
firstRunWizardComponentPromise ??= import('./wuic-framework-lib-first-run-wizard.component-
|
|
50347
|
+
firstRunWizardComponentPromise ??= import('./wuic-framework-lib-first-run-wizard.component-DTd6aeZQ.mjs').then((m) => m.WuicFirstRunWizardComponent);
|
|
50192
50348
|
const componentClass = await firstRunWizardComponentPromise;
|
|
50193
50349
|
this.componentRef = this.vcr.createComponent(componentClass);
|
|
50194
50350
|
// Forward output del componente reale al wrapper. Type assertion necessaria
|
|
@@ -61889,7 +62045,7 @@ class LazyCodeEditorComponent {
|
|
|
61889
62045
|
this.cdr = cdr;
|
|
61890
62046
|
}
|
|
61891
62047
|
async ngOnInit() {
|
|
61892
|
-
codeEditorComponentPromise ??= import('./wuic-framework-lib-code-editor.component-
|
|
62048
|
+
codeEditorComponentPromise ??= import('./wuic-framework-lib-code-editor.component-CerH_Ptt.mjs').then((m) => m.CodeEditorComponent);
|
|
61893
62049
|
this.loadedComponent = await codeEditorComponentPromise;
|
|
61894
62050
|
this.cdr.markForCheck();
|
|
61895
62051
|
}
|
|
@@ -64068,7 +64224,7 @@ class DesignerRouteComponent {
|
|
|
64068
64224
|
* Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
|
|
64069
64225
|
*/
|
|
64070
64226
|
async ngOnInit() {
|
|
64071
|
-
designerComponentPromise ??= import('./wuic-framework-lib-designer.component-
|
|
64227
|
+
designerComponentPromise ??= import('./wuic-framework-lib-designer.component-D-TDt9Yp.mjs').then((m) => m.DesignerComponent);
|
|
64072
64228
|
this.loadedComponent = await designerComponentPromise;
|
|
64073
64229
|
}
|
|
64074
64230
|
/**
|
|
@@ -64149,7 +64305,7 @@ class LazyPivotBuilderComponent {
|
|
|
64149
64305
|
this.cdr = cdr;
|
|
64150
64306
|
}
|
|
64151
64307
|
async ngOnInit() {
|
|
64152
|
-
pivotBuilderComponentPromise ??= import('./wuic-framework-lib-pivot-builder.component-
|
|
64308
|
+
pivotBuilderComponentPromise ??= import('./wuic-framework-lib-pivot-builder.component-B0Y_UHcw.mjs').then((m) => m.PivotBuilderComponent);
|
|
64153
64309
|
this.loadedComponent = await pivotBuilderComponentPromise;
|
|
64154
64310
|
this.cdr.markForCheck();
|
|
64155
64311
|
}
|
|
@@ -64188,7 +64344,7 @@ class WorkflowDesignerRouteComponent {
|
|
|
64188
64344
|
* Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
|
|
64189
64345
|
*/
|
|
64190
64346
|
async ngOnInit() {
|
|
64191
|
-
workflowDesignerComponentPromise ??= import('./wuic-framework-lib-workflow-designer.component-
|
|
64347
|
+
workflowDesignerComponentPromise ??= import('./wuic-framework-lib-workflow-designer.component-BOTf2H42.mjs').then((m) => m.WorkflowDesignerComponent);
|
|
64192
64348
|
this.loadedComponent = await workflowDesignerComponentPromise;
|
|
64193
64349
|
}
|
|
64194
64350
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowDesignerRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -64234,7 +64390,7 @@ class Scene3dDesignerRouteComponent {
|
|
|
64234
64390
|
/** Componente designer runtime caricato lazy, usato dal template. */
|
|
64235
64391
|
loadedComponent = null;
|
|
64236
64392
|
async ngOnInit() {
|
|
64237
|
-
scene3dDesignerComponentPromise ??= import('./wuic-framework-lib-scene3d-designer.component-
|
|
64393
|
+
scene3dDesignerComponentPromise ??= import('./wuic-framework-lib-scene3d-designer.component-DkFSmqjd.mjs').then(function (n) { return n.s; }).then((m) => m.Scene3dDesignerComponent);
|
|
64238
64394
|
this.loadedComponent = await scene3dDesignerComponentPromise;
|
|
64239
64395
|
}
|
|
64240
64396
|
/** Delega al designer runtime la conferma navigazione con pending changes. */
|
|
@@ -64290,7 +64446,7 @@ class Scene3dViewerRouteComponent {
|
|
|
64290
64446
|
/** Componente viewer runtime caricato lazy, usato dal template. */
|
|
64291
64447
|
loadedComponent = null;
|
|
64292
64448
|
async ngOnInit() {
|
|
64293
|
-
scene3dViewerComponentPromise ??= import('./wuic-framework-lib-scene3d-viewer.component-
|
|
64449
|
+
scene3dViewerComponentPromise ??= import('./wuic-framework-lib-scene3d-viewer.component-CXzEo7SW.mjs').then((m) => m.Scene3dViewerComponent);
|
|
64294
64450
|
this.loadedComponent = await scene3dViewerComponentPromise;
|
|
64295
64451
|
}
|
|
64296
64452
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Scene3dViewerRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -64351,7 +64507,7 @@ class LazyReportDesignerComponent {
|
|
|
64351
64507
|
this.cdr = cdr;
|
|
64352
64508
|
}
|
|
64353
64509
|
async ngOnInit() {
|
|
64354
|
-
reportDesignerComponentPromise ??= import('./wuic-framework-lib-report-designer.component-
|
|
64510
|
+
reportDesignerComponentPromise ??= import('./wuic-framework-lib-report-designer.component-DMHg11S1.mjs').then((m) => m.ReportDesignerComponent);
|
|
64355
64511
|
this.loadedComponent = await reportDesignerComponentPromise;
|
|
64356
64512
|
this.cdr.markForCheck();
|
|
64357
64513
|
}
|
|
@@ -64406,7 +64562,7 @@ class LazyReportViewerComponent {
|
|
|
64406
64562
|
this.cdr = cdr;
|
|
64407
64563
|
}
|
|
64408
64564
|
async ngOnInit() {
|
|
64409
|
-
reportViewerComponentPromise ??= import('./wuic-framework-lib-report-viewer.component-
|
|
64565
|
+
reportViewerComponentPromise ??= import('./wuic-framework-lib-report-viewer.component-DcjeKFl3.mjs').then((m) => m.ReportViewerComponent);
|
|
64410
64566
|
this.loadedComponent = await reportViewerComponentPromise;
|
|
64411
64567
|
this.cdr.markForCheck();
|
|
64412
64568
|
}
|
|
@@ -68730,7 +68886,7 @@ const themeBuilderPendingChangesGuard = (component) => {
|
|
|
68730
68886
|
const routes = [
|
|
68731
68887
|
{
|
|
68732
68888
|
path: 'framework-docs',
|
|
68733
|
-
loadComponent: () => import('./wuic-framework-lib-framework-docs.component-
|
|
68889
|
+
loadComponent: () => import('./wuic-framework-lib-framework-docs.component-B2AdE4N0.mjs').then((m) => m.FrameworkDocsComponent),
|
|
68734
68890
|
canMatch: [menuRouteAccessCanMatchGuard],
|
|
68735
68891
|
canActivate: [menuRouteAccessCanActivateGuard],
|
|
68736
68892
|
data: {
|
|
@@ -68739,7 +68895,7 @@ const routes = [
|
|
|
68739
68895
|
},
|
|
68740
68896
|
{
|
|
68741
68897
|
path: 'framework-docs/:slug',
|
|
68742
|
-
loadComponent: () => import('./wuic-framework-lib-framework-docs.component-
|
|
68898
|
+
loadComponent: () => import('./wuic-framework-lib-framework-docs.component-B2AdE4N0.mjs').then((m) => m.FrameworkDocsComponent),
|
|
68743
68899
|
canMatch: [menuRouteAccessCanMatchGuard],
|
|
68744
68900
|
canActivate: [menuRouteAccessCanActivateGuard],
|
|
68745
68901
|
data: {
|
|
@@ -68784,7 +68940,7 @@ const routes = [
|
|
|
68784
68940
|
},
|
|
68785
68941
|
{
|
|
68786
68942
|
path: ':route/report-designer',
|
|
68787
|
-
loadComponent: () => import('./wuic-framework-lib-report-designer.component-
|
|
68943
|
+
loadComponent: () => import('./wuic-framework-lib-report-designer.component-DMHg11S1.mjs').then((m) => m.ReportDesignerComponent),
|
|
68788
68944
|
canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
|
|
68789
68945
|
canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
|
|
68790
68946
|
data: {
|
|
@@ -68794,7 +68950,7 @@ const routes = [
|
|
|
68794
68950
|
},
|
|
68795
68951
|
{
|
|
68796
68952
|
path: ':route/report-viewer',
|
|
68797
|
-
loadComponent: () => import('./wuic-framework-lib-report-viewer.component-
|
|
68953
|
+
loadComponent: () => import('./wuic-framework-lib-report-viewer.component-DcjeKFl3.mjs').then((m) => m.ReportViewerComponent),
|
|
68798
68954
|
canMatch: [menuRouteAccessCanMatchGuard],
|
|
68799
68955
|
canActivate: [menuRouteAccessCanActivateGuard],
|
|
68800
68956
|
data: {
|
|
@@ -68814,7 +68970,7 @@ const routes = [
|
|
|
68814
68970
|
},
|
|
68815
68971
|
{
|
|
68816
68972
|
path: ':route/pivot-builder',
|
|
68817
|
-
loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-
|
|
68973
|
+
loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-B0Y_UHcw.mjs').then((m) => m.PivotBuilderComponent),
|
|
68818
68974
|
canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
|
|
68819
68975
|
canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
|
|
68820
68976
|
data: {
|
|
@@ -68824,7 +68980,7 @@ const routes = [
|
|
|
68824
68980
|
},
|
|
68825
68981
|
{
|
|
68826
68982
|
path: 'pivot-builder',
|
|
68827
|
-
loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-
|
|
68983
|
+
loadComponent: () => import('./wuic-framework-lib-pivot-builder.component-B0Y_UHcw.mjs').then((m) => m.PivotBuilderComponent),
|
|
68828
68984
|
canMatch: [menuRouteAccessCanMatchGuard, featureRouteCanMatchGuard],
|
|
68829
68985
|
canActivate: [menuRouteAccessCanActivateGuard, featureRouteCanActivateGuard],
|
|
68830
68986
|
data: {
|
|
@@ -70924,4 +71080,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
70924
71080
|
*/
|
|
70925
71081
|
|
|
70926
71082
|
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 };
|
|
70927
|
-
//# sourceMappingURL=wuic-framework-lib-wuic-framework-lib-
|
|
71083
|
+
//# sourceMappingURL=wuic-framework-lib-wuic-framework-lib-CNl2-wAT.mjs.map
|