@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,46 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged, map, switchMap } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./mediaUtils.service";
|
|
5
|
+
/**
|
|
6
|
+
* Services you can use to get indication about the current width screen of your application
|
|
7
|
+
* the matchMedia JS feature (https://developer.mozilla.org/fr/docs/Web/API/Window/matchMedia)
|
|
8
|
+
*/
|
|
9
|
+
export class DfMedia {
|
|
10
|
+
constructor(mediaObserver, _breakPointsService) {
|
|
11
|
+
this.mediaObserver = mediaObserver;
|
|
12
|
+
this._breakPointsService = _breakPointsService;
|
|
13
|
+
}
|
|
14
|
+
initQueries(mediaOrBreakpoints, breakPoints = {}) {
|
|
15
|
+
const queries = [];
|
|
16
|
+
if (Array.isArray(mediaOrBreakpoints)) {
|
|
17
|
+
for (const el of mediaOrBreakpoints) {
|
|
18
|
+
queries.push(breakPoints[el] ? breakPoints[el] : el);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
queries.push(breakPoints[mediaOrBreakpoints] ? breakPoints[mediaOrBreakpoints] : mediaOrBreakpoints);
|
|
23
|
+
}
|
|
24
|
+
return queries;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Getter to have the observable indication if you are or not in the current scope of your queries
|
|
28
|
+
* If one queries is matching result is `True` otherwise result is `False`
|
|
29
|
+
* @param mediaOrBreakpoints either media query string/Array of string or/and in case of BS usage a
|
|
30
|
+
* string/Array of string of the breakpoints name (sm...).
|
|
31
|
+
*/
|
|
32
|
+
getObservable(mediaOrBreakpoints) {
|
|
33
|
+
return this._breakPointsService.breakPoints$.pipe(map(breakpoints => {
|
|
34
|
+
return breakpoints ? this.initQueries(mediaOrBreakpoints, breakpoints) : this.initQueries(mediaOrBreakpoints);
|
|
35
|
+
}), switchMap(query => {
|
|
36
|
+
return this.mediaObserver.observe(query);
|
|
37
|
+
}), map(value => value.matches), distinctUntilChanged());
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMedia, deps: [{ token: i1.DfMediaObserver }, { token: i1.DfBreakpoints }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMedia, providedIn: 'root' }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMedia, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{ providedIn: 'root' }]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i1.DfMediaObserver }, { type: i1.DfBreakpoints }]; } });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9tZWRpYXF1ZXJpZXMvbWVkaWEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUd0RTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sT0FBTztJQUNsQixZQUE2QixhQUE4QixFQUFtQixtQkFBa0M7UUFBbkYsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQW1CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBZTtJQUFHLENBQUM7SUFFcEgsV0FBVyxDQUFDLGtCQUFxQyxFQUFFLGNBQXlDLEVBQUU7UUFDNUYsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3JDLEtBQUssTUFBTSxFQUFFLElBQUksa0JBQWtCLEVBQUU7Z0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3REO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3RHO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsYUFBYSxDQUFDLGtCQUFxQztRQUNqRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMvQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQzNCLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFDSixDQUFDOzhHQWhDVSxPQUFPO2tIQUFQLE9BQU8sY0FETSxNQUFNOzsyRkFDbkIsT0FBTztrQkFEbkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEZkJyZWFrcG9pbnRzLCBEZk1lZGlhT2JzZXJ2ZXIgfSBmcm9tICcuL21lZGlhVXRpbHMuc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZXMgeW91IGNhbiB1c2UgdG8gZ2V0IGluZGljYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgd2lkdGggc2NyZWVuIG9mIHlvdXIgYXBwbGljYXRpb25cbiAqIHRoZSBtYXRjaE1lZGlhIEpTIGZlYXR1cmUgKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2ZyL2RvY3MvV2ViL0FQSS9XaW5kb3cvbWF0Y2hNZWRpYSlcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEZk1lZGlhIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtZWRpYU9ic2VydmVyOiBEZk1lZGlhT2JzZXJ2ZXIsIHByaXZhdGUgcmVhZG9ubHkgX2JyZWFrUG9pbnRzU2VydmljZTogRGZCcmVha3BvaW50cykge31cblxuICBpbml0UXVlcmllcyhtZWRpYU9yQnJlYWtwb2ludHM6IHN0cmluZyB8IHN0cmluZ1tdLCBicmVha1BvaW50czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHF1ZXJpZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobWVkaWFPckJyZWFrcG9pbnRzKSkge1xuICAgICAgZm9yIChjb25zdCBlbCBvZiBtZWRpYU9yQnJlYWtwb2ludHMpIHtcbiAgICAgICAgcXVlcmllcy5wdXNoKGJyZWFrUG9pbnRzW2VsXSA/IGJyZWFrUG9pbnRzW2VsXSA6IGVsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcXVlcmllcy5wdXNoKGJyZWFrUG9pbnRzW21lZGlhT3JCcmVha3BvaW50c10gPyBicmVha1BvaW50c1ttZWRpYU9yQnJlYWtwb2ludHNdIDogbWVkaWFPckJyZWFrcG9pbnRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJpZXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0dGVyIHRvIGhhdmUgdGhlIG9ic2VydmFibGUgaW5kaWNhdGlvbiBpZiB5b3UgYXJlIG9yIG5vdCBpbiB0aGUgY3VycmVudCBzY29wZSBvZiB5b3VyIHF1ZXJpZXNcbiAgICogSWYgb25lIHF1ZXJpZXMgaXMgbWF0Y2hpbmcgcmVzdWx0IGlzIGBUcnVlYCBvdGhlcndpc2UgcmVzdWx0IGlzIGBGYWxzZWBcbiAgICogQHBhcmFtIG1lZGlhT3JCcmVha3BvaW50cyBlaXRoZXIgbWVkaWEgcXVlcnkgc3RyaW5nL0FycmF5IG9mIHN0cmluZyBvci9hbmQgaW4gY2FzZSBvZiBCUyB1c2FnZSBhXG4gICAqIHN0cmluZy9BcnJheSBvZiBzdHJpbmcgb2YgdGhlIGJyZWFrcG9pbnRzIG5hbWUgKHNtLi4uKS5cbiAgICovXG4gIGdldE9ic2VydmFibGUobWVkaWFPckJyZWFrcG9pbnRzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9icmVha1BvaW50c1NlcnZpY2UuYnJlYWtQb2ludHMkLnBpcGUoXG4gICAgICBtYXAoYnJlYWtwb2ludHMgPT4ge1xuICAgICAgICByZXR1cm4gYnJlYWtwb2ludHMgPyB0aGlzLmluaXRRdWVyaWVzKG1lZGlhT3JCcmVha3BvaW50cywgYnJlYWtwb2ludHMpIDogdGhpcy5pbml0UXVlcmllcyhtZWRpYU9yQnJlYWtwb2ludHMpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAocXVlcnkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZWRpYU9ic2VydmVyLm9ic2VydmUocXVlcnkpO1xuICAgICAgfSksXG4gICAgICBtYXAodmFsdWUgPT4gdmFsdWUubWF0Y2hlcyksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Inject, Injectable, InjectionToken, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, combineLatest, fromEvent, Subscription } from 'rxjs';
|
|
4
|
+
import { map, take } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
// Default DF breakpoints
|
|
7
|
+
export const DF_BREAKPOINTS_VAR_DEFAULT = {
|
|
8
|
+
xs: '--df-breakpoint-xs',
|
|
9
|
+
sm: '--df-breakpoint-sm',
|
|
10
|
+
md: '--df-breakpoint-md',
|
|
11
|
+
lg: '--df-breakpoint-lg',
|
|
12
|
+
xl: '--df-breakpoint-xl',
|
|
13
|
+
xxl: '--df-breakpoint-xxl',
|
|
14
|
+
xxxl: '--df-breakpoint-xxxl'
|
|
15
|
+
};
|
|
16
|
+
export const BREAKPOINTS_VARS = new InjectionToken('Bootstrap Breakpoints', {
|
|
17
|
+
providedIn: 'root',
|
|
18
|
+
factory() {
|
|
19
|
+
return DF_BREAKPOINTS_VAR_DEFAULT;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export class DfBreakpoints {
|
|
23
|
+
constructor(_breakPointsVar, platformID) {
|
|
24
|
+
this._breakPointsVar = _breakPointsVar;
|
|
25
|
+
this.platformID = platformID;
|
|
26
|
+
this._breakPoints$ = new BehaviorSubject(null);
|
|
27
|
+
this.initBreakpoints();
|
|
28
|
+
}
|
|
29
|
+
get breakPoints$() {
|
|
30
|
+
return this._breakPoints$.asObservable();
|
|
31
|
+
}
|
|
32
|
+
initBreakpoints() {
|
|
33
|
+
let breakPoints = null;
|
|
34
|
+
if (isPlatformBrowser(this.platformID) && this._breakPoints$.value === null) {
|
|
35
|
+
// we are in a browser so CSS variable are accessible
|
|
36
|
+
// we init the BP only once
|
|
37
|
+
const styles = window.getComputedStyle(document.documentElement);
|
|
38
|
+
const bpArray = [];
|
|
39
|
+
for (const el of Object.keys(this._breakPointsVar)) {
|
|
40
|
+
const curValue = this._breakPointsVar[el];
|
|
41
|
+
const bpValue = Number.parseInt(styles.getPropertyValue(curValue), 10);
|
|
42
|
+
if (isNaN(bpValue)) {
|
|
43
|
+
// We should never enter here. Only if people did not put the correct list of CSS vars...
|
|
44
|
+
// Or if the CSS is not arrived yet.
|
|
45
|
+
// What should we do then?
|
|
46
|
+
// TODO init from the default list provided if we want to?
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
bpArray.push([el, bpValue]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
breakPoints = this.generate(bpArray);
|
|
53
|
+
// In case the first page contains the directive and the CSS vars are not available
|
|
54
|
+
// We may need to launch a second init at load time.
|
|
55
|
+
if (Object.keys(breakPoints).length === 0) {
|
|
56
|
+
fromEvent(window, 'load')
|
|
57
|
+
.pipe(take(1))
|
|
58
|
+
.subscribe(() => {
|
|
59
|
+
// Init once as the service is available everywhere
|
|
60
|
+
// We do not check if the CSS variable are changing over time
|
|
61
|
+
// here onload the CSS var should be available
|
|
62
|
+
this.initBreakpoints();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
this._breakPoints$.next(breakPoints);
|
|
67
|
+
}
|
|
68
|
+
// Utilities to use if you want to create your own queries with your values.
|
|
69
|
+
// sizes is an array of array BreakPoints with sizes[0] --> identifier of the BreakPoint
|
|
70
|
+
// sizes[1] px value of the BreakPoint
|
|
71
|
+
generate(sizes) {
|
|
72
|
+
sizes = sizes.sort((a, b) => a[1] - b[1]);
|
|
73
|
+
const dict = {};
|
|
74
|
+
for (let i = 0; i < sizes.length; i++) {
|
|
75
|
+
const name = sizes[i][0];
|
|
76
|
+
const min = sizes[i][1];
|
|
77
|
+
const max = i === sizes.length - 1 ? undefined : sizes[i + 1][1];
|
|
78
|
+
if (min === 0) {
|
|
79
|
+
dict[name] = `(max-width: ${max - 0.01}px)`;
|
|
80
|
+
}
|
|
81
|
+
else if (max) {
|
|
82
|
+
dict[name] = `(max-width: ${max - 0.01}px) and (min-width: ${min}px)`;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
dict[name] = `(min-width: ${min}px)`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return dict;
|
|
89
|
+
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfBreakpoints, deps: [{ token: BREAKPOINTS_VARS }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
91
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfBreakpoints, providedIn: 'root' }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfBreakpoints, decorators: [{
|
|
94
|
+
type: Injectable,
|
|
95
|
+
args: [{ providedIn: 'root' }]
|
|
96
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
97
|
+
type: Inject,
|
|
98
|
+
args: [BREAKPOINTS_VARS]
|
|
99
|
+
}] }, { type: Object, decorators: [{
|
|
100
|
+
type: Inject,
|
|
101
|
+
args: [PLATFORM_ID]
|
|
102
|
+
}] }]; } });
|
|
103
|
+
export class DfMediaQuery {
|
|
104
|
+
constructor(platformId) {
|
|
105
|
+
this._isBrowser = isPlatformBrowser(platformId);
|
|
106
|
+
}
|
|
107
|
+
notSupported(query) {
|
|
108
|
+
return { matches: false, media: query, addEventListener: () => { }, removeEventListener: () => { } };
|
|
109
|
+
}
|
|
110
|
+
matchMedia(query) {
|
|
111
|
+
if (this._isBrowser && window.matchMedia) {
|
|
112
|
+
return window.matchMedia(query);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
return this.notSupported(query);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMediaQuery, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
119
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMediaQuery, providedIn: 'root' }); }
|
|
120
|
+
}
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMediaQuery, decorators: [{
|
|
122
|
+
type: Injectable,
|
|
123
|
+
args: [{ providedIn: 'root' }]
|
|
124
|
+
}], ctorParameters: function () { return [{ type: Object, decorators: [{
|
|
125
|
+
type: Inject,
|
|
126
|
+
args: [PLATFORM_ID]
|
|
127
|
+
}] }]; } });
|
|
128
|
+
export class DfMediaObserver {
|
|
129
|
+
constructor(_mediaQuery) {
|
|
130
|
+
this._mediaQuery = _mediaQuery;
|
|
131
|
+
this._subscription = new Subscription();
|
|
132
|
+
this._queries = new Map();
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Verifies if at least one of the provided media-queries is matching
|
|
136
|
+
* the current viewport
|
|
137
|
+
*/
|
|
138
|
+
matches(queries) {
|
|
139
|
+
queries = this._flattenQueries(Array.isArray(queries) ? queries : [queries]);
|
|
140
|
+
return queries.some(q => this._registerQuery(q).mediaQueryList.matches);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Produces an observable for a set of media-queries that will emit
|
|
144
|
+
* meta information for any changes of the given queries.
|
|
145
|
+
* @param value One or more media-queries to be observed.
|
|
146
|
+
* @returns A stream of matches meta object for the given media-queries.
|
|
147
|
+
*/
|
|
148
|
+
observe(queries) {
|
|
149
|
+
queries = this._flattenQueries(Array.isArray(queries) ? queries : [queries]);
|
|
150
|
+
return combineLatest(queries.map(q => this._registerQuery(q).mediaQueryList$)).pipe(map((events) => events.reduce((result, event) => {
|
|
151
|
+
result.matches = result.matches || event.matches;
|
|
152
|
+
result.breakpoints[event.media] = event.matches;
|
|
153
|
+
return result;
|
|
154
|
+
}, { matches: false, breakpoints: {} })));
|
|
155
|
+
}
|
|
156
|
+
ngOnDestroy() {
|
|
157
|
+
this._subscription.unsubscribe();
|
|
158
|
+
}
|
|
159
|
+
_flattenQueries(queries) {
|
|
160
|
+
return queries.map(q => q.split(',')).reduce((flat, a) => flat.concat(a));
|
|
161
|
+
}
|
|
162
|
+
_registerQuery(query) {
|
|
163
|
+
if (this._queries.has(query)) {
|
|
164
|
+
return this._queries.get(query);
|
|
165
|
+
}
|
|
166
|
+
const queryList = this._mediaQuery.matchMedia(query);
|
|
167
|
+
const queryList$ = new BehaviorSubject({
|
|
168
|
+
media: query,
|
|
169
|
+
matches: queryList.matches
|
|
170
|
+
});
|
|
171
|
+
this._subscription.add(fromEvent(queryList, 'change').subscribe((event) => {
|
|
172
|
+
queryList$.next(event);
|
|
173
|
+
}));
|
|
174
|
+
const meta = { mediaQueryList: queryList, mediaQueryList$: queryList$ };
|
|
175
|
+
this._queries.set(query, meta);
|
|
176
|
+
return meta;
|
|
177
|
+
}
|
|
178
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMediaObserver, deps: [{ token: DfMediaQuery }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
179
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMediaObserver, providedIn: 'root' }); }
|
|
180
|
+
}
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfMediaObserver, decorators: [{
|
|
182
|
+
type: Injectable,
|
|
183
|
+
args: [{ providedIn: 'root' }]
|
|
184
|
+
}], ctorParameters: function () { return [{ type: DfMediaQuery }]; } });
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWFVdGlscy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL21lZGlhcXVlcmllcy9tZWRpYVV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFhLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTNDLHlCQUF5QjtBQUN6QixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN4QyxFQUFFLEVBQUUsb0JBQW9CO0lBQ3hCLEVBQUUsRUFBRSxvQkFBb0I7SUFDeEIsRUFBRSxFQUFFLG9CQUFvQjtJQUN4QixFQUFFLEVBQUUsb0JBQW9CO0lBQ3hCLEVBQUUsRUFBRSxvQkFBb0I7SUFDeEIsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixJQUFJLEVBQUUsc0JBQXNCO0NBQzdCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRTtJQUMxRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPO1FBQ0wsT0FBTywwQkFBMEIsQ0FBQztJQUNwQyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBR0gsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFDNkMsZUFBaUQsRUFDdEQsVUFBa0I7UUFEYixvQkFBZSxHQUFmLGVBQWUsQ0FBa0M7UUFDdEQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUp6QyxrQkFB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QUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3hELFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBNEIsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLElBQUksR0FBdUIsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWhFVSxlQUFlO2tIQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8vIERlZmF1bHQgREYgYnJlYWtwb2ludHNcbmV4cG9ydCBjb25zdCBERl9CUkVBS1BPSU5UU19WQVJfREVGQVVMVCA9IHtcbiAgeHM6ICctLWRmLWJyZWFrcG9pbnQteHMnLFxuICBzbTogJy0tZGYtYnJlYWtwb2ludC1zbScsXG4gIG1kOiAnLS1kZi1icmVha3BvaW50LW1kJyxcbiAgbGc6ICctLWRmLWJyZWFrcG9pbnQtbGcnLFxuICB4bDogJy0tZGYtYnJlYWtwb2ludC14bCcsXG4gIHh4bDogJy0tZGYtYnJlYWtwb2ludC14eGwnLFxuICB4eHhsOiAnLS1kZi1icmVha3BvaW50LXh4eGwnXG59O1xuXG5leHBvcnQgY29uc3QgQlJFQUtQT0lOVFNfVkFSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignQm9vdHN0cmFwIEJyZWFrcG9pbnRzJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3RvcnkoKSB7XG4gICAgcmV0dXJuIERGX0JSRUFLUE9JTlRTX1ZBUl9ERUZBVUxUO1xuICB9XG59KTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEZkJyZWFrcG9pbnRzIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJlYWtQb2ludHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7fSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQlJFQUtQT0lOVFNfVkFSUykgcHJpdmF0ZSByZWFkb25seSBfYnJlYWtQb2ludHNWYXI6IHsgW2JyZWFrcG9pbnQ6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JRDogT2JqZWN0XG4gICkge1xuICAgIHRoaXMuaW5pdEJyZWFrcG9pbnRzKCk7XG4gIH1cblxuICBnZXQgYnJlYWtQb2ludHMkKCk6IE9ic2VydmFibGU8e30gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JyZWFrUG9pbnRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEJyZWFrcG9pbnRzKCkge1xuICAgIGxldCBicmVha1BvaW50cyA9IG51bGw7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkgJiYgdGhpcy5fYnJlYWtQb2ludHMkLnZhbHVlID09PSBudWxsKSB7XG4gICAgICAvLyB3ZSBhcmUgaW4gYSBicm93c2VyIHNvIENTUyB2YXJpYWJsZSBhcmUgYWNjZXNzaWJsZVxuICAgICAgLy8gd2UgaW5pdCB0aGUgQlAgb25seSBvbmNlXG4gICAgICBjb25zdCBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIGFzIGFueTtcbiAgICAgIGNvbnN0IGJwQXJyYXkgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZWwgb2YgT2JqZWN0LmtleXModGhpcy5fYnJlYWtQb2ludHNWYXIpKSB7XG4gICAgICAgIGNvbnN0IGN1clZhbHVlID0gdGhpcy5fYnJlYWtQb2ludHNWYXJbZWxdO1xuICAgICAgICBjb25zdCBicFZhbHVlID0gTnVtYmVyLnBhcnNlSW50KHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKGN1clZhbHVlKSwgMTApO1xuICAgICAgICBpZiAoaXNOYU4oYnBWYWx1ZSkpIHtcbiAgICAgICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgZW50ZXIgaGVyZS4gT25seSBpZiBwZW9wbGUgZGlkIG5vdCBwdXQgdGhlIGNvcnJlY3QgbGlzdCBvZiBDU1MgdmFycy4uLlxuICAgICAgICAgIC8vIE9yIGlmIHRoZSBDU1MgaXMgbm90IGFycml2ZWQgeWV0LlxuICAgICAgICAgIC8vIFdoYXQgc2hvdWxkIHdlIGRvIHRoZW4/XG4gICAgICAgICAgLy8gVE9ETyBpbml0IGZyb20gdGhlIGRlZmF1bHQgbGlzdCBwcm92aWRlZCBpZiB3ZSB3YW50IHRvP1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJwQXJyYXkucHVzaChbZWwsIGJwVmFsdWVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWtQb2ludHMgPSB0aGlzLmdlbmVyYXRlKGJwQXJyYXkpO1xuICAgICAgLy8gSW4gY2FzZSB0aGUgZmlyc3QgcGFnZSBjb250YWlucyB0aGUgZGlyZWN0aXZlIGFuZCB0aGUgQ1NTIHZhcnMgYXJlIG5vdCBhdmFpbGFibGVcbiAgICAgIC8vIFdlIG1heSBuZWVkIHRvIGxhdW5jaCBhIHNlY29uZCBpbml0IGF0IGxvYWQgdGltZS5cbiAgICAgIGlmIChPYmplY3Qua2V5cyhicmVha1BvaW50cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGZyb21FdmVudCh3aW5kb3csICdsb2FkJylcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLy8gSW5pdCBvbmNlIGFzIHRoZSBzZXJ2aWNlIGlzIGF2YWlsYWJsZSBldmVyeXdoZXJlXG4gICAgICAgICAgICAvLyBXZSBkbyBub3QgY2hlY2sgaWYgdGhlIENTUyB2YXJpYWJsZSBhcmUgY2hhbmdpbmcgb3ZlciB0aW1lXG4gICAgICAgICAgICAvLyBoZXJlIG9ubG9hZCB0aGUgQ1NTIHZhciBzaG91bGQgYmUgYXZhaWxhYmxlXG4gICAgICAgICAgICB0aGlzLmluaXRCcmVha3BvaW50cygpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9icmVha1BvaW50cyQubmV4dChicmVha1BvaW50cyk7XG4gIH1cblxuICAvLyBVdGlsaXRpZXMgdG8gdXNlIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSB5b3VyIG93biBxdWVyaWVzIHdpdGggeW91ciB2YWx1ZXMuXG4gIC8vIHNpemVzIGlzIGFuIGFycmF5IG9mIGFycmF5IEJyZWFrUG9pbnRzIHdpdGggc2l6ZXNbMF0gLS0+IGlkZW50aWZpZXIgb2YgdGhlIEJyZWFrUG9pbnRcbiAgLy8gc2l6ZXNbMV0gcHggdmFsdWUgb2YgdGhlIEJyZWFrUG9pbnRcbiAgZ2VuZXJhdGUoc2l6ZXM6IGFueVtdW10pOiB7fSB7XG4gICAgc2l6ZXMgPSBzaXplcy5zb3J0KChhLCBiKSA9PiBhWzFdIC0gYlsxXSk7XG4gICAgY29uc3QgZGljdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBzaXplc1tpXVswXTtcbiAgICAgIGNvbnN0IG1pbiA9IHNpemVzW2ldWzFdO1xuICAgICAgY29uc3QgbWF4ID0gaSA9PT0gc2l6ZXMubGVuZ3RoIC0gMSA/IHVuZGVmaW5lZCA6IHNpemVzW2kgKyAxXVsxXTtcbiAgICAgIGlmIChtaW4gPT09IDApIHtcbiAgICAgICAgZGljdFtuYW1lXSA9IGAobWF4LXdpZHRoOiAke21heCAtIDAuMDF9cHgpYDtcbiAgICAgIH0gZWxzZSBpZiAobWF4KSB7XG4gICAgICAgIGRpY3RbbmFtZV0gPSBgKG1heC13aWR0aDogJHttYXggLSAwLjAxfXB4KSBhbmQgKG1pbi13aWR0aDogJHttaW59cHgpYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpY3RbbmFtZV0gPSBgKG1pbi13aWR0aDogJHttaW59cHgpYDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRpY3Q7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZWRpYVF1ZXJ5TGlzdE1ldGEge1xuICBtZWRpYVF1ZXJ5TGlzdDogTWVkaWFRdWVyeUxpc3Q7XG4gIG1lZGlhUXVlcnlMaXN0JDogQmVoYXZpb3JTdWJqZWN0PE1lZGlhUXVlcnlMaXN0RXZlbnQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lZGlhQnJlYWtwb2ludHNTdGF0ZSB7XG4gIG1hdGNoZXM6IGJvb2xlYW47XG4gIGJyZWFrcG9pbnRzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEZk1lZGlhUXVlcnkge1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgdGhpcy5faXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gIH1cblxuICBub3RTdXBwb3J0ZWQocXVlcnk6IHN0cmluZyk6IFBhcnRpYWw8TWVkaWFRdWVyeUxpc3Q+IHtcbiAgICByZXR1cm4geyBtYXRjaGVzOiBmYWxzZSwgbWVkaWE6IHF1ZXJ5LCBhZGRFdmVudExpc3RlbmVyOiAoKSA9PiB7fSwgcmVtb3ZlRXZlbnRMaXN0ZW5lcjogKCkgPT4ge30gfTtcbiAgfVxuXG4gIG1hdGNoTWVkaWEocXVlcnk6IHN0cmluZyk6IE1lZGlhUXVlcnlMaXN0IHtcbiAgICBpZiAodGhpcy5faXNCcm93c2VyICYmIHdpbmRvdy5tYXRjaE1lZGlhKSB7XG4gICAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3RTdXBwb3J0ZWQocXVlcnkpIGFzIE1lZGlhUXVlcnlMaXN0O1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERmTWVkaWFPYnNlcnZlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1ZXJpZXMgPSBuZXcgTWFwPHN0cmluZywgTWVkaWFRdWVyeUxpc3RNZXRhPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX21lZGlhUXVlcnk6IERmTWVkaWFRdWVyeSkge31cblxuICAvKipcbiAgICogVmVyaWZpZXMgaWYgYXQgbGVhc3Qgb25lIG9mIHRoZSBwcm92aWRlZCBtZWRpYS1xdWVyaWVzIGlzIG1hdGNoaW5nXG4gICAqIHRoZSBjdXJyZW50IHZpZXdwb3J0XG4gICAqL1xuICBtYXRjaGVzKHF1ZXJpZXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcXVlcmllcyA9IHRoaXMuX2ZsYXR0ZW5RdWVyaWVzKEFycmF5LmlzQXJyYXkocXVlcmllcykgPyBxdWVyaWVzIDogW3F1ZXJpZXNdKTtcbiAgICByZXR1cm4gcXVlcmllcy5zb21lKHEgPT4gdGhpcy5fcmVnaXN0ZXJRdWVyeShxKSEubWVkaWFRdWVyeUxpc3QubWF0Y2hlcyk7XG4gIH1cblxuICAvKipcbiAgICogUHJvZHVjZXMgYW4gb2JzZXJ2YWJsZSBmb3IgYSBzZXQgb2YgbWVkaWEtcXVlcmllcyB0aGF0IHdpbGwgZW1pdFxuICAgKiBtZXRhIGluZm9ybWF0aW9uIGZvciBhbnkgY2hhbmdlcyBvZiB0aGUgZ2l2ZW4gcXVlcmllcy5cbiAgICogQHBhcmFtIHZhbHVlIE9uZSBvciBtb3JlIG1lZGlhLXF1ZXJpZXMgdG8gYmUgb2JzZXJ2ZWQuXG4gICAqIEByZXR1cm5zIEEgc3RyZWFtIG9mIG1hdGNoZXMgbWV0YSBvYmplY3QgZm9yIHRoZSBnaXZlbiBtZWRpYS1xdWVyaWVzLlxuICAgKi9cbiAgb2JzZXJ2ZShxdWVyaWVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IE9ic2VydmFibGU8TWVkaWFCcmVha3BvaW50c1N0YXRlPiB7XG4gICAgcXVlcmllcyA9IHRoaXMuX2ZsYXR0ZW5RdWVyaWVzKEFycmF5LmlzQXJyYXkocXVlcmllcykgPyBxdWVyaWVzIDogW3F1ZXJpZXNdKTtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChxdWVyaWVzLm1hcChxID0+IHRoaXMuX3JlZ2lzdGVyUXVlcnkocSkhLm1lZGlhUXVlcnlMaXN0JCkpLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChldmVudHM6IE1lZGlhUXVlcnlMaXN0RXZlbnRbXSk6IE1lZGlhQnJlYWtwb2ludHNTdGF0ZSA9PlxuICAgICAgICAgIGV2ZW50cy5yZWR1Y2UoXG4gICAgICAgICAgICAocmVzdWx0LCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICByZXN1bHQubWF0Y2hlcyA9IHJlc3VsdC5tYXRjaGVzIHx8IGV2ZW50Lm1hdGNoZXM7XG4gICAgICAgICAgICAgIHJlc3VsdC5icmVha3BvaW50c1tldmVudC5tZWRpYV0gPSBldmVudC5tYXRjaGVzO1xuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgbWF0Y2hlczogZmFsc2UsIGJyZWFrcG9pbnRzOiB7fSB9IGFzIE1lZGlhQnJlYWtwb2ludHNTdGF0ZVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9mbGF0dGVuUXVlcmllcyhxdWVyaWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gcXVlcmllcy5tYXAocSA9PiBxLnNwbGl0KCcsJykpLnJlZHVjZSgoZmxhdCwgYSkgPT4gZmxhdC5jb25jYXQoYSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJRdWVyeShxdWVyeTogc3RyaW5nKTogTWVkaWFRdWVyeUxpc3RNZXRhIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5fcXVlcmllcy5oYXMocXVlcnkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcXVlcmllcy5nZXQocXVlcnkpO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeUxpc3Q6IE1lZGlhUXVlcnlMaXN0ID0gdGhpcy5fbWVkaWFRdWVyeS5tYXRjaE1lZGlhKHF1ZXJ5KTtcbiAgICBjb25zdCBxdWVyeUxpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZWRpYVF1ZXJ5TGlzdEV2ZW50Pih7XG4gICAgICBtZWRpYTogcXVlcnksXG4gICAgICBtYXRjaGVzOiBxdWVyeUxpc3QubWF0Y2hlc1xuICAgIH0gYXMgTWVkaWFRdWVyeUxpc3RFdmVudCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIGZyb21FdmVudChxdWVyeUxpc3QsICdjaGFuZ2UnKS5zdWJzY3JpYmUoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBxdWVyeUxpc3QkLm5leHQoZXZlbnQgYXMgTWVkaWFRdWVyeUxpc3RFdmVudCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgbWV0YTogTWVkaWFRdWVyeUxpc3RNZXRhID0geyBtZWRpYVF1ZXJ5TGlzdDogcXVlcnlMaXN0LCBtZWRpYVF1ZXJ5TGlzdCQ6IHF1ZXJ5TGlzdCQgfTtcbiAgICB0aGlzLl9xdWVyaWVzLnNldChxdWVyeSwgbWV0YSk7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
4
|
+
export class DfModalService {
|
|
5
|
+
constructor(modalService, rendererFactory) {
|
|
6
|
+
this.modalService = modalService;
|
|
7
|
+
this.rendererFactory = rendererFactory;
|
|
8
|
+
this.renderer = this.rendererFactory.createRenderer(null, null);
|
|
9
|
+
}
|
|
10
|
+
open(content, options) {
|
|
11
|
+
let modalRef;
|
|
12
|
+
if (options && options.container) {
|
|
13
|
+
modalRef = this.modalService.open(content, options);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
modalRef = this.modalService.open(content, Object.assign({}, { container: 'body' }, options));
|
|
17
|
+
}
|
|
18
|
+
// we add the 'df-modal-open' class to the body when the modal is open. We remove it when the modal is closed/dismissed
|
|
19
|
+
this.renderer.addClass(document.body, 'df-modal-open');
|
|
20
|
+
modalRef.result.then(() => {
|
|
21
|
+
this.renderer.removeClass(document.body, 'df-modal-open');
|
|
22
|
+
}, () => {
|
|
23
|
+
this.renderer.removeClass(document.body, 'df-modal-open');
|
|
24
|
+
});
|
|
25
|
+
return modalRef;
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfModalService, deps: [{ token: i1.NgbModal }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfModalService, providedIn: 'root' }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfModalService, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{
|
|
33
|
+
providedIn: 'root'
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.NgbModal }, { type: i0.RendererFactory2 }]; } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9tb2RhbC9tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQStCLE1BQU0sZUFBZSxDQUFDOzs7QUFLeEUsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBb0IsWUFBc0IsRUFBVSxlQUFpQztRQUFqRSxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNuRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVksRUFBRSxPQUF5QjtRQUMxQyxJQUFJLFFBQXFCLENBQUM7UUFDMUIsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNoQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDL0Y7UUFDRCx1SEFBdUg7UUFDdkgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN2RCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbEIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1RCxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OEdBekJVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdiTW9kYWxPcHRpb25zLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERmTW9kYWxTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIpIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICBvcGVuKGNvbnRlbnQ6IGFueSwgb3B0aW9ucz86IE5nYk1vZGFsT3B0aW9ucyk6IE5nYk1vZGFsUmVmIHtcbiAgICBsZXQgbW9kYWxSZWY6IE5nYk1vZGFsUmVmO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuY29udGFpbmVyKSB7XG4gICAgICBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oY29udGVudCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihjb250ZW50LCBPYmplY3QuYXNzaWduKHt9LCB7IGNvbnRhaW5lcjogJ2JvZHknIH0sIG9wdGlvbnMpKTtcbiAgICB9XG4gICAgLy8gd2UgYWRkIHRoZSAnZGYtbW9kYWwtb3BlbicgY2xhc3MgdG8gdGhlIGJvZHkgd2hlbiB0aGUgbW9kYWwgaXMgb3Blbi4gV2UgcmVtb3ZlIGl0IHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZC9kaXNtaXNzZWRcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksICdkZi1tb2RhbC1vcGVuJyk7XG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ2RmLW1vZGFsLW9wZW4nKTtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgJ2RmLW1vZGFsLW9wZW4nKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBtb2RhbFJlZjtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
5
|
+
export class DfPopoverConfig extends NgbPopoverConfig {
|
|
6
|
+
constructor(ngbConfig) {
|
|
7
|
+
super(ngbConfig || { animation: true });
|
|
8
|
+
this.autoClose = 'outside';
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverConfig, deps: [{ token: i1.NgbConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverConfig }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverConfig, decorators: [{
|
|
14
|
+
type: Injectable
|
|
15
|
+
}], ctorParameters: function () { return [{ type: i1.NgbConfig }]; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvcG9wb3Zlci9jb25maWcvcG9wb3Zlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGdCQUFnQjtJQUduRCxZQUFZLFNBQXFCO1FBQy9CLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUhqQyxjQUFTLEdBQUcsU0FBc0IsQ0FBQztJQUk1QyxDQUFDOzhHQUxVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nYkNvbmZpZywgTmdiUG9wb3ZlckNvbmZpZyB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERmUG9wb3ZlckNvbmZpZyBleHRlbmRzIE5nYlBvcG92ZXJDb25maWcge1xuICBvdmVycmlkZSBhdXRvQ2xvc2UgPSAnb3V0c2lkZScgYXMgJ291dHNpZGUnO1xuXG4gIGNvbnN0cnVjdG9yKG5nYkNvbmZpZz86IE5nYkNvbmZpZykge1xuICAgIHN1cGVyKG5nYkNvbmZpZyB8fCB7IGFuaW1hdGlvbjogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NgbPopoverModule, NgbPopoverConfig } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
+
import { DfPopoverConfig } from './config/popover.config';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DfPopoverModule {
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverModule, exports: [NgbPopoverModule] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverModule, providers: [{ provide: NgbPopoverConfig, useClass: DfPopoverConfig }], imports: [NgbPopoverModule] }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfPopoverModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
exports: [NgbPopoverModule],
|
|
14
|
+
providers: [{ provide: NgbPopoverConfig, useClass: DfPopoverConfig }]
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBSGhCLGdCQUFnQjsrR0FHZixlQUFlLGFBRmYsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUMsWUFEM0QsZ0JBQWdCOzsyRkFHZixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUM7aUJBQ3RFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYlBvcG92ZXJNb2R1bGUsIE5nYlBvcG92ZXJDb25maWcgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBEZlBvcG92ZXJDb25maWcgfSBmcm9tICcuL2NvbmZpZy9wb3BvdmVyLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtOZ2JQb3BvdmVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ2JQb3BvdmVyQ29uZmlnLCB1c2VDbGFzczogRGZQb3BvdmVyQ29uZmlnIH1dXG59KVxuZXhwb3J0IGNsYXNzIERmUG9wb3Zlck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class DfProgressbarComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.infiniteAnimation = false;
|
|
8
|
+
/**
|
|
9
|
+
* Current value of the progressBar. If 'maxValue' is not defined, value represents a percentage. Otherwise, progress
|
|
10
|
+
* bar percentage value will be computed based on the ratio of 'value/maxValue'
|
|
11
|
+
*/
|
|
12
|
+
this._value = 0;
|
|
13
|
+
this._maxValue = 100;
|
|
14
|
+
/**
|
|
15
|
+
* Text to be displayed on top of the progressbar
|
|
16
|
+
*/
|
|
17
|
+
this._text = '';
|
|
18
|
+
this._percentageValue = 0;
|
|
19
|
+
this.percentageValueChange = new EventEmitter();
|
|
20
|
+
this.computedText = '';
|
|
21
|
+
this.displayProgressBar = false;
|
|
22
|
+
this.FADING_DELAY_MS = 1500; // if triggered by observables, number of milliseconds after progress bar disappears once stopped
|
|
23
|
+
this.animationOngoing = false;
|
|
24
|
+
}
|
|
25
|
+
set value(newValue) {
|
|
26
|
+
this._value = newValue;
|
|
27
|
+
this.updatePercentageValue();
|
|
28
|
+
this.updateText();
|
|
29
|
+
}
|
|
30
|
+
get value() {
|
|
31
|
+
return this._value;
|
|
32
|
+
}
|
|
33
|
+
set maxValue(newValue) {
|
|
34
|
+
this._maxValue = newValue;
|
|
35
|
+
this.updatePercentageValue();
|
|
36
|
+
this.updateText();
|
|
37
|
+
}
|
|
38
|
+
get maxValue() {
|
|
39
|
+
return this._maxValue;
|
|
40
|
+
}
|
|
41
|
+
set text(newText) {
|
|
42
|
+
this._text = newText;
|
|
43
|
+
this.updateText();
|
|
44
|
+
}
|
|
45
|
+
get text() {
|
|
46
|
+
return this._text;
|
|
47
|
+
}
|
|
48
|
+
set percentageValue(newValue) {
|
|
49
|
+
this._percentageValue = newValue;
|
|
50
|
+
this.percentageValueChange.emit(newValue);
|
|
51
|
+
}
|
|
52
|
+
get percentageValue() {
|
|
53
|
+
return this._percentageValue;
|
|
54
|
+
}
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
const isTriggeredByObservables = this.start$ && this.end$;
|
|
57
|
+
if (isTriggeredByObservables) {
|
|
58
|
+
this.startSubscription = this.start$.subscribe((_) => {
|
|
59
|
+
this.animationOngoing = true;
|
|
60
|
+
this.stopAutomaticIncrement();
|
|
61
|
+
this.resetProgressBarValues();
|
|
62
|
+
this.displayProgressBar = true;
|
|
63
|
+
this.startAutomaticIncrement();
|
|
64
|
+
});
|
|
65
|
+
this.endSubscription = this.end$.subscribe((_) => {
|
|
66
|
+
if (this.animationOngoing) {
|
|
67
|
+
this.animationOngoing = false;
|
|
68
|
+
this.stopAutomaticIncrement();
|
|
69
|
+
this.value = 100;
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
this.displayProgressBar = false;
|
|
72
|
+
}, this.FADING_DELAY_MS);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.displayProgressBar = true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
ngOnDestroy() {
|
|
81
|
+
if (this.startSubscription) {
|
|
82
|
+
this.startSubscription.unsubscribe();
|
|
83
|
+
}
|
|
84
|
+
if (this.endSubscription) {
|
|
85
|
+
this.endSubscription.unsubscribe();
|
|
86
|
+
}
|
|
87
|
+
this.stopAutomaticIncrement();
|
|
88
|
+
}
|
|
89
|
+
updateText() {
|
|
90
|
+
const precentagePlaceholder = '%PERCENTAGE%';
|
|
91
|
+
if (this.text.includes(precentagePlaceholder)) {
|
|
92
|
+
const advancementInPercents = `${Math.floor(this.percentageValue)}%`;
|
|
93
|
+
this.computedText = this.text.replace(precentagePlaceholder, advancementInPercents);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this.computedText = this.text;
|
|
97
|
+
}
|
|
98
|
+
updatePercentageValue() {
|
|
99
|
+
if (this.value > this.maxValue) {
|
|
100
|
+
this.percentageValue = 100;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
this.percentageValue = Math.floor((this.value / this.maxValue) * 100);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Randomly increase the percentage but making sure that it can never reach 100%
|
|
107
|
+
*/
|
|
108
|
+
increasePercentage() {
|
|
109
|
+
const maximumReachableValue = 90;
|
|
110
|
+
const remainingPercentage = maximumReachableValue - this.value;
|
|
111
|
+
const averageIncreaseRatio = 0.015;
|
|
112
|
+
const randomIncreaseRatio = Math.random() * 2 * averageIncreaseRatio;
|
|
113
|
+
this.value += randomIncreaseRatio * remainingPercentage;
|
|
114
|
+
this.updatePercentageValue();
|
|
115
|
+
this.updateText();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Clears the 'setInterval' function so that the automatic increase of the progressbar stops
|
|
119
|
+
*/
|
|
120
|
+
stopAutomaticIncrement() {
|
|
121
|
+
clearInterval(this.intervalId);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Periodically calls a function which increments the value of the progressbar
|
|
125
|
+
*/
|
|
126
|
+
startAutomaticIncrement() {
|
|
127
|
+
this.intervalId = setInterval(this.increasePercentage.bind(this), 50);
|
|
128
|
+
}
|
|
129
|
+
resetProgressBarValues() {
|
|
130
|
+
this.value = 0;
|
|
131
|
+
this.maxValue = 100;
|
|
132
|
+
}
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfProgressbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: DfProgressbarComponent, isStandalone: true, selector: "df-progressbar", inputs: { infiniteAnimation: "infiniteAnimation", value: "value", maxValue: "maxValue", text: "text", start$: "start$", end$: "end$", ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel" }, outputs: { percentageValueChange: "percentageValueChange" }, ngImport: i0, template: "<ng-container *ngIf=\"displayProgressBar\">\n <div *ngIf=\"computedText\" class=\"progressbar-text mb-2\">{{ computedText }}</div>\n <div class=\"progress\">\n <ng-container *ngIf=\"infiniteAnimation; else withValue\">\n <div\n class=\"progress-bar infinite-animation\"\n role=\"progressbar\"\n aria-valuetext=\"indeterminate\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"!ariaLabelledBy && ariaLabel ? ariaLabel : null\"\n ></div>\n </ng-container>\n <ng-template #withValue>\n <div\n [style.width.%]=\"percentageValue\"\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n aria-valuemin=\"0\"\n [attr.aria-valuemax]=\"maxValue\"\n [attr.aria-valuetext]=\"computedText ? computedText : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"!ariaLabelledBy && ariaLabel ? ariaLabel : null\"\n ></div>\n </ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
135
|
+
}
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfProgressbarComponent, decorators: [{
|
|
137
|
+
type: Component,
|
|
138
|
+
args: [{ selector: 'df-progressbar', standalone: true, imports: [CommonModule], template: "<ng-container *ngIf=\"displayProgressBar\">\n <div *ngIf=\"computedText\" class=\"progressbar-text mb-2\">{{ computedText }}</div>\n <div class=\"progress\">\n <ng-container *ngIf=\"infiniteAnimation; else withValue\">\n <div\n class=\"progress-bar infinite-animation\"\n role=\"progressbar\"\n aria-valuetext=\"indeterminate\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"!ariaLabelledBy && ariaLabel ? ariaLabel : null\"\n ></div>\n </ng-container>\n <ng-template #withValue>\n <div\n [style.width.%]=\"percentageValue\"\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value\"\n aria-valuemin=\"0\"\n [attr.aria-valuemax]=\"maxValue\"\n [attr.aria-valuetext]=\"computedText ? computedText : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"!ariaLabelledBy && ariaLabel ? ariaLabel : null\"\n ></div>\n </ng-template>\n </div>\n</ng-container>\n" }]
|
|
139
|
+
}], propDecorators: { infiniteAnimation: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], value: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], maxValue: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], text: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], start$: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], end$: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], ariaLabelledBy: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], ariaLabel: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], percentageValueChange: [{
|
|
156
|
+
type: Output
|
|
157
|
+
}] } });
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3Byb2dyZXNzYmFyL3Byb2dyZXNzYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVEvQyxNQUFNLE9BQU8sc0JBQXNCO0lBTm5DO1FBT1csc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DOzs7V0FHRztRQUNLLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFhWCxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBYXhCOztXQUVHO1FBQ0ssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQW1DWCxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFVbkIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQyxpR0FBaUc7UUFJeEgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0tBc0ZsQztJQXRLQyxJQUNJLEtBQUssQ0FBQyxRQUFnQjtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJ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QUM7SUFDeEUsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7OEdBN0tVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHlVQ1ZuQywyaUNBMkJBLDJDRG5CWSxZQUFZOzsyRkFFWCxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzhCQUdkLGlCQUFpQjtzQkFBekIsS0FBSztnQkFRRixLQUFLO3NCQURSLEtBQUs7Z0JBY0YsUUFBUTtzQkFEWCxLQUFLO2dCQWlCRixJQUFJO3NCQURQLEtBQUs7Z0JBY0csTUFBTTtzQkFBZCxLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFNRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBWUkscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXByb2dyZXNzYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICdwcm9ncmVzc2Jhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIERmUHJvZ3Jlc3NiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGluZmluaXRlQW5pbWF0aW9uID0gZmFsc2U7XG4gIC8qKlxuICAgKiBDdXJyZW50IHZhbHVlIG9mIHRoZSBwcm9ncmVzc0Jhci4gSWYgJ21heFZhbHVlJyBpcyBub3QgZGVmaW5lZCwgdmFsdWUgcmVwcmVzZW50cyBhIHBlcmNlbnRhZ2UuIE90aGVyd2lzZSwgcHJvZ3Jlc3NcbiAgICogYmFyIHBlcmNlbnRhZ2UgdmFsdWUgd2lsbCBiZSBjb21wdXRlZCBiYXNlZCBvbiB0aGUgcmF0aW8gb2YgJ3ZhbHVlL21heFZhbHVlJ1xuICAgKi9cbiAgcHJpdmF0ZSBfdmFsdWUgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZShuZXdWYWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVBlcmNlbnRhZ2VWYWx1ZSgpO1xuICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4VmFsdWUgPSAxMDA7XG5cbiAgQElucHV0KClcbiAgc2V0IG1heFZhbHVlKG5ld1ZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXhWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMudXBkYXRlUGVyY2VudGFnZVZhbHVlKCk7XG4gICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gIH1cblxuICBnZXQgbWF4VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4VmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGV4dCB0byBiZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSBwcm9ncmVzc2JhclxuICAgKi9cbiAgcHJpdmF0ZSBfdGV4dCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB0ZXh0KG5ld1RleHQ6IHN0cmluZykge1xuICAgIHRoaXMuX3RleHQgPSBuZXdUZXh0O1xuICAgIHRoaXMudXBkYXRlVGV4dCgpO1xuICB9XG5cbiAgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHVzZWQgdG8gdHJpZ2dlciB0aGUgc3RhcnQgb2YgdGhlIGxvYWRpbmcuXG4gICAqIFdoZW4gZW1pdHRpbmcsIHByb2dyZXNzYmFyIHdpbGwgc3RhcnQgdG8gcmFuZG9tbHkgaW5jcmVtZW50IHRvd2FyZCAxMDAlLlxuICAgKi9cbiAgQElucHV0KCkgc3RhcnQkPzogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIHVzZWQgdG8gdHJpZ2dlciB0aGUgZW5kIG9mIHRoZSBsb2FkaW5nLlxuICAgKiBXaGVuIGVtaXR0aW5nLCBpdCBmb3JjZXMgdGhlIHByb2dyZXNzYmFyIHRvIHJlYWNoIDEwMCUuXG4gICAqL1xuICBASW5wdXQoKSBlbmQkPzogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIC8qKlxuICAgKiBJZCBvZiB0aGUgbGFiZWwgdXNlZCB0byBkZXNjcmliZSB0aGUgcHJvZ3Jlc3MgYmFyLlxuICAgKiBJdCBpcyB1c2VkIGluIHByaW9yaXR5IGNvbXBhcmVkIHRvIHRoZSBhcmlhTGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcblxuICAvKipcbiAgICogQXJpYSBsYWJlbCB1c2VkIHRvIGRlc2NyaWJlIHRoZSBwcm9ncmVzcyBiYXIgaWYgbm8gYXJpYUxhYmVsbGVkQnkgaXMgc3BlY2lmaWVkLlxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3BlcmNlbnRhZ2VWYWx1ZSA9IDA7XG4gIHNldCBwZXJjZW50YWdlVmFsdWUobmV3VmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX3BlcmNlbnRhZ2VWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMucGVyY2VudGFnZVZhbHVlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICB9XG5cbiAgZ2V0IHBlcmNlbnRhZ2VWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wZXJjZW50YWdlVmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgcGVyY2VudGFnZVZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHVibGljIGNvbXB1dGVkVGV4dCA9ICcnO1xuICBwdWJsaWMgZGlzcGxheVByb2dyZXNzQmFyID0gZmFsc2U7XG4gIHB1YmxpYyBGQURJTkdfREVMQVlfTVMgPSAxNTAwOyAvLyBpZiB0cmlnZ2VyZWQgYnkgb2JzZXJ2YWJsZXMsIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYWZ0ZXIgcHJvZ3Jlc3MgYmFyIGRpc2FwcGVhcnMgb25jZSBzdG9wcGVkXG4gIHByaXZhdGUgc3RhcnRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZW5kU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGludGVydmFsSWQ6IGFueTsgLy8gc3RvcmUgdGhlIHJlc3VsdCBvZiAnc2V0SW50ZXJ2YWwnIGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIGNsZWFyIGl0IG9uRGVzdHJveVxuICBwcml2YXRlIGFuaW1hdGlvbk9uZ29pbmcgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBpc1RyaWdnZXJlZEJ5T2JzZXJ2YWJsZXMgPSB0aGlzLnN0YXJ0JCAmJiB0aGlzLmVuZCQ7XG4gICAgaWYgKGlzVHJpZ2dlcmVkQnlPYnNlcnZhYmxlcykge1xuICAgICAgdGhpcy5zdGFydFN1YnNjcmlwdGlvbiA9IHRoaXMuc3RhcnQkIS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25PbmdvaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdG9wQXV0b21hdGljSW5jcmVtZW50KCk7XG4gICAgICAgIHRoaXMucmVzZXRQcm9ncmVzc0JhclZhbHVlcygpO1xuICAgICAgICB0aGlzLmRpc3BsYXlQcm9ncmVzc0JhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RhcnRBdXRvbWF0aWNJbmNyZW1lbnQoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5lbmRTdWJzY3JpcHRpb24gPSB0aGlzLmVuZCQhLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb25PbmdvaW5nKSB7XG4gICAgICAgICAgdGhpcy5hbmltYXRpb25PbmdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zdG9wQXV0b21hdGljSW5jcmVtZW50KCk7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IDEwMDtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgICAgICAgfSwgdGhpcy5GQURJTkdfREVMQVlfTVMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5UHJvZ3Jlc3NCYXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN0YXJ0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmVuZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5lbmRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5zdG9wQXV0b21hdGljSW5jcmVtZW50KCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRleHQoKSB7XG4gICAgY29uc3QgcHJlY2VudGFnZVBsYWNlaG9sZGVyID0gJyVQRVJDRU5UQUdFJSc7XG4gICAgaWYgKHRoaXMudGV4dC5pbmNsdWRlcyhwcmVjZW50YWdlUGxhY2Vob2xkZXIpKSB7XG4gICAgICBjb25zdCBhZHZhbmNlbWVudEluUGVyY2VudHMgPSBgJHtNYXRoLmZsb29yKHRoaXMucGVyY2VudGFnZVZhbHVlKX0lYDtcbiAgICAgIHRoaXMuY29tcHV0ZWRUZXh0ID0gdGhpcy50ZXh0LnJlcGxhY2UocHJlY2VudGFnZVBsYWNlaG9sZGVyLCBhZHZhbmNlbWVudEluUGVyY2VudHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbXB1dGVkVGV4dCA9IHRoaXMudGV4dDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGVyY2VudGFnZVZhbHVlKCkge1xuICAgIGlmICh0aGlzLnZhbHVlID4gdGhpcy5tYXhWYWx1ZSkge1xuICAgICAgdGhpcy5wZXJjZW50YWdlVmFsdWUgPSAxMDA7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucGVyY2VudGFnZVZhbHVlID0gTWF0aC5mbG9vcigodGhpcy52YWx1ZSAvIHRoaXMubWF4VmFsdWUpICogMTAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSYW5kb21seSBpbmNyZWFzZSB0aGUgcGVyY2VudGFnZSBidXQgbWFraW5nIHN1cmUgdGhhdCBpdCBjYW4gbmV2ZXIgcmVhY2ggMTAwJVxuICAgKi9cbiAgcHJpdmF0ZSBpbmNyZWFzZVBlcmNlbnRhZ2UoKSB7XG4gICAgY29uc3QgbWF4aW11bVJlYWNoYWJsZVZhbHVlID0gOTA7XG4gICAgY29uc3QgcmVtYWluaW5nUGVyY2VudGFnZSA9IG1heGltdW1SZWFjaGFibGVWYWx1ZSAtIHRoaXMudmFsdWU7XG4gICAgY29uc3QgYXZlcmFnZUluY3JlYXNlUmF0aW8gPSAwLjAxNTtcbiAgICBjb25zdCByYW5kb21JbmNyZWFzZVJhdGlvID0gTWF0aC5yYW5kb20oKSAqIDIgKiBhdmVyYWdlSW5jcmVhc2VSYXRpbztcbiAgICB0aGlzLnZhbHVlICs9IHJhbmRvbUluY3JlYXNlUmF0aW8gKiByZW1haW5pbmdQZXJjZW50YWdlO1xuICAgIHRoaXMudXBkYXRlUGVyY2VudGFnZVZhbHVlKCk7XG4gICAgdGhpcy51cGRhdGVUZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSAnc2V0SW50ZXJ2YWwnIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIGF1dG9tYXRpYyBpbmNyZWFzZSBvZiB0aGUgcHJvZ3Jlc3NiYXIgc3RvcHNcbiAgICovXG4gIHByaXZhdGUgc3RvcEF1dG9tYXRpY0luY3JlbWVudCgpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gIH1cblxuICAvKipcbiAgICogUGVyaW9kaWNhbGx5IGNhbGxzIGEgZnVuY3Rpb24gd2hpY2ggaW5jcmVtZW50cyB0aGUgdmFsdWUgb2YgdGhlIHByb2dyZXNzYmFyXG4gICAqL1xuICBwcml2YXRlIHN0YXJ0QXV0b21hdGljSW5jcmVtZW50KCkge1xuICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKHRoaXMuaW5jcmVhc2VQZXJjZW50YWdlLmJpbmQodGhpcyksIDUwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRQcm9ncmVzc0JhclZhbHVlcygpIHtcbiAgICB0aGlzLnZhbHVlID0gMDtcbiAgICB0aGlzLm1heFZhbHVlID0gMTAwO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheVByb2dyZXNzQmFyXCI+XG4gIDxkaXYgKm5nSWY9XCJjb21wdXRlZFRleHRcIiBjbGFzcz1cInByb2dyZXNzYmFyLXRleHQgbWItMlwiPnt7IGNvbXB1dGVkVGV4dCB9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5maW5pdGVBbmltYXRpb247IGVsc2Ugd2l0aFZhbHVlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyIGluZmluaXRlLWFuaW1hdGlvblwiXG4gICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICAgIGFyaWEtdmFsdWV0ZXh0PVwiaW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSB8fCBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIhYXJpYUxhYmVsbGVkQnkgJiYgYXJpYUxhYmVsID8gYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICN3aXRoVmFsdWU+XG4gICAgICA8ZGl2XG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInBlcmNlbnRhZ2VWYWx1ZVwiXG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJ2YWx1ZVwiXG4gICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcbiAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJtYXhWYWx1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtdmFsdWV0ZXh0XT1cImNvbXB1dGVkVGV4dCA/IGNvbXB1dGVkVGV4dCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgfHwgbnVsbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiIWFyaWFMYWJlbGxlZEJ5ICYmIGFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DfProgressbarComponent } from './progressbar.component';
|
|
3
|
+
import { NgbProgressbarModule } from '@ng-bootstrap/ng-bootstrap';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export { DfProgressbarComponent } from './progressbar.component';
|
|
6
|
+
export class DfProgressbarModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfProgressbarModule, imports: [DfProgressbarComponent], exports: [DfProgressbarComponent, NgbProgressbarModule] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfProgressbarModule, imports: [DfProgressbarComponent, NgbProgressbarModule] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfProgressbarModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
imports: [DfProgressbarComponent],
|
|
15
|
+
exports: [DfProgressbarComponent, NgbProgressbarModule]
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NiYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3Byb2dyZXNzYmFyL3Byb2dyZXNzYmFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU1qRSxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQUhwQixzQkFBc0IsYUFDdEIsc0JBQXNCLEVBQUUsb0JBQW9COytHQUUzQyxtQkFBbUIsWUFIcEIsc0JBQXNCLEVBQ0Usb0JBQW9COzsyRkFFM0MsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc2JhckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3NiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5nYlByb2dyZXNzYmFyTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5leHBvcnQgeyBEZlByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2Jhci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRGZQcm9ncmVzc2JhckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtEZlByb2dyZXNzYmFyQ29tcG9uZW50LCBOZ2JQcm9ncmVzc2Jhck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRGZQcm9ncmVzc2Jhck1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class DfDefaultSpinnerComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.isGlobalSpinner = false;
|
|
8
|
+
this.contentClass = 'spinner-border text-primary';
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDefaultSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: DfDefaultSpinnerComponent, isStandalone: true, selector: "df-default-spinner", inputs: { isGlobalSpinner: "isGlobalSpinner", contentClass: "contentClass", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<div [ngClass]=\"contentClass\" [attr.role]=\"isGlobalSpinner ? 'alert' : 'status'\">\n <span class=\"visually-hidden\">\n <ng-container *ngIf=\"ariaLabel; else defaultAriaLabel\">{{ ariaLabel }}</ng-container>\n </span>\n</div>\n\n<ng-template #defaultAriaLabel>\n <ng-container i18n=\"@@df.progressindicator.default.spinner.ariaLabel\">Loading...</ng-container>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDefaultSpinnerComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'df-default-spinner', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div [ngClass]=\"contentClass\" [attr.role]=\"isGlobalSpinner ? 'alert' : 'status'\">\n <span class=\"visually-hidden\">\n <ng-container *ngIf=\"ariaLabel; else defaultAriaLabel\">{{ ariaLabel }}</ng-container>\n </span>\n</div>\n\n<ng-template #defaultAriaLabel>\n <ng-container i18n=\"@@df.progressindicator.default.spinner.ariaLabel\">Loading...</ng-container>\n</ng-template>\n" }]
|
|
16
|
+
}], propDecorators: { isGlobalSpinner: [{
|
|
17
|
+
type: Input
|
|
18
|
+
}], contentClass: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}], ariaLabel: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}] } });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zcGlubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9wcm9ncmVzc2luZGljYXRvci9kZWZhdWx0L2RlZmF1bHQtc3Bpbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvcHJvZ3Jlc3NpbmRpY2F0b3IvZGVmYXVsdC9kZWZhdWx0LXNwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTL0MsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFXLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsNkJBQTZCLENBQUM7S0FFdkQ7OEdBSlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsb0xDVnRDLHFZQVNBLDJDRERZLFlBQVk7OzJGQUVYLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBRWIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBR2QsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGYtZGVmYXVsdC1zcGlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlZmF1bHQtc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEZkRlZmF1bHRTcGlubmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXNHbG9iYWxTcGlubmVyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcyA9ICdzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnknO1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmc7XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImNvbnRlbnRDbGFzc1wiIFthdHRyLnJvbGVdPVwiaXNHbG9iYWxTcGlubmVyID8gJ2FsZXJ0JyA6ICdzdGF0dXMnXCI+XG4gIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFyaWFMYWJlbDsgZWxzZSBkZWZhdWx0QXJpYUxhYmVsXCI+e3sgYXJpYUxhYmVsIH19PC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRBcmlhTGFiZWw+XG4gIDxuZy1jb250YWluZXIgaTE4bj1cIkBAZGYucHJvZ3Jlc3NpbmRpY2F0b3IuZGVmYXVsdC5zcGlubmVyLmFyaWFMYWJlbFwiPkxvYWRpbmcuLi48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|