@gnggln/ng-ui-system 1.0.0-alpha.2 → 1.0.0-alpha.21
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/accordion/entry-accordion.d.ts +4 -0
- package/accordion/index.d.ts +5 -0
- package/accordion/lib/components/accordion/accordion.component.d.ts +125 -0
- package/accordion/lib/components/accordion/accordion.types.d.ts +64 -0
- package/accordion/lib/components/accordion/index.d.ts +2 -0
- package/accordion/lib/core/types/index.d.ts +133 -0
- package/base-layout/entry-base-layout.d.ts +4 -0
- package/base-layout/index.d.ts +5 -0
- package/base-layout/lib/components/base-layout/base-layout.component.d.ts +108 -0
- package/base-layout/lib/components/base-layout/base-layout.types.d.ts +40 -0
- package/base-layout/lib/components/base-layout/index.d.ts +13 -0
- package/base-layout/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/base-layout/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/base-layout/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/base-layout/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/base-layout/lib/components/button/button-area.component.d.ts +93 -0
- package/base-layout/lib/components/button/button.component.d.ts +61 -0
- package/base-layout/lib/components/button/button.types.d.ts +75 -0
- package/base-layout/lib/components/page-header/breadcrumb.service.d.ts +96 -0
- package/base-layout/lib/components/page-header/page-header.component.d.ts +59 -0
- package/base-layout/lib/components/page-header/page-header.types.d.ts +96 -0
- package/base-layout/lib/core/types/index.d.ts +133 -0
- package/blackbox/entry-blackbox.d.ts +4 -0
- package/blackbox/index.d.ts +5 -0
- package/blackbox/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
- package/blackbox/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
- package/blackbox/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/blackbox/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
- package/blackbox/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/blackbox/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
- package/blackbox/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/blackbox/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/blackbox/lib/components/blackbox/index.d.ts +23 -0
- package/blackbox/lib/components/blackbox/ui-track.directive.d.ts +20 -0
- package/blackbox/lib/components/button/button-area.component.d.ts +93 -0
- package/blackbox/lib/components/button/button.component.d.ts +61 -0
- package/blackbox/lib/components/button/button.types.d.ts +75 -0
- package/blackbox/lib/components/button/index.d.ts +15 -0
- package/blackbox/lib/components/modal/confirm-dialog.component.d.ts +46 -0
- package/blackbox/lib/components/modal/index.d.ts +4 -0
- package/blackbox/lib/components/modal/modal.component.d.ts +44 -0
- package/blackbox/lib/components/modal/modal.service.d.ts +93 -0
- package/blackbox/lib/components/modal/modal.types.d.ts +110 -0
- package/blackbox/lib/core/types/index.d.ts +133 -0
- package/button/entry-button.d.ts +4 -0
- package/button/index.d.ts +5 -0
- package/button/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/button/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/button/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/button/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/button/lib/components/button/button-area.component.d.ts +93 -0
- package/button/lib/components/button/button.component.d.ts +61 -0
- package/button/lib/components/button/button.types.d.ts +75 -0
- package/button/lib/components/button/index.d.ts +15 -0
- package/button/lib/core/types/index.d.ts +133 -0
- package/core/entry-core.d.ts +5 -0
- package/core/index.d.ts +5 -0
- package/core/lib/core/types/index.d.ts +133 -0
- package/core/lib/core/utils/index.d.ts +60 -0
- package/crud-table/entry-crud-table.d.ts +4 -0
- package/crud-table/index.d.ts +5 -0
- package/crud-table/lib/components/accordion/accordion.component.d.ts +125 -0
- package/crud-table/lib/components/accordion/accordion.types.d.ts +64 -0
- package/crud-table/lib/components/accordion/index.d.ts +2 -0
- package/crud-table/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/crud-table/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/crud-table/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/crud-table/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/crud-table/lib/components/button/button-area.component.d.ts +93 -0
- package/crud-table/lib/components/button/button.component.d.ts +61 -0
- package/crud-table/lib/components/button/button.types.d.ts +75 -0
- package/crud-table/lib/components/button/index.d.ts +15 -0
- package/crud-table/lib/components/crud-table/crud-table.component.d.ts +143 -0
- package/crud-table/lib/components/crud-table/crud-table.types.d.ts +207 -0
- package/crud-table/lib/components/crud-table/index.d.ts +15 -0
- package/crud-table/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
- package/crud-table/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
- package/crud-table/lib/components/form-builder/form-builder.component.d.ts +279 -0
- package/crud-table/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
- package/crud-table/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
- package/crud-table/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
- package/crud-table/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
- package/crud-table/lib/components/form-builder/services/location.service.d.ts +83 -0
- package/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
- package/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
- package/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
- package/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
- package/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
- package/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
- package/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
- package/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
- package/crud-table/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
- package/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
- package/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
- package/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
- package/crud-table/lib/components/form-builder/types/condition.types.d.ts +51 -0
- package/crud-table/lib/components/form-builder/types/field.types.d.ts +330 -0
- package/crud-table/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
- package/crud-table/lib/components/form-builder/types/schema.types.d.ts +304 -0
- package/crud-table/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
- package/crud-table/lib/components/form-builder/types/validation.types.d.ts +179 -0
- package/crud-table/lib/components/modal/confirm-dialog.component.d.ts +46 -0
- package/crud-table/lib/components/modal/modal.service.d.ts +93 -0
- package/crud-table/lib/components/modal/modal.types.d.ts +110 -0
- package/crud-table/lib/core/logging/logger.config.d.ts +18 -0
- package/crud-table/lib/core/logging/logger.service.d.ts +75 -0
- package/crud-table/lib/core/logging/logger.types.d.ts +70 -0
- package/crud-table/lib/core/types/index.d.ts +133 -0
- package/esm2022/accordion/entry-accordion.mjs +5 -0
- package/esm2022/accordion/gnggln-ng-ui-system-accordion.mjs +5 -0
- package/esm2022/accordion/lib/components/accordion/accordion.component.mjs +398 -0
- package/esm2022/accordion/lib/components/accordion/accordion.types.mjs +6 -0
- package/esm2022/accordion/lib/components/accordion/index.mjs +2 -0
- package/esm2022/accordion/lib/core/types/index.mjs +6 -0
- package/esm2022/base-layout/entry-base-layout.mjs +5 -0
- package/esm2022/base-layout/gnggln-ng-ui-system-base-layout.mjs +5 -0
- package/esm2022/base-layout/lib/components/base-layout/base-layout.component.mjs +272 -0
- package/esm2022/base-layout/lib/components/base-layout/base-layout.types.mjs +6 -0
- package/esm2022/base-layout/lib/components/base-layout/index.mjs +14 -0
- package/esm2022/base-layout/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/base-layout/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/base-layout/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/base-layout/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/base-layout/lib/components/button/button-area.component.mjs +210 -0
- package/esm2022/base-layout/lib/components/button/button.component.mjs +180 -0
- package/esm2022/base-layout/lib/components/button/button.types.mjs +6 -0
- package/esm2022/base-layout/lib/components/page-header/breadcrumb.service.mjs +243 -0
- package/esm2022/base-layout/lib/components/page-header/page-header.component.mjs +243 -0
- package/esm2022/base-layout/lib/components/page-header/page-header.types.mjs +21 -0
- package/esm2022/base-layout/lib/core/types/index.mjs +6 -0
- package/esm2022/blackbox/entry-blackbox.mjs +5 -0
- package/esm2022/blackbox/gnggln-ng-ui-system-blackbox.mjs +5 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/blackbox/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/blackbox/lib/components/blackbox/index.mjs +27 -0
- package/esm2022/blackbox/lib/components/blackbox/ui-track.directive.mjs +69 -0
- package/esm2022/blackbox/lib/components/button/button-area.component.mjs +210 -0
- package/esm2022/blackbox/lib/components/button/button.component.mjs +180 -0
- package/esm2022/blackbox/lib/components/button/button.types.mjs +6 -0
- package/esm2022/blackbox/lib/components/button/index.mjs +16 -0
- package/esm2022/blackbox/lib/components/modal/confirm-dialog.component.mjs +151 -0
- package/esm2022/blackbox/lib/components/modal/index.mjs +4 -0
- package/esm2022/blackbox/lib/components/modal/modal.component.mjs +139 -0
- package/esm2022/blackbox/lib/components/modal/modal.service.mjs +197 -0
- package/esm2022/blackbox/lib/components/modal/modal.types.mjs +6 -0
- package/esm2022/blackbox/lib/core/types/index.mjs +6 -0
- package/esm2022/button/entry-button.mjs +5 -0
- package/esm2022/button/gnggln-ng-ui-system-button.mjs +5 -0
- package/esm2022/button/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/button/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/button/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/button/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/button/lib/components/button/button-area.component.mjs +210 -0
- package/esm2022/button/lib/components/button/button.component.mjs +180 -0
- package/esm2022/button/lib/components/button/button.types.mjs +6 -0
- package/esm2022/button/lib/components/button/index.mjs +16 -0
- package/esm2022/button/lib/core/types/index.mjs +6 -0
- package/esm2022/core/entry-core.mjs +6 -0
- package/esm2022/core/gnggln-ng-ui-system-core.mjs +5 -0
- package/esm2022/core/lib/core/types/index.mjs +6 -0
- package/esm2022/core/lib/core/utils/index.mjs +102 -0
- package/esm2022/crud-table/entry-crud-table.mjs +5 -0
- package/esm2022/crud-table/gnggln-ng-ui-system-crud-table.mjs +5 -0
- package/esm2022/crud-table/lib/components/accordion/accordion.component.mjs +398 -0
- package/esm2022/crud-table/lib/components/accordion/accordion.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/accordion/index.mjs +2 -0
- package/esm2022/crud-table/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/crud-table/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/crud-table/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/crud-table/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/crud-table/lib/components/button/button-area.component.mjs +210 -0
- package/esm2022/crud-table/lib/components/button/button.component.mjs +180 -0
- package/esm2022/crud-table/lib/components/button/button.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/button/index.mjs +16 -0
- package/esm2022/crud-table/lib/components/crud-table/crud-table.component.mjs +789 -0
- package/esm2022/crud-table/lib/components/crud-table/crud-table.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/crud-table/index.mjs +16 -0
- package/esm2022/crud-table/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
- package/esm2022/crud-table/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
- package/esm2022/crud-table/lib/components/form-builder/form-builder.component.mjs +1351 -0
- package/esm2022/crud-table/lib/components/form-builder/services/form-condition.service.mjs +132 -0
- package/esm2022/crud-table/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
- package/esm2022/crud-table/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
- package/esm2022/crud-table/lib/components/form-builder/services/form-validation.service.mjs +381 -0
- package/esm2022/crud-table/lib/components/form-builder/services/location.service.mjs +141 -0
- package/esm2022/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
- package/esm2022/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
- package/esm2022/crud-table/lib/components/form-builder/types/condition.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/form-builder/types/field.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/form-builder/types/schema.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/form-builder/types/territoriale.types.mjs +6 -0
- package/esm2022/crud-table/lib/components/form-builder/types/validation.types.mjs +10 -0
- package/esm2022/crud-table/lib/components/modal/confirm-dialog.component.mjs +151 -0
- package/esm2022/crud-table/lib/components/modal/modal.service.mjs +197 -0
- package/esm2022/crud-table/lib/components/modal/modal.types.mjs +6 -0
- package/esm2022/crud-table/lib/core/logging/logger.config.mjs +18 -0
- package/esm2022/crud-table/lib/core/logging/logger.service.mjs +295 -0
- package/esm2022/crud-table/lib/core/logging/logger.types.mjs +7 -0
- package/esm2022/crud-table/lib/core/types/index.mjs +6 -0
- package/esm2022/crud-table/lib/sources/location-data.opt.json +8942 -0
- package/esm2022/crud-table/lib/sources/nazioni.opt.json +215 -0
- package/esm2022/form-builder/entry-form-builder.mjs +5 -0
- package/esm2022/form-builder/gnggln-ng-ui-system-form-builder.mjs +5 -0
- package/esm2022/form-builder/lib/components/accordion/accordion.component.mjs +398 -0
- package/esm2022/form-builder/lib/components/accordion/accordion.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/accordion/index.mjs +2 -0
- package/esm2022/form-builder/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/form-builder/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/form-builder/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/form-builder/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/form-builder/lib/components/button/button-area.component.mjs +210 -0
- package/esm2022/form-builder/lib/components/button/button.component.mjs +180 -0
- package/esm2022/form-builder/lib/components/button/button.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/button/index.mjs +16 -0
- package/esm2022/form-builder/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
- package/esm2022/form-builder/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
- package/esm2022/form-builder/lib/components/form-builder/form-builder.component.mjs +1351 -0
- package/esm2022/form-builder/lib/components/form-builder/form-wizard.component.mjs +1064 -0
- package/esm2022/form-builder/lib/components/form-builder/index.mjs +24 -0
- package/esm2022/form-builder/lib/components/form-builder/services/form-condition.service.mjs +132 -0
- package/esm2022/form-builder/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
- package/esm2022/form-builder/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
- package/esm2022/form-builder/lib/components/form-builder/services/form-validation.service.mjs +381 -0
- package/esm2022/form-builder/lib/components/form-builder/services/location.service.mjs +141 -0
- package/esm2022/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
- package/esm2022/form-builder/lib/components/form-builder/services/wizard-sync.service.mjs +84 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
- package/esm2022/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
- package/esm2022/form-builder/lib/components/form-builder/types/condition.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/form-builder/types/field.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/form-builder/types/index.mjs +3 -0
- package/esm2022/form-builder/lib/components/form-builder/types/schema.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/form-builder/types/territoriale.types.mjs +6 -0
- package/esm2022/form-builder/lib/components/form-builder/types/validation.types.mjs +10 -0
- package/esm2022/form-builder/lib/core/logging/logger.config.mjs +18 -0
- package/esm2022/form-builder/lib/core/logging/logger.service.mjs +295 -0
- package/esm2022/form-builder/lib/core/logging/logger.types.mjs +7 -0
- package/esm2022/form-builder/lib/core/types/index.mjs +6 -0
- package/esm2022/form-builder/lib/sources/location-data.opt.json +8942 -0
- package/esm2022/form-builder/lib/sources/nazioni.opt.json +215 -0
- package/esm2022/form-builder-editor/entry-form-builder-editor.mjs +5 -0
- package/esm2022/form-builder-editor/gnggln-ng-ui-system-form-builder-editor.mjs +5 -0
- package/esm2022/form-builder-editor/lib/components/accordion/accordion.component.mjs +398 -0
- package/esm2022/form-builder-editor/lib/components/accordion/accordion.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/accordion/index.mjs +2 -0
- package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/form-builder-editor/lib/components/button/button-area.component.mjs +210 -0
- package/esm2022/form-builder-editor/lib/components/button/button.component.mjs +180 -0
- package/esm2022/form-builder-editor/lib/components/button/button.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/button/index.mjs +16 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/form-builder.component.mjs +1351 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/services/form-condition.service.mjs +132 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/services/form-validation.service.mjs +381 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/services/location.service.mjs +141 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/condition.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/field.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/index.mjs +3 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/schema.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/territoriale.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/form-builder/types/validation.types.mjs +10 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.mjs +730 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.mjs +56 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/index.mjs +23 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.mjs +190 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.mjs +324 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.mjs +188 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.mjs +667 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.mjs +317 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.mjs +611 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.mjs +267 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.mjs +276 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.mjs +323 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +238 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +473 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.mjs +473 -0
- package/esm2022/form-builder-editor/lib/components/form-builder-editor/types/editor.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/components/modal/confirm-dialog.component.mjs +151 -0
- package/esm2022/form-builder-editor/lib/components/modal/index.mjs +4 -0
- package/esm2022/form-builder-editor/lib/components/modal/modal.component.mjs +139 -0
- package/esm2022/form-builder-editor/lib/components/modal/modal.service.mjs +197 -0
- package/esm2022/form-builder-editor/lib/components/modal/modal.types.mjs +6 -0
- package/esm2022/form-builder-editor/lib/core/logging/logger.config.mjs +18 -0
- package/esm2022/form-builder-editor/lib/core/logging/logger.service.mjs +295 -0
- package/esm2022/form-builder-editor/lib/core/logging/logger.types.mjs +7 -0
- package/esm2022/form-builder-editor/lib/core/types/index.mjs +6 -0
- package/esm2022/form-builder-editor/lib/sources/location-data.opt.json +8942 -0
- package/esm2022/form-builder-editor/lib/sources/nazioni.opt.json +215 -0
- package/esm2022/http/entry-http.mjs +5 -0
- package/esm2022/http/gnggln-ng-ui-system-http.mjs +5 -0
- package/esm2022/http/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/http/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/http/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/http/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/http/lib/components/http/http-message.handler.mjs +143 -0
- package/esm2022/http/lib/components/http/http.service.mjs +228 -0
- package/esm2022/http/lib/components/http/http.tokens.mjs +29 -0
- package/esm2022/http/lib/components/http/http.types.mjs +6 -0
- package/esm2022/http/lib/components/http/index.mjs +19 -0
- package/esm2022/http/lib/components/layout-builder/layout-builder.types.mjs +9 -0
- package/esm2022/http/lib/components/layout-builder/layout.service.mjs +239 -0
- package/esm2022/http/lib/components/toast/toast-container.component.mjs +80 -0
- package/esm2022/http/lib/components/toast/toast.component.mjs +151 -0
- package/esm2022/http/lib/components/toast/toast.service.mjs +156 -0
- package/esm2022/http/lib/components/toast/toast.types.mjs +12 -0
- package/esm2022/http/lib/core/types/index.mjs +6 -0
- package/esm2022/http/lib/core/utils/index.mjs +102 -0
- package/esm2022/layout-builder/entry-layout-builder.mjs +5 -0
- package/esm2022/layout-builder/gnggln-ng-ui-system-layout-builder.mjs +5 -0
- package/esm2022/layout-builder/lib/components/layout-builder/index.mjs +18 -0
- package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.component.mjs +1804 -0
- package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.types.mjs +9 -0
- package/esm2022/layout-builder/lib/components/layout-builder/layout.service.mjs +239 -0
- package/esm2022/layout-builder/lib/core/types/index.mjs +6 -0
- package/esm2022/lib/components/accordion/accordion.component.mjs +106 -61
- package/esm2022/lib/components/accordion/accordion.types.mjs +1 -1
- package/esm2022/lib/components/base-layout/base-layout.component.mjs +88 -34
- package/esm2022/lib/components/base-layout/base-layout.types.mjs +1 -1
- package/esm2022/lib/components/base-layout/index.mjs +1 -1
- package/esm2022/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
- package/esm2022/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
- package/esm2022/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
- package/esm2022/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
- package/esm2022/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
- package/esm2022/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
- package/esm2022/lib/components/blackbox/blackbox.service.mjs +323 -0
- package/esm2022/lib/components/blackbox/blackbox.types.mjs +25 -0
- package/esm2022/lib/components/blackbox/index.mjs +27 -0
- package/esm2022/lib/components/blackbox/ui-track.directive.mjs +69 -0
- package/esm2022/lib/components/button/button-area.component.mjs +16 -2
- package/esm2022/lib/components/button/button.component.mjs +23 -7
- package/esm2022/lib/components/button/button.types.mjs +1 -1
- package/esm2022/lib/components/crud-table/crud-table.component.mjs +14 -14
- package/esm2022/lib/components/form-builder/form-builder.component.mjs +710 -183
- package/esm2022/lib/components/form-builder/form-wizard.component.mjs +789 -235
- package/esm2022/lib/components/form-builder/index.mjs +7 -2
- package/esm2022/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
- package/esm2022/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
- package/esm2022/lib/components/form-builder/services/location.service.mjs +4 -3
- package/esm2022/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
- package/esm2022/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
- package/esm2022/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
- package/esm2022/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
- package/esm2022/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
- package/esm2022/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +3 -3
- package/esm2022/lib/components/form-builder/types/field.types.mjs +1 -1
- package/esm2022/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
- package/esm2022/lib/components/form-builder/types/index.mjs +3 -2
- package/esm2022/lib/components/form-builder/types/schema.types.mjs +1 -1
- package/esm2022/lib/components/form-builder/types/validation.types.mjs +6 -2
- package/esm2022/lib/components/form-builder-editor/form-builder-editor.component.mjs +3 -3
- package/esm2022/lib/components/form-builder-editor/index.mjs +3 -1
- package/esm2022/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
- package/esm2022/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +2 -2
- package/esm2022/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +2 -1
- package/esm2022/lib/components/http/http-message.handler.mjs +143 -0
- package/esm2022/lib/components/http/http.service.mjs +228 -0
- package/esm2022/lib/components/http/http.tokens.mjs +29 -0
- package/esm2022/lib/components/http/http.types.mjs +6 -0
- package/esm2022/lib/components/http/index.mjs +19 -0
- package/esm2022/lib/components/layout-builder/layout-builder.component.mjs +27 -15
- package/esm2022/lib/components/modal/confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/components/modal/modal.service.mjs +5 -2
- package/esm2022/lib/components/page-header/breadcrumb.service.mjs +5 -4
- package/esm2022/lib/components/table/paginated-table.component.mjs +17 -3
- package/esm2022/lib/components/table/table.types.mjs +1 -1
- package/esm2022/lib/components/toast/index.mjs +18 -0
- package/esm2022/lib/components/toast/toast-container.component.mjs +80 -0
- package/esm2022/lib/components/toast/toast.component.mjs +151 -0
- package/esm2022/lib/components/toast/toast.service.mjs +156 -0
- package/esm2022/lib/components/toast/toast.types.mjs +12 -0
- package/esm2022/lib/core/logging/index.mjs +10 -0
- package/esm2022/lib/core/logging/logger.config.mjs +18 -0
- package/esm2022/lib/core/logging/logger.service.mjs +295 -0
- package/esm2022/lib/core/logging/logger.types.mjs +7 -0
- package/esm2022/lib/core/types/index.mjs +1 -1
- package/esm2022/lib/core/utils/index.mjs +50 -1
- package/esm2022/lib/version/ng-ui-system-version.mjs +12 -0
- package/esm2022/modal/entry-modal.mjs +5 -0
- package/esm2022/modal/gnggln-ng-ui-system-modal.mjs +5 -0
- package/esm2022/modal/lib/components/button/button.component.mjs +180 -0
- package/esm2022/modal/lib/components/button/button.types.mjs +6 -0
- package/esm2022/modal/lib/components/modal/confirm-dialog.component.mjs +151 -0
- package/esm2022/modal/lib/components/modal/index.mjs +4 -0
- package/esm2022/modal/lib/components/modal/modal.component.mjs +139 -0
- package/esm2022/modal/lib/components/modal/modal.service.mjs +197 -0
- package/esm2022/modal/lib/components/modal/modal.types.mjs +6 -0
- package/esm2022/modal/lib/core/types/index.mjs +6 -0
- package/esm2022/page-header/entry-page-header.mjs +5 -0
- package/esm2022/page-header/gnggln-ng-ui-system-page-header.mjs +5 -0
- package/esm2022/page-header/lib/components/page-header/breadcrumb.service.mjs +243 -0
- package/esm2022/page-header/lib/components/page-header/index.mjs +20 -0
- package/esm2022/page-header/lib/components/page-header/page-header.component.mjs +243 -0
- package/esm2022/page-header/lib/components/page-header/page-header.types.mjs +21 -0
- package/esm2022/public-api.mjs +17 -8
- package/esm2022/table/entry-table.mjs +5 -0
- package/esm2022/table/gnggln-ng-ui-system-table.mjs +5 -0
- package/esm2022/table/lib/components/table/index.mjs +2 -0
- package/esm2022/table/lib/components/table/paginated-table.component.mjs +421 -0
- package/esm2022/table/lib/components/table/table.types.mjs +6 -0
- package/esm2022/table/lib/core/utils/index.mjs +102 -0
- package/esm2022/toast/entry-toast.mjs +5 -0
- package/esm2022/toast/gnggln-ng-ui-system-toast.mjs +5 -0
- package/esm2022/toast/lib/components/toast/index.mjs +18 -0
- package/esm2022/toast/lib/components/toast/toast-container.component.mjs +80 -0
- package/esm2022/toast/lib/components/toast/toast.component.mjs +151 -0
- package/esm2022/toast/lib/components/toast/toast.service.mjs +156 -0
- package/esm2022/toast/lib/components/toast/toast.types.mjs +12 -0
- package/esm2022/toast/lib/core/types/index.mjs +6 -0
- package/esm2022/toast/lib/core/utils/index.mjs +102 -0
- package/fesm2022/gnggln-ng-ui-system-accordion.mjs +409 -0
- package/fesm2022/gnggln-ng-ui-system-accordion.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-base-layout.mjs +1905 -0
- package/fesm2022/gnggln-ng-ui-system-base-layout.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-blackbox.mjs +2829 -0
- package/fesm2022/gnggln-ng-ui-system-blackbox.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-button.mjs +1148 -0
- package/fesm2022/gnggln-ng-ui-system-button.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-core.mjs +117 -0
- package/fesm2022/gnggln-ng-ui-system-core.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +49600 -0
- package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +54332 -0
- package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +49609 -0
- package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-http.mjs +1878 -0
- package/fesm2022/gnggln-ng-ui-system-http.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs +2064 -0
- package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-modal.mjs +664 -0
- package/fesm2022/gnggln-ng-ui-system-modal.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-page-header.mjs +526 -0
- package/fesm2022/gnggln-ng-ui-system-page-header.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-table.mjs +533 -0
- package/fesm2022/gnggln-ng-ui-system-table.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system-toast.mjs +516 -0
- package/fesm2022/gnggln-ng-ui-system-toast.mjs.map +1 -0
- package/fesm2022/gnggln-ng-ui-system.mjs +10068 -4234
- package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
- package/form-builder/entry-form-builder.d.ts +4 -0
- package/form-builder/index.d.ts +5 -0
- package/form-builder/lib/components/accordion/accordion.component.d.ts +125 -0
- package/form-builder/lib/components/accordion/accordion.types.d.ts +64 -0
- package/form-builder/lib/components/accordion/index.d.ts +2 -0
- package/form-builder/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/form-builder/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/form-builder/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/form-builder/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/form-builder/lib/components/button/button-area.component.d.ts +93 -0
- package/form-builder/lib/components/button/button.component.d.ts +61 -0
- package/form-builder/lib/components/button/button.types.d.ts +75 -0
- package/form-builder/lib/components/button/index.d.ts +15 -0
- package/form-builder/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
- package/form-builder/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
- package/form-builder/lib/components/form-builder/form-builder.component.d.ts +279 -0
- package/form-builder/lib/components/form-builder/form-wizard.component.d.ts +172 -0
- package/form-builder/lib/components/form-builder/index.d.ts +19 -0
- package/form-builder/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
- package/form-builder/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
- package/form-builder/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
- package/form-builder/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
- package/form-builder/lib/components/form-builder/services/location.service.d.ts +83 -0
- package/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
- package/form-builder/lib/components/form-builder/services/wizard-sync.service.d.ts +63 -0
- package/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
- package/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
- package/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
- package/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
- package/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
- package/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
- package/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
- package/form-builder/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
- package/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
- package/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
- package/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
- package/form-builder/lib/components/form-builder/types/condition.types.d.ts +51 -0
- package/form-builder/lib/components/form-builder/types/field.types.d.ts +330 -0
- package/form-builder/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
- package/form-builder/lib/components/form-builder/types/index.d.ts +6 -0
- package/form-builder/lib/components/form-builder/types/schema.types.d.ts +304 -0
- package/form-builder/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
- package/form-builder/lib/components/form-builder/types/validation.types.d.ts +179 -0
- package/form-builder/lib/core/logging/logger.config.d.ts +18 -0
- package/form-builder/lib/core/logging/logger.service.d.ts +75 -0
- package/form-builder/lib/core/logging/logger.types.d.ts +70 -0
- package/form-builder/lib/core/types/index.d.ts +133 -0
- package/form-builder-editor/entry-form-builder-editor.d.ts +4 -0
- package/form-builder-editor/index.d.ts +5 -0
- package/form-builder-editor/lib/components/accordion/accordion.component.d.ts +125 -0
- package/form-builder-editor/lib/components/accordion/accordion.types.d.ts +64 -0
- package/form-builder-editor/lib/components/accordion/index.d.ts +2 -0
- package/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/form-builder-editor/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/form-builder-editor/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/form-builder-editor/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/form-builder-editor/lib/components/button/button-area.component.d.ts +93 -0
- package/form-builder-editor/lib/components/button/button.component.d.ts +61 -0
- package/form-builder-editor/lib/components/button/button.types.d.ts +75 -0
- package/form-builder-editor/lib/components/button/index.d.ts +15 -0
- package/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
- package/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
- package/form-builder-editor/lib/components/form-builder/form-builder.component.d.ts +279 -0
- package/form-builder-editor/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
- package/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
- package/form-builder-editor/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
- package/form-builder-editor/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
- package/form-builder-editor/lib/components/form-builder/services/location.service.d.ts +83 -0
- package/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
- package/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
- package/form-builder-editor/lib/components/form-builder/types/condition.types.d.ts +51 -0
- package/form-builder-editor/lib/components/form-builder/types/field.types.d.ts +330 -0
- package/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
- package/form-builder-editor/lib/components/form-builder/types/index.d.ts +6 -0
- package/form-builder-editor/lib/components/form-builder/types/schema.types.d.ts +304 -0
- package/form-builder-editor/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
- package/form-builder-editor/lib/components/form-builder/types/validation.types.d.ts +179 -0
- package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.d.ts +117 -0
- package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.d.ts +38 -0
- package/form-builder-editor/lib/components/form-builder-editor/index.d.ts +17 -0
- package/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
- package/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.d.ts +42 -0
- package/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.d.ts +66 -0
- package/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.d.ts +28 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.d.ts +139 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.d.ts +43 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.d.ts +83 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.d.ts +40 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.d.ts +51 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.d.ts +63 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.d.ts +68 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.d.ts +82 -0
- package/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.d.ts +112 -0
- package/form-builder-editor/lib/components/form-builder-editor/types/editor.types.d.ts +124 -0
- package/form-builder-editor/lib/components/modal/confirm-dialog.component.d.ts +46 -0
- package/form-builder-editor/lib/components/modal/index.d.ts +4 -0
- package/form-builder-editor/lib/components/modal/modal.component.d.ts +44 -0
- package/form-builder-editor/lib/components/modal/modal.service.d.ts +93 -0
- package/form-builder-editor/lib/components/modal/modal.types.d.ts +110 -0
- package/form-builder-editor/lib/core/logging/logger.config.d.ts +18 -0
- package/form-builder-editor/lib/core/logging/logger.service.d.ts +75 -0
- package/form-builder-editor/lib/core/logging/logger.types.d.ts +70 -0
- package/form-builder-editor/lib/core/types/index.d.ts +133 -0
- package/http/entry-http.d.ts +4 -0
- package/http/index.d.ts +5 -0
- package/http/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/http/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/http/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/http/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/http/lib/components/http/http-message.handler.d.ts +59 -0
- package/http/lib/components/http/http.service.d.ts +98 -0
- package/http/lib/components/http/http.tokens.d.ts +29 -0
- package/http/lib/components/http/http.types.d.ts +50 -0
- package/http/lib/components/http/index.d.ts +17 -0
- package/http/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
- package/http/lib/components/layout-builder/layout.service.d.ts +100 -0
- package/http/lib/components/toast/toast-container.component.d.ts +27 -0
- package/http/lib/components/toast/toast.component.d.ts +37 -0
- package/http/lib/components/toast/toast.service.d.ts +39 -0
- package/http/lib/components/toast/toast.types.d.ts +52 -0
- package/http/lib/core/types/index.d.ts +133 -0
- package/http/lib/core/utils/index.d.ts +60 -0
- package/layout-builder/entry-layout-builder.d.ts +4 -0
- package/layout-builder/index.d.ts +5 -0
- package/layout-builder/lib/components/layout-builder/index.d.ts +16 -0
- package/layout-builder/lib/components/layout-builder/layout-builder.component.d.ts +85 -0
- package/layout-builder/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
- package/layout-builder/lib/components/layout-builder/layout.service.d.ts +100 -0
- package/layout-builder/lib/core/types/index.d.ts +133 -0
- package/lib/components/accordion/accordion.component.d.ts +10 -3
- package/lib/components/accordion/accordion.types.d.ts +2 -0
- package/lib/components/base-layout/base-layout.component.d.ts +36 -11
- package/lib/components/base-layout/base-layout.types.d.ts +14 -0
- package/lib/components/base-layout/index.d.ts +1 -1
- package/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
- package/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
- package/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
- package/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
- package/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
- package/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
- package/lib/components/blackbox/blackbox.service.d.ts +144 -0
- package/lib/components/blackbox/blackbox.types.d.ts +238 -0
- package/lib/components/blackbox/index.d.ts +23 -0
- package/lib/components/blackbox/ui-track.directive.d.ts +20 -0
- package/lib/components/button/button-area.component.d.ts +6 -1
- package/lib/components/button/button.component.d.ts +8 -2
- package/lib/components/button/button.types.d.ts +5 -0
- package/lib/components/form-builder/form-builder.component.d.ts +125 -29
- package/lib/components/form-builder/form-wizard.component.d.ts +89 -4
- package/lib/components/form-builder/index.d.ts +7 -1
- package/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
- package/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
- package/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
- package/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
- package/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
- package/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
- package/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
- package/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
- package/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
- package/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
- package/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
- package/lib/components/form-builder/types/field.types.d.ts +48 -6
- package/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
- package/lib/components/form-builder/types/index.d.ts +4 -3
- package/lib/components/form-builder/types/schema.types.d.ts +83 -6
- package/lib/components/form-builder/types/validation.types.d.ts +5 -0
- package/lib/components/form-builder-editor/index.d.ts +2 -0
- package/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
- package/lib/components/http/http-message.handler.d.ts +59 -0
- package/lib/components/http/http.service.d.ts +98 -0
- package/lib/components/http/http.tokens.d.ts +29 -0
- package/lib/components/http/http.types.d.ts +50 -0
- package/lib/components/http/index.d.ts +17 -0
- package/lib/components/page-header/breadcrumb.service.d.ts +2 -2
- package/lib/components/table/table.types.d.ts +5 -0
- package/lib/components/toast/index.d.ts +17 -0
- package/lib/components/toast/toast-container.component.d.ts +27 -0
- package/lib/components/toast/toast.component.d.ts +37 -0
- package/lib/components/toast/toast.service.d.ts +39 -0
- package/lib/components/toast/toast.types.d.ts +52 -0
- package/lib/core/logging/index.d.ts +8 -0
- package/lib/core/logging/logger.config.d.ts +18 -0
- package/lib/core/logging/logger.service.d.ts +75 -0
- package/lib/core/logging/logger.types.d.ts +70 -0
- package/lib/core/types/index.d.ts +76 -0
- package/lib/core/utils/index.d.ts +31 -0
- package/lib/version/ng-ui-system-version.d.ts +9 -0
- package/modal/entry-modal.d.ts +4 -0
- package/modal/index.d.ts +5 -0
- package/modal/lib/components/button/button.component.d.ts +61 -0
- package/modal/lib/components/button/button.types.d.ts +75 -0
- package/modal/lib/components/modal/confirm-dialog.component.d.ts +46 -0
- package/modal/lib/components/modal/index.d.ts +4 -0
- package/modal/lib/components/modal/modal.component.d.ts +44 -0
- package/modal/lib/components/modal/modal.service.d.ts +93 -0
- package/modal/lib/components/modal/modal.types.d.ts +110 -0
- package/modal/lib/core/types/index.d.ts +133 -0
- package/package.json +93 -8
- package/page-header/entry-page-header.d.ts +4 -0
- package/page-header/index.d.ts +5 -0
- package/page-header/lib/components/page-header/breadcrumb.service.d.ts +96 -0
- package/page-header/lib/components/page-header/index.d.ts +16 -0
- package/page-header/lib/components/page-header/page-header.component.d.ts +59 -0
- package/page-header/lib/components/page-header/page-header.types.d.ts +96 -0
- package/public-api.d.ts +11 -6
- package/table/entry-table.d.ts +4 -0
- package/table/index.d.ts +5 -0
- package/table/lib/components/table/index.d.ts +2 -0
- package/table/lib/components/table/paginated-table.component.d.ts +85 -0
- package/table/lib/components/table/table.types.d.ts +86 -0
- package/table/lib/core/utils/index.d.ts +60 -0
- package/toast/entry-toast.d.ts +4 -0
- package/toast/index.d.ts +5 -0
- package/toast/lib/components/toast/index.d.ts +17 -0
- package/toast/lib/components/toast/toast-container.component.d.ts +27 -0
- package/toast/lib/components/toast/toast.component.d.ts +37 -0
- package/toast/lib/components/toast/toast.service.d.ts +39 -0
- package/toast/lib/components/toast/toast.types.d.ts +52 -0
- package/toast/lib/core/types/index.d.ts +133 -0
- package/toast/lib/core/utils/index.d.ts +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gnggln-ng-ui-system-layout-builder.mjs","sources":["../../../packages/ng-ui-system/src/lib/components/layout-builder/layout.service.ts","../../../packages/ng-ui-system/src/lib/components/layout-builder/layout-builder.component.ts","../../../packages/ng-ui-system/src/lib/components/layout-builder/index.ts","../../../packages/ng-ui-system/src/entry-layout-builder.ts","../../../packages/ng-ui-system/src/gnggln-ng-ui-system-layout-builder.ts"],"sourcesContent":["/**\r\n * Central service for programmatic control of the `ui-layout-builder` shell.\r\n *\r\n * Provides reactive state management for:\r\n * - Overlay loader (with body scroll locking)\r\n * - Sidebar open / collapsed state\r\n * - Context-sensitive FAB actions\r\n * - Navigation badge and visibility overrides\r\n * - Layout mode switching (sidebar / topbar / slotted)\r\n * - Content type (fluid / boxed / fullscreen)\r\n * - Topbar bar visibility (notification bars show/hide)\r\n *\r\n * @example\r\n * ```typescript\r\n * export class MyPageComponent {\r\n * private layout = inject(UiLayoutService);\r\n *\r\n * async loadData() {\r\n * this.layout.showLoader();\r\n * try {\r\n * await this.api.fetchAll();\r\n * } finally {\r\n * this.layout.hideLoader();\r\n * }\r\n * }\r\n * }\r\n * ```\r\n */\r\nimport { Injectable, inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n UiFabAction,\r\n UiLayoutFabConfig,\r\n UiLayoutMode,\r\n UiContentType,\r\n} from './layout-builder.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UiLayoutService {\r\n private readonly platformId = inject(PLATFORM_ID);\r\n\r\n // ── Loader ───────────────────────────────────────────────────────\r\n\r\n private readonly _loading$ = new BehaviorSubject<boolean>(false);\r\n /** Whether the overlay loader is currently visible. */\r\n readonly loading$: Observable<boolean> = this._loading$.asObservable();\r\n\r\n /** Show the full-screen overlay loader and block body scroll. */\r\n showLoader(): void {\r\n this._loading$.next(true);\r\n this.setBodyOverflow(true);\r\n }\r\n\r\n /** Hide the overlay loader and restore body scroll. */\r\n hideLoader(): void {\r\n this._loading$.next(false);\r\n this.setBodyOverflow(false);\r\n }\r\n\r\n /** Toggle the overlay loader. */\r\n toggleLoader(): void {\r\n if (this._loading$.value) {\r\n this.hideLoader();\r\n } else {\r\n this.showLoader();\r\n }\r\n }\r\n\r\n /** Synchronous snapshot of the loading state. */\r\n isLoading(): boolean {\r\n return this._loading$.value;\r\n }\r\n\r\n // ── Layout Mode ─────────────────────────────────────────────────\r\n\r\n private readonly _layoutMode$ = new BehaviorSubject<UiLayoutMode>('sidebar');\r\n /** Current layout mode (sidebar or topbar). */\r\n readonly layoutMode$: Observable<UiLayoutMode> = this._layoutMode$.asObservable();\r\n\r\n /**\r\n * Switch layout mode with loader masking the transition.\r\n * Shows the loader, applies the mode change, then hides the loader\r\n * after a short delay to prevent visible layout shift.\r\n */\r\n setLayoutMode(mode: UiLayoutMode, transitionMs = 300): void {\r\n if (this._layoutMode$.value === mode) return;\r\n this.showLoader();\r\n this._layoutMode$.next(mode);\r\n setTimeout(() => this.hideLoader(), transitionMs);\r\n }\r\n\r\n /** Synchronous snapshot of the current layout mode. */\r\n getLayoutMode(): UiLayoutMode {\r\n return this._layoutMode$.value;\r\n }\r\n\r\n /**\r\n * @internal Called by the layout-builder component to set the initial mode\r\n * from the schema without triggering the loader transition.\r\n */\r\n _setInitialLayoutMode(mode: UiLayoutMode): void {\r\n this._layoutMode$.next(mode);\r\n }\r\n\r\n // ── Content Type ────────────────────────────────────────────────\r\n\r\n private readonly _contentType$ = new BehaviorSubject<UiContentType>('fluid');\r\n /** Current content type (fluid, boxed, fullscreen). */\r\n readonly contentType$: Observable<UiContentType> = this._contentType$.asObservable();\r\n\r\n /** Set the content type per-route or globally. */\r\n setContentType(type: UiContentType): void {\r\n this._contentType$.next(type);\r\n }\r\n\r\n /** Synchronous snapshot of the current content type. */\r\n getContentType(): UiContentType {\r\n return this._contentType$.value;\r\n }\r\n\r\n /** @internal */\r\n _setInitialContentType(type: UiContentType): void {\r\n this._contentType$.next(type);\r\n }\r\n\r\n // ── Sidebar ──────────────────────────────────────────────────────\r\n\r\n private readonly _sidebarOpen$ = new BehaviorSubject<boolean>(false);\r\n /** Whether the mobile sidebar drawer is open. */\r\n readonly sidebarOpen$: Observable<boolean> = this._sidebarOpen$.asObservable();\r\n\r\n private readonly _sidebarCollapsed$ = new BehaviorSubject<boolean>(false);\r\n /** Whether the desktop sidebar is in collapsed (icon-only) mode. */\r\n readonly sidebarCollapsed$: Observable<boolean> = this._sidebarCollapsed$.asObservable();\r\n\r\n /** Toggle the desktop sidebar between expanded and collapsed. */\r\n toggleSidebar(): void {\r\n this._sidebarCollapsed$.next(!this._sidebarCollapsed$.value);\r\n }\r\n\r\n /** Set the desktop sidebar collapsed state explicitly. */\r\n collapseSidebar(collapsed = true): void {\r\n this._sidebarCollapsed$.next(collapsed);\r\n }\r\n\r\n /** Open the mobile sidebar drawer. */\r\n openMobileSidebar(): void {\r\n this._sidebarOpen$.next(true);\r\n }\r\n\r\n /** Close the mobile sidebar drawer. */\r\n closeMobileSidebar(): void {\r\n this._sidebarOpen$.next(false);\r\n }\r\n\r\n /** Synchronous snapshot: is the mobile sidebar open? */\r\n isSidebarOpen(): boolean {\r\n return this._sidebarOpen$.value;\r\n }\r\n\r\n /** Synchronous snapshot: is the desktop sidebar collapsed? */\r\n isSidebarCollapsed(): boolean {\r\n return this._sidebarCollapsed$.value;\r\n }\r\n\r\n // ── FAB (context-sensitive) ──────────────────────────────────────\r\n\r\n private _defaultFabConfig: UiLayoutFabConfig | null = null;\r\n private readonly _fabConfig$ = new BehaviorSubject<UiLayoutFabConfig | null>(null);\r\n /** Current FAB configuration (schema default merged with page overrides). */\r\n readonly fabConfig$: Observable<UiLayoutFabConfig | null> = this._fabConfig$.asObservable();\r\n\r\n /**\r\n * Called internally by the layout-builder component to register the\r\n * schema-level default FAB config.\r\n * @internal\r\n */\r\n _setDefaultFabConfig(config: UiLayoutFabConfig | null): void {\r\n this._defaultFabConfig = config;\r\n this._fabConfig$.next(config);\r\n }\r\n\r\n /** Override the FAB main action for the current page context. */\r\n setMainFabAction(action: UiFabAction): void {\r\n const current = this._fabConfig$.value;\r\n this._fabConfig$.next({\r\n mainAction: action,\r\n secondaryActions: current?.secondaryActions ?? [],\r\n position: current?.position ?? 'bottom-right',\r\n });\r\n }\r\n\r\n /** Override all FAB actions for the current page context. */\r\n setFabActions(main: UiFabAction, secondary?: UiFabAction[]): void {\r\n const current = this._fabConfig$.value;\r\n this._fabConfig$.next({\r\n mainAction: main,\r\n secondaryActions: secondary ?? [],\r\n position: current?.position ?? 'bottom-right',\r\n });\r\n }\r\n\r\n /** Reset FAB to the schema-level default configuration. */\r\n clearFabActions(): void {\r\n this._fabConfig$.next(this._defaultFabConfig);\r\n }\r\n\r\n // ── Navigation helpers ───────────────────────────────────────────\r\n\r\n private readonly _navBadges$ = new BehaviorSubject<Map<string, string | number | null>>(new Map());\r\n /** Observable map of nav-item badges keyed by item ID. */\r\n readonly navBadges$: Observable<Map<string, string | number | null>> = this._navBadges$.asObservable();\r\n\r\n private readonly _navVisibility$ = new BehaviorSubject<Map<string, boolean>>(new Map());\r\n /** Observable map of nav-item visibility overrides keyed by item ID. */\r\n readonly navVisibility$: Observable<Map<string, boolean>> = this._navVisibility$.asObservable();\r\n\r\n /** Set or clear a badge on a navigation item. Pass `null` to remove. */\r\n setNavBadge(itemId: string, badge: string | number | null): void {\r\n const map = new Map(this._navBadges$.value);\r\n if (badge === null) {\r\n map.delete(itemId);\r\n } else {\r\n map.set(itemId, badge);\r\n }\r\n this._navBadges$.next(map);\r\n }\r\n\r\n /** Override visibility of a navigation item. */\r\n setNavItemVisibility(itemId: string, visible: boolean): void {\r\n const map = new Map(this._navVisibility$.value);\r\n map.set(itemId, visible);\r\n this._navVisibility$.next(map);\r\n }\r\n\r\n // ── Bar visibility (topbar notification bars) ───────────────────\r\n\r\n private readonly _barVisibility$ = new BehaviorSubject<Map<string, boolean>>(new Map());\r\n /** Observable map of topbar bar visibility keyed by bar ID. */\r\n readonly barVisibility$: Observable<Map<string, boolean>> = this._barVisibility$.asObservable();\r\n\r\n /** Show a topbar bar by ID. */\r\n showBar(barId: string): void {\r\n const map = new Map(this._barVisibility$.value);\r\n map.set(barId, true);\r\n this._barVisibility$.next(map);\r\n }\r\n\r\n /** Hide a topbar bar by ID. */\r\n hideBar(barId: string): void {\r\n const map = new Map(this._barVisibility$.value);\r\n map.set(barId, false);\r\n this._barVisibility$.next(map);\r\n }\r\n\r\n /** Toggle visibility of a topbar bar by ID. */\r\n toggleBar(barId: string): void {\r\n const map = new Map(this._barVisibility$.value);\r\n const current = map.get(barId);\r\n map.set(barId, current === undefined ? false : !current);\r\n this._barVisibility$.next(map);\r\n }\r\n\r\n /** Synchronous check of bar visibility (schema `visible` fallback). */\r\n isBarVisible(barId: string, schemaVisible = true): boolean {\r\n const override = this._barVisibility$.value.get(barId);\r\n return override !== undefined ? override : schemaVisible;\r\n }\r\n\r\n // ── Private helpers ──────────────────────────────────────────────\r\n\r\n private setBodyOverflow(locked: boolean): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n document.body.style.overflow = locked ? 'hidden' : '';\r\n }\r\n }\r\n}\r\n","/**\r\n * Schema-driven application shell that materializes a full responsive layout\r\n * from a single `UiLayoutSchema` descriptor.\r\n *\r\n * Features:\r\n * - Two layout modes: sidebar (collapsible) and topbar (multi-bar stack)\r\n * - Programmatic mode switching with loader masking\r\n * - Content type: fluid, boxed, fullscreen\r\n * - Speed-dial FAB with context-sensitive actions\r\n * - Overlay loader with body-scroll locking\r\n * - Auto-derived breadcrumbs from navigation schema\r\n * - Skip-to-content link and full keyboard navigation\r\n *\r\n * @selector ui-layout-builder\r\n *\r\n * @example\r\n * ```html\r\n * <ui-layout-builder [schema]=\"layoutSchema\" />\r\n * ```\r\n */\r\nimport {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n ViewEncapsulation,\r\n inject,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { Router, RouterOutlet, RouterLink, RouterLinkActive, NavigationEnd } from '@angular/router';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { LucideAngularModule } from 'lucide-angular';\r\nimport { Subscription, filter } from 'rxjs';\r\n\r\nimport { UiLayoutService } from './layout.service';\r\nimport {\r\n UiLayoutSchema,\r\n UiLayoutMode,\r\n UiContentType,\r\n UiLayoutBreadcrumb,\r\n UiNavItem,\r\n UiNavSection,\r\n UiLayoutFabConfig,\r\n UiFabAction,\r\n UiBarConfig,\r\n} from './layout-builder.types';\r\n\r\n@Component({\r\n selector: 'ui-layout-builder',\r\n standalone: true,\r\n imports: [\r\n RouterOutlet,\r\n RouterLink,\r\n RouterLinkActive,\r\n NgTemplateOutlet,\r\n LucideAngularModule,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ui-layout-builder-host' },\r\n template: `\r\n <!-- Skip to content (a11y) -->\r\n <a class=\"ui-layout__skip-link\" href=\"#ui-layout-main\">\r\n Vai al contenuto principale\r\n </a>\r\n\r\n <div\r\n class=\"ui-layout\"\r\n [class.ui-layout--sidebar-collapsed]=\"layoutMode === 'sidebar' && sidebarCollapsed\"\r\n [class.ui-layout--topbar]=\"layoutMode === 'topbar'\"\r\n [class.ui-layout--slotted]=\"layoutMode === 'slotted'\"\r\n >\r\n <!-- ─── Overlay Loader ─────────────────────────────────────── -->\r\n @if (loading) {\r\n <div\r\n class=\"ui-layout__loader-overlay\"\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-label=\"Caricamento in corso\"\r\n >\r\n <div class=\"ui-layout__loader-spinner\" aria-hidden=\"true\">\r\n <svg viewBox=\"0 0 50 50\" class=\"ui-layout__loader-svg\">\r\n <circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke-width=\"4\" />\r\n </svg>\r\n </div>\r\n </div>\r\n }\r\n\r\n @switch (layoutMode) {\r\n <!-- ════════════════════════════════════════════════════════ -->\r\n <!-- ═══ SIDEBAR MODE ═════════════════════════════════════ -->\r\n <!-- ════════════════════════════════════════════════════════ -->\r\n @case ('sidebar') {\r\n <!-- Mobile Top Bar -->\r\n <header class=\"ui-layout__topbar\">\r\n <button\r\n class=\"ui-layout__hamburger\"\r\n (click)=\"layoutService.openMobileSidebar()\"\r\n aria-label=\"Apri navigazione\"\r\n >\r\n <span class=\"ui-layout__hamburger-line\"></span>\r\n <span class=\"ui-layout__hamburger-line\"></span>\r\n <span class=\"ui-layout__hamburger-line\"></span>\r\n </button>\r\n @if (schema.header?.logo) {\r\n @if (schema.header?.logo?.src) {\r\n <img\r\n class=\"ui-layout__topbar-logo-img\"\r\n [src]=\"schema.header?.logo?.src\"\r\n [alt]=\"schema.header?.logo?.alt || schema.header?.title\"\r\n />\r\n } @else if (schema.header?.logo?.text) {\r\n <span class=\"ui-layout__topbar-logo\">{{ schema.header?.logo?.text }}</span>\r\n }\r\n }\r\n <span class=\"ui-layout__topbar-title\">{{ schema.header?.title }}</span>\r\n </header>\r\n\r\n <!-- Mobile Backdrop -->\r\n @if (sidebarOpen) {\r\n <div\r\n class=\"ui-layout__backdrop\"\r\n (click)=\"layoutService.closeMobileSidebar()\"\r\n aria-hidden=\"true\"\r\n ></div>\r\n }\r\n\r\n <!-- Body (sidebar + content) -->\r\n <div class=\"ui-layout__body\">\r\n <aside\r\n class=\"ui-layout__sidebar\"\r\n [class.ui-layout__sidebar--collapsed]=\"sidebarCollapsed\"\r\n [class.ui-layout__sidebar--open]=\"sidebarOpen\"\r\n role=\"navigation\"\r\n aria-label=\"Navigazione principale\"\r\n >\r\n <div class=\"ui-layout__sidebar-header\">\r\n <div class=\"ui-layout__sidebar-brand\">\r\n @if (schema.header?.logo) {\r\n @if (schema.header?.logo?.src) {\r\n <img\r\n class=\"ui-layout__sidebar-logo-img\"\r\n [src]=\"schema.header?.logo?.src\"\r\n [alt]=\"schema.header?.logo?.alt || schema.header?.title\"\r\n />\r\n } @else if (schema.header?.logo?.text) {\r\n <span class=\"ui-layout__sidebar-logo\">{{ schema.header?.logo?.text }}</span>\r\n }\r\n }\r\n @if (!sidebarCollapsed || sidebarOpen) {\r\n <span class=\"ui-layout__sidebar-title\">{{ schema.header?.title }}</span>\r\n }\r\n </div>\r\n\r\n @if (schema.navigation?.collapsible !== false) {\r\n <button\r\n class=\"ui-layout__collapse-btn ui-layout__desktop-only\"\r\n (click)=\"layoutService.toggleSidebar()\"\r\n [attr.aria-label]=\"sidebarCollapsed ? 'Espandi sidebar' : 'Comprimi sidebar'\"\r\n >\r\n <lucide-icon\r\n name=\"chevrons-left\"\r\n [size]=\"16\"\r\n class=\"ui-layout__collapse-icon\"\r\n aria-hidden=\"true\"\r\n />\r\n </button>\r\n }\r\n\r\n <button\r\n class=\"ui-layout__close-btn ui-layout__mobile-only\"\r\n (click)=\"layoutService.closeMobileSidebar()\"\r\n aria-label=\"Chiudi navigazione\"\r\n >\r\n <lucide-icon name=\"x\" [size]=\"16\" aria-hidden=\"true\" />\r\n </button>\r\n </div>\r\n\r\n @if (!sidebarCollapsed || sidebarOpen) {\r\n <nav class=\"ui-layout__sidebar-nav\">\r\n @if (schema.navigation?.sections?.length) {\r\n @for (section of schema.navigation?.sections || []; track section.id) {\r\n <div class=\"ui-layout__nav-section\">\r\n <span class=\"ui-layout__nav-section-title\">{{ section.label }}</span>\r\n @for (item of getItemsForSection(section); track item.id) {\r\n @if (!isItemHidden(item)) {\r\n <ng-container\r\n *ngTemplateOutlet=\"navItemTpl; context: { $implicit: item }\"\r\n />\r\n }\r\n }\r\n </div>\r\n }\r\n } @else {\r\n <div class=\"ui-layout__nav-section\">\r\n @for (item of schema.navigation?.items || []; track item.id) {\r\n @if (!isItemHidden(item)) {\r\n <ng-container\r\n *ngTemplateOutlet=\"navItemTpl; context: { $implicit: item }\"\r\n />\r\n }\r\n }\r\n </div>\r\n }\r\n </nav>\r\n }\r\n </aside>\r\n\r\n <!-- Main content area -->\r\n <main\r\n class=\"ui-layout__content\"\r\n [class.ui-layout__content--boxed]=\"contentType === 'boxed'\"\r\n [class.ui-layout__content--fullscreen]=\"contentType === 'fullscreen'\"\r\n [class.ui-layout__content--transitioning]=\"contentTransitioning\"\r\n (animationend)=\"contentTransitioning = false\"\r\n id=\"ui-layout-main\"\r\n tabindex=\"-1\"\r\n >\r\n <div class=\"ui-layout__content-inner\" [class.ui-layout__content-inner--boxed]=\"contentType === 'boxed'\">\r\n <ng-container *ngTemplateOutlet=\"pageHeaderTpl\" />\r\n <router-outlet />\r\n </div>\r\n </main>\r\n </div>\r\n }\r\n\r\n <!-- ════════════════════════════════════════════════════════ -->\r\n <!-- ═══ TOPBAR MODE ══════════════════════════════════════ -->\r\n <!-- ════════════════════════════════════════════════════════ -->\r\n @case ('topbar') {\r\n <!-- Bar stack -->\r\n <div class=\"ui-layout__bar-stack\">\r\n @for (bar of visibleBars; track bar.id) {\r\n @switch (bar.type) {\r\n @case ('notification') {\r\n @if (bar.notification) {\r\n <div\r\n class=\"ui-layout__bar ui-layout__bar--notification\"\r\n [class]=\"'ui-layout__bar--notification-' + (bar.notification.variant || 'primary')\"\r\n role=\"alert\"\r\n >\r\n @if (bar.notification.icon) {\r\n <lucide-icon [name]=\"bar.notification.icon\" [size]=\"16\" aria-hidden=\"true\" />\r\n }\r\n <span class=\"ui-layout__bar-text\">{{ bar.notification.text }}</span>\r\n @if (bar.notification.dismissible !== false) {\r\n <button\r\n class=\"ui-layout__bar-dismiss\"\r\n (click)=\"dismissBar(bar.id)\"\r\n aria-label=\"Chiudi notifica\"\r\n >\r\n <lucide-icon name=\"x\" [size]=\"14\" aria-hidden=\"true\" />\r\n </button>\r\n }\r\n </div>\r\n }\r\n }\r\n\r\n @case ('brand') {\r\n @if (bar.brand; as brand) {\r\n <div class=\"ui-layout__bar ui-layout__bar--brand\">\r\n <div class=\"ui-layout__bar-brand-left\">\r\n <button\r\n class=\"ui-layout__hamburger ui-layout__topbar-hamburger\"\r\n (click)=\"layoutService.openMobileSidebar()\"\r\n aria-label=\"Apri navigazione\"\r\n >\r\n <span class=\"ui-layout__hamburger-line\"></span>\r\n <span class=\"ui-layout__hamburger-line\"></span>\r\n <span class=\"ui-layout__hamburger-line\"></span>\r\n </button>\r\n @if (brand.logo; as logo) {\r\n @if (logo.src) {\r\n <img\r\n class=\"ui-layout__bar-logo-img\"\r\n [src]=\"logo.src\"\r\n [alt]=\"logo.alt || brand.title || ''\"\r\n />\r\n } @else if (logo.text) {\r\n <span class=\"ui-layout__bar-logo\">{{ logo.text }}</span>\r\n }\r\n }\r\n @if (brand.title; as brandTitle) {\r\n <span class=\"ui-layout__bar-title\">{{ brandTitle }}</span>\r\n }\r\n </div>\r\n @if (brand.userDropdown; as dropdown) {\r\n <div class=\"ui-layout__user-dropdown\">\r\n <button\r\n class=\"ui-layout__user-dropdown-trigger\"\r\n (click)=\"userDropdownOpen = !userDropdownOpen\"\r\n [attr.aria-expanded]=\"userDropdownOpen\"\r\n aria-haspopup=\"true\"\r\n >\r\n @if (dropdown.avatar?.src) {\r\n <img\r\n class=\"ui-layout__user-avatar\"\r\n [src]=\"dropdown.avatar!.src\"\r\n [alt]=\"dropdown.avatar!.alt || dropdown.label\"\r\n />\r\n } @else {\r\n <lucide-icon\r\n [name]=\"dropdown.icon || 'user'\"\r\n [size]=\"18\"\r\n aria-hidden=\"true\"\r\n />\r\n }\r\n <span class=\"ui-layout__user-label\">{{ dropdown.label }}</span>\r\n <lucide-icon name=\"chevron-down\" [size]=\"14\" aria-hidden=\"true\" class=\"ui-layout__user-chevron\" />\r\n </button>\r\n @if (userDropdownOpen) {\r\n <div class=\"ui-layout__user-dropdown-menu\" role=\"menu\">\r\n @for (dItem of dropdown.items; track dItem.id) {\r\n @if (dItem.divider) {\r\n <hr class=\"ui-layout__user-dropdown-divider\" />\r\n }\r\n @if (dItem.route) {\r\n <a\r\n class=\"ui-layout__user-dropdown-item\"\r\n [routerLink]=\"dItem.route\"\r\n role=\"menuitem\"\r\n (click)=\"userDropdownOpen = false\"\r\n >\r\n @if (dItem.icon) {\r\n <lucide-icon [name]=\"dItem.icon\" [size]=\"16\" aria-hidden=\"true\" />\r\n }\r\n {{ dItem.label }}\r\n </a>\r\n } @else {\r\n <button\r\n class=\"ui-layout__user-dropdown-item\"\r\n role=\"menuitem\"\r\n (click)=\"onDropdownAction(dItem)\"\r\n >\r\n @if (dItem.icon) {\r\n <lucide-icon [name]=\"dItem.icon\" [size]=\"16\" aria-hidden=\"true\" />\r\n }\r\n {{ dItem.label }}\r\n </button>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n }\r\n\r\n @case ('navigation') {\r\n <nav class=\"ui-layout__bar ui-layout__bar--navigation\" role=\"navigation\" aria-label=\"Navigazione principale\">\r\n @for (item of getTopbarNavItems(bar); track item.id) {\r\n @if (!isItemHidden(item)) {\r\n @if (item.children?.length) {\r\n <div class=\"ui-layout__hnav-dropdown\" [class.ui-layout__hnav-dropdown--open]=\"hnavDropdownId === item.id\">\r\n <button\r\n class=\"ui-layout__hnav-link ui-layout__hnav-link--parent\"\r\n [class.ui-layout__hnav-link--active]=\"isParentActive(item)\"\r\n (click)=\"toggleHnavDropdown(item.id)\"\r\n [attr.aria-expanded]=\"hnavDropdownId === item.id\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"16\" aria-hidden=\"true\" />\r\n }\r\n <span>{{ item.label }}</span>\r\n <lucide-icon name=\"chevron-down\" [size]=\"14\" aria-hidden=\"true\" class=\"ui-layout__hnav-chevron\" />\r\n </button>\r\n @if (hnavDropdownId === item.id) {\r\n <div class=\"ui-layout__hnav-dropdown-menu\">\r\n @for (group of item.children; track group.label) {\r\n <span class=\"ui-layout__hnav-dropdown-label\">{{ group.label }}</span>\r\n @for (child of group.items; track child.id) {\r\n @if (!isItemHidden(child)) {\r\n <a\r\n class=\"ui-layout__hnav-dropdown-item\"\r\n [routerLink]=\"child.route\"\r\n routerLinkActive=\"ui-layout__hnav-dropdown-item--active\"\r\n (click)=\"hnavDropdownId = null; onNavClick()\"\r\n >\r\n {{ child.label }}\r\n </a>\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n } @else if (item.type === 'external') {\r\n <a\r\n class=\"ui-layout__hnav-link\"\r\n [href]=\"item.href\"\r\n [target]=\"item.target || '_blank'\"\r\n [attr.rel]=\"item.target === '_blank' ? 'noopener noreferrer' : null\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"16\" aria-hidden=\"true\" />\r\n }\r\n <span>{{ item.label }}</span>\r\n <lucide-icon name=\"external-link\" [size]=\"12\" aria-hidden=\"true\" />\r\n </a>\r\n } @else if (item.type !== 'divider') {\r\n <a\r\n class=\"ui-layout__hnav-link\"\r\n [routerLink]=\"item.route\"\r\n routerLinkActive=\"ui-layout__hnav-link--active\"\r\n [routerLinkActiveOptions]=\"{ exact: item.routeActiveExact || false }\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"16\" aria-hidden=\"true\" />\r\n }\r\n <span>{{ item.label }}</span>\r\n @if (getItemBadge(item)) {\r\n <span class=\"ui-layout__badge\">{{ getItemBadge(item) }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n }\r\n </nav>\r\n }\r\n\r\n @case ('links') {\r\n @if (bar.links) {\r\n <div\r\n class=\"ui-layout__bar ui-layout__bar--links\"\r\n [style.justify-content]=\"bar.links.align === 'start' ? 'flex-start' : bar.links.align === 'center' ? 'center' : bar.links.align === 'space-between' ? 'space-between' : 'flex-end'\"\r\n >\r\n @for (lnk of bar.links.items; track lnk.label || lnk.ariaLabel || $index) {\r\n @if (lnk.route) {\r\n <a class=\"ui-layout__bar-link\" [routerLink]=\"lnk.route\" [attr.aria-label]=\"lnk.ariaLabel || null\">\r\n @if (lnk.icon) {\r\n <lucide-icon [name]=\"lnk.icon\" [size]=\"14\" aria-hidden=\"true\" />\r\n }\r\n @if (lnk.label) {\r\n <span>{{ lnk.label }}</span>\r\n }\r\n </a>\r\n } @else if (lnk.href) {\r\n <a\r\n class=\"ui-layout__bar-link\"\r\n [href]=\"lnk.href\"\r\n [target]=\"lnk.target || '_self'\"\r\n [attr.rel]=\"lnk.target === '_blank' ? 'noopener noreferrer' : null\"\r\n [attr.aria-label]=\"lnk.ariaLabel || null\"\r\n >\r\n @if (lnk.icon) {\r\n <lucide-icon [name]=\"lnk.icon\" [size]=\"14\" aria-hidden=\"true\" />\r\n }\r\n @if (lnk.label) {\r\n <span>{{ lnk.label }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n </div>\r\n\r\n <!-- Mobile Backdrop (topbar mode) -->\r\n @if (sidebarOpen) {\r\n <div\r\n class=\"ui-layout__backdrop ui-layout__backdrop--topbar\"\r\n (click)=\"layoutService.closeMobileSidebar()\"\r\n aria-hidden=\"true\"\r\n ></div>\r\n }\r\n\r\n <!-- Mobile drawer (topbar mode) -->\r\n <aside\r\n class=\"ui-layout__sidebar ui-layout__sidebar--topbar-drawer\"\r\n [class.ui-layout__sidebar--open]=\"sidebarOpen\"\r\n role=\"navigation\"\r\n aria-label=\"Navigazione principale\"\r\n >\r\n <div class=\"ui-layout__sidebar-header\">\r\n <div class=\"ui-layout__sidebar-brand\">\r\n @if (schema.header?.logo) {\r\n @if (schema.header?.logo?.src) {\r\n <img class=\"ui-layout__sidebar-logo-img\" [src]=\"schema.header?.logo?.src\" [alt]=\"schema.header?.logo?.alt || schema.header?.title\" />\r\n } @else if (schema.header?.logo?.text) {\r\n <span class=\"ui-layout__sidebar-logo\">{{ schema.header?.logo?.text }}</span>\r\n }\r\n }\r\n <span class=\"ui-layout__sidebar-title\">{{ schema.header?.title }}</span>\r\n </div>\r\n <button class=\"ui-layout__close-btn\" (click)=\"layoutService.closeMobileSidebar()\" aria-label=\"Chiudi navigazione\">\r\n <lucide-icon name=\"x\" [size]=\"16\" aria-hidden=\"true\" />\r\n </button>\r\n </div>\r\n <nav class=\"ui-layout__sidebar-nav\">\r\n @if (schema.navigation?.sections?.length) {\r\n @for (section of schema.navigation?.sections || []; track section.id) {\r\n <div class=\"ui-layout__nav-section\">\r\n <span class=\"ui-layout__nav-section-title\">{{ section.label }}</span>\r\n @for (item of getItemsForSection(section); track item.id) {\r\n @if (!isItemHidden(item)) {\r\n <ng-container *ngTemplateOutlet=\"navItemTpl; context: { $implicit: item }\" />\r\n }\r\n }\r\n </div>\r\n }\r\n } @else {\r\n <div class=\"ui-layout__nav-section\">\r\n @for (item of schema.navigation?.items || []; track item.id) {\r\n @if (!isItemHidden(item)) {\r\n <ng-container *ngTemplateOutlet=\"navItemTpl; context: { $implicit: item }\" />\r\n }\r\n }\r\n </div>\r\n }\r\n </nav>\r\n </aside>\r\n\r\n <!-- Main content area (topbar mode) -->\r\n <main\r\n class=\"ui-layout__content ui-layout__content--topbar\"\r\n [class.ui-layout__content--boxed]=\"contentType === 'boxed'\"\r\n [class.ui-layout__content--fullscreen]=\"contentType === 'fullscreen'\"\r\n [class.ui-layout__content--transitioning]=\"contentTransitioning\"\r\n (animationend)=\"contentTransitioning = false\"\r\n id=\"ui-layout-main\"\r\n tabindex=\"-1\"\r\n >\r\n <div class=\"ui-layout__content-inner\" [class.ui-layout__content-inner--boxed]=\"contentType === 'boxed'\">\r\n <ng-container *ngTemplateOutlet=\"pageHeaderTpl\" />\r\n <router-outlet />\r\n </div>\r\n </main>\r\n }\r\n\r\n @case ('slotted') {\r\n <!-- Slotted Header -->\r\n <header class=\"ui-layout__slotted-header\">\r\n <ng-content select=\"[uiLayoutHeader]\" />\r\n </header>\r\n\r\n <!-- Main content area (slotted mode) -->\r\n <main\r\n class=\"ui-layout__content ui-layout__content--slotted\"\r\n [class.ui-layout__content--boxed]=\"contentType === 'boxed'\"\r\n [class.ui-layout__content--fullscreen]=\"contentType === 'fullscreen'\"\r\n [class.ui-layout__content--transitioning]=\"contentTransitioning\"\r\n (animationend)=\"contentTransitioning = false\"\r\n id=\"ui-layout-main\"\r\n tabindex=\"-1\"\r\n >\r\n <div class=\"ui-layout__content-inner\" [class.ui-layout__content-inner--boxed]=\"contentType === 'boxed'\">\r\n <ng-container *ngTemplateOutlet=\"pageHeaderTpl\" />\r\n <router-outlet />\r\n </div>\r\n </main>\r\n\r\n <!-- Slotted Footer -->\r\n <footer class=\"ui-layout__slotted-footer\">\r\n <ng-content select=\"[uiLayoutFooter]\" />\r\n </footer>\r\n }\r\n }\r\n\r\n <!-- ─── Footer (sidebar/topbar only) ──────────────────────────── -->\r\n @if (layoutMode !== 'slotted' && schema.footer) {\r\n <footer class=\"ui-layout__footer\">\r\n @if (schema.footer.links?.length) {\r\n <nav class=\"ui-layout__footer-links\" aria-label=\"Link footer\">\r\n @for (link of schema.footer.links; track link.label) {\r\n @if (link.route) {\r\n <a class=\"ui-layout__footer-link\" [routerLink]=\"link.route\">\r\n @if (link.icon) {\r\n <lucide-icon [name]=\"link.icon\" [size]=\"14\" aria-hidden=\"true\" />\r\n }\r\n {{ link.label }}\r\n </a>\r\n } @else if (link.href) {\r\n <a\r\n class=\"ui-layout__footer-link\"\r\n [href]=\"link.href\"\r\n [target]=\"link.target || '_self'\"\r\n [attr.rel]=\"link.target === '_blank' ? 'noopener noreferrer' : null\"\r\n >\r\n @if (link.icon) {\r\n <lucide-icon [name]=\"link.icon\" [size]=\"14\" aria-hidden=\"true\" />\r\n }\r\n {{ link.label }}\r\n </a>\r\n }\r\n }\r\n </nav>\r\n }\r\n @if (schema.footer.text) {\r\n <span class=\"ui-layout__footer-text\">{{ schema.footer.text }}</span>\r\n }\r\n </footer>\r\n }\r\n\r\n <!-- ─── Speed Dial FAB ─────────────────────────────────────── -->\r\n @if (currentFabConfig) {\r\n <div\r\n class=\"ui-layout__fab\"\r\n [class.ui-layout__fab--open]=\"fabOpen\"\r\n [class.ui-layout__fab--bottom-left]=\"currentFabConfig.position === 'bottom-left'\"\r\n role=\"complementary\"\r\n aria-label=\"Azioni rapide\"\r\n >\r\n @if (fabOpen && currentFabConfig.secondaryActions?.length) {\r\n <div class=\"ui-layout__fab-actions\">\r\n @for (action of currentFabConfig.secondaryActions; track action.id; let i = $index) {\r\n <button\r\n class=\"ui-layout__fab-action\"\r\n [class]=\"'ui-layout__fab-action--' + (action.variant || 'neutral')\"\r\n [attr.aria-label]=\"action.ariaLabel || action.label\"\r\n [title]=\"action.label\"\r\n [style.animation-delay]=\"(i * 50) + 'ms'\"\r\n (click)=\"onFabAction(action)\"\r\n >\r\n <lucide-icon [name]=\"action.icon\" [size]=\"18\" aria-hidden=\"true\" />\r\n <span class=\"ui-layout__fab-action-label\">{{ action.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n }\r\n <button\r\n class=\"ui-layout__fab-main\"\r\n [class]=\"'ui-layout__fab-main--' + (currentFabConfig.mainAction.variant || 'primary')\"\r\n [attr.aria-label]=\"currentFabConfig.mainAction.ariaLabel || currentFabConfig.mainAction.label\"\r\n [attr.aria-expanded]=\"currentFabConfig.secondaryActions?.length ? fabOpen : null\"\r\n (click)=\"onFabMainClick()\"\r\n >\r\n <lucide-icon\r\n [name]=\"currentFabConfig.mainAction.icon\"\r\n [size]=\"24\"\r\n aria-hidden=\"true\"\r\n class=\"ui-layout__fab-main-icon\"\r\n />\r\n </button>\r\n </div>\r\n }\r\n\r\n <!-- ─── Bottom Navigation (mobile, sidebar mode) ────────────── -->\r\n @if (layoutMode === 'sidebar' && bottomNavItems.length > 0 && mobileMode !== 'drawer') {\r\n <nav\r\n class=\"ui-layout__bottom-nav\"\r\n role=\"navigation\"\r\n aria-label=\"Navigazione rapida\"\r\n >\r\n @for (item of bottomNavItems; track item.id) {\r\n <a\r\n class=\"ui-layout__bottom-nav-item\"\r\n [routerLink]=\"item.route\"\r\n routerLinkActive=\"ui-layout__bottom-nav-item--active\"\r\n [routerLinkActiveOptions]=\"{ exact: item.routeActiveExact || false }\"\r\n [attr.aria-current]=\"isRouteActive(item) ? 'page' : null\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"20\" aria-hidden=\"true\" />\r\n }\r\n <span class=\"ui-layout__bottom-nav-label\">{{ item.label }}</span>\r\n @if (getItemBadge(item)) {\r\n <span class=\"ui-layout__badge\" aria-label=\"Notifica\">{{ getItemBadge(item) }}</span>\r\n }\r\n </a>\r\n }\r\n </nav>\r\n }\r\n </div>\r\n\r\n <!-- ═══ SHARED TEMPLATES ═══════════════════════════════════════ -->\r\n\r\n <!-- Page header with auto-derived breadcrumbs -->\r\n <ng-template #pageHeaderTpl>\r\n @if (schema.pageHeader?.show !== false && breadcrumbs.length > 0) {\r\n <header class=\"ui-layout__page-header\">\r\n <nav aria-label=\"Breadcrumb\" class=\"ui-layout__breadcrumb-nav\">\r\n <ol class=\"ui-layout__breadcrumb\" itemscope itemtype=\"https://schema.org/BreadcrumbList\">\r\n @if (schema.pageHeader?.showHome !== false) {\r\n <li class=\"ui-layout__breadcrumb-item\" itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\">\r\n <a itemprop=\"item\" [routerLink]=\"schema.pageHeader?.homeRoute || '/'\" class=\"ui-layout__breadcrumb-link\" aria-label=\"Home\">\r\n <lucide-icon name=\"home\" [size]=\"14\" aria-hidden=\"true\" />\r\n <span itemprop=\"name\" class=\"ui-layout__breadcrumb-text\">Home</span>\r\n </a>\r\n <meta itemprop=\"position\" content=\"1\" />\r\n <span class=\"ui-layout__breadcrumb-sep\" aria-hidden=\"true\">\r\n <lucide-icon name=\"chevron-right\" [size]=\"14\" />\r\n </span>\r\n </li>\r\n }\r\n @for (crumb of breadcrumbs; track crumb.label; let i = $index) {\r\n <li\r\n class=\"ui-layout__breadcrumb-item\"\r\n [class.ui-layout__breadcrumb-item--current]=\"crumb.isLast\"\r\n itemprop=\"itemListElement\"\r\n itemscope\r\n itemtype=\"https://schema.org/ListItem\"\r\n >\r\n @if (!crumb.isLast && crumb.url) {\r\n <a itemprop=\"item\" [routerLink]=\"crumb.url\" class=\"ui-layout__breadcrumb-link\">\r\n <span itemprop=\"name\" class=\"ui-layout__breadcrumb-text\">{{ crumb.label }}</span>\r\n </a>\r\n <span class=\"ui-layout__breadcrumb-sep\" aria-hidden=\"true\">\r\n <lucide-icon name=\"chevron-right\" [size]=\"14\" />\r\n </span>\r\n } @else {\r\n <span itemprop=\"name\" class=\"ui-layout__breadcrumb-text ui-layout__breadcrumb-text--current\" aria-current=\"page\">\r\n {{ crumb.label }}\r\n </span>\r\n }\r\n <meta itemprop=\"position\" [attr.content]=\"(schema.pageHeader?.showHome !== false) ? i + 2 : i + 1\" />\r\n </li>\r\n }\r\n </ol>\r\n </nav>\r\n <h1 class=\"ui-layout__page-title\">{{ pageTitle }}</h1>\r\n </header>\r\n }\r\n </ng-template>\r\n\r\n <!-- Nav item template (sidebar, recursive-friendly) -->\r\n <ng-template #navItemTpl let-item>\r\n @if (item.type === 'divider') {\r\n <hr class=\"ui-layout__nav-divider\" />\r\n } @else if (item.type === 'external') {\r\n <a\r\n class=\"ui-layout__nav-link\"\r\n [href]=\"item.href\"\r\n [target]=\"item.target || '_blank'\"\r\n [attr.rel]=\"item.target === '_blank' ? 'noopener noreferrer' : null\"\r\n (click)=\"onNavClick()\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"16\" aria-hidden=\"true\" class=\"ui-layout__nav-icon\" />\r\n }\r\n <span class=\"ui-layout__nav-label\">{{ item.label }}</span>\r\n <lucide-icon name=\"external-link\" [size]=\"12\" aria-hidden=\"true\" class=\"ui-layout__nav-external\" />\r\n @if (getItemBadge(item)) {\r\n <span class=\"ui-layout__badge\">{{ getItemBadge(item) }}</span>\r\n }\r\n </a>\r\n } @else if (item.children?.length) {\r\n <button\r\n class=\"ui-layout__nav-link ui-layout__nav-link--parent\"\r\n [class.ui-layout__nav-link--active]=\"isParentActive(item)\"\r\n [class.ui-layout__nav-link--expanded]=\"expandedIds.has(item.id)\"\r\n [attr.aria-expanded]=\"expandedIds.has(item.id)\"\r\n (click)=\"toggleExpand(item)\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"16\" aria-hidden=\"true\" class=\"ui-layout__nav-icon\" />\r\n }\r\n <span class=\"ui-layout__nav-label\">{{ item.label }}</span>\r\n @if (getItemBadge(item)) {\r\n <span class=\"ui-layout__badge\">{{ getItemBadge(item) }}</span>\r\n }\r\n <span class=\"ui-layout__nav-chevron\" aria-hidden=\"true\">\r\n <lucide-icon name=\"chevron-right\" [size]=\"14\" />\r\n </span>\r\n </button>\r\n @if (expandedIds.has(item.id)) {\r\n <div class=\"ui-layout__nav-children\">\r\n @for (group of item.children; track group.label) {\r\n <span class=\"ui-layout__nav-group-label\">{{ group.label }}</span>\r\n @for (child of group.items; track child.id) {\r\n @if (!isItemHidden(child)) {\r\n <a\r\n class=\"ui-layout__nav-link ui-layout__nav-link--child\"\r\n [routerLink]=\"child.route\"\r\n routerLinkActive=\"ui-layout__nav-link--active\"\r\n (click)=\"onNavClick()\"\r\n >\r\n <span class=\"ui-layout__nav-label\">{{ child.label }}</span>\r\n @if (getItemBadge(child)) {\r\n <span class=\"ui-layout__badge\">{{ getItemBadge(child) }}</span>\r\n }\r\n </a>\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n } @else {\r\n <a\r\n class=\"ui-layout__nav-link\"\r\n [routerLink]=\"item.route\"\r\n routerLinkActive=\"ui-layout__nav-link--active\"\r\n [routerLinkActiveOptions]=\"{ exact: item.routeActiveExact || false }\"\r\n [attr.aria-current]=\"isRouteActive(item) ? 'page' : null\"\r\n (click)=\"onNavClick()\"\r\n >\r\n @if (item.icon) {\r\n <lucide-icon [name]=\"item.icon\" [size]=\"16\" aria-hidden=\"true\" class=\"ui-layout__nav-icon\" />\r\n }\r\n <span class=\"ui-layout__nav-label\">{{ item.label }}</span>\r\n @if (getItemBadge(item)) {\r\n <span class=\"ui-layout__badge\">{{ getItemBadge(item) }}</span>\r\n }\r\n </a>\r\n }\r\n </ng-template>\r\n `,\r\n styleUrl: './layout-builder.component.scss',\r\n})\r\nexport class UiLayoutBuilderComponent implements OnInit, OnDestroy {\r\n /** Full layout descriptor. */\r\n @Input({ required: true }) schema!: UiLayoutSchema;\r\n\r\n readonly layoutService = inject(UiLayoutService);\r\n private readonly router = inject(Router);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n private subs: Subscription[] = [];\r\n\r\n currentUrl = '';\r\n expandedIds = new Set<string>();\r\n fabOpen = false;\r\n currentFabConfig: UiLayoutFabConfig | null = null;\r\n\r\n loading = false;\r\n sidebarOpen = false;\r\n sidebarCollapsed = false;\r\n layoutMode: UiLayoutMode = 'sidebar';\r\n contentType: UiContentType = 'fluid';\r\n contentTransitioning = false;\r\n breadcrumbs: UiLayoutBreadcrumb[] = [];\r\n userDropdownOpen = false;\r\n hnavDropdownId: string | null = null;\r\n\r\n private navBadges = new Map<string, string | number | null>();\r\n private navVisibility = new Map<string, boolean>();\r\n private barVisibility = new Map<string, boolean>();\r\n\r\n /** Resolved page title from the last breadcrumb. */\r\n get pageTitle(): string {\r\n if (!this.breadcrumbs.length) return '';\r\n return this.breadcrumbs[this.breadcrumbs.length - 1].label;\r\n }\r\n\r\n /** Items flagged for the mobile bottom navigation bar (max 5). */\r\n get bottomNavItems(): UiNavItem[] {\r\n if (!this.schema.navigation) return [];\r\n return this.schema.navigation.items\r\n .filter((i) => i.bottomNav && !this.isItemHidden(i) && i.route)\r\n .sort((a, b) => (a.bottomNavOrder ?? 99) - (b.bottomNavOrder ?? 99))\r\n .slice(0, 5);\r\n }\r\n\r\n get mobileMode(): string {\r\n return this.schema.navigation?.mobileMode || 'both';\r\n }\r\n\r\n /** Topbar bars filtered by visibility (schema default + service overrides). */\r\n get visibleBars(): UiBarConfig[] {\r\n if (!this.schema.topbar?.bars) return [];\r\n return this.schema.topbar.bars.filter((bar) =>\r\n this.layoutService.isBarVisible(bar.id, bar.visible !== false),\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.currentUrl = this.router.url;\r\n this.autoExpandFromUrl(this.currentUrl);\r\n\r\n if (this.schema.mode) {\r\n this.layoutService._setInitialLayoutMode(this.schema.mode);\r\n }\r\n if (this.schema.contentType) {\r\n this.layoutService._setInitialContentType(this.schema.contentType);\r\n }\r\n if (this.schema.fab) {\r\n this.layoutService._setDefaultFabConfig(this.schema.fab);\r\n }\r\n if (this.schema.loader?.showOnInit) {\r\n this.layoutService.showLoader();\r\n }\r\n\r\n this.breadcrumbs = this.computeBreadcrumbs(this.currentUrl);\r\n\r\n this.subs.push(\r\n this.layoutService.loading$.subscribe((v) => {\r\n this.loading = v;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.sidebarOpen$.subscribe((v) => {\r\n this.sidebarOpen = v;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.sidebarCollapsed$.subscribe((v) => {\r\n this.sidebarCollapsed = v;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.fabConfig$.subscribe((config) => {\r\n this.currentFabConfig = config;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.navBadges$.subscribe((m) => {\r\n this.navBadges = m;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.navVisibility$.subscribe((m) => {\r\n this.navVisibility = m;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.layoutMode$.subscribe((mode) => {\r\n this.layoutMode = mode;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.contentType$.subscribe((type) => {\r\n this.contentType = type;\r\n this.cdr.markForCheck();\r\n }),\r\n this.layoutService.barVisibility$.subscribe((m) => {\r\n this.barVisibility = m;\r\n this.cdr.markForCheck();\r\n }),\r\n this.router.events\r\n .pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\r\n .subscribe((e) => {\r\n this.currentUrl = e.urlAfterRedirects;\r\n this.autoExpandFromUrl(this.currentUrl);\r\n this.layoutService.closeMobileSidebar();\r\n this.breadcrumbs = this.computeBreadcrumbs(this.currentUrl);\r\n this.contentTransitioning = true;\r\n this.userDropdownOpen = false;\r\n this.hnavDropdownId = null;\r\n\r\n if (this.schema.loader?.showOnInit && this.layoutService.isLoading()) {\r\n const hide = () => this.layoutService.hideLoader();\r\n const minDuration = this.schema.loader.minDuration ?? 0;\r\n if (minDuration > 0) {\r\n setTimeout(hide, minDuration);\r\n } else {\r\n hide();\r\n }\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.forEach((s) => s.unsubscribe());\r\n }\r\n\r\n @HostListener('document:keydown.escape')\r\n onEscape(): void {\r\n if (this.fabOpen) {\r\n this.fabOpen = false;\r\n }\r\n if (this.userDropdownOpen) {\r\n this.userDropdownOpen = false;\r\n }\r\n if (this.hnavDropdownId) {\r\n this.hnavDropdownId = null;\r\n }\r\n if (this.sidebarOpen) {\r\n this.layoutService.closeMobileSidebar();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n const target = event.target as HTMLElement;\r\n if (this.userDropdownOpen && !target.closest('.ui-layout__user-dropdown')) {\r\n this.userDropdownOpen = false;\r\n this.cdr.markForCheck();\r\n }\r\n if (this.hnavDropdownId && !target.closest('.ui-layout__hnav-dropdown')) {\r\n this.hnavDropdownId = null;\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n // ── Navigation helpers ──────────────────────────────────────────\r\n\r\n getItemsForSection(section: UiNavSection): UiNavItem[] {\r\n if (!this.schema.navigation) return [];\r\n const idSet = new Set(section.itemIds);\r\n return this.schema.navigation.items.filter((i) => idSet.has(i.id));\r\n }\r\n\r\n isItemHidden(item: UiNavItem): boolean {\r\n const override = this.navVisibility.get(item.id);\r\n if (override !== undefined) return !override;\r\n return item.hidden ?? false;\r\n }\r\n\r\n getItemBadge(item: UiNavItem): string | number | null {\r\n return this.navBadges.get(item.id) ?? item.badge ?? null;\r\n }\r\n\r\n isParentActive(item: UiNavItem): boolean {\r\n if (!item.route) return false;\r\n return this.currentUrl === item.route || this.currentUrl.startsWith(item.route + '/');\r\n }\r\n\r\n isRouteActive(item: UiNavItem): boolean {\r\n if (!item.route) return false;\r\n if (item.routeActiveExact) return this.currentUrl === item.route;\r\n return this.currentUrl === item.route || this.currentUrl.startsWith(item.route + '/');\r\n }\r\n\r\n toggleExpand(item: UiNavItem): void {\r\n if (this.expandedIds.has(item.id)) {\r\n this.expandedIds.delete(item.id);\r\n } else {\r\n this.expandedIds.add(item.id);\r\n if (!this.isParentActive(item) && item.children?.length) {\r\n const firstChild = item.children[0]?.items[0];\r\n if (firstChild?.route) {\r\n this.router.navigateByUrl(firstChild.route);\r\n }\r\n }\r\n }\r\n }\r\n\r\n onNavClick(): void {\r\n this.layoutService.closeMobileSidebar();\r\n }\r\n\r\n // ── FAB ─────────────────────────────────────────────────────────\r\n\r\n onFabMainClick(): void {\r\n if (this.currentFabConfig?.secondaryActions?.length) {\r\n this.fabOpen = !this.fabOpen;\r\n } else {\r\n this.currentFabConfig?.mainAction.action?.();\r\n }\r\n }\r\n\r\n onFabAction(action: UiFabAction): void {\r\n this.fabOpen = false;\r\n action.action?.();\r\n }\r\n\r\n // ── Topbar helpers ──────────────────────────────────────────────\r\n\r\n getTopbarNavItems(bar: UiBarConfig): UiNavItem[] {\r\n return bar.navigation?.items ?? this.schema.navigation?.items ?? [];\r\n }\r\n\r\n toggleHnavDropdown(itemId: string): void {\r\n this.hnavDropdownId = this.hnavDropdownId === itemId ? null : itemId;\r\n }\r\n\r\n dismissBar(barId: string): void {\r\n this.layoutService.hideBar(barId);\r\n }\r\n\r\n onDropdownAction(item: { action?: () => void }): void {\r\n this.userDropdownOpen = false;\r\n item.action?.();\r\n }\r\n\r\n // ── Breadcrumb derivation from nav schema ───────────────────────\r\n\r\n /**\r\n * Derives breadcrumbs by matching the current URL against the\r\n * navigation schema. Walks top-level items, sections, and children\r\n * to build a trail from root to current page.\r\n */\r\n private computeBreadcrumbs(url: string): UiLayoutBreadcrumb[] {\r\n if (!this.schema.navigation) return [];\r\n const items = this.schema.navigation.items;\r\n const sections = this.schema.navigation.sections;\r\n\r\n for (const item of items) {\r\n if (item.type === 'divider' || item.type === 'external') continue;\r\n\r\n if (item.children?.length) {\r\n for (const group of item.children) {\r\n for (const child of group.items) {\r\n if (child.route && this.urlMatches(url, child.route, child.routeActiveExact)) {\r\n const trail: UiLayoutBreadcrumb[] = [];\r\n const sectionLabel = this.findSectionLabel(item.id, sections);\r\n if (sectionLabel) {\r\n trail.push({ label: sectionLabel, isLast: false });\r\n }\r\n trail.push({ label: item.label, url: item.route, isLast: false });\r\n trail.push({ label: child.label, isLast: true });\r\n return trail;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (item.route && this.urlMatches(url, item.route, item.routeActiveExact)) {\r\n const trail: UiLayoutBreadcrumb[] = [];\r\n const sectionLabel = this.findSectionLabel(item.id, sections);\r\n if (sectionLabel) {\r\n trail.push({ label: sectionLabel, isLast: false });\r\n }\r\n trail.push({ label: item.label, isLast: true });\r\n return trail;\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n private urlMatches(current: string, route: string, exact?: boolean): boolean {\r\n if (exact) return current === route;\r\n return current === route || current.startsWith(route + '/');\r\n }\r\n\r\n private findSectionLabel(itemId: string, sections?: UiNavSection[]): string | null {\r\n if (!sections?.length) return null;\r\n const section = sections.find((s) => s.itemIds.includes(itemId));\r\n return section?.label ?? null;\r\n }\r\n\r\n private autoExpandFromUrl(url: string): void {\r\n if (!this.schema.navigation) return;\r\n for (const item of this.schema.navigation.items) {\r\n if (item.children && item.route && (url === item.route || url.startsWith(item.route + '/'))) {\r\n this.expandedIds.add(item.id);\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * ng-ui-system — Layout Builder entry point.\r\n *\r\n * @example\r\n * ```typescript\r\n * import {\r\n * UiLayoutBuilderComponent,\r\n * UiLayoutService,\r\n * UiLayoutSchema,\r\n * UiNavItem,\r\n * } from 'ng-ui-system';\r\n * ```\r\n */\r\n\r\n// Components\r\nexport { UiLayoutBuilderComponent } from './layout-builder.component';\r\n\r\n// Services\r\nexport { UiLayoutService } from './layout.service';\r\n\r\n// Types\r\nexport {\r\n UiLayoutMode,\r\n UiContentType,\r\n UiLayoutBreadcrumb,\r\n UiLayoutSchema,\r\n UiNavItem,\r\n UiNavItemType,\r\n UiNavGroup,\r\n UiNavSection,\r\n UiNavAutoDiscoveryConfig,\r\n UiLayoutNavigationConfig,\r\n UiLayoutLogo,\r\n UiLayoutHeaderConfig,\r\n UiFooterLink,\r\n UiLayoutFooterConfig,\r\n UiFabAction,\r\n UiLayoutFabConfig,\r\n UiLayoutPageHeaderConfig,\r\n UiLayoutLoaderConfig,\r\n UiBarType,\r\n UiBarConfig,\r\n UiTopbarConfig,\r\n UiNotificationBarConfig,\r\n UiBrandBarConfig,\r\n UiUserDropdownConfig,\r\n UiDropdownItem,\r\n UiNavigationBarConfig,\r\n UiLinksBarConfig,\r\n UiBarLinkItem,\r\n} from './layout-builder.types';\r\n","/**\n * Bootstrap del secondary entry `@gnggln/ng-ui-system/layout-builder`. Layout Builder.\n */\nexport * from './lib/components/layout-builder/index';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entry-layout-builder';\n"],"names":[],"mappings":"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"}
|