@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-modal.mjs","sources":["../../../packages/ng-ui-system/src/lib/components/modal/modal.component.ts","../../../packages/ng-ui-system/src/lib/components/button/button.component.ts","../../../packages/ng-ui-system/src/lib/components/modal/confirm-dialog.component.ts","../../../packages/ng-ui-system/src/lib/components/modal/modal.service.ts","../../../packages/ng-ui-system/src/entry-modal.ts","../../../packages/ng-ui-system/src/gnggln-ng-ui-system-modal.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { LucideAngularModule } from 'lucide-angular';\r\nimport { UiModalConfig } from './modal.types';\r\n\r\n/**\r\n * Componente modale standalone con struttura header/body/footer.\r\n *\r\n * Da utilizzare come wrapper all'interno di componenti aperti\r\n * tramite `UiModalService.open()`. Fornisce la struttura visuale\r\n * e gestisce la chiusura programmatica.\r\n *\r\n * **Content projection:**\r\n * - Contenuto di default: va nel body\r\n * - `[uiModalHeader]`: sostituisce il titolo nell'header\r\n * - `[uiModalFooter]`: azioni nel footer\r\n *\r\n * @selector ui-modal\r\n *\r\n * @example\r\n * ```html\r\n * <ui-modal [config]=\"{ title: 'Dettagli', size: 'md' }\">\r\n * <p>Contenuto del body della modale.</p>\r\n * <div uiModalFooter>\r\n * <ui-button label=\"Chiudi\" variant=\"ghost\" (click)=\"close()\" />\r\n * <ui-button label=\"Salva\" variant=\"primary\" (click)=\"save()\" />\r\n * </div>\r\n * </ui-modal>\r\n * ```\r\n */\r\n@Component({\r\n selector: 'ui-modal',\r\n standalone: true,\r\n imports: [LucideAngularModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n class: 'ui-modal-host',\r\n role: 'dialog',\r\n 'aria-modal': 'true',\r\n '[attr.aria-label]': 'config.title || null',\r\n },\r\n template: `\r\n <!-- Header -->\r\n @if (config.title || config.showCloseButton !== false) {\r\n <div class=\"ui-modal__header\">\r\n <div class=\"ui-modal__header-content\">\r\n <ng-content select=\"[uiModalHeader]\">\r\n @if (config.title) {\r\n <h2 class=\"ui-modal__title\">{{ config.title }}</h2>\r\n }\r\n </ng-content>\r\n </div>\r\n @if (config.showCloseButton !== false) {\r\n <button\r\n class=\"ui-modal__close\"\r\n (click)=\"close()\"\r\n aria-label=\"Chiudi modale\"\r\n type=\"button\"\r\n >\r\n <lucide-icon name=\"x\" [size]=\"18\" aria-hidden=\"true\" />\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Body -->\r\n <div class=\"ui-modal__body\">\r\n <ng-content />\r\n </div>\r\n\r\n <!-- Footer -->\r\n @if (!config.hideFooter) {\r\n <div class=\"ui-modal__footer\">\r\n <ng-content select=\"[uiModalFooter]\" />\r\n </div>\r\n }\r\n `,\r\n styleUrl: './modal.component.scss',\r\n})\r\nexport class UiModalComponent {\r\n /** Configurazione strutturale della modale. */\r\n @Input() config: UiModalConfig = {};\r\n\r\n /**\r\n * Emesso quando la modale viene chiusa.\r\n * Utile se il componente e usato direttamente nel template\r\n * senza UiModalService.\r\n */\r\n @Output() closed = new EventEmitter<unknown>();\r\n\r\n /** @internal Riferimento al dialogo Material per la chiusura. */\r\n private dialogRef = inject(MatDialogRef, { optional: true });\r\n\r\n /** Chiude la modale con un risultato opzionale. */\r\n close(result?: unknown): void {\r\n if (this.dialogRef) {\r\n this.dialogRef.close(result);\r\n } else {\r\n this.closed.emit(result);\r\n }\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { LucideAngularModule } from 'lucide-angular';\r\nimport { UiVariant, UiSize, UiIconName } from '../../core/types';\r\nimport { UiIconPosition } from './button.types';\r\n\r\n/** @internal Size-to-icon-pixel mapping for consistent icon sizing. */\r\nconst ICON_SIZE_MAP: Record<UiSize, number> = {\r\n xs: 14,\r\n sm: 16,\r\n md: 18,\r\n lg: 20,\r\n xl: 22,\r\n};\r\n\r\n/**\r\n * Standalone button component with design-token-driven theming,\r\n * variant/size system, Lucide icon support, loading states, and WCAG 2.1 AA accessibility.\r\n *\r\n * Uses native `<button>` click events — listen with `(click)` on the host element.\r\n *\r\n * @selector ui-button\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Basic -->\r\n * <ui-button label=\"Save\" variant=\"primary\" icon=\"save\" (click)=\"save()\" />\r\n *\r\n * <!-- Loading -->\r\n * <ui-button label=\"Submitting...\" variant=\"primary\" [loading]=\"true\" />\r\n *\r\n * <!-- Icon-only: tooltip o ariaLabel forniscono il nome accessibile -->\r\n * <ui-button icon=\"trash-2\" variant=\"warn\" tooltip=\"Elimina\" (click)=\"delete()\" />\r\n * ```\r\n */\r\n@Component({\r\n selector: 'ui-button',\r\n standalone: true,\r\n imports: [MatTooltipModule, LucideAngularModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n class: 'ui-button-host',\r\n '[class.ui-button-host--full-width]': 'fullWidth',\r\n },\r\n template: `\r\n <button\r\n [type]=\"type\"\r\n [class]=\"buttonClasses\"\r\n [disabled]=\"disabled || loading\"\r\n [attr.aria-label]=\"effectiveAriaLabel || null\"\r\n [attr.aria-busy]=\"loading || null\"\r\n [matTooltip]=\"tooltip\"\r\n >\r\n <span class=\"ui-button__content\" [class.ui-button__content--hidden]=\"loading\">\r\n @if (icon && iconPosition === 'leading') {\r\n <lucide-icon [name]=\"icon!\" [size]=\"iconSize\" aria-hidden=\"true\" />\r\n }\r\n @if (label) {\r\n <span class=\"ui-button__label\">{{ label }}</span>\r\n }\r\n <ng-content />\r\n @if (icon && iconPosition === 'trailing') {\r\n <lucide-icon [name]=\"icon!\" [size]=\"iconSize\" aria-hidden=\"true\" />\r\n }\r\n </span>\r\n @if (loading) {\r\n <span class=\"ui-button__spinner-overlay\">\r\n <span class=\"ui-button__spinner\" aria-hidden=\"true\"></span>\r\n <span class=\"ui-button__sr-only\">Loading</span>\r\n </span>\r\n }\r\n </button>\r\n `,\r\n styleUrl: './button.component.scss',\r\n})\r\nexport class UiButtonComponent {\r\n /** Button label text. */\r\n @Input() label = '';\r\n\r\n /** Tooltip text shown on hover (uses Angular Material tooltip). */\r\n @Input() tooltip = '';\r\n\r\n /** Visual style variant. */\r\n @Input() variant: UiVariant = 'primary';\r\n\r\n /** Size variant. */\r\n @Input() size: UiSize = 'md';\r\n\r\n /** Lucide icon name. @see https://lucide.dev/icons */\r\n @Input() icon?: UiIconName;\r\n\r\n /** Icon position relative to the label. */\r\n @Input() iconPosition: UiIconPosition = 'trailing';\r\n\r\n /** Whether the button is in a loading state. Disables interaction and shows spinner. */\r\n @Input() loading = false;\r\n\r\n /** Whether the button is disabled. */\r\n @Input() disabled = false;\r\n\r\n /** Expand button to full container width. */\r\n @Input() fullWidth = false;\r\n\r\n /** HTML button type attribute. */\r\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\r\n\r\n /** Accessible label override (required for icon-only buttons). */\r\n @Input() ariaLabel?: string;\r\n\r\n /** Additional CSS class for edge cases. */\r\n @Input() customClass?: string;\r\n\r\n /**\r\n * Nome accessibile risolto per il pulsante nativo.\r\n * Usa `ariaLabel` se impostato; per pulsanti solo icona senza testo visibile\r\n * ricade sul `tooltip` (il tooltip Material non sostituisce il nome accessibile).\r\n */\r\n get effectiveAriaLabel(): string | undefined {\r\n const explicit = this.ariaLabel?.trim();\r\n if (explicit) return explicit;\r\n\r\n if (this.label?.trim()) return undefined;\r\n\r\n const tip = this.tooltip?.trim();\r\n if (this.icon && tip) return tip;\r\n\r\n return undefined;\r\n }\r\n\r\n /** Computed icon pixel size based on button size. */\r\n get iconSize(): number {\r\n return ICON_SIZE_MAP[this.size] ?? 18;\r\n }\r\n\r\n /** Assembled CSS class string for the native button element. */\r\n get buttonClasses(): string {\r\n return [\r\n 'ui-button',\r\n `ui-button--${this.variant}`,\r\n `ui-button--${this.size}`,\r\n this.loading ? 'ui-button--loading' : '',\r\n this.fullWidth ? 'ui-button--full-width' : '',\r\n !this.label && this.icon ? 'ui-button--icon-only' : '',\r\n this.customClass ?? '',\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { LucideAngularModule } from 'lucide-angular';\r\nimport { UiButtonComponent } from '../button/button.component';\r\nimport { UiConfirmDialogData, UiConfirmVariant, UiIconName, UiVariant } from './modal.types';\r\n\r\n/** @internal Mappatura variante -> icona Lucide di default. */\r\nconst VARIANT_ICON_MAP: Record<UiConfirmVariant, UiIconName> = {\r\n confirm: 'check-circle',\r\n delete: 'trash-2',\r\n warn: 'alert-triangle',\r\n info: 'info',\r\n};\r\n\r\n/** @internal Mappatura variante -> colore pulsante di conferma. */\r\nconst VARIANT_BUTTON_MAP: Record<UiConfirmVariant, UiVariant> = {\r\n confirm: 'primary',\r\n delete: 'warn',\r\n warn: 'warn',\r\n info: 'primary',\r\n};\r\n\r\n/**\r\n * Dialogo di conferma leggero per azioni condizionali.\r\n *\r\n * Non va utilizzato direttamente nel template: viene aperto\r\n * programmaticamente tramite `UiModalService.confirm()` e i suoi\r\n * metodi scorciatoia (`confirmDelete`, `confirmDiscard`, `confirmSave`).\r\n *\r\n * Supporta quattro varianti semantiche — confirm, delete, warn, info —\r\n * ciascuna con icona e colore preconfigurati.\r\n *\r\n * @selector ui-confirm-dialog\r\n *\r\n * @example\r\n * ```typescript\r\n * // Apertura tramite servizio\r\n * this.modalService.confirm({\r\n * title: 'Conferma eliminazione',\r\n * message: 'Questa azione non puo essere annullata.',\r\n * variant: 'delete',\r\n * }).subscribe(confirmed => {\r\n * if (confirmed) this.deleteItem();\r\n * });\r\n * ```\r\n */\r\n@Component({\r\n selector: 'ui-confirm-dialog',\r\n standalone: true,\r\n imports: [LucideAngularModule, UiButtonComponent],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n class: 'ui-confirm-dialog-host',\r\n role: 'alertdialog',\r\n 'aria-modal': 'true',\r\n '[attr.aria-labelledby]': '\"ui-confirm-title\"',\r\n '[attr.aria-describedby]': '\"ui-confirm-message\"',\r\n },\r\n template: `\r\n <div class=\"ui-confirm-dialog\">\r\n <!-- Icona -->\r\n <div [class]=\"iconClasses\">\r\n <lucide-icon [name]=\"iconName\" [size]=\"32\" aria-hidden=\"true\" />\r\n </div>\r\n\r\n <!-- Contenuto -->\r\n <div class=\"ui-confirm-dialog__content\">\r\n @if (data.title) {\r\n <h3 class=\"ui-confirm-dialog__title\" id=\"ui-confirm-title\">{{ data.title }}</h3>\r\n }\r\n <p class=\"ui-confirm-dialog__message\" id=\"ui-confirm-message\">{{ data.message }}</p>\r\n </div>\r\n\r\n <!-- Azioni -->\r\n <div class=\"ui-confirm-dialog__actions\">\r\n <ui-button\r\n [label]=\"data.cancelText || 'Annulla'\"\r\n variant=\"ghost\"\r\n size=\"md\"\r\n (click)=\"cancel()\"\r\n />\r\n <ui-button\r\n [label]=\"data.confirmText || 'Conferma'\"\r\n [variant]=\"confirmButtonVariant\"\r\n size=\"md\"\r\n (click)=\"confirm()\"\r\n />\r\n </div>\r\n </div>\r\n `,\r\n styleUrl: './confirm-dialog.component.scss',\r\n})\r\nexport class UiConfirmDialogComponent {\r\n /** @internal Dati iniettati dal servizio modale. */\r\n readonly data: UiConfirmDialogData = inject(MAT_DIALOG_DATA);\r\n\r\n /** @internal Riferimento al dialogo per la chiusura. */\r\n private readonly dialogRef = inject(MatDialogRef);\r\n\r\n /** Variante semantica corrente. */\r\n get variant(): UiConfirmVariant {\r\n return this.data.variant || 'confirm';\r\n }\r\n\r\n /** Nome icona Lucide da visualizzare. */\r\n get iconName(): UiIconName {\r\n return this.data.icon || VARIANT_ICON_MAP[this.variant];\r\n }\r\n\r\n /** Variante del pulsante di conferma. */\r\n get confirmButtonVariant(): UiVariant {\r\n return VARIANT_BUTTON_MAP[this.variant];\r\n }\r\n\r\n /** Classi CSS per il contenitore icona. */\r\n get iconClasses(): string {\r\n return `ui-confirm-dialog__icon ui-confirm-dialog__icon--${this.variant}`;\r\n }\r\n\r\n /** Conferma e chiude il dialogo con `true`. */\r\n confirm(): void {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n /** Annulla e chiude il dialogo con `false`. */\r\n cancel(): void {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","import { Injectable, inject, Type } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable, map } from 'rxjs';\r\nimport { UiConfirmDialogComponent } from './confirm-dialog.component';\r\nimport { UiConfirmDialogData, UiModalOpenConfig, UiModalSize } from './modal.types';\r\n\r\n/** @internal Mappatura dimensione -> larghezza CSS per il pannello overlay. */\r\nconst SIZE_WIDTH_MAP: Record<UiModalSize, string> = {\r\n sm: '400px',\r\n md: '560px',\r\n lg: '720px',\r\n xl: '900px',\r\n fullscreen: '95vw',\r\n};\r\n\r\n/**\r\n * Servizio per aprire modali e dialoghi di conferma.\r\n *\r\n * Gestisce lo stacking intelligente: una modale regolare puo\r\n * ospitare al massimo un dialogo di conferma sopra di se.\r\n * Non e possibile stackare due modali regolari.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Aprire una modale personalizzata\r\n * ```typescript\r\n * const ref = this.modalService.open(MyDialogComponent, {\r\n * size: 'lg',\r\n * data: { userId: 123 },\r\n * });\r\n *\r\n * ref.afterClosed().subscribe(result => {\r\n * console.log('Risultato:', result);\r\n * });\r\n * ```\r\n *\r\n * ### Conferma rapida\r\n * ```typescript\r\n * this.modalService.confirm('Confermi questa azione?')\r\n * .subscribe(ok => { if (ok) this.procedi(); });\r\n * ```\r\n *\r\n * ### Preset di conferma\r\n * ```typescript\r\n * this.modalService.confirmDelete('Progetto Alpha')\r\n * .subscribe(ok => { if (ok) this.elimina(); });\r\n * ```\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class UiModalService {\r\n /** @internal Istanza MatDialog per la gestione overlay. */\r\n private readonly dialog = inject(MatDialog);\r\n\r\n /** @internal Stack delle modali regolari aperte. */\r\n private _modalStack: MatDialogRef<unknown>[] = [];\r\n\r\n /** @internal Traccia se un dialogo di conferma e attualmente aperto. */\r\n private _confirmOpen = false;\r\n\r\n /**\r\n * Apre una modale con un componente personalizzato.\r\n *\r\n * Il componente aperto puo iniettare `MAT_DIALOG_DATA` per accedere\r\n * ai dati e `MatDialogRef` per chiudere la modale.\r\n *\r\n * @param component - Componente standalone da renderizzare nella modale\r\n * @param config - Configurazione (dimensione, dati, comportamento)\r\n * @returns Riferimento alla modale aperta\r\n */\r\n open<T, D = unknown, R = unknown>(component: Type<T>, config?: UiModalOpenConfig<D>): MatDialogRef<T, R> {\r\n // Regola di stacking: non stackare due modali regolari\r\n if (this._modalStack.length > 0) {\r\n console.warn(\r\n '[UiModalService] Una modale e gia aperta. ' +\r\n 'Usa confirm() per aprire un dialogo di conferma sopra la modale corrente.',\r\n );\r\n }\r\n\r\n const size = config?.size || 'md';\r\n\r\n const dialogConfig: MatDialogConfig<D> = {\r\n width: SIZE_WIDTH_MAP[size],\r\n maxWidth: size === 'fullscreen' ? '95vw' : '90vw',\r\n maxHeight: size === 'fullscreen' ? '95vh' : '90vh',\r\n height: size === 'fullscreen' ? '95vh' : undefined,\r\n disableClose: config?.disableClose ?? false,\r\n autoFocus: true,\r\n restoreFocus: true,\r\n data: config?.data as D,\r\n panelClass: ['ui-modal-panel', `ui-modal-panel--${size}`, ...(config?.panelClass ? [config.panelClass] : [])],\r\n hasBackdrop: true,\r\n backdropClass: ['cdk-overlay-dark-backdrop', 'ui-modal-backdrop'],\r\n };\r\n\r\n const ref = this.dialog.open(component, dialogConfig) as MatDialogRef<T, R>;\r\n\r\n this._modalStack.push(ref as MatDialogRef<unknown>);\r\n ref.afterClosed().subscribe(() => {\r\n this._modalStack = this._modalStack.filter((r) => r !== (ref as MatDialogRef<unknown>));\r\n });\r\n\r\n return ref;\r\n }\r\n\r\n /**\r\n * Apre un dialogo di conferma.\r\n *\r\n * Accetta una stringa semplice (messaggio) o un oggetto di\r\n * configurazione completo. Puo essere aperto sopra una modale\r\n * esistente (stacking consentito).\r\n *\r\n * @param messageOrConfig - Messaggio o configurazione completa\r\n * @returns Observable che emette `true` se confermato, `false` se annullato\r\n */\r\n confirm(messageOrConfig: string | UiConfirmDialogData): Observable<boolean> {\r\n const data: UiConfirmDialogData =\r\n typeof messageOrConfig === 'string' ? { message: messageOrConfig } : messageOrConfig;\r\n\r\n // Un solo dialogo di conferma alla volta\r\n if (this._confirmOpen) {\r\n console.warn('[UiModalService] Un dialogo di conferma e gia aperto.');\r\n return new Observable((subscriber) => {\r\n subscriber.next(false);\r\n subscriber.complete();\r\n });\r\n }\r\n\r\n this._confirmOpen = true;\r\n\r\n const dialogConfig: MatDialogConfig<UiConfirmDialogData> = {\r\n width: '420px',\r\n maxWidth: '90vw',\r\n disableClose: false,\r\n autoFocus: false,\r\n restoreFocus: true,\r\n data,\r\n panelClass: ['ui-confirm-panel'],\r\n hasBackdrop: true,\r\n backdropClass:\r\n this._modalStack.length > 0\r\n ? ['cdk-overlay-dark-backdrop', 'ui-confirm-backdrop--stacked']\r\n : ['cdk-overlay-dark-backdrop', 'ui-modal-backdrop'],\r\n };\r\n\r\n const ref = this.dialog.open(UiConfirmDialogComponent, dialogConfig);\r\n\r\n return ref.afterClosed().pipe(\r\n map((result) => {\r\n this._confirmOpen = false;\r\n return !!result;\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Scorciatoia: conferma eliminazione.\r\n * Variante `delete` con icona cestino e pulsante warn.\r\n *\r\n * @param itemName - Nome opzionale dell'elemento da eliminare\r\n */\r\n confirmDelete(itemName?: string): Observable<boolean> {\r\n return this.confirm({\r\n title: 'Conferma eliminazione',\r\n message: itemName\r\n ? `Sei sicuro di voler eliminare \"${itemName}\"? Questa azione non puo essere annullata.`\r\n : 'Sei sicuro di voler eliminare questo elemento? Questa azione non puo essere annullata.',\r\n confirmText: 'Elimina',\r\n cancelText: 'Annulla',\r\n variant: 'delete',\r\n });\r\n }\r\n\r\n /**\r\n * Scorciatoia: conferma abbandono modifiche.\r\n * Variante `warn` con icona avviso.\r\n */\r\n confirmDiscard(): Observable<boolean> {\r\n return this.confirm({\r\n title: 'Modifiche non salvate',\r\n message: 'Ci sono modifiche non salvate. Sei sicuro di voler uscire senza salvare?',\r\n confirmText: 'Esci senza salvare',\r\n cancelText: 'Rimani',\r\n variant: 'warn',\r\n });\r\n }\r\n\r\n /**\r\n * Scorciatoia: conferma salvataggio.\r\n * Variante `confirm` con icona check.\r\n */\r\n confirmSave(): Observable<boolean> {\r\n return this.confirm({\r\n title: 'Conferma salvataggio',\r\n message: 'Sei sicuro di voler salvare le modifiche?',\r\n confirmText: 'Salva',\r\n cancelText: 'Annulla',\r\n variant: 'confirm',\r\n });\r\n }\r\n\r\n /** Chiude tutte le modali e dialoghi aperti. */\r\n closeAll(): void {\r\n this.dialog.closeAll();\r\n this._modalStack = [];\r\n this._confirmOpen = false;\r\n }\r\n\r\n /** Indica se ci sono modali o dialoghi attualmente aperti. */\r\n get hasOpenDialogs(): boolean {\r\n return this.dialog.openDialogs.length > 0;\r\n }\r\n\r\n /** Numero di modali regolari attualmente aperte. */\r\n get openModalCount(): number {\r\n return this._modalStack.length;\r\n }\r\n}\r\n","/**\n * Bootstrap del secondary entry `@gnggln/ng-ui-system/modal`. Modal e Confirm Dialog.\n */\nexport * from './lib/components/modal/index';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entry-modal';\n"],"names":["i2"],"mappings":";;;;;;;;;AAaA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;MAmDU,gBAAgB,CAAA;AAlD7B,IAAA,WAAA,GAAA;;QAoDW,IAAM,CAAA,MAAA,GAAkB,EAAE,CAAC;AAEpC;;;;AAIG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAW,CAAC;;QAGvC,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAU9D,KAAA;;AAPC,IAAA,KAAK,CAAC,MAAgB,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC9B;aAAM;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B;KACF;+GArBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAtCjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,06FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA5CS,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FA+ClB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlD5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EACR,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,CAAC,EAAA,eAAA,EACb,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,YAAY,EAAE,MAAM;AACpB,wBAAA,mBAAmB,EAAE,sBAAsB;qBAC5C,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,06FAAA,CAAA,EAAA,CAAA;8BAKQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAOI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;AC3FT;AACA,MAAM,aAAa,GAA2B;AAC5C,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;AACN,IAAA,EAAE,EAAE,EAAE;CACP,CAAC;AAEF;;;;;;;;;;;;;;;;;;;AAmBG;MA0CU,iBAAiB,CAAA;AAzC9B,IAAA,WAAA,GAAA;;QA2CW,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;;QAGX,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;;QAGb,IAAO,CAAA,OAAA,GAAc,SAAS,CAAC;;QAG/B,IAAI,CAAA,IAAA,GAAW,IAAI,CAAC;;QAMpB,IAAY,CAAA,YAAA,GAAmB,UAAU,CAAC;;QAG1C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAGhB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAGjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAGlB,IAAI,CAAA,IAAA,GAAkC,QAAQ,CAAC;AA4CzD,KAAA;AApCC;;;;AAIG;AACH,IAAA,IAAI,kBAAkB,GAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;AACxC,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,QAAQ,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AAAE,YAAA,OAAO,SAAS,CAAC;QAEzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG;AAAE,YAAA,OAAO,GAAG,CAAC;AAEjC,QAAA,OAAO,SAAS,CAAC;KAClB;;AAGD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACvC;;AAGD,IAAA,IAAI,aAAa,GAAA;QACf,OAAO;YACL,WAAW;YACX,CAAc,WAAA,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA;YAC5B,CAAc,WAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA;YACzB,IAAI,CAAC,OAAO,GAAG,oBAAoB,GAAG,EAAE;YACxC,IAAI,CAAC,SAAS,GAAG,uBAAuB,GAAG,EAAE;AAC7C,YAAA,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,sBAAsB,GAAG,EAAE;YACtD,IAAI,CAAC,WAAW,IAAI,EAAE;AACvB,SAAA;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;KACd;+GAxEU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EA/BlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,WAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BT,EAnCS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ikIAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,8TAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAsCpC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAzC7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cACT,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAC/B,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,oCAAoC,EAAE,WAAW;qBAClD,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,ikIAAA,CAAA,EAAA,CAAA;8BAKQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;ACzGR;AACA,MAAM,gBAAgB,GAAyC;AAC7D,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,IAAI,EAAE,MAAM;CACb,CAAC;AAEF;AACA,MAAM,kBAAkB,GAAwC;AAC9D,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;AAuBG;MAgDU,wBAAwB,CAAA;AA/CrC,IAAA,WAAA,GAAA;;AAiDW,QAAA,IAAA,CAAA,IAAI,GAAwB,MAAM,CAAC,eAAe,CAAC,CAAC;;AAG5C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AA+BnD,KAAA;;AA5BC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;KACvC;;AAGD,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACzD;;AAGD,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACzC;;AAGD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,CAAoD,iDAAA,EAAA,IAAI,CAAC,OAAO,EAAE,CAAC;KAC3E;;IAGD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC5B;;IAGD,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC7B;+GAnCU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAlCzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,aAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BT,EAzCS,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,s/DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,gPAAE,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FA4CrC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA/CpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAChC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,wBAAwB;AAC/B,wBAAA,IAAI,EAAE,aAAa;AACnB,wBAAA,YAAY,EAAE,MAAM;AACpB,wBAAA,wBAAwB,EAAE,oBAAoB;AAC9C,wBAAA,yBAAyB,EAAE,sBAAsB;qBAClD,EACS,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,s/DAAA,CAAA,EAAA,CAAA;;;ACpFH;AACA,MAAM,cAAc,GAAgC;AAClD,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,EAAE,EAAE,OAAO;AACX,IAAA,UAAU,EAAE,MAAM;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MAEU,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;;AAGmB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;;QAGpC,IAAW,CAAA,WAAA,GAA4B,EAAE,CAAC;;QAG1C,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AA+J9B,KAAA;AA7JC;;;;;;;;;AASG;IACH,IAAI,CAA8B,SAAkB,EAAE,MAA6B,EAAA;;QAEjF,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,CAAC,IAAI,CACV,4CAA4C;AAC1C,gBAAA,2EAA2E,CAC9E,CAAC;SACH;AAED,QAAA,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAElC,QAAA,MAAM,YAAY,GAAuB;AACvC,YAAA,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;YAC3B,QAAQ,EAAE,IAAI,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM;YACjD,SAAS,EAAE,IAAI,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM;YAClD,MAAM,EAAE,IAAI,KAAK,YAAY,GAAG,MAAM,GAAG,SAAS;AAClD,YAAA,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,KAAK;AAC3C,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,MAAM,EAAE,IAAS;YACvB,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAA,gBAAA,EAAmB,IAAI,CAAA,CAAE,EAAE,IAAI,MAAM,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7G,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;SAClE,CAAC;AAEF,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAuB,CAAC;AAE5E,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAA4B,CAAC,CAAC;AACpD,QAAA,GAAG,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAM,GAA6B,CAAC,CAAC;AAC1F,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,GAAG,CAAC;KACZ;AAED;;;;;;;;;AASG;AACH,IAAA,OAAO,CAAC,eAA6C,EAAA;AACnD,QAAA,MAAM,IAAI,GACR,OAAO,eAAe,KAAK,QAAQ,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC;;AAGvF,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;AACtE,YAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAAI;AACnC,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,UAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,aAAC,CAAC,CAAC;SACJ;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAEzB,QAAA,MAAM,YAAY,GAAyC;AACzD,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,YAAY,EAAE,IAAI;YAClB,IAAI;YACJ,UAAU,EAAE,CAAC,kBAAkB,CAAC;AAChC,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EACX,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;AACzB,kBAAE,CAAC,2BAA2B,EAAE,8BAA8B,CAAC;AAC/D,kBAAE,CAAC,2BAA2B,EAAE,mBAAmB,CAAC;SACzD,CAAC;AAEF,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;AAErE,QAAA,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAC3B,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,OAAO,CAAC,CAAC,MAAM,CAAC;SACjB,CAAC,CACH,CAAC;KACH;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAC,QAAiB,EAAA;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC;AAClB,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,OAAO,EAAE,QAAQ;kBACb,CAAkC,+BAAA,EAAA,QAAQ,CAA4C,0CAAA,CAAA;AACxF,kBAAE,wFAAwF;AAC5F,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,OAAO,EAAE,QAAQ;AAClB,SAAA,CAAC,CAAC;KACJ;AAED;;;AAGG;IACH,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;AAClB,YAAA,KAAK,EAAE,uBAAuB;AAC9B,YAAA,OAAO,EAAE,0EAA0E;AACnF,YAAA,WAAW,EAAE,oBAAoB;AACjC,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA,CAAC,CAAC;KACJ;AAED;;;AAGG;IACH,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;AAClB,YAAA,KAAK,EAAE,sBAAsB;AAC7B,YAAA,OAAO,EAAE,2CAA2C;AACpD,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,OAAO,EAAE,SAAS;AACnB,SAAA,CAAC,CAAC;KACJ;;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;;AAGD,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAC3C;;AAGD,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;KAChC;+GAtKU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA,EAAA;;4FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;AChDlC;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, Injectable, DestroyRef, ChangeDetectorRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { Router, NavigationEnd, ActivatedRoute, RouterLink } from '@angular/router';
|
|
5
|
+
import { Title } from '@angular/platform-browser';
|
|
6
|
+
import { filter } from 'rxjs/operators';
|
|
7
|
+
import * as i1 from 'lucide-angular';
|
|
8
|
+
import { LucideAngularModule } from 'lucide-angular';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @module ng-ui-system/page-header
|
|
12
|
+
* Types and interfaces for UiPageHeader and UiBreadcrumbService.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Injection token for providing a custom label resolver to UiBreadcrumbService.
|
|
16
|
+
*
|
|
17
|
+
* When not provided, parameters are displayed as-is (identity function).
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // In your app.config.ts or module providers:
|
|
22
|
+
* { provide: UI_BREADCRUMB_LABEL_RESOLVER, useValue: myLabelResolver }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
const UI_BREADCRUMB_LABEL_RESOLVER = new InjectionToken('UI_BREADCRUMB_LABEL_RESOLVER', {
|
|
26
|
+
providedIn: 'root',
|
|
27
|
+
factory: () => (_name, value) => value,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
/** biome-ignore-all lint/complexity/useLiteralKeys: <explanation> */
|
|
31
|
+
/**
|
|
32
|
+
* Service that builds a nested breadcrumb trail from Angular route configuration.
|
|
33
|
+
*
|
|
34
|
+
* Routes must define `data.id`, `data.title`, and optionally `data.breadcrumbs`
|
|
35
|
+
* (an array of parent route IDs) for the chain to resolve correctly.
|
|
36
|
+
*
|
|
37
|
+
* Supports lazy-loaded routes: the internal route map is rebuilt automatically
|
|
38
|
+
* whenever new routes are loaded via `NavigationEnd`.
|
|
39
|
+
*
|
|
40
|
+
* Label resolution for route parameters (`:param`) is delegated to an injectable
|
|
41
|
+
* `UiLabelResolverFn` via the `UI_BREADCRUMB_LABEL_RESOLVER` token.
|
|
42
|
+
*
|
|
43
|
+
* @usageNotes
|
|
44
|
+
* ### Route configuration
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const routes: Routes = [
|
|
47
|
+
* {
|
|
48
|
+
* path: 'users',
|
|
49
|
+
* data: { id: 'users', title: 'Utenti' },
|
|
50
|
+
* children: [
|
|
51
|
+
* {
|
|
52
|
+
* path: ':userId',
|
|
53
|
+
* data: { id: 'user-detail', title: ':userId', breadcrumbs: ['users'] },
|
|
54
|
+
* component: UserDetailComponent,
|
|
55
|
+
* },
|
|
56
|
+
* ],
|
|
57
|
+
* },
|
|
58
|
+
* ];
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* ### Custom label resolver
|
|
62
|
+
* ```typescript
|
|
63
|
+
* providers: [
|
|
64
|
+
* {
|
|
65
|
+
* provide: UI_BREADCRUMB_LABEL_RESOLVER,
|
|
66
|
+
* useValue: (name: string, value: string) =>
|
|
67
|
+
* name === 'userId' ? `User #${value}` : value,
|
|
68
|
+
* },
|
|
69
|
+
* ]
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
class UiBreadcrumbService {
|
|
73
|
+
constructor() {
|
|
74
|
+
this.router = inject(Router);
|
|
75
|
+
this.labelResolver = inject(UI_BREADCRUMB_LABEL_RESOLVER);
|
|
76
|
+
/** @internal Map of route ID → breadcrumb configuration. */
|
|
77
|
+
this.breadcrumbMap = new Map();
|
|
78
|
+
/** @internal Tracks route count to detect lazy-loaded route additions. */
|
|
79
|
+
this.lastRouteConfigLength = 0;
|
|
80
|
+
/** @internal Last computed breadcrumbs for navigateBack. */
|
|
81
|
+
this.lastBreadcrumbs = [];
|
|
82
|
+
this.rebuildRouteMap();
|
|
83
|
+
this.router.events
|
|
84
|
+
.pipe(filter((event) => event instanceof NavigationEnd))
|
|
85
|
+
.subscribe(() => this.rebuildRouteMapIfNeeded());
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Computes the breadcrumb trail for the currently active route.
|
|
89
|
+
*
|
|
90
|
+
* @param route - The root `ActivatedRoute` (typically injected in the component).
|
|
91
|
+
* @returns Ordered array of breadcrumb items from root to current route.
|
|
92
|
+
*/
|
|
93
|
+
getBreadcrumbsForRoute(route) {
|
|
94
|
+
let deepestRoute = route;
|
|
95
|
+
while (deepestRoute.firstChild) {
|
|
96
|
+
deepestRoute = deepestRoute.firstChild;
|
|
97
|
+
}
|
|
98
|
+
let routeWithId = deepestRoute;
|
|
99
|
+
while (routeWithId && !routeWithId.snapshot.data['id']) {
|
|
100
|
+
routeWithId = routeWithId.parent;
|
|
101
|
+
}
|
|
102
|
+
const routeId = routeWithId?.snapshot.data['id'];
|
|
103
|
+
if (!routeId) {
|
|
104
|
+
this.lastBreadcrumbs = [];
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
const params = this.collectParamsFromPath(deepestRoute);
|
|
108
|
+
const breadcrumbs = this.buildBreadcrumbChain(routeId, params);
|
|
109
|
+
this.lastBreadcrumbs = breadcrumbs;
|
|
110
|
+
return breadcrumbs;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Navigates to the previous breadcrumb (parent route).
|
|
114
|
+
* Falls back to `fallbackUrl` (default: `/`) when no parent exists.
|
|
115
|
+
*/
|
|
116
|
+
navigateBack(fallbackUrl = '/') {
|
|
117
|
+
const prev = this.lastBreadcrumbs.length > 1 ? this.lastBreadcrumbs[this.lastBreadcrumbs.length - 2] : null;
|
|
118
|
+
const target = prev?.url ?? fallbackUrl;
|
|
119
|
+
this.router.navigateByUrl(target);
|
|
120
|
+
}
|
|
121
|
+
/** @internal Collects all route params from the full path (including parents). */
|
|
122
|
+
collectParamsFromPath(route) {
|
|
123
|
+
const params = {};
|
|
124
|
+
for (const r of route.pathFromRoot) {
|
|
125
|
+
Object.assign(params, r.snapshot.params);
|
|
126
|
+
}
|
|
127
|
+
return params;
|
|
128
|
+
}
|
|
129
|
+
// ─── Private helpers ─────────────────────────────────────────────
|
|
130
|
+
/** @internal Rebuilds the map only when new lazy routes appear. */
|
|
131
|
+
rebuildRouteMapIfNeeded() {
|
|
132
|
+
const currentLength = this.countRoutes(this.router.config);
|
|
133
|
+
if (currentLength !== this.lastRouteConfigLength) {
|
|
134
|
+
this.rebuildRouteMap();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** @internal Recursively counts routes including lazy-loaded children. */
|
|
138
|
+
countRoutes(routes) {
|
|
139
|
+
let count = routes.length;
|
|
140
|
+
for (const route of routes) {
|
|
141
|
+
if (route.children) {
|
|
142
|
+
count += this.countRoutes(route.children);
|
|
143
|
+
}
|
|
144
|
+
if (route._loadedRoutes) {
|
|
145
|
+
count += this.countRoutes(route._loadedRoutes);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return count;
|
|
149
|
+
}
|
|
150
|
+
/** @internal Clears and rebuilds the full route → breadcrumb map. */
|
|
151
|
+
rebuildRouteMap() {
|
|
152
|
+
this.breadcrumbMap.clear();
|
|
153
|
+
this.buildRouteMap(this.router.config);
|
|
154
|
+
this.lastRouteConfigLength = this.countRoutes(this.router.config);
|
|
155
|
+
}
|
|
156
|
+
/** @internal Recursively walks route tree to build the breadcrumb map. */
|
|
157
|
+
buildRouteMap(routes, parentPath = '') {
|
|
158
|
+
for (const route of routes) {
|
|
159
|
+
const currentPath = `${parentPath}/${route.path || ''}`;
|
|
160
|
+
if (route.data?.['id']) {
|
|
161
|
+
const fullPath = this.normalizePath(currentPath);
|
|
162
|
+
this.breadcrumbMap.set(route.data['id'], {
|
|
163
|
+
id: route.data['id'],
|
|
164
|
+
path: fullPath,
|
|
165
|
+
label: route.data['title'] || route.path || route.data['id'],
|
|
166
|
+
parentIds: route.data['breadcrumbs'] || [],
|
|
167
|
+
metadata: route.data,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if (route.children) {
|
|
171
|
+
this.buildRouteMap(route.children, currentPath);
|
|
172
|
+
}
|
|
173
|
+
if (route._loadedRoutes) {
|
|
174
|
+
this.buildRouteMap(route._loadedRoutes, currentPath);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/** @internal Builds the full breadcrumb chain for a route by its ID. */
|
|
179
|
+
buildBreadcrumbChain(routeId, params) {
|
|
180
|
+
const config = this.breadcrumbMap.get(routeId);
|
|
181
|
+
if (!config)
|
|
182
|
+
return [];
|
|
183
|
+
this.saveFullPath(routeId, this.router.url);
|
|
184
|
+
const parentChain = this.getParentChain(config.parentIds, params);
|
|
185
|
+
const breadcrumbs = [...parentChain];
|
|
186
|
+
breadcrumbs.push({
|
|
187
|
+
label: this.resolveLabel(config.label, params),
|
|
188
|
+
url: this.stripQueryParams(this.router.url),
|
|
189
|
+
isLast: true,
|
|
190
|
+
});
|
|
191
|
+
return breadcrumbs;
|
|
192
|
+
}
|
|
193
|
+
/** @internal Resolves parent breadcrumbs from ordered parent IDs. */
|
|
194
|
+
getParentChain(parentIds, params) {
|
|
195
|
+
if (!parentIds?.length)
|
|
196
|
+
return [];
|
|
197
|
+
return parentIds
|
|
198
|
+
.map((id) => {
|
|
199
|
+
const config = this.breadcrumbMap.get(id);
|
|
200
|
+
if (!config)
|
|
201
|
+
return null;
|
|
202
|
+
return {
|
|
203
|
+
label: this.resolveLabel(config.label, params),
|
|
204
|
+
url: this.resolveUrl(config.path, params),
|
|
205
|
+
isLast: false,
|
|
206
|
+
};
|
|
207
|
+
})
|
|
208
|
+
.filter(Boolean);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* @internal Resolves `:param` placeholders in a label using
|
|
212
|
+
* the injected label resolver function.
|
|
213
|
+
*/
|
|
214
|
+
resolveLabel(label, params) {
|
|
215
|
+
if (!label.includes(':'))
|
|
216
|
+
return label;
|
|
217
|
+
let resolved = label;
|
|
218
|
+
for (const [key, value] of Object.entries(params)) {
|
|
219
|
+
const readableValue = this.labelResolver(key, value);
|
|
220
|
+
resolved = resolved.replace(`:${key}`, readableValue);
|
|
221
|
+
}
|
|
222
|
+
return resolved;
|
|
223
|
+
}
|
|
224
|
+
/** @internal Resolves `:param` placeholders in a path and creates a URL. */
|
|
225
|
+
resolveUrl(path, params) {
|
|
226
|
+
let processedPath = path;
|
|
227
|
+
if (path.includes(':')) {
|
|
228
|
+
const segments = path.split('/');
|
|
229
|
+
const processedSegments = segments.map((segment) => {
|
|
230
|
+
if (segment.startsWith(':')) {
|
|
231
|
+
const paramName = segment.substring(1);
|
|
232
|
+
return params[paramName] || segment;
|
|
233
|
+
}
|
|
234
|
+
return segment;
|
|
235
|
+
});
|
|
236
|
+
processedPath = processedSegments.join('/');
|
|
237
|
+
}
|
|
238
|
+
try {
|
|
239
|
+
return this.router.createUrlTree([processedPath]).toString();
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
return processedPath;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/** @internal Normalizes path by collapsing double slashes and trimming trailing slash. */
|
|
246
|
+
normalizePath(path) {
|
|
247
|
+
return path.replace(/\/+/g, '/').replace(/\/$/, '');
|
|
248
|
+
}
|
|
249
|
+
/** @internal Removes query parameters from a URL. */
|
|
250
|
+
stripQueryParams(url) {
|
|
251
|
+
return url.split('?')[0];
|
|
252
|
+
}
|
|
253
|
+
/** @internal Caches the fully resolved URL for a route ID. */
|
|
254
|
+
saveFullPath(routeId, fullPath) {
|
|
255
|
+
const config = this.breadcrumbMap.get(routeId);
|
|
256
|
+
if (config) {
|
|
257
|
+
config.fullPath = this.stripQueryParams(fullPath);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBreadcrumbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
261
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBreadcrumbService, providedIn: 'root' }); }
|
|
262
|
+
}
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBreadcrumbService, decorators: [{
|
|
264
|
+
type: Injectable,
|
|
265
|
+
args: [{ providedIn: 'root' }]
|
|
266
|
+
}], ctorParameters: () => [] });
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Page header component that renders a breadcrumb navigation trail
|
|
270
|
+
* and a page title. Integrates with `UiBreadcrumbService` to
|
|
271
|
+
* automatically derive breadcrumbs from Angular route configuration.
|
|
272
|
+
*
|
|
273
|
+
* The breadcrumb trail is generated from route `data` properties:
|
|
274
|
+
* - `data.id` — unique route identifier
|
|
275
|
+
* - `data.title` — display label
|
|
276
|
+
* - `data.breadcrumbs` — ordered array of parent route IDs
|
|
277
|
+
*
|
|
278
|
+
* @selector ui-page-header
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* ```html
|
|
282
|
+
* <!-- Auto breadcrumbs from route data -->
|
|
283
|
+
* <ui-page-header />
|
|
284
|
+
*
|
|
285
|
+
* <!-- With explicit title override -->
|
|
286
|
+
* <ui-page-header title="Custom Title" />
|
|
287
|
+
*
|
|
288
|
+
* <!-- With document title update -->
|
|
289
|
+
* <ui-page-header [updateDocumentTitle]="true" titleSuffix=" | My App" />
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
292
|
+
class UiPageHeaderComponent {
|
|
293
|
+
constructor() {
|
|
294
|
+
/** Override the auto-detected page title. When empty, title is derived from the last breadcrumb. */
|
|
295
|
+
this.title = '';
|
|
296
|
+
/** Route path for the Home breadcrumb link. */
|
|
297
|
+
this.homeRoute = '/';
|
|
298
|
+
/** Whether to display the Home link at the start of the trail. */
|
|
299
|
+
this.showHome = true;
|
|
300
|
+
/** When `true`, updates `document.title` on each navigation. */
|
|
301
|
+
this.updateDocumentTitle = false;
|
|
302
|
+
/** Suffix appended to `document.title` (e.g. `' | My App'`). Only used when `updateDocumentTitle` is `true`. */
|
|
303
|
+
this.titleSuffix = '';
|
|
304
|
+
/** @internal */
|
|
305
|
+
this.breadcrumbs = [];
|
|
306
|
+
this.router = inject(Router);
|
|
307
|
+
this.activatedRoute = inject(ActivatedRoute);
|
|
308
|
+
this.titleService = inject(Title);
|
|
309
|
+
this.breadcrumbService = inject(UiBreadcrumbService);
|
|
310
|
+
this.destroyRef = inject(DestroyRef);
|
|
311
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
312
|
+
}
|
|
313
|
+
/** Resolved page title: explicit `title` input wins, otherwise last breadcrumb label. */
|
|
314
|
+
get displayTitle() {
|
|
315
|
+
if (this.title)
|
|
316
|
+
return this.title;
|
|
317
|
+
if (this.breadcrumbs.length > 0) {
|
|
318
|
+
return this.breadcrumbs[this.breadcrumbs.length - 1].label;
|
|
319
|
+
}
|
|
320
|
+
return '';
|
|
321
|
+
}
|
|
322
|
+
ngOnInit() {
|
|
323
|
+
this.refresh();
|
|
324
|
+
this.router.events
|
|
325
|
+
.pipe(filter((event) => event instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef))
|
|
326
|
+
.subscribe(() => this.refresh());
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Navigates to the previous breadcrumb (parent route).
|
|
330
|
+
* @param fallbackUrl - URL to navigate to when no parent exists (default: homeRoute).
|
|
331
|
+
*/
|
|
332
|
+
navigateBack(fallbackUrl) {
|
|
333
|
+
this.breadcrumbService.navigateBack(fallbackUrl ?? this.homeRoute);
|
|
334
|
+
}
|
|
335
|
+
/** @internal */
|
|
336
|
+
refresh() {
|
|
337
|
+
this.breadcrumbs = this.breadcrumbService.getBreadcrumbsForRoute(this.activatedRoute);
|
|
338
|
+
if (this.updateDocumentTitle) {
|
|
339
|
+
const title = this.displayTitle;
|
|
340
|
+
if (title) {
|
|
341
|
+
this.titleService.setTitle(`${title}${this.titleSuffix}`);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
this.cdr.markForCheck();
|
|
345
|
+
}
|
|
346
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
347
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiPageHeaderComponent, isStandalone: true, selector: "ui-page-header", inputs: { title: "title", homeRoute: "homeRoute", showHome: "showHome", updateDocumentTitle: "updateDocumentTitle", titleSuffix: "titleSuffix" }, host: { classAttribute: "ui-page-header-host" }, ngImport: i0, template: `
|
|
348
|
+
<header class="ui-page-header">
|
|
349
|
+
<nav aria-label="Breadcrumb" class="ui-page-header__nav">
|
|
350
|
+
<ol
|
|
351
|
+
class="ui-page-header__breadcrumb"
|
|
352
|
+
itemscope
|
|
353
|
+
itemtype="https://schema.org/BreadcrumbList"
|
|
354
|
+
>
|
|
355
|
+
@if (showHome) {
|
|
356
|
+
<li
|
|
357
|
+
class="ui-page-header__item"
|
|
358
|
+
itemprop="itemListElement"
|
|
359
|
+
itemscope
|
|
360
|
+
itemtype="https://schema.org/ListItem"
|
|
361
|
+
>
|
|
362
|
+
<a
|
|
363
|
+
itemprop="item"
|
|
364
|
+
[routerLink]="homeRoute"
|
|
365
|
+
class="ui-page-header__link"
|
|
366
|
+
aria-label="Home"
|
|
367
|
+
>
|
|
368
|
+
<lucide-icon name="home" [size]="14" aria-hidden="true" />
|
|
369
|
+
<span itemprop="name" class="ui-page-header__text">Home</span>
|
|
370
|
+
</a>
|
|
371
|
+
<meta itemprop="position" content="1" />
|
|
372
|
+
<span class="ui-page-header__separator" aria-hidden="true">
|
|
373
|
+
<lucide-icon name="chevron-right" [size]="14" />
|
|
374
|
+
</span>
|
|
375
|
+
</li>
|
|
376
|
+
}
|
|
377
|
+
@for (crumb of breadcrumbs; track crumb.url; let i = $index) {
|
|
378
|
+
<li
|
|
379
|
+
class="ui-page-header__item"
|
|
380
|
+
[class.ui-page-header__item--current]="crumb.isLast"
|
|
381
|
+
itemprop="itemListElement"
|
|
382
|
+
itemscope
|
|
383
|
+
itemtype="https://schema.org/ListItem"
|
|
384
|
+
>
|
|
385
|
+
@if (!crumb.isLast) {
|
|
386
|
+
<a
|
|
387
|
+
itemprop="item"
|
|
388
|
+
[routerLink]="crumb.url"
|
|
389
|
+
class="ui-page-header__link"
|
|
390
|
+
>
|
|
391
|
+
<span itemprop="name" class="ui-page-header__text">{{ crumb.label }}</span>
|
|
392
|
+
</a>
|
|
393
|
+
<span class="ui-page-header__separator" aria-hidden="true">
|
|
394
|
+
<lucide-icon name="chevron-right" [size]="14" />
|
|
395
|
+
</span>
|
|
396
|
+
} @else {
|
|
397
|
+
<span
|
|
398
|
+
itemprop="name"
|
|
399
|
+
class="ui-page-header__text ui-page-header__text--current"
|
|
400
|
+
aria-current="page"
|
|
401
|
+
>
|
|
402
|
+
{{ crumb.label }}
|
|
403
|
+
</span>
|
|
404
|
+
}
|
|
405
|
+
<meta itemprop="position" [attr.content]="showHome ? i + 2 : i + 1" />
|
|
406
|
+
</li>
|
|
407
|
+
}
|
|
408
|
+
</ol>
|
|
409
|
+
</nav>
|
|
410
|
+
|
|
411
|
+
<h1 class="ui-page-header__title" id="page-title">
|
|
412
|
+
{{ displayTitle }}
|
|
413
|
+
</h1>
|
|
414
|
+
</header>
|
|
415
|
+
`, isInline: true, styles: [".ui-page-header-host{display:block}.ui-page-header{margin-bottom:var(--ui-spacing-5)}.ui-page-header__nav{margin-bottom:var(--ui-spacing-2)}.ui-page-header__breadcrumb{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);gap:var(--ui-spacing-1)}.ui-page-header__item{display:inline-flex;align-items:center;gap:var(--ui-spacing-1)}a.ui-page-header__link lucide-icon{transform:translateY(2px)!important}span.ui-page-header__separator lucide-icon{transform:translateY(3px)!important}.ui-page-header__link{display:inline-flex;align-items:center;gap:4px;text-decoration:none;color:var(--ui-color-primary);border-radius:var(--ui-radius-sm);padding:2px 4px;margin:-2px -4px;transition:color var(--ui-transition-fast),background-color var(--ui-transition-fast)}.ui-page-header__link:hover{color:var(--ui-color-primary-hover);text-decoration:underline}.ui-page-header__link:focus{outline:none}.ui-page-header__link:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-page-header__text{white-space:nowrap}.ui-page-header__text--current{font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}.ui-page-header__separator{display:inline-flex;align-items:center;color:var(--ui-color-text-muted);flex-shrink:0}.ui-page-header__title{margin:0;font-family:var(--ui-font-family);font-size:var(--ui-font-size-2xl);font-weight:var(--ui-font-weight-bold);color:var(--ui-color-text);line-height:var(--ui-line-height-tight)}.ui-page-header__title:focus{outline:none}@media (min-width: 640px){.ui-page-header__title{font-size:var(--ui-font-size-xl)}.ui-page-header__breadcrumb{font-size:var(--ui-font-size-xs)}}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
416
|
+
}
|
|
417
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiPageHeaderComponent, decorators: [{
|
|
418
|
+
type: Component,
|
|
419
|
+
args: [{ selector: 'ui-page-header', standalone: true, imports: [RouterLink, LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
420
|
+
class: 'ui-page-header-host',
|
|
421
|
+
}, template: `
|
|
422
|
+
<header class="ui-page-header">
|
|
423
|
+
<nav aria-label="Breadcrumb" class="ui-page-header__nav">
|
|
424
|
+
<ol
|
|
425
|
+
class="ui-page-header__breadcrumb"
|
|
426
|
+
itemscope
|
|
427
|
+
itemtype="https://schema.org/BreadcrumbList"
|
|
428
|
+
>
|
|
429
|
+
@if (showHome) {
|
|
430
|
+
<li
|
|
431
|
+
class="ui-page-header__item"
|
|
432
|
+
itemprop="itemListElement"
|
|
433
|
+
itemscope
|
|
434
|
+
itemtype="https://schema.org/ListItem"
|
|
435
|
+
>
|
|
436
|
+
<a
|
|
437
|
+
itemprop="item"
|
|
438
|
+
[routerLink]="homeRoute"
|
|
439
|
+
class="ui-page-header__link"
|
|
440
|
+
aria-label="Home"
|
|
441
|
+
>
|
|
442
|
+
<lucide-icon name="home" [size]="14" aria-hidden="true" />
|
|
443
|
+
<span itemprop="name" class="ui-page-header__text">Home</span>
|
|
444
|
+
</a>
|
|
445
|
+
<meta itemprop="position" content="1" />
|
|
446
|
+
<span class="ui-page-header__separator" aria-hidden="true">
|
|
447
|
+
<lucide-icon name="chevron-right" [size]="14" />
|
|
448
|
+
</span>
|
|
449
|
+
</li>
|
|
450
|
+
}
|
|
451
|
+
@for (crumb of breadcrumbs; track crumb.url; let i = $index) {
|
|
452
|
+
<li
|
|
453
|
+
class="ui-page-header__item"
|
|
454
|
+
[class.ui-page-header__item--current]="crumb.isLast"
|
|
455
|
+
itemprop="itemListElement"
|
|
456
|
+
itemscope
|
|
457
|
+
itemtype="https://schema.org/ListItem"
|
|
458
|
+
>
|
|
459
|
+
@if (!crumb.isLast) {
|
|
460
|
+
<a
|
|
461
|
+
itemprop="item"
|
|
462
|
+
[routerLink]="crumb.url"
|
|
463
|
+
class="ui-page-header__link"
|
|
464
|
+
>
|
|
465
|
+
<span itemprop="name" class="ui-page-header__text">{{ crumb.label }}</span>
|
|
466
|
+
</a>
|
|
467
|
+
<span class="ui-page-header__separator" aria-hidden="true">
|
|
468
|
+
<lucide-icon name="chevron-right" [size]="14" />
|
|
469
|
+
</span>
|
|
470
|
+
} @else {
|
|
471
|
+
<span
|
|
472
|
+
itemprop="name"
|
|
473
|
+
class="ui-page-header__text ui-page-header__text--current"
|
|
474
|
+
aria-current="page"
|
|
475
|
+
>
|
|
476
|
+
{{ crumb.label }}
|
|
477
|
+
</span>
|
|
478
|
+
}
|
|
479
|
+
<meta itemprop="position" [attr.content]="showHome ? i + 2 : i + 1" />
|
|
480
|
+
</li>
|
|
481
|
+
}
|
|
482
|
+
</ol>
|
|
483
|
+
</nav>
|
|
484
|
+
|
|
485
|
+
<h1 class="ui-page-header__title" id="page-title">
|
|
486
|
+
{{ displayTitle }}
|
|
487
|
+
</h1>
|
|
488
|
+
</header>
|
|
489
|
+
`, styles: [".ui-page-header-host{display:block}.ui-page-header{margin-bottom:var(--ui-spacing-5)}.ui-page-header__nav{margin-bottom:var(--ui-spacing-2)}.ui-page-header__breadcrumb{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);gap:var(--ui-spacing-1)}.ui-page-header__item{display:inline-flex;align-items:center;gap:var(--ui-spacing-1)}a.ui-page-header__link lucide-icon{transform:translateY(2px)!important}span.ui-page-header__separator lucide-icon{transform:translateY(3px)!important}.ui-page-header__link{display:inline-flex;align-items:center;gap:4px;text-decoration:none;color:var(--ui-color-primary);border-radius:var(--ui-radius-sm);padding:2px 4px;margin:-2px -4px;transition:color var(--ui-transition-fast),background-color var(--ui-transition-fast)}.ui-page-header__link:hover{color:var(--ui-color-primary-hover);text-decoration:underline}.ui-page-header__link:focus{outline:none}.ui-page-header__link:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-page-header__text{white-space:nowrap}.ui-page-header__text--current{font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}.ui-page-header__separator{display:inline-flex;align-items:center;color:var(--ui-color-text-muted);flex-shrink:0}.ui-page-header__title{margin:0;font-family:var(--ui-font-family);font-size:var(--ui-font-size-2xl);font-weight:var(--ui-font-weight-bold);color:var(--ui-color-text);line-height:var(--ui-line-height-tight)}.ui-page-header__title:focus{outline:none}@media (min-width: 640px){.ui-page-header__title{font-size:var(--ui-font-size-xl)}.ui-page-header__breadcrumb{font-size:var(--ui-font-size-xs)}}\n"] }]
|
|
490
|
+
}], propDecorators: { title: [{
|
|
491
|
+
type: Input
|
|
492
|
+
}], homeRoute: [{
|
|
493
|
+
type: Input
|
|
494
|
+
}], showHome: [{
|
|
495
|
+
type: Input
|
|
496
|
+
}], updateDocumentTitle: [{
|
|
497
|
+
type: Input
|
|
498
|
+
}], titleSuffix: [{
|
|
499
|
+
type: Input
|
|
500
|
+
}] } });
|
|
501
|
+
|
|
502
|
+
/**
|
|
503
|
+
* ng-ui-system — Page Header entry point.
|
|
504
|
+
*
|
|
505
|
+
* @example
|
|
506
|
+
* ```typescript
|
|
507
|
+
* import {
|
|
508
|
+
* UiPageHeaderComponent,
|
|
509
|
+
* UiBreadcrumbService,
|
|
510
|
+
* UiBreadcrumbItem,
|
|
511
|
+
* UI_BREADCRUMB_LABEL_RESOLVER,
|
|
512
|
+
* } from 'ng-ui-system';
|
|
513
|
+
* ```
|
|
514
|
+
*/
|
|
515
|
+
// Components
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* Bootstrap del secondary entry `@gnggln/ng-ui-system/page-header`. Page Header e breadcrumb.
|
|
519
|
+
*/
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* Generated bundle index. Do not edit.
|
|
523
|
+
*/
|
|
524
|
+
|
|
525
|
+
export { UI_BREADCRUMB_LABEL_RESOLVER, UiBreadcrumbService, UiPageHeaderComponent };
|
|
526
|
+
//# sourceMappingURL=gnggln-ng-ui-system-page-header.mjs.map
|