@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,398 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, inject, } from '@angular/core';
|
|
2
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
3
|
+
import { LucideAngularModule } from 'lucide-angular';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "lucide-angular";
|
|
6
|
+
/**
|
|
7
|
+
* Accordion configurabile, data-driven, con supporto multi/single expand,
|
|
8
|
+
* animazioni CSS, icone Lucide e template personalizzabili.
|
|
9
|
+
*
|
|
10
|
+
* Il contenuto dei pannelli viene fornito tramite un `itemTemplate`
|
|
11
|
+
* che riceve il descriptor del pannello come contesto.
|
|
12
|
+
*
|
|
13
|
+
* @selector ui-accordion
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```html
|
|
17
|
+
* <ui-accordion
|
|
18
|
+
* [items]="sections"
|
|
19
|
+
* [itemTemplate]="panelTpl"
|
|
20
|
+
* mode="single"
|
|
21
|
+
* >
|
|
22
|
+
* <ng-template #panelTpl let-item>
|
|
23
|
+
* @switch (item.id) {
|
|
24
|
+
* @case ('info') { <app-info-panel /> }
|
|
25
|
+
* @case ('address') { <app-address-form /> }
|
|
26
|
+
* }
|
|
27
|
+
* </ng-template>
|
|
28
|
+
* </ui-accordion>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* sections: UiAccordionDescriptor[] = [
|
|
34
|
+
* { id: 'info', title: 'Informazioni', icon: 'info', expanded: true },
|
|
35
|
+
* { id: 'address', title: 'Indirizzo', icon: 'map-pin' },
|
|
36
|
+
* ];
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export class UiAccordionComponent {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
42
|
+
/**
|
|
43
|
+
* Fingerprint dell'ultimo stato dei descriptor.
|
|
44
|
+
* Usato da DoCheck per rilevare mutazioni in-place sulle proprieta
|
|
45
|
+
* degli item senza richiedere un nuovo riferimento dell'array.
|
|
46
|
+
*/
|
|
47
|
+
this._lastFingerprint = '';
|
|
48
|
+
/**
|
|
49
|
+
* Array di descriptor dei pannelli.
|
|
50
|
+
* Pannelli con `hidden: true` vengono filtrati automaticamente.
|
|
51
|
+
*
|
|
52
|
+
* Supporta sia aggiornamenti immutabili (nuovo array) sia
|
|
53
|
+
* mutazioni in-place delle proprieta dei descriptor.
|
|
54
|
+
*/
|
|
55
|
+
this.items = [];
|
|
56
|
+
/**
|
|
57
|
+
* Template per il contenuto di ogni pannello.
|
|
58
|
+
* Il contesto fornisce il descriptor come `$implicit`.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```html
|
|
62
|
+
* <ng-template #tpl let-item>
|
|
63
|
+
* <p>Contenuto per: {{ item.title }}</p>
|
|
64
|
+
* </ng-template>
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
this.itemTemplate = null;
|
|
68
|
+
/**
|
|
69
|
+
* Template opzionale per contenuto aggiuntivo nell'header.
|
|
70
|
+
* Il contesto fornisce il descriptor come `$implicit`.
|
|
71
|
+
* Viene renderizzato all'interno del trigger, tra il titolo e il chevron.
|
|
72
|
+
*/
|
|
73
|
+
this.headerTemplate = null;
|
|
74
|
+
/**
|
|
75
|
+
* Template opzionale per azioni nell'header del pannello.
|
|
76
|
+
* Posizionato tra il trigger e il chevron, al di fuori del button
|
|
77
|
+
* per consentire elementi interattivi (es. pulsanti duplica/elimina).
|
|
78
|
+
* Il contesto fornisce il descriptor come `$implicit`.
|
|
79
|
+
*/
|
|
80
|
+
this.actionsTemplate = null;
|
|
81
|
+
/**
|
|
82
|
+
* Modalita di espansione.
|
|
83
|
+
* - `multi`: piu pannelli aperti contemporaneamente
|
|
84
|
+
* - `single`: un solo pannello aperto alla volta
|
|
85
|
+
*/
|
|
86
|
+
this.mode = 'multi';
|
|
87
|
+
/** Label accessibile per il gruppo accordion. */
|
|
88
|
+
this.ariaLabel = 'Accordion';
|
|
89
|
+
/** Emesso quando un pannello viene aperto o chiuso. */
|
|
90
|
+
this.itemToggled = new EventEmitter();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Rileva mutazioni in-place sulle proprieta dei descriptor.
|
|
94
|
+
* Confronta un fingerprint leggero dello stato corrente con quello
|
|
95
|
+
* precedente e, se diverso, forza un ciclo di change detection.
|
|
96
|
+
*
|
|
97
|
+
* Questo permette al consumatore di fare sia:
|
|
98
|
+
* - `items[2].hidden = true` (mutazione in-place)
|
|
99
|
+
* - `items = [...newItems]` (nuovo riferimento)
|
|
100
|
+
*/
|
|
101
|
+
ngDoCheck() {
|
|
102
|
+
const fp = this.computeFingerprint();
|
|
103
|
+
if (fp !== this._lastFingerprint) {
|
|
104
|
+
this._lastFingerprint = fp;
|
|
105
|
+
this.cdr.markForCheck();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** Pannelli visibili (non hidden). */
|
|
109
|
+
get visibleItems() {
|
|
110
|
+
return this.items.filter((i) => !i.hidden);
|
|
111
|
+
}
|
|
112
|
+
/** Alterna l'espansione di un pannello. */
|
|
113
|
+
toggle(item) {
|
|
114
|
+
if (item.disabled)
|
|
115
|
+
return;
|
|
116
|
+
const willExpand = !item.expanded;
|
|
117
|
+
// In modalita single, chiudi tutti gli altri
|
|
118
|
+
if (willExpand && this.mode === 'single') {
|
|
119
|
+
this.items.forEach((i) => {
|
|
120
|
+
if (i !== item && i.expanded) {
|
|
121
|
+
i.expanded = false;
|
|
122
|
+
this.itemToggled.emit({ item: i, expanded: false });
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
item.expanded = willExpand;
|
|
127
|
+
this.itemToggled.emit({ item, expanded: willExpand });
|
|
128
|
+
}
|
|
129
|
+
/** Apre un pannello specifico per id. */
|
|
130
|
+
open(id) {
|
|
131
|
+
const item = this.items.find((i) => i.id === id);
|
|
132
|
+
if (item && !item.expanded && !item.disabled) {
|
|
133
|
+
this.toggle(item);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Chiude un pannello specifico per id. */
|
|
137
|
+
close(id) {
|
|
138
|
+
const item = this.items.find((i) => i.id === id);
|
|
139
|
+
if (item && item.expanded) {
|
|
140
|
+
item.expanded = false;
|
|
141
|
+
this.itemToggled.emit({ item, expanded: false });
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Apre tutti i pannelli (solo in modalita multi). */
|
|
145
|
+
openAll() {
|
|
146
|
+
if (this.mode === 'single')
|
|
147
|
+
return;
|
|
148
|
+
this.items.forEach((item) => {
|
|
149
|
+
if (!item.expanded && !item.disabled && !item.hidden) {
|
|
150
|
+
item.expanded = true;
|
|
151
|
+
this.itemToggled.emit({ item, expanded: true });
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/** Chiude tutti i pannelli. */
|
|
156
|
+
closeAll() {
|
|
157
|
+
this.items.forEach((item) => {
|
|
158
|
+
if (item.expanded) {
|
|
159
|
+
item.expanded = false;
|
|
160
|
+
this.itemToggled.emit({ item, expanded: false });
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/** @internal Classi CSS per il pannello. */
|
|
165
|
+
getPanelClasses(item) {
|
|
166
|
+
return [
|
|
167
|
+
'ui-accordion__panel',
|
|
168
|
+
item.expanded ? 'ui-accordion__panel--expanded' : '',
|
|
169
|
+
item.disabled ? 'ui-accordion__panel--disabled' : '',
|
|
170
|
+
]
|
|
171
|
+
.filter(Boolean)
|
|
172
|
+
.join(' ');
|
|
173
|
+
}
|
|
174
|
+
/** @internal Sposta il focus al primo header. */
|
|
175
|
+
focusFirst(event) {
|
|
176
|
+
event.preventDefault();
|
|
177
|
+
const headers = this.getHeaders();
|
|
178
|
+
headers[0]?.focus();
|
|
179
|
+
}
|
|
180
|
+
/** @internal Sposta il focus all'ultimo header. */
|
|
181
|
+
focusLast(event) {
|
|
182
|
+
event.preventDefault();
|
|
183
|
+
const headers = this.getHeaders();
|
|
184
|
+
headers[headers.length - 1]?.focus();
|
|
185
|
+
}
|
|
186
|
+
/** @internal Recupera tutti i trigger button del DOM. */
|
|
187
|
+
getHeaders() {
|
|
188
|
+
return Array.from(document.querySelectorAll('.ui-accordion__trigger:not(:disabled)'));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* @internal Calcola un fingerprint leggero basato sulle proprieta
|
|
192
|
+
* reattive dei descriptor (quelle che influenzano il rendering).
|
|
193
|
+
*/
|
|
194
|
+
computeFingerprint() {
|
|
195
|
+
return this.items.map((i) => `${i.id}:${i.hidden ?? 0}:${i.disabled ?? 0}:${i.expanded ?? 0}:${i.title}`).join('|');
|
|
196
|
+
}
|
|
197
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
198
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiAccordionComponent, isStandalone: true, selector: "ui-accordion", inputs: { items: "items", itemTemplate: "itemTemplate", headerTemplate: "headerTemplate", actionsTemplate: "actionsTemplate", mode: "mode", ariaLabel: "ariaLabel" }, outputs: { itemToggled: "itemToggled" }, host: { classAttribute: "ui-accordion-host" }, ngImport: i0, template: `
|
|
199
|
+
@for (item of visibleItems; track item.id) {
|
|
200
|
+
<div
|
|
201
|
+
[class]="getPanelClasses(item)"
|
|
202
|
+
[id]="'ui-accordion-' + item.id"
|
|
203
|
+
>
|
|
204
|
+
<!-- Header: div wrapper per ospitare trigger + azioni + chevron -->
|
|
205
|
+
<div
|
|
206
|
+
class="ui-accordion__header"
|
|
207
|
+
[class.ui-accordion__header--expanded]="item.expanded"
|
|
208
|
+
[class.ui-accordion__header--disabled]="item.disabled"
|
|
209
|
+
(click)="!item.disabled && toggle(item)"
|
|
210
|
+
>
|
|
211
|
+
<button
|
|
212
|
+
class="ui-accordion__trigger"
|
|
213
|
+
[disabled]="item.disabled"
|
|
214
|
+
[attr.aria-expanded]="item.expanded"
|
|
215
|
+
[attr.aria-controls]="'ui-accordion-body-' + item.id"
|
|
216
|
+
[attr.id]="'ui-accordion-header-' + item.id"
|
|
217
|
+
type="button"
|
|
218
|
+
(keydown.home)="focusFirst($event)"
|
|
219
|
+
(keydown.end)="focusLast($event)"
|
|
220
|
+
>
|
|
221
|
+
<div class="ui-accordion__header-content">
|
|
222
|
+
@if (item.icon) {
|
|
223
|
+
<lucide-icon
|
|
224
|
+
class="ui-accordion__icon"
|
|
225
|
+
[name]="item.icon"
|
|
226
|
+
[size]="18"
|
|
227
|
+
aria-hidden="true"
|
|
228
|
+
/>
|
|
229
|
+
}
|
|
230
|
+
<span class="ui-accordion__title">{{ item.title }}</span>
|
|
231
|
+
@if (item.subtitle) {
|
|
232
|
+
<span class="ui-accordion__subtitle">{{ item.subtitle }}</span>
|
|
233
|
+
}
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
@if (headerTemplate) {
|
|
237
|
+
<div class="ui-accordion__header-extra">
|
|
238
|
+
<ng-container
|
|
239
|
+
[ngTemplateOutlet]="headerTemplate"
|
|
240
|
+
[ngTemplateOutletContext]="{ $implicit: item }"
|
|
241
|
+
/>
|
|
242
|
+
</div>
|
|
243
|
+
}
|
|
244
|
+
</button>
|
|
245
|
+
|
|
246
|
+
@if (actionsTemplate) {
|
|
247
|
+
<div
|
|
248
|
+
class="ui-accordion__actions"
|
|
249
|
+
role="group"
|
|
250
|
+
aria-label="Azioni pannello"
|
|
251
|
+
(click)="$event.stopPropagation()"
|
|
252
|
+
>
|
|
253
|
+
<ng-container
|
|
254
|
+
[ngTemplateOutlet]="actionsTemplate"
|
|
255
|
+
[ngTemplateOutletContext]="{ $implicit: item }"
|
|
256
|
+
/>
|
|
257
|
+
</div>
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
<lucide-icon
|
|
261
|
+
class="ui-accordion__chevron"
|
|
262
|
+
[class.ui-accordion__chevron--rotated]="item.expanded"
|
|
263
|
+
name="chevron-down"
|
|
264
|
+
[size]="16"
|
|
265
|
+
aria-hidden="true"
|
|
266
|
+
/>
|
|
267
|
+
</div>
|
|
268
|
+
|
|
269
|
+
<!-- Body (animazione CSS grid) -->
|
|
270
|
+
<div
|
|
271
|
+
class="ui-accordion__body-wrapper"
|
|
272
|
+
[class.ui-accordion__body-wrapper--open]="item.expanded"
|
|
273
|
+
role="region"
|
|
274
|
+
[attr.id]="'ui-accordion-body-' + item.id"
|
|
275
|
+
[attr.aria-labelledby]="'ui-accordion-header-' + item.id"
|
|
276
|
+
>
|
|
277
|
+
<div class="ui-accordion__body">
|
|
278
|
+
@if (item.expanded && itemTemplate) {
|
|
279
|
+
<ng-container
|
|
280
|
+
[ngTemplateOutlet]="itemTemplate"
|
|
281
|
+
[ngTemplateOutletContext]="{ $implicit: item }"
|
|
282
|
+
/>
|
|
283
|
+
}
|
|
284
|
+
</div>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
}
|
|
288
|
+
`, isInline: true, styles: [".ui-accordion-host{display:flex;flex-direction:column;gap:var(--ui-spacing-2)}.ui-accordion__panel{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);overflow:hidden;transition:box-shadow var(--ui-transition-fast)}.ui-accordion__panel--expanded{box-shadow:var(--ui-shadow-xs)}.ui-accordion__panel--disabled{opacity:.55}.ui-accordion__header{display:flex;align-items:center;width:100%;padding:var(--ui-spacing-4) var(--ui-spacing-5);gap:var(--ui-spacing-3);cursor:pointer;transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}.ui-accordion__header:hover:not(.ui-accordion__header--disabled){background:var(--ui-color-surface-hover)}.ui-accordion__header--expanded{background:var(--ui-color-bg-subtle);border-bottom:1px solid var(--ui-color-border)}.ui-accordion__header--disabled{cursor:not-allowed}.ui-accordion__trigger{appearance:none;border:none;background:transparent;cursor:pointer;font-family:var(--ui-font-family);padding:0;margin:0;flex:1;display:flex;align-items:center;gap:var(--ui-spacing-3);text-align:left;min-width:0;color:inherit}.ui-accordion__trigger:focus{outline:none}.ui-accordion__trigger:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-accordion__trigger:disabled{cursor:not-allowed}.ui-accordion__header-content{flex:1;display:flex;align-items:center;gap:var(--ui-spacing-2);min-width:0}.ui-accordion__icon{color:var(--ui-color-primary);flex-shrink:0}.ui-accordion__title{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-accordion__subtitle{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-accordion__header-extra{flex-shrink:0}.ui-accordion__actions{display:flex;align-items:center;gap:var(--ui-spacing-1);flex-shrink:0}.ui-accordion__chevron{flex-shrink:0;color:var(--ui-color-text-muted);transition:transform var(--ui-transition-normal)}.ui-accordion__chevron--rotated{transform:rotate(180deg)}.ui-accordion__body-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ui-transition-normal)}.ui-accordion__body-wrapper--open{grid-template-rows:1fr}.ui-accordion__body{overflow:hidden;padding:0 var(--ui-spacing-5);transition:padding var(--ui-transition-normal)}.ui-accordion__body-wrapper--open .ui-accordion__body{padding:var(--ui-spacing-5)}@media (max-width: 768px){.ui-accordion__header{padding:var(--ui-spacing-3) var(--ui-spacing-4)}.ui-accordion__body-wrapper--open .ui-accordion__body{padding:var(--ui-spacing-4)}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
289
|
+
}
|
|
290
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiAccordionComponent, decorators: [{
|
|
291
|
+
type: Component,
|
|
292
|
+
args: [{ selector: 'ui-accordion', standalone: true, imports: [NgTemplateOutlet, LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ui-accordion-host' }, template: `
|
|
293
|
+
@for (item of visibleItems; track item.id) {
|
|
294
|
+
<div
|
|
295
|
+
[class]="getPanelClasses(item)"
|
|
296
|
+
[id]="'ui-accordion-' + item.id"
|
|
297
|
+
>
|
|
298
|
+
<!-- Header: div wrapper per ospitare trigger + azioni + chevron -->
|
|
299
|
+
<div
|
|
300
|
+
class="ui-accordion__header"
|
|
301
|
+
[class.ui-accordion__header--expanded]="item.expanded"
|
|
302
|
+
[class.ui-accordion__header--disabled]="item.disabled"
|
|
303
|
+
(click)="!item.disabled && toggle(item)"
|
|
304
|
+
>
|
|
305
|
+
<button
|
|
306
|
+
class="ui-accordion__trigger"
|
|
307
|
+
[disabled]="item.disabled"
|
|
308
|
+
[attr.aria-expanded]="item.expanded"
|
|
309
|
+
[attr.aria-controls]="'ui-accordion-body-' + item.id"
|
|
310
|
+
[attr.id]="'ui-accordion-header-' + item.id"
|
|
311
|
+
type="button"
|
|
312
|
+
(keydown.home)="focusFirst($event)"
|
|
313
|
+
(keydown.end)="focusLast($event)"
|
|
314
|
+
>
|
|
315
|
+
<div class="ui-accordion__header-content">
|
|
316
|
+
@if (item.icon) {
|
|
317
|
+
<lucide-icon
|
|
318
|
+
class="ui-accordion__icon"
|
|
319
|
+
[name]="item.icon"
|
|
320
|
+
[size]="18"
|
|
321
|
+
aria-hidden="true"
|
|
322
|
+
/>
|
|
323
|
+
}
|
|
324
|
+
<span class="ui-accordion__title">{{ item.title }}</span>
|
|
325
|
+
@if (item.subtitle) {
|
|
326
|
+
<span class="ui-accordion__subtitle">{{ item.subtitle }}</span>
|
|
327
|
+
}
|
|
328
|
+
</div>
|
|
329
|
+
|
|
330
|
+
@if (headerTemplate) {
|
|
331
|
+
<div class="ui-accordion__header-extra">
|
|
332
|
+
<ng-container
|
|
333
|
+
[ngTemplateOutlet]="headerTemplate"
|
|
334
|
+
[ngTemplateOutletContext]="{ $implicit: item }"
|
|
335
|
+
/>
|
|
336
|
+
</div>
|
|
337
|
+
}
|
|
338
|
+
</button>
|
|
339
|
+
|
|
340
|
+
@if (actionsTemplate) {
|
|
341
|
+
<div
|
|
342
|
+
class="ui-accordion__actions"
|
|
343
|
+
role="group"
|
|
344
|
+
aria-label="Azioni pannello"
|
|
345
|
+
(click)="$event.stopPropagation()"
|
|
346
|
+
>
|
|
347
|
+
<ng-container
|
|
348
|
+
[ngTemplateOutlet]="actionsTemplate"
|
|
349
|
+
[ngTemplateOutletContext]="{ $implicit: item }"
|
|
350
|
+
/>
|
|
351
|
+
</div>
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
<lucide-icon
|
|
355
|
+
class="ui-accordion__chevron"
|
|
356
|
+
[class.ui-accordion__chevron--rotated]="item.expanded"
|
|
357
|
+
name="chevron-down"
|
|
358
|
+
[size]="16"
|
|
359
|
+
aria-hidden="true"
|
|
360
|
+
/>
|
|
361
|
+
</div>
|
|
362
|
+
|
|
363
|
+
<!-- Body (animazione CSS grid) -->
|
|
364
|
+
<div
|
|
365
|
+
class="ui-accordion__body-wrapper"
|
|
366
|
+
[class.ui-accordion__body-wrapper--open]="item.expanded"
|
|
367
|
+
role="region"
|
|
368
|
+
[attr.id]="'ui-accordion-body-' + item.id"
|
|
369
|
+
[attr.aria-labelledby]="'ui-accordion-header-' + item.id"
|
|
370
|
+
>
|
|
371
|
+
<div class="ui-accordion__body">
|
|
372
|
+
@if (item.expanded && itemTemplate) {
|
|
373
|
+
<ng-container
|
|
374
|
+
[ngTemplateOutlet]="itemTemplate"
|
|
375
|
+
[ngTemplateOutletContext]="{ $implicit: item }"
|
|
376
|
+
/>
|
|
377
|
+
}
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
</div>
|
|
381
|
+
}
|
|
382
|
+
`, styles: [".ui-accordion-host{display:flex;flex-direction:column;gap:var(--ui-spacing-2)}.ui-accordion__panel{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);overflow:hidden;transition:box-shadow var(--ui-transition-fast)}.ui-accordion__panel--expanded{box-shadow:var(--ui-shadow-xs)}.ui-accordion__panel--disabled{opacity:.55}.ui-accordion__header{display:flex;align-items:center;width:100%;padding:var(--ui-spacing-4) var(--ui-spacing-5);gap:var(--ui-spacing-3);cursor:pointer;transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}.ui-accordion__header:hover:not(.ui-accordion__header--disabled){background:var(--ui-color-surface-hover)}.ui-accordion__header--expanded{background:var(--ui-color-bg-subtle);border-bottom:1px solid var(--ui-color-border)}.ui-accordion__header--disabled{cursor:not-allowed}.ui-accordion__trigger{appearance:none;border:none;background:transparent;cursor:pointer;font-family:var(--ui-font-family);padding:0;margin:0;flex:1;display:flex;align-items:center;gap:var(--ui-spacing-3);text-align:left;min-width:0;color:inherit}.ui-accordion__trigger:focus{outline:none}.ui-accordion__trigger:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-accordion__trigger:disabled{cursor:not-allowed}.ui-accordion__header-content{flex:1;display:flex;align-items:center;gap:var(--ui-spacing-2);min-width:0}.ui-accordion__icon{color:var(--ui-color-primary);flex-shrink:0}.ui-accordion__title{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-accordion__subtitle{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-accordion__header-extra{flex-shrink:0}.ui-accordion__actions{display:flex;align-items:center;gap:var(--ui-spacing-1);flex-shrink:0}.ui-accordion__chevron{flex-shrink:0;color:var(--ui-color-text-muted);transition:transform var(--ui-transition-normal)}.ui-accordion__chevron--rotated{transform:rotate(180deg)}.ui-accordion__body-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ui-transition-normal)}.ui-accordion__body-wrapper--open{grid-template-rows:1fr}.ui-accordion__body{overflow:hidden;padding:0 var(--ui-spacing-5);transition:padding var(--ui-transition-normal)}.ui-accordion__body-wrapper--open .ui-accordion__body{padding:var(--ui-spacing-5)}@media (max-width: 768px){.ui-accordion__header{padding:var(--ui-spacing-3) var(--ui-spacing-4)}.ui-accordion__body-wrapper--open .ui-accordion__body{padding:var(--ui-spacing-4)}}\n"] }]
|
|
383
|
+
}], propDecorators: { items: [{
|
|
384
|
+
type: Input
|
|
385
|
+
}], itemTemplate: [{
|
|
386
|
+
type: Input
|
|
387
|
+
}], headerTemplate: [{
|
|
388
|
+
type: Input
|
|
389
|
+
}], actionsTemplate: [{
|
|
390
|
+
type: Input
|
|
391
|
+
}], mode: [{
|
|
392
|
+
type: Input
|
|
393
|
+
}], ariaLabel: [{
|
|
394
|
+
type: Input
|
|
395
|
+
}], itemToggled: [{
|
|
396
|
+
type: Output
|
|
397
|
+
}] } });
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUdqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFxR0gsTUFBTSxPQUFPLG9CQUFvQjtJQXBHakM7UUFxR21CLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVqRDs7OztXQUlHO1FBQ0sscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRTlCOzs7Ozs7V0FNRztRQUNNLFVBQUssR0FBNEIsRUFBRSxDQUFDO1FBRTdDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxpQkFBWSxHQUFnQyxJQUFJLENBQUM7UUFFMUQ7Ozs7V0FJRztRQUNNLG1CQUFjLEdBQWdDLElBQUksQ0FBQztRQUU1RDs7Ozs7V0FLRztRQUNNLG9CQUFlLEdBQWdDLElBQUksQ0FBQztRQUU3RDs7OztXQUlHO1FBQ00sU0FBSSxHQUFvQixPQUFPLENBQUM7UUFFekMsaURBQWlEO1FBQ3hDLGNBQVMsR0FBRyxXQUFXLENBQUM7UUFFakMsdURBQXVEO1FBQzdDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7S0F1SHBFO0lBckhDOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUztR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USxLQUFLO3NCQUFiLEtBQUs7Z0JBYUcsWUFBWTtzQkFBcEIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQVFHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgRG9DaGVjayxcclxuICBUZW1wbGF0ZVJlZixcclxuICBpbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBVaUFjY29yZGlvbkRlc2NyaXB0b3IsIFVpQWNjb3JkaW9uVG9nZ2xlRXZlbnQsIFVpQWNjb3JkaW9uTW9kZSB9IGZyb20gJy4vYWNjb3JkaW9uLnR5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBBY2NvcmRpb24gY29uZmlndXJhYmlsZSwgZGF0YS1kcml2ZW4sIGNvbiBzdXBwb3J0byBtdWx0aS9zaW5nbGUgZXhwYW5kLFxyXG4gKiBhbmltYXppb25pIENTUywgaWNvbmUgTHVjaWRlIGUgdGVtcGxhdGUgcGVyc29uYWxpenphYmlsaS5cclxuICpcclxuICogSWwgY29udGVudXRvIGRlaSBwYW5uZWxsaSB2aWVuZSBmb3JuaXRvIHRyYW1pdGUgdW4gYGl0ZW1UZW1wbGF0ZWBcclxuICogY2hlIHJpY2V2ZSBpbCBkZXNjcmlwdG9yIGRlbCBwYW5uZWxsbyBjb21lIGNvbnRlc3RvLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktYWNjb3JkaW9uXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHVpLWFjY29yZGlvblxyXG4gKiAgIFtpdGVtc109XCJzZWN0aW9uc1wiXHJcbiAqICAgW2l0ZW1UZW1wbGF0ZV09XCJwYW5lbFRwbFwiXHJcbiAqICAgbW9kZT1cInNpbmdsZVwiXHJcbiAqID5cclxuICogICA8bmctdGVtcGxhdGUgI3BhbmVsVHBsIGxldC1pdGVtPlxyXG4gKiAgICAgQHN3aXRjaCAoaXRlbS5pZCkge1xyXG4gKiAgICAgICBAY2FzZSAoJ2luZm8nKSAgICB7IDxhcHAtaW5mby1wYW5lbCAvPiB9XHJcbiAqICAgICAgIEBjYXNlICgnYWRkcmVzcycpIHsgPGFwcC1hZGRyZXNzLWZvcm0gLz4gfVxyXG4gKiAgICAgfVxyXG4gKiAgIDwvbmctdGVtcGxhdGU+XHJcbiAqIDwvdWktYWNjb3JkaW9uPlxyXG4gKiBgYGBcclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBzZWN0aW9uczogVWlBY2NvcmRpb25EZXNjcmlwdG9yW10gPSBbXHJcbiAqICAgeyBpZDogJ2luZm8nLCB0aXRsZTogJ0luZm9ybWF6aW9uaScsIGljb246ICdpbmZvJywgZXhwYW5kZWQ6IHRydWUgfSxcclxuICogICB7IGlkOiAnYWRkcmVzcycsIHRpdGxlOiAnSW5kaXJpenpvJywgaWNvbjogJ21hcC1waW4nIH0sXHJcbiAqIF07XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1hY2NvcmRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIEx1Y2lkZUFuZ3VsYXJNb2R1bGVdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgaG9zdDogeyBjbGFzczogJ3VpLWFjY29yZGlvbi1ob3N0JyB9LFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICBAZm9yIChpdGVtIG9mIHZpc2libGVJdGVtczsgdHJhY2sgaXRlbS5pZCkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW2NsYXNzXT1cImdldFBhbmVsQ2xhc3NlcyhpdGVtKVwiXHJcbiAgICAgICAgW2lkXT1cIid1aS1hY2NvcmRpb24tJyArIGl0ZW0uaWRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPCEtLSBIZWFkZXI6IGRpdiB3cmFwcGVyIHBlciBvc3BpdGFyZSB0cmlnZ2VyICsgYXppb25pICsgY2hldnJvbiAtLT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInVpLWFjY29yZGlvbl9faGVhZGVyXCJcclxuICAgICAgICAgIFtjbGFzcy51aS1hY2NvcmRpb25fX2hlYWRlci0tZXhwYW5kZWRdPVwiaXRlbS5leHBhbmRlZFwiXHJcbiAgICAgICAgICBbY2xhc3MudWktYWNjb3JkaW9uX19oZWFkZXItLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIiFpdGVtLmRpc2FibGVkICYmIHRvZ2dsZShpdGVtKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cInVpLWFjY29yZGlvbl9fdHJpZ2dlclwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmV4cGFuZGVkXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIndWktYWNjb3JkaW9uLWJvZHktJyArIGl0ZW0uaWRcIlxyXG4gICAgICAgICAgICBbYXR0ci5pZF09XCIndWktYWNjb3JkaW9uLWhlYWRlci0nICsgaXRlbS5pZFwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoa2V5ZG93bi5ob21lKT1cImZvY3VzRmlyc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLmVuZCk9XCJmb2N1c0xhc3QoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1hY2NvcmRpb25fX2hlYWRlci1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcclxuICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLWFjY29yZGlvbl9faWNvblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaXplXT1cIjE4XCJcclxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidWktYWNjb3JkaW9uX190aXRsZVwiPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgQGlmIChpdGVtLnN1YnRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVpLWFjY29yZGlvbl9fc3VidGl0bGVcIj57eyBpdGVtLnN1YnRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWFjY29yZGlvbl9faGVhZGVyLWV4dHJhXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgQGlmIChhY3Rpb25zVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidWktYWNjb3JkaW9uX19hY3Rpb25zXCJcclxuICAgICAgICAgICAgICByb2xlPVwiZ3JvdXBcIlxyXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBemlvbmkgcGFubmVsbG9cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICA8bHVjaWRlLWljb25cclxuICAgICAgICAgICAgY2xhc3M9XCJ1aS1hY2NvcmRpb25fX2NoZXZyb25cIlxyXG4gICAgICAgICAgICBbY2xhc3MudWktYWNjb3JkaW9uX19jaGV2cm9uLS1yb3RhdGVkXT1cIml0ZW0uZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICBuYW1lPVwiY2hldnJvbi1kb3duXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiMTZcIlxyXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBCb2R5IChhbmltYXppb25lIENTUyBncmlkKSAtLT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInVpLWFjY29yZGlvbl9fYm9keS13cmFwcGVyXCJcclxuICAgICAgICAgIFtjbGFzcy51aS1hY2NvcmRpb25fX2JvZHktd3JhcHBlci0tb3Blbl09XCJpdGVtLmV4cGFuZGVkXCJcclxuICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxyXG4gICAgICAgICAgW2F0dHIuaWRdPVwiJ3VpLWFjY29yZGlvbi1ib2R5LScgKyBpdGVtLmlkXCJcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndWktYWNjb3JkaW9uLWhlYWRlci0nICsgaXRlbS5pZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWFjY29yZGlvbl9fYm9keVwiPlxyXG4gICAgICAgICAgICBAaWYgKGl0ZW0uZXhwYW5kZWQgJiYgaXRlbVRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjayB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuICAvKipcclxuICAgKiBGaW5nZXJwcmludCBkZWxsJ3VsdGltbyBzdGF0byBkZWkgZGVzY3JpcHRvci5cclxuICAgKiBVc2F0byBkYSBEb0NoZWNrIHBlciByaWxldmFyZSBtdXRhemlvbmkgaW4tcGxhY2Ugc3VsbGUgcHJvcHJpZXRhXHJcbiAgICogZGVnbGkgaXRlbSBzZW56YSByaWNoaWVkZXJlIHVuIG51b3ZvIHJpZmVyaW1lbnRvIGRlbGwnYXJyYXkuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfbGFzdEZpbmdlcnByaW50ID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFycmF5IGRpIGRlc2NyaXB0b3IgZGVpIHBhbm5lbGxpLlxyXG4gICAqIFBhbm5lbGxpIGNvbiBgaGlkZGVuOiB0cnVlYCB2ZW5nb25vIGZpbHRyYXRpIGF1dG9tYXRpY2FtZW50ZS5cclxuICAgKlxyXG4gICAqIFN1cHBvcnRhIHNpYSBhZ2dpb3JuYW1lbnRpIGltbXV0YWJpbGkgKG51b3ZvIGFycmF5KSBzaWFcclxuICAgKiBtdXRhemlvbmkgaW4tcGxhY2UgZGVsbGUgcHJvcHJpZXRhIGRlaSBkZXNjcmlwdG9yLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBVaUFjY29yZGlvbkRlc2NyaXB0b3JbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBwZXIgaWwgY29udGVudXRvIGRpIG9nbmkgcGFubmVsbG8uXHJcbiAgICogSWwgY29udGVzdG8gZm9ybmlzY2UgaWwgZGVzY3JpcHRvciBjb21lIGAkaW1wbGljaXRgLlxyXG4gICAqXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiBgYGBodG1sXHJcbiAgICogPG5nLXRlbXBsYXRlICN0cGwgbGV0LWl0ZW0+XHJcbiAgICogICA8cD5Db250ZW51dG8gcGVyOiB7eyBpdGVtLnRpdGxlIH19PC9wPlxyXG4gICAqIDwvbmctdGVtcGxhdGU+XHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBvcHppb25hbGUgcGVyIGNvbnRlbnV0byBhZ2dpdW50aXZvIG5lbGwnaGVhZGVyLlxyXG4gICAqIElsIGNvbnRlc3RvIGZvcm5pc2NlIGlsIGRlc2NyaXB0b3IgY29tZSBgJGltcGxpY2l0YC5cclxuICAgKiBWaWVuZSByZW5kZXJpenphdG8gYWxsJ2ludGVybm8gZGVsIHRyaWdnZXIsIHRyYSBpbCB0aXRvbG8gZSBpbCBjaGV2cm9uLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBvcHppb25hbGUgcGVyIGF6aW9uaSBuZWxsJ2hlYWRlciBkZWwgcGFubmVsbG8uXHJcbiAgICogUG9zaXppb25hdG8gdHJhIGlsIHRyaWdnZXIgZSBpbCBjaGV2cm9uLCBhbCBkaSBmdW9yaSBkZWwgYnV0dG9uXHJcbiAgICogcGVyIGNvbnNlbnRpcmUgZWxlbWVudGkgaW50ZXJhdHRpdmkgKGVzLiBwdWxzYW50aSBkdXBsaWNhL2VsaW1pbmEpLlxyXG4gICAqIElsIGNvbnRlc3RvIGZvcm5pc2NlIGlsIGRlc2NyaXB0b3IgY29tZSBgJGltcGxpY2l0YC5cclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vZGFsaXRhIGRpIGVzcGFuc2lvbmUuXHJcbiAgICogLSBgbXVsdGlgOiBwaXUgcGFubmVsbGkgYXBlcnRpIGNvbnRlbXBvcmFuZWFtZW50ZVxyXG4gICAqIC0gYHNpbmdsZWA6IHVuIHNvbG8gcGFubmVsbG8gYXBlcnRvIGFsbGEgdm9sdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlOiBVaUFjY29yZGlvbk1vZGUgPSAnbXVsdGknO1xyXG5cclxuICAvKiogTGFiZWwgYWNjZXNzaWJpbGUgcGVyIGlsIGdydXBwbyBhY2NvcmRpb24uICovXHJcbiAgQElucHV0KCkgYXJpYUxhYmVsID0gJ0FjY29yZGlvbic7XHJcblxyXG4gIC8qKiBFbWVzc28gcXVhbmRvIHVuIHBhbm5lbGxvIHZpZW5lIGFwZXJ0byBvIGNoaXVzby4gKi9cclxuICBAT3V0cHV0KCkgaXRlbVRvZ2dsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFVpQWNjb3JkaW9uVG9nZ2xlRXZlbnQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpbGV2YSBtdXRhemlvbmkgaW4tcGxhY2Ugc3VsbGUgcHJvcHJpZXRhIGRlaSBkZXNjcmlwdG9yLlxyXG4gICAqIENvbmZyb250YSB1biBmaW5nZXJwcmludCBsZWdnZXJvIGRlbGxvIHN0YXRvIGNvcnJlbnRlIGNvbiBxdWVsbG9cclxuICAgKiBwcmVjZWRlbnRlIGUsIHNlIGRpdmVyc28sIGZvcnphIHVuIGNpY2xvIGRpIGNoYW5nZSBkZXRlY3Rpb24uXHJcbiAgICpcclxuICAgKiBRdWVzdG8gcGVybWV0dGUgYWwgY29uc3VtYXRvcmUgZGkgZmFyZSBzaWE6XHJcbiAgICogLSBgaXRlbXNbMl0uaGlkZGVuID0gdHJ1ZWAgIChtdXRhemlvbmUgaW4tcGxhY2UpXHJcbiAgICogLSBgaXRlbXMgPSBbLi4ubmV3SXRlbXNdYCAgIChudW92byByaWZlcmltZW50bylcclxuICAgKi9cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBjb25zdCBmcCA9IHRoaXMuY29tcHV0ZUZpbmdlcnByaW50KCk7XHJcbiAgICBpZiAoZnAgIT09IHRoaXMuX2xhc3RGaW5nZXJwcmludCkge1xyXG4gICAgICB0aGlzLl9sYXN0RmluZ2VycHJpbnQgPSBmcDtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUGFubmVsbGkgdmlzaWJpbGkgKG5vbiBoaWRkZW4pLiAqL1xyXG4gIGdldCB2aXNpYmxlSXRlbXMoKTogVWlBY2NvcmRpb25EZXNjcmlwdG9yW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChpKSA9PiAhaS5oaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEFsdGVybmEgbCdlc3BhbnNpb25lIGRpIHVuIHBhbm5lbGxvLiAqL1xyXG4gIHRvZ2dsZShpdGVtOiBVaUFjY29yZGlvbkRlc2NyaXB0b3IpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qgd2lsbEV4cGFuZCA9ICFpdGVtLmV4cGFuZGVkO1xyXG5cclxuICAgIC8vIEluIG1vZGFsaXRhIHNpbmdsZSwgY2hpdWRpIHR1dHRpIGdsaSBhbHRyaVxyXG4gICAgaWYgKHdpbGxFeHBhbmQgJiYgdGhpcy5tb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgICBpZiAoaSAhPT0gaXRlbSAmJiBpLmV4cGFuZGVkKSB7XHJcbiAgICAgICAgICBpLmV4cGFuZGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLml0ZW1Ub2dnbGVkLmVtaXQoeyBpdGVtOiBpLCBleHBhbmRlZDogZmFsc2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpdGVtLmV4cGFuZGVkID0gd2lsbEV4cGFuZDtcclxuICAgIHRoaXMuaXRlbVRvZ2dsZWQuZW1pdCh7IGl0ZW0sIGV4cGFuZGVkOiB3aWxsRXhwYW5kIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEFwcmUgdW4gcGFubmVsbG8gc3BlY2lmaWNvIHBlciBpZC4gKi9cclxuICBvcGVuKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoKGkpID0+IGkuaWQgPT09IGlkKTtcclxuICAgIGlmIChpdGVtICYmICFpdGVtLmV4cGFuZGVkICYmICFpdGVtLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlKGl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIENoaXVkZSB1biBwYW5uZWxsbyBzcGVjaWZpY28gcGVyIGlkLiAqL1xyXG4gIGNsb3NlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoKGkpID0+IGkuaWQgPT09IGlkKTtcclxuICAgIGlmIChpdGVtICYmIGl0ZW0uZXhwYW5kZWQpIHtcclxuICAgICAgaXRlbS5leHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLml0ZW1Ub2dnbGVkLmVtaXQoeyBpdGVtLCBleHBhbmRlZDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQXByZSB0dXR0aSBpIHBhbm5lbGxpIChzb2xvIGluIG1vZGFsaXRhIG11bHRpKS4gKi9cclxuICBvcGVuQWxsKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHJldHVybjtcclxuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoIWl0ZW0uZXhwYW5kZWQgJiYgIWl0ZW0uZGlzYWJsZWQgJiYgIWl0ZW0uaGlkZGVuKSB7XHJcbiAgICAgICAgaXRlbS5leHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pdGVtVG9nZ2xlZC5lbWl0KHsgaXRlbSwgZXhwYW5kZWQ6IHRydWUgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIENoaXVkZSB0dXR0aSBpIHBhbm5lbGxpLiAqL1xyXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmV4cGFuZGVkKSB7XHJcbiAgICAgICAgaXRlbS5leHBhbmRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuaXRlbVRvZ2dsZWQuZW1pdCh7IGl0ZW0sIGV4cGFuZGVkOiBmYWxzZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIENsYXNzaSBDU1MgcGVyIGlsIHBhbm5lbGxvLiAqL1xyXG4gIGdldFBhbmVsQ2xhc3NlcyhpdGVtOiBVaUFjY29yZGlvbkRlc2NyaXB0b3IpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgJ3VpLWFjY29yZGlvbl9fcGFuZWwnLFxyXG4gICAgICBpdGVtLmV4cGFuZGVkID8gJ3VpLWFjY29yZGlvbl9fcGFuZWwtLWV4cGFuZGVkJyA6ICcnLFxyXG4gICAgICBpdGVtLmRpc2FibGVkID8gJ3VpLWFjY29yZGlvbl9fcGFuZWwtLWRpc2FibGVkJyA6ICcnLFxyXG4gICAgXVxyXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAgIC5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIFNwb3N0YSBpbCBmb2N1cyBhbCBwcmltbyBoZWFkZXIuICovXHJcbiAgZm9jdXNGaXJzdChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XHJcbiAgICBoZWFkZXJzWzBdPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpbnRlcm5hbCBTcG9zdGEgaWwgZm9jdXMgYWxsJ3VsdGltbyBoZWFkZXIuICovXHJcbiAgZm9jdXNMYXN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcclxuICAgIGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXT8uZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgUmVjdXBlcmEgdHV0dGkgaSB0cmlnZ2VyIGJ1dHRvbiBkZWwgRE9NLiAqL1xyXG4gIHByaXZhdGUgZ2V0SGVhZGVycygpOiBIVE1MQnV0dG9uRWxlbWVudFtdIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEJ1dHRvbkVsZW1lbnQ+KCcudWktYWNjb3JkaW9uX190cmlnZ2VyOm5vdCg6ZGlzYWJsZWQpJykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsIENhbGNvbGEgdW4gZmluZ2VycHJpbnQgbGVnZ2VybyBiYXNhdG8gc3VsbGUgcHJvcHJpZXRhXHJcbiAgICogcmVhdHRpdmUgZGVpIGRlc2NyaXB0b3IgKHF1ZWxsZSBjaGUgaW5mbHVlbnphbm8gaWwgcmVuZGVyaW5nKS5cclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVGaW5nZXJwcmludCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpKSA9PiBgJHtpLmlkfToke2kuaGlkZGVuID8/IDB9OiR7aS5kaXNhYmxlZCA/PyAwfToke2kuZXhwYW5kZWQgPz8gMH06JHtpLnRpdGxlfWApLmpvaW4oJ3wnKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ng-ui-system/accordion
|
|
3
|
+
* Tipi e interfacce per UiAccordion.
|
|
4
|
+
*/
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBuZy11aS1zeXN0ZW0vYWNjb3JkaW9uXG4gKiBUaXBpIGUgaW50ZXJmYWNjZSBwZXIgVWlBY2NvcmRpb24uXG4gKi9cblxuaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpSWNvbk5hbWUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzJztcblxuLy8gUmUtZXhwb3J0IHBlciBjb21vZGl0YSBkZWwgY29uc3VtYXRvcmVcbmV4cG9ydCB7IFVpSWNvbk5hbWUgfTtcblxuLyoqXG4gKiBEZXNjcmlwdG9yIHBlciB1biBzaW5nb2xvIHBhbm5lbGxvIGRlbGwnYWNjb3JkaW9uLlxuICpcbiAqIENvbnNlbnRlIGRpIGRlZmluaXJlIGFjY29yZGlvbiBjb21lIHN0cnV0dHVyZSBkYXRpIGRpY2hpYXJhdGl2ZSxcbiAqIGFnZ2lvcm5hYmlsaSBkaW5hbWljYW1lbnRlIHRyYW1pdGUgbWFuaXBvbGF6aW9uZSBkZWxsJ2FycmF5LlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiAjIyMgVXRpbGl6em8gYmFzZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaXRlbXM6IFVpQWNjb3JkaW9uRGVzY3JpcHRvcltdID0gW1xuICogICB7IGlkOiAnaW5mbycsIHRpdGxlOiAnSW5mb3JtYXppb25pIGdlbmVyYWxpJywgaWNvbjogJ2luZm8nIH0sXG4gKiAgIHsgaWQ6ICdhZGRyZXNzJywgdGl0bGU6ICdJbmRpcml6em8nLCBpY29uOiAnbWFwLXBpbicgfSxcbiAqICAgeyBpZDogJ25vdGVzJywgdGl0bGU6ICdOb3RlIGFnZ2l1bnRpdmUnLCBleHBhbmRlZDogdHJ1ZSB9LFxuICogXTtcbiAqIGBgYFxuICpcbiAqICMjIyBWaXNpYmlsaXRhIGNvbmRpemlvbmFsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaXRlbXNbMl0uaGlkZGVuID0gIXRoaXMuaGFzTm90ZXM7XG4gKiBpdGVtc1sxXS5kaXNhYmxlZCA9IHRoaXMuaXNSZWFkb25seTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVpQWNjb3JkaW9uRGVzY3JpcHRvciB7XG4gIC8qKiBJZGVudGlmaWNhdG9yZSB1bml2b2NvIGRlbCBwYW5uZWxsby4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogVGl0b2xvIHZpc3VhbGl6emF0byBuZWxsJ2hlYWRlciBkZWwgcGFubmVsbG8uICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqIEljb25hIEx1Y2lkZSBvcHppb25hbGUgbW9zdHJhdGEgcHJpbWEgZGVsIHRpdG9sby4gQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMgKi9cbiAgaWNvbj86IFVpSWNvbk5hbWU7XG5cbiAgLyoqIFN0YXRvIGluaXppYWxlIGRpIGVzcGFuc2lvbmUuIEBkZWZhdWx0IGZhbHNlICovXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcblxuICAvKiogRGlzYWJpbGl0YSBsJ2ludGVyYXppb25lIGNvbiBpbCBwYW5uZWxsby4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBOYXNjb25kZSBpbCBwYW5uZWxsbyBkYWxsJ2ludGVyZmFjY2lhLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBoaWRkZW4/OiBib29sZWFuO1xuXG4gIC8qKiBEZXNjcml6aW9uZSBzZWNvbmRhcmlhIG1vc3RyYXRhIGFjY2FudG8gYWwgdGl0b2xvLiAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcblxuICAvKiogSW5kaWNlIHBvc2l6aW9uYWxlIGRlbCBwYW5uZWxsbyAodXRpbGUgcGVyIHNlemlvbmkgcmVwZWF0YWJsZSkuICovXG4gIGluZGV4PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEV2ZW50byBlbWVzc28gcXVhbmRvIHVuIHBhbm5lbGxvIHZpZW5lIGFwZXJ0byBvIGNoaXVzby5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVaUFjY29yZGlvblRvZ2dsZUV2ZW50IHtcbiAgLyoqIERlc2NyaXB0b3IgZGVsIHBhbm5lbGxvIGNvaW52b2x0by4gKi9cbiAgaXRlbTogVWlBY2NvcmRpb25EZXNjcmlwdG9yO1xuXG4gIC8qKiBgdHJ1ZWAgc2UgaWwgcGFubmVsbG8gZSBzdGF0byBhcGVydG8sIGBmYWxzZWAgc2UgY2hpdXNvLiAqL1xuICBleHBhbmRlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNb2RhbGl0YSBkaSBlc3BhbnNpb25lIGRlbGwnYWNjb3JkaW9uLlxuICpcbiAqIHwgTW9kYWxpdGEgfCBDb21wb3J0YW1lbnRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgYG11bHRpYCB8IFBpdSBwYW5uZWxsaSBwb3Nzb25vIGVzc2VyZSBhcGVydGkgY29udGVtcG9yYW5lYW1lbnRlIHxcbiAqIHwgYHNpbmdsZWB8IFVuIHNvbG8gcGFubmVsbG8gYXBlcnRvIGFsbGEgdm9sdGEgKGdsaSBhbHRyaSBzaSBjaGl1ZG9ubykgfFxuICovXG5leHBvcnQgdHlwZSBVaUFjY29yZGlvbk1vZGUgPSAnbXVsdGknIHwgJ3NpbmdsZSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { UiAccordionComponent } from './accordion.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy11aS1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2FjY29yZGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFVpQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcclxuZXhwb3J0IHtcclxuICBVaUFjY29yZGlvbkRlc2NyaXB0b3IsXHJcbiAgVWlBY2NvcmRpb25Ub2dnbGVFdmVudCxcclxuICBVaUFjY29yZGlvbk1vZGUsXHJcbn0gZnJvbSAnLi9hY2NvcmRpb24udHlwZXMnO1xyXG4iXX0=
|
|
@@ -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
|