@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,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './entry-base-layout';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ25nZ2xuLW5nLXVpLXN5c3RlbS1iYXNlLWxheW91dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvZ25nZ2xuLW5nLXVpLXN5c3RlbS1iYXNlLWxheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZW50cnktYmFzZS1sYXlvdXQnO1xuIl19
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, Input, inject, signal, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
4
|
+
import { debounceTime, filter } from 'rxjs/operators';
|
|
5
|
+
import { UiButtonAreaComponent } from '../button/button-area.component';
|
|
6
|
+
import { UiBreadcrumbService } from '../page-header/breadcrumb.service';
|
|
7
|
+
import { UiPageHeaderComponent } from '../page-header/page-header.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Full-page layout component that combines a page header (breadcrumbs + title),
|
|
11
|
+
* a main content area via `<ng-content>`, and a sticky footer action bar
|
|
12
|
+
* powered by `UiButtonAreaComponent`.
|
|
13
|
+
*
|
|
14
|
+
* Optionally renders an automatic "back" button in the footer, derived from
|
|
15
|
+
* the breadcrumb trail (navigates to the parent breadcrumb).
|
|
16
|
+
*
|
|
17
|
+
* ### Route `data`
|
|
18
|
+
*
|
|
19
|
+
* Sulla rotta attiva (foglia) puoi impostare:
|
|
20
|
+
*
|
|
21
|
+
* - `breadcrumbOff: true` — nasconde `ui-page-header`
|
|
22
|
+
* - `footerNavOff: true` — nasconde `ui-base-layout__footer`
|
|
23
|
+
* - `id: string` — valorizza `data-route-id` sul contenitore `.ui-base-layout`
|
|
24
|
+
*
|
|
25
|
+
* @selector ui-base-layout
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```html
|
|
29
|
+
* <ui-base-layout [actions]="pageActions" footerAlign="end">
|
|
30
|
+
* <p>Your page content here</p>
|
|
31
|
+
* </ui-base-layout>
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```html
|
|
36
|
+
* <!-- With back button and custom title -->
|
|
37
|
+
* <ui-base-layout
|
|
38
|
+
* title="Dettaglio utente"
|
|
39
|
+
* [showBackButton]="true"
|
|
40
|
+
* [actions]="[
|
|
41
|
+
* { id: 'save', label: 'Salva', variant: 'primary', icon: 'save', action: save },
|
|
42
|
+
* ]"
|
|
43
|
+
* >
|
|
44
|
+
* <app-user-detail />
|
|
45
|
+
* </ui-base-layout>
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export class UiBaseLayoutComponent {
|
|
49
|
+
constructor() {
|
|
50
|
+
/** Whether to display the page header (breadcrumbs + title). */
|
|
51
|
+
this.showHeader = true;
|
|
52
|
+
/** Override the auto-detected page title. Passed through to `ui-page-header`. */
|
|
53
|
+
this.title = '';
|
|
54
|
+
/** Route path for the Home breadcrumb link. */
|
|
55
|
+
this.homeRoute = '/';
|
|
56
|
+
/** Whether to display the Home link in the breadcrumb trail. */
|
|
57
|
+
this.showHome = true;
|
|
58
|
+
/** When `true`, updates `document.title` on navigation. */
|
|
59
|
+
this.updateDocumentTitle = false;
|
|
60
|
+
/** Suffix appended to `document.title`. */
|
|
61
|
+
this.titleSuffix = '';
|
|
62
|
+
/** Whether to show an automatic "back" button based on breadcrumbs. */
|
|
63
|
+
this.showBackButton = true;
|
|
64
|
+
/** Configuration overrides for the automatic back button. */
|
|
65
|
+
this.backButtonConfig = {};
|
|
66
|
+
/** Array of button descriptors for the footer action area. */
|
|
67
|
+
this.actions = [];
|
|
68
|
+
/** Horizontal alignment of the footer button area. */
|
|
69
|
+
this.footerAlign = 'start';
|
|
70
|
+
/** Gap size between footer buttons. */
|
|
71
|
+
this.footerGap = 'sm';
|
|
72
|
+
this.router = inject(Router);
|
|
73
|
+
this.activatedRoute = inject(ActivatedRoute);
|
|
74
|
+
this.breadcrumbService = inject(UiBreadcrumbService);
|
|
75
|
+
this.destroyRef = inject(DestroyRef);
|
|
76
|
+
/**
|
|
77
|
+
* Flag derivati dalla catena attiva (`breadcrumbOff`, `footerNavOff`, `id`).
|
|
78
|
+
* Aggiornati a ogni `NavigationEnd`.
|
|
79
|
+
*/
|
|
80
|
+
this.routeSnapshotFlags = signal({
|
|
81
|
+
breadcrumbOff: false,
|
|
82
|
+
footerNavOff: false,
|
|
83
|
+
routeId: null,
|
|
84
|
+
});
|
|
85
|
+
/** Header visibile se abilitato da input e non disattivato da `data.breadcrumbOff`. */
|
|
86
|
+
this.effectiveShowHeader = () => this.showHeader && !this.routeSnapshotFlags().breadcrumbOff;
|
|
87
|
+
/** Footer azioni visibile se ci sono azioni visibili e non disattivato da `data.footerNavOff`. */
|
|
88
|
+
this.effectiveShowFooterNav = () => !this.routeSnapshotFlags().footerNavOff && this.hasVisibleActions;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Merged action list (back button + consumer actions).
|
|
92
|
+
* Computed on every change-detection check so it stays in sync
|
|
93
|
+
* with both navigation state (breadcrumbs) and input changes.
|
|
94
|
+
*/
|
|
95
|
+
get mergedActions() {
|
|
96
|
+
const result = [];
|
|
97
|
+
if (this.showBackButton) {
|
|
98
|
+
result.push({
|
|
99
|
+
id: '__ui-back',
|
|
100
|
+
label: this.backButtonConfig.label ?? 'Indietro',
|
|
101
|
+
icon: this.backButtonConfig.icon ?? 'arrow-left',
|
|
102
|
+
iconPosition: 'leading',
|
|
103
|
+
variant: this.backButtonConfig.variant ?? 'outline',
|
|
104
|
+
hidden: this.shouldHideBackButton(),
|
|
105
|
+
action: () => this.navigateBack(),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
result.push(...this.actions);
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
/** Whether the footer should render (at least one non-hidden action exists). */
|
|
112
|
+
get hasVisibleActions() {
|
|
113
|
+
return this.mergedActions.some((a) => !a.hidden);
|
|
114
|
+
}
|
|
115
|
+
ngOnInit() {
|
|
116
|
+
this.syncFromActivatedRoute();
|
|
117
|
+
this.router.events
|
|
118
|
+
.pipe(filter((event) => event instanceof NavigationEnd), debounceTime(50), takeUntilDestroyed(this.destroyRef))
|
|
119
|
+
.subscribe(() => this.syncFromActivatedRoute());
|
|
120
|
+
}
|
|
121
|
+
/** @internal Allinea breadcrumb service e flag layout alla rotta corrente. */
|
|
122
|
+
syncFromActivatedRoute() {
|
|
123
|
+
this.refreshRouteSnapshotFlags();
|
|
124
|
+
this.breadcrumbService.getBreadcrumbsForRoute(this.activatedRoute);
|
|
125
|
+
}
|
|
126
|
+
/** @internal Legge `breadcrumbOff`, `footerNavOff`, `id` dalla catena `pathFromRoot` / foglia. */
|
|
127
|
+
refreshRouteSnapshotFlags() {
|
|
128
|
+
const deepest = this.deepestChildRoute(this.activatedRoute);
|
|
129
|
+
let breadcrumbOff = false;
|
|
130
|
+
let footerNavOff = false;
|
|
131
|
+
for (const seg of deepest.pathFromRoot) {
|
|
132
|
+
const d = seg.snapshot.data;
|
|
133
|
+
if (!d)
|
|
134
|
+
continue;
|
|
135
|
+
// biome-ignore lint/complexity/useLiteralKeys: chiavi documentate in UiBaseLayoutRouteData
|
|
136
|
+
if (d['breadcrumbOff'] === true)
|
|
137
|
+
breadcrumbOff = true;
|
|
138
|
+
// biome-ignore lint/complexity/useLiteralKeys: chiavi documentate in UiBaseLayoutRouteData
|
|
139
|
+
if (d['footerNavOff'] === true)
|
|
140
|
+
footerNavOff = true;
|
|
141
|
+
}
|
|
142
|
+
let routeId = null;
|
|
143
|
+
let cursor = deepest;
|
|
144
|
+
while (cursor) {
|
|
145
|
+
const raw = cursor.snapshot.data?.['id'];
|
|
146
|
+
if (typeof raw === 'string' && raw.length > 0) {
|
|
147
|
+
routeId = raw;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
cursor = cursor.parent;
|
|
151
|
+
}
|
|
152
|
+
this.routeSnapshotFlags.set({ breadcrumbOff, footerNavOff, routeId });
|
|
153
|
+
}
|
|
154
|
+
/** @internal Percorre fino al `ActivatedRoute` foglia sotto il punto di iniezione. */
|
|
155
|
+
deepestChildRoute(route) {
|
|
156
|
+
let deepest = route;
|
|
157
|
+
while (deepest.firstChild) {
|
|
158
|
+
deepest = deepest.firstChild;
|
|
159
|
+
}
|
|
160
|
+
return deepest;
|
|
161
|
+
}
|
|
162
|
+
/** @internal Determina se il back button deve essere nascosto per la rotta corrente. */
|
|
163
|
+
shouldHideBackButton() {
|
|
164
|
+
const currentPath = this.router.url.split('?')[0].split('#')[0];
|
|
165
|
+
if (currentPath === this.homeRoute) {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
const deepestRoute = this.deepestChildRoute(this.activatedRoute);
|
|
169
|
+
// biome-ignore lint/complexity/useLiteralKeys: <explanation>
|
|
170
|
+
if (deepestRoute.snapshot.data?.['hideBackButton'] === true) {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
/** @internal Naviga al breadcrumb genitore o esegue il fallback alla home route. */
|
|
176
|
+
navigateBack() {
|
|
177
|
+
this.breadcrumbService.navigateBack(this.homeRoute);
|
|
178
|
+
}
|
|
179
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBaseLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiBaseLayoutComponent, isStandalone: true, selector: "ui-base-layout", inputs: { showHeader: "showHeader", title: "title", homeRoute: "homeRoute", showHome: "showHome", updateDocumentTitle: "updateDocumentTitle", titleSuffix: "titleSuffix", showBackButton: "showBackButton", backButtonConfig: "backButtonConfig", actions: "actions", footerAlign: "footerAlign", footerGap: "footerGap" }, host: { classAttribute: "ui-base-layout-host" }, ngImport: i0, template: `
|
|
181
|
+
<div class="ui-base-layout" [attr.data-route-id]="routeSnapshotFlags().routeId">
|
|
182
|
+
@if (effectiveShowHeader()) {
|
|
183
|
+
<ui-page-header
|
|
184
|
+
[title]="title"
|
|
185
|
+
[homeRoute]="homeRoute"
|
|
186
|
+
[showHome]="showHome"
|
|
187
|
+
[updateDocumentTitle]="updateDocumentTitle"
|
|
188
|
+
[titleSuffix]="titleSuffix"
|
|
189
|
+
/>
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
<main class="ui-base-layout__content">
|
|
193
|
+
<ng-content />
|
|
194
|
+
</main>
|
|
195
|
+
|
|
196
|
+
@if (effectiveShowFooterNav()) {
|
|
197
|
+
<aside
|
|
198
|
+
class="ui-base-layout__footer"
|
|
199
|
+
aria-label="Page actions"
|
|
200
|
+
>
|
|
201
|
+
<ui-button-area
|
|
202
|
+
[buttons]="mergedActions"
|
|
203
|
+
[align]="footerAlign"
|
|
204
|
+
[gap]="footerGap"
|
|
205
|
+
[stackOnMobile]="true"
|
|
206
|
+
ariaLabel="Page actions"
|
|
207
|
+
/>
|
|
208
|
+
</aside>
|
|
209
|
+
}
|
|
210
|
+
</div>
|
|
211
|
+
`, isInline: true, styles: [".ui-base-layout-host{display:block;min-height:100%}.ui-base-layout{display:flex;flex-direction:column;min-height:100%;font-family:var(--ui-font-family);padding:var(--ui-spacing-6)}.ui-base-layout__content{flex:1 1 auto}.ui-base-layout__footer{position:sticky;bottom:0;z-index:var(--ui-z-sticky, 100);padding:var(--ui-spacing-4) 0;margin-top:var(--ui-spacing-6);background:var(--ui-color-surface);border-top:1px solid var(--ui-color-border)}@media (min-width: 640px){.ui-base-layout__footer{padding:var(--ui-spacing-3) 0}}\n"], dependencies: [{ kind: "component", type: UiPageHeaderComponent, selector: "ui-page-header", inputs: ["title", "homeRoute", "showHome", "updateDocumentTitle", "titleSuffix"] }, { kind: "component", type: UiButtonAreaComponent, selector: "ui-button-area", inputs: ["buttons", "align", "ariaLabel", "gap", "stackOnMobile", "disableWhileLoading", "loadingIds"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
212
|
+
}
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBaseLayoutComponent, decorators: [{
|
|
214
|
+
type: Component,
|
|
215
|
+
args: [{ selector: 'ui-base-layout', standalone: true, imports: [UiPageHeaderComponent, UiButtonAreaComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
216
|
+
class: 'ui-base-layout-host',
|
|
217
|
+
}, template: `
|
|
218
|
+
<div class="ui-base-layout" [attr.data-route-id]="routeSnapshotFlags().routeId">
|
|
219
|
+
@if (effectiveShowHeader()) {
|
|
220
|
+
<ui-page-header
|
|
221
|
+
[title]="title"
|
|
222
|
+
[homeRoute]="homeRoute"
|
|
223
|
+
[showHome]="showHome"
|
|
224
|
+
[updateDocumentTitle]="updateDocumentTitle"
|
|
225
|
+
[titleSuffix]="titleSuffix"
|
|
226
|
+
/>
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
<main class="ui-base-layout__content">
|
|
230
|
+
<ng-content />
|
|
231
|
+
</main>
|
|
232
|
+
|
|
233
|
+
@if (effectiveShowFooterNav()) {
|
|
234
|
+
<aside
|
|
235
|
+
class="ui-base-layout__footer"
|
|
236
|
+
aria-label="Page actions"
|
|
237
|
+
>
|
|
238
|
+
<ui-button-area
|
|
239
|
+
[buttons]="mergedActions"
|
|
240
|
+
[align]="footerAlign"
|
|
241
|
+
[gap]="footerGap"
|
|
242
|
+
[stackOnMobile]="true"
|
|
243
|
+
ariaLabel="Page actions"
|
|
244
|
+
/>
|
|
245
|
+
</aside>
|
|
246
|
+
}
|
|
247
|
+
</div>
|
|
248
|
+
`, styles: [".ui-base-layout-host{display:block;min-height:100%}.ui-base-layout{display:flex;flex-direction:column;min-height:100%;font-family:var(--ui-font-family);padding:var(--ui-spacing-6)}.ui-base-layout__content{flex:1 1 auto}.ui-base-layout__footer{position:sticky;bottom:0;z-index:var(--ui-z-sticky, 100);padding:var(--ui-spacing-4) 0;margin-top:var(--ui-spacing-6);background:var(--ui-color-surface);border-top:1px solid var(--ui-color-border)}@media (min-width: 640px){.ui-base-layout__footer{padding:var(--ui-spacing-3) 0}}\n"] }]
|
|
249
|
+
}], propDecorators: { showHeader: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], title: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], homeRoute: [{
|
|
254
|
+
type: Input
|
|
255
|
+
}], showHome: [{
|
|
256
|
+
type: Input
|
|
257
|
+
}], updateDocumentTitle: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], titleSuffix: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], showBackButton: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], backButtonConfig: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], actions: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], footerAlign: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], footerGap: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}] } });
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUVOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQVU3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ0c7QUE0Q0gsTUFBTSxPQUFPLHFCQUFxQjtJQTNDbEM7UUE0Q0UsZ0VBQWdFO1FBQ3ZELGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFM0IsaUZBQWlGO1FBQ3hFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsK0NBQStDO1FBQ3RDLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFekIsZ0VBQWdFO1FBQ3ZELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFekIsMkRBQTJEO1FBQ2xELHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUVyQywyQ0FBMkM7UUFDbEMsZ0JB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RUFBRSxxQkFBcUIsQ0FBQyxtQkFDdEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3FCQUM3QixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUOzhCQUtRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRGVzdHJveVJlZixcclxuICBJbnB1dCxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsLFxyXG4gIHR5cGUgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB0eXBlIHsgVWlCdXR0b25BcmVhQWxpZ24sIFVpQnV0dG9uRGVzY3JpcHRvciB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24udHlwZXMnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkFyZWFDb21wb25lbnQgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLWFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlCcmVhZGNydW1iU2VydmljZSB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL2JyZWFkY3J1bWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB0eXBlIHsgVWlCYWNrQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi9iYXNlLWxheW91dC50eXBlcyc7XHJcblxyXG4vKiogU3RhdG8gbGV0dG8gZGFsbGEgcm90dGEgZm9nbGlhIHBlciBoZWFkZXIvZm9vdGVyIG9wemlvbmFsaSBlIGBkYXRhLXJvdXRlLWlkYC4gKi9cclxuaW50ZXJmYWNlIFVpQmFzZUxheW91dFJvdXRlU25hcHNob3RGbGFncyB7XHJcbiAgYnJlYWRjcnVtYk9mZjogYm9vbGVhbjtcclxuICBmb290ZXJOYXZPZmY6IGJvb2xlYW47XHJcbiAgcm91dGVJZDogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bGwtcGFnZSBsYXlvdXQgY29tcG9uZW50IHRoYXQgY29tYmluZXMgYSBwYWdlIGhlYWRlciAoYnJlYWRjcnVtYnMgKyB0aXRsZSksXHJcbiAqIGEgbWFpbiBjb250ZW50IGFyZWEgdmlhIGA8bmctY29udGVudD5gLCBhbmQgYSBzdGlja3kgZm9vdGVyIGFjdGlvbiBiYXJcclxuICogcG93ZXJlZCBieSBgVWlCdXR0b25BcmVhQ29tcG9uZW50YC5cclxuICpcclxuICogT3B0aW9uYWxseSByZW5kZXJzIGFuIGF1dG9tYXRpYyBcImJhY2tcIiBidXR0b24gaW4gdGhlIGZvb3RlciwgZGVyaXZlZCBmcm9tXHJcbiAqIHRoZSBicmVhZGNydW1iIHRyYWlsIChuYXZpZ2F0ZXMgdG8gdGhlIHBhcmVudCBicmVhZGNydW1iKS5cclxuICpcclxuICogIyMjIFJvdXRlIGBkYXRhYFxyXG4gKlxyXG4gKiBTdWxsYSByb3R0YSBhdHRpdmEgKGZvZ2xpYSkgcHVvaSBpbXBvc3RhcmU6XHJcbiAqXHJcbiAqIC0gYGJyZWFkY3J1bWJPZmY6IHRydWVgIOKAlCBuYXNjb25kZSBgdWktcGFnZS1oZWFkZXJgXHJcbiAqIC0gYGZvb3Rlck5hdk9mZjogdHJ1ZWAg4oCUIG5hc2NvbmRlIGB1aS1iYXNlLWxheW91dF9fZm9vdGVyYFxyXG4gKiAtIGBpZDogc3RyaW5nYCDigJQgdmFsb3JpenphIGBkYXRhLXJvdXRlLWlkYCBzdWwgY29udGVuaXRvcmUgYC51aS1iYXNlLWxheW91dGBcclxuICpcclxuICogQHNlbGVjdG9yIHVpLWJhc2UtbGF5b3V0XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHVpLWJhc2UtbGF5b3V0IFthY3Rpb25zXT1cInBhZ2VBY3Rpb25zXCIgZm9vdGVyQWxpZ249XCJlbmRcIj5cclxuICogICA8cD5Zb3VyIHBhZ2UgY29udGVudCBoZXJlPC9wPlxyXG4gKiA8L3VpLWJhc2UtbGF5b3V0PlxyXG4gKiBgYGBcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgaHRtbFxyXG4gKiA8IS0tIFdpdGggYmFjayBidXR0b24gYW5kIGN1c3RvbSB0aXRsZSAtLT5cclxuICogPHVpLWJhc2UtbGF5b3V0XHJcbiAqICAgdGl0bGU9XCJEZXR0YWdsaW8gdXRlbnRlXCJcclxuICogICBbc2hvd0JhY2tCdXR0b25dPVwidHJ1ZVwiXHJcbiAqICAgW2FjdGlvbnNdPVwiW1xyXG4gKiAgICAgeyBpZDogJ3NhdmUnLCBsYWJlbDogJ1NhbHZhJywgdmFyaWFudDogJ3ByaW1hcnknLCBpY29uOiAnc2F2ZScsIGFjdGlvbjogc2F2ZSB9LFxyXG4gKiAgIF1cIlxyXG4gKiA+XHJcbiAqICAgPGFwcC11c2VyLWRldGFpbCAvPlxyXG4gKiA8L3VpLWJhc2UtbGF5b3V0PlxyXG4gKiBgYGBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYmFzZS1sYXlvdXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1VpUGFnZUhlYWRlckNvbXBvbmVudCwgVWlCdXR0b25BcmVhQ29tcG9uZW50XSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAndWktYmFzZS1sYXlvdXQtaG9zdCcsXHJcbiAgfSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0XCIgW2F0dHIuZGF0YS1yb3V0ZS1pZF09XCJyb3V0ZVNuYXBzaG90RmxhZ3MoKS5yb3V0ZUlkXCI+XHJcbiAgICAgIEBpZiAoZWZmZWN0aXZlU2hvd0hlYWRlcigpKSB7XHJcbiAgICAgICAgPHVpLXBhZ2UtaGVhZGVyXHJcbiAgICAgICAgICBbdGl0bGVdPVwidGl0bGVcIlxyXG4gICAgICAgICAgW2hvbWVSb3V0ZV09XCJob21lUm91dGVcIlxyXG4gICAgICAgICAgW3Nob3dIb21lXT1cInNob3dIb21lXCJcclxuICAgICAgICAgIFt1cGRhdGVEb2N1bWVudFRpdGxlXT1cInVwZGF0ZURvY3VtZW50VGl0bGVcIlxyXG4gICAgICAgICAgW3RpdGxlU3VmZml4XT1cInRpdGxlU3VmZml4XCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8bWFpbiBjbGFzcz1cInVpLWJhc2UtbGF5b3V0X19jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgICAgPC9tYWluPlxyXG5cclxuICAgICAgQGlmIChlZmZlY3RpdmVTaG93Rm9vdGVyTmF2KCkpIHtcclxuICAgICAgICA8YXNpZGVcclxuICAgICAgICAgIGNsYXNzPVwidWktYmFzZS1sYXlvdXRfX2Zvb3RlclwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiUGFnZSBhY3Rpb25zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dWktYnV0dG9uLWFyZWFcclxuICAgICAgICAgICAgW2J1dHRvbnNdPVwibWVyZ2VkQWN0aW9uc1wiXHJcbiAgICAgICAgICAgIFthbGlnbl09XCJmb290ZXJBbGlnblwiXHJcbiAgICAgICAgICAgIFtnYXBdPVwiZm9vdGVyR2FwXCJcclxuICAgICAgICAgICAgW3N0YWNrT25Nb2JpbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIGFyaWFMYWJlbD1cIlBhZ2UgYWN0aW9uc1wiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvYXNpZGU+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmw6ICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQmFzZUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgcGFnZSBoZWFkZXIgKGJyZWFkY3J1bWJzICsgdGl0bGUpLiAqL1xyXG4gIEBJbnB1dCgpIHNob3dIZWFkZXIgPSB0cnVlO1xyXG5cclxuICAvKiogT3ZlcnJpZGUgdGhlIGF1dG8tZGV0ZWN0ZWQgcGFnZSB0aXRsZS4gUGFzc2VkIHRocm91Z2ggdG8gYHVpLXBhZ2UtaGVhZGVyYC4gKi9cclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG5cclxuICAvKiogUm91dGUgcGF0aCBmb3IgdGhlIEhvbWUgYnJlYWRjcnVtYiBsaW5rLiAqL1xyXG4gIEBJbnB1dCgpIGhvbWVSb3V0ZSA9ICcvJztcclxuXHJcbiAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSB0aGUgSG9tZSBsaW5rIGluIHRoZSBicmVhZGNydW1iIHRyYWlsLiAqL1xyXG4gIEBJbnB1dCgpIHNob3dIb21lID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFdoZW4gYHRydWVgLCB1cGRhdGVzIGBkb2N1bWVudC50aXRsZWAgb24gbmF2aWdhdGlvbi4gKi9cclxuICBASW5wdXQoKSB1cGRhdGVEb2N1bWVudFRpdGxlID0gZmFsc2U7XHJcblxyXG4gIC8qKiBTdWZmaXggYXBwZW5kZWQgdG8gYGRvY3VtZW50LnRpdGxlYC4gKi9cclxuICBASW5wdXQoKSB0aXRsZVN1ZmZpeCA9ICcnO1xyXG5cclxuICAvKiogV2hldGhlciB0byBzaG93IGFuIGF1dG9tYXRpYyBcImJhY2tcIiBidXR0b24gYmFzZWQgb24gYnJlYWRjcnVtYnMuICovXHJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b24gPSB0cnVlO1xyXG5cclxuICAvKiogQ29uZmlndXJhdGlvbiBvdmVycmlkZXMgZm9yIHRoZSBhdXRvbWF0aWMgYmFjayBidXR0b24uICovXHJcbiAgQElucHV0KCkgYmFja0J1dHRvbkNvbmZpZzogVWlCYWNrQnV0dG9uQ29uZmlnID0ge307XHJcblxyXG4gIC8qKiBBcnJheSBvZiBidXR0b24gZGVzY3JpcHRvcnMgZm9yIHRoZSBmb290ZXIgYWN0aW9uIGFyZWEuICovXHJcbiAgQElucHV0KCkgYWN0aW9uczogVWlCdXR0b25EZXNjcmlwdG9yW10gPSBbXTtcclxuXHJcbiAgLyoqIEhvcml6b250YWwgYWxpZ25tZW50IG9mIHRoZSBmb290ZXIgYnV0dG9uIGFyZWEuICovXHJcbiAgQElucHV0KCkgZm9vdGVyQWxpZ246IFVpQnV0dG9uQXJlYUFsaWduID0gJ3N0YXJ0JztcclxuXHJcbiAgLyoqIEdhcCBzaXplIGJldHdlZW4gZm9vdGVyIGJ1dHRvbnMuICovXHJcbiAgQElucHV0KCkgZm9vdGVyR2FwOiAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICdzbSc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYnJlYWRjcnVtYlNlcnZpY2UgPSBpbmplY3QoVWlCcmVhZGNydW1iU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICAvKipcclxuICAgKiBGbGFnIGRlcml2YXRpIGRhbGxhIGNhdGVuYSBhdHRpdmEgKGBicmVhZGNydW1iT2ZmYCwgYGZvb3Rlck5hdk9mZmAsIGBpZGApLlxyXG4gICAqIEFnZ2lvcm5hdGkgYSBvZ25pIGBOYXZpZ2F0aW9uRW5kYC5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVTbmFwc2hvdEZsYWdzID0gc2lnbmFsPFVpQmFzZUxheW91dFJvdXRlU25hcHNob3RGbGFncz4oe1xyXG4gICAgYnJlYWRjcnVtYk9mZjogZmFsc2UsXHJcbiAgICBmb290ZXJOYXZPZmY6IGZhbHNlLFxyXG4gICAgcm91dGVJZDogbnVsbCxcclxuICB9KTtcclxuXHJcbiAgLyoqIEhlYWRlciB2aXNpYmlsZSBzZSBhYmlsaXRhdG8gZGEgaW5wdXQgZSBub24gZGlzYXR0aXZhdG8gZGEgYGRhdGEuYnJlYWRjcnVtYk9mZmAuICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVmZmVjdGl2ZVNob3dIZWFkZXIgPSAoKSA9PlxyXG4gICAgdGhpcy5zaG93SGVhZGVyICYmICF0aGlzLnJvdXRlU25hcHNob3RGbGFncygpLmJyZWFkY3J1bWJPZmY7XHJcblxyXG4gIC8qKiBGb290ZXIgYXppb25pIHZpc2liaWxlIHNlIGNpIHNvbm8gYXppb25pIHZpc2liaWxpIGUgbm9uIGRpc2F0dGl2YXRvIGRhIGBkYXRhLmZvb3Rlck5hdk9mZmAuICovXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVmZmVjdGl2ZVNob3dGb290ZXJOYXYgPSAoKSA9PlxyXG4gICAgIXRoaXMucm91dGVTbmFwc2hvdEZsYWdzKCkuZm9vdGVyTmF2T2ZmICYmIHRoaXMuaGFzVmlzaWJsZUFjdGlvbnM7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlZCBhY3Rpb24gbGlzdCAoYmFjayBidXR0b24gKyBjb25zdW1lciBhY3Rpb25zKS5cclxuICAgKiBDb21wdXRlZCBvbiBldmVyeSBjaGFuZ2UtZGV0ZWN0aW9uIGNoZWNrIHNvIGl0IHN0YXlzIGluIHN5bmNcclxuICAgKiB3aXRoIGJvdGggbmF2aWdhdGlvbiBzdGF0ZSAoYnJlYWRjcnVtYnMpIGFuZCBpbnB1dCBjaGFuZ2VzLlxyXG4gICAqL1xyXG4gIGdldCBtZXJnZWRBY3Rpb25zKCk6IFVpQnV0dG9uRGVzY3JpcHRvcltdIHtcclxuICAgIGNvbnN0IHJlc3VsdDogVWlCdXR0b25EZXNjcmlwdG9yW10gPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93QmFja0J1dHRvbikge1xyXG4gICAgICByZXN1bHQucHVzaCh7XHJcbiAgICAgICAgaWQ6ICdfX3VpLWJhY2snLFxyXG4gICAgICAgIGxhYmVsOiB0aGlzLmJhY2tCdXR0b25Db25maWcubGFiZWwgPz8gJ0luZGlldHJvJyxcclxuICAgICAgICBpY29uOiAodGhpcy5iYWNrQnV0dG9uQ29uZmlnLmljb24gYXMgYW55KSA/PyAnYXJyb3ctbGVmdCcsXHJcbiAgICAgICAgaWNvblBvc2l0aW9uOiAnbGVhZGluZycsXHJcbiAgICAgICAgdmFyaWFudDogKHRoaXMuYmFja0J1dHRvbkNvbmZpZy52YXJpYW50IGFzIGFueSkgPz8gJ291dGxpbmUnLFxyXG4gICAgICAgIGhpZGRlbjogdGhpcy5zaG91bGRIaWRlQmFja0J1dHRvbigpLFxyXG4gICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5uYXZpZ2F0ZUJhY2soKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzdWx0LnB1c2goLi4udGhpcy5hY3Rpb25zKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciB0aGUgZm9vdGVyIHNob3VsZCByZW5kZXIgKGF0IGxlYXN0IG9uZSBub24taGlkZGVuIGFjdGlvbiBleGlzdHMpLiAqL1xyXG4gIGdldCBoYXNWaXNpYmxlQWN0aW9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1lcmdlZEFjdGlvbnMuc29tZSgoYSkgPT4gIWEuaGlkZGVuKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zeW5jRnJvbUFjdGl2YXRlZFJvdXRlKCk7XHJcblxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcclxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3luY0Zyb21BY3RpdmF0ZWRSb3V0ZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgQWxsaW5lYSBicmVhZGNydW1iIHNlcnZpY2UgZSBmbGFnIGxheW91dCBhbGxhIHJvdHRhIGNvcnJlbnRlLiAqL1xyXG4gIHByaXZhdGUgc3luY0Zyb21BY3RpdmF0ZWRSb3V0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmcmVzaFJvdXRlU25hcHNob3RGbGFncygpO1xyXG4gICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5nZXRCcmVhZGNydW1ic0ZvclJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBMZWdnZSBgYnJlYWRjcnVtYk9mZmAsIGBmb290ZXJOYXZPZmZgLCBgaWRgIGRhbGxhIGNhdGVuYSBgcGF0aEZyb21Sb290YCAvIGZvZ2xpYS4gKi9cclxuICBwcml2YXRlIHJlZnJlc2hSb3V0ZVNuYXBzaG90RmxhZ3MoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWVwZXN0ID0gdGhpcy5kZWVwZXN0Q2hpbGRSb3V0ZSh0aGlzLmFjdGl2YXRlZFJvdXRlKTtcclxuXHJcbiAgICBsZXQgYnJlYWRjcnVtYk9mZiA9IGZhbHNlO1xyXG4gICAgbGV0IGZvb3Rlck5hdk9mZiA9IGZhbHNlO1xyXG4gICAgZm9yIChjb25zdCBzZWcgb2YgZGVlcGVzdC5wYXRoRnJvbVJvb3QpIHtcclxuICAgICAgY29uc3QgZCA9IHNlZy5zbmFwc2hvdC5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkO1xyXG4gICAgICBpZiAoIWQpIGNvbnRpbnVlO1xyXG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUxpdGVyYWxLZXlzOiBjaGlhdmkgZG9jdW1lbnRhdGUgaW4gVWlCYXNlTGF5b3V0Um91dGVEYXRhXHJcbiAgICAgIGlmIChkWydicmVhZGNydW1iT2ZmJ10gPT09IHRydWUpIGJyZWFkY3J1bWJPZmYgPSB0cnVlO1xyXG4gICAgICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L3VzZUxpdGVyYWxLZXlzOiBjaGlhdmkgZG9jdW1lbnRhdGUgaW4gVWlCYXNlTGF5b3V0Um91dGVEYXRhXHJcbiAgICAgIGlmIChkWydmb290ZXJOYXZPZmYnXSA9PT0gdHJ1ZSkgZm9vdGVyTmF2T2ZmID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcm91dGVJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgY3Vyc29yOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwgPSBkZWVwZXN0O1xyXG4gICAgd2hpbGUgKGN1cnNvcikge1xyXG4gICAgICBjb25zdCByYXcgPSBjdXJzb3Iuc25hcHNob3QuZGF0YT8uWydpZCddO1xyXG4gICAgICBpZiAodHlwZW9mIHJhdyA9PT0gJ3N0cmluZycgJiYgcmF3Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICByb3V0ZUlkID0gcmF3O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGN1cnNvciA9IGN1cnNvci5wYXJlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yb3V0ZVNuYXBzaG90RmxhZ3Muc2V0KHsgYnJlYWRjcnVtYk9mZiwgZm9vdGVyTmF2T2ZmLCByb3V0ZUlkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBQZXJjb3JyZSBmaW5vIGFsIGBBY3RpdmF0ZWRSb3V0ZWAgZm9nbGlhIHNvdHRvIGlsIHB1bnRvIGRpIGluaWV6aW9uZS4gKi9cclxuICBwcml2YXRlIGRlZXBlc3RDaGlsZFJvdXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IEFjdGl2YXRlZFJvdXRlIHtcclxuICAgIGxldCBkZWVwZXN0ID0gcm91dGU7XHJcbiAgICB3aGlsZSAoZGVlcGVzdC5maXJzdENoaWxkKSB7XHJcbiAgICAgIGRlZXBlc3QgPSBkZWVwZXN0LmZpcnN0Q2hpbGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVlcGVzdDtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgRGV0ZXJtaW5hIHNlIGlsIGJhY2sgYnV0dG9uIGRldmUgZXNzZXJlIG5hc2Nvc3RvIHBlciBsYSByb3R0YSBjb3JyZW50ZS4gKi9cclxuICBwcml2YXRlIHNob3VsZEhpZGVCYWNrQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdO1xyXG4gICAgaWYgKGN1cnJlbnRQYXRoID09PSB0aGlzLmhvbWVSb3V0ZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkZWVwZXN0Um91dGUgPSB0aGlzLmRlZXBlc3RDaGlsZFJvdXRlKHRoaXMuYWN0aXZhdGVkUm91dGUpO1xyXG5cclxuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvdXNlTGl0ZXJhbEtleXM6IDxleHBsYW5hdGlvbj5cclxuICAgIGlmIChkZWVwZXN0Um91dGUuc25hcHNob3QuZGF0YT8uWydoaWRlQmFja0J1dHRvbiddID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgTmF2aWdhIGFsIGJyZWFkY3J1bWIgZ2VuaXRvcmUgbyBlc2VndWUgaWwgZmFsbGJhY2sgYWxsYSBob21lIHJvdXRlLiAqL1xyXG4gIHByaXZhdGUgbmF2aWdhdGVCYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5uYXZpZ2F0ZUJhY2sodGhpcy5ob21lUm91dGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ng-ui-system/base-layout
|
|
3
|
+
* Types and interfaces for UiBaseLayout component.
|
|
4
|
+
*/
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0L2Jhc2UtbGF5b3V0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAbW9kdWxlIG5nLXVpLXN5c3RlbS9iYXNlLWxheW91dFxyXG4gKiBUeXBlcyBhbmQgaW50ZXJmYWNlcyBmb3IgVWlCYXNlTGF5b3V0IGNvbXBvbmVudC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBVaUJ1dHRvbkRlc2NyaXB0b3IsIFVpQnV0dG9uQXJlYUFsaWduIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi50eXBlcyc7XHJcblxyXG4vLyBSZS1leHBvcnQgZm9yIGNvbnN1bWVyIGNvbnZlbmllbmNlXHJcbmV4cG9ydCB7IFVpQnV0dG9uRGVzY3JpcHRvciwgVWlCdXR0b25BcmVhQWxpZ24gfTtcclxuXHJcbi8qKlxyXG4gKiBDaGlhdmkgb3B6aW9uYWxpIGRpIGBkYXRhYCBzdWxsYSByb3R0YSBhdHRpdmEgcmljb25vc2NpdXRlIGRhIGBVaUJhc2VMYXlvdXRDb21wb25lbnRgLlxyXG4gKlxyXG4gKiAtIGBpZGA6IHN0ZXNzYSByaXNhbGl0YSB1c2F0YSBkYWkgYnJlYWRjcnVtYiAoZGFsIHNlZ21lbnRvIGZvZ2xpYSB2ZXJzbyBpbCByb290OiBwcmltbyBgaWRgIHRyb3ZhdG8pLlxyXG4gKiAtIGBicmVhZGNydW1iT2ZmYCAvIGBmb290ZXJOYXZPZmZgOiBzZSBgdHJ1ZWAgc3UgKipxdWFsc2lhc2kqKiBzZWdtZW50byBpbiBgcGF0aEZyb21Sb290YCwgbOKAmWFyZWEgdmllbmUgbmFzY29zdGEuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFVpQmFzZUxheW91dFJvdXRlRGF0YSB7XHJcbiAgLyoqIElkZW50aWZpY2F0aXZvIHN0YWJpbGUgZGVsbGEgcm90dGE7IHJlc28gY29tZSBgZGF0YS1yb3V0ZS1pZGAgc3VsIHdyYXBwZXIgYC51aS1iYXNlLWxheW91dGAuICovXHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgLyoqIFNlIGB0cnVlYCwgbm9uIHZpZW5lIHJlbmRlcml6emF0byBgdWktcGFnZS1oZWFkZXJgIChicmVhZGNydW1iIGUgdGl0b2xvKS4gKi9cclxuICBicmVhZGNydW1iT2ZmPzogYm9vbGVhbjtcclxuICAvKiogU2UgYHRydWVgLCBub24gdmllbmUgcmVuZGVyaXp6YXRhIGxhIGJhcnJhIGB1aS1iYXNlLWxheW91dF9fZm9vdGVyYCAoYXppb25pIC8gaW5kaWV0cm8pLiAqL1xyXG4gIGZvb3Rlck5hdk9mZj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgYXV0b21hdGljIFwiYmFja1wiIGJ1dHRvbiByZW5kZXJlZCBpbiB0aGUgZm9vdGVyIGFjdGlvbiBhcmVhLlxyXG4gKlxyXG4gKiBAdXNhZ2VOb3Rlc1xyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IGJhY2tDb25maWc6IFVpQmFja0J1dHRvbkNvbmZpZyA9IHtcclxuICogICBsYWJlbDogJ0luZGlldHJvJyxcclxuICogICBpY29uOiAnYXJyb3ctbGVmdCcsXHJcbiAqICAgdmFyaWFudDogJ291dGxpbmUnLFxyXG4gKiB9O1xyXG4gKiBgYGBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlCYWNrQnV0dG9uQ29uZmlnIHtcclxuICAvKiogTGFiZWwgdGV4dCBmb3IgdGhlIGJhY2sgYnV0dG9uLiBAZGVmYXVsdCAnSW5kaWV0cm8nICovXHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLyoqIEx1Y2lkZSBpY29uIG5hbWUuIEBkZWZhdWx0ICdhcnJvdy1sZWZ0JyAqL1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgLyoqIFZpc3VhbCB2YXJpYW50LiBAZGVmYXVsdCAnb3V0bGluZScgKi9cclxuICB2YXJpYW50Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ng-ui-system — Base Layout entry point.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import {
|
|
7
|
+
* UiBaseLayoutComponent,
|
|
8
|
+
* UiBackButtonConfig,
|
|
9
|
+
* } from 'ng-ui-system';
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
// Components
|
|
13
|
+
export { UiBaseLayoutComponent } from './base-layout.component';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxhQUFhO0FBQ2IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogbmctdWktc3lzdGVtIOKAlCBCYXNlIExheW91dCBlbnRyeSBwb2ludC5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpbXBvcnQge1xyXG4gKiAgIFVpQmFzZUxheW91dENvbXBvbmVudCxcclxuICogICBVaUJhY2tCdXR0b25Db25maWcsXHJcbiAqIH0gZnJvbSAnbmctdWktc3lzdGVtJztcclxuICogYGBgXHJcbiAqL1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5leHBvcnQgeyBVaUJhc2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudCc7XHJcblxyXG4vLyBUeXBlc1xyXG5leHBvcnQgeyBVaUJhY2tCdXR0b25Db25maWcsIFVpQmFzZUxheW91dFJvdXRlRGF0YSB9IGZyb20gJy4vYmFzZS1sYXlvdXQudHlwZXMnO1xyXG4iXX0=
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ng-ui-system/blackbox
|
|
3
|
+
* Fingerprint service — generates a stable device/browser hash
|
|
4
|
+
* using the open-source FingerprintJS library (MIT, no API key required).
|
|
5
|
+
*
|
|
6
|
+
* The fingerprint is computed once and cached in `localStorage` under
|
|
7
|
+
* the key `__ui_bb_fp` to avoid redundant recalculations.
|
|
8
|
+
*/
|
|
9
|
+
import { Injectable, inject, PLATFORM_ID } from '@angular/core';
|
|
10
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
/** localStorage key for the cached fingerprint. */
|
|
13
|
+
const FP_CACHE_KEY = '__ui_bb_fp';
|
|
14
|
+
/**
|
|
15
|
+
* Generates and caches a stable browser/device fingerprint.
|
|
16
|
+
*
|
|
17
|
+
* Uses `@fingerprintjs/fingerprintjs` (open-source, MIT) which analyses
|
|
18
|
+
* canvas rendering, WebGL, audio context, screen properties, timezone,
|
|
19
|
+
* user-agent, and other browser signals to produce a stable hash.
|
|
20
|
+
*
|
|
21
|
+
* @usageNotes
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const fp = inject(UiBlackboxFingerprintService);
|
|
24
|
+
* const hash = await fp.getFingerprint();
|
|
25
|
+
* // => "a1b2c3d4e5f6..." (stable across sessions)
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class UiBlackboxFingerprintService {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.platformId = inject(PLATFORM_ID);
|
|
31
|
+
this.cached = null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Returns the stable fingerprint for this device/browser.
|
|
35
|
+
*
|
|
36
|
+
* On first call, loads FingerprintJS dynamically, computes the hash,
|
|
37
|
+
* and caches it in both memory and `localStorage`.
|
|
38
|
+
* Subsequent calls return the cached value immediately.
|
|
39
|
+
*/
|
|
40
|
+
async getFingerprint() {
|
|
41
|
+
// Return cached value if available
|
|
42
|
+
if (this.cached) {
|
|
43
|
+
return this.cached;
|
|
44
|
+
}
|
|
45
|
+
// SSR guard
|
|
46
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
47
|
+
return 'ssr-placeholder';
|
|
48
|
+
}
|
|
49
|
+
// Try localStorage cache first
|
|
50
|
+
try {
|
|
51
|
+
const stored = localStorage.getItem(FP_CACHE_KEY);
|
|
52
|
+
if (stored) {
|
|
53
|
+
this.cached = stored;
|
|
54
|
+
return stored;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// localStorage may be unavailable (privacy mode, quota exceeded)
|
|
59
|
+
}
|
|
60
|
+
// Compute fingerprint via FingerprintJS
|
|
61
|
+
try {
|
|
62
|
+
const FingerprintJS = await import('@fingerprintjs/fingerprintjs');
|
|
63
|
+
const agent = await FingerprintJS.load();
|
|
64
|
+
const result = await agent.get();
|
|
65
|
+
this.cached = result.visitorId;
|
|
66
|
+
// Persist to localStorage
|
|
67
|
+
try {
|
|
68
|
+
localStorage.setItem(FP_CACHE_KEY, this.cached);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Silently ignore storage errors
|
|
72
|
+
}
|
|
73
|
+
return this.cached;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Fallback: generate a pseudo-fingerprint from available signals
|
|
77
|
+
const fallback = this.generateFallbackFingerprint();
|
|
78
|
+
this.cached = fallback;
|
|
79
|
+
try {
|
|
80
|
+
localStorage.setItem(FP_CACHE_KEY, fallback);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Silently ignore
|
|
84
|
+
}
|
|
85
|
+
return fallback;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Fallback fingerprint when FingerprintJS is unavailable.
|
|
90
|
+
* Combines basic browser signals into a hash.
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
generateFallbackFingerprint() {
|
|
94
|
+
const signals = [
|
|
95
|
+
navigator.userAgent,
|
|
96
|
+
navigator.language,
|
|
97
|
+
screen.width + 'x' + screen.height,
|
|
98
|
+
screen.colorDepth?.toString() ?? '',
|
|
99
|
+
Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
100
|
+
navigator.hardwareConcurrency?.toString() ?? '',
|
|
101
|
+
].join('|');
|
|
102
|
+
// Simple string hash (djb2)
|
|
103
|
+
let hash = 5381;
|
|
104
|
+
for (let i = 0; i < signals.length; i++) {
|
|
105
|
+
hash = ((hash << 5) + hash + signals.charCodeAt(i)) >>> 0;
|
|
106
|
+
}
|
|
107
|
+
return hash.toString(36).padStart(12, '0');
|
|
108
|
+
}
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBlackboxFingerprintService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
110
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBlackboxFingerprintService, providedIn: 'root' }); }
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiBlackboxFingerprintService, decorators: [{
|
|
113
|
+
type: Injectable,
|
|
114
|
+
args: [{ providedIn: 'root' }]
|
|
115
|
+
}] });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxhY2tib3gtZmluZ2VycHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvYmxhY2tib3gvYmxhY2tib3gtZmluZ2VycHJpbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdwRCxtREFBbUQ7QUFDbkQsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDO0FBRWxDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBRHpDO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsV0FBTSxHQUFpQyxJQUFJLENBQUM7S0FtRnJEO0lBakZDOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxjQUFjO1FBQ2xCLG1DQUFtQztRQUNuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztRQUVELFlBQVk7UUFDWixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTyxpQkFBaUIsQ0FBQztRQUMzQixDQUFDO1FBRUQsK0JBQStCO1FBQy9CLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDckIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxpRUFBaUU7UUFDbkUsQ0FBQztRQUVELHdDQUF3QztRQUN4QyxJQUFJLENBQUM7WUFDSCxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUUvQiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDO2dCQUNILFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLGlDQUFpQztZQUNuQyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxpRUFBaUU7WUFDakUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFFdkIsSUFBSSxDQUFDO2dCQUNILFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1Asa0JBQWtCO1lBQ3BCLENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSywyQkFBMkI7UUFDakMsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTLENBQUMsU0FBUztZQUNuQixTQUFTLENBQUMsUUFBUTtZQUNsQixNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTTtZQUNsQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVE7WUFDaEQsU0FBUyxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDaEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFWiw0QkFBNEI7UUFDNUIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBcEZVLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRGYsTUFBTTs7NEZBQ25CLDRCQUE0QjtrQkFEeEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQG1vZHVsZSBuZy11aS1zeXN0ZW0vYmxhY2tib3hcclxuICogRmluZ2VycHJpbnQgc2VydmljZSDigJQgZ2VuZXJhdGVzIGEgc3RhYmxlIGRldmljZS9icm93c2VyIGhhc2hcclxuICogdXNpbmcgdGhlIG9wZW4tc291cmNlIEZpbmdlcnByaW50SlMgbGlicmFyeSAoTUlULCBubyBBUEkga2V5IHJlcXVpcmVkKS5cclxuICpcclxuICogVGhlIGZpbmdlcnByaW50IGlzIGNvbXB1dGVkIG9uY2UgYW5kIGNhY2hlZCBpbiBgbG9jYWxTdG9yYWdlYCB1bmRlclxyXG4gKiB0aGUga2V5IGBfX3VpX2JiX2ZwYCB0byBhdm9pZCByZWR1bmRhbnQgcmVjYWxjdWxhdGlvbnMuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB0eXBlIHsgVWlCbGFja2JveEZpbmdlcnByaW50IH0gZnJvbSAnLi9ibGFja2JveC50eXBlcyc7XHJcblxyXG4vKiogbG9jYWxTdG9yYWdlIGtleSBmb3IgdGhlIGNhY2hlZCBmaW5nZXJwcmludC4gKi9cclxuY29uc3QgRlBfQ0FDSEVfS0VZID0gJ19fdWlfYmJfZnAnO1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlcyBhbmQgY2FjaGVzIGEgc3RhYmxlIGJyb3dzZXIvZGV2aWNlIGZpbmdlcnByaW50LlxyXG4gKlxyXG4gKiBVc2VzIGBAZmluZ2VycHJpbnRqcy9maW5nZXJwcmludGpzYCAob3Blbi1zb3VyY2UsIE1JVCkgd2hpY2ggYW5hbHlzZXNcclxuICogY2FudmFzIHJlbmRlcmluZywgV2ViR0wsIGF1ZGlvIGNvbnRleHQsIHNjcmVlbiBwcm9wZXJ0aWVzLCB0aW1lem9uZSxcclxuICogdXNlci1hZ2VudCwgYW5kIG90aGVyIGJyb3dzZXIgc2lnbmFscyB0byBwcm9kdWNlIGEgc3RhYmxlIGhhc2guXHJcbiAqXHJcbiAqIEB1c2FnZU5vdGVzXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgZnAgPSBpbmplY3QoVWlCbGFja2JveEZpbmdlcnByaW50U2VydmljZSk7XHJcbiAqIGNvbnN0IGhhc2ggPSBhd2FpdCBmcC5nZXRGaW5nZXJwcmludCgpO1xyXG4gKiAvLyA9PiBcImExYjJjM2Q0ZTVmNi4uLlwiIChzdGFibGUgYWNyb3NzIHNlc3Npb25zKVxyXG4gKiBgYGBcclxuICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBVaUJsYWNrYm94RmluZ2VycHJpbnRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG4gIHByaXZhdGUgY2FjaGVkOiBVaUJsYWNrYm94RmluZ2VycHJpbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgc3RhYmxlIGZpbmdlcnByaW50IGZvciB0aGlzIGRldmljZS9icm93c2VyLlxyXG4gICAqXHJcbiAgICogT24gZmlyc3QgY2FsbCwgbG9hZHMgRmluZ2VycHJpbnRKUyBkeW5hbWljYWxseSwgY29tcHV0ZXMgdGhlIGhhc2gsXHJcbiAgICogYW5kIGNhY2hlcyBpdCBpbiBib3RoIG1lbW9yeSBhbmQgYGxvY2FsU3RvcmFnZWAuXHJcbiAgICogU3Vic2VxdWVudCBjYWxscyByZXR1cm4gdGhlIGNhY2hlZCB2YWx1ZSBpbW1lZGlhdGVseS5cclxuICAgKi9cclxuICBhc3luYyBnZXRGaW5nZXJwcmludCgpOiBQcm9taXNlPFVpQmxhY2tib3hGaW5nZXJwcmludD4ge1xyXG4gICAgLy8gUmV0dXJuIGNhY2hlZCB2YWx1ZSBpZiBhdmFpbGFibGVcclxuICAgIGlmICh0aGlzLmNhY2hlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU1NSIGd1YXJkXHJcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgcmV0dXJuICdzc3ItcGxhY2Vob2xkZXInO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRyeSBsb2NhbFN0b3JhZ2UgY2FjaGUgZmlyc3RcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEZQX0NBQ0hFX0tFWSk7XHJcbiAgICAgIGlmIChzdG9yZWQpIHtcclxuICAgICAgICB0aGlzLmNhY2hlZCA9IHN0b3JlZDtcclxuICAgICAgICByZXR1cm4gc3RvcmVkO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgLy8gbG9jYWxTdG9yYWdlIG1heSBiZSB1bmF2YWlsYWJsZSAocHJpdmFjeSBtb2RlLCBxdW90YSBleGNlZWRlZClcclxuICAgIH1cclxuXHJcbiAgICAvLyBDb21wdXRlIGZpbmdlcnByaW50IHZpYSBGaW5nZXJwcmludEpTXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBGaW5nZXJwcmludEpTID0gYXdhaXQgaW1wb3J0KCdAZmluZ2VycHJpbnRqcy9maW5nZXJwcmludGpzJyk7XHJcbiAgICAgIGNvbnN0IGFnZW50ID0gYXdhaXQgRmluZ2VycHJpbnRKUy5sb2FkKCk7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFnZW50LmdldCgpO1xyXG4gICAgICB0aGlzLmNhY2hlZCA9IHJlc3VsdC52aXNpdG9ySWQ7XHJcblxyXG4gICAgICAvLyBQZXJzaXN0IHRvIGxvY2FsU3RvcmFnZVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKEZQX0NBQ0hFX0tFWSwgdGhpcy5jYWNoZWQpO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICAvLyBTaWxlbnRseSBpZ25vcmUgc3RvcmFnZSBlcnJvcnNcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIC8vIEZhbGxiYWNrOiBnZW5lcmF0ZSBhIHBzZXVkby1maW5nZXJwcmludCBmcm9tIGF2YWlsYWJsZSBzaWduYWxzXHJcbiAgICAgIGNvbnN0IGZhbGxiYWNrID0gdGhpcy5nZW5lcmF0ZUZhbGxiYWNrRmluZ2VycHJpbnQoKTtcclxuICAgICAgdGhpcy5jYWNoZWQgPSBmYWxsYmFjaztcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oRlBfQ0FDSEVfS0VZLCBmYWxsYmFjayk7XHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIC8vIFNpbGVudGx5IGlnbm9yZVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmFsbGJhY2s7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGYWxsYmFjayBmaW5nZXJwcmludCB3aGVuIEZpbmdlcnByaW50SlMgaXMgdW5hdmFpbGFibGUuXHJcbiAgICogQ29tYmluZXMgYmFzaWMgYnJvd3NlciBzaWduYWxzIGludG8gYSBoYXNoLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2VuZXJhdGVGYWxsYmFja0ZpbmdlcnByaW50KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzaWduYWxzID0gW1xyXG4gICAgICBuYXZpZ2F0b3IudXNlckFnZW50LFxyXG4gICAgICBuYXZpZ2F0b3IubGFuZ3VhZ2UsXHJcbiAgICAgIHNjcmVlbi53aWR0aCArICd4JyArIHNjcmVlbi5oZWlnaHQsXHJcbiAgICAgIHNjcmVlbi5jb2xvckRlcHRoPy50b1N0cmluZygpID8/ICcnLFxyXG4gICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUsXHJcbiAgICAgIG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5Py50b1N0cmluZygpID8/ICcnLFxyXG4gICAgXS5qb2luKCd8Jyk7XHJcblxyXG4gICAgLy8gU2ltcGxlIHN0cmluZyBoYXNoIChkamIyKVxyXG4gICAgbGV0IGhhc2ggPSA1MzgxO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaWduYWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgKyBoYXNoICsgc2lnbmFscy5jaGFyQ29kZUF0KGkpKSA+Pj4gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKDM2KS5wYWRTdGFydCgxMiwgJzAnKTtcclxuICB9XHJcbn1cclxuIl19
|