@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,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central service for programmatic control of the `ui-layout-builder` shell.
|
|
3
|
+
*
|
|
4
|
+
* Provides reactive state management for:
|
|
5
|
+
* - Overlay loader (with body scroll locking)
|
|
6
|
+
* - Sidebar open / collapsed state
|
|
7
|
+
* - Context-sensitive FAB actions
|
|
8
|
+
* - Navigation badge and visibility overrides
|
|
9
|
+
* - Layout mode switching (sidebar / topbar / slotted)
|
|
10
|
+
* - Content type (fluid / boxed / fullscreen)
|
|
11
|
+
* - Topbar bar visibility (notification bars show/hide)
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* export class MyPageComponent {
|
|
16
|
+
* private layout = inject(UiLayoutService);
|
|
17
|
+
*
|
|
18
|
+
* async loadData() {
|
|
19
|
+
* this.layout.showLoader();
|
|
20
|
+
* try {
|
|
21
|
+
* await this.api.fetchAll();
|
|
22
|
+
* } finally {
|
|
23
|
+
* this.layout.hideLoader();
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import { Injectable, inject, PLATFORM_ID } from '@angular/core';
|
|
30
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
31
|
+
import { BehaviorSubject } from 'rxjs';
|
|
32
|
+
import * as i0 from "@angular/core";
|
|
33
|
+
export class UiLayoutService {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.platformId = inject(PLATFORM_ID);
|
|
36
|
+
// ── Loader ───────────────────────────────────────────────────────
|
|
37
|
+
this._loading$ = new BehaviorSubject(false);
|
|
38
|
+
/** Whether the overlay loader is currently visible. */
|
|
39
|
+
this.loading$ = this._loading$.asObservable();
|
|
40
|
+
// ── Layout Mode ─────────────────────────────────────────────────
|
|
41
|
+
this._layoutMode$ = new BehaviorSubject('sidebar');
|
|
42
|
+
/** Current layout mode (sidebar or topbar). */
|
|
43
|
+
this.layoutMode$ = this._layoutMode$.asObservable();
|
|
44
|
+
// ── Content Type ────────────────────────────────────────────────
|
|
45
|
+
this._contentType$ = new BehaviorSubject('fluid');
|
|
46
|
+
/** Current content type (fluid, boxed, fullscreen). */
|
|
47
|
+
this.contentType$ = this._contentType$.asObservable();
|
|
48
|
+
// ── Sidebar ──────────────────────────────────────────────────────
|
|
49
|
+
this._sidebarOpen$ = new BehaviorSubject(false);
|
|
50
|
+
/** Whether the mobile sidebar drawer is open. */
|
|
51
|
+
this.sidebarOpen$ = this._sidebarOpen$.asObservable();
|
|
52
|
+
this._sidebarCollapsed$ = new BehaviorSubject(false);
|
|
53
|
+
/** Whether the desktop sidebar is in collapsed (icon-only) mode. */
|
|
54
|
+
this.sidebarCollapsed$ = this._sidebarCollapsed$.asObservable();
|
|
55
|
+
// ── FAB (context-sensitive) ──────────────────────────────────────
|
|
56
|
+
this._defaultFabConfig = null;
|
|
57
|
+
this._fabConfig$ = new BehaviorSubject(null);
|
|
58
|
+
/** Current FAB configuration (schema default merged with page overrides). */
|
|
59
|
+
this.fabConfig$ = this._fabConfig$.asObservable();
|
|
60
|
+
// ── Navigation helpers ───────────────────────────────────────────
|
|
61
|
+
this._navBadges$ = new BehaviorSubject(new Map());
|
|
62
|
+
/** Observable map of nav-item badges keyed by item ID. */
|
|
63
|
+
this.navBadges$ = this._navBadges$.asObservable();
|
|
64
|
+
this._navVisibility$ = new BehaviorSubject(new Map());
|
|
65
|
+
/** Observable map of nav-item visibility overrides keyed by item ID. */
|
|
66
|
+
this.navVisibility$ = this._navVisibility$.asObservable();
|
|
67
|
+
// ── Bar visibility (topbar notification bars) ───────────────────
|
|
68
|
+
this._barVisibility$ = new BehaviorSubject(new Map());
|
|
69
|
+
/** Observable map of topbar bar visibility keyed by bar ID. */
|
|
70
|
+
this.barVisibility$ = this._barVisibility$.asObservable();
|
|
71
|
+
}
|
|
72
|
+
/** Show the full-screen overlay loader and block body scroll. */
|
|
73
|
+
showLoader() {
|
|
74
|
+
this._loading$.next(true);
|
|
75
|
+
this.setBodyOverflow(true);
|
|
76
|
+
}
|
|
77
|
+
/** Hide the overlay loader and restore body scroll. */
|
|
78
|
+
hideLoader() {
|
|
79
|
+
this._loading$.next(false);
|
|
80
|
+
this.setBodyOverflow(false);
|
|
81
|
+
}
|
|
82
|
+
/** Toggle the overlay loader. */
|
|
83
|
+
toggleLoader() {
|
|
84
|
+
if (this._loading$.value) {
|
|
85
|
+
this.hideLoader();
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.showLoader();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Synchronous snapshot of the loading state. */
|
|
92
|
+
isLoading() {
|
|
93
|
+
return this._loading$.value;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Switch layout mode with loader masking the transition.
|
|
97
|
+
* Shows the loader, applies the mode change, then hides the loader
|
|
98
|
+
* after a short delay to prevent visible layout shift.
|
|
99
|
+
*/
|
|
100
|
+
setLayoutMode(mode, transitionMs = 300) {
|
|
101
|
+
if (this._layoutMode$.value === mode)
|
|
102
|
+
return;
|
|
103
|
+
this.showLoader();
|
|
104
|
+
this._layoutMode$.next(mode);
|
|
105
|
+
setTimeout(() => this.hideLoader(), transitionMs);
|
|
106
|
+
}
|
|
107
|
+
/** Synchronous snapshot of the current layout mode. */
|
|
108
|
+
getLayoutMode() {
|
|
109
|
+
return this._layoutMode$.value;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @internal Called by the layout-builder component to set the initial mode
|
|
113
|
+
* from the schema without triggering the loader transition.
|
|
114
|
+
*/
|
|
115
|
+
_setInitialLayoutMode(mode) {
|
|
116
|
+
this._layoutMode$.next(mode);
|
|
117
|
+
}
|
|
118
|
+
/** Set the content type per-route or globally. */
|
|
119
|
+
setContentType(type) {
|
|
120
|
+
this._contentType$.next(type);
|
|
121
|
+
}
|
|
122
|
+
/** Synchronous snapshot of the current content type. */
|
|
123
|
+
getContentType() {
|
|
124
|
+
return this._contentType$.value;
|
|
125
|
+
}
|
|
126
|
+
/** @internal */
|
|
127
|
+
_setInitialContentType(type) {
|
|
128
|
+
this._contentType$.next(type);
|
|
129
|
+
}
|
|
130
|
+
/** Toggle the desktop sidebar between expanded and collapsed. */
|
|
131
|
+
toggleSidebar() {
|
|
132
|
+
this._sidebarCollapsed$.next(!this._sidebarCollapsed$.value);
|
|
133
|
+
}
|
|
134
|
+
/** Set the desktop sidebar collapsed state explicitly. */
|
|
135
|
+
collapseSidebar(collapsed = true) {
|
|
136
|
+
this._sidebarCollapsed$.next(collapsed);
|
|
137
|
+
}
|
|
138
|
+
/** Open the mobile sidebar drawer. */
|
|
139
|
+
openMobileSidebar() {
|
|
140
|
+
this._sidebarOpen$.next(true);
|
|
141
|
+
}
|
|
142
|
+
/** Close the mobile sidebar drawer. */
|
|
143
|
+
closeMobileSidebar() {
|
|
144
|
+
this._sidebarOpen$.next(false);
|
|
145
|
+
}
|
|
146
|
+
/** Synchronous snapshot: is the mobile sidebar open? */
|
|
147
|
+
isSidebarOpen() {
|
|
148
|
+
return this._sidebarOpen$.value;
|
|
149
|
+
}
|
|
150
|
+
/** Synchronous snapshot: is the desktop sidebar collapsed? */
|
|
151
|
+
isSidebarCollapsed() {
|
|
152
|
+
return this._sidebarCollapsed$.value;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Called internally by the layout-builder component to register the
|
|
156
|
+
* schema-level default FAB config.
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
_setDefaultFabConfig(config) {
|
|
160
|
+
this._defaultFabConfig = config;
|
|
161
|
+
this._fabConfig$.next(config);
|
|
162
|
+
}
|
|
163
|
+
/** Override the FAB main action for the current page context. */
|
|
164
|
+
setMainFabAction(action) {
|
|
165
|
+
const current = this._fabConfig$.value;
|
|
166
|
+
this._fabConfig$.next({
|
|
167
|
+
mainAction: action,
|
|
168
|
+
secondaryActions: current?.secondaryActions ?? [],
|
|
169
|
+
position: current?.position ?? 'bottom-right',
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/** Override all FAB actions for the current page context. */
|
|
173
|
+
setFabActions(main, secondary) {
|
|
174
|
+
const current = this._fabConfig$.value;
|
|
175
|
+
this._fabConfig$.next({
|
|
176
|
+
mainAction: main,
|
|
177
|
+
secondaryActions: secondary ?? [],
|
|
178
|
+
position: current?.position ?? 'bottom-right',
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/** Reset FAB to the schema-level default configuration. */
|
|
182
|
+
clearFabActions() {
|
|
183
|
+
this._fabConfig$.next(this._defaultFabConfig);
|
|
184
|
+
}
|
|
185
|
+
/** Set or clear a badge on a navigation item. Pass `null` to remove. */
|
|
186
|
+
setNavBadge(itemId, badge) {
|
|
187
|
+
const map = new Map(this._navBadges$.value);
|
|
188
|
+
if (badge === null) {
|
|
189
|
+
map.delete(itemId);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
map.set(itemId, badge);
|
|
193
|
+
}
|
|
194
|
+
this._navBadges$.next(map);
|
|
195
|
+
}
|
|
196
|
+
/** Override visibility of a navigation item. */
|
|
197
|
+
setNavItemVisibility(itemId, visible) {
|
|
198
|
+
const map = new Map(this._navVisibility$.value);
|
|
199
|
+
map.set(itemId, visible);
|
|
200
|
+
this._navVisibility$.next(map);
|
|
201
|
+
}
|
|
202
|
+
/** Show a topbar bar by ID. */
|
|
203
|
+
showBar(barId) {
|
|
204
|
+
const map = new Map(this._barVisibility$.value);
|
|
205
|
+
map.set(barId, true);
|
|
206
|
+
this._barVisibility$.next(map);
|
|
207
|
+
}
|
|
208
|
+
/** Hide a topbar bar by ID. */
|
|
209
|
+
hideBar(barId) {
|
|
210
|
+
const map = new Map(this._barVisibility$.value);
|
|
211
|
+
map.set(barId, false);
|
|
212
|
+
this._barVisibility$.next(map);
|
|
213
|
+
}
|
|
214
|
+
/** Toggle visibility of a topbar bar by ID. */
|
|
215
|
+
toggleBar(barId) {
|
|
216
|
+
const map = new Map(this._barVisibility$.value);
|
|
217
|
+
const current = map.get(barId);
|
|
218
|
+
map.set(barId, current === undefined ? false : !current);
|
|
219
|
+
this._barVisibility$.next(map);
|
|
220
|
+
}
|
|
221
|
+
/** Synchronous check of bar visibility (schema `visible` fallback). */
|
|
222
|
+
isBarVisible(barId, schemaVisible = true) {
|
|
223
|
+
const override = this._barVisibility$.value.get(barId);
|
|
224
|
+
return override !== undefined ? override : schemaVisible;
|
|
225
|
+
}
|
|
226
|
+
// ── Private helpers ──────────────────────────────────────────────
|
|
227
|
+
setBodyOverflow(locked) {
|
|
228
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
229
|
+
document.body.style.overflow = locked ? 'hidden' : '';
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
233
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiLayoutService, providedIn: 'root' }); }
|
|
234
|
+
}
|
|
235
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiLayoutService, decorators: [{
|
|
236
|
+
type: Injectable,
|
|
237
|
+
args: [{ providedIn: 'root' }]
|
|
238
|
+
}] });
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC1idWlsZGVyL2xheW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFTbkQsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsRCxvRUFBb0U7UUFFbkQsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLHVEQUF1RDtRQUM5QyxhQUFRLEdBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUE0QnZFLG1FQUFtRTtRQUVsRCxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFlLFNBQVMsQ0FBQyxDQUFDO1FBQzdFLCtDQUErQztRQUN0QyxnQkFBVyxHQUE2QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBMkJsRixtRUFBbUU7UUFFbEQsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsT0FBTyxDQUFDLENBQUM7UUFDN0UsdURBQXVEO1FBQzlDLGlCQUFZLEdBQThCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFpQnJGLG9FQUFvRTtRQUVuRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLGlEQUFpRDtRQUN4Qyxp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QyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsWUFBWSxDQUFDLEtBQWEsRUFBRSxhQUFhLEdBQUcsSUFBSTtRQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsT0FBTyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMzRCxDQUFDO0lBRUQsb0VBQW9FO0lBRTVELGVBQWUsQ0FBQyxNQUFlO1FBQ3JDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7K0dBN09VLGVBQWU7bUhBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDZW50cmFsIHNlcnZpY2UgZm9yIHByb2dyYW1tYXRpYyBjb250cm9sIG9mIHRoZSBgdWktbGF5b3V0LWJ1aWxkZXJgIHNoZWxsLlxyXG4gKlxyXG4gKiBQcm92aWRlcyByZWFjdGl2ZSBzdGF0ZSBtYW5hZ2VtZW50IGZvcjpcclxuICogLSBPdmVybGF5IGxvYWRlciAod2l0aCBib2R5IHNjcm9sbCBsb2NraW5nKVxyXG4gKiAtIFNpZGViYXIgb3BlbiAvIGNvbGxhcHNlZCBzdGF0ZVxyXG4gKiAtIENvbnRleHQtc2Vuc2l0aXZlIEZBQiBhY3Rpb25zXHJcbiAqIC0gTmF2aWdhdGlvbiBiYWRnZSBhbmQgdmlzaWJpbGl0eSBvdmVycmlkZXNcclxuICogLSBMYXlvdXQgbW9kZSBzd2l0Y2hpbmcgKHNpZGViYXIgLyB0b3BiYXIgLyBzbG90dGVkKVxyXG4gKiAtIENvbnRlbnQgdHlwZSAoZmx1aWQgLyBib3hlZCAvIGZ1bGxzY3JlZW4pXHJcbiAqIC0gVG9wYmFyIGJhciB2aXNpYmlsaXR5IChub3RpZmljYXRpb24gYmFycyBzaG93L2hpZGUpXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogZXhwb3J0IGNsYXNzIE15UGFnZUNvbXBvbmVudCB7XHJcbiAqICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoVWlMYXlvdXRTZXJ2aWNlKTtcclxuICpcclxuICogICBhc3luYyBsb2FkRGF0YSgpIHtcclxuICogICAgIHRoaXMubGF5b3V0LnNob3dMb2FkZXIoKTtcclxuICogICAgIHRyeSB7XHJcbiAqICAgICAgIGF3YWl0IHRoaXMuYXBpLmZldGNoQWxsKCk7XHJcbiAqICAgICB9IGZpbmFsbHkge1xyXG4gKiAgICAgICB0aGlzLmxheW91dC5oaWRlTG9hZGVyKCk7XHJcbiAqICAgICB9XHJcbiAqICAgfVxyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIFVpRmFiQWN0aW9uLFxyXG4gIFVpTGF5b3V0RmFiQ29uZmlnLFxyXG4gIFVpTGF5b3V0TW9kZSxcclxuICBVaUNvbnRlbnRUeXBlLFxyXG59IGZyb20gJy4vbGF5b3V0LWJ1aWxkZXIudHlwZXMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFVpTGF5b3V0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHJcbiAgLy8g4pSA4pSAIExvYWRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAvKiogV2hldGhlciB0aGUgb3ZlcmxheSBsb2FkZXIgaXMgY3VycmVudGx5IHZpc2libGUuICovXHJcbiAgcmVhZG9ubHkgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLyoqIFNob3cgdGhlIGZ1bGwtc2NyZWVuIG92ZXJsYXkgbG9hZGVyIGFuZCBibG9jayBib2R5IHNjcm9sbC4gKi9cclxuICBzaG93TG9hZGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbG9hZGluZyQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc2V0Qm9keU92ZXJmbG93KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEhpZGUgdGhlIG92ZXJsYXkgbG9hZGVyIGFuZCByZXN0b3JlIGJvZHkgc2Nyb2xsLiAqL1xyXG4gIGhpZGVMb2FkZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuc2V0Qm9keU92ZXJmbG93KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8qKiBUb2dnbGUgdGhlIG92ZXJsYXkgbG9hZGVyLiAqL1xyXG4gIHRvZ2dsZUxvYWRlcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9sb2FkaW5nJC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmhpZGVMb2FkZXIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0xvYWRlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFN5bmNocm9ub3VzIHNuYXBzaG90IG9mIHRoZSBsb2FkaW5nIHN0YXRlLiAqL1xyXG4gIGlzTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBMYXlvdXQgTW9kZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbGF5b3V0TW9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVpTGF5b3V0TW9kZT4oJ3NpZGViYXInKTtcclxuICAvKiogQ3VycmVudCBsYXlvdXQgbW9kZSAoc2lkZWJhciBvciB0b3BiYXIpLiAqL1xyXG4gIHJlYWRvbmx5IGxheW91dE1vZGUkOiBPYnNlcnZhYmxlPFVpTGF5b3V0TW9kZT4gPSB0aGlzLl9sYXlvdXRNb2RlJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3dpdGNoIGxheW91dCBtb2RlIHdpdGggbG9hZGVyIG1hc2tpbmcgdGhlIHRyYW5zaXRpb24uXHJcbiAgICogU2hvd3MgdGhlIGxvYWRlciwgYXBwbGllcyB0aGUgbW9kZSBjaGFuZ2UsIHRoZW4gaGlkZXMgdGhlIGxvYWRlclxyXG4gICAqIGFmdGVyIGEgc2hvcnQgZGVsYXkgdG8gcHJldmVudCB2aXNpYmxlIGxheW91dCBzaGlmdC5cclxuICAgKi9cclxuICBzZXRMYXlvdXRNb2RlKG1vZGU6IFVpTGF5b3V0TW9kZSwgdHJhbnNpdGlvbk1zID0gMzAwKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fbGF5b3V0TW9kZSQudmFsdWUgPT09IG1vZGUpIHJldHVybjtcclxuICAgIHRoaXMuc2hvd0xvYWRlcigpO1xyXG4gICAgdGhpcy5fbGF5b3V0TW9kZSQubmV4dChtb2RlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaWRlTG9hZGVyKCksIHRyYW5zaXRpb25Ncyk7XHJcbiAgfVxyXG5cclxuICAvKiogU3luY2hyb25vdXMgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgbGF5b3V0IG1vZGUuICovXHJcbiAgZ2V0TGF5b3V0TW9kZSgpOiBVaUxheW91dE1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xheW91dE1vZGUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsIENhbGxlZCBieSB0aGUgbGF5b3V0LWJ1aWxkZXIgY29tcG9uZW50IHRvIHNldCB0aGUgaW5pdGlhbCBtb2RlXHJcbiAgICogZnJvbSB0aGUgc2NoZW1hIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGUgbG9hZGVyIHRyYW5zaXRpb24uXHJcbiAgICovXHJcbiAgX3NldEluaXRpYWxMYXlvdXRNb2RlKG1vZGU6IFVpTGF5b3V0TW9kZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fbGF5b3V0TW9kZSQubmV4dChtb2RlKTtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBDb250ZW50IFR5cGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRUeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VWlDb250ZW50VHlwZT4oJ2ZsdWlkJyk7XHJcbiAgLyoqIEN1cnJlbnQgY29udGVudCB0eXBlIChmbHVpZCwgYm94ZWQsIGZ1bGxzY3JlZW4pLiAqL1xyXG4gIHJlYWRvbmx5IGNvbnRlbnRUeXBlJDogT2JzZXJ2YWJsZTxVaUNvbnRlbnRUeXBlPiA9IHRoaXMuX2NvbnRlbnRUeXBlJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLyoqIFNldCB0aGUgY29udGVudCB0eXBlIHBlci1yb3V0ZSBvciBnbG9iYWxseS4gKi9cclxuICBzZXRDb250ZW50VHlwZSh0eXBlOiBVaUNvbnRlbnRUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250ZW50VHlwZSQubmV4dCh0eXBlKTtcclxuICB9XHJcblxyXG4gIC8qKiBTeW5jaHJvbm91cyBzbmFwc2hvdCBvZiB0aGUgY3VycmVudCBjb250ZW50IHR5cGUuICovXHJcbiAgZ2V0Q29udGVudFR5cGUoKTogVWlDb250ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFR5cGUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gIF9zZXRJbml0aWFsQ29udGVudFR5cGUodHlwZTogVWlDb250ZW50VHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29udGVudFR5cGUkLm5leHQodHlwZSk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIAgU2lkZWJhciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc2lkZWJhck9wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgLyoqIFdoZXRoZXIgdGhlIG1vYmlsZSBzaWRlYmFyIGRyYXdlciBpcyBvcGVuLiAqL1xyXG4gIHJlYWRvbmx5IHNpZGViYXJPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX3NpZGViYXJPcGVuJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfc2lkZWJhckNvbGxhcHNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAvKiogV2hldGhlciB0aGUgZGVza3RvcCBzaWRlYmFyIGlzIGluIGNvbGxhcHNlZCAoaWNvbi1vbmx5KSBtb2RlLiAqL1xyXG4gIHJlYWRvbmx5IHNpZGViYXJDb2xsYXBzZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fc2lkZWJhckNvbGxhcHNlZCQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8qKiBUb2dnbGUgdGhlIGRlc2t0b3Agc2lkZWJhciBiZXR3ZWVuIGV4cGFuZGVkIGFuZCBjb2xsYXBzZWQuICovXHJcbiAgdG9nZ2xlU2lkZWJhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NpZGViYXJDb2xsYXBzZWQkLm5leHQoIXRoaXMuX3NpZGViYXJDb2xsYXBzZWQkLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXQgdGhlIGRlc2t0b3Agc2lkZWJhciBjb2xsYXBzZWQgc3RhdGUgZXhwbGljaXRseS4gKi9cclxuICBjb2xsYXBzZVNpZGViYXIoY29sbGFwc2VkID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2lkZWJhckNvbGxhcHNlZCQubmV4dChjb2xsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9wZW4gdGhlIG1vYmlsZSBzaWRlYmFyIGRyYXdlci4gKi9cclxuICBvcGVuTW9iaWxlU2lkZWJhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NpZGViYXJPcGVuJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENsb3NlIHRoZSBtb2JpbGUgc2lkZWJhciBkcmF3ZXIuICovXHJcbiAgY2xvc2VNb2JpbGVTaWRlYmFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2lkZWJhck9wZW4kLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFN5bmNocm9ub3VzIHNuYXBzaG90OiBpcyB0aGUgbW9iaWxlIHNpZGViYXIgb3Blbj8gKi9cclxuICBpc1NpZGViYXJPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpZGViYXJPcGVuJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKiBTeW5jaHJvbm91cyBzbmFwc2hvdDogaXMgdGhlIGRlc2t0b3Agc2lkZWJhciBjb2xsYXBzZWQ/ICovXHJcbiAgaXNTaWRlYmFyQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpZGViYXJDb2xsYXBzZWQkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8g4pSA4pSAIEZBQiAoY29udGV4dC1zZW5zaXRpdmUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICBwcml2YXRlIF9kZWZhdWx0RmFiQ29uZmlnOiBVaUxheW91dEZhYkNvbmZpZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZhYkNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVpTGF5b3V0RmFiQ29uZmlnIHwgbnVsbD4obnVsbCk7XHJcbiAgLyoqIEN1cnJlbnQgRkFCIGNvbmZpZ3VyYXRpb24gKHNjaGVtYSBkZWZhdWx0IG1lcmdlZCB3aXRoIHBhZ2Ugb3ZlcnJpZGVzKS4gKi9cclxuICByZWFkb25seSBmYWJDb25maWckOiBPYnNlcnZhYmxlPFVpTGF5b3V0RmFiQ29uZmlnIHwgbnVsbD4gPSB0aGlzLl9mYWJDb25maWckLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgaW50ZXJuYWxseSBieSB0aGUgbGF5b3V0LWJ1aWxkZXIgY29tcG9uZW50IHRvIHJlZ2lzdGVyIHRoZVxyXG4gICAqIHNjaGVtYS1sZXZlbCBkZWZhdWx0IEZBQiBjb25maWcuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgX3NldERlZmF1bHRGYWJDb25maWcoY29uZmlnOiBVaUxheW91dEZhYkNvbmZpZyB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RlZmF1bHRGYWJDb25maWcgPSBjb25maWc7XHJcbiAgICB0aGlzLl9mYWJDb25maWckLm5leHQoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8qKiBPdmVycmlkZSB0aGUgRkFCIG1haW4gYWN0aW9uIGZvciB0aGUgY3VycmVudCBwYWdlIGNvbnRleHQuICovXHJcbiAgc2V0TWFpbkZhYkFjdGlvbihhY3Rpb246IFVpRmFiQWN0aW9uKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fZmFiQ29uZmlnJC52YWx1ZTtcclxuICAgIHRoaXMuX2ZhYkNvbmZpZyQubmV4dCh7XHJcbiAgICAgIG1haW5BY3Rpb246IGFjdGlvbixcclxuICAgICAgc2Vjb25kYXJ5QWN0aW9uczogY3VycmVudD8uc2Vjb25kYXJ5QWN0aW9ucyA/PyBbXSxcclxuICAgICAgcG9zaXRpb246IGN1cnJlbnQ/LnBvc2l0aW9uID8/ICdib3R0b20tcmlnaHQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogT3ZlcnJpZGUgYWxsIEZBQiBhY3Rpb25zIGZvciB0aGUgY3VycmVudCBwYWdlIGNvbnRleHQuICovXHJcbiAgc2V0RmFiQWN0aW9ucyhtYWluOiBVaUZhYkFjdGlvbiwgc2Vjb25kYXJ5PzogVWlGYWJBY3Rpb25bXSk6IHZvaWQge1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX2ZhYkNvbmZpZyQudmFsdWU7XHJcbiAgICB0aGlzLl9mYWJDb25maWckLm5leHQoe1xyXG4gICAgICBtYWluQWN0aW9uOiBtYWluLFxyXG4gICAgICBzZWNvbmRhcnlBY3Rpb25zOiBzZWNvbmRhcnkgPz8gW10sXHJcbiAgICAgIHBvc2l0aW9uOiBjdXJyZW50Py5wb3NpdGlvbiA/PyAnYm90dG9tLXJpZ2h0JyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlc2V0IEZBQiB0byB0aGUgc2NoZW1hLWxldmVsIGRlZmF1bHQgY29uZmlndXJhdGlvbi4gKi9cclxuICBjbGVhckZhYkFjdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9mYWJDb25maWckLm5leHQodGhpcy5fZGVmYXVsdEZhYkNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIAgTmF2aWdhdGlvbiBoZWxwZXJzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9uYXZCYWRnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBudWxsPj4obmV3IE1hcCgpKTtcclxuICAvKiogT2JzZXJ2YWJsZSBtYXAgb2YgbmF2LWl0ZW0gYmFkZ2VzIGtleWVkIGJ5IGl0ZW0gSUQuICovXHJcbiAgcmVhZG9ubHkgbmF2QmFkZ2VzJDogT2JzZXJ2YWJsZTxNYXA8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBudWxsPj4gPSB0aGlzLl9uYXZCYWRnZXMkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9uYXZWaXNpYmlsaXR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPHN0cmluZywgYm9vbGVhbj4+KG5ldyBNYXAoKSk7XHJcbiAgLyoqIE9ic2VydmFibGUgbWFwIG9mIG5hdi1pdGVtIHZpc2liaWxpdHkgb3ZlcnJpZGVzIGtleWVkIGJ5IGl0ZW0gSUQuICovXHJcbiAgcmVhZG9ubHkgbmF2VmlzaWJpbGl0eSQ6IE9ic2VydmFibGU8TWFwPHN0cmluZywgYm9vbGVhbj4+ID0gdGhpcy5fbmF2VmlzaWJpbGl0eSQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8qKiBTZXQgb3IgY2xlYXIgYSBiYWRnZSBvbiBhIG5hdmlnYXRpb24gaXRlbS4gUGFzcyBgbnVsbGAgdG8gcmVtb3ZlLiAqL1xyXG4gIHNldE5hdkJhZGdlKGl0ZW1JZDogc3RyaW5nLCBiYWRnZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcCh0aGlzLl9uYXZCYWRnZXMkLnZhbHVlKTtcclxuICAgIGlmIChiYWRnZSA9PT0gbnVsbCkge1xyXG4gICAgICBtYXAuZGVsZXRlKGl0ZW1JZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtYXAuc2V0KGl0ZW1JZCwgYmFkZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbmF2QmFkZ2VzJC5uZXh0KG1hcCk7XHJcbiAgfVxyXG5cclxuICAvKiogT3ZlcnJpZGUgdmlzaWJpbGl0eSBvZiBhIG5hdmlnYXRpb24gaXRlbS4gKi9cclxuICBzZXROYXZJdGVtVmlzaWJpbGl0eShpdGVtSWQ6IHN0cmluZywgdmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcCh0aGlzLl9uYXZWaXNpYmlsaXR5JC52YWx1ZSk7XHJcbiAgICBtYXAuc2V0KGl0ZW1JZCwgdmlzaWJsZSk7XHJcbiAgICB0aGlzLl9uYXZWaXNpYmlsaXR5JC5uZXh0KG1hcCk7XHJcbiAgfVxyXG5cclxuICAvLyDilIDilIAgQmFyIHZpc2liaWxpdHkgKHRvcGJhciBub3RpZmljYXRpb24gYmFycykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2JhclZpc2liaWxpdHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8c3RyaW5nLCBib29sZWFuPj4obmV3IE1hcCgpKTtcclxuICAvKiogT2JzZXJ2YWJsZSBtYXAgb2YgdG9wYmFyIGJhciB2aXNpYmlsaXR5IGtleWVkIGJ5IGJhciBJRC4gKi9cclxuICByZWFkb25seSBiYXJWaXNpYmlsaXR5JDogT2JzZXJ2YWJsZTxNYXA8c3RyaW5nLCBib29sZWFuPj4gPSB0aGlzLl9iYXJWaXNpYmlsaXR5JC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgLyoqIFNob3cgYSB0b3BiYXIgYmFyIGJ5IElELiAqL1xyXG4gIHNob3dCYXIoYmFySWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcCh0aGlzLl9iYXJWaXNpYmlsaXR5JC52YWx1ZSk7XHJcbiAgICBtYXAuc2V0KGJhcklkLCB0cnVlKTtcclxuICAgIHRoaXMuX2JhclZpc2liaWxpdHkkLm5leHQobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKiBIaWRlIGEgdG9wYmFyIGJhciBieSBJRC4gKi9cclxuICBoaWRlQmFyKGJhcklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAodGhpcy5fYmFyVmlzaWJpbGl0eSQudmFsdWUpO1xyXG4gICAgbWFwLnNldChiYXJJZCwgZmFsc2UpO1xyXG4gICAgdGhpcy5fYmFyVmlzaWJpbGl0eSQubmV4dChtYXApO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvZ2dsZSB2aXNpYmlsaXR5IG9mIGEgdG9wYmFyIGJhciBieSBJRC4gKi9cclxuICB0b2dnbGVCYXIoYmFySWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcCh0aGlzLl9iYXJWaXNpYmlsaXR5JC52YWx1ZSk7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gbWFwLmdldChiYXJJZCk7XHJcbiAgICBtYXAuc2V0KGJhcklkLCBjdXJyZW50ID09PSB1bmRlZmluZWQgPyBmYWxzZSA6ICFjdXJyZW50KTtcclxuICAgIHRoaXMuX2JhclZpc2liaWxpdHkkLm5leHQobWFwKTtcclxuICB9XHJcblxyXG4gIC8qKiBTeW5jaHJvbm91cyBjaGVjayBvZiBiYXIgdmlzaWJpbGl0eSAoc2NoZW1hIGB2aXNpYmxlYCBmYWxsYmFjaykuICovXHJcbiAgaXNCYXJWaXNpYmxlKGJhcklkOiBzdHJpbmcsIHNjaGVtYVZpc2libGUgPSB0cnVlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBvdmVycmlkZSA9IHRoaXMuX2JhclZpc2liaWxpdHkkLnZhbHVlLmdldChiYXJJZCk7XHJcbiAgICByZXR1cm4gb3ZlcnJpZGUgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlIDogc2NoZW1hVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIC8vIOKUgOKUgCBQcml2YXRlIGhlbHBlcnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcblxyXG4gIHByaXZhdGUgc2V0Qm9keU92ZXJmbG93KGxvY2tlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IGxvY2tlZCA/ICdoaWRkZW4nIDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Toast container — manages stacking and positioning of active toasts.
|
|
3
|
+
*
|
|
4
|
+
* Dynamically attached to the DOM by `UiToastService` on first use.
|
|
5
|
+
* Renders one `ui-toast` per active notification.
|
|
6
|
+
*
|
|
7
|
+
* @selector ui-toast-container
|
|
8
|
+
* @internal Not intended for direct use.
|
|
9
|
+
*/
|
|
10
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, inject, } from '@angular/core';
|
|
11
|
+
import { UiToastComponent } from './toast.component';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class UiToastContainerComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
16
|
+
/** Active toasts — managed by UiToastService. */
|
|
17
|
+
this.toasts = [];
|
|
18
|
+
}
|
|
19
|
+
/** Called by UiToastService to add a toast. */
|
|
20
|
+
addToast(toast) {
|
|
21
|
+
this.toasts = [...this.toasts, toast];
|
|
22
|
+
this.cdr.markForCheck();
|
|
23
|
+
}
|
|
24
|
+
/** Called by UiToastService to remove a toast. */
|
|
25
|
+
removeToast(id) {
|
|
26
|
+
this.toasts = this.toasts.filter(t => t.id !== id);
|
|
27
|
+
this.cdr.markForCheck();
|
|
28
|
+
}
|
|
29
|
+
/** Update a toast's state (e.g. entering → exiting). */
|
|
30
|
+
updateToastState(id, state) {
|
|
31
|
+
const toast = this.toasts.find(t => t.id === id);
|
|
32
|
+
if (toast) {
|
|
33
|
+
toast.state = state;
|
|
34
|
+
this.cdr.markForCheck();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Dismiss handler from the toast component. */
|
|
38
|
+
onDismiss(toast) {
|
|
39
|
+
// This is handled by the service via dismiss()
|
|
40
|
+
if (toast.timeoutId)
|
|
41
|
+
clearTimeout(toast.timeoutId);
|
|
42
|
+
this.updateToastState(toast.id, 'exiting');
|
|
43
|
+
setTimeout(() => this.removeToast(toast.id), 260);
|
|
44
|
+
}
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiToastContainerComponent, isStandalone: true, selector: "ui-toast-container", host: { classAttribute: "ui-toast-container-host" }, ngImport: i0, template: `
|
|
47
|
+
@for (toast of toasts; track toast.id) {
|
|
48
|
+
<ui-toast
|
|
49
|
+
[message]="toast.message"
|
|
50
|
+
[type]="toast.type"
|
|
51
|
+
[state]="toast.state"
|
|
52
|
+
[dismissible]="toast.config.dismissible"
|
|
53
|
+
[enableHtml]="toast.config.enableHtml"
|
|
54
|
+
[icon]="toast.config.icon"
|
|
55
|
+
[customClass]="toast.config.customClass"
|
|
56
|
+
(dismissed)="onDismiss(toast)"
|
|
57
|
+
/>
|
|
58
|
+
}
|
|
59
|
+
`, isInline: true, styles: [".ui-toast-container-host{position:fixed;z-index:10000;pointer-events:none;display:flex;flex-direction:column;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-6, 24px);max-height:100vh;overflow:hidden;top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-right{top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-left{top:0;left:0;align-items:flex-start}.ui-toast-container-host--bottom-right{top:auto;bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.ui-toast-container-host--bottom-left{top:auto;bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.ui-toast-container-host--top-center{top:0;left:50%;right:auto;transform:translate(-50%);align-items:center}.ui-toast-container-host--bottom-center{inset:auto auto 0 50%;transform:translate(-50%);align-items:center;flex-direction:column-reverse}\n"], dependencies: [{ kind: "component", type: UiToastComponent, selector: "ui-toast", inputs: ["message", "type", "state", "dismissible", "enableHtml", "icon", "customClass"], outputs: ["dismissed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastContainerComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'ui-toast-container', standalone: true, imports: [UiToastComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
64
|
+
'class': 'ui-toast-container-host',
|
|
65
|
+
}, template: `
|
|
66
|
+
@for (toast of toasts; track toast.id) {
|
|
67
|
+
<ui-toast
|
|
68
|
+
[message]="toast.message"
|
|
69
|
+
[type]="toast.type"
|
|
70
|
+
[state]="toast.state"
|
|
71
|
+
[dismissible]="toast.config.dismissible"
|
|
72
|
+
[enableHtml]="toast.config.enableHtml"
|
|
73
|
+
[icon]="toast.config.icon"
|
|
74
|
+
[customClass]="toast.config.customClass"
|
|
75
|
+
(dismissed)="onDismiss(toast)"
|
|
76
|
+
/>
|
|
77
|
+
}
|
|
78
|
+
`, styles: [".ui-toast-container-host{position:fixed;z-index:10000;pointer-events:none;display:flex;flex-direction:column;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-6, 24px);max-height:100vh;overflow:hidden;top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-right{top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-left{top:0;left:0;align-items:flex-start}.ui-toast-container-host--bottom-right{top:auto;bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.ui-toast-container-host--bottom-left{top:auto;bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.ui-toast-container-host--top-center{top:0;left:50%;right:auto;transform:translate(-50%);align-items:center}.ui-toast-container-host--bottom-center{inset:auto auto 0 50%;transform:translate(-50%);align-items:center;flex-direction:column-reverse}\n"] }]
|
|
79
|
+
}] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFDSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTRCckQsTUFBTSxPQUFPLHlCQUF5QjtJQXpCdEM7UUEwQmEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXpDLGlEQUFpRDtRQUNqRCxXQUFNLEdBQWtCLEVBQUUsQ0FBQztLQThCOUI7SUE1QkcsK0NBQStDO0lBQy9DLFFBQVEsQ0FBQyxLQUFrQjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxXQUFXLENBQUMsRUFBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsZ0JBQWdCLENBQUMsRUFBVSxFQUFFLEtBQTJCO1FBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxTQUFTLENBQUMsS0FBa0I7UUFDeEIsK0NBQStDO1FBQy9DLElBQUksS0FBSyxDQUFDLFNBQVM7WUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDOytHQWpDUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtSUFoQnhCOzs7Ozs7Ozs7Ozs7O0dBYVgsdzZCQW5CVyxnQkFBZ0I7OzRGQXNCakIseUJBQXlCO2tCQXpCckMsU0FBUzsrQkFDSSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLENBQUMsbUJBQ1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixPQUFPLEVBQUUseUJBQXlCO3FCQUNyQyxZQUNTOzs7Ozs7Ozs7Ozs7O0dBYVgiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVG9hc3QgY29udGFpbmVyIOKAlCBtYW5hZ2VzIHN0YWNraW5nIGFuZCBwb3NpdGlvbmluZyBvZiBhY3RpdmUgdG9hc3RzLlxyXG4gKlxyXG4gKiBEeW5hbWljYWxseSBhdHRhY2hlZCB0byB0aGUgRE9NIGJ5IGBVaVRvYXN0U2VydmljZWAgb24gZmlyc3QgdXNlLlxyXG4gKiBSZW5kZXJzIG9uZSBgdWktdG9hc3RgIHBlciBhY3RpdmUgbm90aWZpY2F0aW9uLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktdG9hc3QtY29udGFpbmVyXHJcbiAqIEBpbnRlcm5hbCBOb3QgaW50ZW5kZWQgZm9yIGRpcmVjdCB1c2UuXHJcbiAqL1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVaVRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgdHlwZSB7IFVpVG9hc3REYXRhIH0gZnJvbSAnLi90b2FzdC50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndWktdG9hc3QtY29udGFpbmVyJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbVWlUb2FzdENvbXBvbmVudF0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJ2NsYXNzJzogJ3VpLXRvYXN0LWNvbnRhaW5lci1ob3N0JyxcclxuICAgIH0sXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgQGZvciAodG9hc3Qgb2YgdG9hc3RzOyB0cmFjayB0b2FzdC5pZCkge1xyXG4gICAgICA8dWktdG9hc3RcclxuICAgICAgICBbbWVzc2FnZV09XCJ0b2FzdC5tZXNzYWdlXCJcclxuICAgICAgICBbdHlwZV09XCJ0b2FzdC50eXBlXCJcclxuICAgICAgICBbc3RhdGVdPVwidG9hc3Quc3RhdGVcIlxyXG4gICAgICAgIFtkaXNtaXNzaWJsZV09XCJ0b2FzdC5jb25maWcuZGlzbWlzc2libGVcIlxyXG4gICAgICAgIFtlbmFibGVIdG1sXT1cInRvYXN0LmNvbmZpZy5lbmFibGVIdG1sXCJcclxuICAgICAgICBbaWNvbl09XCJ0b2FzdC5jb25maWcuaWNvblwiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzXT1cInRvYXN0LmNvbmZpZy5jdXN0b21DbGFzc1wiXHJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJvbkRpc21pc3ModG9hc3QpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICBgLFxyXG4gICAgc3R5bGVVcmw6ICcuL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaVRvYXN0Q29udGFpbmVyQ29tcG9uZW50IHtcclxuICAgIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgLyoqIEFjdGl2ZSB0b2FzdHMg4oCUIG1hbmFnZWQgYnkgVWlUb2FzdFNlcnZpY2UuICovXHJcbiAgICB0b2FzdHM6IFVpVG9hc3REYXRhW10gPSBbXTtcclxuXHJcbiAgICAvKiogQ2FsbGVkIGJ5IFVpVG9hc3RTZXJ2aWNlIHRvIGFkZCBhIHRvYXN0LiAqL1xyXG4gICAgYWRkVG9hc3QodG9hc3Q6IFVpVG9hc3REYXRhKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50b2FzdHMgPSBbLi4udGhpcy50b2FzdHMsIHRvYXN0XTtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2FsbGVkIGJ5IFVpVG9hc3RTZXJ2aWNlIHRvIHJlbW92ZSBhIHRvYXN0LiAqL1xyXG4gICAgcmVtb3ZlVG9hc3QoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudG9hc3RzID0gdGhpcy50b2FzdHMuZmlsdGVyKHQgPT4gdC5pZCAhPT0gaWQpO1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBVcGRhdGUgYSB0b2FzdCdzIHN0YXRlIChlLmcuIGVudGVyaW5nIOKGkiBleGl0aW5nKS4gKi9cclxuICAgIHVwZGF0ZVRvYXN0U3RhdGUoaWQ6IHN0cmluZywgc3RhdGU6IFVpVG9hc3REYXRhWydzdGF0ZSddKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdG9hc3QgPSB0aGlzLnRvYXN0cy5maW5kKHQgPT4gdC5pZCA9PT0gaWQpO1xyXG4gICAgICAgIGlmICh0b2FzdCkge1xyXG4gICAgICAgICAgICB0b2FzdC5zdGF0ZSA9IHN0YXRlO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERpc21pc3MgaGFuZGxlciBmcm9tIHRoZSB0b2FzdCBjb21wb25lbnQuICovXHJcbiAgICBvbkRpc21pc3ModG9hc3Q6IFVpVG9hc3REYXRhKTogdm9pZCB7XHJcbiAgICAgICAgLy8gVGhpcyBpcyBoYW5kbGVkIGJ5IHRoZSBzZXJ2aWNlIHZpYSBkaXNtaXNzKClcclxuICAgICAgICBpZiAodG9hc3QudGltZW91dElkKSBjbGVhclRpbWVvdXQodG9hc3QudGltZW91dElkKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVRvYXN0U3RhdGUodG9hc3QuaWQsICdleGl0aW5nJyk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZVRvYXN0KHRvYXN0LmlkKSwgMjYwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Individual toast notification element.
|
|
3
|
+
*
|
|
4
|
+
* Rendered dynamically by `UiToastContainerComponent`.
|
|
5
|
+
* Handles its own enter/exit CSS animations and auto-dismiss countdown.
|
|
6
|
+
*
|
|
7
|
+
* @selector ui-toast
|
|
8
|
+
* @internal Not intended for direct use — managed by `UiToastService`.
|
|
9
|
+
*/
|
|
10
|
+
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, EventEmitter, } from '@angular/core';
|
|
11
|
+
import { CommonModule } from '@angular/common';
|
|
12
|
+
import { LucideAngularModule } from 'lucide-angular';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "lucide-angular";
|
|
15
|
+
export class UiToastComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
/** Toast message text. */
|
|
18
|
+
this.message = '';
|
|
19
|
+
/** Toast type for styling. */
|
|
20
|
+
this.type = 'info';
|
|
21
|
+
/** Animation state. */
|
|
22
|
+
this.state = 'entering';
|
|
23
|
+
/** Whether the close button is shown. */
|
|
24
|
+
this.dismissible = true;
|
|
25
|
+
/** Whether HTML rendering is enabled. */
|
|
26
|
+
this.enableHtml = false;
|
|
27
|
+
/** Emitted when the user clicks the dismiss button. */
|
|
28
|
+
this.dismissed = new EventEmitter();
|
|
29
|
+
}
|
|
30
|
+
/** Resolved icon name based on type. */
|
|
31
|
+
get resolvedIcon() {
|
|
32
|
+
if (this.icon)
|
|
33
|
+
return this.icon;
|
|
34
|
+
switch (this.type) {
|
|
35
|
+
case 'success': return 'check-circle';
|
|
36
|
+
case 'error': return 'x-circle';
|
|
37
|
+
case 'warning': return 'alert-triangle';
|
|
38
|
+
case 'info':
|
|
39
|
+
default: return 'info';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
// Transition from entering → visible after the CSS animation completes
|
|
44
|
+
this.enterTimeout = setTimeout(() => {
|
|
45
|
+
this.state = 'visible';
|
|
46
|
+
}, 320);
|
|
47
|
+
}
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
if (this.enterTimeout)
|
|
50
|
+
clearTimeout(this.enterTimeout);
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiToastComponent, isStandalone: true, selector: "ui-toast", inputs: { message: "message", type: "type", state: "state", dismissible: "dismissible", enableHtml: "enableHtml", icon: "icon", customClass: "customClass" }, outputs: { dismissed: "dismissed" }, host: { classAttribute: "ui-toast-host" }, ngImport: i0, template: `
|
|
54
|
+
<div
|
|
55
|
+
class="ui-toast {{ customClass || '' }}"
|
|
56
|
+
[class.ui-toast--success]="type === 'success'"
|
|
57
|
+
[class.ui-toast--error]="type === 'error'"
|
|
58
|
+
[class.ui-toast--warning]="type === 'warning'"
|
|
59
|
+
[class.ui-toast--info]="type === 'info'"
|
|
60
|
+
[class.ui-toast--entering]="state === 'entering'"
|
|
61
|
+
[class.ui-toast--visible]="state === 'visible'"
|
|
62
|
+
[class.ui-toast--exiting]="state === 'exiting'"
|
|
63
|
+
role="alert"
|
|
64
|
+
aria-live="assertive"
|
|
65
|
+
aria-atomic="true"
|
|
66
|
+
>
|
|
67
|
+
<div class="ui-toast__icon">
|
|
68
|
+
<lucide-icon [name]="resolvedIcon" [size]="20"></lucide-icon>
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div class="ui-toast__content">
|
|
72
|
+
@if (enableHtml) {
|
|
73
|
+
<span class="ui-toast__message" [innerHTML]="message"></span>
|
|
74
|
+
} @else {
|
|
75
|
+
<span class="ui-toast__message">{{ message }}</span>
|
|
76
|
+
}
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
@if (dismissible) {
|
|
80
|
+
<button
|
|
81
|
+
class="ui-toast__close"
|
|
82
|
+
type="button"
|
|
83
|
+
(click)="dismissed.emit()"
|
|
84
|
+
aria-label="Chiudi notifica"
|
|
85
|
+
>
|
|
86
|
+
<lucide-icon name="x" [size]="16"></lucide-icon>
|
|
87
|
+
</button>
|
|
88
|
+
}
|
|
89
|
+
</div>
|
|
90
|
+
`, isInline: true, styles: [".ui-toast-host{display:contents}.ui-toast{display:flex;align-items:flex-start;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-3, 12px) var(--ui-spacing-4, 16px);border-radius:var(--ui-radius-md, 8px);min-width:320px;max-width:440px;font-family:var(--ui-font-family, \"Inter\", sans-serif);font-size:var(--ui-font-size-sm, .875rem);font-weight:400;line-height:1.5;color:var(--ui-color-neutral-900, #111827);background:var(--ui-color-surface, #ffffff);border:1px solid var(--ui-color-neutral-200, #e5e7eb);box-shadow:var(--ui-shadow-md);pointer-events:auto;position:relative;overflow:hidden}.ui-toast:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px;background:transparent}.ui-toast--entering{animation:ui-toast-slide-in .25s cubic-bezier(.2,0,0,1) forwards}.ui-toast--visible{opacity:1;transform:translate(0)}.ui-toast--exiting{animation:ui-toast-slide-out .2s cubic-bezier(.4,0,1,1) forwards}.ui-toast--success:before{background:var(--ui-color-success, #10b981)}.ui-toast--success .ui-toast__icon{color:var(--ui-color-success, #10b981)}.ui-toast--error:before{background:var(--ui-color-warn, #ef4444)}.ui-toast--error .ui-toast__icon{color:var(--ui-color-warn, #ef4444)}.ui-toast--warning:before{background:var(--ui-color-warning, #f59e0b)}.ui-toast--warning .ui-toast__icon{color:var(--ui-color-warning, #f59e0b)}.ui-toast--info:before{background:var(--ui-color-info, #3b82f6)}.ui-toast--info .ui-toast__icon{color:var(--ui-color-info, #3b82f6)}.ui-toast__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px}.ui-toast__content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:20px}.ui-toast__message{word-break:break-word;margin:0}.ui-toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin:0 -4px 0 0;border:none;border-radius:var(--ui-radius-sm, 4px);background:transparent;color:var(--ui-color-neutral-400, #9ca3af);cursor:pointer;transition-property:background,color;transition-duration:var(--ui-transition-fast);transition-timing-function:ease}.ui-toast__close:hover{background:var(--ui-color-neutral-100, #f3f4f6);color:var(--ui-color-neutral-700, #374151)}.ui-toast__close:focus{outline:none}.ui-toast__close:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}@keyframes ui-toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes ui-toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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 }); }
|
|
91
|
+
}
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastComponent, decorators: [{
|
|
93
|
+
type: Component,
|
|
94
|
+
args: [{ selector: 'ui-toast', standalone: true, imports: [CommonModule, LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
95
|
+
'class': 'ui-toast-host',
|
|
96
|
+
}, template: `
|
|
97
|
+
<div
|
|
98
|
+
class="ui-toast {{ customClass || '' }}"
|
|
99
|
+
[class.ui-toast--success]="type === 'success'"
|
|
100
|
+
[class.ui-toast--error]="type === 'error'"
|
|
101
|
+
[class.ui-toast--warning]="type === 'warning'"
|
|
102
|
+
[class.ui-toast--info]="type === 'info'"
|
|
103
|
+
[class.ui-toast--entering]="state === 'entering'"
|
|
104
|
+
[class.ui-toast--visible]="state === 'visible'"
|
|
105
|
+
[class.ui-toast--exiting]="state === 'exiting'"
|
|
106
|
+
role="alert"
|
|
107
|
+
aria-live="assertive"
|
|
108
|
+
aria-atomic="true"
|
|
109
|
+
>
|
|
110
|
+
<div class="ui-toast__icon">
|
|
111
|
+
<lucide-icon [name]="resolvedIcon" [size]="20"></lucide-icon>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div class="ui-toast__content">
|
|
115
|
+
@if (enableHtml) {
|
|
116
|
+
<span class="ui-toast__message" [innerHTML]="message"></span>
|
|
117
|
+
} @else {
|
|
118
|
+
<span class="ui-toast__message">{{ message }}</span>
|
|
119
|
+
}
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
@if (dismissible) {
|
|
123
|
+
<button
|
|
124
|
+
class="ui-toast__close"
|
|
125
|
+
type="button"
|
|
126
|
+
(click)="dismissed.emit()"
|
|
127
|
+
aria-label="Chiudi notifica"
|
|
128
|
+
>
|
|
129
|
+
<lucide-icon name="x" [size]="16"></lucide-icon>
|
|
130
|
+
</button>
|
|
131
|
+
}
|
|
132
|
+
</div>
|
|
133
|
+
`, styles: [".ui-toast-host{display:contents}.ui-toast{display:flex;align-items:flex-start;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-3, 12px) var(--ui-spacing-4, 16px);border-radius:var(--ui-radius-md, 8px);min-width:320px;max-width:440px;font-family:var(--ui-font-family, \"Inter\", sans-serif);font-size:var(--ui-font-size-sm, .875rem);font-weight:400;line-height:1.5;color:var(--ui-color-neutral-900, #111827);background:var(--ui-color-surface, #ffffff);border:1px solid var(--ui-color-neutral-200, #e5e7eb);box-shadow:var(--ui-shadow-md);pointer-events:auto;position:relative;overflow:hidden}.ui-toast:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px;background:transparent}.ui-toast--entering{animation:ui-toast-slide-in .25s cubic-bezier(.2,0,0,1) forwards}.ui-toast--visible{opacity:1;transform:translate(0)}.ui-toast--exiting{animation:ui-toast-slide-out .2s cubic-bezier(.4,0,1,1) forwards}.ui-toast--success:before{background:var(--ui-color-success, #10b981)}.ui-toast--success .ui-toast__icon{color:var(--ui-color-success, #10b981)}.ui-toast--error:before{background:var(--ui-color-warn, #ef4444)}.ui-toast--error .ui-toast__icon{color:var(--ui-color-warn, #ef4444)}.ui-toast--warning:before{background:var(--ui-color-warning, #f59e0b)}.ui-toast--warning .ui-toast__icon{color:var(--ui-color-warning, #f59e0b)}.ui-toast--info:before{background:var(--ui-color-info, #3b82f6)}.ui-toast--info .ui-toast__icon{color:var(--ui-color-info, #3b82f6)}.ui-toast__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px}.ui-toast__content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:20px}.ui-toast__message{word-break:break-word;margin:0}.ui-toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin:0 -4px 0 0;border:none;border-radius:var(--ui-radius-sm, 4px);background:transparent;color:var(--ui-color-neutral-400, #9ca3af);cursor:pointer;transition-property:background,color;transition-duration:var(--ui-transition-fast);transition-timing-function:ease}.ui-toast__close:hover{background:var(--ui-color-neutral-100, #f3f4f6);color:var(--ui-color-neutral-700, #374151)}.ui-toast__close:focus{outline:none}.ui-toast__close:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}@keyframes ui-toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes ui-toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"] }]
|
|
134
|
+
}], propDecorators: { message: [{
|
|
135
|
+
type: Input
|
|
136
|
+
}], type: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], state: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], dismissible: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], enableHtml: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], icon: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], customClass: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], dismissed: [{
|
|
149
|
+
type: Output
|
|
150
|
+
}] } });
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFDSCxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFvRHJELE1BQU0sT0FBTyxnQkFBZ0I7SUFqRDdCO1FBa0RFLDBCQUEwQjtRQUNqQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLDhCQUE4QjtRQUNyQixTQUFJLEdBQWdCLE1BQU0sQ0FBQztRQUNwQyx1QkFBdUI7UUFDZCxVQUFLLEdBQXVDLFVBQVUsQ0FBQztRQUNoRSx5Q0FBeUM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDNUIseUNBQXlDO1FBQ2hDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFNNUIsdURBQXVEO1FBQzdDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBMEJoRDtJQXRCQyx3Q0FBd0M7SUFDeEMsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sY0FBYyxDQUFDO1lBQ3RDLEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUM7WUFDaEMsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLGdCQUFnQixDQUFDO1lBQ3hDLEtBQUssTUFBTSxDQUFDO1lBQ1osT0FBTyxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sdUVBQXVFO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pELENBQUM7K0dBMUNVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLGtUQXhDakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1QsaXFGQTNDUyxZQUFZLDhCQUFFLG1CQUFtQjs7NEZBOENoQyxnQkFBZ0I7a0JBakQ1QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osT0FBTyxFQUFFLGVBQWU7cUJBQ3pCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ1Q7OEJBS1EsT0FBTztzQkFBZixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogSW5kaXZpZHVhbCB0b2FzdCBub3RpZmljYXRpb24gZWxlbWVudC5cclxuICpcclxuICogUmVuZGVyZWQgZHluYW1pY2FsbHkgYnkgYFVpVG9hc3RDb250YWluZXJDb21wb25lbnRgLlxyXG4gKiBIYW5kbGVzIGl0cyBvd24gZW50ZXIvZXhpdCBDU1MgYW5pbWF0aW9ucyBhbmQgYXV0by1kaXNtaXNzIGNvdW50ZG93bi5cclxuICpcclxuICogQHNlbGVjdG9yIHVpLXRvYXN0XHJcbiAqIEBpbnRlcm5hbCBOb3QgaW50ZW5kZWQgZm9yIGRpcmVjdCB1c2Ug4oCUIG1hbmFnZWQgYnkgYFVpVG9hc3RTZXJ2aWNlYC5cclxuICovXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTHVjaWRlQW5ndWxhck1vZHVsZSB9IGZyb20gJ2x1Y2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHR5cGUgeyBVaVRvYXN0VHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaW5kZXgnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS10b2FzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMdWNpZGVBbmd1bGFyTW9kdWxlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHtcclxuICAgICdjbGFzcyc6ICd1aS10b2FzdC1ob3N0JyxcclxuICB9LFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidWktdG9hc3Qge3sgY3VzdG9tQ2xhc3MgfHwgJycgfX1cIlxyXG4gICAgICBbY2xhc3MudWktdG9hc3QtLXN1Y2Nlc3NdPVwidHlwZSA9PT0gJ3N1Y2Nlc3MnXCJcclxuICAgICAgW2NsYXNzLnVpLXRvYXN0LS1lcnJvcl09XCJ0eXBlID09PSAnZXJyb3InXCJcclxuICAgICAgW2NsYXNzLnVpLXRvYXN0LS13YXJuaW5nXT1cInR5cGUgPT09ICd3YXJuaW5nJ1wiXHJcbiAgICAgIFtjbGFzcy51aS10b2FzdC0taW5mb109XCJ0eXBlID09PSAnaW5mbydcIlxyXG4gICAgICBbY2xhc3MudWktdG9hc3QtLWVudGVyaW5nXT1cInN0YXRlID09PSAnZW50ZXJpbmcnXCJcclxuICAgICAgW2NsYXNzLnVpLXRvYXN0LS12aXNpYmxlXT1cInN0YXRlID09PSAndmlzaWJsZSdcIlxyXG4gICAgICBbY2xhc3MudWktdG9hc3QtLWV4aXRpbmddPVwic3RhdGUgPT09ICdleGl0aW5nJ1wiXHJcbiAgICAgIHJvbGU9XCJhbGVydFwiXHJcbiAgICAgIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiXHJcbiAgICAgIGFyaWEtYXRvbWljPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1aS10b2FzdF9faWNvblwiPlxyXG4gICAgICAgIDxsdWNpZGUtaWNvbiBbbmFtZV09XCJyZXNvbHZlZEljb25cIiBbc2l6ZV09XCIyMFwiPjwvbHVjaWRlLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInVpLXRvYXN0X19jb250ZW50XCI+XHJcbiAgICAgICAgQGlmIChlbmFibGVIdG1sKSB7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLXRvYXN0X19tZXNzYWdlXCIgW2lubmVySFRNTF09XCJtZXNzYWdlXCI+PC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1aS10b2FzdF9fbWVzc2FnZVwiPnt7IG1lc3NhZ2UgfX08L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAoZGlzbWlzc2libGUpIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cInVpLXRvYXN0X19jbG9zZVwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJkaXNtaXNzZWQuZW1pdCgpXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDaGl1ZGkgbm90aWZpY2FcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwieFwiIFtzaXplXT1cIjE2XCI+PC9sdWNpZGUtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKiogVG9hc3QgbWVzc2FnZSB0ZXh0LiAqL1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcclxuICAvKiogVG9hc3QgdHlwZSBmb3Igc3R5bGluZy4gKi9cclxuICBASW5wdXQoKSB0eXBlOiBVaVRvYXN0VHlwZSA9ICdpbmZvJztcclxuICAvKiogQW5pbWF0aW9uIHN0YXRlLiAqL1xyXG4gIEBJbnB1dCgpIHN0YXRlOiAnZW50ZXJpbmcnIHwgJ3Zpc2libGUnIHwgJ2V4aXRpbmcnID0gJ2VudGVyaW5nJztcclxuICAvKiogV2hldGhlciB0aGUgY2xvc2UgYnV0dG9uIGlzIHNob3duLiAqL1xyXG4gIEBJbnB1dCgpIGRpc21pc3NpYmxlID0gdHJ1ZTtcclxuICAvKiogV2hldGhlciBIVE1MIHJlbmRlcmluZyBpcyBlbmFibGVkLiAqL1xyXG4gIEBJbnB1dCgpIGVuYWJsZUh0bWwgPSBmYWxzZTtcclxuICAvKiogQ3VzdG9tIEx1Y2lkZSBpY29uIG92ZXJyaWRlLiAqL1xyXG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmc7XHJcbiAgLyoqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzLiAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG5cclxuICAvKiogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGUgZGlzbWlzcyBidXR0b24uICovXHJcbiAgQE91dHB1dCgpIGRpc21pc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBlbnRlclRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcclxuXHJcbiAgLyoqIFJlc29sdmVkIGljb24gbmFtZSBiYXNlZCBvbiB0eXBlLiAqL1xyXG4gIGdldCByZXNvbHZlZEljb24oKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmljb24pIHJldHVybiB0aGlzLmljb247XHJcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICBjYXNlICdzdWNjZXNzJzogcmV0dXJuICdjaGVjay1jaXJjbGUnO1xyXG4gICAgICBjYXNlICdlcnJvcic6IHJldHVybiAneC1jaXJjbGUnO1xyXG4gICAgICBjYXNlICd3YXJuaW5nJzogcmV0dXJuICdhbGVydC10cmlhbmdsZSc7XHJcbiAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJ2luZm8nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBUcmFuc2l0aW9uIGZyb20gZW50ZXJpbmcg4oaSIHZpc2libGUgYWZ0ZXIgdGhlIENTUyBhbmltYXRpb24gY29tcGxldGVzXHJcbiAgICB0aGlzLmVudGVyVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN0YXRlID0gJ3Zpc2libGUnO1xyXG4gICAgfSwgMzIwKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZW50ZXJUaW1lb3V0KSBjbGVhclRpbWVvdXQodGhpcy5lbnRlclRpbWVvdXQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|