@energycap/components 0.42.4-esbuild.20250131-1219 → 0.42.4-esbuild.20250131-1256
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/esm2022/energycap-components.mjs +5 -0
- package/esm2022/lib/components.module.mjs +423 -0
- package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
- package/esm2022/lib/controls/button/button.component.mjs +106 -0
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
- package/esm2022/lib/controls/button/copy-button.directive.mjs +28 -0
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +91 -0
- package/esm2022/lib/controls/calendar/calendar.component.mjs +248 -0
- package/esm2022/lib/controls/calendar/calendar.types.mjs +2 -0
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
- package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -0
- package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +57 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +62 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +100 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +101 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +76 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +79 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +210 -0
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +81 -0
- package/esm2022/lib/controls/date-input/date-input.component.mjs +464 -0
- package/esm2022/lib/controls/date-input/date-input.types.mjs +44 -0
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
- package/esm2022/lib/controls/form-control/form-control.component.mjs +98 -0
- package/esm2022/lib/controls/form-control-base.mjs +151 -0
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
- package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
- package/esm2022/lib/controls/help-popover/help-popover.component.mjs +31 -0
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
- package/esm2022/lib/controls/link-button/link-button.component.mjs +11 -0
- package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
- package/esm2022/lib/controls/navigation/link-item.mjs +2 -0
- package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/esm2022/lib/controls/navigation/nav-item.mjs +2 -0
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
- package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
- package/esm2022/lib/controls/radio-button/radio-button-option.mjs +3 -0
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
- package/esm2022/lib/controls/select/select.component.mjs +88 -0
- package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
- package/esm2022/lib/core/cache.service.mjs +105 -0
- package/esm2022/lib/core/custom-validators.mjs +29 -0
- package/esm2022/lib/core/date-time-helper.mjs +228 -0
- package/esm2022/lib/core/error.service.mjs +61 -0
- package/esm2022/lib/core/router-helper.service.mjs +111 -0
- package/esm2022/lib/core/scroll.service.mjs +89 -0
- package/esm2022/lib/core/telemetry-tracker.service.mjs +16 -0
- package/esm2022/lib/core/telemetry.service.mjs +38 -0
- package/esm2022/lib/core/validation-message.service.mjs +185 -0
- package/esm2022/lib/core/validation-patterns.mjs +31 -0
- package/esm2022/lib/core/window.service.mjs +186 -0
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
- package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
- package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
- package/esm2022/lib/display/dialog/dialog-content.mjs +2 -0
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/esm2022/lib/display/dialog/dialog-types.mjs +77 -0
- package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
- package/esm2022/lib/display/dialog/dialog.service.mjs +71 -0
- package/esm2022/lib/display/help/help-types.mjs +2 -0
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
- package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +54 -0
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
- package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
- package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
- package/esm2022/lib/display/resizable/resizable.component.mjs +57 -0
- package/esm2022/lib/display/spinner/spinner.component.mjs +12 -0
- package/esm2022/lib/display/splash/splash.component.mjs +42 -0
- package/esm2022/lib/display/splash/splash.service.mjs +35 -0
- package/esm2022/lib/display/table/resizable-column.component.mjs +20 -0
- package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
- package/esm2022/lib/display/table/table-detail-row.component.mjs +28 -0
- package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
- package/esm2022/lib/display/table/table-master-header-row.component.mjs +14 -0
- package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
- package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2022/lib/display/table/table.component.mjs +249 -0
- package/esm2022/lib/display/tags/tag.mjs +18 -0
- package/esm2022/lib/display/tags/tags.component.mjs +77 -0
- package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
- package/esm2022/lib/display/toast/toast-types.mjs +8 -0
- package/esm2022/lib/display/toast/toast.service.mjs +35 -0
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/esm2022/lib/display/tooltip/tooltip.component.mjs +28 -0
- package/esm2022/lib/display/tooltip/tooltip.service.mjs +78 -0
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
- package/esm2022/lib/display/tour/tour-types.mjs +34 -0
- package/esm2022/lib/display/tour/tour.component.mjs +398 -0
- package/esm2022/lib/display/tour/tour.service.mjs +75 -0
- package/esm2022/lib/display/tree/tree.component.mjs +135 -0
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
- package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +100 -0
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
- package/esm2022/lib/shared/display.mjs +6 -0
- package/esm2022/lib/shared/form-group.helper.mjs +67 -0
- package/esm2022/lib/shared/json-helper.mjs +19 -0
- package/esm2022/lib/shared/lodash-helper.mjs +52 -0
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
- package/esm2022/lib/shared/page/page-statuses.mjs +23 -0
- package/esm2022/lib/shared/page/page-title/page-title.component.mjs +23 -0
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
- package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +17 -0
- package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +17 -0
- package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +38 -0
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
- package/esm2022/lib/shared/testing/public-mocks.spec.mjs +148 -0
- package/esm2022/lib/shared/testing/spy-factory.spec.mjs +40 -0
- package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +57 -0
- package/esm2022/lib/shared/user-preference.service.mjs +17 -0
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -0
- package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -0
- package/esm2022/public-api.mjs +117 -0
- package/fesm2022/energycap-components.mjs +13219 -0
- package/fesm2022/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components.module.d.ts +92 -0
- package/lib/controls/banner/banner.component.d.ts +50 -0
- package/lib/controls/button/button.component.d.ts +78 -0
- package/lib/controls/button/copy-button-base.directive.d.ts +20 -0
- package/lib/controls/button/copy-button.directive.d.ts +14 -0
- package/lib/controls/button/copy-table-button.directive.d.ts +19 -0
- package/lib/controls/calendar/calendar-item.component.d.ts +22 -0
- package/lib/controls/calendar/calendar.component.d.ts +52 -0
- package/lib/controls/calendar/calendar.types.d.ts +11 -0
- package/lib/controls/checkbox/checkbox.component.d.ts +65 -0
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -0
- package/lib/controls/combobox/combobox.component.d.ts +418 -0
- package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +42 -0
- package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +18 -0
- package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +18 -0
- package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +21 -0
- package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +20 -0
- package/lib/controls/date-input/date-input.component.d.ts +115 -0
- package/lib/controls/date-input/date-input.types.d.ts +62 -0
- package/lib/controls/dropdown/dropdown.component.d.ts +161 -0
- package/lib/controls/file-upload/file-upload.component.d.ts +124 -0
- package/lib/controls/form-control/form-control.component.d.ts +28 -0
- package/lib/controls/form-control-base.d.ts +110 -0
- package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -0
- package/lib/controls/form-group/form-group.component.d.ts +105 -0
- package/lib/controls/help-popover/help-popover.component.d.ts +11 -0
- package/lib/controls/item-picker/item-picker.component.d.ts +164 -0
- package/lib/controls/link-button/link-button.component.d.ts +5 -0
- package/lib/controls/menu/menu.component.d.ts +255 -0
- package/lib/controls/navigation/link-item.d.ts +32 -0
- package/lib/controls/navigation/nav-group.d.ts +18 -0
- package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -0
- package/lib/controls/navigation/nav-item.d.ts +31 -0
- package/lib/controls/numericbox/numericbox.component.d.ts +148 -0
- package/lib/controls/popover/popover.component.d.ts +51 -0
- package/lib/controls/radio-button/radio-button-option.d.ts +19 -0
- package/lib/controls/radio-button/radio-button.component.d.ts +53 -0
- package/lib/controls/select/select.component.d.ts +44 -0
- package/lib/controls/tabs/tabs.component.d.ts +30 -0
- package/lib/controls/textbox/textbox.component.d.ts +107 -0
- package/lib/core/cache.service.d.ts +33 -0
- package/lib/core/custom-validators.d.ts +20 -0
- package/lib/core/date-time-helper.d.ts +101 -0
- package/lib/core/error.service.d.ts +20 -0
- package/lib/core/router-helper.service.d.ts +48 -0
- package/lib/core/scroll.service.d.ts +36 -0
- package/lib/core/telemetry-tracker.service.d.ts +13 -0
- package/lib/core/telemetry.service.d.ts +31 -0
- package/lib/core/validation-message.service.d.ts +26 -0
- package/lib/core/validation-patterns.d.ts +22 -0
- package/lib/core/window.service.d.ts +116 -0
- package/lib/display/app-bar/app-bar.component.d.ts +20 -0
- package/lib/display/avatar/avatar.component.d.ts +35 -0
- package/lib/display/avatar/avatar.service.d.ts +24 -0
- package/lib/display/confirm/confirm.component.d.ts +123 -0
- package/lib/display/dialog/dialog-content.d.ts +19 -0
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -0
- package/lib/display/dialog/dialog-types.d.ts +130 -0
- package/lib/display/dialog/dialog.component.d.ts +120 -0
- package/lib/display/dialog/dialog.service.d.ts +48 -0
- package/lib/display/help/help-types.d.ts +33 -0
- package/lib/display/hierarchy/hierarchy-base.d.ts +97 -0
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -0
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -0
- package/lib/display/item-display/item-display.component.d.ts +43 -0
- package/lib/display/json-display/json-display.component.d.ts +16 -0
- package/lib/display/resizable/resizable-base.d.ts +67 -0
- package/lib/display/resizable/resizable.component.d.ts +31 -0
- package/lib/display/spinner/spinner.component.d.ts +5 -0
- package/lib/display/splash/splash.component.d.ts +16 -0
- package/lib/display/splash/splash.service.d.ts +22 -0
- package/lib/display/table/resizable-column.component.d.ts +10 -0
- package/lib/display/table/resizable-table.directive.d.ts +93 -0
- package/lib/display/table/searchable-table.component.d.ts +206 -0
- package/lib/display/table/table-detail-row.component.d.ts +8 -0
- package/lib/display/table/table-locked-column.component.d.ts +20 -0
- package/lib/display/table/table-master-header-row.component.d.ts +9 -0
- package/lib/display/table/table-master-row.component.d.ts +113 -0
- package/lib/display/table/table-pagination.component.d.ts +91 -0
- package/lib/display/table/table-selectable-row.component.d.ts +102 -0
- package/lib/display/table/table.component.d.ts +121 -0
- package/lib/display/tags/tag.d.ts +18 -0
- package/lib/display/tags/tags.component.d.ts +48 -0
- package/lib/display/toast/toast/toast.component.d.ts +23 -0
- package/lib/display/toast/toast-types.d.ts +24 -0
- package/lib/display/toast/toast.service.d.ts +20 -0
- package/lib/display/toast/toaster/toaster.component.d.ts +35 -0
- package/lib/display/tooltip/tooltip.component.d.ts +70 -0
- package/lib/display/tooltip/tooltip.service.d.ts +16 -0
- package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -0
- package/lib/display/tour/tour-types.d.ts +70 -0
- package/lib/display/tour/tour.component.d.ts +147 -0
- package/lib/display/tour/tour.service.d.ts +38 -0
- package/lib/display/tree/tree.component.d.ts +75 -0
- package/lib/display/view-overlay/view-overlay.component.d.ts +38 -0
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -0
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -0
- package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +23 -0
- package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -0
- package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -0
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -0
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -0
- package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -0
- package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -0
- package/lib/shared/display.d.ts +42 -0
- package/lib/shared/form-group.helper.d.ts +31 -0
- package/lib/shared/json-helper.d.ts +7 -0
- package/lib/shared/lodash-helper.d.ts +18 -0
- package/lib/shared/page/page-base/page-base.component.d.ts +259 -0
- package/lib/shared/page/page-statuses.d.ts +13 -0
- package/lib/shared/page/page-title/page-title.component.d.ts +9 -0
- package/lib/shared/page/page-view/page-view.component.d.ts +102 -0
- package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -0
- package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -0
- package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -0
- package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -0
- package/lib/shared/testing/public-mocks.spec.d.ts +90 -0
- package/lib/shared/testing/spy-factory.spec.d.ts +27 -0
- package/lib/shared/testing/translation-mocks.spec.d.ts +30 -0
- package/lib/shared/user-preference.service.d.ts +13 -0
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -0
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -0
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -0
- package/package.json +1 -5
- package/public-api.d.ts +113 -0
- package/schematics/collection.json +10 -0
- package/schematics/rxjs-7-upgrade/index.d.ts +3 -0
- package/schematics/rxjs-7-upgrade/index.js +68 -0
- package/schematics/rxjs-7-upgrade/index.js.map +1 -0
- package/schematics/rxjs-7-upgrade/schema.d.ts +4 -0
- package/schematics/rxjs-7-upgrade/schema.js +3 -0
- package/schematics/rxjs-7-upgrade/schema.js.map +1 -0
- package/schematics/rxjs-7-upgrade/schema.json +14 -0
- package/schematics/utilities/typescript.d.ts +7 -0
- package/schematics/utilities/typescript.js +42 -0
- package/schematics/utilities/typescript.js.map +1 -0
- package/schematics/utilities/workspace.d.ts +8 -0
- package/schematics/utilities/workspace.js +72 -0
- package/schematics/utilities/workspace.js.map +1 -0
- package/src/assets/images/email-icon.png +0 -0
- package/src/assets/images/email-logo.png +0 -0
- package/src/assets/images/favicon-ech.svg +7 -0
- package/src/assets/images/favicon-esa.svg +6 -0
- package/src/assets/images/favicon-eum.svg +6 -0
- package/src/assets/images/favicon.svg +5 -0
- package/src/assets/images/icon-carbonhub.svg +10 -0
- package/src/assets/images/icon-eum.svg +5 -0
- package/src/assets/images/icon-ucp.svg +5 -0
- package/src/assets/images/icon-wattics.svg +5 -0
- package/src/assets/images/icon.svg +4 -0
- package/src/assets/images/logo.svg +3 -0
- package/src/assets/images/splash.gif +0 -0
- package/src/assets/locales/en_US.json +59 -0
- package/src/assets/scripts/unsupported-browser.js +17 -0
- package/src/styles/_base.scss +38 -0
- package/src/styles/_colors.scss +96 -0
- package/src/styles/_core.scss +4 -0
- package/src/styles/_functions.scss +114 -0
- package/src/styles/_global-variables.scss +232 -0
- package/src/styles/_icons.scss +24 -0
- package/src/styles/bootstrap/_grid.scss +34 -0
- package/src/styles/bootstrap/_reboot.scss +323 -0
- package/src/styles/components/_card.scss +21 -0
- package/src/styles/components/_link-icons.scss +38 -0
- package/src/styles/components/_splash.scss +57 -0
- package/src/styles/components/_unsupported-browsers.scss +24 -0
- package/src/styles/email/_email-base.scss +228 -0
- package/src/styles/email/email.scss +43 -0
- package/src/styles/index.scss +27 -0
- package/src/styles/mixins/_animations.scss +18 -0
- package/src/styles/mixins/_button-base.scss +185 -0
- package/src/styles/mixins/_card-base.scss +40 -0
- package/src/styles/mixins/_common.scss +52 -0
- package/src/styles/mixins/_dialog-base.scss +96 -0
- package/src/styles/mixins/_form-control-base.scss +641 -0
- package/src/styles/mixins/_login.scss +74 -0
- package/src/styles/mixins/_menu-base.scss +153 -0
- package/src/styles/mixins/_overlay-base.scss +33 -0
- package/src/styles/mixins/_resizable-base.scss +57 -0
- package/src/styles/mixins/_spinner-base.scss +34 -0
- package/src/styles/mixins/_table-base.scss +298 -0
- package/src/styles/mixins/_tabs-base.scss +110 -0
- package/src/styles/mixins/_tags-base.scss +116 -0
- package/src/styles/mixins/_text.scss +89 -0
- package/src/styles/mixins.scss +15 -0
- package/src/styles/utilities/_borders.scss +30 -0
- package/src/styles/utilities/_common.scss +49 -0
- package/src/styles/utilities/_layout.scss +116 -0
- package/src/styles/utilities/_spacing.scss +65 -0
- package/src/styles/utilities/_text.scss +139 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
/** Tag contains a label and type. Type is default by default */
|
2
|
+
export class Tag {
|
3
|
+
constructor(label, type, classList, icon, isDismissable, tooltip, url, target) {
|
4
|
+
this.target = '_self';
|
5
|
+
this.label = label;
|
6
|
+
this.type = type || 'info';
|
7
|
+
this.icon = icon;
|
8
|
+
this.isDismissable = isDismissable ?? false;
|
9
|
+
this.tooltip = tooltip;
|
10
|
+
this.url = url;
|
11
|
+
this.target = target || '_self';
|
12
|
+
if (classList) {
|
13
|
+
this.classList = classList;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
;
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsZ0VBQWdFO0FBQ2hFLE1BQU0sT0FBTyxHQUFHO0lBbUJkLFlBQVksS0FBYSxFQUFFLElBQWMsRUFBRSxTQUFrQixFQUFFLElBQWEsRUFBRSxhQUF1QixFQUFFLE9BQWdCLEVBQUUsR0FBWSxFQUFFLE1BQW1CO1FBRm5KLFdBQU0sR0FBZ0IsT0FBTyxDQUFDO1FBR25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFFaEMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRhZyB0eXBlIHVzZWQgdG8gc3R5bGUgdGhlIHRhZyAqL1xyXG5leHBvcnQgdHlwZSBUYWdUeXBlID0gXCJpbmZvXCIgfCBcInN1Y2Nlc3NcIiB8IFwid2FybmluZ1wiIHwgXCJkYW5nZXJcIiB8IFwiYWNjZW50XCIgfCBcImNoYXJnZWJhY2tcIiB8IFwiYWNjcnVhbFwiIHwgXCJpbnZlcnRlZFwiIHwgXCJzeXN0ZW1cIjtcclxuXHJcbi8qKiBMaW5rIHRhcmdldCBvcHRpb25zLCBzaGFyZWQgYW1vbmdzdCB0YWcsIG1lbnUgYW5kIGl0ZW0gZGlzcGxheSAqL1xyXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0ID0gJ19zZWxmJyB8ICdfYmxhbmsnIHwgJ19wYXJlbnQnIHwgJ190b3AnO1xyXG5cclxuLyoqIFRhZyBjb250YWlucyBhIGxhYmVsIGFuZCB0eXBlLiBUeXBlIGlzIGRlZmF1bHQgYnkgZGVmYXVsdCAqL1xyXG5leHBvcnQgY2xhc3MgVGFnIHtcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgcHVibGljIHR5cGU6IFRhZ1R5cGU7XHJcblxyXG4gIHB1YmxpYyBpY29uPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgaXNEaXNtaXNzYWJsZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0YWcgZm9yIGN1c3RvbSBzdHlsaW5nICovXHJcbiAgcHVibGljIGNsYXNzTGlzdD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIHRvb2x0aXA/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBXaGVuIHNldCBhIGh5cGVybGluayB3aWxsIGJlIHNob3duIGxpbmtpbmcgdG8gdGhlIHZhbHVlIHNldCAqL1xyXG4gIHB1YmxpYyB1cmw/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB0YXJnZXQ/OiBMaW5rVGFyZ2V0ID0gJ19zZWxmJztcclxuXHJcbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZywgdHlwZT86IFRhZ1R5cGUsIGNsYXNzTGlzdD86IHN0cmluZywgaWNvbj86IHN0cmluZywgaXNEaXNtaXNzYWJsZT86IGJvb2xlYW4sIHRvb2x0aXA/OiBzdHJpbmcsIHVybD86IHN0cmluZywgdGFyZ2V0PzogTGlua1RhcmdldCApIHtcclxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMudHlwZSA9IHR5cGUgfHwgJ2luZm8nO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuaXNEaXNtaXNzYWJsZSA9IGlzRGlzbWlzc2FibGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgdGhpcy51cmwgPSB1cmw7XHJcbiAgICB0aGlzLnRhcmdldCA9IHRhcmdldCB8fCAnX3NlbGYnO1xyXG5cclxuICAgIGlmIChjbGFzc0xpc3QpIHtcclxuICAgICAgdGhpcy5jbGFzc0xpc3QgPSBjbGFzc0xpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG59OyJdfQ==
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
import * as i2 from "@ngx-translate/core";
|
5
|
+
export class TagsComponent {
|
6
|
+
constructor() {
|
7
|
+
/**The ID of this set of tags */
|
8
|
+
this.id = '';
|
9
|
+
/**
|
10
|
+
* Determines whether the tags will wrap or not
|
11
|
+
*
|
12
|
+
* @type {boolean}
|
13
|
+
* @memberof TagsComponent
|
14
|
+
*/
|
15
|
+
this.wrap = true;
|
16
|
+
/**
|
17
|
+
* Displays the tags in condensed mode
|
18
|
+
*/
|
19
|
+
this.isCondensed = false;
|
20
|
+
/**
|
21
|
+
* Emits the tag item when the tag's close button is clicked
|
22
|
+
*/
|
23
|
+
this.tagClosed = new EventEmitter();
|
24
|
+
/**
|
25
|
+
* Tags to be displayed
|
26
|
+
*
|
27
|
+
* @type {Tag[]}
|
28
|
+
* @memberof TagsComponent
|
29
|
+
*/
|
30
|
+
this.tagsArray = [];
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Angular onChanges lifecycle hook
|
34
|
+
* @see {@link https://angular.io/guide/lifecycle-hooks | Life-cycle hooks}
|
35
|
+
*
|
36
|
+
* @param {SimpleChanges} changes
|
37
|
+
* @memberof TagsComponent
|
38
|
+
*/
|
39
|
+
ngOnChanges(changes) {
|
40
|
+
if (changes.tags) {
|
41
|
+
if (this.tags) {
|
42
|
+
// If only given a single item, put it in an array so it works in the template
|
43
|
+
if (Array.isArray(this.tags)) {
|
44
|
+
this.tagsArray = this.tags;
|
45
|
+
}
|
46
|
+
else {
|
47
|
+
this.tagsArray = [this.tags];
|
48
|
+
}
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
// reset array if tags becomes undefined
|
52
|
+
this.tagsArray = [];
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
closeTag(tag) {
|
57
|
+
this.tagsArray = this.tagsArray.filter(t => t !== tag);
|
58
|
+
this.tagClosed.emit(tag);
|
59
|
+
}
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
61
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TagsComponent, selector: "ec-tags", inputs: { id: "id", tags: "tags", wrap: "wrap", isCondensed: "isCondensed" }, outputs: { tagClosed: "tagClosed" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"tags\"\r\n [class.is-wrapped]=\"wrap\">\r\n <li *ngFor=\"let tag of tagsArray; index as i\"\r\n id=\"{{id}}_tag_{{i}}\"\r\n class=\"tag is-{{tag.type}} {{tag.classList}} mr-1\"\r\n [ngClass]=\"{'text-caption-1': !isCondensed, 'text-caption-2': isCondensed, 'is-condensed': isCondensed, 'pr-0': tag.isDismissable, 'is-link': tag.url}\"\r\n title=\"{{tag.tooltip | translate}}\">\r\n <i *ngIf=\"tag.icon\"\r\n class=\"ec-icon {{tag.icon}} ec-icon-sm\"></i>\r\n <span *ngIf=\"!tag.url\">{{tag.label | translate}}</span>\r\n\r\n <a *ngIf=\"tag.url\"\r\n id=\"{{id}}_tag_{{i}}_link\"\r\n class=\"font-weight-bold\"\r\n href=\"{{tag.url}}\"\r\n target=\"{{tag.target}}\">{{tag.label | translate}}</a>\r\n\r\n <button id=\"{{id}}_tag_{{i}}_dismissButton\"\r\n *ngIf=\"tag.isDismissable\"\r\n (click)=\"closeTag(tag)\">\r\n <i class=\"ec-icon ec-icon-sm icon-cancel\"></i>\r\n </button>\r\n </li>\r\n</ul>", styles: ["@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{display:block}.tags{padding:0;margin:0;list-style:none;display:flex}.tags.is-wrapped{flex-wrap:wrap;margin-top:.25rem}.tags.is-wrapped>.tag{margin-bottom:.25rem}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:var(--ec-color-gray-1);border:2px solid var(--ec-color-gray-4);display:inline-flex;align-items:center;border-radius:calc(var(--ec-border-radius, .25rem) * 3);height:1.5rem;line-height:1.25rem;padding:0 .4375rem;vertical-align:top}.tag>.ec-icon:first-child{margin-right:.1875rem}.tag .ec-icon{display:flex;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;width:auto;height:auto;min-width:1em;justify-content:center}.tag.is-inverted{background-color:var(--ec-background-color);border-color:var(--ec-background-color)}.tag.is-info{background-color:var(--ec-color-cobalt-1);border-color:var(--ec-color-info)}.tag.is-info>.ec-icon:first-child{color:var(--ec-color-info)}.tag.is-success{background-color:var(--ec-color-green-1);border-color:var(--ec-color-success)}.tag.is-success>.ec-icon:first-child{color:var(--ec-color-success)}.tag.is-warning{background-color:var(--ec-color-yellow-1);border-color:var(--ec-color-caution)}.tag.is-warning>.ec-icon:first-child{color:var(--ec-color-caution)}.tag.is-danger{background-color:var(--ec-color-red-1);border-color:var(--ec-color-danger)}.tag.is-danger>.ec-icon:first-child{color:var(--ec-color-danger)}.tag.is-accent{background-color:var(--ec-color-purple-1);border-color:var(--ec-color-accent)}.tag.is-accent>.ec-icon:first-child{color:var(--ec-color-accent)}.tag.is-chargeback{background-color:var(--ec-color-orange-1);border-color:var(--ec-color-orange-7)}.tag.is-chargeback>.ec-icon:first-child{color:var(--ec-color-orange-7)}.tag.is-accrual{background-color:var(--ec-color-aqua-1);border-color:var(--ec-color-aqua-5)}.tag.is-accrual>.ec-icon:first-child{color:var(--ec-color-aqua-5)}.tag.is-system{background-color:var(--ec-color-gray-1);border-color:var(--ec-color-gray-4)}.tag.is-system>.ec-icon:first-child{color:var(--ec-color-gray-4)}button{background-color:transparent;border:0;display:flex;align-items:center;padding:0 .25rem;height:100%;cursor:pointer;position:relative}button:hover,button:focus{outline:none}button:hover:before,button:focus:before{display:block;content:\"\";position:absolute;inset:.0625rem .125rem;background-color:#1a1a231a;border-radius:.125rem}.is-condensed{border-radius:var(--ec-border-radius);border-width:1px;padding:0 .25rem;height:1.125rem;line-height:1.125rem;min-width:1.125rem;justify-content:center}.is-condensed>.ec-icon:first-child{margin-right:.125rem}.is-link a:after{opacity:1;margin-left:.1875rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
62
|
+
}
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TagsComponent, decorators: [{
|
64
|
+
type: Component,
|
65
|
+
args: [{ selector: 'ec-tags', template: "<ul class=\"tags\"\r\n [class.is-wrapped]=\"wrap\">\r\n <li *ngFor=\"let tag of tagsArray; index as i\"\r\n id=\"{{id}}_tag_{{i}}\"\r\n class=\"tag is-{{tag.type}} {{tag.classList}} mr-1\"\r\n [ngClass]=\"{'text-caption-1': !isCondensed, 'text-caption-2': isCondensed, 'is-condensed': isCondensed, 'pr-0': tag.isDismissable, 'is-link': tag.url}\"\r\n title=\"{{tag.tooltip | translate}}\">\r\n <i *ngIf=\"tag.icon\"\r\n class=\"ec-icon {{tag.icon}} ec-icon-sm\"></i>\r\n <span *ngIf=\"!tag.url\">{{tag.label | translate}}</span>\r\n\r\n <a *ngIf=\"tag.url\"\r\n id=\"{{id}}_tag_{{i}}_link\"\r\n class=\"font-weight-bold\"\r\n href=\"{{tag.url}}\"\r\n target=\"{{tag.target}}\">{{tag.label | translate}}</a>\r\n\r\n <button id=\"{{id}}_tag_{{i}}_dismissButton\"\r\n *ngIf=\"tag.isDismissable\"\r\n (click)=\"closeTag(tag)\">\r\n <i class=\"ec-icon ec-icon-sm icon-cancel\"></i>\r\n </button>\r\n </li>\r\n</ul>", styles: ["@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{display:block}.tags{padding:0;margin:0;list-style:none;display:flex}.tags.is-wrapped{flex-wrap:wrap;margin-top:.25rem}.tags.is-wrapped>.tag{margin-bottom:.25rem}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:var(--ec-color-gray-1);border:2px solid var(--ec-color-gray-4);display:inline-flex;align-items:center;border-radius:calc(var(--ec-border-radius, .25rem) * 3);height:1.5rem;line-height:1.25rem;padding:0 .4375rem;vertical-align:top}.tag>.ec-icon:first-child{margin-right:.1875rem}.tag .ec-icon{display:flex;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;width:auto;height:auto;min-width:1em;justify-content:center}.tag.is-inverted{background-color:var(--ec-background-color);border-color:var(--ec-background-color)}.tag.is-info{background-color:var(--ec-color-cobalt-1);border-color:var(--ec-color-info)}.tag.is-info>.ec-icon:first-child{color:var(--ec-color-info)}.tag.is-success{background-color:var(--ec-color-green-1);border-color:var(--ec-color-success)}.tag.is-success>.ec-icon:first-child{color:var(--ec-color-success)}.tag.is-warning{background-color:var(--ec-color-yellow-1);border-color:var(--ec-color-caution)}.tag.is-warning>.ec-icon:first-child{color:var(--ec-color-caution)}.tag.is-danger{background-color:var(--ec-color-red-1);border-color:var(--ec-color-danger)}.tag.is-danger>.ec-icon:first-child{color:var(--ec-color-danger)}.tag.is-accent{background-color:var(--ec-color-purple-1);border-color:var(--ec-color-accent)}.tag.is-accent>.ec-icon:first-child{color:var(--ec-color-accent)}.tag.is-chargeback{background-color:var(--ec-color-orange-1);border-color:var(--ec-color-orange-7)}.tag.is-chargeback>.ec-icon:first-child{color:var(--ec-color-orange-7)}.tag.is-accrual{background-color:var(--ec-color-aqua-1);border-color:var(--ec-color-aqua-5)}.tag.is-accrual>.ec-icon:first-child{color:var(--ec-color-aqua-5)}.tag.is-system{background-color:var(--ec-color-gray-1);border-color:var(--ec-color-gray-4)}.tag.is-system>.ec-icon:first-child{color:var(--ec-color-gray-4)}button{background-color:transparent;border:0;display:flex;align-items:center;padding:0 .25rem;height:100%;cursor:pointer;position:relative}button:hover,button:focus{outline:none}button:hover:before,button:focus:before{display:block;content:\"\";position:absolute;inset:.0625rem .125rem;background-color:#1a1a231a;border-radius:.125rem}.is-condensed{border-radius:var(--ec-border-radius);border-width:1px;padding:0 .25rem;height:1.125rem;line-height:1.125rem;min-width:1.125rem;justify-content:center}.is-condensed>.ec-icon:first-child{margin-right:.125rem}.is-link a:after{opacity:1;margin-left:.1875rem}\n"] }]
|
66
|
+
}], ctorParameters: () => [], propDecorators: { id: [{
|
67
|
+
type: Input
|
68
|
+
}], tags: [{
|
69
|
+
type: Input
|
70
|
+
}], wrap: [{
|
71
|
+
type: Input
|
72
|
+
}], isCondensed: [{
|
73
|
+
type: Input
|
74
|
+
}], tagClosed: [{
|
75
|
+
type: Output
|
76
|
+
}] } });
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpHLE1BQU0sT0FBTyxhQUFhO0lBdUN4QjtRQXJDQSxnQ0FBZ0M7UUFDaEIsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQVVoQzs7Ozs7V0FLRztRQUNhLFNBQUksR0FBWSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDYSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qzs7V0FFRztRQUNjLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4RTs7Ozs7V0FLRztRQUNJLGNBQVMsR0FBVSxFQUFFLENBQUM7SUFFYixDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCw4RUFBOEU7Z0JBQzlFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM3QixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTix3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFRO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0FuRVUsYUFBYTttR0FBYixhQUFhLHVMQ1IxQixpaENBdUJLOzs0RkRmUSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7d0RBT0gsRUFBRTtzQkFBakIsS0FBSztnQkFRVSxJQUFJO3NCQUFuQixLQUFLO2dCQVFVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVyxTQUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuL3RhZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRhZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWdzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWdzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvKipUaGUgSUQgb2YgdGhpcyBzZXQgb2YgdGFncyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uZSBvciBtb3JlIHRhZ3NcclxuICAgKiBcclxuICAgKiBAdHlwZSB7KFRhZyB8IFRhZ1tdKX1cclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWdzPzogVGFnIHwgVGFnW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgdGFncyB3aWxsIHdyYXAgb3Igbm90XHJcbiAgICogXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFRhZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgd3JhcDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIHRoZSB0YWdzIGluIGNvbmRlbnNlZCBtb2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlzQ29uZGVuc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSB0YWcgaXRlbSB3aGVuIHRoZSB0YWcncyBjbG9zZSBidXR0b24gaXMgY2xpY2tlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdGFnQ2xvc2VkOiBFdmVudEVtaXR0ZXI8VGFnPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFnPigpO1xyXG5cclxuICAvKipcclxuICAgKiBUYWdzIHRvIGJlIGRpc3BsYXllZFxyXG4gICAqIFxyXG4gICAqIEB0eXBlIHtUYWdbXX1cclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0YWdzQXJyYXk6IFRhZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25DaGFuZ2VzIGxpZmVjeWNsZSBob29rXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rcyB8IExpZmUtY3ljbGUgaG9va3N9XHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzIFxyXG4gICAqIEBtZW1iZXJvZiBUYWdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMudGFncykge1xyXG4gICAgICBpZiAodGhpcy50YWdzKSB7XHJcbiAgICAgICAgLy8gSWYgb25seSBnaXZlbiBhIHNpbmdsZSBpdGVtLCBwdXQgaXQgaW4gYW4gYXJyYXkgc28gaXQgd29ya3MgaW4gdGhlIHRlbXBsYXRlXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy50YWdzKSkge1xyXG4gICAgICAgICAgdGhpcy50YWdzQXJyYXkgPSB0aGlzLnRhZ3M7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFnc0FycmF5ID0gW3RoaXMudGFnc107XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHJlc2V0IGFycmF5IGlmIHRhZ3MgYmVjb21lcyB1bmRlZmluZWRcclxuICAgICAgICB0aGlzLnRhZ3NBcnJheSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUYWcodGFnOiBUYWcpIHtcclxuICAgIHRoaXMudGFnc0FycmF5ID0gdGhpcy50YWdzQXJyYXkuZmlsdGVyKHQgPT4gdCAhPT0gdGFnKTtcclxuICAgIHRoaXMudGFnQ2xvc2VkLmVtaXQodGFnKTtcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwidGFnc1wiXHJcbiAgICBbY2xhc3MuaXMtd3JhcHBlZF09XCJ3cmFwXCI+XHJcbiAgIDxsaSAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NBcnJheTsgaW5kZXggYXMgaVwiXHJcbiAgICAgICBpZD1cInt7aWR9fV90YWdfe3tpfX1cIlxyXG4gICAgICAgY2xhc3M9XCJ0YWcgaXMte3t0YWcudHlwZX19IHt7dGFnLmNsYXNzTGlzdH19IG1yLTFcIlxyXG4gICAgICAgW25nQ2xhc3NdPVwieyd0ZXh0LWNhcHRpb24tMSc6ICFpc0NvbmRlbnNlZCwgJ3RleHQtY2FwdGlvbi0yJzogaXNDb25kZW5zZWQsICdpcy1jb25kZW5zZWQnOiBpc0NvbmRlbnNlZCwgJ3ByLTAnOiB0YWcuaXNEaXNtaXNzYWJsZSwgJ2lzLWxpbmsnOiB0YWcudXJsfVwiXHJcbiAgICAgICB0aXRsZT1cInt7dGFnLnRvb2x0aXAgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICA8aSAqbmdJZj1cInRhZy5pY29uXCJcclxuICAgICAgICAgY2xhc3M9XCJlYy1pY29uIHt7dGFnLmljb259fSBlYy1pY29uLXNtXCI+PC9pPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiF0YWcudXJsXCI+e3t0YWcubGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICAgIDxhICpuZ0lmPVwidGFnLnVybFwiXHJcbiAgICAgICAgIGlkPVwie3tpZH19X3RhZ197e2l9fV9saW5rXCJcclxuICAgICAgICAgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkXCJcclxuICAgICAgICAgaHJlZj1cInt7dGFnLnVybH19XCJcclxuICAgICAgICAgdGFyZ2V0PVwie3t0YWcudGFyZ2V0fX1cIj57e3RhZy5sYWJlbCB8IHRyYW5zbGF0ZX19PC9hPlxyXG5cclxuICAgICAgPGJ1dHRvbiBpZD1cInt7aWR9fV90YWdfe3tpfX1fZGlzbWlzc0J1dHRvblwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0YWcuaXNEaXNtaXNzYWJsZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFnKHRhZylcIj5cclxuICAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGVjLWljb24tc20gaWNvbi1jYW5jZWxcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICA8L2xpPlxyXG48L3VsPiJdfQ==
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
2
|
+
import { race, Subject, timer } from 'rxjs';
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../toast.service";
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "../../../controls/banner/banner.component";
|
8
|
+
import * as i4 from "../../../controls/link-button/link-button.component";
|
9
|
+
import * as i5 from "@ngx-translate/core";
|
10
|
+
export class ToastComponent {
|
11
|
+
constructor(toastService) {
|
12
|
+
this.toastService = toastService;
|
13
|
+
this.open = false;
|
14
|
+
this.TOAST_ANIMATION_DURATION = 250;
|
15
|
+
this.closed = new EventEmitter();
|
16
|
+
this.TIMED_TOAST_DURATION = 4000;
|
17
|
+
this.destroyed = new Subject();
|
18
|
+
}
|
19
|
+
ngOnInit() {
|
20
|
+
this.toastService.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
|
21
|
+
if (event.action == 'remove' && event.toast === this.toastItem) {
|
22
|
+
this.close(event);
|
23
|
+
}
|
24
|
+
});
|
25
|
+
}
|
26
|
+
ngOnChanges(changes) {
|
27
|
+
if (changes.toastItem && this.toastItem) {
|
28
|
+
this.id = this.toastItem.id;
|
29
|
+
this.open = true;
|
30
|
+
if (!this.toastItem.dismissible) {
|
31
|
+
this.closeAfterTimer();
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
ngOnDestroy() {
|
36
|
+
this.destroyed.next();
|
37
|
+
this.destroyed.complete();
|
38
|
+
}
|
39
|
+
closeClicked() {
|
40
|
+
if (this.toastItem) {
|
41
|
+
this.toastService.dismissToast(this.toastItem, 'user');
|
42
|
+
}
|
43
|
+
}
|
44
|
+
close(event) {
|
45
|
+
this.open = false;
|
46
|
+
timer(this.TOAST_ANIMATION_DURATION).subscribe(() => {
|
47
|
+
this.closed.emit(event);
|
48
|
+
});
|
49
|
+
}
|
50
|
+
closeAfterTimer() {
|
51
|
+
timer(this.TIMED_TOAST_DURATION).pipe(takeUntil(race(this.closed, this.destroyed))).subscribe(() => {
|
52
|
+
if (this.toastItem) {
|
53
|
+
this.toastService.dismissToast(this.toastItem, 'auto');
|
54
|
+
}
|
55
|
+
});
|
56
|
+
}
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component }); }
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToastComponent, selector: "ec-toast", inputs: { toastItem: "toastItem" }, outputs: { closed: "closed" }, host: { properties: { "attr.id": "this.id", "class.is-open": "this.open", "style.--toast-animation-duration.ms": "this.TOAST_ANIMATION_DURATION" } }, usesOnChanges: true, ngImport: i0, template: "<ec-banner id=\"{{toastItem?.id}}_banner\"\r\n [type]=\"toastItem?.type\"\r\n bannerStyle=\"toast\"\r\n [customIcon]=\"toastItem?.icon\"\r\n [showCloseBtn]=\"toastItem?.dismissible\"\r\n [autoHideOnClose]=\"false\"\r\n (closed)=\"closeClicked()\">\r\n <div class=\"d-flex\">\r\n <div id=\"{{toastItem?.id}}_message\"\r\n [innerHTML]=\"toastItem?.message | translate\"></div>\r\n <button id=\"{{toastItem?.id}}_action\"\r\n ecLinkButton\r\n *ngIf=\"toastItem?.action && toastItem?.actionLabel\"\r\n class=\"font-weight-bold ml-2\"\r\n (click)=\"toastItem!.action!()\">{{toastItem?.actionLabel | translate}}</button>\r\n </div>\r\n</ec-banner>", styles: [":host{display:block;position:fixed;bottom:0;left:50%;transform:translate(-50%,150%);transition:transform var(--toast-animation-duration, .25s);transition-timing-function:ease-in;z-index:var(--ec-z-index-toast)}:host.is-open{transform:translate(-50%,calc(-1 * var(--toast-bottom, 0rem) - 1.5rem));transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BannerComponent, selector: "ec-banner", inputs: ["hidden", "id", "type", "bannerStyle", "title", "text", "list", "showCloseBtn", "autoHideOnClose", "customIcon", "rememberClosed"], outputs: ["closed"] }, { kind: "component", type: i4.LinkButtonComponent, selector: "button[ecLinkButton]" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
|
59
|
+
}
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastComponent, decorators: [{
|
61
|
+
type: Component,
|
62
|
+
args: [{ selector: 'ec-toast', template: "<ec-banner id=\"{{toastItem?.id}}_banner\"\r\n [type]=\"toastItem?.type\"\r\n bannerStyle=\"toast\"\r\n [customIcon]=\"toastItem?.icon\"\r\n [showCloseBtn]=\"toastItem?.dismissible\"\r\n [autoHideOnClose]=\"false\"\r\n (closed)=\"closeClicked()\">\r\n <div class=\"d-flex\">\r\n <div id=\"{{toastItem?.id}}_message\"\r\n [innerHTML]=\"toastItem?.message | translate\"></div>\r\n <button id=\"{{toastItem?.id}}_action\"\r\n ecLinkButton\r\n *ngIf=\"toastItem?.action && toastItem?.actionLabel\"\r\n class=\"font-weight-bold ml-2\"\r\n (click)=\"toastItem!.action!()\">{{toastItem?.actionLabel | translate}}</button>\r\n </div>\r\n</ec-banner>", styles: [":host{display:block;position:fixed;bottom:0;left:50%;transform:translate(-50%,150%);transition:transform var(--toast-animation-duration, .25s);transition-timing-function:ease-in;z-index:var(--ec-z-index-toast)}:host.is-open{transform:translate(-50%,calc(-1 * var(--toast-bottom, 0rem) - 1.5rem));transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}\n"] }]
|
63
|
+
}], ctorParameters: () => [{ type: i1.ToastService }], propDecorators: { toastItem: [{
|
64
|
+
type: Input
|
65
|
+
}], id: [{
|
66
|
+
type: HostBinding,
|
67
|
+
args: ['attr.id']
|
68
|
+
}], open: [{
|
69
|
+
type: HostBinding,
|
70
|
+
args: ['class.is-open']
|
71
|
+
}], TOAST_ANIMATION_DURATION: [{
|
72
|
+
type: HostBinding,
|
73
|
+
args: ['style.--toast-animation-duration.ms']
|
74
|
+
}], closed: [{
|
75
|
+
type: Output
|
76
|
+
}] } });
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxjQUFjO0lBYXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUlQsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNBLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV6RSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUV4Qyx5QkFBb0IsR0FBVyxJQUFJLENBQUM7UUFDN0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFVSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBRWpCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWU7UUFDckIsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUM3QyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVEVSxjQUFjO21HQUFkLGNBQWMsOFJDWDNCLDJ2QkFnQlk7OzRGRExDLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTtpRkFNSixTQUFTO3NCQUF4QixLQUFLO2dCQUV5QixFQUFFO3NCQUFoQyxXQUFXO3VCQUFDLFNBQVM7Z0JBQ2UsSUFBSTtzQkFBeEMsV0FBVzt1QkFBQyxlQUFlO2dCQUMrQix3QkFBd0I7c0JBQWxGLFdBQVc7dUJBQUMscUNBQXFDO2dCQUVqQyxNQUFNO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJhY2UsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9hc3RFdmVudCwgVG9hc3RJdGVtIH0gZnJvbSAnLi4vdG9hc3QtdHlwZXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtdG9hc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBcclxuICBASW5wdXQoKSBwdWJsaWMgdG9hc3RJdGVtPzogVG9hc3RJdGVtO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuJykgcHVibGljIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdG9hc3QtYW5pbWF0aW9uLWR1cmF0aW9uLm1zJykgcHVibGljIFRPQVNUX0FOSU1BVElPTl9EVVJBVElPTiA9IDI1MDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRvYXN0RXZlbnQ+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgVElNRURfVE9BU1RfRFVSQVRJT046IG51bWJlciA9IDQwMDA7XHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQuYWN0aW9uID09ICdyZW1vdmUnICYmIGV2ZW50LnRvYXN0ID09PSB0aGlzLnRvYXN0SXRlbSkge1xyXG4gICAgICAgIHRoaXMuY2xvc2UoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnRvYXN0SXRlbSAmJiB0aGlzLnRvYXN0SXRlbSkge1xyXG4gICAgICB0aGlzLmlkID0gdGhpcy50b2FzdEl0ZW0uaWQ7XHJcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XHJcblxyXG4gICAgICBpZiAoIXRoaXMudG9hc3RJdGVtLmRpc21pc3NpYmxlKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZUFmdGVyVGltZXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQ2xpY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLnRvYXN0SXRlbSkge1xyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzVG9hc3QodGhpcy50b2FzdEl0ZW0sICd1c2VyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsb3NlKGV2ZW50OiBUb2FzdEV2ZW50KSB7XHJcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcclxuICAgIHRpbWVyKHRoaXMuVE9BU1RfQU5JTUFUSU9OX0RVUkFUSU9OKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KGV2ZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZUFmdGVyVGltZXIoKSB7XHJcbiAgICB0aW1lcih0aGlzLlRJTUVEX1RPQVNUX0RVUkFUSU9OKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwocmFjZSh0aGlzLmNsb3NlZCwgdGhpcy5kZXN0cm95ZWQpKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzVG9hc3QodGhpcy50b2FzdEl0ZW0sICdhdXRvJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZWMtYmFubmVyIGlkPVwie3t0b2FzdEl0ZW0/LmlkfX1fYmFubmVyXCJcclxuICAgICAgICAgICBbdHlwZV09XCJ0b2FzdEl0ZW0/LnR5cGVcIlxyXG4gICAgICAgICAgIGJhbm5lclN0eWxlPVwidG9hc3RcIlxyXG4gICAgICAgICAgIFtjdXN0b21JY29uXT1cInRvYXN0SXRlbT8uaWNvblwiXHJcbiAgICAgICAgICAgW3Nob3dDbG9zZUJ0bl09XCJ0b2FzdEl0ZW0/LmRpc21pc3NpYmxlXCJcclxuICAgICAgICAgICBbYXV0b0hpZGVPbkNsb3NlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAoY2xvc2VkKT1cImNsb3NlQ2xpY2tlZCgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdiBpZD1cInt7dG9hc3RJdGVtPy5pZH19X21lc3NhZ2VcIlxyXG4gICAgICAgICBbaW5uZXJIVE1MXT1cInRvYXN0SXRlbT8ubWVzc2FnZSB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgPGJ1dHRvbiBpZD1cInt7dG9hc3RJdGVtPy5pZH19X2FjdGlvblwiXHJcbiAgICAgICAgICAgIGVjTGlua0J1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInRvYXN0SXRlbT8uYWN0aW9uICYmIHRvYXN0SXRlbT8uYWN0aW9uTGFiZWxcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGQgbWwtMlwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2FzdEl0ZW0hLmFjdGlvbiEoKVwiPnt7dG9hc3RJdGVtPy5hY3Rpb25MYWJlbCB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZWMtYmFubmVyPiJdfQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export class ToastEvent {
|
2
|
+
constructor(action, toast, source = 'user') {
|
3
|
+
this.action = action;
|
4
|
+
this.toast = toast;
|
5
|
+
this.source = source;
|
6
|
+
}
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b2FzdC90b2FzdC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQkEsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFDUyxNQUFtQixFQUNuQixLQUFnQixFQUNoQixTQUFzQixNQUFNO1FBRjVCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFzQjtJQUNqQyxDQUFDO0NBQ04iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYW5uZXJUeXBlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYmFubmVyL2Jhbm5lci5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgVG9hc3RBY3Rpb24gPSAnYWRkJyB8ICdyZW1vdmUnO1xyXG5leHBvcnQgdHlwZSBUb2FzdFNvdXJjZSA9ICd1c2VyJyB8ICdhdXRvJztcclxuXHJcbmV4cG9ydCB0eXBlIFRvYXN0SXRlbSA9IHtcclxuICAvKiogSWQgdG8gcHV0IG9uIHRoZSB0b2FzdCBlbGVtZW50ICovXHJcbiAgaWQ/OiBzdHJpbmcsXHJcbiAgdHlwZTogQmFubmVyVHlwZSxcclxuICBtZXNzYWdlOiBzdHJpbmcsXHJcbiAgLyoqIFxyXG4gICAqIFdoZW4gZmFsc2UsIHRoZSB0b2FzdCB3aWxsIGNsb3NlIGl0c2VsZiBhZnRlciA0IHNlY29uZHMuXHJcbiAgICogV2hlbiB0cnVlLCB0aGUgdG9hc3Qgd2lsbCBwZXJzaXN0IGFuZCBzaG93IHRoZSBjbG9zZSBidXR0b24uXHJcbiAgICovXHJcbiAgZGlzbWlzc2libGU6IGJvb2xlYW4sXHJcbiAgLyoqIE92ZXJyaWRlcyB0aGUgZGVmYXVsdCBpY29uLiAqL1xyXG4gIGljb24/OiBzdHJpbmcsXHJcbiAgYWN0aW9uPzogKCkgPT4gYW55LFxyXG4gIGFjdGlvbkxhYmVsPzogc3RyaW5nXHJcbn07XHJcblxyXG5leHBvcnQgY2xhc3MgVG9hc3RFdmVudCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgYWN0aW9uOiBUb2FzdEFjdGlvbixcclxuICAgIHB1YmxpYyB0b2FzdDogVG9hc3RJdGVtLFxyXG4gICAgcHVibGljIHNvdXJjZTogVG9hc3RTb3VyY2UgPSAndXNlcidcclxuICApIHsgfVxyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { ToastEvent } from './toast-types';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class ToastService {
|
6
|
+
constructor() {
|
7
|
+
this._events = new Subject();
|
8
|
+
this.events = this._events.asObservable();
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Display a toast.
|
12
|
+
* If a toast of the same type is already on screen, the toast is queued until the existing one is dismissed.
|
13
|
+
*/
|
14
|
+
showToast(toast, source) {
|
15
|
+
const event = new ToastEvent('add', toast, source);
|
16
|
+
this._events.next(event);
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Remove a toast.
|
20
|
+
* This will also remove the toast from the queue if it has not already been displayed.
|
21
|
+
*/
|
22
|
+
dismissToast(toast, source) {
|
23
|
+
const event = new ToastEvent('remove', toast, source);
|
24
|
+
this._events.next(event);
|
25
|
+
}
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastService, providedIn: 'root' }); }
|
28
|
+
}
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastService, decorators: [{
|
30
|
+
type: Injectable,
|
31
|
+
args: [{
|
32
|
+
providedIn: 'root'
|
33
|
+
}]
|
34
|
+
}], ctorParameters: () => [] });
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L3RvYXN0L3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDOztBQUtuRSxNQUFNLE9BQU8sWUFBWTtJQUt2QjtRQUhRLFlBQU8sR0FBd0IsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUMxRCxXQUFNLEdBQTJCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEQsQ0FBQztJQUVqQjs7O09BR0c7SUFDSSxTQUFTLENBQUMsS0FBZ0IsRUFBRSxNQUFvQjtRQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsS0FBZ0IsRUFBRSxNQUFvQjtRQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBdkJVLFlBQVk7bUhBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0RXZlbnQsIFRvYXN0SXRlbSwgVG9hc3RTb3VyY2UgfSBmcm9tICcuL3RvYXN0LXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0U2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgX2V2ZW50czogU3ViamVjdDxUb2FzdEV2ZW50PiA9IG5ldyBTdWJqZWN0PFRvYXN0RXZlbnQ+KCk7XHJcbiAgcHVibGljIGV2ZW50czogT2JzZXJ2YWJsZTxUb2FzdEV2ZW50PiA9IHRoaXMuX2V2ZW50cy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIERpc3BsYXkgYSB0b2FzdC5cclxuICAgKiBJZiBhIHRvYXN0IG9mIHRoZSBzYW1lIHR5cGUgaXMgYWxyZWFkeSBvbiBzY3JlZW4sIHRoZSB0b2FzdCBpcyBxdWV1ZWQgdW50aWwgdGhlIGV4aXN0aW5nIG9uZSBpcyBkaXNtaXNzZWQuXHJcbiAgICovXHJcbiAgcHVibGljIHNob3dUb2FzdCh0b2FzdDogVG9hc3RJdGVtLCBzb3VyY2U/OiBUb2FzdFNvdXJjZSkge1xyXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgVG9hc3RFdmVudCgnYWRkJywgdG9hc3QsIHNvdXJjZSk7XHJcbiAgICB0aGlzLl9ldmVudHMubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSB0b2FzdC5cclxuICAgKiBUaGlzIHdpbGwgYWxzbyByZW1vdmUgdGhlIHRvYXN0IGZyb20gdGhlIHF1ZXVlIGlmIGl0IGhhcyBub3QgYWxyZWFkeSBiZWVuIGRpc3BsYXllZC5cclxuICAgKi9cclxuICBwdWJsaWMgZGlzbWlzc1RvYXN0KHRvYXN0OiBUb2FzdEl0ZW0sIHNvdXJjZT86IFRvYXN0U291cmNlKSB7XHJcbiAgICBjb25zdCBldmVudCA9IG5ldyBUb2FzdEV2ZW50KCdyZW1vdmUnLCB0b2FzdCwgc291cmNlKTtcclxuICAgIHRoaXMuX2V2ZW50cy5uZXh0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,114 @@
|
|
1
|
+
import { Component, ElementRef, ViewChild } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../toast.service";
|
6
|
+
import * as i2 from "../../../core/telemetry.service";
|
7
|
+
import * as i3 from "../toast/toast.component";
|
8
|
+
export class ToasterComponent {
|
9
|
+
constructor(toastService, telemetryService) {
|
10
|
+
this.toastService = toastService;
|
11
|
+
this.telemetryService = telemetryService;
|
12
|
+
this.dismissibleToastBottom = 0;
|
13
|
+
this.pendingToasts = [];
|
14
|
+
this.destroyed = new Subject();
|
15
|
+
}
|
16
|
+
ngOnInit() {
|
17
|
+
this.toastService.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
|
18
|
+
if (event.action == 'add') {
|
19
|
+
this.addToast(event.toast);
|
20
|
+
this.updateDismissibleToastBottom();
|
21
|
+
this.trackEvent(event);
|
22
|
+
}
|
23
|
+
else if (event.action == 'remove' && event.toast !== this.currentDismissibleToast && event.toast !== this.currentTimedToast) {
|
24
|
+
this.removePendingToast(event.toast);
|
25
|
+
this.trackEvent(event);
|
26
|
+
}
|
27
|
+
});
|
28
|
+
}
|
29
|
+
ngOnDestroy() {
|
30
|
+
this.destroyed.next();
|
31
|
+
this.destroyed.complete();
|
32
|
+
}
|
33
|
+
updateVisibleToast(event) {
|
34
|
+
if (event.toast.dismissible) {
|
35
|
+
this.currentDismissibleToast = this.getNextToast(true);
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
this.currentTimedToast = this.getNextToast(false);
|
39
|
+
}
|
40
|
+
this.updateDismissibleToastBottom();
|
41
|
+
this.trackEvent(event);
|
42
|
+
}
|
43
|
+
addToast(toast) {
|
44
|
+
if ((toast.dismissible && this.currentDismissibleToast) || (!toast.dismissible && this.currentTimedToast)) {
|
45
|
+
this.addPendingToast(toast);
|
46
|
+
}
|
47
|
+
else if (toast.dismissible) {
|
48
|
+
this.currentDismissibleToast = toast;
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
this.currentTimedToast = toast;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
/** Returns the next pending toast of the specified type and removes it from the list of pending toasts. */
|
55
|
+
getNextToast(dismissible) {
|
56
|
+
const toast = this.pendingToasts.find(t => t.dismissible === dismissible);
|
57
|
+
if (toast) {
|
58
|
+
this.removePendingToast(toast);
|
59
|
+
}
|
60
|
+
return toast;
|
61
|
+
}
|
62
|
+
/** Add a toast to the list of pending toasts */
|
63
|
+
addPendingToast(toast) {
|
64
|
+
this.pendingToasts.push(toast);
|
65
|
+
}
|
66
|
+
/** Removes the specified toast from the list of pending toasts */
|
67
|
+
removePendingToast(toast) {
|
68
|
+
const index = this.pendingToasts.indexOf(toast);
|
69
|
+
if (index > -1) {
|
70
|
+
this.pendingToasts.splice(index, 1);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
/**
|
74
|
+
* If the timed toast is present, sets the bottom height of the dismissible toast to
|
75
|
+
* the current height of the timed toast plus .5rem for spacing.
|
76
|
+
* Returns 0 if there isn't a visible timed toast.
|
77
|
+
*/
|
78
|
+
updateDismissibleToastBottom() {
|
79
|
+
if (this.currentTimedToast && this.timedToastEl) {
|
80
|
+
this.dismissibleToastBottom = (this.timedToastEl.nativeElement.offsetHeight + 8) / 16;
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
this.dismissibleToastBottom = 0;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
trackEvent(event) {
|
87
|
+
const dismissible = this.pendingToasts.filter(t => t.dismissible);
|
88
|
+
const transient = this.pendingToasts.filter(t => !t.dismissible);
|
89
|
+
this.telemetryService.trackEvent(`${event.action} toast`, {
|
90
|
+
action: event.action,
|
91
|
+
source: event.source,
|
92
|
+
hasDismissiblePending: dismissible.length > 0 ? 'yes' : 'no',
|
93
|
+
dismissiblePendingLength: `${dismissible.length}`,
|
94
|
+
hasTransientPending: transient.length > 0 ? 'yes' : 'no',
|
95
|
+
transientPendingLength: `${transient.length}`,
|
96
|
+
toastId: event.toast.id ?? '',
|
97
|
+
toastType: event.toast.type,
|
98
|
+
toastMessage: event.toast.message,
|
99
|
+
toastDismissible: `${event.toast.dismissible}`,
|
100
|
+
toastIcon: event.toast.icon ?? '',
|
101
|
+
toastAction: event.toast.actionLabel ?? '',
|
102
|
+
});
|
103
|
+
}
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToasterComponent, deps: [{ token: i1.ToastService }, { token: i2.TelemetryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToasterComponent, selector: "ec-toaster", viewQueries: [{ propertyName: "timedToastEl", first: true, predicate: ["timedToast"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ec-toast [toastItem]=\"currentDismissibleToast\"\r\n [style.--toast-bottom.rem]=\"dismissibleToastBottom\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>\r\n\r\n<ec-toast #timedToast\r\n [toastItem]=\"currentTimedToast\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>", dependencies: [{ kind: "component", type: i3.ToastComponent, selector: "ec-toast", inputs: ["toastItem"], outputs: ["closed"] }] }); }
|
106
|
+
}
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToasterComponent, decorators: [{
|
108
|
+
type: Component,
|
109
|
+
args: [{ selector: 'ec-toaster', template: "<ec-toast [toastItem]=\"currentDismissibleToast\"\r\n [style.--toast-bottom.rem]=\"dismissibleToastBottom\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>\r\n\r\n<ec-toast #timedToast\r\n [toastItem]=\"currentTimedToast\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>" }]
|
110
|
+
}], ctorParameters: () => [{ type: i1.ToastService }, { type: i2.TelemetryService }], propDecorators: { timedToastEl: [{
|
111
|
+
type: ViewChild,
|
112
|
+
args: ['timedToast', { static: false, read: ElementRef }]
|
113
|
+
}] } });
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b2FzdC90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBa0M7UUFEbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVJyQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFHbEMsa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBS3BDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7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OUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDakMsV0FBVyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzR1UsZ0JBQWdCO21HQUFoQixnQkFBZ0IseUlBS3FCLFVBQVUsNkJDaEI1RCw0VUFRVzs7NEZER0UsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLFlBQVk7Z0hBUXdDLFlBQVk7c0JBQXpFLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0RXZlbnQsIFRvYXN0SXRlbSB9IGZyb20gJy4uL3RvYXN0LXR5cGVzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvYXN0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdGVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGN1cnJlbnRUaW1lZFRvYXN0PzogVG9hc3RJdGVtO1xyXG4gIHB1YmxpYyBjdXJyZW50RGlzbWlzc2libGVUb2FzdD86IFRvYXN0SXRlbTtcclxuICBwdWJsaWMgZGlzbWlzc2libGVUb2FzdEJvdHRvbTogbnVtYmVyID0gMDtcclxuICBAVmlld0NoaWxkKCd0aW1lZFRvYXN0JywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIHRpbWVkVG9hc3RFbD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIFxyXG4gIHByaXZhdGUgcGVuZGluZ1RvYXN0czogVG9hc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PSAnYWRkJykge1xyXG4gICAgICAgIHRoaXMuYWRkVG9hc3QoZXZlbnQudG9hc3QpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzbWlzc2libGVUb2FzdEJvdHRvbSgpO1xyXG4gICAgICAgIHRoaXMudHJhY2tFdmVudChldmVudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYWN0aW9uID09ICdyZW1vdmUnICYmIGV2ZW50LnRvYXN0ICE9PSB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0ICYmIGV2ZW50LnRvYXN0ICE9PSB0aGlzLmN1cnJlbnRUaW1lZFRvYXN0KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVQZW5kaW5nVG9hc3QoZXZlbnQudG9hc3QpO1xyXG4gICAgICAgIHRoaXMudHJhY2tFdmVudChldmVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVZpc2libGVUb2FzdChldmVudDogVG9hc3RFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LnRvYXN0LmRpc21pc3NpYmxlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudERpc21pc3NpYmxlVG9hc3QgPSB0aGlzLmdldE5leHRUb2FzdCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWVkVG9hc3QgPSB0aGlzLmdldE5leHRUb2FzdChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVEaXNtaXNzaWJsZVRvYXN0Qm90dG9tKCk7XHJcbiAgICB0aGlzLnRyYWNrRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRUb2FzdCh0b2FzdDogVG9hc3RJdGVtKSB7XHJcbiAgICBpZiAoKHRvYXN0LmRpc21pc3NpYmxlICYmIHRoaXMuY3VycmVudERpc21pc3NpYmxlVG9hc3QpIHx8ICghdG9hc3QuZGlzbWlzc2libGUgJiYgdGhpcy5jdXJyZW50VGltZWRUb2FzdCkpIHtcclxuICAgICAgdGhpcy5hZGRQZW5kaW5nVG9hc3QodG9hc3QpO1xyXG4gICAgfSBlbHNlIGlmICh0b2FzdC5kaXNtaXNzaWJsZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0ID0gdG9hc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lZFRvYXN0ID0gdG9hc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0aGUgbmV4dCBwZW5kaW5nIHRvYXN0IG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcgdG9hc3RzLiAqL1xyXG4gIHByaXZhdGUgZ2V0TmV4dFRvYXN0KGRpc21pc3NpYmxlOiBib29sZWFuKTogVG9hc3RJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHRvYXN0ID0gdGhpcy5wZW5kaW5nVG9hc3RzLmZpbmQodCA9PiB0LmRpc21pc3NpYmxlID09PSBkaXNtaXNzaWJsZSk7XHJcbiAgICBpZiAodG9hc3QpIHtcclxuICAgICAgdGhpcy5yZW1vdmVQZW5kaW5nVG9hc3QodG9hc3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvYXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqIEFkZCBhIHRvYXN0IHRvIHRoZSBsaXN0IG9mIHBlbmRpbmcgdG9hc3RzICovXHJcbiAgcHJpdmF0ZSBhZGRQZW5kaW5nVG9hc3QodG9hc3Q6IFRvYXN0SXRlbSkge1xyXG4gICAgdGhpcy5wZW5kaW5nVG9hc3RzLnB1c2godG9hc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCB0b2FzdCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcgdG9hc3RzICovXHJcbiAgcHJpdmF0ZSByZW1vdmVQZW5kaW5nVG9hc3QodG9hc3Q6IFRvYXN0SXRlbSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnBlbmRpbmdUb2FzdHMuaW5kZXhPZih0b2FzdCk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnBlbmRpbmdUb2FzdHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBJZiB0aGUgdGltZWQgdG9hc3QgaXMgcHJlc2VudCwgc2V0cyB0aGUgYm90dG9tIGhlaWdodCBvZiB0aGUgZGlzbWlzc2libGUgdG9hc3QgdG9cclxuICAgKiB0aGUgY3VycmVudCBoZWlnaHQgb2YgdGhlIHRpbWVkIHRvYXN0IHBsdXMgLjVyZW0gZm9yIHNwYWNpbmcuXHJcbiAgICogUmV0dXJucyAwIGlmIHRoZXJlIGlzbid0IGEgdmlzaWJsZSB0aW1lZCB0b2FzdC5cclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZURpc21pc3NpYmxlVG9hc3RCb3R0b20oKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VGltZWRUb2FzdCAmJiB0aGlzLnRpbWVkVG9hc3RFbCkge1xyXG4gICAgICB0aGlzLmRpc21pc3NpYmxlVG9hc3RCb3R0b20gPSAodGhpcy50aW1lZFRvYXN0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyA4KSAvIDE2O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNtaXNzaWJsZVRvYXN0Qm90dG9tID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhY2tFdmVudChldmVudDogVG9hc3RFdmVudCkge1xyXG4gICAgY29uc3QgZGlzbWlzc2libGUgPSB0aGlzLnBlbmRpbmdUb2FzdHMuZmlsdGVyKHQgPT4gdC5kaXNtaXNzaWJsZSk7XHJcbiAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLnBlbmRpbmdUb2FzdHMuZmlsdGVyKHQgPT4gIXQuZGlzbWlzc2libGUpO1xyXG5cclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50cmFja0V2ZW50KGAke2V2ZW50LmFjdGlvbn0gdG9hc3RgLCB7XHJcbiAgICAgIGFjdGlvbjogZXZlbnQuYWN0aW9uLFxyXG4gICAgICBzb3VyY2U6IGV2ZW50LnNvdXJjZSxcclxuICAgICAgaGFzRGlzbWlzc2libGVQZW5kaW5nOiBkaXNtaXNzaWJsZS5sZW5ndGggPiAwID8gJ3llcycgOiAnbm8nLFxyXG4gICAgICBkaXNtaXNzaWJsZVBlbmRpbmdMZW5ndGg6IGAke2Rpc21pc3NpYmxlLmxlbmd0aH1gLFxyXG4gICAgICBoYXNUcmFuc2llbnRQZW5kaW5nOiB0cmFuc2llbnQubGVuZ3RoID4gMCA/ICd5ZXMnIDogJ25vJyxcclxuICAgICAgdHJhbnNpZW50UGVuZGluZ0xlbmd0aDogYCR7dHJhbnNpZW50Lmxlbmd0aH1gLFxyXG4gICAgICB0b2FzdElkOiBldmVudC50b2FzdC5pZCA/PyAnJyxcclxuICAgICAgdG9hc3RUeXBlOiBldmVudC50b2FzdC50eXBlLFxyXG4gICAgICB0b2FzdE1lc3NhZ2U6IGV2ZW50LnRvYXN0Lm1lc3NhZ2UsXHJcbiAgICAgIHRvYXN0RGlzbWlzc2libGU6IGAke2V2ZW50LnRvYXN0LmRpc21pc3NpYmxlfWAsXHJcbiAgICAgIHRvYXN0SWNvbjogZXZlbnQudG9hc3QuaWNvbiA/PyAnJyxcclxuICAgICAgdG9hc3RBY3Rpb246IGV2ZW50LnRvYXN0LmFjdGlvbkxhYmVsID8/ICcnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxlYy10b2FzdCBbdG9hc3RJdGVtXT1cImN1cnJlbnREaXNtaXNzaWJsZVRvYXN0XCJcclxuICAgICAgICAgIFtzdHlsZS4tLXRvYXN0LWJvdHRvbS5yZW1dPVwiZGlzbWlzc2libGVUb2FzdEJvdHRvbVwiXHJcbiAgICAgICAgICAoY2xvc2VkKT1cInVwZGF0ZVZpc2libGVUb2FzdCgkZXZlbnQpXCI+XHJcbjwvZWMtdG9hc3Q+XHJcblxyXG48ZWMtdG9hc3QgI3RpbWVkVG9hc3RcclxuICAgICAgICAgIFt0b2FzdEl0ZW1dPVwiY3VycmVudFRpbWVkVG9hc3RcIlxyXG4gICAgICAgICAgKGNsb3NlZCk9XCJ1cGRhdGVWaXNpYmxlVG9hc3QoJGV2ZW50KVwiPlxyXG48L2VjLXRvYXN0PiJdfQ==
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { Component, EventEmitter, HostBinding } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
import * as i2 from "../../controls/button/button.component";
|
5
|
+
export class TooltipComponent {
|
6
|
+
constructor() {
|
7
|
+
this.position = 'top-center';
|
8
|
+
this.dismissible = false;
|
9
|
+
this.onHide = new EventEmitter();
|
10
|
+
}
|
11
|
+
hide() {
|
12
|
+
this.onHide.next();
|
13
|
+
this.overlayRef?.dispose();
|
14
|
+
}
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TooltipComponent, selector: "ec-tooltip", host: { properties: { "style.--ec-tooltip-background-color": "this.backgroundColor", "style.--ec-tooltip-color-title": "this.titleColor" } }, ngImport: i0, template: "<article id=\"{{id}}\" class=\"py-3 position-{{position}}\" [class.show-arrow]=\"!hideArrow\">\r\n <header *ngIf=\"title || subtitle\" class=\"mb-3\">\r\n <h1 class=\"text-heading-2 px-3 mb-0\">{{title}}</h1>\r\n <p class=\"text-caption-1 px-3 mb-0\">{{subtitle}}</p>\r\n </header>\r\n\r\n <ng-container *ngIf=\"customContent; else textTemplate\">\r\n <ng-container *ngTemplateOutlet=\"customContent\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #textTemplate>\r\n <div class=\"text-body-1 px-3\" [innerHTML]=\"text\"></div>\r\n </ng-template>\r\n\r\n <ec-button *ngIf=\"dismissible\" id=\"tooltipDismiss\" type=\"icon\" icon=\"icon-cancel\" (clicked)=\"hide()\"></ec-button>\r\n</article>\r\n", styles: [":host{display:block;padding:.75rem}article{background-color:var(--ec-tooltip-background-color, #162F3B);color:var(--ec-tooltip-color, var(--ec-color-primary-light));border-radius:var(--ec-border-radius-card);position:relative;box-shadow:var(--ec-box-shadow-overlay);--ec-color-link: var(--ec-color-link-light)}article.show-arrow:after{content:\"\";height:0;width:0;border:.625rem solid transparent;display:block;position:absolute;pointer-events:none}article.show-arrow.position-top-left:after,article.show-arrow.position-top-center:after,article.show-arrow.position-top-right:after{bottom:-1.25rem;border-top-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-bottom-left:after,article.show-arrow.position-bottom-center:after,article.show-arrow.position-bottom-right:after{top:-1.25rem;border-bottom-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-top-left:after,article.show-arrow.position-bottom-left:after{right:1rem}article.show-arrow.position-top-right:after,article.show-arrow.position-bottom-right:after{left:1rem}article.show-arrow.position-top-center:after,article.show-arrow.position-bottom-center:after{right:50%;transform:translate(50%)}article.show-arrow.position-right-top:after,article.show-arrow.position-right-center:after,article.show-arrow.position-right-bottom:after{left:-1.25rem;border-right-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-left-top:after,article.show-arrow.position-left-center:after,article.show-arrow.position-left-bottom:after{right:-1.25rem;border-left-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-left-top:after,article.show-arrow.position-right-top:after{top:1rem}article.show-arrow.position-left-bottom:after,article.show-arrow.position-right-bottom:after{bottom:1rem}article.show-arrow.position-left-center:after,article.show-arrow.position-right-center:after{bottom:50%;transform:translateY(50%)}.text-heading-2{color:var(--ec-tooltip-color-title, var(--ec-color-primary-light))}.text-body-1{color:var(--ec-color-primary-light)}.text-body-1 ::ng-deep p:last-child{margin-bottom:0}.text-body-1 ::ng-deep a{font-weight:var(--ec-font-weight-bold)}.text-caption-1{color:var(--ec-color-secondary-light)}ec-button{--ec-button-color-icon: var(--ec-color-secondary-light);--ec-button-color-icon-hover: var(--ec-color-primary-light);--ec-background-color-hover: rgba(255,255,255,.15);position:absolute;top:.25rem;right:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }] }); }
|
17
|
+
}
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipComponent, decorators: [{
|
19
|
+
type: Component,
|
20
|
+
args: [{ selector: 'ec-tooltip', template: "<article id=\"{{id}}\" class=\"py-3 position-{{position}}\" [class.show-arrow]=\"!hideArrow\">\r\n <header *ngIf=\"title || subtitle\" class=\"mb-3\">\r\n <h1 class=\"text-heading-2 px-3 mb-0\">{{title}}</h1>\r\n <p class=\"text-caption-1 px-3 mb-0\">{{subtitle}}</p>\r\n </header>\r\n\r\n <ng-container *ngIf=\"customContent; else textTemplate\">\r\n <ng-container *ngTemplateOutlet=\"customContent\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #textTemplate>\r\n <div class=\"text-body-1 px-3\" [innerHTML]=\"text\"></div>\r\n </ng-template>\r\n\r\n <ec-button *ngIf=\"dismissible\" id=\"tooltipDismiss\" type=\"icon\" icon=\"icon-cancel\" (clicked)=\"hide()\"></ec-button>\r\n</article>\r\n", styles: [":host{display:block;padding:.75rem}article{background-color:var(--ec-tooltip-background-color, #162F3B);color:var(--ec-tooltip-color, var(--ec-color-primary-light));border-radius:var(--ec-border-radius-card);position:relative;box-shadow:var(--ec-box-shadow-overlay);--ec-color-link: var(--ec-color-link-light)}article.show-arrow:after{content:\"\";height:0;width:0;border:.625rem solid transparent;display:block;position:absolute;pointer-events:none}article.show-arrow.position-top-left:after,article.show-arrow.position-top-center:after,article.show-arrow.position-top-right:after{bottom:-1.25rem;border-top-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-bottom-left:after,article.show-arrow.position-bottom-center:after,article.show-arrow.position-bottom-right:after{top:-1.25rem;border-bottom-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-top-left:after,article.show-arrow.position-bottom-left:after{right:1rem}article.show-arrow.position-top-right:after,article.show-arrow.position-bottom-right:after{left:1rem}article.show-arrow.position-top-center:after,article.show-arrow.position-bottom-center:after{right:50%;transform:translate(50%)}article.show-arrow.position-right-top:after,article.show-arrow.position-right-center:after,article.show-arrow.position-right-bottom:after{left:-1.25rem;border-right-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-left-top:after,article.show-arrow.position-left-center:after,article.show-arrow.position-left-bottom:after{right:-1.25rem;border-left-color:var(--ec-tooltip-background-color, #162F3B)}article.show-arrow.position-left-top:after,article.show-arrow.position-right-top:after{top:1rem}article.show-arrow.position-left-bottom:after,article.show-arrow.position-right-bottom:after{bottom:1rem}article.show-arrow.position-left-center:after,article.show-arrow.position-right-center:after{bottom:50%;transform:translateY(50%)}.text-heading-2{color:var(--ec-tooltip-color-title, var(--ec-color-primary-light))}.text-body-1{color:var(--ec-color-primary-light)}.text-body-1 ::ng-deep p:last-child{margin-bottom:0}.text-body-1 ::ng-deep a{font-weight:var(--ec-font-weight-bold)}.text-caption-1{color:var(--ec-color-secondary-light)}ec-button{--ec-button-color-icon: var(--ec-color-secondary-light);--ec-button-color-icon-hover: var(--ec-color-primary-light);--ec-background-color-hover: rgba(255,255,255,.15);position:absolute;top:.25rem;right:.25rem}\n"] }]
|
21
|
+
}], propDecorators: { backgroundColor: [{
|
22
|
+
type: HostBinding,
|
23
|
+
args: ['style.--ec-tooltip-background-color']
|
24
|
+
}], titleColor: [{
|
25
|
+
type: HostBinding,
|
26
|
+
args: ['style.--ec-tooltip-color-title']
|
27
|
+
}] } });
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7OztBQTZEbEYsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1FLGFBQVEsR0FBb0IsWUFBWSxDQUFDO1FBTXpDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBV3BCLFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQU1qRDtJQUpDLElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0F2QlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsZ01DOUQ3Qix1dEJBZ0JBOzs0RkQ4Q2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFlBQVk7OEJBaUJ0QixlQUFlO3NCQURkLFdBQVc7dUJBQUMscUNBQXFDO2dCQUlsRCxVQUFVO3NCQURULFdBQVc7dUJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCByZWxhdGl2ZSB0byBpdHMgYW5jaG9yLiBGb3IgZXhhbXBsZSwgaWYgcG9zaXRpb24gaXMgJ3RvcC1sZWZ0JyB0aGUgdGhlIHRvb2x0aXAgd2lsbCBhcHBlYXIgYWJvdmUgdGhlIGFuY2hvciBhbmQgZXhwYW5kIHRvIHRoZSBsZWZ0IG9mIHRoZSBhbmNob3IuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBUb29sdGlwUG9zaXRpb24gPSAndG9wLWxlZnQnIHwgJ3RvcC1jZW50ZXInIHwgJ3RvcC1yaWdodCcgfCAncmlnaHQtdG9wJyB8ICdyaWdodC1jZW50ZXInIHwgJ3JpZ2h0LWJvdHRvbScgfCAnYm90dG9tLWxlZnQnIHwgJ2JvdHRvbS1jZW50ZXInIHwgJ2JvdHRvbS1yaWdodCcgfCAnbGVmdC10b3AnIHwgJ2xlZnQtY2VudGVyJyB8ICdsZWZ0LWJvdHRvbSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9vbHRpcE9wdGlvbnMge1xyXG4gIC8qKlxyXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdG9vbHRpcCB0aGF0IGlzIGFzc2lnbmVkIHRvIHRoZSA8YXJ0aWNsZT4gZWxlbWVudCB0aGF0IHdyYXBzIHRoZSB0b29sdGlwIGNvbnRlbnQuXHJcbiAgICovXHJcbiAgIGlkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSB0b29sdGlwIHRpdGxlLiBIaWRkZW4gaWYgbm90IGRlZmluZWQuIFRoZSB0b29sdGlwIGhlYWRlciBpcyBoaWRkZW4gaWYgYm90aCB0aXRsZSBhbmQgc3VidGlsZSBhcmUgbm90IGRlZmluZWQuXHJcbiAgICovXHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVGV4dCB0byBkaXNwbGF5IHVuZGVyIHRoZSB0b29sdGlwIHRpdGxlLiBIaWRkZW4gaWYgbm90IGRlZmluZWQuIFRoZSB0b29sdGlwIGhlYWRlciBpcyBoaWRkZW4gaWYgYm90aCB0aXRsZSBhbmQgc3VidGl0bGUgYXJlIG5vdCBkZWZpbmVkLlxyXG4gICAqL1xyXG4gIHN1YnRpdGxlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEhUTUwgc3RyaW5nIGZvciB0aGUgbWFpbiBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBXaWxsIGJlIGlnbm9yZWQgaWYgY3VzdG9tQ29udGVudCBoYXMgYSB2YWx1ZS5cclxuICAgKi9cclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGUgYSBUZW1wbGF0ZVJlZiBmb3IgY3VzdG9tIGNvbnRlbnQuIElmIGN1c3RvbUNvbnRlbnQgaXMgZGVmaW5lZCwgYW55IHZhbHVlIGZvciB0ZXh0IHdpbGwgYmUgaWdub3JlZC5cclxuICAgKi9cclxuICBjdXN0b21Db250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBXaGVuIHRydWUgYSBjbG9zZSBidXR0b24gYXBwZWFycyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lciB0byBoaWRlIHRoZSB0b29sdGlwLiBVc2VmdWwgd2hlbiB0b29sdGlwcyBhcmUgdXNlZCBpbiBhIHRvdXIuIEFuIGV2ZW50IHdpbGwgZW1pdHRlZCB3aGVuIHRoZSB0b29sdGlwIGlzIGhpZGRlbi5cclxuICAgKi9cclxuICBkaXNtaXNzaWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogTnVtYmVyIGluIHBpeGVscyBvZiB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXAuIElmIHVuZGVmaW5lZCB3aWR0aCB3aWxsIGJlIGF1dG8uXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIE51bWJlciBpbiBwaXhlbHMgdGhhdCB0aGUgbWF4LXdpZHRoIG9mIHRoZSB0b29sdGlwIGNhbiBiZS5cclxuICAgKi9cclxuICBtYXhXaWR0aD86IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLiBDYW4gYmUgYW55IGNvbG9yIHZhbHVlIG9yIGNzcyB2YXJpYWJsZSB3aXRoIHZhcigpIGZ1bmN0aW9uLiBGb3IgZXhhbXBsZTogdmFyKC0tZWMtYmFja2dyb3VuZC1jb2xvci1zdWNjZXNzKTtcclxuICAgKi9cclxuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbWl6ZSB0aGUgY29sb3Igb2YgdGhlIHRpdGxlIHRleHQuIENhbiBiZSBhbnkgY29sb3IgdmFsdWUgb3IgY3NzIHZhcmlhYmxlIHdpdGggdmFyKCkgZnVuY3Rpb24uIEZvciBleGFtcGxlOiB2YXIoLS1lYy1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcclxuICAgKi9cclxuICB0aXRsZUNvbG9yPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBGbGFnIHRvIGhpZGUgdGhlIGFycm93IG9mIHRoZSB0b29sdGlwLiBTaG93aW5nIHRoZSBhcnJvdyBpcyB0aGUgZGVmYXVsdC5cclxuICAgKi9cclxuICBoaWRlQXJyb3c/OiBib29sZWFuO1xyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtdG9vbHRpcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Rvb2x0aXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIFRvb2x0aXBPcHRpb25zIHtcclxuICBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gJ3RvcC1jZW50ZXInO1xyXG5cclxuICBpZD86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzdWJ0aXRsZT86IHN0cmluZztcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGRpc21pc3NpYmxlID0gZmFsc2U7XHJcbiAgY3VzdG9tQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XHJcbiAgaGlkZUFycm93PzogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWVjLXRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcicpXHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tZWMtdG9vbHRpcC1jb2xvci10aXRsZScpXHJcbiAgdGl0bGVDb2xvcj86IHN0cmluZztcclxuXHJcbiAgb25IaWRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGhpZGUoKSB7XHJcbiAgICB0aGlzLm9uSGlkZS5uZXh0KCk7XHJcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGFydGljbGUgaWQ9XCJ7e2lkfX1cIiBjbGFzcz1cInB5LTMgcG9zaXRpb24te3twb3NpdGlvbn19XCIgW2NsYXNzLnNob3ctYXJyb3ddPVwiIWhpZGVBcnJvd1wiPlxyXG4gIDxoZWFkZXIgKm5nSWY9XCJ0aXRsZSB8fCBzdWJ0aXRsZVwiIGNsYXNzPVwibWItM1wiPlxyXG4gICAgPGgxIGNsYXNzPVwidGV4dC1oZWFkaW5nLTIgcHgtMyBtYi0wXCI+e3t0aXRsZX19PC9oMT5cclxuICAgIDxwIGNsYXNzPVwidGV4dC1jYXB0aW9uLTEgcHgtMyBtYi0wXCI+e3tzdWJ0aXRsZX19PC9wPlxyXG4gIDwvaGVhZGVyPlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tQ29udGVudDsgZWxzZSB0ZXh0VGVtcGxhdGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Db250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjdGV4dFRlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtYm9keS0xIHB4LTNcIiBbaW5uZXJIVE1MXT1cInRleHRcIj48L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8ZWMtYnV0dG9uICpuZ0lmPVwiZGlzbWlzc2libGVcIiBpZD1cInRvb2x0aXBEaXNtaXNzXCIgdHlwZT1cImljb25cIiBpY29uPVwiaWNvbi1jYW5jZWxcIiAoY2xpY2tlZCk9XCJoaWRlKClcIj48L2VjLWJ1dHRvbj5cclxuPC9hcnRpY2xlPlxyXG4iXX0=
|
@@ -0,0 +1,78 @@
|
|
1
|
+
import { OverlayConfig } from "@angular/cdk/overlay";
|
2
|
+
import { ComponentPortal } from "@angular/cdk/portal";
|
3
|
+
import { Injectable } from "@angular/core";
|
4
|
+
import { TooltipComponent } from "./tooltip.component";
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/cdk/overlay";
|
7
|
+
export class TooltipService {
|
8
|
+
constructor(overlay) {
|
9
|
+
this.overlay = overlay;
|
10
|
+
this.positions = {
|
11
|
+
'top-left': { originX: 'center', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetX: 38 },
|
12
|
+
'top-center': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },
|
13
|
+
'top-right': { originX: 'center', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetX: -38 },
|
14
|
+
'bottom-left': { originX: 'center', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetX: 38 },
|
15
|
+
'bottom-center': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },
|
16
|
+
'bottom-right': { originX: 'center', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetX: -38 },
|
17
|
+
'left-top': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'top', offsetY: -38 },
|
18
|
+
'left-center': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },
|
19
|
+
'left-bottom': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'bottom', offsetY: 38 },
|
20
|
+
'right-top': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'top', offsetY: -38 },
|
21
|
+
'right-center': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },
|
22
|
+
'right-bottom': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'bottom', offsetY: 38 }
|
23
|
+
};
|
24
|
+
}
|
25
|
+
/**
|
26
|
+
* Show a tooltip attached to a specified element
|
27
|
+
*/
|
28
|
+
show(anchor, position = 'top-center', options) {
|
29
|
+
const overlayConfig = this.getOverlayConfig(anchor, this.positions[position], options?.width, options?.maxWidth);
|
30
|
+
const overlayRef = this.overlay.create(overlayConfig);
|
31
|
+
const contentPortal = new ComponentPortal(TooltipComponent);
|
32
|
+
const contentViewRef = overlayRef.attach(contentPortal);
|
33
|
+
contentViewRef.instance.position = position;
|
34
|
+
contentViewRef.instance.id = options?.id;
|
35
|
+
contentViewRef.instance.title = options?.title;
|
36
|
+
contentViewRef.instance.subtitle = options?.subtitle;
|
37
|
+
contentViewRef.instance.text = options?.text;
|
38
|
+
contentViewRef.instance.customContent = options?.customContent;
|
39
|
+
contentViewRef.instance.dismissible = options?.dismissible || false;
|
40
|
+
contentViewRef.instance.backgroundColor = options?.backgroundColor;
|
41
|
+
contentViewRef.instance.titleColor = options?.titleColor;
|
42
|
+
contentViewRef.instance.hideArrow = options?.hideArrow;
|
43
|
+
contentViewRef.instance.overlayRef = overlayRef;
|
44
|
+
return contentViewRef.instance;
|
45
|
+
}
|
46
|
+
onMove(event, contentRect) {
|
47
|
+
let callCallback = false;
|
48
|
+
if (contentRect) {
|
49
|
+
if (event.clientX > contentRect.right
|
50
|
+
|| event.clientX < contentRect.left
|
51
|
+
|| event.clientY > contentRect.bottom
|
52
|
+
|| event.clientY < contentRect.top) {
|
53
|
+
callCallback = true;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
return callCallback;
|
57
|
+
}
|
58
|
+
getOverlayConfig(element, position, width, maxWidth) {
|
59
|
+
const positionStrategy = this.overlay.position()
|
60
|
+
.flexibleConnectedTo(element)
|
61
|
+
.withPositions([position]);
|
62
|
+
const config = new OverlayConfig({
|
63
|
+
positionStrategy: positionStrategy,
|
64
|
+
width: width,
|
65
|
+
maxWidth: maxWidth
|
66
|
+
});
|
67
|
+
return config;
|
68
|
+
}
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipService, deps: [{ token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
70
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipService, providedIn: 'root' }); }
|
71
|
+
}
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipService, decorators: [{
|
73
|
+
type: Injectable,
|
74
|
+
args: [{
|
75
|
+
providedIn: 'root'
|
76
|
+
}]
|
77
|
+
}], ctorParameters: () => [{ type: i1.Overlay }] });
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9vbHRpcC90b29sdGlwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1DLE1BQU0scUJBQXFCLENBQUM7OztBQUt4RixNQUFNLE9BQU8sY0FBYztJQWlCekIsWUFDVSxPQUFnQjtRQUFoQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBaEJsQixjQUFTLEdBQXVDO1lBQ3RELFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUNuRyxZQUFZLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQzNGLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZHLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtZQUN0RyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQzlGLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFHLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25HLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDM0YsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1lBQ3hHLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BHLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDNUYsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEs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b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQsIFRvb2x0aXBPcHRpb25zLCBUb29sdGlwUG9zaXRpb24gfSBmcm9tIFwiLi90b29sdGlwLmNvbXBvbmVudFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHBvc2l0aW9uczoge1trZXk6IHN0cmluZ106IENvbm5lY3RlZFBvc2l0aW9ufSA9IHtcclxuICAgICd0b3AtbGVmdCc6IHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnYm90dG9tJywgb2Zmc2V0WDogMzggfSxcclxuICAgICd0b3AtY2VudGVyJzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnY2VudGVyJywgb3ZlcmxheVk6ICdib3R0b20nIH0sXHJcbiAgICAndG9wLXJpZ2h0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFg6IC0zOCB9LFxyXG4gICAgJ2JvdHRvbS1sZWZ0JzogeyBvcmlnaW5YOiAnY2VudGVyJywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnZW5kJywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiAzOCB9LFxyXG4gICAgJ2JvdHRvbS1jZW50ZXInOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ3RvcCcgfSxcclxuICAgICdib3R0b20tcmlnaHQnOiB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WDogLTM4IH0sXHJcbiAgICAnbGVmdC10b3AnOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WTogLTM4IH0sXHJcbiAgICAnbGVmdC1jZW50ZXInOiB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ2VuZCcsIG92ZXJsYXlZOiAnY2VudGVyJyB9LFxyXG4gICAgJ2xlZnQtYm90dG9tJzogeyBvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnY2VudGVyJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFk6IDM4IH0sXHJcbiAgICAncmlnaHQtdG9wJzogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcsIG9mZnNldFk6IC0zOCB9LFxyXG4gICAgJ3JpZ2h0LWNlbnRlcic6IHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICdjZW50ZXInLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdjZW50ZXInIH0sXHJcbiAgICAncmlnaHQtYm90dG9tJzogeyBvcmlnaW5YOiAnZW5kJywgb3JpZ2luWTogJ2NlbnRlcicsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbScsIG9mZnNldFk6IDM4IH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5XHJcbiAgKXt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgYSB0b29sdGlwIGF0dGFjaGVkIHRvIGEgc3BlY2lmaWVkIGVsZW1lbnRcclxuICAgKi9cclxuICBzaG93KGFuY2hvcjogSFRNTEVsZW1lbnQsIHBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAndG9wLWNlbnRlcicsIG9wdGlvbnM/OiBUb29sdGlwT3B0aW9ucyk6IFRvb2x0aXBDb21wb25lbnQge1xyXG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IHRoaXMuZ2V0T3ZlcmxheUNvbmZpZyhhbmNob3IsIHRoaXMucG9zaXRpb25zW3Bvc2l0aW9uXSwgb3B0aW9ucz8ud2lkdGgsIG9wdGlvbnM/Lm1heFdpZHRoKTtcclxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRvb2x0aXBDb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29udGVudFZpZXdSZWYgPSBvdmVybGF5UmVmLmF0dGFjaChjb250ZW50UG9ydGFsKTtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gcG9zaXRpb247XHJcblxyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2UuaWQgPSBvcHRpb25zPy5pZDtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLnRpdGxlID0gb3B0aW9ucz8udGl0bGU7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5zdWJ0aXRsZSA9IG9wdGlvbnM/LnN1YnRpdGxlO1xyXG4gICAgY29udGVudFZpZXdSZWYuaW5zdGFuY2UudGV4dCA9IG9wdGlvbnM/LnRleHQ7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5jdXN0b21Db250ZW50ID0gb3B0aW9ucz8uY3VzdG9tQ29udGVudDtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLmRpc21pc3NpYmxlID0gb3B0aW9ucz8uZGlzbWlzc2libGUgfHwgZmFsc2U7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS5iYWNrZ3JvdW5kQ29sb3IgPSBvcHRpb25zPy5iYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICBjb250ZW50Vmlld1JlZi5pbnN0YW5jZS50aXRsZUNvbG9yID0gb3B0aW9ucz8udGl0bGVDb2xvcjtcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLmhpZGVBcnJvdyA9IG9wdGlvbnM/LmhpZGVBcnJvdztcclxuICAgIGNvbnRlbnRWaWV3UmVmLmluc3RhbmNlLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmO1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Vmlld1JlZi5pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIG9uTW92ZShldmVudDpNb3VzZUV2ZW50LCBjb250ZW50UmVjdDpET01SZWN0KTpib29sZWFuIHtcclxuICAgIGxldCBjYWxsQ2FsbGJhY2sgPSBmYWxzZTtcclxuICAgIGlmIChjb250ZW50UmVjdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgICBldmVudC5jbGllbnRYID4gY29udGVudFJlY3QucmlnaHRcclxuICAgICAgIHx8IGV2ZW50LmNsaWVudFggPCBjb250ZW50UmVjdC5sZWZ0XHJcbiAgICAgICB8fCBldmVudC5jbGllbnRZID4gY29udGVudFJlY3QuYm90dG9tXHJcbiAgICAgICB8fCBldmVudC5jbGllbnRZIDwgY29udGVudFJlY3QudG9wXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNhbGxDYWxsYmFjayA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjYWxsQ2FsbGJhY2s7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmLCBwb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24sIHdpZHRoPzogbnVtYmVyLCBtYXhXaWR0aD86IG51bWJlcik6IE92ZXJsYXlDb25maWcge1xyXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpXHJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKGVsZW1lbnQpXHJcbiAgICAgIC53aXRoUG9zaXRpb25zKFtwb3NpdGlvbl0pO1xyXG5cclxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb25TdHJhdGVneSxcclxuICAgICAgd2lkdGg6IHdpZHRoLFxyXG4gICAgICBtYXhXaWR0aDogbWF4V2lkdGhcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb25maWc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|