@gnggln/ng-ui-system 1.0.0-alpha.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.
Files changed (141) hide show
  1. package/esm2022/gnggln-ng-ui-system.mjs +5 -0
  2. package/esm2022/lib/components/accordion/accordion.component.mjs +353 -0
  3. package/esm2022/lib/components/accordion/accordion.types.mjs +6 -0
  4. package/esm2022/lib/components/accordion/index.mjs +2 -0
  5. package/esm2022/lib/components/base-layout/base-layout.component.mjs +218 -0
  6. package/esm2022/lib/components/base-layout/base-layout.types.mjs +6 -0
  7. package/esm2022/lib/components/base-layout/index.mjs +14 -0
  8. package/esm2022/lib/components/button/button-area.component.mjs +196 -0
  9. package/esm2022/lib/components/button/button.component.mjs +164 -0
  10. package/esm2022/lib/components/button/button.types.mjs +6 -0
  11. package/esm2022/lib/components/button/index.mjs +16 -0
  12. package/esm2022/lib/components/crud-table/crud-table.component.mjs +789 -0
  13. package/esm2022/lib/components/crud-table/crud-table.types.mjs +6 -0
  14. package/esm2022/lib/components/crud-table/index.mjs +16 -0
  15. package/esm2022/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  16. package/esm2022/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  17. package/esm2022/lib/components/form-builder/form-builder.component.mjs +824 -0
  18. package/esm2022/lib/components/form-builder/form-wizard.component.mjs +510 -0
  19. package/esm2022/lib/components/form-builder/index.mjs +19 -0
  20. package/esm2022/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  21. package/esm2022/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  22. package/esm2022/lib/components/form-builder/services/location.service.mjs +140 -0
  23. package/esm2022/lib/components/form-builder/services/wizard-sync.service.mjs +84 -0
  24. package/esm2022/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +161 -0
  25. package/esm2022/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  26. package/esm2022/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  27. package/esm2022/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  28. package/esm2022/lib/components/form-builder/types/condition.types.mjs +6 -0
  29. package/esm2022/lib/components/form-builder/types/field.types.mjs +6 -0
  30. package/esm2022/lib/components/form-builder/types/index.mjs +2 -0
  31. package/esm2022/lib/components/form-builder/types/schema.types.mjs +6 -0
  32. package/esm2022/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  33. package/esm2022/lib/components/form-builder/types/validation.types.mjs +6 -0
  34. package/esm2022/lib/components/form-builder-editor/form-builder-editor.component.mjs +730 -0
  35. package/esm2022/lib/components/form-builder-editor/form-builder-editor.service.mjs +56 -0
  36. package/esm2022/lib/components/form-builder-editor/index.mjs +21 -0
  37. package/esm2022/lib/components/form-builder-editor/services/editor-persistence.service.mjs +190 -0
  38. package/esm2022/lib/components/form-builder-editor/services/editor-state.service.mjs +324 -0
  39. package/esm2022/lib/components/form-builder-editor/services/field-factory.service.mjs +188 -0
  40. package/esm2022/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.mjs +667 -0
  41. package/esm2022/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.mjs +317 -0
  42. package/esm2022/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.mjs +611 -0
  43. package/esm2022/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.mjs +267 -0
  44. package/esm2022/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.mjs +276 -0
  45. package/esm2022/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.mjs +323 -0
  46. package/esm2022/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +238 -0
  47. package/esm2022/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +472 -0
  48. package/esm2022/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.mjs +473 -0
  49. package/esm2022/lib/components/form-builder-editor/types/editor.types.mjs +6 -0
  50. package/esm2022/lib/components/layout-builder/index.mjs +18 -0
  51. package/esm2022/lib/components/layout-builder/layout-builder.component.mjs +1730 -0
  52. package/esm2022/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  53. package/esm2022/lib/components/layout-builder/layout.service.mjs +239 -0
  54. package/esm2022/lib/components/modal/confirm-dialog.component.mjs +151 -0
  55. package/esm2022/lib/components/modal/index.mjs +4 -0
  56. package/esm2022/lib/components/modal/modal.component.mjs +139 -0
  57. package/esm2022/lib/components/modal/modal.service.mjs +194 -0
  58. package/esm2022/lib/components/modal/modal.types.mjs +6 -0
  59. package/esm2022/lib/components/page-header/breadcrumb.service.mjs +242 -0
  60. package/esm2022/lib/components/page-header/index.mjs +20 -0
  61. package/esm2022/lib/components/page-header/page-header.component.mjs +243 -0
  62. package/esm2022/lib/components/page-header/page-header.types.mjs +21 -0
  63. package/esm2022/lib/components/table/index.mjs +2 -0
  64. package/esm2022/lib/components/table/paginated-table.component.mjs +407 -0
  65. package/esm2022/lib/components/table/table.types.mjs +6 -0
  66. package/esm2022/lib/core/types/index.mjs +6 -0
  67. package/esm2022/lib/core/utils/index.mjs +53 -0
  68. package/esm2022/lib/sources/location-data.opt.json +8942 -0
  69. package/esm2022/lib/sources/nazioni.opt.json +215 -0
  70. package/esm2022/public-api.mjs +34 -0
  71. package/fesm2022/gnggln-ng-ui-system.mjs +55752 -0
  72. package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -0
  73. package/index.d.ts +5 -0
  74. package/lib/components/accordion/accordion.component.d.ts +118 -0
  75. package/lib/components/accordion/accordion.types.d.ts +62 -0
  76. package/lib/components/accordion/index.d.ts +2 -0
  77. package/lib/components/base-layout/base-layout.component.d.ts +83 -0
  78. package/lib/components/base-layout/base-layout.types.d.ts +26 -0
  79. package/lib/components/base-layout/index.d.ts +13 -0
  80. package/lib/components/button/button-area.component.d.ts +88 -0
  81. package/lib/components/button/button.component.d.ts +55 -0
  82. package/lib/components/button/button.types.d.ts +70 -0
  83. package/lib/components/button/index.d.ts +15 -0
  84. package/lib/components/crud-table/crud-table.component.d.ts +143 -0
  85. package/lib/components/crud-table/crud-table.types.d.ts +207 -0
  86. package/lib/components/crud-table/index.d.ts +15 -0
  87. package/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  88. package/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  89. package/lib/components/form-builder/form-builder.component.d.ts +183 -0
  90. package/lib/components/form-builder/form-wizard.component.d.ts +87 -0
  91. package/lib/components/form-builder/index.d.ts +13 -0
  92. package/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  93. package/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  94. package/lib/components/form-builder/services/location.service.d.ts +83 -0
  95. package/lib/components/form-builder/services/wizard-sync.service.d.ts +63 -0
  96. package/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +28 -0
  97. package/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  98. package/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  99. package/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  100. package/lib/components/form-builder/types/condition.types.d.ts +51 -0
  101. package/lib/components/form-builder/types/field.types.d.ts +288 -0
  102. package/lib/components/form-builder/types/index.d.ts +5 -0
  103. package/lib/components/form-builder/types/schema.types.d.ts +227 -0
  104. package/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  105. package/lib/components/form-builder/types/validation.types.d.ts +174 -0
  106. package/lib/components/form-builder-editor/form-builder-editor.component.d.ts +117 -0
  107. package/lib/components/form-builder-editor/form-builder-editor.service.d.ts +38 -0
  108. package/lib/components/form-builder-editor/index.d.ts +15 -0
  109. package/lib/components/form-builder-editor/services/editor-persistence.service.d.ts +42 -0
  110. package/lib/components/form-builder-editor/services/editor-state.service.d.ts +66 -0
  111. package/lib/components/form-builder-editor/services/field-factory.service.d.ts +28 -0
  112. package/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.d.ts +139 -0
  113. package/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.d.ts +43 -0
  114. package/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.d.ts +83 -0
  115. package/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.d.ts +40 -0
  116. package/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.d.ts +51 -0
  117. package/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.d.ts +63 -0
  118. package/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.d.ts +68 -0
  119. package/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.d.ts +82 -0
  120. package/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.d.ts +112 -0
  121. package/lib/components/form-builder-editor/types/editor.types.d.ts +124 -0
  122. package/lib/components/layout-builder/index.d.ts +16 -0
  123. package/lib/components/layout-builder/layout-builder.component.d.ts +85 -0
  124. package/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  125. package/lib/components/layout-builder/layout.service.d.ts +100 -0
  126. package/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  127. package/lib/components/modal/index.d.ts +4 -0
  128. package/lib/components/modal/modal.component.d.ts +44 -0
  129. package/lib/components/modal/modal.service.d.ts +93 -0
  130. package/lib/components/modal/modal.types.d.ts +110 -0
  131. package/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  132. package/lib/components/page-header/index.d.ts +16 -0
  133. package/lib/components/page-header/page-header.component.d.ts +59 -0
  134. package/lib/components/page-header/page-header.types.d.ts +96 -0
  135. package/lib/components/table/index.d.ts +2 -0
  136. package/lib/components/table/paginated-table.component.d.ts +85 -0
  137. package/lib/components/table/table.types.d.ts +81 -0
  138. package/lib/core/types/index.d.ts +57 -0
  139. package/lib/core/utils/index.d.ts +29 -0
  140. package/package.json +44 -0
  141. package/public-api.d.ts +22 -0
@@ -0,0 +1,112 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { UiValidationRule, UiValidationType, UiCrossFieldOperator } from '../../../form-builder/types/index';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Interfaccia per le opzioni dei tipi di validazione nella select.
6
+ */
7
+ interface ValidationTypeOption {
8
+ /** Valore del tipo di validazione. */
9
+ value: UiValidationType;
10
+ /** Etichetta visualizzata nella select. */
11
+ label: string;
12
+ }
13
+ /**
14
+ * Interfaccia per le opzioni degli operatori cross-field nella select.
15
+ */
16
+ interface CrossFieldOperatorOption {
17
+ /** Valore dell'operatore. */
18
+ value: UiCrossFieldOperator;
19
+ /** Etichetta visualizzata nella select. */
20
+ label: string;
21
+ }
22
+ /**
23
+ * Editor per le regole di validazione dei campi.
24
+ *
25
+ * Permette di aggiungere, modificare e rimuovere regole di validazione
26
+ * per un campo del form builder. Supporta validazioni standard,
27
+ * cross-field, date e file.
28
+ *
29
+ * @selector ui-validation-editor
30
+ */
31
+ export declare class UiValidationEditorComponent {
32
+ /** Lista delle regole di validazione da editare. */
33
+ validations: UiValidationRule[];
34
+ /** Emesso quando la lista di regole viene modificata. */
35
+ validationsChange: EventEmitter<UiValidationRule[]>;
36
+ /** Opzioni disponibili per il tipo di validazione. */
37
+ readonly validationTypes: ValidationTypeOption[];
38
+ /** Opzioni per gli operatori di confronto cross-field. */
39
+ readonly crossFieldOperators: CrossFieldOperatorOption[];
40
+ /**
41
+ * Verifica se il tipo di validazione richiede un campo valore.
42
+ * @param type - Tipo di validazione da verificare
43
+ * @returns true se il tipo richiede un valore
44
+ */
45
+ requiresValue(type: UiValidationType): boolean;
46
+ /**
47
+ * Restituisce il placeholder appropriato per il campo valore
48
+ * in base al tipo di validazione selezionato.
49
+ * @param type - Tipo di validazione
50
+ * @returns Stringa placeholder
51
+ */
52
+ getValuePlaceholder(type: UiValidationType): string;
53
+ /**
54
+ * Aggiunge una nuova regola di validazione con valori predefiniti.
55
+ */
56
+ addValidation(): void;
57
+ /**
58
+ * Rimuove la regola di validazione all'indice specificato.
59
+ * @param index - Indice della regola da rimuovere
60
+ */
61
+ removeValidation(index: number): void;
62
+ /**
63
+ * Gestisce il cambio del tipo di validazione.
64
+ * Se il tipo diventa 'crossField', inizializza la configurazione cross-field.
65
+ * @param index - Indice della regola
66
+ * @param type - Nuovo tipo di validazione
67
+ */
68
+ onTypeChange(index: number, type: UiValidationType): void;
69
+ /**
70
+ * Gestisce il cambio del valore della regola.
71
+ * @param index - Indice della regola
72
+ * @param value - Nuovo valore
73
+ */
74
+ onValueChange(index: number, value: any): void;
75
+ /**
76
+ * Gestisce il cambio del messaggio di errore.
77
+ * @param index - Indice della regola
78
+ * @param message - Nuovo messaggio
79
+ */
80
+ onMessageChange(index: number, message: string): void;
81
+ /**
82
+ * Gestisce il cambio del campo target nella configurazione cross-field.
83
+ * @param index - Indice della regola
84
+ * @param targetField - Nuova chiave del campo target
85
+ */
86
+ onCrossFieldTargetChange(index: number, targetField: string): void;
87
+ /**
88
+ * Gestisce il cambio dell'operatore nella configurazione cross-field.
89
+ * @param index - Indice della regola
90
+ * @param operator - Nuovo operatore
91
+ */
92
+ onCrossFieldOperatorChange(index: number, operator: UiCrossFieldOperator): void;
93
+ /**
94
+ * Gestisce il cambio del tipo di dato nella configurazione cross-field.
95
+ * @param index - Indice della regola
96
+ * @param dataType - Nuovo tipo di dato ('date' | 'number')
97
+ */
98
+ onCrossFieldDataTypeChange(index: number, dataType: 'date' | 'number'): void;
99
+ /**
100
+ * Clona l'array delle validazioni per garantire immutabilita.
101
+ * @returns Copia superficiale dell'array di validazioni
102
+ */
103
+ private cloneValidations;
104
+ /**
105
+ * Emette l'evento di cambio validazioni.
106
+ * @param validations - Nuova lista di validazioni
107
+ */
108
+ private emitChange;
109
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiValidationEditorComponent, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiValidationEditorComponent, "ui-validation-editor", never, { "validations": { "alias": "validations"; "required": false; }; }, { "validationsChange": "validationsChange"; }, never, never, true, never>;
111
+ }
112
+ export {};
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @module ng-ui-system/form-builder-editor
3
+ * Tipi e interfacce per l'editor visuale del form builder.
4
+ */
5
+ import { UiFieldType, UiFormSchema } from '../../form-builder/types/index';
6
+ import { UiIconName } from '../../../core/types';
7
+ /**
8
+ * Stato corrente dell'editor.
9
+ * Gestito dal servizio UiEditorStateService tramite BehaviorSubject.
10
+ */
11
+ export interface UiEditorState {
12
+ /** Schema del form in fase di editing. */
13
+ schema: UiFormSchema;
14
+ /** ID della sezione attualmente selezionata. */
15
+ selectedSectionId: string | null;
16
+ /** Chiave del campo attualmente selezionato. */
17
+ selectedFieldKey: string | null;
18
+ /** Indica se lo schema e stato modificato dall'ultimo salvataggio. */
19
+ isDirty: boolean;
20
+ /** Data dell'ultimo salvataggio. */
21
+ lastSaved: Date | null;
22
+ }
23
+ /**
24
+ * Categorie per raggruppare i tipi di campo nella palette.
25
+ */
26
+ export type UiEditorFieldCategory = 'basic' | 'choice' | 'datetime' | 'advanced' | 'custom';
27
+ /**
28
+ * Elemento della palette dei tipi di campo.
29
+ * Rappresenta un tipo di campo trascinabile nella palette laterale.
30
+ */
31
+ export interface UiEditorFieldPaletteItem {
32
+ /** Tipo di campo. */
33
+ type: UiFieldType;
34
+ /** Nome visualizzato nella palette. */
35
+ label: string;
36
+ /** Icona Lucide da mostrare. */
37
+ icon: UiIconName;
38
+ /** Descrizione breve del tipo di campo. */
39
+ description: string;
40
+ /** Categoria di appartenenza. */
41
+ category: UiEditorFieldCategory;
42
+ }
43
+ /**
44
+ * Campo disponibile per la selezione nelle condizioni.
45
+ * Versione semplificata del field descriptor per le select.
46
+ */
47
+ export interface UiEditorAvailableField {
48
+ /** Chiave univoca del campo. */
49
+ key: string;
50
+ /** Label visualizzata. */
51
+ label: string;
52
+ /** Tipo di campo. */
53
+ type: string;
54
+ /** Opzioni (per campi select, radio, etc.). */
55
+ options?: {
56
+ value: any;
57
+ label: string;
58
+ }[];
59
+ }
60
+ /**
61
+ * Elemento del breadcrumb di navigazione dell'editor.
62
+ */
63
+ export interface UiEditorBreadcrumbItem {
64
+ /** Label visualizzata. */
65
+ label: string;
66
+ /** ID dell'elemento (form, sezione o campo). */
67
+ id: string;
68
+ /** Tipo di elemento. */
69
+ type: 'form' | 'section' | 'field';
70
+ /** Se e l'elemento attualmente attivo. */
71
+ active: boolean;
72
+ }
73
+ /**
74
+ * Struttura dati per il salvataggio nel localStorage.
75
+ */
76
+ export interface UiEditorStorageData {
77
+ /** Schema salvato. */
78
+ schema: UiFormSchema;
79
+ /** Timestamp del salvataggio (epoch ms). */
80
+ timestamp: number;
81
+ /** Versione dello storage per compatibilita futura. */
82
+ version: string;
83
+ }
84
+ /**
85
+ * Risultato della validazione dello schema nell'editor.
86
+ */
87
+ export interface UiEditorSchemaValidationResult {
88
+ /** Se lo schema e valido. */
89
+ valid: boolean;
90
+ /** Errori di validazione. */
91
+ errors: UiEditorSchemaValidationError[];
92
+ /** Warning di validazione. */
93
+ warnings: UiEditorSchemaValidationWarning[];
94
+ }
95
+ /**
96
+ * Errore di validazione dello schema.
97
+ */
98
+ export interface UiEditorSchemaValidationError {
99
+ /** Tipo di errore. */
100
+ type: 'duplicate_key' | 'invalid_type' | 'missing_required' | 'invalid_reference' | 'invalid_format';
101
+ /** Messaggio di errore. */
102
+ message: string;
103
+ /** Path dell'elemento con errore (es. `sections[0].fields[2].key`). */
104
+ path: string;
105
+ }
106
+ /**
107
+ * Warning di validazione dello schema.
108
+ */
109
+ export interface UiEditorSchemaValidationWarning {
110
+ /** Tipo di warning. */
111
+ type: 'missing_label' | 'empty_options' | 'unused_field' | 'circular_condition';
112
+ /** Messaggio di warning. */
113
+ message: string;
114
+ /** Path dell'elemento con warning. */
115
+ path: string;
116
+ }
117
+ /**
118
+ * Dati passati alla modale dell'editor.
119
+ * Iniettabili tramite MAT_DIALOG_DATA.
120
+ */
121
+ export interface UiEditorDialogData {
122
+ /** Schema iniziale da caricare nell'editor. */
123
+ initialSchema?: UiFormSchema;
124
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ng-ui-system — Layout Builder entry point.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import {
7
+ * UiLayoutBuilderComponent,
8
+ * UiLayoutService,
9
+ * UiLayoutSchema,
10
+ * UiNavItem,
11
+ * } from 'ng-ui-system';
12
+ * ```
13
+ */
14
+ export { UiLayoutBuilderComponent } from './layout-builder.component';
15
+ export { UiLayoutService } from './layout.service';
16
+ export { UiLayoutMode, UiContentType, UiLayoutBreadcrumb, UiLayoutSchema, UiNavItem, UiNavItemType, UiNavGroup, UiNavSection, UiNavAutoDiscoveryConfig, UiLayoutNavigationConfig, UiLayoutLogo, UiLayoutHeaderConfig, UiFooterLink, UiLayoutFooterConfig, UiFabAction, UiLayoutFabConfig, UiLayoutPageHeaderConfig, UiLayoutLoaderConfig, UiBarType, UiBarConfig, UiTopbarConfig, UiNotificationBarConfig, UiBrandBarConfig, UiUserDropdownConfig, UiDropdownItem, UiNavigationBarConfig, UiLinksBarConfig, UiBarLinkItem, } from './layout-builder.types';
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Schema-driven application shell that materializes a full responsive layout
3
+ * from a single `UiLayoutSchema` descriptor.
4
+ *
5
+ * Features:
6
+ * - Two layout modes: sidebar (collapsible) and topbar (multi-bar stack)
7
+ * - Programmatic mode switching with loader masking
8
+ * - Content type: fluid, boxed, fullscreen
9
+ * - Speed-dial FAB with context-sensitive actions
10
+ * - Overlay loader with body-scroll locking
11
+ * - Auto-derived breadcrumbs from navigation schema
12
+ * - Skip-to-content link and full keyboard navigation
13
+ *
14
+ * @selector ui-layout-builder
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <ui-layout-builder [schema]="layoutSchema" />
19
+ * ```
20
+ */
21
+ import { OnInit, OnDestroy } from '@angular/core';
22
+ import { UiLayoutService } from './layout.service';
23
+ import { UiLayoutSchema, UiLayoutMode, UiContentType, UiLayoutBreadcrumb, UiNavItem, UiNavSection, UiLayoutFabConfig, UiFabAction, UiBarConfig } from './layout-builder.types';
24
+ import * as i0 from "@angular/core";
25
+ export declare class UiLayoutBuilderComponent implements OnInit, OnDestroy {
26
+ /** Full layout descriptor. */
27
+ schema: UiLayoutSchema;
28
+ readonly layoutService: UiLayoutService;
29
+ private readonly router;
30
+ private readonly cdr;
31
+ private subs;
32
+ currentUrl: string;
33
+ expandedIds: Set<string>;
34
+ fabOpen: boolean;
35
+ currentFabConfig: UiLayoutFabConfig | null;
36
+ loading: boolean;
37
+ sidebarOpen: boolean;
38
+ sidebarCollapsed: boolean;
39
+ layoutMode: UiLayoutMode;
40
+ contentType: UiContentType;
41
+ contentTransitioning: boolean;
42
+ breadcrumbs: UiLayoutBreadcrumb[];
43
+ userDropdownOpen: boolean;
44
+ hnavDropdownId: string | null;
45
+ private navBadges;
46
+ private navVisibility;
47
+ private barVisibility;
48
+ /** Resolved page title from the last breadcrumb. */
49
+ get pageTitle(): string;
50
+ /** Items flagged for the mobile bottom navigation bar (max 5). */
51
+ get bottomNavItems(): UiNavItem[];
52
+ get mobileMode(): string;
53
+ /** Topbar bars filtered by visibility (schema default + service overrides). */
54
+ get visibleBars(): UiBarConfig[];
55
+ ngOnInit(): void;
56
+ ngOnDestroy(): void;
57
+ onEscape(): void;
58
+ onDocumentClick(event: MouseEvent): void;
59
+ getItemsForSection(section: UiNavSection): UiNavItem[];
60
+ isItemHidden(item: UiNavItem): boolean;
61
+ getItemBadge(item: UiNavItem): string | number | null;
62
+ isParentActive(item: UiNavItem): boolean;
63
+ isRouteActive(item: UiNavItem): boolean;
64
+ toggleExpand(item: UiNavItem): void;
65
+ onNavClick(): void;
66
+ onFabMainClick(): void;
67
+ onFabAction(action: UiFabAction): void;
68
+ getTopbarNavItems(bar: UiBarConfig): UiNavItem[];
69
+ toggleHnavDropdown(itemId: string): void;
70
+ dismissBar(barId: string): void;
71
+ onDropdownAction(item: {
72
+ action?: () => void;
73
+ }): void;
74
+ /**
75
+ * Derives breadcrumbs by matching the current URL against the
76
+ * navigation schema. Walks top-level items, sections, and children
77
+ * to build a trail from root to current page.
78
+ */
79
+ private computeBreadcrumbs;
80
+ private urlMatches;
81
+ private findSectionLabel;
82
+ private autoExpandFromUrl;
83
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiLayoutBuilderComponent, never>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiLayoutBuilderComponent, "ui-layout-builder", never, { "schema": { "alias": "schema"; "required": true; }; }, {}, never, never, true, never>;
85
+ }