wuic-framework-lib 1.7.7 → 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.
Files changed (21) hide show
  1. package/fesm2022/{wuic-framework-lib-chart-list.component-KW1ENbNz.mjs → wuic-framework-lib-chart-list.component-Bz93lddX.mjs} +2 -2
  2. package/fesm2022/{wuic-framework-lib-code-editor.component-DB-794Vs.mjs → wuic-framework-lib-code-editor.component-CerH_Ptt.mjs} +2 -2
  3. package/fesm2022/{wuic-framework-lib-designer.component-D0b8yopf.mjs → wuic-framework-lib-designer.component-D-TDt9Yp.mjs} +2 -2
  4. package/fesm2022/{wuic-framework-lib-first-run-wizard.component-CAvnMJlk.mjs → wuic-framework-lib-first-run-wizard.component-DTd6aeZQ.mjs} +2 -2
  5. package/fesm2022/{wuic-framework-lib-framework-docs.component-Bi5Pm3vl.mjs → wuic-framework-lib-framework-docs.component-B2AdE4N0.mjs} +194 -104
  6. package/fesm2022/{wuic-framework-lib-pivot-builder.component-LPpFvPZE.mjs → wuic-framework-lib-pivot-builder.component-B0Y_UHcw.mjs} +16 -16
  7. package/fesm2022/{wuic-framework-lib-prompt-dialog-fallback-host.component-DQZcIZ1-.mjs → wuic-framework-lib-prompt-dialog-fallback-host.component-RLZTS8VK.mjs} +2 -2
  8. package/fesm2022/{wuic-framework-lib-report-designer.component-wlE9GKxY.mjs → wuic-framework-lib-report-designer.component-DMHg11S1.mjs} +2 -2
  9. package/fesm2022/{wuic-framework-lib-report-scaffold-dialog.component-CZGb5LoN.mjs → wuic-framework-lib-report-scaffold-dialog.component-Dz-0CKFf.mjs} +2 -2
  10. package/fesm2022/{wuic-framework-lib-report-viewer.component-Dy_YSPNc.mjs → wuic-framework-lib-report-viewer.component-DcjeKFl3.mjs} +2 -2
  11. package/fesm2022/{wuic-framework-lib-scene3d-designer.component-Bn6YNlOi.mjs → wuic-framework-lib-scene3d-designer.component-DkFSmqjd.mjs} +5 -5
  12. package/fesm2022/{wuic-framework-lib-scene3d-light-baker-gpu-B0nVJ53g.mjs → wuic-framework-lib-scene3d-light-baker-gpu-CDOGvkje.mjs} +2 -2
  13. package/fesm2022/{wuic-framework-lib-scene3d-viewer.component-BFQClLb6.mjs → wuic-framework-lib-scene3d-viewer.component-CXzEo7SW.mjs} +2 -2
  14. package/fesm2022/{wuic-framework-lib-scheduler-list.component-BcgxT67p.mjs → wuic-framework-lib-scheduler-list.component-BWwp_Y2n.mjs} +2 -2
  15. package/fesm2022/{wuic-framework-lib-spreadsheet-list-sf.component-CxLrlB-k.mjs → wuic-framework-lib-spreadsheet-list-sf.component-C7XVqrk-.mjs} +2 -2
  16. package/fesm2022/{wuic-framework-lib-timeline-list.component-CugxjeYa.mjs → wuic-framework-lib-timeline-list.component-BPCARDTv.mjs} +4 -4
  17. package/fesm2022/{wuic-framework-lib-workflow-designer.component-CrUsFuXR.mjs → wuic-framework-lib-workflow-designer.component-BOTf2H42.mjs} +14 -14
  18. package/fesm2022/{wuic-framework-lib-wuic-framework-lib-DfDsWPDO.mjs → wuic-framework-lib-wuic-framework-lib-CNl2-wAT.mjs} +11422 -11134
  19. package/fesm2022/wuic-framework-lib.mjs +1 -1
  20. package/package.json +1 -1
  21. package/types/wuic-framework-lib.d.ts +143 -3
@@ -1,2 +1,2 @@
1
- export { w as AUTH_REDIRECT_REASON_KEY, x as AppHeaderComponent, y as AppHeaderConfigService, z as AppSettingsEditorComponent, B as AuthSessionService, E as BooleanEditorComponent, H as BoundedRepeaterComponent, J as ButtonEditorComponent, K as CUSTOM_THEMES_STORAGE_KEY, N as CallbackPipe, O as CallbackPipe2, Q as CarouselListComponent, R as CodeAreaEditorComponent, S as ColorEditorComponent, V as CrashReporterService, X as CustomAttributesService, Y as CustomException, Z as DEFAULT_FONT_STACK, _ as DEFAULT_THEME_STORAGE_KEY, $ as DEFAULT_THEME_VALUE, a0 as DataActionButtonComponent, a1 as DataProviderOdataService, c as DataRepeaterComponent, b as DataSourceComponent, a2 as DateEditorComponent, a3 as DesignerRouteComponent, a4 as DictionaryEditorComponent, a as DynamicCompilerService, a5 as DynamicRowTemplateComponent, k as FieldEditorComponent, F as FilterBarComponent, q as FilterInfo, a6 as FormatGridViewValuePipe, a7 as GetSrcUploadPreviewPipe, G as GlobalHandler, a8 as HtmlEditorComponent, a9 as ImageWrapperComponent, I as ImportExportButtonComponent, aa as IsSelectedRowPipe, ab as KanbanListComponent, ac as KanbanOptions, ad as KanbanStatusColumnItem, ae as LazyChartListComponent, af as LazyCodeEditorComponent, ag as LazyDataActionButtonComponent, ah as LazyDataSourceComponent, ai as LazyFieldEditorComponent, aj as LazyFirstRunWizardComponent, ak as LazyImageWrapperComponent, al as LazyKanbanListComponent, am as LazyMetaMenuComponent, an as LazyPivotBuilderComponent, ao as LazyReportDesignerComponent, ap as LazyReportViewerComponent, aq as LazySchedulerListComponent, ar as LazySpreadsheetListSfComponent, as as LazyTimelineListComponent, r as LicenseFeatureService, at as ListGridComponent, au as LookupEditorComponent, av as MapListComponent, o as MetaInfo, aw as MetaMenuComponent, i as MetadataEditorService, M as MetadataProviderService, g as MetadatiColonna, ax as MetadatiTabella, ay as NotificationBellComponent, az as NotificationRealtimeService, aA as NumberEditorComponent, aB as PALETTE_STOPS, aC as PREVIEW_RESTORE_KEY, aD as PRIMARY_PALETTES, P as PagerComponent, f as ParametricDialogComponent, aE as PerformanceInspectorComponent, aF as PointFilterComponent, aG as PropertyArrayEditorComponent, aH as PropertyObjectEditorComponent, aI as RAG_DESTRUCTIVE_KINDS, aJ as RouteMetricsDashboardComponent, aK as Scene3dDesignerRouteComponent, aL as Scene3dViewerRouteComponent, aM as THEME_MODE_STORAGE_KEY, aN as THEME_OPTIONS, aO as THEME_STORAGE_KEY, aP as TextAreaEditorComponent, aQ as TextEditorComponent, aR as ThemeBuilderComponent, aS as ThemeCatalogService, aT as ThemePreviewPanelComponent, aU as ThemeRuntimeService, aV as ThemeSelectorComponent, u as TimelineOptions, T as TranslationManagerService, aW as TreeListComponent, aX as TreeViewSelectorComponent, aY as UploadDialogComponent, aZ as UploadEditorComponent, U as UserInfoService, a_ as UserLanguageService, a$ as UserMenuComponent, b0 as ValidationRule, b1 as ValueChangedPayload, b2 as VisibleFieldListPipe, b3 as WUIC_FONT_CATALOG, p as WUIC_SUPPRESS_GLOBAL_ERROR, b4 as WidgetDefinition, b5 as WorkflowDesignerRouteComponent, b6 as WorkflowRunnerComponent, j as WorkflowRuntimeMetadataService, W as WtoolboxService, b7 as WuicAziendaSwitcherComponent, b8 as WuicErrorDialogComponent, b9 as WuicErrorInterceptor, ba as WuicFeatureDirective, bb as WuicFrozenColumnDirective, bc as WuicRagChatbotComponent, bd as WuicRagChatbotFabComponent, be as WuicRagService, bf as WuicRowTogglerDirective, bg as _PRIMENG_TABLE_DIRECTIVES_NAMES, bh as authExpiredInterceptor, bi as bestContrastColor, bj as boundedRepeaterPendingChangesGuard, bk as buildCustomPreset, bl as buildThemeValue, d as clampAlpha, bm as computeDataQualitySummary, bn as contrastRatio, bo as createDraftTheme, bp as featureRouteCanActivateGuard, bq as featureRouteCanMatchGuard, br as generatePrimaryPalette, bs as generateSurfacePalette, bt as getQualityInspectorOptions, v as getThemeOptions, bu as getThemePrimaryHex, bv as hexToOklch, bw as hexToRgb, bx as hsbaToRgbaString, by as inferTemplateFieldFromBaseClass, bz as isCustomThemeValue, bA as isDestructiveRagAction, bB as isRoutePersistenceEnabled, bC as loadBooleanEditorComponent, bD as loadButtonEditorComponent, bE as loadCodeAreaEditorComponent, bF as loadColorEditorComponent, bG as loadDateEditorComponent, bH as loadDictionaryEditorComponent, bI as loadHtmlEditorComponent, bJ as loadLookupEditorComponent, bK as loadNumberEditorComponent, bL as loadPropertyArrayEditorComponent, bM as loadPropertyObjectEditorComponent, bN as loadTextAreaEditorComponent, bO as loadTextEditorComponent, bP as loadTreeViewSelectorComponent, bQ as loadUploadEditorComponent, bR as menuRouteAccessCanActivateGuard, bS as menuRouteAccessCanMatchGuard, bT as nearestPrimaryName, bU as normalizeHex, bV as oklchToHex, bW as oklchToRgb, bX as resolveBackgroundCss, bY as resolveFontStack, bZ as resolveGridStrengths, b_ as resolveThemePreset, b$ as resolveThemePresetForOption, c0 as rgbToHex, c1 as rgbToOklch, c2 as rgbaToHsbaModel, c3 as routeMetricsClient, c4 as routes, c5 as scene3dDesignerPendingChangesGuard, c6 as themeBuilderPendingChangesGuard, t as toHsbaModel, e as toPersistedColor, c7 as wcagLevel, c8 as wuicErrorInterceptor } from './wuic-framework-lib-wuic-framework-lib-DfDsWPDO.mjs';
1
+ export { w as AUTH_REDIRECT_REASON_KEY, x as AppHeaderComponent, y as AppHeaderConfigService, z as AppSettingsEditorComponent, B as AuthSessionService, E as BooleanEditorComponent, H as BoundedRepeaterComponent, J as ButtonEditorComponent, K as CUSTOM_THEMES_STORAGE_KEY, N as CallbackPipe, O as CallbackPipe2, Q as CarouselListComponent, R as CodeAreaEditorComponent, S as ColorEditorComponent, V as CrashReporterService, X as CustomAttributesService, Y as CustomException, Z as DEFAULT_FONT_STACK, _ as DEFAULT_THEME_STORAGE_KEY, $ as DEFAULT_THEME_VALUE, a0 as DataActionButtonComponent, a1 as DataProviderOdataService, c as DataRepeaterComponent, b as DataSourceComponent, a2 as DateEditorComponent, a3 as DesignerRouteComponent, a4 as DictionaryEditorComponent, a as DynamicCompilerService, a5 as DynamicRowTemplateComponent, k as FieldEditorComponent, F as FilterBarComponent, q as FilterInfo, a6 as FormatGridViewValuePipe, a7 as GetSrcUploadPreviewPipe, G as GlobalHandler, a8 as HtmlEditorComponent, a9 as ImageWrapperComponent, I as ImportExportButtonComponent, aa as IsSelectedRowPipe, ab as KanbanListComponent, ac as KanbanOptions, ad as KanbanStatusColumnItem, ae as LazyChartListComponent, af as LazyCodeEditorComponent, ag as LazyDataActionButtonComponent, ah as LazyDataSourceComponent, ai as LazyFieldEditorComponent, aj as LazyFirstRunWizardComponent, ak as LazyImageWrapperComponent, al as LazyKanbanListComponent, am as LazyMetaMenuComponent, an as LazyPivotBuilderComponent, ao as LazyReportDesignerComponent, ap as LazyReportViewerComponent, aq as LazySchedulerListComponent, ar as LazySpreadsheetListSfComponent, as as LazyTimelineListComponent, r as LicenseFeatureService, at as ListGridComponent, au as LookupEditorComponent, av as MapListComponent, o as MetaInfo, aw as MetaMenuComponent, i as MetadataEditorService, M as MetadataProviderService, g as MetadatiColonna, ax as MetadatiTabella, ay as NotificationBellComponent, az as NotificationRealtimeService, aA as NumberEditorComponent, aB as PALETTE_STOPS, aC as PREVIEW_RESTORE_KEY, aD as PRIMARY_PALETTES, P as PagerComponent, f as ParametricDialogComponent, aE as PerformanceInspectorComponent, aF as PointFilterComponent, aG as PropertyArrayEditorComponent, aH as PropertyObjectEditorComponent, aI as RAG_DESTRUCTIVE_KINDS, aJ as RouteMetricsDashboardComponent, aK as Scene3dDesignerRouteComponent, aL as Scene3dViewerRouteComponent, aM as THEME_MODE_STORAGE_KEY, aN as THEME_OPTIONS, aO as THEME_STORAGE_KEY, aP as TextAreaEditorComponent, aQ as TextEditorComponent, aR as ThemeBuilderComponent, aS as ThemeCatalogService, aT as ThemePreviewPanelComponent, aU as ThemeRuntimeService, aV as ThemeSelectorComponent, u as TimelineOptions, T as TranslationManagerService, aW as TreeListComponent, aX as TreeViewSelectorComponent, aY as UploadDialogComponent, aZ as UploadEditorComponent, U as UserInfoService, a_ as UserLanguageService, a$ as UserMenuComponent, b0 as ValidationRule, b1 as ValueChangedPayload, b2 as VisibleFieldListPipe, b3 as WUIC_FONT_CATALOG, p as WUIC_SUPPRESS_GLOBAL_ERROR, b4 as WidgetDefinition, b5 as WorkflowDesignerRouteComponent, b6 as WorkflowRunnerComponent, j as WorkflowRuntimeMetadataService, W as WtoolboxService, b7 as WuicAziendaSwitcherComponent, b8 as WuicErrorDialogComponent, b9 as WuicErrorInterceptor, ba as WuicFeatureDirective, bb as WuicFrozenColumnDirective, bc as WuicRagChatbotComponent, bd as WuicRagChatbotFabComponent, be as WuicRagService, bf as WuicRowTogglerDirective, bg as _PRIMENG_TABLE_DIRECTIVES_NAMES, bh as authExpiredInterceptor, bi as bestContrastColor, bj as boundedRepeaterPendingChangesGuard, bk as buildCustomPreset, bl as buildThemeValue, d as clampAlpha, bm as computeDataQualitySummary, bn as contrastRatio, bo as createDraftTheme, bp as featureRouteCanActivateGuard, bq as featureRouteCanMatchGuard, br as generatePrimaryPalette, bs as generateSurfacePalette, bt as getQualityInspectorOptions, v as getThemeOptions, bu as getThemePrimaryHex, bv as hexToOklch, bw as hexToRgb, bx as hsbaToRgbaString, by as inferTemplateFieldFromBaseClass, bz as isCustomThemeValue, bA as isDestructiveRagAction, bB as isRoutePersistenceEnabled, bC as loadBooleanEditorComponent, bD as loadButtonEditorComponent, bE as loadCodeAreaEditorComponent, bF as loadColorEditorComponent, bG as loadDateEditorComponent, bH as loadDictionaryEditorComponent, bI as loadHtmlEditorComponent, bJ as loadLookupEditorComponent, bK as loadNumberEditorComponent, bL as loadPropertyArrayEditorComponent, bM as loadPropertyObjectEditorComponent, bN as loadTextAreaEditorComponent, bO as loadTextEditorComponent, bP as loadTreeViewSelectorComponent, bQ as loadUploadEditorComponent, bR as menuRouteAccessCanActivateGuard, bS as menuRouteAccessCanMatchGuard, bT as nearestPrimaryName, bU as normalizeHex, bV as oklchToHex, bW as oklchToRgb, bX as resolveBackgroundCss, bY as resolveFontStack, bZ as resolveGridStrengths, b_ as resolveThemePreset, b$ as resolveThemePresetForOption, c0 as rgbToHex, c1 as rgbToOklch, c2 as rgbaToHsbaModel, c3 as routeMetricsClient, c4 as routes, c5 as scene3dDesignerPendingChangesGuard, c6 as themeBuilderPendingChangesGuard, t as toHsbaModel, e as toPersistedColor, c7 as wcagLevel, c8 as wuicErrorInterceptor } from './wuic-framework-lib-wuic-framework-lib-CNl2-wAT.mjs';
2
2
  //# sourceMappingURL=wuic-framework-lib.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wuic-framework-lib",
3
- "version": "1.7.7",
3
+ "version": "1.7.9",
4
4
  "description": "Wuic Angular Framework Library",
5
5
  "author": "Wuic",
6
6
  "license": "MIT",
@@ -1679,6 +1679,14 @@ declare class DataSourceComponent implements OnInit, OnDestroy {
1679
1679
  * Contatore richieste in-flight per gestire il busy in modo concorrente-safe.
1680
1680
  */
1681
1681
  private loadingInFlight;
1682
+ /**
1683
+ * Il subject di "occupato" su cui questa istanza ha aperto le operazioni in volo.
1684
+ *
1685
+ * Non basta rileggere `this.loading` alla chiusura: e' un `@Input()` e puo' cambiare
1686
+ * mentre una fetch e' in corso. Chiudendo sul subject nuovo, quello vecchio resterebbe
1687
+ * bloccato su `true` per sempre.
1688
+ */
1689
+ private subjectOccupatoInUso?;
1682
1690
  /**
1683
1691
  * Flag interno per garantire emissione "after first load" una sola volta per ciclo init.
1684
1692
  */
@@ -1699,14 +1707,26 @@ declare class DataSourceComponent implements OnInit, OnDestroy {
1699
1707
  */
1700
1708
  private init;
1701
1709
  /**
1702
- * Incrementa il contatore loading e notifica busy=true solo sulla transizione 0->1.
1710
+ * Apre un'operazione sullo stato "occupato". Il segnale passa a `true` solo se e' la prima
1711
+ * in volo su quel subject: il conteggio vive in `WtoolboxService`, non qui, perche' `loading`
1712
+ * e' spesso condiviso con gli altri componenti della pagina.
1703
1713
  */
1704
1714
  private beginLoading;
1705
1715
  /**
1706
- * Decrementa il contatore loading e notifica busy=false solo sulla transizione 1->0.
1716
+ * Chiude un'operazione: il segnale torna a `false` solo quando finisce l'ULTIMA in volo su
1717
+ * quel subject, non la prima. Una chiusura senza apertura viene ignorata, altrimenti
1718
+ * scalerebbe le operazioni di qualcun altro.
1707
1719
  */
1708
1720
  private endLoading;
1709
1721
  /**
1722
+ * Rilascia le operazioni che questa istanza ha lasciato aperte.
1723
+ *
1724
+ * Serve alla distruzione del componente: con un contatore condiviso, un datasource che
1725
+ * sparisce mentre una fetch e' in volo lascerebbe lo stato "occupato" acceso per tutta
1726
+ * l'applicazione, e nessuno lo spegnerebbe piu'.
1727
+ */
1728
+ private rilasciaOperazioniInVolo;
1729
+ /**
1710
1730
  * Ripristina forzatamente lo stato loading in caso di recovery da errori inattesi.
1711
1731
  */
1712
1732
  resetLoadingState(): void;
@@ -4802,6 +4822,57 @@ declare class WtoolboxService {
4802
4822
  private static injectorRef;
4803
4823
  private static readonly fallbackRouter;
4804
4824
  static readonly isBusy: BehaviorSubject<boolean>;
4825
+ /**
4826
+ * Quante operazioni sono in volo su OGNI subject di "occupato".
4827
+ *
4828
+ * Perche' il conteggio sta qui e non nei componenti: `isBusy` e' uno stato condiviso —
4829
+ * list-grid e bounded-repeater lo passano come `loading` ai datasource che creano, quindi
4830
+ * su una singola pagina ci scrivono piu' istanze insieme. Finche' il contatore stava dentro
4831
+ * il singolo datasource, la prima operazione che finiva portava il PROPRIO contatore a zero
4832
+ * ed emetteva `false` sul subject di tutti: aprendo una route lenta con colonne lookup, le
4833
+ * dodici letture di metadata rispondevano in mezzo secondo e spegnevano lo spinner della
4834
+ * griglia che stava ancora aspettando i suoi dati (misurato: maschera via a 1056 ms su una
4835
+ * query che rispondeva a 3822 ms). Un contatore per istanza su uno stato globale funziona
4836
+ * finche' c'e' una cosa sola in volo; alla seconda, chi finisce per primo spegne la luce
4837
+ * a tutti.
4838
+ *
4839
+ * WeakMap: la chiave e' il subject stesso, cosi' un subject locale che nessuno usa piu'
4840
+ * non trattiene una voce.
4841
+ */
4842
+ private static readonly operazioniInVoloPerSubject;
4843
+ /**
4844
+ * Segnala l'inizio di un'operazione su un subject di "occupato".
4845
+ *
4846
+ * @param subject Il subject da portare a `true`. Ignorato se assente.
4847
+ */
4848
+ static beginBusy(subject: BehaviorSubject<boolean>): void;
4849
+ /**
4850
+ * Segnala la fine di un'operazione: il subject torna a `false` solo quando finisce
4851
+ * l'ULTIMA operazione in volo, non la prima.
4852
+ *
4853
+ * @param subject Lo stesso subject passato a `beginBusy`. Ignorato se assente.
4854
+ */
4855
+ static endBusy(subject: BehaviorSubject<boolean>): void;
4856
+ /**
4857
+ * Quante operazioni risultano in volo su quel subject. Serve a chi deve rilasciare le
4858
+ * proprie (es. un componente che viene distrutto mentre una fetch e' ancora aperta).
4859
+ *
4860
+ * @param subject Il subject da interrogare.
4861
+ * @returns Il numero di operazioni aperte, 0 se il subject non e' mai stato usato.
4862
+ */
4863
+ static busyCount(subject: BehaviorSubject<boolean>): number;
4864
+ /**
4865
+ * Azzera lo stato "occupato" di quel subject, qualunque cosa risulti in volo.
4866
+ *
4867
+ * E' il ripiego per i percorsi di RECUPERO — il gestore globale degli errori, un annullo
4868
+ * dell'utente — dove non si sa quante operazioni siano rimaste aperte e lasciare la
4869
+ * clessidra accesa bloccherebbe l'interfaccia. Va usato solo li': in un flusso normale
4870
+ * spegne anche le operazioni degli altri, ed e' esattamente il difetto che
4871
+ * `beginBusy`/`endBusy` esistono per evitare.
4872
+ *
4873
+ * @param subject Il subject da riportare a `false`.
4874
+ */
4875
+ static resetBusy(subject: BehaviorSubject<boolean>): void;
4805
4876
  static readonly menuUpdated: BehaviorSubject<boolean>;
4806
4877
  /**
4807
4878
  * Generic wrapper for invoking user-supplied callbacks compiled from
@@ -7655,6 +7726,49 @@ declare class ListGridComponent implements AfterViewInit, OnInit, OnDestroy, IDa
7655
7726
  * Gestisce la logica di `onRowExpand` con il flusso specifico definito dalla sua implementazione.
7656
7727
  * @param event Evento UI/payload evento che innesca la logica del metodo.
7657
7728
  */
7729
+ /** Riga e istante dell'ultimo click utile, per riconoscere la coppia ravvicinata. */
7730
+ private ultimoClicSuRiga;
7731
+ /** Istante dell'ultima apertura, per non aprire due volte lo stesso doppio gesto. */
7732
+ private ultimaAperturaDaDoppioGesto;
7733
+ /** Millisecondi entro cui due click sulla stessa riga valgono come doppio. */
7734
+ private static readonly MS_DOPPIO_GESTO;
7735
+ /**
7736
+ * Doppio clic sulla riga: apre la modifica, esattamente come la matita.
7737
+ *
7738
+ * @param event Il doppio clic arrivato dalla tabella.
7739
+ */
7740
+ onRowDoubleClick(event: MouseEvent): void;
7741
+ /**
7742
+ * Secondo click ravvicinato sulla stessa riga: vale come doppio clic.
7743
+ *
7744
+ * Perche' non basta `dblclick`: quando il gesto nasce da un tocco, il browser non lo
7745
+ * consegna sempre — due tap restano due `click`. Verificato sulla stessa pagina: con il
7746
+ * mouse, a finestra stretta e layout a card, la modifica si apre; con l'input touch della
7747
+ * device toolbar di Chrome, no. Riconoscere la coppia di click copre entrambi i casi senza
7748
+ * dipendere da come il browser classifica il gesto.
7749
+ *
7750
+ * @param event Il click arrivato dalla tabella.
7751
+ */
7752
+ onRowClick(event: MouseEvent): void;
7753
+ /**
7754
+ * La riga colpita dall'evento, solo se il gesto e' davvero rivolto alla riga.
7755
+ *
7756
+ * @param event L'evento di puntamento ricevuto dalla tabella.
7757
+ * @returns Il `<tr>` colpito, oppure `null` se il gesto era su un controllo o fuori da una riga.
7758
+ */
7759
+ private rigaModificabileDellEvento;
7760
+ /**
7761
+ * Apre la modifica della riga colpita delegando alla voce Modifica del suo componente azioni.
7762
+ *
7763
+ * Perche' delega invece di aprire la form da se': la matita non e' solo "apri la form".
7764
+ * `DataActionButtonComponent` decide se la voce Modifica esiste (`md_editable`) e se e'
7765
+ * abilitata valutando `md_conditional_update_rule` su QUELLA riga. Riscrivere qui
7766
+ * l'apertura vorrebbe dire duplicare quelle regole — e alla prima divergenza il doppio clic
7767
+ * lascerebbe modificare righe che la matita vieta.
7768
+ *
7769
+ * @param event Il gesto (doppio clic, o secondo click della coppia) che ha innescato l'apertura.
7770
+ */
7771
+ private apriModificaDaGesto;
7658
7772
  onRowExpand(event: TableRowExpandEvent): void;
7659
7773
  /**
7660
7774
  * Gestisce la logica di `onRowCollapse` con il flusso specifico definito dalla sua implementazione.
@@ -11699,6 +11813,7 @@ declare class AppSettingsEditorComponent implements OnInit, OnDestroy {
11699
11813
  }
11700
11814
 
11701
11815
  declare class DataActionButtonComponent implements AfterViewInit, OnDestroy {
11816
+ readonly hostEl: ElementRef<HTMLElement>;
11702
11817
  private readonly trslSrv;
11703
11818
  private readonly cd;
11704
11819
  private readonly messageService;
@@ -11707,6 +11822,25 @@ declare class DataActionButtonComponent implements AfterViewInit, OnDestroy {
11707
11822
  private readonly http;
11708
11823
  private readonly metadataProvider;
11709
11824
  private static readonly ACTION_KEY_EDIT;
11825
+ /**
11826
+ * Registro elemento host -> componente azioni della riga.
11827
+ *
11828
+ * Perche' un registro e non una query di vista dalla list-grid: le righe della griglia
11829
+ * sono montate con `ngComponentOutlet`, e `@ViewChildren` non entra nella vista di un
11830
+ * componente creato dinamicamente — dalla list-grid la QueryList tornava sempre vuota e
11831
+ * il doppio clic sulla riga non trovava nulla a cui delegare. Qui il componente si
11832
+ * annuncia quando nasce e si cancella quando muore; la WeakMap non trattiene gli
11833
+ * elementi tolti dal DOM.
11834
+ */
11835
+ private static readonly componentiPerElemento;
11836
+ /**
11837
+ * Il componente azioni contenuto in quella riga, se c'e'.
11838
+ *
11839
+ * @param riga Il `<tr>` della griglia.
11840
+ * @returns Il componente azioni della riga, oppure `undefined` quando la riga non ne ha
11841
+ * uno (colonna azioni nascosta, riga di dettaglio, riga di gruppo).
11842
+ */
11843
+ static perRiga(riga: Element | null | undefined): DataActionButtonComponent | undefined;
11710
11844
  data: any;
11711
11845
  metaInfo: MetaInfo;
11712
11846
  datasource: BehaviorSubject<DataSourceComponent>;
@@ -11722,7 +11856,13 @@ declare class DataActionButtonComponent implements AfterViewInit, OnDestroy {
11722
11856
  inlineItems: any[];
11723
11857
  nonInlineEditingItems: MenuItem[];
11724
11858
  private translationsLoadedSub?;
11725
- constructor(trslSrv: TranslationManagerService, cd: ChangeDetectorRef, messageService: MessageService, confirmationService: ConfirmationService, router: Router, http: HttpClient, metadataProvider: MetadataProviderService);
11859
+ /**
11860
+ * L'elemento DOM di questo componente. Serve a chi deve risalire dalla riga della
11861
+ * griglia al suo componente azioni — per esempio il doppio clic sulla riga, che deve
11862
+ * fare esattamente quello che fa la matita (compresi i permessi condizionali) e quindi
11863
+ * delega a questo componente invece di reimplementare la modifica.
11864
+ */
11865
+ constructor(hostEl: ElementRef<HTMLElement>, trslSrv: TranslationManagerService, cd: ChangeDetectorRef, messageService: MessageService, confirmationService: ConfirmationService, router: Router, http: HttpClient, metadataProvider: MetadataProviderService);
11726
11866
  /**
11727
11867
  * Hook di debug locale per ispezionare l'evento click sul pulsante azioni.
11728
11868
  * @param $event Evento UI ricevuto dal template.