wuic-framework-lib 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{wuic-framework-lib-chart-list.component-C02jeFGy.mjs → wuic-framework-lib-chart-list.component-0J1ghIrS.mjs} +4 -4
- package/fesm2022/{wuic-framework-lib-code-editor.component-BZNLr0Jj.mjs → wuic-framework-lib-code-editor.component-C21mvjyr.mjs} +277 -13
- package/fesm2022/{wuic-framework-lib-designer.component-N_CfbGnr.mjs → wuic-framework-lib-designer.component-x10ZzUEy.mjs} +1649 -184
- package/fesm2022/{wuic-framework-lib-first-run-wizard.component-lW7-xMm3.mjs → wuic-framework-lib-first-run-wizard.component-BuSxs_CM.mjs} +83 -43
- package/fesm2022/{wuic-framework-lib-framework-docs.component-CGQbmSkv.mjs → wuic-framework-lib-framework-docs.component-xTGLbEnp.mjs} +1326 -99
- package/fesm2022/{wuic-framework-lib-pivot-builder.component-0gJz9RWr.mjs → wuic-framework-lib-pivot-builder.component-BkFFjPm4.mjs} +6 -6
- package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-C9LvmFsL.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-Bi-TrJB6.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-designer.component-DcpdzFjh.mjs → wuic-framework-lib-report-designer.component-ZvB46-LV.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-report-viewer.component-BHpbGpp9.mjs → wuic-framework-lib-report-viewer.component-BR-BfI2r.mjs} +2 -2
- package/fesm2022/wuic-framework-lib-scene3d-designer.component-BQzFxSXP.mjs +4578 -0
- package/fesm2022/wuic-framework-lib-scene3d-light-baker-gpu-0LjqhSNn.mjs +303 -0
- package/fesm2022/wuic-framework-lib-scene3d-shader-effect-CQLWkuh1.mjs +2227 -0
- package/fesm2022/wuic-framework-lib-scene3d-viewer.component-imoV3HOs.mjs +999 -0
- package/fesm2022/{wuic-framework-lib-scheduler-list.component-DHoukjf-.mjs → wuic-framework-lib-scheduler-list.component-xzlTEkoq.mjs} +2 -2
- package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-VsaXepUC.mjs → wuic-framework-lib-spreadsheet-list-sf.component-CrS6fOGj.mjs} +4 -4
- package/fesm2022/wuic-framework-lib-workflow-designer.component-5xtQ7-6z.mjs +9474 -0
- package/fesm2022/{wuic-framework-lib-wuic-framework-lib-Deudd4MY.mjs → wuic-framework-lib-wuic-framework-lib-3TZ-j-yL.mjs} +2682 -732
- package/fesm2022/wuic-framework-lib.mjs +1 -1
- package/package.json +2 -1
- package/types/wuic-framework-lib.d.ts +762 -9
- package/fesm2022/wuic-framework-lib-workflow-designer.component-epj3oKq3.mjs +0 -5114
|
@@ -3,7 +3,7 @@ import { ErrorHandler, Injector, OnInit, OnDestroy, ChangeDetectorRef, NgZone, A
|
|
|
3
3
|
import * as rxjs from 'rxjs';
|
|
4
4
|
import { BehaviorSubject, Subject, Observable } from 'rxjs';
|
|
5
5
|
import { MenuItem, MessageService, ConfirmationService, Confirmation, TreeNode, MegaMenuItem } from 'primeng/api';
|
|
6
|
-
import { HttpClient, HttpInterceptorFn, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
|
6
|
+
import { HttpClient, HttpInterceptorFn, HttpContextToken, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
|
7
7
|
import { Router, ActivatedRoute, CanDeactivateFn, CanActivateFn, CanMatchFn, Routes } from '@angular/router';
|
|
8
8
|
import * as _ngx_translate_core from '@ngx-translate/core';
|
|
9
9
|
import { TranslateService } from '@ngx-translate/core';
|
|
@@ -975,6 +975,27 @@ type WorkflowRuntimeLinkedActionRouteMetadataEntry = {
|
|
|
975
975
|
targetRoute: string;
|
|
976
976
|
targetAction?: string;
|
|
977
977
|
metadata: any;
|
|
978
|
+
/** Feature I: guardie di transizione (espressioni JS su `record`) raccolte dai nodi condition attraversati. */
|
|
979
|
+
conditionExpressions?: string[];
|
|
980
|
+
/** Feature J: permessi richiesti (es. 'role:<id_ruolo>') raccolti dalle transizioni sugli archi attraversati. */
|
|
981
|
+
requiredPermissions?: string[];
|
|
982
|
+
};
|
|
983
|
+
type WorkflowRuntimeInternalActionEntry = {
|
|
984
|
+
sourceRoute: string;
|
|
985
|
+
tableActionId: number;
|
|
986
|
+
/** Node id dell'azione trigger (per memorizzarne il payload di ritorno). */
|
|
987
|
+
triggerNodeId?: string;
|
|
988
|
+
/**
|
|
989
|
+
* Catena ordinata di azioni interne a valle del trigger. `splitConfig` e'
|
|
990
|
+
* presente SOLO per le azioni sintetiche del parallel_split (tipo 102, F5):
|
|
991
|
+
* il consumer (data-source) le esegue nativamente materializzando i task.
|
|
992
|
+
*/
|
|
993
|
+
internalActions: Array<{
|
|
994
|
+
nodeId: string;
|
|
995
|
+
actionTypeId: number;
|
|
996
|
+
callback: string;
|
|
997
|
+
splitConfig?: any;
|
|
998
|
+
}>;
|
|
978
999
|
};
|
|
979
1000
|
type WorkflowRuntimeRouteNodePayloadEntry = {
|
|
980
1001
|
nodeId: string;
|
|
@@ -989,21 +1010,38 @@ type WorkflowRuntimePreviousRouteNodeEntry = {
|
|
|
989
1010
|
previousAction?: string;
|
|
990
1011
|
};
|
|
991
1012
|
declare class WorkflowRuntimeMetadataService {
|
|
1013
|
+
private userInfoSrv?;
|
|
992
1014
|
private static instance?;
|
|
993
1015
|
private readonly storageKey;
|
|
994
1016
|
private readonly byRouteAction;
|
|
995
1017
|
private readonly byRoute;
|
|
996
1018
|
private readonly linkedBySourceAction;
|
|
1019
|
+
/** Feature L — azioni INTERNE (concatenate) a valle di una table action: key `route::actionId`. */
|
|
1020
|
+
private readonly internalBySourceAction;
|
|
997
1021
|
private readonly pendingByRouteAction;
|
|
998
1022
|
private readonly pendingByRoute;
|
|
999
1023
|
private readonly routeNodePayloadByNodeId;
|
|
1000
1024
|
private readonly routeNodeIdsByRouteAction;
|
|
1001
1025
|
private readonly routeNodeIdsByRoute;
|
|
1002
1026
|
private readonly previousRouteNodeByRouteNodeId;
|
|
1027
|
+
/**
|
|
1028
|
+
* Contesto della navigazione workflow in corso (impostato dal wrapper action
|
|
1029
|
+
* del data-source prima di invocare il callback). Serve a `navigateToNextStep`
|
|
1030
|
+
* per sapere QUALE azione/route sorgente sta risolvendo il prossimo step,
|
|
1031
|
+
* senza che il callback debba conoscere l'action id. Transiente, non persistito.
|
|
1032
|
+
*/
|
|
1033
|
+
private currentNavContext;
|
|
1034
|
+
/**
|
|
1035
|
+
* Chiave (`wg_key`) del grafo workflow ATTIVO nel runner. Viaggia verso il
|
|
1036
|
+
* server dentro `routeContext.workflowGraphId` (buildCrudRouteContext): il
|
|
1037
|
+
* server la usa per rileggere il bundle dal grafo persistito e applicare
|
|
1038
|
+
* autorizzazioni tabella/colonne e record restriction server-side.
|
|
1039
|
+
*/
|
|
1040
|
+
private activeGraphKey;
|
|
1003
1041
|
/**
|
|
1004
1042
|
* Inizializza il singleton runtime metadata e prova il restore dello stato persistito da sessionStorage.
|
|
1005
1043
|
*/
|
|
1006
|
-
constructor();
|
|
1044
|
+
constructor(userInfoSrv?: UserInfoService);
|
|
1007
1045
|
/**
|
|
1008
1046
|
* Restituisce l'istanza singleton runtime metadata inizializzata dal DI Angular.
|
|
1009
1047
|
* Utile per accessi statici da utility/service non iniettati.
|
|
@@ -1016,6 +1054,14 @@ declare class WorkflowRuntimeMetadataService {
|
|
|
1016
1054
|
* @param entries Elenco metadata runtime per route/azione.
|
|
1017
1055
|
*/
|
|
1018
1056
|
setRouteMetadata(entries: WorkflowRuntimeRouteMetadataEntry[]): void;
|
|
1057
|
+
/**
|
|
1058
|
+
* Route degli step del workflow ATTIVO (chiavi di `byRoute`, lowercase).
|
|
1059
|
+
* Usate dal menu-route-access guard: la navigazione fra gli step di un
|
|
1060
|
+
* workflow attivo e' legittima anche quando le route non compaiono nel
|
|
1061
|
+
* menu applicativo dell'utente (es. il runner instrada il richiedente
|
|
1062
|
+
* sullo step successivo del flusso).
|
|
1063
|
+
*/
|
|
1064
|
+
getActiveWorkflowRoutes(): string[];
|
|
1019
1065
|
/**
|
|
1020
1066
|
* Risolve i metadata runtime attivi per route/action usando priorita:
|
|
1021
1067
|
* chiave specifica `route::action` e fallback metadata di sola route.
|
|
@@ -1024,6 +1070,14 @@ declare class WorkflowRuntimeMetadataService {
|
|
|
1024
1070
|
* @returns Metadata runtime associato oppure `null`.
|
|
1025
1071
|
*/
|
|
1026
1072
|
getRouteMetadata(route: string, action?: string): any | null;
|
|
1073
|
+
/**
|
|
1074
|
+
* Imposta la chiave del grafo workflow attivo (settata dal runner al load).
|
|
1075
|
+
*/
|
|
1076
|
+
setActiveGraphKey(graphKey: string): void;
|
|
1077
|
+
/**
|
|
1078
|
+
* Chiave del grafo workflow attivo ('' se nessun workflow in corso).
|
|
1079
|
+
*/
|
|
1080
|
+
getActiveGraphKey(): string;
|
|
1027
1081
|
/**
|
|
1028
1082
|
* Pulisce lo stato runtime e le cache associate.
|
|
1029
1083
|
*/
|
|
@@ -1034,13 +1088,108 @@ declare class WorkflowRuntimeMetadataService {
|
|
|
1034
1088
|
* @param entries Collegamenti sourceRoute+tableActionId -> targetRoute/targetAction.
|
|
1035
1089
|
*/
|
|
1036
1090
|
setLinkedActionRouteMetadata(entries: WorkflowRuntimeLinkedActionRouteMetadataEntry[]): void;
|
|
1091
|
+
/**
|
|
1092
|
+
* True se l'azione (route sorgente + table action id) ha collegamenti di
|
|
1093
|
+
* navigazione nel grafo ATTIVO (archi verso condition/route). Usato dal
|
|
1094
|
+
* wrapper action del data-source per attivare la meccanica di flusso in
|
|
1095
|
+
* modo GRAPH-DRIVEN: e' il grafo a dire se un'azione naviga, il tipo
|
|
1096
|
+
* dell'azione descrive solo il payload di business.
|
|
1097
|
+
*/
|
|
1098
|
+
hasLinkedNavigation(sourceRoute: string, tableActionId: number): boolean;
|
|
1037
1099
|
/**
|
|
1038
1100
|
* Attiva i metadata di navigazione collegati a una specifica azione tabellare, spostandoli nelle mappe "pending".
|
|
1039
1101
|
* I metadata pending verranno consumati dalla prima apertura della route target (con o senza action).
|
|
1040
1102
|
* @param sourceRoute Route sorgente da cui parte l'azione.
|
|
1041
1103
|
* @param tableActionId Id dell'azione tabellare eseguita.
|
|
1042
1104
|
*/
|
|
1043
|
-
activateLinkedNavigationMetadata(sourceRoute: string, tableActionId: number): void;
|
|
1105
|
+
activateLinkedNavigationMetadata(sourceRoute: string, tableActionId: number, record?: any, payload?: any): void;
|
|
1106
|
+
/**
|
|
1107
|
+
* Snapshot plain del record: i campi dei record framework sono BehaviorSubject,
|
|
1108
|
+
* qui srotolati a valore per la valutazione delle espressioni-guardia.
|
|
1109
|
+
*/
|
|
1110
|
+
private snapshotRecord;
|
|
1111
|
+
/**
|
|
1112
|
+
* `true` se TUTTE le espressioni-guardia del target sono soddisfatte contro
|
|
1113
|
+
* lo snapshot (fail-closed: un'espressione invalida conta come non passata).
|
|
1114
|
+
* In scope, oltre a `record`, c'e' `payload`: il valore consegnato
|
|
1115
|
+
* dall'azione precedente della catena (3° argomento di `navigateToNextStep`,
|
|
1116
|
+
* tipicamente lo stesso valore poi passato a `resolve(...)` nel trigger) —
|
|
1117
|
+
* `undefined` se il chiamante non lo fornisce.
|
|
1118
|
+
*/
|
|
1119
|
+
private targetGuardsPass;
|
|
1120
|
+
/**
|
|
1121
|
+
* Feature J — `true` se l'utente corrente soddisfa TUTTI i permessi richiesti
|
|
1122
|
+
* dalla transizione. Formato canonico `role:<id_ruolo>` (match su `role_id`);
|
|
1123
|
+
* valori legacy free-form confrontati case-insensitive col nome ruolo.
|
|
1124
|
+
* Fail-closed: senza utente/servizio la transizione non e' percorribile.
|
|
1125
|
+
*/
|
|
1126
|
+
/**
|
|
1127
|
+
* Feature J — verifica pubblica dei permessi transizione per l'utente corrente
|
|
1128
|
+
* (usata dal runner anche per il gate delle table action nell'overlay:
|
|
1129
|
+
* permesso sull'arco route->action = chi puo' vedere/usare l'azione nello step).
|
|
1130
|
+
*/
|
|
1131
|
+
userHasPermissions(requiredPermissions?: string[]): boolean;
|
|
1132
|
+
private permissionsPass;
|
|
1133
|
+
/**
|
|
1134
|
+
* Feature J — valuta una singola voce permesso:
|
|
1135
|
+
* - `deny:role:1,role:5` → i ruoli in lista sono BLOCCATI (lista vuota = tutti abilitati);
|
|
1136
|
+
* - `grant:role:1,role:5` → SOLO i ruoli in lista sono ammessi;
|
|
1137
|
+
* - legacy `role:<id>` o nome ruolo → grant singolo.
|
|
1138
|
+
*/
|
|
1139
|
+
private permissionEntryPass;
|
|
1140
|
+
/** Match di un token ruolo: `role:<id>`, `<id>` numerico o nome ruolo (case-insensitive). */
|
|
1141
|
+
private roleTokenMatches;
|
|
1142
|
+
/**
|
|
1143
|
+
* Feature L — registra le catene di azioni INTERNE (concatenate) a valle
|
|
1144
|
+
* delle table action del workflow attivo. Chiamato dal runner; consumato dal
|
|
1145
|
+
* wrapper action del data-source dopo l'esecuzione del callback trigger.
|
|
1146
|
+
*/
|
|
1147
|
+
setLinkedInternalActions(entries: WorkflowRuntimeInternalActionEntry[]): void;
|
|
1148
|
+
/** Feature L — catena di azioni interne collegata a una table action (o `null`). */
|
|
1149
|
+
getLinkedInternalActions(sourceRoute: string, tableActionId: number): WorkflowRuntimeInternalActionEntry | null;
|
|
1150
|
+
/**
|
|
1151
|
+
* Imposta il contesto della navigazione workflow in corso (sourceRoute +
|
|
1152
|
+
* actionId dell'azione che sta per eseguire il proprio callback). Chiamato dal
|
|
1153
|
+
* wrapper action del data-source; consumato da `navigateToNextStep`.
|
|
1154
|
+
*/
|
|
1155
|
+
setNavigationContext(sourceRoute: string, tableActionId: number): void;
|
|
1156
|
+
/** Contesto navigazione workflow corrente, o `null` se non in un'azione workflow. */
|
|
1157
|
+
getNavigationContext(): {
|
|
1158
|
+
sourceRoute: string;
|
|
1159
|
+
actionId: number;
|
|
1160
|
+
} | null;
|
|
1161
|
+
/** Azzera il contesto navigazione (chiamato al termine del callback action). */
|
|
1162
|
+
clearNavigationContext(): void;
|
|
1163
|
+
/**
|
|
1164
|
+
* Feature I — risolve la route del PROSSIMO step workflow per un'azione di
|
|
1165
|
+
* navigazione, dato il record corrente (`context`):
|
|
1166
|
+
* - se i target hanno guardie (nodo condition a valle) sceglie il ramo
|
|
1167
|
+
* VINCENTE (tutte le espressioni soddisfatte) — es. true=pop>1000;
|
|
1168
|
+
* - se non ci sono guardie (il nodo successivo e' direttamente una route)
|
|
1169
|
+
* prende quella route.
|
|
1170
|
+
* @returns `{ targetRoute, targetAction }` scelta, oppure `null` se non c'e'
|
|
1171
|
+
* linking workflow per (sourceRoute, actionId).
|
|
1172
|
+
*/
|
|
1173
|
+
resolveNextStepRoute(sourceRoute: string, tableActionId: number, record: any, payload?: any): {
|
|
1174
|
+
targetRoute: string;
|
|
1175
|
+
targetAction: string;
|
|
1176
|
+
} | null;
|
|
1177
|
+
/**
|
|
1178
|
+
* Feature I — valuta le guardie di transizione (espressioni dei nodi condition)
|
|
1179
|
+
* collegate a un'azione di navigazione workflow, contro il record corrente.
|
|
1180
|
+
*
|
|
1181
|
+
* Semantica: la navigazione e' consentita se ALMENO UN target collegato ha
|
|
1182
|
+
* tutte le sue guardie soddisfatte (nessuna espressione = sempre consentito).
|
|
1183
|
+
* Le espressioni sono JS con in scope `record` (snapshot plain, BehaviorSubject
|
|
1184
|
+
* gia' srotolati). Un errore di valutazione conta come guardia fallita.
|
|
1185
|
+
*
|
|
1186
|
+
* @returns `{ allowed, failedExpression }` — la prima espressione fallita
|
|
1187
|
+
* (per il toast) quando `allowed=false`.
|
|
1188
|
+
*/
|
|
1189
|
+
evaluateLinkedNavigationGuards(sourceRoute: string, tableActionId: number, record: any): {
|
|
1190
|
+
allowed: boolean;
|
|
1191
|
+
failedExpression?: string;
|
|
1192
|
+
};
|
|
1044
1193
|
/**
|
|
1045
1194
|
* Consuma (read-once) metadata pending per route/azione: se presenti li ritorna e li rimuove dallo stato runtime.
|
|
1046
1195
|
* La lookup prova prima la chiave `route::action`, poi il fallback per sola route.
|
|
@@ -1670,12 +1819,41 @@ declare class DataSourceComponent implements OnInit, OnDestroy {
|
|
|
1670
1819
|
*/
|
|
1671
1820
|
private applyWorkflowRuntimeRouteMetadata;
|
|
1672
1821
|
/**
|
|
1822
|
+
* Valuta le autorizzazioni del BUNDLE workflow (tablePermissions /
|
|
1823
|
+
* columnPermissions autorate nel grafo, sezioni "Autorizzazioni
|
|
1824
|
+
* tabella/colonna" del Metadata Route editor) per l'UTENTE CORRENTE e le
|
|
1825
|
+
* proietta sui metadata client. Le autorizzazioni fisiche
|
|
1826
|
+
* (_mtdt__tnt__trzzzioni__*) restano enforcement server-side globale; queste
|
|
1827
|
+
* valgono SOLO dentro il workflow (overlay-only, come le azioni). Specchia la
|
|
1828
|
+
* semantica di `applyTableRestrictions`/`applyColumnRestrictions` server:
|
|
1829
|
+
* tri-state (null=neutro), precedenza utente > ruolo, admin bypass.
|
|
1830
|
+
*/
|
|
1831
|
+
private applyWorkflowRuntimePermissionsForCurrentUser;
|
|
1832
|
+
/**
|
|
1673
1833
|
* Ricostruisce le callback delle custom action tabella (`action_callback__fn`, `disable_callback__fn`) e aggancia il linking di navigazione workflow.
|
|
1674
1834
|
* @param actions Lista custom action tabella da rendere eseguibile (callback function ricostruite).
|
|
1675
1835
|
* @param currentRoute Route sorgente usata per il linking automatico delle azioni di navigazione.
|
|
1676
1836
|
*/
|
|
1677
1837
|
private rehydrateRuntimeTableActionCallbacks;
|
|
1678
1838
|
/**
|
|
1839
|
+
* Feature L — esegue la catena di azioni INTERNE (concatenate) collegate a
|
|
1840
|
+
* una table action del workflow attivo. Il `payload` iniziale e' il valore
|
|
1841
|
+
* ritornato dal callback del trigger; il return (non-undefined) di ogni
|
|
1842
|
+
* interna diventa il payload della successiva. I payload sono memorizzati
|
|
1843
|
+
* anche nella mappa payload del workflow (`setRouteNodePayload` per node id).
|
|
1844
|
+
* Errori: notificati via errorHandler, non bloccano il flusso.
|
|
1845
|
+
*/
|
|
1846
|
+
private executeLinkedInternalActions;
|
|
1847
|
+
/**
|
|
1848
|
+
* F5 — materializza i TASK PARALLELI del parallel_split: per ogni record del
|
|
1849
|
+
* payload del trigger e per ogni ramo della config, un `insertRecord` sulla
|
|
1850
|
+
* route task dell'app (CRUD standard: audit stamp e trigger dell'app gratis).
|
|
1851
|
+
* Config: { task_route, fk_field, record_pk_field, caption_field, done_field,
|
|
1852
|
+
* assignee_field?, due_days?, extra_defaults?, branches: [{caption,
|
|
1853
|
+
* assignee_user_id?}] }. Ritorna il payload arricchito di `tasksCreated`.
|
|
1854
|
+
*/
|
|
1855
|
+
private materializeWorkflowParallelTasks;
|
|
1856
|
+
/**
|
|
1679
1857
|
* Restituisce il primo valore definito tra più chiavi candidate, con fallback case-insensitive.
|
|
1680
1858
|
* @param obj Oggetto su cui cercare i valori.
|
|
1681
1859
|
* @param keys Lista ordinata di chiavi candidate da testare.
|
|
@@ -2829,10 +3007,19 @@ declare class MetadataProviderService {
|
|
|
2829
3007
|
static loadDashboardUri: any;
|
|
2830
3008
|
static deleteDashboardUri: any;
|
|
2831
3009
|
static saveWorkflowGraphUri: any;
|
|
3010
|
+
static saveWorkflowTransitionsUri: any;
|
|
3011
|
+
static getWorkflowTransitionsUri: any;
|
|
3012
|
+
static saveWorkflowGraphVersionUri: any;
|
|
3013
|
+
static getWorkflowGraphVersionsUri: any;
|
|
3014
|
+
static getWorkflowGraphVersionUri: any;
|
|
2832
3015
|
static loadWorkflowGraphUri: any;
|
|
2833
3016
|
static getWorkflowGraphsUri: any;
|
|
2834
3017
|
static renameWorkflowGraphUri: any;
|
|
2835
3018
|
static deleteWorkflowGraphUri: any;
|
|
3019
|
+
static saveScene3dUri: any;
|
|
3020
|
+
static saveScene3dThumbnailUri: any;
|
|
3021
|
+
static loadScene3dUri: any;
|
|
3022
|
+
static getScene3dsUri: any;
|
|
2836
3023
|
static getCssClassesFromSheetsUri: any;
|
|
2837
3024
|
static writeChangesToCssFileUri: any;
|
|
2838
3025
|
static scaffoldODataUri: any;
|
|
@@ -3881,6 +4068,16 @@ declare class DataProviderMetaService {
|
|
|
3881
4068
|
* @returns Esito serializzato con id/chiave/nome e numero route metadata processate.
|
|
3882
4069
|
*/
|
|
3883
4070
|
saveWorkflowGraph(payload: any): Promise<any>;
|
|
4071
|
+
/** Feature J — persiste le transizioni di stato del workflow (`MetaService.saveWorkflowTransitions`). */
|
|
4072
|
+
saveWorkflowTransitions(payload: any): Promise<any>;
|
|
4073
|
+
/** Feature J — rilegge le transizioni di stato del workflow (`MetaService.getWorkflowTransitions`). */
|
|
4074
|
+
getWorkflowTransitions(payload: any): Promise<any>;
|
|
4075
|
+
/** Feature K — salva uno snapshot versione del workflow graph (`MetaService.saveWorkflowGraphVersion`). */
|
|
4076
|
+
saveWorkflowGraphVersion(payload: any): Promise<any>;
|
|
4077
|
+
/** Feature K — elenca le versioni storicizzate (`MetaService.getWorkflowGraphVersions`). */
|
|
4078
|
+
getWorkflowGraphVersions(payload: any): Promise<any>;
|
|
4079
|
+
/** Feature K — ritorna il graph_json di una versione specifica (`MetaService.getWorkflowGraphVersion`). */
|
|
4080
|
+
getWorkflowGraphVersion(payload: any): Promise<any>;
|
|
3884
4081
|
/**
|
|
3885
4082
|
* Carica un workflow graph via `MetaService.loadWorkflowGraph`.
|
|
3886
4083
|
* Se la chiave non esiste, il backend ritorna un grafo vuoto (`nodes/connections`) con `route_metadata=[]`.
|
|
@@ -3906,6 +4103,33 @@ declare class DataProviderMetaService {
|
|
|
3906
4103
|
* @returns Esito serializzato `{ deleted, affected }`.
|
|
3907
4104
|
*/
|
|
3908
4105
|
deleteWorkflowGraph(payload: any): Promise<any>;
|
|
4106
|
+
/**
|
|
4107
|
+
* Salva/aggiorna una scena 3D via `MetaService.saveScene3d`.
|
|
4108
|
+
* Il backend fa upsert su `_wuic_scene3d` partendo da `scene_json`.
|
|
4109
|
+
* @param payload Richiesta con `scene_key`, `scene_name`, `scene_json`.
|
|
4110
|
+
* @returns Esito serializzato con id/chiave/nome.
|
|
4111
|
+
*/
|
|
4112
|
+
saveScene3d(payload: any): Promise<any>;
|
|
4113
|
+
/**
|
|
4114
|
+
* Salva la thumbnail (data-URL PNG) di una scena via
|
|
4115
|
+
* `MetaService.saveScene3dThumbnail`. Non usa il busy globale: e' una
|
|
4116
|
+
* chiamata di corredo fire-and-forget dopo il save (cattura del canvas GPU).
|
|
4117
|
+
* @param payload Richiesta con `scene_key` e `thumbnail` (data:image/png;base64,...).
|
|
4118
|
+
*/
|
|
4119
|
+
saveScene3dThumbnail(payload: any): Promise<any>;
|
|
4120
|
+
/**
|
|
4121
|
+
* Carica una scena 3D via `MetaService.loadScene3d`.
|
|
4122
|
+
* Se la chiave non esiste, il backend ritorna una scena vuota.
|
|
4123
|
+
* @param payload Richiesta con `scene_key`.
|
|
4124
|
+
* @returns Struttura `{ scene_key, scene_name, scene_json }`.
|
|
4125
|
+
*/
|
|
4126
|
+
loadScene3d(payload: any): Promise<any>;
|
|
4127
|
+
/**
|
|
4128
|
+
* Richiede al backend l'elenco delle scene 3D disponibili (`MetaService.getScene3ds`).
|
|
4129
|
+
* @param payload Payload richiesta/risposta usato nel metodo.
|
|
4130
|
+
* @returns Collezione scene restituita dal server.
|
|
4131
|
+
*/
|
|
4132
|
+
getScene3ds(payload: any): Promise<any>;
|
|
3909
4133
|
/**
|
|
3910
4134
|
* Chiede al backend le classi CSS presenti nei fogli indicati (`MetaService.getCssClassesFromSheets`).
|
|
3911
4135
|
* @param sheetPaths Percorsi fogli CSS da elaborare.
|
|
@@ -4311,6 +4535,16 @@ declare class DataProviderService {
|
|
|
4311
4535
|
* @returns Valore restituito dal metodo (Promise<any>).
|
|
4312
4536
|
*/
|
|
4313
4537
|
saveWorkflowGraph(payload: any): Promise<any>;
|
|
4538
|
+
/** Feature J — persiste le transizioni di stato del workflow. */
|
|
4539
|
+
saveWorkflowTransitions(payload: any): Promise<any>;
|
|
4540
|
+
/** Feature J — rilegge le transizioni di stato del workflow. */
|
|
4541
|
+
getWorkflowTransitions(payload: any): Promise<any>;
|
|
4542
|
+
/** Feature K — salva uno snapshot versione del workflow graph. */
|
|
4543
|
+
saveWorkflowGraphVersion(payload: any): Promise<any>;
|
|
4544
|
+
/** Feature K — elenca le versioni storicizzate del workflow graph. */
|
|
4545
|
+
getWorkflowGraphVersions(payload: any): Promise<any>;
|
|
4546
|
+
/** Feature K — ritorna il graph_json di una versione specifica. */
|
|
4547
|
+
getWorkflowGraphVersion(payload: any): Promise<any>;
|
|
4314
4548
|
/**
|
|
4315
4549
|
* Carica i dati richiesti dal flusso runtime del servizio.
|
|
4316
4550
|
* @param payload Payload richiesta/risposta usato nel metodo.
|
|
@@ -4323,6 +4557,14 @@ declare class DataProviderService {
|
|
|
4323
4557
|
* @returns Lista graph/metadata restituita dal backend.
|
|
4324
4558
|
*/
|
|
4325
4559
|
getWorkflowGraphs(payload: any): Promise<any>;
|
|
4560
|
+
/** Scene3D — salva/aggiorna una scena 3D delegando al provider metadata (`MetaService.saveScene3d`). */
|
|
4561
|
+
saveScene3d(payload: any): Promise<any>;
|
|
4562
|
+
/** Scene3D — salva la thumbnail di una scena (`MetaService.saveScene3dThumbnail`). */
|
|
4563
|
+
saveScene3dThumbnail(payload: any): Promise<any>;
|
|
4564
|
+
/** Scene3D — carica una scena 3D delegando al provider metadata (`MetaService.loadScene3d`). */
|
|
4565
|
+
loadScene3d(payload: any): Promise<any>;
|
|
4566
|
+
/** Scene3D — elenca le scene 3D disponibili delegando al provider metadata (`MetaService.getScene3ds`). */
|
|
4567
|
+
getScene3ds(payload: any): Promise<any>;
|
|
4326
4568
|
/**
|
|
4327
4569
|
* Rinomina un workflow graph delegando al provider metadata.
|
|
4328
4570
|
* @param payload Payload con identificativo grafo e nuovo nome.
|
|
@@ -4482,6 +4724,35 @@ declare class WtoolboxService {
|
|
|
4482
4724
|
static get router(): {
|
|
4483
4725
|
navigateByUrl: (url: string) => Promise<boolean>;
|
|
4484
4726
|
};
|
|
4727
|
+
/**
|
|
4728
|
+
* Id dell'utente autenticato corrente (via `UserInfoService`, mai leggendo
|
|
4729
|
+
* cookie/session direttamente — AGENTS.md regola 7). Utile nei callback delle
|
|
4730
|
+
* table action per stampare "chi ha fatto l'azione" (es. `approvatore_id` nel
|
|
4731
|
+
* workflow di approvazione). Ritorna '' se l'injector non e' pronto.
|
|
4732
|
+
*/
|
|
4733
|
+
static getCurrentUserId(): string;
|
|
4734
|
+
/**
|
|
4735
|
+
* Username dell'utente autenticato corrente (stessa fonte di
|
|
4736
|
+
* getCurrentUserId). Utile quando l'app ha una tabella utenti applicativa
|
|
4737
|
+
* separata dai login (es. crm_users) mappata per username: i callback
|
|
4738
|
+
* risolvono l'id applicativo cercando per username.
|
|
4739
|
+
*/
|
|
4740
|
+
static getCurrentUsername(): string;
|
|
4741
|
+
getCurrentUserId(): string;
|
|
4742
|
+
getCurrentUsername(): string;
|
|
4743
|
+
countRelatedRows(route: string, fkField: string, value: any, extraFilters?: Array<{
|
|
4744
|
+
field: string;
|
|
4745
|
+
operatore: string;
|
|
4746
|
+
value: any;
|
|
4747
|
+
}>): Promise<number>;
|
|
4748
|
+
areWorkflowTasksDone(taskRoute: string, fkField: string, recordId: any, doneField: string): Promise<boolean>;
|
|
4749
|
+
enqueueEmail(opts: {
|
|
4750
|
+
to: string;
|
|
4751
|
+
subject: string;
|
|
4752
|
+
body?: string;
|
|
4753
|
+
relatedRoute?: string;
|
|
4754
|
+
relatedPk?: string | number;
|
|
4755
|
+
}): Promise<any>;
|
|
4485
4756
|
private static tr;
|
|
4486
4757
|
/**
|
|
4487
4758
|
* Salva nel runtime workflow il payload associato a uno specifico route node.
|
|
@@ -4518,6 +4789,85 @@ declare class WtoolboxService {
|
|
|
4518
4789
|
route: string;
|
|
4519
4790
|
action: string;
|
|
4520
4791
|
} | null;
|
|
4792
|
+
/**
|
|
4793
|
+
* Navigazione condizionale guidata dal workflow. Da usare nel callback di
|
|
4794
|
+
* un'azione di navigazione AL POSTO di una route hardcodata:
|
|
4795
|
+
*
|
|
4796
|
+
* wtoolbox.navigateToNextStep(record, filterInfoJson, payload);
|
|
4797
|
+
*
|
|
4798
|
+
* La ROUTE del prossimo step viene scelta dal grafo workflow attivo:
|
|
4799
|
+
* - se a valle dell'azione c'e' un nodo condition/switch, valuta le sue
|
|
4800
|
+
* guardie contro `context` (il record/selezione) e `payload` e segue il
|
|
4801
|
+
* ramo vincente;
|
|
4802
|
+
* - altrimenti prende direttamente la route successiva del grafo.
|
|
4803
|
+
* Applica anche il metadata overlay del ramo scelto e naviga passando `filter`
|
|
4804
|
+
* come querystring `filterInfo` (oggetto o stringa JSON); se `filter` e' gia'
|
|
4805
|
+
* una querystring `chiave=...` viene usata grezza.
|
|
4806
|
+
*
|
|
4807
|
+
* @param context Record/selezione corrente, passato al validatore della condition.
|
|
4808
|
+
* @param filter Payload filtro (oggetto o JSON string) o querystring grezza.
|
|
4809
|
+
* @param payload Valore dell'azione corrente reso disponibile alle espressioni
|
|
4810
|
+
* di condition/switch come variabile `payload` (tipicamente lo
|
|
4811
|
+
* stesso valore poi consegnato a `resolve(...)` nel callback).
|
|
4812
|
+
* Le espressioni che citano `payload` sono deferite al momento
|
|
4813
|
+
* della scelta del ramo (il gate pre-click non le valuta).
|
|
4814
|
+
* @returns `true` se ha risolto e avviato la navigazione; `false` se non c'e'
|
|
4815
|
+
* linking workflow attivo (il callback puo' gestire un fallback).
|
|
4816
|
+
*/
|
|
4817
|
+
static navigateToNextStep(context?: any, filter?: any, payload?: any): boolean;
|
|
4818
|
+
/**
|
|
4819
|
+
* Invia (enqueue) una NOTIFICA server-side via `NotificationRealtimeService`
|
|
4820
|
+
* (POST `Notifications/enqueue` -> righe in `_notifications` + push realtime
|
|
4821
|
+
* a OGNI destinatario). Pensata per i callback utente
|
|
4822
|
+
* (`wtoolbox.enqueueNotification({...})`), es. le azioni interne del workflow.
|
|
4823
|
+
*
|
|
4824
|
+
* Destinatari:
|
|
4825
|
+
* - `userId`: singolo id o ARRAY di id utente;
|
|
4826
|
+
* - `roleId`: singolo id o ARRAY di id ruolo — il server li risolve in utenti
|
|
4827
|
+
* (utenti.id_ruolo + utenti_ruoli, esclusi i cancellati) e fa fan-out;
|
|
4828
|
+
* - senza destinatari espliciti: default l'utente corrente.
|
|
4829
|
+
* Import dinamici per evitare cicli (il service importa WtoolboxService).
|
|
4830
|
+
*/
|
|
4831
|
+
static enqueueNotification(payload: {
|
|
4832
|
+
message: string;
|
|
4833
|
+
userId?: number | number[];
|
|
4834
|
+
roleId?: number | number[];
|
|
4835
|
+
type?: string;
|
|
4836
|
+
targetJson?: string;
|
|
4837
|
+
payloadJson?: string;
|
|
4838
|
+
source?: string;
|
|
4839
|
+
}): Promise<boolean>;
|
|
4840
|
+
/**
|
|
4841
|
+
* F6 — conta le righe CORRELATE a un record su un'altra route (es. allegati
|
|
4842
|
+
* di una fattura, task aperti di un onboarding). Pensata per i callback e le
|
|
4843
|
+
* validazioni delle azioni workflow: `await wtoolbox.countRelatedRows(route,
|
|
4844
|
+
* fkField, id)` (+ filtri extra opzionali in shape filterElement). Ritorna
|
|
4845
|
+
* -1 su errore (i callback distinguano "0 righe" da "non verificabile").
|
|
4846
|
+
*/
|
|
4847
|
+
static countRelatedRows(route: string, fkField: string, value: any, extraFilters?: Array<{
|
|
4848
|
+
field: string;
|
|
4849
|
+
operatore: string;
|
|
4850
|
+
value: any;
|
|
4851
|
+
}>): Promise<number>;
|
|
4852
|
+
/**
|
|
4853
|
+
* F5 — vero se TUTTI i task workflow correlati al record sono completati
|
|
4854
|
+
* (nessuna riga con done_field = false). Usata dal template del parallel_join.
|
|
4855
|
+
*/
|
|
4856
|
+
static areWorkflowTasksDone(taskRoute: string, fkField: string, recordId: any, doneField: string): Promise<boolean>;
|
|
4857
|
+
/**
|
|
4858
|
+
* F7 — accoda una email workflow nell'outbox server (`_wuic_mail_outbox`
|
|
4859
|
+
* via `MetaService.enqueueWorkflowEmail`). L'invio reale avviene solo se
|
|
4860
|
+
* l'app ha SMTP configurato (status `sent`), altrimenti la riga resta
|
|
4861
|
+
* `logged` (simulazione demo). Ritorna `{ok, mo_id, status}` o `null` su
|
|
4862
|
+
* errore. Usata dai callback delle azioni interne tipo 101 (Email).
|
|
4863
|
+
*/
|
|
4864
|
+
static enqueueEmail(opts: {
|
|
4865
|
+
to: string;
|
|
4866
|
+
subject: string;
|
|
4867
|
+
body?: string;
|
|
4868
|
+
relatedRoute?: string;
|
|
4869
|
+
relatedPk?: string | number;
|
|
4870
|
+
}): Promise<any>;
|
|
4521
4871
|
/**
|
|
4522
4872
|
* Costruisce un contesto route/workflow utile ai CRUD hook host-side.
|
|
4523
4873
|
* Include anche informazioni debug leggere per troubleshooting.
|
|
@@ -4644,6 +4994,9 @@ declare class WtoolboxService {
|
|
|
4644
4994
|
}, field: MetadatiColonna, metaInfo: MetaInfo, newValue: any, oldValue: any, wtoolbox: typeof WtoolboxService, nestedIndex?: number, nodes?: any[]) => void;
|
|
4645
4995
|
propsBag?: any;
|
|
4646
4996
|
hide?: boolean;
|
|
4997
|
+
suggest?: (record: {
|
|
4998
|
+
[key: string]: BehaviorSubject<any>;
|
|
4999
|
+
}, field: MetadatiColonna, metaInfo: MetaInfo, wtoolbox: typeof WtoolboxService) => any;
|
|
4647
5000
|
}[], width?: string, height?: string, customValidation?: any): Promise<any>;
|
|
4648
5001
|
private static openPromptDialogFallback;
|
|
4649
5002
|
private static resolveDialogServiceFromInjector;
|
|
@@ -7636,7 +7989,11 @@ declare class NotificationRealtimeService {
|
|
|
7636
7989
|
deleteRead(notificationId: number): Promise<void>;
|
|
7637
7990
|
clearRead(userId?: number | null): Promise<void>;
|
|
7638
7991
|
enqueue(payload: {
|
|
7639
|
-
userId
|
|
7992
|
+
userId?: number;
|
|
7993
|
+
/** Destinatari multipli (unione con userId). */
|
|
7994
|
+
userIds?: number[];
|
|
7995
|
+
/** Ruoli destinatari: il server li risolve in utenti (fan-out). */
|
|
7996
|
+
roleIds?: number[];
|
|
7640
7997
|
type?: string;
|
|
7641
7998
|
message: string;
|
|
7642
7999
|
targetJson?: string;
|
|
@@ -12382,6 +12739,223 @@ declare class LazyFieldEditorComponent implements OnInit {
|
|
|
12382
12739
|
static ɵcmp: i0.ɵɵComponentDeclaration<LazyFieldEditorComponent, "wuic-field-editor-lazy", never, { "datasource": { "alias": "datasource"; "required": false; }; "record": { "alias": "record"; "required": false; }; "field": { "alias": "field"; "required": false; }; "metaInfo": { "alias": "metaInfo"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "isFilter": { "alias": "isFilter"; "required": false; }; "hideLabel": { "alias": "hideLabel"; "required": false; }; "forceShowLabel": { "alias": "forceShowLabel"; "required": false; }; "operator": { "alias": "operator"; "required": false; }; "nestedIndex": { "alias": "nestedIndex"; "required": false; }; "triggerProp": { "alias": "triggerProp"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "onInlineCellValueChange": { "alias": "onInlineCellValueChange"; "required": false; }; }, {}, never, never, true, never>;
|
|
12383
12740
|
}
|
|
12384
12741
|
|
|
12742
|
+
declare class PointFilterComponent {
|
|
12743
|
+
/**
|
|
12744
|
+
* Input dal componente padre per record; usata nella configurazione e nel rendering del componente.
|
|
12745
|
+
*/
|
|
12746
|
+
record?: any;
|
|
12747
|
+
/**
|
|
12748
|
+
* Input dal componente padre per field; usata nella configurazione e nel rendering del componente.
|
|
12749
|
+
*/
|
|
12750
|
+
field: MetadatiColonna;
|
|
12751
|
+
/**
|
|
12752
|
+
* Input dal componente padre per meta info; usata nella configurazione e nel rendering del componente.
|
|
12753
|
+
*/
|
|
12754
|
+
metaInfo: MetaInfo;
|
|
12755
|
+
/**
|
|
12756
|
+
* Input dal componente padre per datasource; usata nella configurazione e nel rendering del componente.
|
|
12757
|
+
*/
|
|
12758
|
+
datasource?: BehaviorSubject<DataSourceComponent>;
|
|
12759
|
+
/**
|
|
12760
|
+
* Riferimento a elementi o componenti figli usato dalla logica UI per map.
|
|
12761
|
+
*/
|
|
12762
|
+
map?: GoogleMap;
|
|
12763
|
+
/**
|
|
12764
|
+
* Proprieta di stato del componente per dialog visible, usata dalla logica interna e dal template.
|
|
12765
|
+
*/
|
|
12766
|
+
dialogVisible: boolean;
|
|
12767
|
+
/**
|
|
12768
|
+
* Proprieta di stato del componente per map center, usata dalla logica interna e dal template.
|
|
12769
|
+
*/
|
|
12770
|
+
mapCenter: google.maps.LatLngLiteral;
|
|
12771
|
+
/**
|
|
12772
|
+
* Proprieta di stato del componente per map zoom, usata dalla logica interna e dal template.
|
|
12773
|
+
*/
|
|
12774
|
+
mapZoom: number;
|
|
12775
|
+
/**
|
|
12776
|
+
* Modalita' di disegno corrente. Sostituisce `google.maps.drawing.DrawingManager`
|
|
12777
|
+
* deprecato (Maps JavaScript API drawing library, deprecated 2025-08, removed
|
|
12778
|
+
* in versions released starting 2026-05). Implementiamo polygon + circle
|
|
12779
|
+
* manuali via click-handler diretti sulla mappa.
|
|
12780
|
+
*/
|
|
12781
|
+
private drawingMode;
|
|
12782
|
+
/**
|
|
12783
|
+
* Listener registrati durante una sessione di drawing: vanno rimossi quando
|
|
12784
|
+
* la sessione si conclude (overlaycomplete equivalente) o cambia modalita'.
|
|
12785
|
+
*/
|
|
12786
|
+
private drawingListeners;
|
|
12787
|
+
/**
|
|
12788
|
+
* Stato intermedio per il disegno polygon: vertici accumulati al click,
|
|
12789
|
+
* UX originale Google DrawingManager:
|
|
12790
|
+
* - 1° click → punto visibile (dot)
|
|
12791
|
+
* - click successivi → linea (polyline preview) + altri dot
|
|
12792
|
+
* - click sul 1° dot → chiude il poligono
|
|
12793
|
+
* - dblclick come alternativa di chiusura (compatibilita' con utenti
|
|
12794
|
+
* che si aspettano dblclick)
|
|
12795
|
+
*/
|
|
12796
|
+
private polygonVertices;
|
|
12797
|
+
/**
|
|
12798
|
+
* Marker visibili per ogni vertice del polygon in draw (dot rossi).
|
|
12799
|
+
* Tipo `any` perche' AdvancedMarkerElement non e' direttamente nei
|
|
12800
|
+
* tipi `google.maps.*` esposti senza importLibrary('marker').
|
|
12801
|
+
*/
|
|
12802
|
+
private polygonVertexMarkers;
|
|
12803
|
+
/**
|
|
12804
|
+
* Polyline di preview che collega i vertici durante il disegno.
|
|
12805
|
+
* Si trasforma in `activePolygon` (closed shape) alla chiusura.
|
|
12806
|
+
*/
|
|
12807
|
+
private polylinePreview?;
|
|
12808
|
+
/**
|
|
12809
|
+
* Stato intermedio per il disegno cerchio: center fissato al primo click,
|
|
12810
|
+
* raggio calcolato live al mousemove, fissato al secondo click.
|
|
12811
|
+
*/
|
|
12812
|
+
private circleCenter?;
|
|
12813
|
+
private circleStage;
|
|
12814
|
+
/**
|
|
12815
|
+
* Valore corrente selezionato per active polygon, usato dai flussi interattivi del componente.
|
|
12816
|
+
*/
|
|
12817
|
+
private activePolygon?;
|
|
12818
|
+
/**
|
|
12819
|
+
* Valore corrente selezionato per active circle, usato dai flussi interattivi del componente.
|
|
12820
|
+
*/
|
|
12821
|
+
private activeCircle?;
|
|
12822
|
+
/**
|
|
12823
|
+
* Proprieta di stato del componente per pending operator, usata dalla logica interna e dal template.
|
|
12824
|
+
*/
|
|
12825
|
+
pendingOperator: 'maparea' | 'mapdistance' | null;
|
|
12826
|
+
/**
|
|
12827
|
+
* Proprieta di stato del componente per pending value, usata dalla logica interna e dal template.
|
|
12828
|
+
*/
|
|
12829
|
+
pendingValue: string | null;
|
|
12830
|
+
/**
|
|
12831
|
+
* Gestisce comportamento UI tramite `openDialog` orchestrando le chiamate `setTimeout` e `initDrawingTools`.
|
|
12832
|
+
*/
|
|
12833
|
+
openDialog(): void;
|
|
12834
|
+
/**
|
|
12835
|
+
* Gestisce comportamento UI tramite `closeDialog` con il flusso specifico definito dalla sua implementazione.
|
|
12836
|
+
*/
|
|
12837
|
+
closeDialog(): void;
|
|
12838
|
+
/**
|
|
12839
|
+
* Gestisce la logica di `initDrawingTools`. No-op nel nuovo path (i click
|
|
12840
|
+
* handler vengono registrati on-demand in `drawArea`/`drawCircle`); il metodo
|
|
12841
|
+
* resta per compatibilita' con i call site esistenti (es. `openDialog`).
|
|
12842
|
+
*/
|
|
12843
|
+
initDrawingTools(): Promise<void>;
|
|
12844
|
+
/**
|
|
12845
|
+
* Avvia il disegno di un'area poligonale: ogni click aggiunge un vertice,
|
|
12846
|
+
* il polygon di preview si aggiorna live, il doppio click chiude la forma
|
|
12847
|
+
* (richiede min 3 vertici). Sostituisce
|
|
12848
|
+
* `drawingManager.setDrawingMode(OverlayType.POLYGON)`.
|
|
12849
|
+
*
|
|
12850
|
+
* Note: il polygon di preview viene creato LAZY al primo click sulla mappa,
|
|
12851
|
+
* non subito al click del bottone. Pre-creare un polygon con `paths: []`
|
|
12852
|
+
* intercettava gli eventi `click` della mappa anche con `clickable: false`
|
|
12853
|
+
* e impediva al listener di firare → l'utente cliccava i bottoni e non
|
|
12854
|
+
* succedeva nulla.
|
|
12855
|
+
*/
|
|
12856
|
+
drawArea(): void;
|
|
12857
|
+
/**
|
|
12858
|
+
* Avvia il disegno di un cerchio: il primo click fissa il centro, il
|
|
12859
|
+
* mousemove successivo regola il raggio in tempo reale, il secondo click
|
|
12860
|
+
* lo conferma. Sostituisce `drawingManager.setDrawingMode(OverlayType.CIRCLE)`.
|
|
12861
|
+
*/
|
|
12862
|
+
drawCircle(): void;
|
|
12863
|
+
/**
|
|
12864
|
+
* Attacca i listener click/mousemove/dblclick alla mappa Google.
|
|
12865
|
+
* Schedule via `setTimeout` perche' alla prima apertura del dialog il
|
|
12866
|
+
* `<google-map>` ViewChild puo' non aver ancora popolato `googleMap`
|
|
12867
|
+
* (la libreria Maps si carica async). Riprova fino a 10 volte a 100ms.
|
|
12868
|
+
*/
|
|
12869
|
+
private scheduleAttachMapListeners;
|
|
12870
|
+
/**
|
|
12871
|
+
* Effettiva attach dei listener. Chiamato da scheduleAttachMapListeners
|
|
12872
|
+
* quando `googleMap` e' pronto.
|
|
12873
|
+
*/
|
|
12874
|
+
private attachMapListeners;
|
|
12875
|
+
/**
|
|
12876
|
+
* Cambia il cursore della mappa per dare feedback visivo che la modalita'
|
|
12877
|
+
* di disegno e' attiva (sostituisce il cursore drawingManager-managed).
|
|
12878
|
+
*/
|
|
12879
|
+
private applyDrawingCursor;
|
|
12880
|
+
/**
|
|
12881
|
+
* Crea un AdvancedMarkerElement che rappresenta visivamente un vertice
|
|
12882
|
+
* del polygon in fase di disegno (un piccolo dot rosso).
|
|
12883
|
+
* Se `isFirst=true`, aggiunge un click handler per chiudere il polygon
|
|
12884
|
+
* quando l'utente cliccher sul primo vertice (UX classica DrawingManager).
|
|
12885
|
+
*/
|
|
12886
|
+
private createVertexMarker;
|
|
12887
|
+
/**
|
|
12888
|
+
* Chiude il polygon: trasforma la polyline preview + i dot vertex in un
|
|
12889
|
+
* Polygon chiuso editabile e applica il filtro `maparea`.
|
|
12890
|
+
*/
|
|
12891
|
+
private closePolygonFromFirstVertex;
|
|
12892
|
+
/**
|
|
12893
|
+
* Rimuove i listener registrati nella sessione di drawing corrente e
|
|
12894
|
+
* resetta lo stato. Idempotente.
|
|
12895
|
+
*/
|
|
12896
|
+
private exitDrawingMode;
|
|
12897
|
+
/**
|
|
12898
|
+
* Distanza Haversine in metri tra due `LatLng`. Replica
|
|
12899
|
+
* `google.maps.geometry.spherical.computeDistanceBetween` senza forzare
|
|
12900
|
+
* il caricamento della geometry library (che non e' importata da
|
|
12901
|
+
* questo componente).
|
|
12902
|
+
*/
|
|
12903
|
+
private haversineMeters;
|
|
12904
|
+
/**
|
|
12905
|
+
* Applica aggiornamenti di stato tramite `applyFilter` con regole guidate dai metadati server `_Metadati_*` (tabella/colonna), preparando/aggiornando il dataset visualizzato.
|
|
12906
|
+
*
|
|
12907
|
+
* Se l'utente ha disegnato una shape ma non l'ha chiusa esplicitamente
|
|
12908
|
+
* (dblclick per polygon, 2° click per circle) prima di premere "Usa
|
|
12909
|
+
* filtro", finalizziamo qui la shape corrente — altrimenti il bottone
|
|
12910
|
+
* sembra non fare nulla. Il legacy `DrawingManager` chiudeva
|
|
12911
|
+
* automaticamente al click sul primo vertice (polygon) / drag-release
|
|
12912
|
+
* (circle); il path manual richiede una gesture esplicita che l'utente
|
|
12913
|
+
* non sempre conosce.
|
|
12914
|
+
*/
|
|
12915
|
+
applyFilter(): Promise<void>;
|
|
12916
|
+
/**
|
|
12917
|
+
* Gestisce la logica di `clearFilter` con regole guidate dai metadati server `_Metadati_*` (tabella/colonna), trasformando e filtrando collezioni dati.
|
|
12918
|
+
*
|
|
12919
|
+
* - Rimuove il filtro maparea/mapdistance dal `filterInfo.filters` per il
|
|
12920
|
+
* campo corrente (match field-name case-insensitive per evitare
|
|
12921
|
+
* mismatch di casing client/server).
|
|
12922
|
+
* - Resetta l'override `metaInfo.operators[<field>]` lasciato da
|
|
12923
|
+
* `applyFilter` — altrimenti la UI continua a mostrare lo status
|
|
12924
|
+
* "Filtro area pronto".
|
|
12925
|
+
* - Triggera `fetchData()` cosi' la query si rigenera senza il filtro:
|
|
12926
|
+
* pre-fix il filtro spariva dalla UI ma il prossimo payload (e quindi
|
|
12927
|
+
* l'SQL server-side) includeva ancora `operatore: 'maparea'`.
|
|
12928
|
+
*/
|
|
12929
|
+
clearFilter(): Promise<void>;
|
|
12930
|
+
/**
|
|
12931
|
+
* Gestisce la logica di `clearShapes` orchestrando le chiamate `setMap`.
|
|
12932
|
+
* Rimuove polygon + circle dalla mappa, esce da eventuale modalita' di
|
|
12933
|
+
* disegno attiva e svuota lo stato dei vertici accumulati.
|
|
12934
|
+
*/
|
|
12935
|
+
clearShapes(): void;
|
|
12936
|
+
/**
|
|
12937
|
+
* Gestisce la logica operativa di `toPolygonWkt` in modo coerente con l'implementazione corrente.
|
|
12938
|
+
* @param polygon Parametro utilizzato dal metodo nel flusso elaborativo.
|
|
12939
|
+
* @returns Stringa risultante calcolata da `toPolygonWkt` per chiavi/label o valori testuali.
|
|
12940
|
+
*/
|
|
12941
|
+
private toPolygonWkt;
|
|
12942
|
+
/**
|
|
12943
|
+
* Gestisce la logica operativa di `toCircleExpression` in modo coerente con l'implementazione corrente.
|
|
12944
|
+
* @param circle Parametro utilizzato dal metodo nel flusso elaborativo.
|
|
12945
|
+
* @returns Stringa risultante calcolata da `toCircleExpression` per chiavi/label o valori testuali.
|
|
12946
|
+
*/
|
|
12947
|
+
private toCircleExpression;
|
|
12948
|
+
/**
|
|
12949
|
+
* Gestisce la logica operativa di `extractCenterFromFilterValue` in modo coerente con l'implementazione corrente.
|
|
12950
|
+
* @param operator Parametro utilizzato dal metodo nel flusso elaborativo.
|
|
12951
|
+
* @param value Valore in ingresso elaborato o normalizzato dal metodo.
|
|
12952
|
+
* @returns Valore di tipo `{ lat: number; lng: number } | null` prodotto da `extractCenterFromFilterValue`.
|
|
12953
|
+
*/
|
|
12954
|
+
private extractCenterFromFilterValue;
|
|
12955
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PointFilterComponent, never>;
|
|
12956
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PointFilterComponent, "wuic-point-filter", never, { "record": { "alias": "record"; "required": false; }; "field": { "alias": "field"; "required": false; }; "metaInfo": { "alias": "metaInfo"; "required": false; }; "datasource": { "alias": "datasource"; "required": false; }; }, {}, never, never, true, never>;
|
|
12957
|
+
}
|
|
12958
|
+
|
|
12385
12959
|
/**
|
|
12386
12960
|
* CodeEditorComponent (Monaco-based, ~3.4 MB) viene istanziato SOLO attraverso
|
|
12387
12961
|
* il wrapper `LazyCodeEditorComponent`, che fa l'`import('./code-editor.component')`
|
|
@@ -12401,7 +12975,7 @@ declare class LazyFieldEditorComponent implements OnInit {
|
|
|
12401
12975
|
* `import('./code-editor.component')` dinamico → esbuild estrae Monaco +
|
|
12402
12976
|
* CodeEditorComponent + parser SQL/TS in un chunk separato caricato on-demand.
|
|
12403
12977
|
*/
|
|
12404
|
-
declare class CodeAreaEditorComponent {
|
|
12978
|
+
declare class CodeAreaEditorComponent implements OnInit {
|
|
12405
12979
|
/**
|
|
12406
12980
|
* Input dal componente padre per record; usata nella configurazione e nel rendering del componente.
|
|
12407
12981
|
*/
|
|
@@ -12445,6 +13019,13 @@ declare class CodeAreaEditorComponent {
|
|
|
12445
13019
|
*/
|
|
12446
13020
|
constructor();
|
|
12447
13021
|
/**
|
|
13022
|
+
* `customEditorConfig.startInCodeView === true` -> il campo apre DIRETTAMENTE
|
|
13023
|
+
* il code-editor (Monaco) invece della textarea col toggle manuale. Utile
|
|
13024
|
+
* per i campi il cui valore e' sempre codice/JSON strutturato (es. effetti
|
|
13025
|
+
* shader Scene3D, props bag con schema).
|
|
13026
|
+
*/
|
|
13027
|
+
ngOnInit(): void;
|
|
13028
|
+
/**
|
|
12448
13029
|
* Gestisce comportamento UI tramite `toggleEditor` con regole guidate dai metadati server `_Metadati_*` (tabella/colonna).
|
|
12449
13030
|
* @returns Esito booleano calcolato dal metodo.
|
|
12450
13031
|
*/
|
|
@@ -13020,6 +13601,10 @@ type WorkflowStartMenuItem = {
|
|
|
13020
13601
|
mm_uri_menu: string;
|
|
13021
13602
|
mm_ordine: number;
|
|
13022
13603
|
mm_is_visible_by_default: boolean;
|
|
13604
|
+
/** F8 — badge contatore: route da contare (es. la coda dello step). */
|
|
13605
|
+
mm_badge_route?: string;
|
|
13606
|
+
/** F8 — filterInfo JSON opzionale per il conteggio (array di filterElement). */
|
|
13607
|
+
mm_badge_filter?: string;
|
|
13023
13608
|
_Metadati_Utenti_Autorizzazioni_Menus: WorkflowMenuAuthorization[];
|
|
13024
13609
|
};
|
|
13025
13610
|
type WorkflowNodeSerialized = {
|
|
@@ -13037,14 +13622,35 @@ type WorkflowNodeSerialized = {
|
|
|
13037
13622
|
}>;
|
|
13038
13623
|
actionTypeId?: number;
|
|
13039
13624
|
actionType?: string;
|
|
13625
|
+
actionScopeId?: number;
|
|
13626
|
+
/** Feature L — callback dell'azione INTERNA (concatenata), dal graph_json. */
|
|
13627
|
+
actionCallback?: string;
|
|
13040
13628
|
routeNodeId?: string;
|
|
13041
13629
|
metadataTargetType?: 'table_action' | 'column_button' | '';
|
|
13630
|
+
/** Feature I: espressione-guardia dei nodi condition (valutata come guardia di transizione). */
|
|
13631
|
+
conditionExpression?: string;
|
|
13632
|
+
/**
|
|
13633
|
+
* Config del nodo SWITCH: formula JS (`expression`, corpo-funzione con
|
|
13634
|
+
* `record` in scope) + case `{ key, label, condition }`. Le condizioni
|
|
13635
|
+
* confrontano il risultato tramite il token `resultExpression`, sostituito a
|
|
13636
|
+
* runtime con una IIFE della formula (vedi buildSwitchBranchGuard).
|
|
13637
|
+
*/
|
|
13638
|
+
switchConfig?: {
|
|
13639
|
+
expression: string;
|
|
13640
|
+
cases: Array<{
|
|
13641
|
+
key: string;
|
|
13642
|
+
label: string;
|
|
13643
|
+
condition: string;
|
|
13644
|
+
}>;
|
|
13645
|
+
} | null;
|
|
13042
13646
|
metadataTargetId?: number;
|
|
13043
13647
|
startMenus?: WorkflowStartMenuItem[];
|
|
13044
13648
|
startMenuCaption?: string;
|
|
13045
13649
|
startExclusiveMenu?: boolean;
|
|
13046
13650
|
startShowExit?: boolean;
|
|
13047
13651
|
routeMetadata?: any;
|
|
13652
|
+
/** F5 — config del parallel_split (route task + mapping campi + rami). */
|
|
13653
|
+
splitConfig?: any;
|
|
13048
13654
|
};
|
|
13049
13655
|
type WorkflowConnectionSerialized = {
|
|
13050
13656
|
id?: string;
|
|
@@ -13052,9 +13658,14 @@ type WorkflowConnectionSerialized = {
|
|
|
13052
13658
|
sourceOutput: string;
|
|
13053
13659
|
target: string;
|
|
13054
13660
|
targetInput: string;
|
|
13661
|
+
/** Feature J: transizione di stato autorata sulla connessione (designer). */
|
|
13662
|
+
transitionEvent?: string;
|
|
13663
|
+
transitionGuard?: string;
|
|
13664
|
+
transitionPermission?: string;
|
|
13055
13665
|
};
|
|
13056
13666
|
declare class WorkflowRunnerComponent implements OnInit, OnDestroy {
|
|
13057
13667
|
private route;
|
|
13668
|
+
private router;
|
|
13058
13669
|
private dataSrv;
|
|
13059
13670
|
private runtimeMetadataSrv;
|
|
13060
13671
|
private runtimeMenuSrv;
|
|
@@ -13088,6 +13699,26 @@ declare class WorkflowRunnerComponent implements OnInit, OnDestroy {
|
|
|
13088
13699
|
* Identificativo tecnico per route metadata by node id, usato in matching, lookup o routing interno.
|
|
13089
13700
|
*/
|
|
13090
13701
|
routeMetadataByNodeId: Map<string, any>;
|
|
13702
|
+
/**
|
|
13703
|
+
* Bundle context-only del grafo (route metadata senza nodo corrispondente):
|
|
13704
|
+
* tabelle fisiche bersaglio dei callback, registrate a runtime insieme ai
|
|
13705
|
+
* bundle dei route-node.
|
|
13706
|
+
*/
|
|
13707
|
+
contextRouteMetadata: {
|
|
13708
|
+
route: string;
|
|
13709
|
+
action: string;
|
|
13710
|
+
metadata: any;
|
|
13711
|
+
}[];
|
|
13712
|
+
/**
|
|
13713
|
+
* Prima route menu autorizzata per l'utente corrente (calcolata da
|
|
13714
|
+
* applyRuntimeMenus): destinazione del redirect per gli utenti NON superadmin.
|
|
13715
|
+
*/
|
|
13716
|
+
private firstAuthorizedRoute;
|
|
13717
|
+
/**
|
|
13718
|
+
* True mentre si sta reindirizzando un utente non-superadmin alla sua prima
|
|
13719
|
+
* voce di menu: nasconde la vista di ispezione (riservata al superadmin).
|
|
13720
|
+
*/
|
|
13721
|
+
redirecting: boolean;
|
|
13091
13722
|
/**
|
|
13092
13723
|
* Proprieta di stato del componente per param sub, usata dalla logica interna e dal template.
|
|
13093
13724
|
*/
|
|
@@ -13096,7 +13727,7 @@ declare class WorkflowRunnerComponent implements OnInit, OnDestroy {
|
|
|
13096
13727
|
* Inietta le dipendenze runtime del runner:
|
|
13097
13728
|
* route param source, provider dati workflow e servizi stato runtime (metadata/menu).
|
|
13098
13729
|
*/
|
|
13099
|
-
constructor(route: ActivatedRoute, dataSrv: DataProviderService, runtimeMetadataSrv: WorkflowRuntimeMetadataService, runtimeMenuSrv: WorkflowRuntimeMenuService, userInfo: UserInfoService, trslSrv: TranslationManagerService);
|
|
13730
|
+
constructor(route: ActivatedRoute, router: Router, dataSrv: DataProviderService, runtimeMetadataSrv: WorkflowRuntimeMetadataService, runtimeMenuSrv: WorkflowRuntimeMenuService, userInfo: UserInfoService, trslSrv: TranslationManagerService);
|
|
13100
13731
|
private t;
|
|
13101
13732
|
/**
|
|
13102
13733
|
* Inizializza il componente preparando stato, sottoscrizioni e primi caricamenti richiesti.
|
|
@@ -13106,6 +13737,12 @@ declare class WorkflowRunnerComponent implements OnInit, OnDestroy {
|
|
|
13106
13737
|
* Rilascia risorse e sottoscrizioni per evitare leak e stati pendenti.
|
|
13107
13738
|
*/
|
|
13108
13739
|
ngOnDestroy(): void;
|
|
13740
|
+
/**
|
|
13741
|
+
* True se l'utente corrente e' superadmin (flag `ruoli.superadmin`). Solo il
|
|
13742
|
+
* superadmin vede la vista di ispezione del runner; gli altri vengono
|
|
13743
|
+
* reindirizzati alla prima voce di menu del workflow.
|
|
13744
|
+
*/
|
|
13745
|
+
get isSuperAdmin(): boolean;
|
|
13109
13746
|
/**
|
|
13110
13747
|
* Restituisce il nodo `start` corrente del grafo caricato.
|
|
13111
13748
|
*/
|
|
@@ -13130,6 +13767,26 @@ declare class WorkflowRunnerComponent implements OnInit, OnDestroy {
|
|
|
13130
13767
|
* poi pubblica il risultato su `runtimeMenuSrv`.
|
|
13131
13768
|
*/
|
|
13132
13769
|
private applyRuntimeMenus;
|
|
13770
|
+
/**
|
|
13771
|
+
* Gate del runner: il superadmin resta sulla vista di ispezione; ogni altro
|
|
13772
|
+
* utente viene reindirizzato alla prima voce di menu del workflow autorizzata
|
|
13773
|
+
* per lui (fallback home `/` se il workflow non ne prevede nessuna). Usa
|
|
13774
|
+
* `replaceUrl` perche' la pagina runner non deve restare nella history.
|
|
13775
|
+
*/
|
|
13776
|
+
private maybeRedirectNonSuperadmin;
|
|
13777
|
+
/**
|
|
13778
|
+
* Prima route navigabile in un albero di `MenuItem` (DFS: scende nei figli,
|
|
13779
|
+
* poi la route del nodo), escludendo la voce Esci (`route === '/'`). Ritorna
|
|
13780
|
+
* null se nessuna voce ha una route utilizzabile.
|
|
13781
|
+
*/
|
|
13782
|
+
private findFirstMenuLeafRoute;
|
|
13783
|
+
/**
|
|
13784
|
+
* F8 — risolve i badge contatore delle voci menu runtime (config stashata da
|
|
13785
|
+
* buildStartMenuTree: `__badgeRoute` + `__badgeFilter`): un selectByRoute
|
|
13786
|
+
* pageSize=1 per voce, `totalRowCount` come badge (nascosto se 0). Al termine
|
|
13787
|
+
* ri-emette i menu per far ricostruire gli item al meta-menu. Best-effort.
|
|
13788
|
+
*/
|
|
13789
|
+
private resolveStartMenuBadges;
|
|
13133
13790
|
/**
|
|
13134
13791
|
* Valuta la visibilita di una voce Start menu in base alle autorizzazioni:
|
|
13135
13792
|
* priorita `utente+ruolo` > `utente` > `ruolo` > `globale`; fallback al default della voce.
|
|
@@ -13164,7 +13821,37 @@ declare class WorkflowRunnerComponent implements OnInit, OnDestroy {
|
|
|
13164
13821
|
* Estrae le navigation action collegate a una table action:
|
|
13165
13822
|
* risolve route sorgente/target dal grafo e allega metadata route target.
|
|
13166
13823
|
*/
|
|
13824
|
+
/**
|
|
13825
|
+
* Feature L — catene di azioni INTERNE (concatenate) a valle delle table
|
|
13826
|
+
* action del grafo: per ogni action "trigger" (metadataTarget table_action,
|
|
13827
|
+
* scope non interno) segue gli archi `out` verso nodi action con scope
|
|
13828
|
+
* INTERNO (2) raccogliendo i callback in ordine. Le catene sono registrate
|
|
13829
|
+
* nel runtime (`setLinkedInternalActions`) ed eseguite dal wrapper action del
|
|
13830
|
+
* data-source DOPO il callback del trigger, passando il payload di ritorno.
|
|
13831
|
+
*/
|
|
13832
|
+
private buildLinkedInternalActionEntries;
|
|
13833
|
+
/**
|
|
13834
|
+
* Feature J — gate delle TABLE ACTION per ruolo: un permesso autorato
|
|
13835
|
+
* sull'arco route->action nasconde l'azione (rimossa dall'overlay dello step,
|
|
13836
|
+
* `bundle.tableActions`) agli utenti che non lo soddisfano. Non tocca il
|
|
13837
|
+
* metadata reale della route: vale solo dentro il workflow in esecuzione.
|
|
13838
|
+
* Semantica distinta dal cammino action->...->route (che gata la NAVIGAZIONE).
|
|
13839
|
+
*/
|
|
13840
|
+
private gateRouteNodeActionsByPermission;
|
|
13167
13841
|
private buildLinkedActionRouteMetadataEntries;
|
|
13842
|
+
/**
|
|
13843
|
+
* Guardia di transizione di un RAMO del nodo switch, per SOSTITUZIONE: nella
|
|
13844
|
+
* condizione del case il token `resultExpression` viene rimpiazzato con una
|
|
13845
|
+
* IIFE della formula del nodo, cosi' l'espressione risultante e' valutabile
|
|
13846
|
+
* dal consumer standard (`new Function('record', 'return (expr)')` in
|
|
13847
|
+
* WorkflowRuntimeMetadataService.evaluateLinkedNavigationGuards).
|
|
13848
|
+
*
|
|
13849
|
+
* Esempio: formula `return record.x + record.y`, case `resultExpression <= 1`
|
|
13850
|
+
* → guardia `((function(record){ return record.x + record.y })(record)) <= 1`.
|
|
13851
|
+
* Ramo `else`: congiunzione delle negazioni di tutte le condizioni.
|
|
13852
|
+
* Ritorna '' (nessuna guardia) se formula o condizione mancano.
|
|
13853
|
+
*/
|
|
13854
|
+
private buildSwitchBranchGuard;
|
|
13168
13855
|
/**
|
|
13169
13856
|
* Normalizza il payload `loadWorkflowGraph` (string/object, alias legacy/nuovi):
|
|
13170
13857
|
* produce nodi/connessioni tipizzati, metadata route per node id e nome workflow.
|
|
@@ -13217,6 +13904,14 @@ declare class NotificationBellComponent implements OnInit, OnDestroy {
|
|
|
13217
13904
|
private resolveLabels;
|
|
13218
13905
|
ngOnInit(): Promise<void>;
|
|
13219
13906
|
ngOnDestroy(): void;
|
|
13907
|
+
/**
|
|
13908
|
+
* True per le notifiche "interne" del chatbot RAG (`rag.message.ready` /
|
|
13909
|
+
* `rag.message.error`): NON sono voci utente del campanello, ma segnali che il
|
|
13910
|
+
* componente chatbot usa per refreshare il messaggio in chat. Il bell le esclude
|
|
13911
|
+
* da lista e badge; le `rag.engine.bootstrap.*` (started/ready/error) restano
|
|
13912
|
+
* perche' sono feedback utente reale (download modelli in corso/pronto).
|
|
13913
|
+
*/
|
|
13914
|
+
private isChatbotInternalNotification;
|
|
13220
13915
|
clearRead(): Promise<void>;
|
|
13221
13916
|
markAllRead(): Promise<void>;
|
|
13222
13917
|
/**
|
|
@@ -13466,6 +14161,25 @@ declare class WorkflowDesignerRouteComponent implements OnInit {
|
|
|
13466
14161
|
static ɵcmp: i0.ɵɵComponentDeclaration<WorkflowDesignerRouteComponent, "wuic-workflow-designer-route", never, {}, {}, never, never, true, never>;
|
|
13467
14162
|
}
|
|
13468
14163
|
|
|
14164
|
+
declare class Scene3dDesignerRouteComponent implements OnInit {
|
|
14165
|
+
private outlet?;
|
|
14166
|
+
/** Componente designer runtime caricato lazy, usato dal template. */
|
|
14167
|
+
loadedComponent: any;
|
|
14168
|
+
ngOnInit(): Promise<void>;
|
|
14169
|
+
/** Delega al designer runtime la conferma navigazione con pending changes. */
|
|
14170
|
+
confirmNavigationWithPendingChanges(): Promise<boolean>;
|
|
14171
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Scene3dDesignerRouteComponent, never>;
|
|
14172
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Scene3dDesignerRouteComponent, "wuic-scene3d-designer-route", never, {}, {}, never, never, true, never>;
|
|
14173
|
+
}
|
|
14174
|
+
|
|
14175
|
+
declare class Scene3dViewerRouteComponent implements OnInit {
|
|
14176
|
+
/** Componente viewer runtime caricato lazy, usato dal template. */
|
|
14177
|
+
loadedComponent: any;
|
|
14178
|
+
ngOnInit(): Promise<void>;
|
|
14179
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Scene3dViewerRouteComponent, never>;
|
|
14180
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<Scene3dViewerRouteComponent, "wuic-scene3d-viewer-route", never, {}, {}, never, never, true, never>;
|
|
14181
|
+
}
|
|
14182
|
+
|
|
13469
14183
|
/**
|
|
13470
14184
|
* Lazy wrapper di `<wuic-report-designer>`. Selector dedicato
|
|
13471
14185
|
* `<wuic-report-designer-lazy>` per essere mountabile da template Angular
|
|
@@ -13917,6 +14631,12 @@ declare class DataRepeaterComponent implements OnInit, OnChanges, OnDestroy {
|
|
|
13917
14631
|
|
|
13918
14632
|
declare const boundedRepeaterPendingChangesGuard: CanDeactivateFn<BoundedRepeaterComponent>;
|
|
13919
14633
|
|
|
14634
|
+
/**
|
|
14635
|
+
* Guard di navigazione per il Scene3D Designer — mirror di designerPendingChangesGuard.
|
|
14636
|
+
* Chiede conferma al designer runtime prima di lasciare la route con scena non salvata.
|
|
14637
|
+
*/
|
|
14638
|
+
declare const scene3dDesignerPendingChangesGuard: CanDeactivateFn<Scene3dDesignerRouteComponent>;
|
|
14639
|
+
|
|
13920
14640
|
declare const menuRouteAccessCanMatchGuard: CanMatchFn;
|
|
13921
14641
|
declare const menuRouteAccessCanActivateGuard: CanActivateFn;
|
|
13922
14642
|
|
|
@@ -14467,7 +15187,27 @@ type RagProposedActionKind = 'toolbar_action' | 'row_action' | 'table_style' | '
|
|
|
14467
15187
|
* Payload: `{kind, route, column_name, display_string, ui_column_type,
|
|
14468
15188
|
* is_computed, real_column_name?, rationale}`.
|
|
14469
15189
|
*/
|
|
14470
|
-
| 'metadata_column_create'
|
|
15190
|
+
| 'metadata_column_create'
|
|
15191
|
+
/**
|
|
15192
|
+
* Iniezione/edit di nodi nel canvas del workflow-designer.
|
|
15193
|
+
*
|
|
15194
|
+
* NB: kind CLIENT-ONLY — NON viene applicato dal backend
|
|
15195
|
+
* `RagController.ApplyAction` ma da un handler registrato dal
|
|
15196
|
+
* workflow-designer.component via `ChatbotHostRegistryService`
|
|
15197
|
+
* (`onChatbotProposedWorkflowAction`). Vedi
|
|
15198
|
+
* docs/pages/_internal/workflow-tool-catalog.md per il catalogo dei tipi
|
|
15199
|
+
* di nodo + config + constraint.
|
|
15200
|
+
*
|
|
15201
|
+
* Payload: `{ kind, action_type: 'inject'|'insert'|'set_property'|'remove'|
|
|
15202
|
+
* 'connect'|'disconnect', nodes?: [{local_id, type, name?, route?, action?,
|
|
15203
|
+
* actionTypeId?, actionScopeId?, x?, y?, conditionExpression?, switchConfig?,
|
|
15204
|
+
* timerConfig?, splitConfig?, actionCallback?}], connections?/disconnect?:
|
|
15205
|
+
* [{source, sourceOutput?, target, targetInput?}], node?/between? (insert),
|
|
15206
|
+
* target_name?/prop_name?/value? (set_property/remove), rationale }`.
|
|
15207
|
+
* Il chatbot popover bypassa `/api/Rag/ApplyAction` quando il registry ha un
|
|
15208
|
+
* handler per questo kind.
|
|
15209
|
+
*/
|
|
15210
|
+
| 'workflow_inject';
|
|
14471
15211
|
interface RagProposedAction {
|
|
14472
15212
|
kind: RagProposedActionKind | string;
|
|
14473
15213
|
route?: string;
|
|
@@ -15758,6 +16498,19 @@ declare const AUTH_REDIRECT_REASON_KEY = "wuic_auth_redirect_reason";
|
|
|
15758
16498
|
*/
|
|
15759
16499
|
declare const authExpiredInterceptor: HttpInterceptorFn;
|
|
15760
16500
|
|
|
16501
|
+
/**
|
|
16502
|
+
* Quando una richiesta HTTP imposta questo token nel suo `HttpContext`,
|
|
16503
|
+
* l'interceptor NON inoltra l'errore al `GlobalHandler` (niente dialog/toast
|
|
16504
|
+
* globale): l'errore viene comunque normalizzato e rilanciato, ma la sua
|
|
16505
|
+
* presentazione e' lasciata interamente al chiamante (es. il first-run wizard
|
|
16506
|
+
* che mostra l'errore SOLO inline nel form). Default: false (comportamento
|
|
16507
|
+
* standard col dialog globale).
|
|
16508
|
+
*
|
|
16509
|
+
* Uso:
|
|
16510
|
+
* import { HttpContext } from '@angular/common/http';
|
|
16511
|
+
* this.http.post(url, body, { context: new HttpContext().set(WUIC_SUPPRESS_GLOBAL_ERROR, true) });
|
|
16512
|
+
*/
|
|
16513
|
+
declare const WUIC_SUPPRESS_GLOBAL_ERROR: HttpContextToken<boolean>;
|
|
15761
16514
|
/** Functional interceptor — preferred form for Angular 15+ withInterceptors. */
|
|
15762
16515
|
declare const wuicErrorInterceptor: HttpInterceptorFn;
|
|
15763
16516
|
/** Class interceptor — kept for legacy NgModule consumers. */
|
|
@@ -15853,5 +16606,5 @@ declare const THEME_OPTIONS: ThemeOption[];
|
|
|
15853
16606
|
declare function getThemeOptions(): ThemeOption[];
|
|
15854
16607
|
declare function getThemePrimaryHex(value: string): string;
|
|
15855
16608
|
|
|
15856
|
-
export { AUTH_REDIRECT_REASON_KEY, AppSettingsEditorComponent, AuthSessionService, BooleanEditorComponent, BoundedRepeaterComponent, ButtonEditorComponent, CallbackPipe, CallbackPipe2, CarouselListComponent, CodeAreaEditorComponent, ColorEditorComponent, CrashReporterService, CustomAttributesService, 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, WuicAziendaSwitcherComponent, 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 };
|
|
15857
|
-
export type { AuthSessionState, Breadcrumb, CompileDynamicComponentOptions, CrashReportPayload, CrashReportingConfig, CustomAttributeDefinition, CustomAttributeResolved, CustomLookupOption, CustomValue, CvUpsertItem, DataSourceAfterSyncEvent, DataSourceBeforeSyncEvent, DataSourceSyncOperation, ErrorDelegate, ErrorDelegateContext, IDataBoundHostComponent, IFieldEditor, KanbanStatusColumn, LicenseStatusResponse, ListGridAfterRenderEvent, ListGridAfterRowRenderEvent, ListGridBeforeRowRenderEvent, MultiDatasourceMeta, NotificationItem, NotifyOptions, RagApplyActionRequest, RagApplyActionResponse, RagAskAcceptedResponse, RagAskRequest, RagChatHistorySnapshot, RagChatMessageDto, RagChatMessageStatus, RagChatRequest, RagChatResponse, RagChatSessionDto, RagChatTurn, RagChatbotTurn, RagCompactRequest, RagCompactResponse, RagHealthResponse, RagProfile, RagProposedAction, RagProposedActionExtraField, RagProposedActionKind, RagQueryRequest, RagQueryResponse, RagRenameSessionRequest, RagRenameSessionResponse, RagSource, RagUpdateProposedActionRequest, RagUpdateProposedActionResponse, RealtimeProgressEvent, ThemeOption, ThemePresetName, ThemePrimaryName, WorkflowRuntimeLinkedActionRouteMetadataEntry, WorkflowRuntimePreviousRouteNodeEntry, WorkflowRuntimeRouteMetadataEntry, WorkflowRuntimeRouteNodePayloadEntry };
|
|
16609
|
+
export { AUTH_REDIRECT_REASON_KEY, AppSettingsEditorComponent, AuthSessionService, BooleanEditorComponent, BoundedRepeaterComponent, ButtonEditorComponent, CallbackPipe, CallbackPipe2, CarouselListComponent, CodeAreaEditorComponent, ColorEditorComponent, CrashReporterService, CustomAttributesService, 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, PointFilterComponent, PropertyArrayEditorComponent, PropertyObjectEditorComponent, Scene3dDesignerRouteComponent, Scene3dViewerRouteComponent, THEME_OPTIONS, TextAreaEditorComponent, TextEditorComponent, TranslationManagerService, TreeListComponent, TreeViewSelectorComponent, UploadDialogComponent, UploadEditorComponent, UserInfoService, ValidationRule, ValueChangedPayload, VisibleFieldListPipe, WUIC_SUPPRESS_GLOBAL_ERROR, WidgetDefinition, WorkflowDesignerRouteComponent, WorkflowRunnerComponent, WorkflowRuntimeMetadataService, WtoolboxService, WuicAziendaSwitcherComponent, 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, scene3dDesignerPendingChangesGuard, wuicErrorInterceptor };
|
|
16610
|
+
export type { AuthSessionState, Breadcrumb, CompileDynamicComponentOptions, CrashReportPayload, CrashReportingConfig, CustomAttributeDefinition, CustomAttributeResolved, CustomLookupOption, CustomValue, CvUpsertItem, DataSourceAfterSyncEvent, DataSourceBeforeSyncEvent, DataSourceSyncOperation, ErrorDelegate, ErrorDelegateContext, IDataBoundHostComponent, IFieldEditor, KanbanStatusColumn, LicenseStatusResponse, ListGridAfterRenderEvent, ListGridAfterRowRenderEvent, ListGridBeforeRowRenderEvent, MultiDatasourceMeta, NotificationItem, NotifyOptions, RagApplyActionRequest, RagApplyActionResponse, RagAskAcceptedResponse, RagAskRequest, RagChatHistorySnapshot, RagChatMessageDto, RagChatMessageStatus, RagChatRequest, RagChatResponse, RagChatSessionDto, RagChatTurn, RagChatbotTurn, RagCompactRequest, RagCompactResponse, RagHealthResponse, RagProfile, RagProposedAction, RagProposedActionExtraField, RagProposedActionKind, RagQueryRequest, RagQueryResponse, RagRenameSessionRequest, RagRenameSessionResponse, RagSource, RagUpdateProposedActionRequest, RagUpdateProposedActionResponse, RealtimeProgressEvent, ThemeOption, ThemePresetName, ThemePrimaryName, WorkflowRuntimeInternalActionEntry, WorkflowRuntimeLinkedActionRouteMetadataEntry, WorkflowRuntimePreviousRouteNodeEntry, WorkflowRuntimeRouteMetadataEntry, WorkflowRuntimeRouteNodePayloadEntry };
|