@design-factory/design-factory 15.2.0
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/LICENSE +26 -0
- package/README.md +47 -0
- package/assets/.gitkeep +0 -0
- package/assets/fonts/amadeus-bold/amadeus-bold.svg +5131 -0
- package/assets/fonts/amadeus-bold/amadeus-bold.ttf +0 -0
- package/assets/fonts/amadeus-bold/amadeus-bold.woff +0 -0
- package/assets/fonts/amadeus-bold/amadeus-bold.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-bold.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-bold.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-bolditalic.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-bolditalic.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-italic.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-italic.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-light.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-light.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-lightitalic.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-lightitalic.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-regular.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-regular.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-thin.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-thin.woff2 +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-thinitalic.woff +0 -0
- package/assets/fonts/amadeus-full/amadeus-full-thinitalic.woff2 +0 -0
- package/assets/fonts/amadeus-light/amadeus-light.svg +8658 -0
- package/assets/fonts/amadeus-light/amadeus-light.ttf +0 -0
- package/assets/fonts/amadeus-light/amadeus-light.woff +0 -0
- package/assets/fonts/amadeus-light/amadeus-light.woff2 +0 -0
- package/assets/fonts/amadeus-regular/amadeus-regular.svg +5131 -0
- package/assets/fonts/amadeus-regular/amadeus-regular.ttf +0 -0
- package/assets/fonts/amadeus-regular/amadeus-regular.woff +0 -0
- package/assets/fonts/amadeus-regular/amadeus-regular.woff2 +0 -0
- package/assets/fonts/amadeus-thin/amadeus-thin.svg +5131 -0
- package/assets/fonts/amadeus-thin/amadeus-thin.ttf +0 -0
- package/assets/fonts/amadeus-thin/amadeus-thin.woff +0 -0
- package/assets/fonts/amadeus-thin/amadeus-thin.woff2 +0 -0
- package/assets/fonts/icon-font/light/df-light-300.svg +1709 -0
- package/assets/fonts/icon-font/light/df-light-300.ttf +0 -0
- package/assets/fonts/icon-font/light/df-light-300.woff +0 -0
- package/assets/fonts/icon-font/light/df-light-300.woff2 +0 -0
- package/assets/fonts/icon-font/solid/df-solid-900.svg +1709 -0
- package/assets/fonts/icon-font/solid/df-solid-900.ttf +0 -0
- package/assets/fonts/icon-font/solid/df-solid-900.woff +0 -0
- package/assets/fonts/icon-font/solid/df-solid-900.woff2 +0 -0
- package/assets/fonts/noto/notosans-bold.woff +0 -0
- package/assets/fonts/noto/notosans-bold.woff2 +0 -0
- package/assets/fonts/noto/notosans-bolditalic.woff +0 -0
- package/assets/fonts/noto/notosans-bolditalic.woff2 +0 -0
- package/assets/fonts/noto/notosans-italic.woff +0 -0
- package/assets/fonts/noto/notosans-italic.woff2 +0 -0
- package/assets/fonts/noto/notosans-light.woff +0 -0
- package/assets/fonts/noto/notosans-light.woff2 +0 -0
- package/assets/fonts/noto/notosans-lightitalic.woff +0 -0
- package/assets/fonts/noto/notosans-lightitalic.woff2 +0 -0
- package/assets/fonts/noto/notosans-regular.woff +0 -0
- package/assets/fonts/noto/notosans-regular.woff2 +0 -0
- package/assets/fonts/noto/notosans-thin.woff +0 -0
- package/assets/fonts/noto/notosans-thin.woff2 +0 -0
- package/assets/fonts/noto/notosans-thinitalic.woff +0 -0
- package/assets/fonts/noto/notosans-thinitalic.woff2 +0 -0
- package/assets/fonts/noto/notosansarabic-bold.woff +0 -0
- package/assets/fonts/noto/notosansarabic-bold.woff2 +0 -0
- package/assets/fonts/noto/notosansarabic-light.woff +0 -0
- package/assets/fonts/noto/notosansarabic-light.woff2 +0 -0
- package/assets/fonts/noto/notosansarabic-regular.woff +0 -0
- package/assets/fonts/noto/notosansarabic-regular.woff2 +0 -0
- package/assets/fonts/noto/notosansarabic-thin.woff +0 -0
- package/assets/fonts/noto/notosansarabic-thin.woff2 +0 -0
- package/assets/fonts/noto/notosansgeorgian-bold.woff +0 -0
- package/assets/fonts/noto/notosansgeorgian-bold.woff2 +0 -0
- package/assets/fonts/noto/notosansgeorgian-light.woff +0 -0
- package/assets/fonts/noto/notosansgeorgian-light.woff2 +0 -0
- package/assets/fonts/noto/notosansgeorgian-regular.woff +0 -0
- package/assets/fonts/noto/notosansgeorgian-regular.woff2 +0 -0
- package/assets/fonts/noto/notosansgeorgian-thin.woff +0 -0
- package/assets/fonts/noto/notosansgeorgian-thin.woff2 +0 -0
- package/assets/fonts/noto/notosanshebrew-bold.woff +0 -0
- package/assets/fonts/noto/notosanshebrew-bold.woff2 +0 -0
- package/assets/fonts/noto/notosanshebrew-light.woff +0 -0
- package/assets/fonts/noto/notosanshebrew-light.woff2 +0 -0
- package/assets/fonts/noto/notosanshebrew-regular.woff +0 -0
- package/assets/fonts/noto/notosanshebrew-regular.woff2 +0 -0
- package/assets/fonts/noto/notosanshebrew-thin.woff +0 -0
- package/assets/fonts/noto/notosanshebrew-thin.woff2 +0 -0
- package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.svg +19926 -0
- package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.ttf +0 -0
- package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.woff +0 -0
- package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.woff2 +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bold.woff +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bold.woff2 +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bolditalic.woff +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bolditalic.woff2 +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-italic.woff +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-italic.woff2 +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-light.woff +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-light.woff2 +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-lightitalic.woff +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-lightitalic.woff2 +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-regular.woff +0 -0
- package/assets/fonts/source-sans-pro-full/sourcesanspro-full-regular.woff2 +0 -0
- package/assets/fonts/source-sans-pro-light/source-sans-pro-light.svg +19165 -0
- package/assets/fonts/source-sans-pro-light/source-sans-pro-light.ttf +0 -0
- package/assets/fonts/source-sans-pro-light/source-sans-pro-light.woff +0 -0
- package/assets/fonts/source-sans-pro-light/source-sans-pro-light.woff2 +0 -0
- package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.svg +20412 -0
- package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.ttf +0 -0
- package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.woff +0 -0
- package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.woff2 +0 -0
- package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.svg +20019 -0
- package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.ttf +0 -0
- package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.woff +0 -0
- package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.woff2 +0 -0
- package/assets/icon-amadeus.svg +1 -0
- package/assets/readme.png +0 -0
- package/design-factory-utilities.scss +5 -0
- package/design-factory.css +3 -0
- package/design-factory.scss +1 -0
- package/environment.d.ts +4 -0
- package/esm2022/design-factory.mjs +5 -0
- package/esm2022/environment.mjs +5 -0
- package/esm2022/index.mjs +5 -0
- package/esm2022/lib/angular/accessibility/accessibility.module.mjs +19 -0
- package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +32 -0
- package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +64 -0
- package/esm2022/lib/angular/alert/alert.module.mjs +17 -0
- package/esm2022/lib/angular/animation/ngbTransition.mjs +76 -0
- package/esm2022/lib/angular/animation/util.mjs +30 -0
- package/esm2022/lib/angular/card/card-advanced.module.mjs +17 -0
- package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +47 -0
- package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +38 -0
- package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +39 -0
- package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +101 -0
- package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +97 -0
- package/esm2022/lib/angular/datepicker/datepicker.module.mjs +42 -0
- package/esm2022/lib/angular/footer/footer.module.mjs +17 -0
- package/esm2022/lib/angular/icon/amadeus-icon.mjs +79 -0
- package/esm2022/lib/angular/icon/icon.module.mjs +17 -0
- package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +47 -0
- package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +17 -0
- package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +28 -0
- package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +95 -0
- package/esm2022/lib/angular/inputs/input-advanced.module.mjs +19 -0
- package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +52 -0
- package/esm2022/lib/angular/mediaqueries/media.module.mjs +17 -0
- package/esm2022/lib/angular/mediaqueries/media.service.mjs +46 -0
- package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +185 -0
- package/esm2022/lib/angular/modal/modal.service.mjs +36 -0
- package/esm2022/lib/angular/popover/config/popover.config.mjs +16 -0
- package/esm2022/lib/angular/popover/popover.module.mjs +17 -0
- package/esm2022/lib/angular/progressbar/progressbar.component.mjs +158 -0
- package/esm2022/lib/angular/progressbar/progressbar.module.mjs +18 -0
- package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +23 -0
- package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +29 -0
- package/esm2022/lib/angular/progressindicator/progressindicator-config.mjs +25 -0
- package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +52 -0
- package/esm2022/lib/angular/progressindicator/progressindicator-ref.mjs +8 -0
- package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +39 -0
- package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +45 -0
- package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +170 -0
- package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +32 -0
- package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +65 -0
- package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +108 -0
- package/esm2022/lib/angular/selects/option-highlight.directive.mjs +59 -0
- package/esm2022/lib/angular/selects/select.model.mjs +2 -0
- package/esm2022/lib/angular/selects/select.module.mjs +22 -0
- package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +73 -0
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +94 -0
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +18 -0
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +37 -0
- package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +27 -0
- package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +55 -0
- package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +26 -0
- package/esm2022/lib/angular/sidenav/sidenav-config.mjs +25 -0
- package/esm2022/lib/angular/sidenav/sidenav.component.mjs +86 -0
- package/esm2022/lib/angular/sidenav/sidenav.module.mjs +52 -0
- package/esm2022/lib/angular/sidenav/sidenav.service.mjs +315 -0
- package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +50 -0
- package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +33 -0
- package/esm2022/lib/angular/slider/lib/change-context.mjs +3 -0
- package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +15 -0
- package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +77 -0
- package/esm2022/lib/angular/slider/lib/event-listener.mjs +3 -0
- package/esm2022/lib/angular/slider/lib/math-helper.mjs +15 -0
- package/esm2022/lib/angular/slider/lib/options.mjs +123 -0
- package/esm2022/lib/angular/slider/lib/pointer-type.mjs +9 -0
- package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +187 -0
- package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +62 -0
- package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +38 -0
- package/esm2022/lib/angular/slider/lib/slider.component.mjs +2020 -0
- package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +20 -0
- package/esm2022/lib/angular/slider/lib/value-helper.mjs +50 -0
- package/esm2022/lib/angular/slider/slider.module.mjs +29 -0
- package/esm2022/lib/angular/toast/toast.module.mjs +17 -0
- package/esm2022/lib/angular/tooltip/tooltip.module.mjs +18 -0
- package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +33 -0
- package/esm2022/lib/angular/utils/scrollbar.service.mjs +79 -0
- package/esm2022/lib/index.mjs +172 -0
- package/fesm2022/design-factory.mjs +5664 -0
- package/fesm2022/design-factory.mjs.map +1 -0
- package/index.d.ts +4 -0
- package/lib/angular/accessibility/accessibility.module.d.ts +10 -0
- package/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.d.ts +13 -0
- package/lib/angular/accessibility/directives/skip-link.directive.d.ts +15 -0
- package/lib/angular/alert/alert.module.d.ts +8 -0
- package/lib/angular/animation/ngbTransition.d.ts +16 -0
- package/lib/angular/animation/util.d.ts +14 -0
- package/lib/angular/card/card-advanced.module.d.ts +8 -0
- package/lib/angular/card/manage-card-selection.directive.d.ts +13 -0
- package/lib/angular/datepicker/closedatepicker.directive.d.ts +10 -0
- package/lib/angular/datepicker/datepicker-keyboard-nav.service.d.ts +7 -0
- package/lib/angular/datepicker/datepicker-range.directive.d.ts +31 -0
- package/lib/angular/datepicker/datepicker-range.service.d.ts +32 -0
- package/lib/angular/datepicker/datepicker.module.d.ts +12 -0
- package/lib/angular/footer/footer.module.d.ts +8 -0
- package/lib/angular/icon/amadeus-icon.d.ts +5 -0
- package/lib/angular/icon/icon.module.d.ts +8 -0
- package/lib/angular/icon/insert/insert-icon.directive.d.ts +12 -0
- package/lib/angular/icon/insert/insert-icon.module.d.ts +8 -0
- package/lib/angular/inputs/click/trigger-click.directive.d.ts +9 -0
- package/lib/angular/inputs/icon/inputicon.directive.d.ts +28 -0
- package/lib/angular/inputs/input-advanced.module.d.ts +10 -0
- package/lib/angular/mediaqueries/ifMedia.directive.d.ts +26 -0
- package/lib/angular/mediaqueries/media.module.d.ts +8 -0
- package/lib/angular/mediaqueries/media.service.d.ts +24 -0
- package/lib/angular/mediaqueries/mediaUtils.service.d.ts +75 -0
- package/lib/angular/modal/modal.service.d.ts +13 -0
- package/lib/angular/popover/config/popover.config.d.ts +8 -0
- package/lib/angular/popover/popover.module.d.ts +7 -0
- package/lib/angular/progressbar/progressbar.component.d.ts +71 -0
- package/lib/angular/progressbar/progressbar.module.d.ts +9 -0
- package/lib/angular/progressindicator/default/default-spinner.component.d.ts +8 -0
- package/lib/angular/progressindicator/progressindicator-backdrop.component.d.ts +8 -0
- package/lib/angular/progressindicator/progressindicator-config.d.ts +54 -0
- package/lib/angular/progressindicator/progressindicator-container.component.d.ts +13 -0
- package/lib/angular/progressindicator/progressindicator-ref.d.ts +9 -0
- package/lib/angular/progressindicator/progressindicator.directive.d.ts +18 -0
- package/lib/angular/progressindicator/progressindicator.module.d.ts +15 -0
- package/lib/angular/progressindicator/progressindicator.service.d.ts +33 -0
- package/lib/angular/right-to-left/directionDetection.service.d.ts +12 -0
- package/lib/angular/selects/events/manage-badge-events.directive.d.ts +16 -0
- package/lib/angular/selects/nav/manage-nav-select.directive.d.ts +20 -0
- package/lib/angular/selects/option-highlight.directive.d.ts +19 -0
- package/lib/angular/selects/select.model.d.ts +1 -0
- package/lib/angular/selects/select.module.d.ts +13 -0
- package/lib/angular/sidenav/dfSideNavAnimation.d.ts +7 -0
- package/lib/angular/sidenav/dfSideNavCollapse.d.ts +48 -0
- package/lib/angular/sidenav/dfSideNavCollapse.module.d.ts +9 -0
- package/lib/angular/sidenav/dfSideNavCollapse.service.d.ts +24 -0
- package/lib/angular/sidenav/dfSideNavCollapseConfig.d.ts +17 -0
- package/lib/angular/sidenav/excludeTrap.directive.d.ts +30 -0
- package/lib/angular/sidenav/manage-sidenav.directive.d.ts +10 -0
- package/lib/angular/sidenav/sidenav-config.d.ts +17 -0
- package/lib/angular/sidenav/sidenav.component.d.ts +43 -0
- package/lib/angular/sidenav/sidenav.module.d.ts +14 -0
- package/lib/angular/sidenav/sidenav.service.d.ts +178 -0
- package/lib/angular/sidenav/sidenavlist.component.d.ts +25 -0
- package/lib/angular/slider/direction/sliderdirection.directive.d.ts +12 -0
- package/lib/angular/slider/lib/change-context.d.ts +6 -0
- package/lib/angular/slider/lib/compatibility-helper.d.ts +7 -0
- package/lib/angular/slider/lib/event-listener-helper.d.ts +13 -0
- package/lib/angular/slider/lib/event-listener.d.ts +7 -0
- package/lib/angular/slider/lib/math-helper.d.ts +6 -0
- package/lib/angular/slider/lib/options.d.ts +241 -0
- package/lib/angular/slider/lib/pointer-type.d.ts +7 -0
- package/lib/angular/slider/lib/slider-element.directive.d.ts +47 -0
- package/lib/angular/slider/lib/slider-handle.directive.d.ts +19 -0
- package/lib/angular/slider/lib/slider-label.directive.d.ts +11 -0
- package/lib/angular/slider/lib/slider.component.d.ts +190 -0
- package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +10 -0
- package/lib/angular/slider/lib/value-helper.d.ts +13 -0
- package/lib/angular/slider/slider.module.d.ts +12 -0
- package/lib/angular/toast/toast.module.d.ts +8 -0
- package/lib/angular/tooltip/tooltip.module.d.ts +9 -0
- package/lib/angular/tooltip/truncate/tooltipTruncate.directive.d.ts +17 -0
- package/lib/angular/utils/scrollbar.service.d.ts +46 -0
- package/lib/index.d.ts +82 -0
- package/package.json +44 -0
- package/schematics/collection.json +10 -0
- package/schematics/migrations/15_0_0/remove-ngx-slider/index.d.ts +2 -0
- package/schematics/migrations/15_0_0/remove-ngx-slider/index.js +113 -0
- package/schematics/migrations/15_0_0/remove-ngx-slider/index.js.map +1 -0
- package/schematics/migrations/helpers.d.ts +13 -0
- package/schematics/migrations/helpers.js +33 -0
- package/schematics/migrations/helpers.js.map +1 -0
- package/schematics/migrations/migration.json +10 -0
- package/schematics/migrations/utils/project_tsconfig_paths.d.ts +16 -0
- package/schematics/migrations/utils/project_tsconfig_paths.js +91 -0
- package/schematics/migrations/utils/project_tsconfig_paths.js.map +1 -0
- package/schematics/migrations/utils/typescript/compiler_host.d.ts +44 -0
- package/schematics/migrations/utils/typescript/compiler_host.js +86 -0
- package/schematics/migrations/utils/typescript/compiler_host.js.map +1 -0
- package/schematics/migrations/utils/typescript/parse_tsconfig.d.ts +9 -0
- package/schematics/migrations/utils/typescript/parse_tsconfig.js +30 -0
- package/schematics/migrations/utils/typescript/parse_tsconfig.js.map +1 -0
- package/schematics/ng-add/index.d.ts +3 -0
- package/schematics/ng-add/index.js +84 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.d.ts +6 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +15 -0
- package/styles/scss/_common.mixins.scss +19 -0
- package/styles/scss/_common.scss +57 -0
- package/styles/scss/_common.variables.scss +62 -0
- package/styles/scss/_variables.scss +56 -0
- package/styles/scss/bootstrap/_maps.scss +50 -0
- package/styles/scss/bootstrap/_mixins-override.scss +69 -0
- package/styles/scss/bootstrap/_rtl-styles-override.scss +125 -0
- package/styles/scss/bootstrap/_utilities-override.scss +19 -0
- package/styles/scss/bootstrap/_variables.scss +1684 -0
- package/styles/scss/components/.gitkeep +0 -0
- package/styles/scss/components/accordion/_accordion.scss +87 -0
- package/styles/scss/components/accordion/_accordion.variables.scss +8 -0
- package/styles/scss/components/alert/_alert.scss +301 -0
- package/styles/scss/components/alert/_alert.variables.scss +70 -0
- package/styles/scss/components/badge/_badge.scss +160 -0
- package/styles/scss/components/badge/_badge.variables.scss +10 -0
- package/styles/scss/components/brand-color/_brand-color.mixins.scss +11 -0
- package/styles/scss/components/brand-color/_brand-color.scss +18 -0
- package/styles/scss/components/brand-color/_brand-color.variables.scss +158 -0
- package/styles/scss/components/breadcrumbs/_breadcrumbs.scss +91 -0
- package/styles/scss/components/breadcrumbs/_breadcrumbs.variables.scss +13 -0
- package/styles/scss/components/button/_button.scss +249 -0
- package/styles/scss/components/button/_button.utils.scss +16 -0
- package/styles/scss/components/button/_button.variables.scss +27 -0
- package/styles/scss/components/button/_button_container.scss +66 -0
- package/styles/scss/components/card/_card.scss +73 -0
- package/styles/scss/components/card/_card.variables.scss +22 -0
- package/styles/scss/components/carousel/_carousel.scss +52 -0
- package/styles/scss/components/carousel/_carousel.variables.scss +11 -0
- package/styles/scss/components/checkbox/_checkbox.scss +37 -0
- package/styles/scss/components/checkbox/_checkbox.variables.scss +6 -0
- package/styles/scss/components/collapse/_collapse.scss +35 -0
- package/styles/scss/components/collapse/_collapse.variables.scss +7 -0
- package/styles/scss/components/datepicker/_datepicker.scss +251 -0
- package/styles/scss/components/datepicker/_datepicker.variables.scss +52 -0
- package/styles/scss/components/dropdown/_dropdown.mixins.scss +26 -0
- package/styles/scss/components/dropdown/_dropdown.scss +81 -0
- package/styles/scss/components/dropdown/_dropdown.variables.scss +18 -0
- package/styles/scss/components/fieldset/_fieldset.scss +6 -0
- package/styles/scss/components/fieldset/_fieldset.variables.scss +2 -0
- package/styles/scss/components/fonts/_font-faces.mixins.scss +525 -0
- package/styles/scss/components/fonts/_fonts-family.scss +98 -0
- package/styles/scss/components/fonts/_fonts.scss +83 -0
- package/styles/scss/components/fonts/_fonts.variables.scss +31 -0
- package/styles/scss/components/fonts/_icon-font.scss +5107 -0
- package/styles/scss/components/fonts/_icon-font.variables.scss +14 -0
- package/styles/scss/components/fonts/_multi-lang.mixins.scss +8 -0
- package/styles/scss/components/fonts/multi-lang/_arabic.mixins.scss +8 -0
- package/styles/scss/components/fonts/multi-lang/_chinese.mixins.scss +12 -0
- package/styles/scss/components/fonts/multi-lang/_cyrillic-extended.mixins.scss +11 -0
- package/styles/scss/components/fonts/multi-lang/_cyrillic.mixins.scss +10 -0
- package/styles/scss/components/fonts/multi-lang/_georgian.mixins.scss +9 -0
- package/styles/scss/components/fonts/multi-lang/_hebrew.mixins.scss +9 -0
- package/styles/scss/components/fonts/multi-lang/_japanese.mixins.scss +23 -0
- package/styles/scss/components/fonts/multi-lang/_korean.mixins.scss +10 -0
- package/styles/scss/components/footer/_footer.scss +23 -0
- package/styles/scss/components/footer/_footer.variables.scss +13 -0
- package/styles/scss/components/form/_form.scss +104 -0
- package/styles/scss/components/form/_form.variables.scss +23 -0
- package/styles/scss/components/icon/_amadeus-icon.scss +39 -0
- package/styles/scss/components/icon/_amadeus-icon.variables.scss +3 -0
- package/styles/scss/components/inputs/_inputs.mixin.scss +51 -0
- package/styles/scss/components/inputs/_inputs.scss +290 -0
- package/styles/scss/components/inputs/_inputs.variables.scss +41 -0
- package/styles/scss/components/link/_link.mixins.scss +190 -0
- package/styles/scss/components/link/_link.scss +88 -0
- package/styles/scss/components/link/_link.variables.scss +55 -0
- package/styles/scss/components/list/_list.scss +15 -0
- package/styles/scss/components/list/_list.variables.scss +4 -0
- package/styles/scss/components/list-group/_list-group.scss +61 -0
- package/styles/scss/components/list-group/_list-group.variables.scss +14 -0
- package/styles/scss/components/media/_media.scss +42 -0
- package/styles/scss/components/media/_media.variables.scss +7 -0
- package/styles/scss/components/modal/_modal.scss +147 -0
- package/styles/scss/components/modal/_modal.variables.scss +23 -0
- package/styles/scss/components/navbar/_navbar.scss +253 -0
- package/styles/scss/components/navbar/_navbar.variables.scss +62 -0
- package/styles/scss/components/pagination/_pagination.scss +195 -0
- package/styles/scss/components/pagination/_pagination.variables.scss +27 -0
- package/styles/scss/components/pagination/_pagination_container.scss +14 -0
- package/styles/scss/components/popover/_popover.mixin.scss +57 -0
- package/styles/scss/components/popover/_popover.scss +25 -0
- package/styles/scss/components/popover/_popover.variables.scss +18 -0
- package/styles/scss/components/popover/_popover_container.scss +156 -0
- package/styles/scss/components/progressbar/_progressbar.scss +74 -0
- package/styles/scss/components/progressbar/_progressbar.variables.scss +13 -0
- package/styles/scss/components/radio/_radio.scss +25 -0
- package/styles/scss/components/radio/_radio.variables.scss +3 -0
- package/styles/scss/components/rating/_rating.scss +81 -0
- package/styles/scss/components/rating/_rating.variables.scss +20 -0
- package/styles/scss/components/scrollspy/_scrollspy.scss +34 -0
- package/styles/scss/components/scrollspy/_scrollspy.variables.scss +11 -0
- package/styles/scss/components/select/_select.scss +734 -0
- package/styles/scss/components/select/_select.variables.scss +85 -0
- package/styles/scss/components/separator/_separator.scss +8 -0
- package/styles/scss/components/separator/_separator.variables.scss +1 -0
- package/styles/scss/components/sidenav/_sidenav.scss +259 -0
- package/styles/scss/components/sidenav/_sidenav.variables.scss +87 -0
- package/styles/scss/components/skip-links/_skip-links.scss +24 -0
- package/styles/scss/components/skip-links/_skip-links.variables.scss +7 -0
- package/styles/scss/components/slider/_slider.scss +407 -0
- package/styles/scss/components/slider/_slider.variables.scss +58 -0
- package/styles/scss/components/speechbubble/_speechbubble.scss +127 -0
- package/styles/scss/components/speechbubble/_speechbubble.variables.scss +19 -0
- package/styles/scss/components/spinner/_spinner.scss +88 -0
- package/styles/scss/components/spinner/_spinner.variables.scss +21 -0
- package/styles/scss/components/spinner/_spinner_container.scss +43 -0
- package/styles/scss/components/stepper/_stepper.mixins.scss +193 -0
- package/styles/scss/components/stepper/_stepper.scss +130 -0
- package/styles/scss/components/stepper/_stepper.variables.scss +63 -0
- package/styles/scss/components/table/_advancedtables.scss +229 -0
- package/styles/scss/components/table/_table.scss +7 -0
- package/styles/scss/components/table/_table.variables.scss +24 -0
- package/styles/scss/components/tabs/_tabs.scss +123 -0
- package/styles/scss/components/tabs/_tabs.variables.scss +32 -0
- package/styles/scss/components/toast/_toast.scss +189 -0
- package/styles/scss/components/toast/_toast.variables.scss +13 -0
- package/styles/scss/components/toggle/_toggle.scss +93 -0
- package/styles/scss/components/toggle/_toggle.variables.scss +17 -0
- package/styles/scss/components/tooltip/_tooltip.scss +3 -0
- package/styles/scss/components/tooltip/_tooltip.variables.scss +5 -0
- package/styles/scss/components/tooltip/_tooltip_container.scss +112 -0
- package/styles/scss/components/typeahead/_typeahead.scss +45 -0
- package/styles/scss/components/typeahead/_typeahead.variables.scss +10 -0
- package/styles/scss/df-styles-namespace.scss +160 -0
- package/styles/scss/df-styles.scss +107 -0
- package/styles/scss/utilities/_common.utilities.scss +70 -0
- package/styles/scss/utilities/_form.mixins.scss +26 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* A configuration service for the [DfSideNavService](#/components/sidenav/api#DfSideNavComponent) component.
|
|
5
|
+
*
|
|
6
|
+
* You can inject this service, typically in your root component, and customize its properties
|
|
7
|
+
* to provide default values for your sidenav used in the application.
|
|
8
|
+
*/
|
|
9
|
+
export class DfSideNavConfig {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.isMinmized = false;
|
|
12
|
+
this.isCollapsed = false;
|
|
13
|
+
this.isPresent = false;
|
|
14
|
+
this.isInMenuOverlay = true;
|
|
15
|
+
this.isAppOverlay = false;
|
|
16
|
+
this.isAppOverlayMode = true;
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavConfig, providedIn: 'root' }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavConfig, decorators: [{
|
|
22
|
+
type: Injectable,
|
|
23
|
+
args: [{ providedIn: 'root' }]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2lkZW5hdi9zaWRlbmF2LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRUUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksQ0FBQztLQUN6Qjs4R0FQWSxlQUFlO2tIQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQSBjb25maWd1cmF0aW9uIHNlcnZpY2UgZm9yIHRoZSBbRGZTaWRlTmF2U2VydmljZV0oIy9jb21wb25lbnRzL3NpZGVuYXYvYXBpI0RmU2lkZU5hdkNvbXBvbmVudCkgY29tcG9uZW50LlxuICpcbiAqIFlvdSBjYW4gaW5qZWN0IHRoaXMgc2VydmljZSwgdHlwaWNhbGx5IGluIHlvdXIgcm9vdCBjb21wb25lbnQsIGFuZCBjdXN0b21pemUgaXRzIHByb3BlcnRpZXNcbiAqIHRvIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHlvdXIgc2lkZW5hdiB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZDb25maWcge1xuICBpc01pbm1pemVkID0gZmFsc2U7XG4gIGlzQ29sbGFwc2VkID0gZmFsc2U7XG4gIGlzUHJlc2VudCA9IGZhbHNlO1xuICBpc0luTWVudU92ZXJsYXkgPSB0cnVlO1xuICBpc0FwcE92ZXJsYXkgPSBmYWxzZTtcbiAgaXNBcHBPdmVybGF5TW9kZSA9IHRydWU7XG59XG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component, ContentChild, Directive, HostBinding, inject } from '@angular/core';
|
|
2
|
+
import { Subscription } from 'rxjs';
|
|
3
|
+
import { DfSideNavService } from './sidenav.service';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { DfSideNavListComponent } from './sidenavlist.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
export class DfSideNavHeaderDirective {
|
|
9
|
+
constructor(templateRef) {
|
|
10
|
+
this.templateRef = templateRef;
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavHeaderDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfSideNavHeaderDirective, isStandalone: true, selector: "ng-template[dfSideNavHeader]", ngImport: i0 }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavHeaderDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{ selector: 'ng-template[dfSideNavHeader]', standalone: true }]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
19
|
+
export class DfSideNavIconDirective {
|
|
20
|
+
constructor(templateRef) {
|
|
21
|
+
this.templateRef = templateRef;
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavIconDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfSideNavIconDirective, isStandalone: true, selector: "ng-template[dfSideNavIcon]", ngImport: i0 }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavIconDirective, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{ selector: 'ng-template[dfSideNavIcon]', standalone: true }]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
30
|
+
export class DfSideNavItemDirective {
|
|
31
|
+
constructor(templateRef) {
|
|
32
|
+
this.templateRef = templateRef;
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfSideNavItemDirective, isStandalone: true, selector: "ng-template[dfSideNavItem]", ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavItemDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{ selector: 'ng-template[dfSideNavItem]', standalone: true }]
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
41
|
+
/**
|
|
42
|
+
* SideNav is a component to provide navigation feature with a panel on the side of your page
|
|
43
|
+
*
|
|
44
|
+
* It supports several options as:
|
|
45
|
+
* - Being in an overlay menu or not
|
|
46
|
+
* - Being collapsed or not
|
|
47
|
+
* - Can be used with or without Angular Router
|
|
48
|
+
* - Can be used with media queries to adjust behavior to different breakpoints (see media section)
|
|
49
|
+
*/
|
|
50
|
+
export class DfSideNavComponent {
|
|
51
|
+
constructor() {
|
|
52
|
+
this.elements = 'df-sidenav-light d-flex flex-column flex-shrink-0';
|
|
53
|
+
this.subscription = new Subscription();
|
|
54
|
+
this.sideNavService = inject(DfSideNavService);
|
|
55
|
+
this.subscription.add(this.sideNavService.isInMenuOverlay$.subscribe((value) => {
|
|
56
|
+
this.overlayClass = value;
|
|
57
|
+
}));
|
|
58
|
+
setTimeout(() => this.sideNavService.setSideNav());
|
|
59
|
+
}
|
|
60
|
+
ngOnDestroy() {
|
|
61
|
+
this.subscription.unsubscribe();
|
|
62
|
+
this.sideNavService.removeSideBar();
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: DfSideNavComponent, isStandalone: true, selector: "df-sidenav", host: { properties: { "class.df-sidenav-menu-overlay": "this.overlayClass", "class": "this.elements" } }, queries: [{ propertyName: "tplHeader", first: true, predicate: DfSideNavHeaderDirective, descendants: true }, { propertyName: "tplIcon", first: true, predicate: DfSideNavIconDirective, descendants: true }, { propertyName: "tplItem", first: true, predicate: DfSideNavItemDirective, descendants: true }], ngImport: i0, template: "<ng-template *ngIf=\"tplHeader\" [ngTemplateOutlet]=\"tplHeader.templateRef\"></ng-template>\n<df-sidenavlist [items]=\"(sideNavService.sideNavItems$ | async) ?? []\" [tplIcon]=\"tplIcon\" [tplItem]=\"tplItem\"></df-sidenavlist>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: DfSideNavListComponent, selector: "df-sidenavlist", inputs: ["items", "tplIcon", "tplItem", "currentItem", "id"] }] }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'df-sidenav', standalone: true, imports: [CommonModule, DfSideNavListComponent], template: "<ng-template *ngIf=\"tplHeader\" [ngTemplateOutlet]=\"tplHeader.templateRef\"></ng-template>\n<df-sidenavlist [items]=\"(sideNavService.sideNavItems$ | async) ?? []\" [tplIcon]=\"tplIcon\" [tplItem]=\"tplItem\"></df-sidenavlist>\n" }]
|
|
70
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tplHeader: [{
|
|
71
|
+
type: ContentChild,
|
|
72
|
+
args: [DfSideNavHeaderDirective, { static: false }]
|
|
73
|
+
}], tplIcon: [{
|
|
74
|
+
type: ContentChild,
|
|
75
|
+
args: [DfSideNavIconDirective, { static: false }]
|
|
76
|
+
}], tplItem: [{
|
|
77
|
+
type: ContentChild,
|
|
78
|
+
args: [DfSideNavItemDirective, { static: false }]
|
|
79
|
+
}], overlayClass: [{
|
|
80
|
+
type: HostBinding,
|
|
81
|
+
args: ['class.df-sidenav-menu-overlay']
|
|
82
|
+
}], elements: [{
|
|
83
|
+
type: HostBinding,
|
|
84
|
+
args: ['class']
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUN6SSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBR2pFLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUcsQ0FBQzs4R0FEekMsd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRHBDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7QUFNekUsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDOzhHQUR6QyxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQU12RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdBQTZCO1FBQTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtJQUFHLENBQUM7OEdBRHpDLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBS3ZFOzs7Ozs7OztHQVFHO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQVM3QjtRQUpzQixhQUFRLEdBQUcsbURBQW1ELENBQUM7UUFDcEUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFHeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQzs4R0FyQlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsdU5BQ2Ysd0JBQXdCLDBFQUN4QixzQkFBc0IsMEVBQ3RCLHNCQUFzQixnREN2Q3RDLHdPQUVBLDJDRGdDWSxZQUFZLCtWQUFFLHNCQUFzQjs7MkZBRW5DLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxZQUFZLGNBRVYsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDOzBFQUdZLFNBQVM7c0JBQW5FLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNBLE9BQU87c0JBQS9ELFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNFLE9BQU87c0JBQS9ELFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNULFlBQVk7c0JBQXpELFdBQVc7dUJBQUMsK0JBQStCO2dCQUN0QixRQUFRO3NCQUE3QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBIb3N0QmluZGluZywgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgaW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZlNpZGVOYXZTZXJ2aWNlIH0gZnJvbSAnLi9zaWRlbmF2LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERmU2lkZU5hdkxpc3RDb21wb25lbnQgfSBmcm9tICcuL3NpZGVuYXZsaXN0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2RmU2lkZU5hdkhlYWRlcl0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRGZTaWRlTmF2SGVhZGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtkZlNpZGVOYXZJY29uXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZJY29uRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtkZlNpZGVOYXZJdGVtXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG4vKipcbiAqIFNpZGVOYXYgaXMgYSBjb21wb25lbnQgdG8gcHJvdmlkZSBuYXZpZ2F0aW9uIGZlYXR1cmUgd2l0aCBhIHBhbmVsIG9uIHRoZSBzaWRlIG9mIHlvdXIgcGFnZVxuICpcbiAqIEl0IHN1cHBvcnRzIHNldmVyYWwgb3B0aW9ucyBhczpcbiAqICAtIEJlaW5nIGluIGFuIG92ZXJsYXkgbWVudSBvciBub3RcbiAqICAtIEJlaW5nIGNvbGxhcHNlZCBvciBub3RcbiAqICAtIENhbiBiZSB1c2VkIHdpdGggb3Igd2l0aG91dCBBbmd1bGFyIFJvdXRlclxuICogIC0gQ2FuIGJlIHVzZWQgd2l0aCBtZWRpYSBxdWVyaWVzIHRvIGFkanVzdCBiZWhhdmlvciB0byBkaWZmZXJlbnQgYnJlYWtwb2ludHMgKHNlZSBtZWRpYSBzZWN0aW9uKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZi1zaWRlbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEZlNpZGVOYXZMaXN0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAQ29udGVudENoaWxkKERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pIHRwbEhlYWRlciE6IERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZChEZlNpZGVOYXZJY29uRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSkgdHBsSWNvbiE6IERmU2lkZU5hdkljb25EaXJlY3RpdmU7XG4gIEBDb250ZW50Q2hpbGQoRGZTaWRlTmF2SXRlbURpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pIHRwbEl0ZW0hOiBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRmLXNpZGVuYXYtbWVudS1vdmVybGF5Jykgb3ZlcmxheUNsYXNzPzogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRzID0gJ2RmLXNpZGVuYXYtbGlnaHQgZC1mbGV4IGZsZXgtY29sdW1uIGZsZXgtc2hyaW5rLTAnO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgc2lkZU5hdlNlcnZpY2UgPSBpbmplY3QoRGZTaWRlTmF2U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5zaWRlTmF2U2VydmljZS5pc0luTWVudU92ZXJsYXkkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5vdmVybGF5Q2xhc3MgPSB2YWx1ZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2lkZU5hdlNlcnZpY2Uuc2V0U2lkZU5hdigpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zaWRlTmF2U2VydmljZS5yZW1vdmVTaWRlQmFyKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAqbmdJZj1cInRwbEhlYWRlclwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRwbEhlYWRlci50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG48ZGYtc2lkZW5hdmxpc3QgW2l0ZW1zXT1cIihzaWRlTmF2U2VydmljZS5zaWRlTmF2SXRlbXMkIHwgYXN5bmMpID8/IFtdXCIgW3RwbEljb25dPVwidHBsSWNvblwiIFt0cGxJdGVtXT1cInRwbEl0ZW1cIj48L2RmLXNpZGVuYXZsaXN0PlxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, DfSideNavItemDirective } from './sidenav.component';
|
|
3
|
+
import { DfManageSideNavDirective } from './manage-sidenav.directive';
|
|
4
|
+
import { DfMediaModule } from '../mediaqueries/media.module';
|
|
5
|
+
import { DfSideNavCollapseModule } from './dfSideNavCollapse.module';
|
|
6
|
+
import { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export { DfSideNavComponent, DfSideNavHeaderDirective, DfSideNavIconDirective, DfSideNavItemDirective } from './sidenav.component';
|
|
9
|
+
export { DfManageSideNavDirective } from './manage-sidenav.directive';
|
|
10
|
+
export { DfExcludeTrapDirective } from '../sidenav/excludeTrap.directive';
|
|
11
|
+
export class DfSideNavModule {
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavModule, imports: [DfManageSideNavDirective,
|
|
14
|
+
DfSideNavComponent,
|
|
15
|
+
DfSideNavHeaderDirective,
|
|
16
|
+
DfExcludeTrapDirective,
|
|
17
|
+
DfSideNavIconDirective,
|
|
18
|
+
DfSideNavItemDirective], exports: [DfManageSideNavDirective,
|
|
19
|
+
DfSideNavComponent,
|
|
20
|
+
DfSideNavHeaderDirective,
|
|
21
|
+
DfExcludeTrapDirective,
|
|
22
|
+
DfSideNavIconDirective,
|
|
23
|
+
DfSideNavItemDirective,
|
|
24
|
+
DfSideNavCollapseModule,
|
|
25
|
+
DfMediaModule] }); }
|
|
26
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavModule, imports: [DfSideNavComponent, DfSideNavCollapseModule,
|
|
27
|
+
DfMediaModule] }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavModule, decorators: [{
|
|
30
|
+
type: NgModule,
|
|
31
|
+
args: [{
|
|
32
|
+
imports: [
|
|
33
|
+
DfManageSideNavDirective,
|
|
34
|
+
DfSideNavComponent,
|
|
35
|
+
DfSideNavHeaderDirective,
|
|
36
|
+
DfExcludeTrapDirective,
|
|
37
|
+
DfSideNavIconDirective,
|
|
38
|
+
DfSideNavItemDirective
|
|
39
|
+
],
|
|
40
|
+
exports: [
|
|
41
|
+
DfManageSideNavDirective,
|
|
42
|
+
DfSideNavComponent,
|
|
43
|
+
DfSideNavHeaderDirective,
|
|
44
|
+
DfExcludeTrapDirective,
|
|
45
|
+
DfSideNavIconDirective,
|
|
46
|
+
DfSideNavItemDirective,
|
|
47
|
+
DfSideNavCollapseModule,
|
|
48
|
+
DfMediaModule
|
|
49
|
+
]
|
|
50
|
+
}]
|
|
51
|
+
}] });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2lkZW5hdi9zaWRlbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRTFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQXNCMUUsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBbEJ4Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQixhQUd0Qix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsYUFBYTsrR0FHSixlQUFlLFlBakJ4QixrQkFBa0IsRUFhbEIsdUJBQXVCO1lBQ3ZCLGFBQWE7OzJGQUdKLGVBQWU7a0JBcEIzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERmU2lkZU5hdkNvbXBvbmVudCxcbiAgRGZTaWRlTmF2SGVhZGVyRGlyZWN0aXZlLFxuICBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLFxuICBEZlNpZGVOYXZJdGVtRGlyZWN0aXZlXG59IGZyb20gJy4vc2lkZW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZNYW5hZ2VTaWRlTmF2RGlyZWN0aXZlIH0gZnJvbSAnLi9tYW5hZ2Utc2lkZW5hdi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGZNZWRpYU1vZHVsZSB9IGZyb20gJy4uL21lZGlhcXVlcmllcy9tZWRpYS5tb2R1bGUnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUgfSBmcm9tICcuL2RmU2lkZU5hdkNvbGxhcHNlLm1vZHVsZSc7XG5pbXBvcnQgeyBEZkV4Y2x1ZGVUcmFwRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2lkZW5hdi9leGNsdWRlVHJhcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQge1xuICBEZlNpZGVOYXZDb21wb25lbnQsXG4gIERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSxcbiAgRGZTaWRlTmF2SWNvbkRpcmVjdGl2ZSxcbiAgRGZTaWRlTmF2SXRlbURpcmVjdGl2ZVxufSBmcm9tICcuL3NpZGVuYXYuY29tcG9uZW50JztcbmV4cG9ydCB7IERmTWFuYWdlU2lkZU5hdkRpcmVjdGl2ZSB9IGZyb20gJy4vbWFuYWdlLXNpZGVuYXYuZGlyZWN0aXZlJztcbmV4cG9ydCB7IERmRXhjbHVkZVRyYXBEaXJlY3RpdmUgfSBmcm9tICcuLi9zaWRlbmF2L2V4Y2x1ZGVUcmFwLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBEZk1hbmFnZVNpZGVOYXZEaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2Q29tcG9uZW50LFxuICAgIERmU2lkZU5hdkhlYWRlckRpcmVjdGl2ZSxcbiAgICBEZkV4Y2x1ZGVUcmFwRGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkljb25EaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2SXRlbURpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGZNYW5hZ2VTaWRlTmF2RGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkNvbXBvbmVudCxcbiAgICBEZlNpZGVOYXZIZWFkZXJEaXJlY3RpdmUsXG4gICAgRGZFeGNsdWRlVHJhcERpcmVjdGl2ZSxcbiAgICBEZlNpZGVOYXZJY29uRGlyZWN0aXZlLFxuICAgIERmU2lkZU5hdkl0ZW1EaXJlY3RpdmUsXG4gICAgRGZTaWRlTmF2Q29sbGFwc2VNb2R1bGUsXG4gICAgRGZNZWRpYU1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERmU2lkZU5hdk1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./sidenav-config";
|
|
5
|
+
export var DfNavItemType;
|
|
6
|
+
(function (DfNavItemType) {
|
|
7
|
+
DfNavItemType[DfNavItemType["subMenus"] = 0] = "subMenus";
|
|
8
|
+
DfNavItemType[DfNavItemType["actionButton"] = 1] = "actionButton";
|
|
9
|
+
DfNavItemType[DfNavItemType["routerLink"] = 2] = "routerLink";
|
|
10
|
+
DfNavItemType[DfNavItemType["link"] = 3] = "link";
|
|
11
|
+
DfNavItemType[DfNavItemType["externalLink"] = 4] = "externalLink";
|
|
12
|
+
DfNavItemType[DfNavItemType["separator"] = 5] = "separator";
|
|
13
|
+
DfNavItemType[DfNavItemType["template"] = 6] = "template";
|
|
14
|
+
DfNavItemType[DfNavItemType["title"] = 7] = "title";
|
|
15
|
+
})(DfNavItemType || (DfNavItemType = {}));
|
|
16
|
+
/**
|
|
17
|
+
* A service for managing the sidenav panel.
|
|
18
|
+
* This service is included at root level
|
|
19
|
+
*
|
|
20
|
+
* Creating a sidenav is straightforward: use [DfSideNavComponent](#/components/sidenav/api#DfSideNavComponent) component
|
|
21
|
+
*/
|
|
22
|
+
export class DfSideNavService {
|
|
23
|
+
constructor(config) {
|
|
24
|
+
this.type = DfNavItemType;
|
|
25
|
+
this._items = [];
|
|
26
|
+
this.subscription = new Subscription();
|
|
27
|
+
this._sideNavItems$ = new BehaviorSubject([]);
|
|
28
|
+
this._isMinmized$ = new BehaviorSubject(config.isMinmized);
|
|
29
|
+
this._isCollapsed$ = new BehaviorSubject(config.isCollapsed);
|
|
30
|
+
this._isPresent$ = new BehaviorSubject(config.isPresent);
|
|
31
|
+
this._isInMenuOverlay$ = new BehaviorSubject(config.isInMenuOverlay);
|
|
32
|
+
this._isAppOverlay$ = new BehaviorSubject(config.isAppOverlay);
|
|
33
|
+
this._activeItem$ = new BehaviorSubject(null);
|
|
34
|
+
this._isAppOverlayMode = config.isAppOverlayMode;
|
|
35
|
+
this.subscription.add(this._isCollapsed$.subscribe(() => {
|
|
36
|
+
this.updateOverLay();
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
ngOnDestroy() {
|
|
40
|
+
this.subscription.unsubscribe();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Use this to init the list of Elements from your sidenav
|
|
44
|
+
*
|
|
45
|
+
*
|
|
46
|
+
* Second option withRouter is to be set to false if you are not passing link string for the angular Router
|
|
47
|
+
* Here we are not deep copying the array --> the function will change it
|
|
48
|
+
*/
|
|
49
|
+
initItems(items, withRouter = true) {
|
|
50
|
+
this._items = items;
|
|
51
|
+
this.addNavItemType(withRouter);
|
|
52
|
+
this.setActiveItem(this._items);
|
|
53
|
+
this.dispatchSideNavItems();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Use this to inactivate the list of Elements from your sidenav
|
|
57
|
+
* isActive properties of all items will be set to false recursively
|
|
58
|
+
*
|
|
59
|
+
*/
|
|
60
|
+
inactiveItems(list) {
|
|
61
|
+
list.forEach(item => {
|
|
62
|
+
item.isActive = false;
|
|
63
|
+
if (item.subMenus) {
|
|
64
|
+
this.inactiveItems(item.subMenus);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
this.dispatchSideNavItems();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Use this to active the item pass as input
|
|
71
|
+
* This function inactivate all the other items of the service
|
|
72
|
+
* It will then dispatch the list of items of the sideNav to activeItem$
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
75
|
+
activeItem(item) {
|
|
76
|
+
this.inactiveItems(this._items);
|
|
77
|
+
item.isActive = true;
|
|
78
|
+
this._activeItem$.next(item);
|
|
79
|
+
this.dispatchSideNavItems();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Getter to know when to put/remove the overlay.
|
|
83
|
+
* `True` in case of overlay needed
|
|
84
|
+
*
|
|
85
|
+
*/
|
|
86
|
+
get isAppOverlay$() {
|
|
87
|
+
return this._isAppOverlay$.asObservable();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Getter to know if the sidenav is in an overlay panel or not
|
|
91
|
+
* `True` in case of overlay panel
|
|
92
|
+
*
|
|
93
|
+
*/
|
|
94
|
+
get isInMenuOverlay$() {
|
|
95
|
+
return this._isInMenuOverlay$.asObservable();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Getter to know the current activeItem a user clicked on
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
get activeItem$() {
|
|
102
|
+
return this._activeItem$.asObservable();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Getter to know if the sideNav is present in the page
|
|
106
|
+
* SideNav may be collapsed here or not
|
|
107
|
+
*
|
|
108
|
+
*/
|
|
109
|
+
get isPresent$() {
|
|
110
|
+
return this._isPresent$.asObservable();
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Future Options
|
|
114
|
+
*/
|
|
115
|
+
get isMinimized$() {
|
|
116
|
+
return this._isMinmized$.asObservable();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Getter to know if the SideNav is collapsed or not
|
|
120
|
+
* If `true` the SideNav is collapsed
|
|
121
|
+
*
|
|
122
|
+
*/
|
|
123
|
+
get isCollapsed$() {
|
|
124
|
+
return this._isCollapsed$.asObservable();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Getter of the SideNav Items after they have beens changed
|
|
128
|
+
*
|
|
129
|
+
*/
|
|
130
|
+
get sideNavItems$() {
|
|
131
|
+
return this._sideNavItems$.asObservable();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Getter to know the mode Apply for the SideNav
|
|
135
|
+
* If `true` the SideNav can be in overlay (but not necessary is).
|
|
136
|
+
*
|
|
137
|
+
*/
|
|
138
|
+
get isAppOverlayMode() {
|
|
139
|
+
return this._isAppOverlayMode;
|
|
140
|
+
}
|
|
141
|
+
// initItems must be used to push new items to the service
|
|
142
|
+
get items() {
|
|
143
|
+
return this._items;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Use this to toggle a SideNav Item (either from expand to collapse or the other way around).
|
|
147
|
+
* isCollapsed attribute of the input item is changed.
|
|
148
|
+
* All items are push again to the stream of items.
|
|
149
|
+
* This is used internally by the SideNav in case of click and Enter on an Item with subMenus
|
|
150
|
+
*/
|
|
151
|
+
toggle(itemInput) {
|
|
152
|
+
itemInput.isCollapsed = !itemInput.isCollapsed;
|
|
153
|
+
this.dispatchSideNavItems();
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
*
|
|
157
|
+
* @param itemInput
|
|
158
|
+
*/
|
|
159
|
+
collapseItem(itemInput) {
|
|
160
|
+
this.collapse(itemInput, this._items);
|
|
161
|
+
this.dispatchSideNavItems();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Use this to collapseAll items
|
|
165
|
+
*/
|
|
166
|
+
collapseAllItems() {
|
|
167
|
+
this.collapseAll(this._items);
|
|
168
|
+
this.dispatchSideNavItems();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Use this to set/unset the SideNav in an Overlay Menu
|
|
172
|
+
* If input is `True` then the SideNav will be in an Overlay Menu
|
|
173
|
+
* (when not collapsed)
|
|
174
|
+
*
|
|
175
|
+
*/
|
|
176
|
+
setInMenuSideNav(on) {
|
|
177
|
+
this._isInMenuOverlay$.next(on);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Use this to collapse the SideNav
|
|
181
|
+
*
|
|
182
|
+
*/
|
|
183
|
+
hideSideNav() {
|
|
184
|
+
this._isCollapsed$.next(true);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Use this to make the SideNav visible (uncollapse)
|
|
188
|
+
*
|
|
189
|
+
*/
|
|
190
|
+
showSideNav() {
|
|
191
|
+
this._isCollapsed$.next(false);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Use this to toggle the SideNav status collapse/visible
|
|
195
|
+
*
|
|
196
|
+
*/
|
|
197
|
+
toggleSideNav() {
|
|
198
|
+
this._isCollapsed$.next(!this._isCollapsed$.value);
|
|
199
|
+
}
|
|
200
|
+
// internal usage from the SideNav. Call when component is destroy
|
|
201
|
+
removeSideBar() {
|
|
202
|
+
this._isCollapsed$.next(false);
|
|
203
|
+
this._isPresent$.next(false);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Use this to set the App Overlay Mode
|
|
207
|
+
* Input `True` if you want to set the AppOverlay
|
|
208
|
+
* An event is send to isAppOverlay$ depending on your status
|
|
209
|
+
* if Input = `True` and isCollapsed = `False` then isAppOverlay$
|
|
210
|
+
* will be `True`
|
|
211
|
+
*
|
|
212
|
+
*/
|
|
213
|
+
setAppOverlayMode(on) {
|
|
214
|
+
this._isAppOverlayMode = on;
|
|
215
|
+
this.updateOverLay();
|
|
216
|
+
}
|
|
217
|
+
// Internal usage to the sidenav component
|
|
218
|
+
// Do not use
|
|
219
|
+
setSideNav() {
|
|
220
|
+
this._isPresent$.next(true);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
*
|
|
224
|
+
* @param itemInput
|
|
225
|
+
* @param itemsList
|
|
226
|
+
*/
|
|
227
|
+
collapse(itemInput, itemsList) {
|
|
228
|
+
for (const item of itemsList) {
|
|
229
|
+
if (item === itemInput && item.subMenus) {
|
|
230
|
+
item.isCollapsed = true;
|
|
231
|
+
return true; // propagate the collapse up
|
|
232
|
+
}
|
|
233
|
+
else if (item === itemInput) {
|
|
234
|
+
return true;
|
|
235
|
+
}
|
|
236
|
+
else if (item.subMenus) {
|
|
237
|
+
const needcol = this.collapse(itemInput, item.subMenus);
|
|
238
|
+
if (needcol) {
|
|
239
|
+
item.isCollapsed = true; // collapse it
|
|
240
|
+
return true; // propagate the collapse up
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
*
|
|
248
|
+
* @param itemsList
|
|
249
|
+
*/
|
|
250
|
+
collapseAll(itemsList) {
|
|
251
|
+
itemsList.forEach(item => {
|
|
252
|
+
if (item.subMenus) {
|
|
253
|
+
item.isCollapsed = true;
|
|
254
|
+
this.collapseAll(item.subMenus);
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
// Only one item at the time must be active
|
|
259
|
+
// Active flag in item is only valid for action button and link
|
|
260
|
+
// Router link does not use this active flag to work
|
|
261
|
+
// It is up to you to inactivateItems when needed when you mix actionButton and router link
|
|
262
|
+
// To avoid more than one active state visible
|
|
263
|
+
setActiveItem(items, foundAnActive = false) {
|
|
264
|
+
let foundActive = foundAnActive;
|
|
265
|
+
items.forEach(item => {
|
|
266
|
+
if (item.isActive && foundAnActive) {
|
|
267
|
+
throw Error('DfSideNavService must be init with only one isActive item');
|
|
268
|
+
}
|
|
269
|
+
else if (item.isActive) {
|
|
270
|
+
this._activeItem$.next(item);
|
|
271
|
+
foundActive = true;
|
|
272
|
+
}
|
|
273
|
+
if (item.subMenus) {
|
|
274
|
+
foundActive = this.setActiveItem(item.subMenus, foundActive);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
return foundActive;
|
|
278
|
+
}
|
|
279
|
+
addNavItemType(withRouter, items = this._items) {
|
|
280
|
+
items.forEach(item => {
|
|
281
|
+
if (!item.type) {
|
|
282
|
+
if (item.subMenus) {
|
|
283
|
+
item.type = DfNavItemType.subMenus;
|
|
284
|
+
}
|
|
285
|
+
else if (item.isExternal) {
|
|
286
|
+
item.type = DfNavItemType.externalLink;
|
|
287
|
+
}
|
|
288
|
+
else if (withRouter) {
|
|
289
|
+
item.type = DfNavItemType.routerLink;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
item.type = DfNavItemType.actionButton;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (item.subMenus) {
|
|
296
|
+
this.addNavItemType(withRouter, item.subMenus);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
dispatchSideNavItems() {
|
|
301
|
+
this._sideNavItems$.next(this._items);
|
|
302
|
+
}
|
|
303
|
+
updateOverLay() {
|
|
304
|
+
this._isAppOverlay$.next(this.isAppOverlayMode && this._isCollapsed$.value === false);
|
|
305
|
+
}
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavService, deps: [{ token: i1.DfSideNavConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
307
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavService, providedIn: 'root' }); }
|
|
308
|
+
}
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfSideNavService, decorators: [{
|
|
310
|
+
type: Injectable,
|
|
311
|
+
args: [{
|
|
312
|
+
providedIn: 'root'
|
|
313
|
+
}]
|
|
314
|
+
}], ctorParameters: function () { return [{ type: i1.DfSideNavConfig }]; } });
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NpZGVuYXYvc2lkZW5hdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFlakUsTUFBTSxDQUFOLElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUN2Qix5REFBUSxDQUFBO0lBQ1IsaUVBQVksQ0FBQTtJQUNaLDZEQUFVLENBQUE7SUFDVixpREFBSSxDQUFBO0lBQ0osaUVBQVksQ0FBQTtJQUNaLDJEQUFTLENBQUE7SUFDVCx5REFBUSxDQUFBO0lBQ1IsbURBQUssQ0FBQTtBQUNQLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QjtBQUVEOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQWEzQixZQUFZLE1BQXVCO1FBWjVCLFNBQUksR0FBRyxhQUFhLENBQUM7UUFTcEIsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFVLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFVLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFVLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQXVCLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQXNCLEVBQUUsVUFBVSxHQUFHLElBQUk7UUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxJQUFxQjtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxJQUFtQjtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsMERBQTBEO0lBQzFELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsU0FBd0I7UUFDN0IsU0FBUyxDQUFDLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUF3QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBVztRQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYTtRQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLGFBQWE7UUFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGlCQUFpQixDQUFDLEVBQVc7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxhQUFhO0lBQ2IsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssUUFBUSxDQUFDLFNBQXdCLEVBQUUsU0FBMEI7UUFDbkUsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDNUIsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQyxDQUFDLDRCQUE0QjthQUMxQztpQkFBTSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hELElBQUksT0FBTyxFQUFFO29CQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsY0FBYztvQkFDdkMsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7aUJBQzFDO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVcsQ0FBQyxTQUEwQjtRQUM1QyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLCtEQUErRDtJQUMvRCxvREFBb0Q7SUFDcEQsMkZBQTJGO0lBQzNGLDhDQUE4QztJQUN0QyxhQUFhLENBQUMsS0FBdUIsRUFBRSxhQUFhLEdBQUcsS0FBSztRQUNsRSxJQUFJLFdBQVcsR0FBRyxhQUFhLENBQUM7UUFDaEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksYUFBYSxFQUFFO2dCQUNoQyxNQUFNLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO2FBQzVFO2lCQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDdEI7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDOUQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBbUIsRUFBRSxRQUF5QixJQUFJLENBQUMsTUFBTTtRQUM5RSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO2lCQUNwQztxQkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztpQkFDeEM7cUJBQU0sSUFBSSxVQUFVLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztpQkFDdEM7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO2lCQUN4QzthQUNGO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN4RixDQUFDOzhHQTdUVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGZTaWRlTmF2Q29uZmlnIH0gZnJvbSAnLi9zaWRlbmF2LWNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGZTaWRlTmF2SXRlbSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgaXNFeHRlcm5hbD86IGJvb2xlYW47XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xuICBicmVha3BvaW50cz86IHN0cmluZ1tdO1xuICBzdWJNZW51cz86IERmU2lkZU5hdkl0ZW1bXTtcbiAgdHlwZT86IERmTmF2SXRlbVR5cGU7XG59XG5cbmV4cG9ydCBlbnVtIERmTmF2SXRlbVR5cGUge1xuICBzdWJNZW51cyxcbiAgYWN0aW9uQnV0dG9uLFxuICByb3V0ZXJMaW5rLFxuICBsaW5rLFxuICBleHRlcm5hbExpbmssXG4gIHNlcGFyYXRvcixcbiAgdGVtcGxhdGUsXG4gIHRpdGxlXG59XG5cbi8qKlxuICogQSBzZXJ2aWNlIGZvciBtYW5hZ2luZyB0aGUgc2lkZW5hdiBwYW5lbC5cbiAqIFRoaXMgc2VydmljZSBpcyBpbmNsdWRlZCBhdCByb290IGxldmVsXG4gKlxuICogQ3JlYXRpbmcgYSBzaWRlbmF2IGlzIHN0cmFpZ2h0Zm9yd2FyZDogdXNlIFtEZlNpZGVOYXZDb21wb25lbnRdKCMvY29tcG9uZW50cy9zaWRlbmF2L2FwaSNEZlNpZGVOYXZDb21wb25lbnQpIGNvbXBvbmVudFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZlNpZGVOYXZTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHR5cGUgPSBEZk5hdkl0ZW1UeXBlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaWRlTmF2SXRlbXMkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc01pbm1pemVkJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNDb2xsYXBzZWQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc1ByZXNlbnQkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVJdGVtJDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNJbk1lbnVPdmVybGF5JDtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNBcHBPdmVybGF5JDtcbiAgcHJpdmF0ZSBfaXNBcHBPdmVybGF5TW9kZTtcbiAgcHJpdmF0ZSBfaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRGZTaWRlTmF2Q29uZmlnKSB7XG4gICAgdGhpcy5fc2lkZU5hdkl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGZTaWRlTmF2SXRlbVtdPihbXSk7XG4gICAgdGhpcy5faXNNaW5taXplZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc01pbm1pemVkKTtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGNvbmZpZy5pc0NvbGxhcHNlZCk7XG4gICAgdGhpcy5faXNQcmVzZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzUHJlc2VudCk7XG4gICAgdGhpcy5faXNJbk1lbnVPdmVybGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzSW5NZW51T3ZlcmxheSk7XG4gICAgdGhpcy5faXNBcHBPdmVybGF5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oY29uZmlnLmlzQXBwT3ZlcmxheSk7XG4gICAgdGhpcy5fYWN0aXZlSXRlbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERmU2lkZU5hdkl0ZW0gfCBudWxsPihudWxsKTtcbiAgICB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlID0gY29uZmlnLmlzQXBwT3ZlcmxheU1vZGU7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5faXNDb2xsYXBzZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlT3ZlckxheSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbml0IHRoZSBsaXN0IG9mIEVsZW1lbnRzIGZyb20geW91ciBzaWRlbmF2XG4gICAqXG4gICAqXG4gICAqIFNlY29uZCBvcHRpb24gd2l0aFJvdXRlciBpcyB0byBiZSBzZXQgdG8gZmFsc2UgaWYgeW91IGFyZSBub3QgcGFzc2luZyBsaW5rIHN0cmluZyBmb3IgdGhlIGFuZ3VsYXIgUm91dGVyXG4gICAqIEhlcmUgd2UgYXJlIG5vdCBkZWVwIGNvcHlpbmcgdGhlIGFycmF5IC0tPiB0aGUgZnVuY3Rpb24gd2lsbCBjaGFuZ2UgaXRcbiAgICovXG4gIGluaXRJdGVtcyhpdGVtczogRGZTaWRlTmF2SXRlbVtdLCB3aXRoUm91dGVyID0gdHJ1ZSkge1xuICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgdGhpcy5hZGROYXZJdGVtVHlwZSh3aXRoUm91dGVyKTtcbiAgICB0aGlzLnNldEFjdGl2ZUl0ZW0odGhpcy5faXRlbXMpO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBpbmFjdGl2YXRlIHRoZSBsaXN0IG9mIEVsZW1lbnRzIGZyb20geW91ciBzaWRlbmF2XG4gICAqIGlzQWN0aXZlIHByb3BlcnRpZXMgb2YgYWxsIGl0ZW1zIHdpbGwgYmUgc2V0IHRvIGZhbHNlIHJlY3Vyc2l2ZWx5XG4gICAqXG4gICAqL1xuICBpbmFjdGl2ZUl0ZW1zKGxpc3Q6IERmU2lkZU5hdkl0ZW1bXSkge1xuICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGl0ZW0uaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIHRoaXMuaW5hY3RpdmVJdGVtcyhpdGVtLnN1Yk1lbnVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmRpc3BhdGNoU2lkZU5hdkl0ZW1zKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gYWN0aXZlIHRoZSBpdGVtIHBhc3MgYXMgaW5wdXRcbiAgICogVGhpcyBmdW5jdGlvbiBpbmFjdGl2YXRlIGFsbCB0aGUgb3RoZXIgaXRlbXMgb2YgdGhlIHNlcnZpY2VcbiAgICogSXQgd2lsbCB0aGVuIGRpc3BhdGNoIHRoZSBsaXN0IG9mIGl0ZW1zIG9mIHRoZSBzaWRlTmF2IHRvIGFjdGl2ZUl0ZW0kXG4gICAqXG4gICAqL1xuICBhY3RpdmVJdGVtKGl0ZW06IERmU2lkZU5hdkl0ZW0pIHtcbiAgICB0aGlzLmluYWN0aXZlSXRlbXModGhpcy5faXRlbXMpO1xuICAgIGl0ZW0uaXNBY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHdoZW4gdG8gcHV0L3JlbW92ZSB0aGUgb3ZlcmxheS5cbiAgICogYFRydWVgIGluIGNhc2Ugb2Ygb3ZlcmxheSBuZWVkZWRcbiAgICpcbiAgICovXG4gIGdldCBpc0FwcE92ZXJsYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0FwcE92ZXJsYXkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBzaWRlbmF2IGlzIGluIGFuIG92ZXJsYXkgcGFuZWwgb3Igbm90XG4gICAqIGBUcnVlYCBpbiBjYXNlIG9mIG92ZXJsYXkgcGFuZWxcbiAgICpcbiAgICovXG4gIGdldCBpc0luTWVudU92ZXJsYXkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0luTWVudU92ZXJsYXkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHRoZSBjdXJyZW50IGFjdGl2ZUl0ZW0gYSB1c2VyIGNsaWNrZWQgb25cbiAgICpcbiAgICovXG4gIGdldCBhY3RpdmVJdGVtJCgpOiBPYnNlcnZhYmxlPERmU2lkZU5hdkl0ZW0gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUl0ZW0kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IGlmIHRoZSBzaWRlTmF2IGlzIHByZXNlbnQgaW4gdGhlIHBhZ2VcbiAgICogU2lkZU5hdiBtYXkgYmUgY29sbGFwc2VkIGhlcmUgb3Igbm90XG4gICAqXG4gICAqL1xuICBnZXQgaXNQcmVzZW50JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNQcmVzZW50JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdXR1cmUgT3B0aW9uc1xuICAgKi9cbiAgZ2V0IGlzTWluaW1pemVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNNaW5taXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIHRvIGtub3cgaWYgdGhlIFNpZGVOYXYgaXMgY29sbGFwc2VkIG9yIG5vdFxuICAgKiBJZiBgdHJ1ZWAgdGhlIFNpZGVOYXYgaXMgY29sbGFwc2VkXG4gICAqXG4gICAqL1xuICBnZXQgaXNDb2xsYXBzZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9pc0NvbGxhcHNlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIG9mIHRoZSBTaWRlTmF2IEl0ZW1zIGFmdGVyIHRoZXkgaGF2ZSBiZWVucyBjaGFuZ2VkXG4gICAqXG4gICAqL1xuICBnZXQgc2lkZU5hdkl0ZW1zJCgpOiBPYnNlcnZhYmxlPERmU2lkZU5hdkl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLl9zaWRlTmF2SXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciB0byBrbm93IHRoZSBtb2RlIEFwcGx5IGZvciB0aGUgU2lkZU5hdlxuICAgKiBJZiBgdHJ1ZWAgdGhlIFNpZGVOYXYgY2FuIGJlIGluIG92ZXJsYXkgKGJ1dCBub3QgbmVjZXNzYXJ5IGlzKS5cbiAgICpcbiAgICovXG4gIGdldCBpc0FwcE92ZXJsYXlNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9pc0FwcE92ZXJsYXlNb2RlO1xuICB9XG5cbiAgLy8gaW5pdEl0ZW1zIG11c3QgYmUgdXNlZCB0byBwdXNoIG5ldyBpdGVtcyB0byB0aGUgc2VydmljZVxuICBnZXQgaXRlbXMoKTogRGZTaWRlTmF2SXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gdG9nZ2xlIGEgU2lkZU5hdiBJdGVtIChlaXRoZXIgZnJvbSBleHBhbmQgdG8gY29sbGFwc2Ugb3IgdGhlIG90aGVyIHdheSBhcm91bmQpLlxuICAgKiBpc0NvbGxhcHNlZCBhdHRyaWJ1dGUgb2YgdGhlIGlucHV0IGl0ZW0gaXMgY2hhbmdlZC5cbiAgICogQWxsIGl0ZW1zIGFyZSBwdXNoIGFnYWluIHRvIHRoZSBzdHJlYW0gb2YgaXRlbXMuXG4gICAqIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBTaWRlTmF2IGluIGNhc2Ugb2YgY2xpY2sgYW5kIEVudGVyIG9uIGFuIEl0ZW0gd2l0aCBzdWJNZW51c1xuICAgKi9cbiAgdG9nZ2xlKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSkge1xuICAgIGl0ZW1JbnB1dC5pc0NvbGxhcHNlZCA9ICFpdGVtSW5wdXQuaXNDb2xsYXBzZWQ7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gaXRlbUlucHV0IFxuICAgKi9cbiAgY29sbGFwc2VJdGVtKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSkge1xuICAgIHRoaXMuY29sbGFwc2UoaXRlbUlucHV0LCB0aGlzLl9pdGVtcyk7XG4gICAgdGhpcy5kaXNwYXRjaFNpZGVOYXZJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIGNvbGxhcHNlQWxsIGl0ZW1zXG4gICAqL1xuICBjb2xsYXBzZUFsbEl0ZW1zKCkge1xuICAgIHRoaXMuY29sbGFwc2VBbGwodGhpcy5faXRlbXMpO1xuICAgIHRoaXMuZGlzcGF0Y2hTaWRlTmF2SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBzZXQvdW5zZXQgdGhlIFNpZGVOYXYgaW4gYW4gT3ZlcmxheSBNZW51XG4gICAqIElmIGlucHV0IGlzIGBUcnVlYCB0aGVuIHRoZSBTaWRlTmF2IHdpbGwgYmUgaW4gYW4gT3ZlcmxheSBNZW51XG4gICAqICh3aGVuIG5vdCBjb2xsYXBzZWQpXG4gICAqXG4gICAqL1xuICBzZXRJbk1lbnVTaWRlTmF2KG9uOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNJbk1lbnVPdmVybGF5JC5uZXh0KG9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byBjb2xsYXBzZSB0aGUgU2lkZU5hdlxuICAgKlxuICAgKi9cbiAgaGlkZVNpZGVOYXYoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoaXMgdG8gbWFrZSB0aGUgU2lkZU5hdiB2aXNpYmxlICh1bmNvbGxhcHNlKVxuICAgKlxuICAgKi9cbiAgc2hvd1NpZGVOYXYoKSB7XG4gICAgdGhpcy5faXNDb2xsYXBzZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHRvZ2dsZSB0aGUgU2lkZU5hdiBzdGF0dXMgY29sbGFwc2UvdmlzaWJsZVxuICAgKlxuICAgKi9cbiAgdG9nZ2xlU2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc0NvbGxhcHNlZCQubmV4dCghdGhpcy5faXNDb2xsYXBzZWQkLnZhbHVlKTtcbiAgfVxuXG4gIC8vIGludGVybmFsIHVzYWdlIGZyb20gdGhlIFNpZGVOYXYuIENhbGwgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveVxuICByZW1vdmVTaWRlQmFyKCkge1xuICAgIHRoaXMuX2lzQ29sbGFwc2VkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLl9pc1ByZXNlbnQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGlzIHRvIHNldCB0aGUgQXBwIE92ZXJsYXkgTW9kZVxuICAgKiBJbnB1dCBgVHJ1ZWAgaWYgeW91IHdhbnQgdG8gc2V0IHRoZSBBcHBPdmVybGF5XG4gICAqIEFuIGV2ZW50IGlzIHNlbmQgdG8gaXNBcHBPdmVybGF5JCBkZXBlbmRpbmcgb24geW91ciBzdGF0dXNcbiAgICogaWYgSW5wdXQgPSBgVHJ1ZWAgYW5kIGlzQ29sbGFwc2VkID0gYEZhbHNlYCB0aGVuIGlzQXBwT3ZlcmxheSRcbiAgICogd2lsbCBiZSBgVHJ1ZWBcbiAgICpcbiAgICovXG4gIHNldEFwcE92ZXJsYXlNb2RlKG9uOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNBcHBPdmVybGF5TW9kZSA9IG9uO1xuICAgIHRoaXMudXBkYXRlT3ZlckxheSgpO1xuICB9XG5cbiAgLy8gSW50ZXJuYWwgdXNhZ2UgdG8gdGhlIHNpZGVuYXYgY29tcG9uZW50XG4gIC8vIERvIG5vdCB1c2VcbiAgc2V0U2lkZU5hdigpIHtcbiAgICB0aGlzLl9pc1ByZXNlbnQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogXG4gICAqIEBwYXJhbSBpdGVtSW5wdXQgXG4gICAqIEBwYXJhbSBpdGVtc0xpc3QgXG4gICAqL1xuICBwcml2YXRlIGNvbGxhcHNlKGl0ZW1JbnB1dDogRGZTaWRlTmF2SXRlbSwgaXRlbXNMaXN0OiBEZlNpZGVOYXZJdGVtW10pIDogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zTGlzdCkge1xuICAgICAgaWYgKGl0ZW0gPT09IGl0ZW1JbnB1dCAmJiBpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJvcGFnYXRlIHRoZSBjb2xsYXBzZSB1cFxuICAgICAgfSBlbHNlIGlmIChpdGVtID09PSBpdGVtSW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgY29uc3QgbmVlZGNvbCA9IHRoaXMuY29sbGFwc2UoaXRlbUlucHV0LCBpdGVtLnN1Yk1lbnVzKTtcbiAgICAgICAgaWYgKG5lZWRjb2wpIHtcbiAgICAgICAgICBpdGVtLmlzQ29sbGFwc2VkID0gdHJ1ZTsgLy8gY29sbGFwc2UgaXRcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gcHJvcGFnYXRlIHRoZSBjb2xsYXBzZSB1cFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIGl0ZW1zTGlzdCBcbiAgICovXG4gIHByaXZhdGUgY29sbGFwc2VBbGwoaXRlbXNMaXN0OiBEZlNpZGVOYXZJdGVtW10pIHtcbiAgICBpdGVtc0xpc3QuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgIGl0ZW0uaXNDb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlQWxsKGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gT25seSBvbmUgaXRlbSBhdCB0aGUgdGltZSBtdXN0IGJlIGFjdGl2ZVxuICAvLyBBY3RpdmUgZmxhZyBpbiBpdGVtIGlzIG9ubHkgdmFsaWQgZm9yIGFjdGlvbiBidXR0b24gYW5kIGxpbmtcbiAgLy8gUm91dGVyIGxpbmsgZG9lcyBub3QgdXNlIHRoaXMgYWN0aXZlIGZsYWcgdG8gd29ya1xuICAvLyBJdCBpcyB1cCB0byB5b3UgdG8gaW5hY3RpdmF0ZUl0ZW1zIHdoZW4gbmVlZGVkIHdoZW4geW91IG1peCBhY3Rpb25CdXR0b24gYW5kIHJvdXRlciBsaW5rXG4gIC8vIFRvIGF2b2lkIG1vcmUgdGhhbiBvbmUgYWN0aXZlIHN0YXRlIHZpc2libGVcbiAgcHJpdmF0ZSBzZXRBY3RpdmVJdGVtKGl0ZW1zIDogRGZTaWRlTmF2SXRlbVtdLCBmb3VuZEFuQWN0aXZlID0gZmFsc2UpIDogYm9vbGVhbiB7XG4gICAgbGV0IGZvdW5kQWN0aXZlID0gZm91bmRBbkFjdGl2ZTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0uaXNBY3RpdmUgJiYgZm91bmRBbkFjdGl2ZSkge1xuICAgICAgICAgIHRocm93IEVycm9yKCdEZlNpZGVOYXZTZXJ2aWNlIG11c3QgYmUgaW5pdCB3aXRoIG9ubHkgb25lIGlzQWN0aXZlIGl0ZW0nKTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbS5pc0FjdGl2ZSkge1xuICAgICAgICAgIHRoaXMuX2FjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICAgICAgZm91bmRBY3RpdmUgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW0uc3ViTWVudXMpIHtcbiAgICAgICAgZm91bmRBY3RpdmUgPSB0aGlzLnNldEFjdGl2ZUl0ZW0oaXRlbS5zdWJNZW51cywgZm91bmRBY3RpdmUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3VuZEFjdGl2ZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTmF2SXRlbVR5cGUod2l0aFJvdXRlcjogYm9vbGVhbiwgaXRlbXM6IERmU2lkZU5hdkl0ZW1bXSA9IHRoaXMuX2l0ZW1zKSB7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICghaXRlbS50eXBlKSB7XG4gICAgICAgIGlmIChpdGVtLnN1Yk1lbnVzKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5zdWJNZW51cztcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlzRXh0ZXJuYWwpIHtcbiAgICAgICAgICBpdGVtLnR5cGUgPSBEZk5hdkl0ZW1UeXBlLmV4dGVybmFsTGluaztcbiAgICAgICAgfSBlbHNlIGlmICh3aXRoUm91dGVyKSB7XG4gICAgICAgICAgaXRlbS50eXBlID0gRGZOYXZJdGVtVHlwZS5yb3V0ZXJMaW5rO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0udHlwZSA9IERmTmF2SXRlbVR5cGUuYWN0aW9uQnV0dG9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXRlbS5zdWJNZW51cykge1xuICAgICAgICB0aGlzLmFkZE5hdkl0ZW1UeXBlKHdpdGhSb3V0ZXIsIGl0ZW0uc3ViTWVudXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaFNpZGVOYXZJdGVtcygpIHtcbiAgICB0aGlzLl9zaWRlTmF2SXRlbXMkLm5leHQodGhpcy5faXRlbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPdmVyTGF5KCkge1xuICAgIHRoaXMuX2lzQXBwT3ZlcmxheSQubmV4dCh0aGlzLmlzQXBwT3ZlcmxheU1vZGUgJiYgdGhpcy5faXNDb2xsYXBzZWQkLnZhbHVlID09PSBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
|