@datarailsshared/datarailsshared 1.4.564 → 1.5.1
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/assets/styles/_storybook-styles.scss +37 -0
- package/assets/styles/_styles.scss +9 -2
- package/assets/styles/colors.scss +88 -74
- package/assets/styles/dataRailsFont.scss +1 -1
- package/assets/styles/dialog.scss +22 -0
- package/assets/styles/icons.scss +1 -1
- package/assets/styles/mixins.scss +106 -6
- package/assets/styles/vars.scss +6 -4
- package/datarailsshared-datarailsshared-1.5.1.tgz +0 -0
- package/esm2022/datarailsshared-datarailsshared.mjs +5 -0
- package/esm2022/lib/date-tags/any-tag.component.mjs +42 -0
- package/esm2022/lib/date-tags/date-tag.component.mjs +126 -0
- package/esm2022/lib/date-tags/date-tag.module.mjs +53 -0
- package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +95 -0
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +222 -0
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +87 -0
- package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +98 -0
- package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +126 -0
- package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +102 -0
- package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +96 -0
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +92 -0
- package/esm2022/lib/directives/click-outside/click-outside.module.mjs +19 -0
- package/esm2022/lib/directives/dr-shine-animation/dr-shine-animation.directive.mjs +63 -0
- package/esm2022/lib/directives/let/let.directive.mjs +35 -0
- package/esm2022/lib/directives/ng-track-by-property/ng-track-by-property.directive.mjs +23 -0
- package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +61 -0
- package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +154 -0
- package/esm2022/lib/dr-accordion/accordion-item.component.mjs +143 -0
- package/esm2022/lib/dr-accordion/accordion.component.mjs +55 -0
- package/esm2022/lib/dr-accordion/accordion.module.mjs +35 -0
- package/esm2022/lib/dr-alert/dr-alert.component.mjs +64 -0
- package/esm2022/lib/dr-alert/dr-alert.module.mjs +20 -0
- package/{esm2015/lib/dr-alert/enums/dr-alert-theme.enum.js → esm2022/lib/dr-alert/enums/dr-alert-theme.enum.mjs} +1 -2
- package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +142 -0
- package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +21 -0
- package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +20 -0
- package/esm2022/lib/dr-avatar/services/dr-avatar.service.mjs +17 -0
- package/esm2022/lib/dr-avatar/types.mjs +2 -0
- package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +53 -0
- package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +21 -0
- package/esm2022/lib/dr-chat/chat.component.mjs +202 -0
- package/esm2022/lib/dr-chat/chat.module.mjs +81 -0
- package/esm2022/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.mjs +31 -0
- package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +273 -0
- package/esm2022/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.mjs +380 -0
- package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +185 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +47 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +26 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +78 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +30 -0
- package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +187 -0
- package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +14 -0
- package/esm2022/lib/dr-chip/dr-chip.component.mjs +58 -0
- package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +19 -0
- package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +204 -0
- package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +326 -0
- package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +29 -0
- package/esm2022/lib/dr-code-editor/models/code-editor-hint.mjs +6 -0
- package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +106 -0
- package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +20 -0
- package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +339 -0
- package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +238 -0
- package/esm2022/lib/dr-dialog/dialog.module.mjs +27 -0
- package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +27 -0
- package/esm2022/lib/dr-dialog/services/dialog.service.mjs +77 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +29 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +16 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +248 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +142 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +41 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +62 -0
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +203 -0
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +21 -0
- package/esm2022/lib/dr-error/dr-error.component.mjs +90 -0
- package/esm2022/lib/dr-error/dr-error.module.mjs +22 -0
- package/esm2022/lib/dr-inputs/button/button.component.mjs +101 -0
- package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +110 -0
- package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +55 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +400 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.mjs +157 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +269 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +326 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +16 -0
- package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +224 -0
- package/esm2022/lib/dr-inputs/date-pickers/services/week-selection-strategy.mjs +34 -0
- package/esm2022/lib/dr-inputs/date-pickers/week-selector/week-selector.component.mjs +91 -0
- package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +336 -0
- package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +128 -0
- package/esm2022/lib/dr-inputs/dr-link/dr-link.component.mjs +43 -0
- package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +37 -0
- package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +391 -0
- package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +138 -0
- package/esm2022/lib/dr-inputs/dr-slider/dr-slider.component.mjs +53 -0
- package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +108 -0
- package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +108 -0
- package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +88 -0
- package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +185 -0
- package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +19 -0
- package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +25 -0
- package/esm2022/lib/dr-layout/dr-layout.component.mjs +21 -0
- package/esm2022/lib/dr-layout/dr-layout.module.mjs +22 -0
- package/esm2022/lib/dr-popover/dr-popover-ref.mjs +23 -0
- package/esm2022/lib/dr-popover/dr-popover.component.mjs +155 -0
- package/esm2022/lib/dr-popover/dr-popover.directive.mjs +137 -0
- package/esm2022/lib/dr-popover/dr-popover.module.mjs +20 -0
- package/esm2022/lib/dr-popover/dr-popover.service.mjs +117 -0
- package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +104 -0
- package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +100 -0
- package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +87 -0
- package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +27 -0
- package/esm2022/lib/dr-scenario/services/scenario.service.mjs +195 -0
- package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +27 -0
- package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +66 -0
- package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +22 -0
- package/esm2022/lib/dr-tabs/dr-tab.component.mjs +47 -0
- package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +252 -0
- package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +25 -0
- package/esm2022/lib/dr-tags/dr-tag.component.mjs +235 -0
- package/esm2022/lib/dr-tags/dr-tag.module.mjs +23 -0
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +161 -0
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +24 -0
- package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +71 -0
- package/esm2022/lib/dr-toastr/default-toastr/default-toastr.component.mjs +73 -0
- package/esm2022/lib/dr-toastr/dr-toastr.module.mjs +31 -0
- package/esm2022/lib/dr-toastr/dr-toastr.service.mjs +44 -0
- package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +31 -0
- package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +82 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +86 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +194 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +24 -0
- package/esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs +14 -0
- package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +407 -0
- package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +97 -0
- package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +31 -0
- package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +108 -0
- package/esm2022/lib/dr-treeview/helpers/treeview-helper.mjs +82 -0
- package/esm2022/lib/dr-treeview/models/treeview-config.mjs +25 -0
- package/{esm2015/lib/dr-treeview/models/treeview-header-template-context.js → esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs} +1 -1
- package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +47 -0
- package/{esm2015/lib/dr-treeview/models/treeview-item-template-context.js → esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs} +1 -1
- package/esm2022/lib/dr-treeview/models/treeview-item.mjs +155 -0
- package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +21 -0
- package/esm2022/lib/drawer/drawer-animation.mjs +18 -0
- package/esm2022/lib/drawer/drawer-config.mjs +35 -0
- package/esm2022/lib/drawer/drawer-container.component.mjs +179 -0
- package/esm2022/lib/drawer/drawer-position-strategy.mjs +14 -0
- package/esm2022/lib/drawer/drawer-ref.mjs +106 -0
- package/esm2022/lib/drawer/drawer.module.mjs +19 -0
- package/esm2022/lib/drawer/drawer.service.mjs +140 -0
- package/esm2022/lib/drawer/public-api.mjs +6 -0
- package/esm2022/lib/image-cropper/dr-image-cropper-canvas.service.mjs +78 -0
- package/esm2022/lib/image-cropper/dr-image-cropper.component.mjs +133 -0
- package/esm2022/lib/image-cropper/dr-image-cropper.types.mjs +6 -0
- package/esm2022/lib/list-tags/list-tag.component.mjs +82 -0
- package/esm2022/lib/list-tags/list-tag.module.mjs +22 -0
- package/esm2022/lib/models/chat.mjs +36 -0
- package/{esm2015/lib/models/constants.js → esm2022/lib/models/constants.mjs} +17 -22
- package/{esm2015/lib/models/datePicker.js → esm2022/lib/models/datePicker.mjs} +2 -2
- package/esm2022/lib/models/datePickerRange.mjs +2 -0
- package/esm2022/lib/models/dropdown.mjs +2 -0
- package/{esm2015/lib/models/feedback.js → esm2022/lib/models/feedback.mjs} +1 -2
- package/esm2022/lib/models/popover.mjs +27 -0
- package/{esm2015/lib/models/serverTags.js → esm2022/lib/models/serverTags.mjs} +1 -1
- package/esm2022/lib/models/spinnerOptions.mjs +2 -0
- package/esm2022/lib/models/toastr.mjs +14 -0
- package/esm2022/lib/pipes/filter/filter.pipe.mjs +48 -0
- package/esm2022/lib/pipes/img/img.pipe.mjs +19 -0
- package/esm2022/lib/stepper/stepper.component.mjs +270 -0
- package/esm2022/lib/stepper/stepper.module.mjs +20 -0
- package/esm2022/lib/utils/data-analytics.service.mjs +21 -0
- package/esm2022/lib/utils/decorators.mjs +12 -0
- package/esm2022/lib/utils/dr-shared-utils.mjs +85 -0
- package/esm2022/public-api.mjs +156 -0
- package/esm2022/src/lib/drawer/drDrawer.mjs +5 -0
- package/esm2022/src/lib/drawer/drawer-animation.mjs +18 -0
- package/esm2022/src/lib/drawer/drawer-config.mjs +35 -0
- package/esm2022/src/lib/drawer/drawer-container.component.mjs +179 -0
- package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +14 -0
- package/esm2022/src/lib/drawer/drawer-ref.mjs +106 -0
- package/esm2022/src/lib/drawer/drawer.module.mjs +19 -0
- package/esm2022/src/lib/drawer/drawer.service.mjs +140 -0
- package/esm2022/src/lib/drawer/public-api.mjs +6 -0
- package/fesm2022/datarailsshared-datarailsshared.mjs +13716 -0
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -0
- package/fesm2022/drDrawer.mjs +496 -0
- package/fesm2022/drDrawer.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/date-tags/any-tag.component.d.ts +20 -0
- package/lib/date-tags/date-tag.component.d.ts +4 -16
- package/lib/date-tags/date-tag.module.d.ts +19 -2
- package/lib/date-tags/day-tag/day-tag.component.d.ts +4 -1
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +4 -1
- package/lib/date-tags/forecast-tag/forecast-tag.service.d.ts +11 -8
- package/lib/date-tags/month-tag/month-tag.component.d.ts +4 -1
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +4 -1
- package/lib/date-tags/week-tag/week-tag.component.d.ts +4 -1
- package/lib/date-tags/year-tag/year-tag.component.d.ts +4 -1
- package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
- package/lib/directives/click-outside/click-outside.module.d.ts +8 -0
- package/lib/directives/dr-shine-animation/dr-shine-animation.directive.d.ts +18 -0
- package/lib/directives/let/let.directive.d.ts +19 -0
- package/lib/directives/ng-track-by-property/ng-track-by-property.directive.d.ts +8 -0
- package/lib/dr-accordion/accordion-item-body.component.d.ts +3 -0
- package/lib/dr-accordion/accordion-item-header.component.d.ts +14 -1
- package/lib/dr-accordion/accordion-item.component.d.ts +4 -1
- package/lib/dr-accordion/accordion.component.d.ts +5 -0
- package/lib/dr-accordion/accordion.module.d.ts +9 -0
- package/lib/dr-alert/dr-alert.component.d.ts +3 -0
- package/lib/dr-alert/dr-alert.module.d.ts +6 -0
- package/lib/dr-avatar/dr-avatar.component.d.ts +15 -13
- package/lib/dr-avatar/dr-avatar.module.d.ts +8 -0
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +5 -1
- package/lib/dr-avatar/services/dr-avatar.service.d.ts +1 -1
- package/lib/dr-avatar/types.d.ts +8 -0
- package/lib/dr-badge-status/dr-badge-status.component.d.ts +5 -4
- package/lib/dr-badge-status/dr-badge-status.module.d.ts +7 -0
- package/lib/dr-chat/chat.component.d.ts +6 -7
- package/lib/dr-chat/chat.module.d.ts +20 -0
- package/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.d.ts +8 -0
- package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +11 -1
- package/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.d.ts +81 -0
- package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +4 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +3 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +3 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +3 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +3 -0
- package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +15 -2
- package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +3 -0
- package/lib/dr-chip/dr-chip.component.d.ts +10 -0
- package/lib/dr-code-editor/components/code-editor-hint-wrapper.component.d.ts +7 -0
- package/lib/dr-code-editor/components/dr-codemirror.component.d.ts +47 -0
- package/lib/dr-code-editor/dr-code-editor.component.d.ts +45 -0
- package/lib/dr-code-editor/dr-code-editor.module.d.ts +17 -0
- package/lib/dr-code-editor/models/code-editor-hint.d.ts +14 -0
- package/lib/dr-details-list/dr-details-list.component.d.ts +3 -0
- package/lib/dr-details-list/dr-details-list.module.d.ts +6 -0
- package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +6 -5
- package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +6 -5
- package/lib/dr-dialog/dialog.module.d.ts +12 -0
- package/lib/dr-dialog/interfaces/dialog-data.d.ts +13 -9
- package/lib/dr-dialog/services/dialog.service.d.ts +10 -3
- package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +8 -0
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +3 -0
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +28 -21
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +21 -14
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +11 -0
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +26 -8
- package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +3 -0
- package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +8 -0
- package/lib/dr-error/dr-error.component.d.ts +12 -8
- package/lib/dr-error/dr-error.module.d.ts +8 -0
- package/lib/dr-inputs/button/button.component.d.ts +6 -8
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +10 -2
- package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +3 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +29 -9
- package/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.d.ts +40 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +18 -11
- package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +11 -10
- package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +4 -2
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +22 -5
- package/lib/dr-inputs/date-pickers/services/week-selection-strategy.d.ts +12 -0
- package/lib/dr-inputs/date-pickers/week-selector/week-selector.component.d.ts +23 -0
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +35 -20
- package/lib/dr-inputs/dr-inputs.module.d.ts +30 -0
- package/lib/dr-inputs/dr-link/dr-link.component.d.ts +16 -0
- package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +4 -0
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +20 -3
- package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +4 -0
- package/lib/dr-inputs/dr-slider/dr-slider.component.d.ts +18 -0
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +3 -0
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +6 -1
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout-body.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout-header.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout.module.d.ts +8 -0
- package/lib/dr-popover/dr-popover-ref.d.ts +1 -0
- package/lib/dr-popover/dr-popover.component.d.ts +8 -4
- package/lib/dr-popover/dr-popover.directive.d.ts +9 -5
- package/lib/dr-popover/dr-popover.module.d.ts +7 -0
- package/lib/dr-popover/dr-popover.service.d.ts +5 -1
- package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +3 -4
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +3 -0
- package/lib/dr-scenario/dr-scenario.module.d.ts +11 -0
- package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
- package/lib/dr-scenario/services/scenario.service.d.ts +3 -0
- package/lib/dr-spinner/dr-spinner.component.d.ts +3 -0
- package/lib/dr-spinner/dr-spinner.directive.d.ts +4 -2
- package/lib/dr-spinner/dr-spinner.module.d.ts +7 -0
- package/lib/dr-tabs/dr-tab.component.d.ts +5 -0
- package/lib/dr-tabs/dr-tabs.component.d.ts +21 -4
- package/lib/dr-tabs/dr-tabs.module.d.ts +11 -0
- package/lib/dr-tags/dr-tag.component.d.ts +3 -0
- package/lib/dr-tags/dr-tag.module.d.ts +9 -0
- package/lib/dr-tags-constructor/dr-tags-constructor.component.d.ts +33 -0
- package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +10 -0
- package/lib/dr-tags-constructor/tags-constructor.service.d.ts +12 -0
- package/lib/dr-toastr/default-toastr/default-toastr.component.d.ts +15 -0
- package/lib/dr-toastr/dr-toastr.module.d.ts +9 -0
- package/lib/dr-toastr/dr-toastr.service.d.ts +14 -0
- package/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.d.ts +9 -0
- package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +3 -1
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -1
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +7 -0
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +9 -0
- package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +18 -2
- package/lib/dr-treeview/components/treeview/treeview.component.d.ts +3 -0
- package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +3 -0
- package/lib/dr-treeview/dr-tree-view.module.d.ts +9 -0
- package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +9 -0
- package/lib/dr-treeview/models/treeview-config.d.ts +3 -0
- package/lib/dr-treeview/models/treeview-i18n.d.ts +5 -0
- package/lib/dr-treeview/models/treeview-item.d.ts +2 -1
- package/lib/dr-treeview/pipes/treeview.pipe.d.ts +3 -0
- package/lib/drawer/drawer-animation.d.ts +5 -0
- package/lib/drawer/drawer-config.d.ts +68 -0
- package/lib/drawer/drawer-container.component.d.ts +45 -0
- package/lib/drawer/drawer-position-strategy.d.ts +10 -0
- package/lib/drawer/drawer-ref.d.ts +55 -0
- package/lib/drawer/drawer.module.d.ts +7 -0
- package/lib/drawer/drawer.service.d.ts +62 -0
- package/lib/drawer/public-api.d.ts +5 -0
- package/lib/image-cropper/dr-image-cropper-canvas.service.d.ts +20 -0
- package/lib/image-cropper/dr-image-cropper.component.d.ts +28 -0
- package/lib/image-cropper/dr-image-cropper.types.d.ts +9 -0
- package/lib/list-tags/list-tag.component.d.ts +3 -0
- package/lib/list-tags/list-tag.module.d.ts +8 -0
- package/lib/models/chat.d.ts +3 -3
- package/lib/models/datePicker.d.ts +10 -3
- package/lib/models/datePickerRange.d.ts +4 -0
- package/lib/models/dropdown.d.ts +15 -21
- package/lib/models/popover.d.ts +7 -4
- package/lib/models/serverTags.d.ts +4 -4
- package/lib/models/spinnerOptions.d.ts +2 -10
- package/lib/models/toastr.d.ts +18 -0
- package/lib/pipes/filter/filter.pipe.d.ts +7 -0
- package/lib/pipes/img/img.pipe.d.ts +7 -0
- package/lib/stepper/interfaces/stepper.d.ts +1 -1
- package/lib/stepper/stepper.component.d.ts +13 -8
- package/lib/stepper/stepper.module.d.ts +7 -0
- package/lib/utils/data-analytics.service.d.ts +8 -0
- package/lib/utils/decorators.d.ts +1 -0
- package/lib/utils/dr-shared-utils.d.ts +9 -0
- package/package.json +41 -15
- package/public-api.d.ts +59 -5
- package/src/lib/drawer/drawer-animation.d.ts +5 -0
- package/src/lib/drawer/drawer-config.d.ts +68 -0
- package/src/lib/drawer/drawer-container.component.d.ts +45 -0
- package/src/lib/drawer/drawer-position-strategy.d.ts +10 -0
- package/src/lib/drawer/drawer-ref.d.ts +55 -0
- package/src/lib/drawer/drawer.module.d.ts +7 -0
- package/src/lib/drawer/drawer.service.d.ts +62 -0
- package/src/lib/drawer/index.d.ts +5 -0
- package/src/lib/drawer/public-api.d.ts +5 -0
- package/styles.css +749 -0
- package/_datarailsshared.styles.css +0 -4
- package/assets/styles/img/dr-icon-info.svg +0 -4
- package/bundles/datarailsshared-datarailsshared.umd.js +0 -8372
- package/bundles/datarailsshared-datarailsshared.umd.js.map +0 -1
- package/datarailsshared-datarailsshared-1.4.564.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +0 -34
- package/datarailsshared-datarailsshared.metadata.json +0 -1
- package/esm2015/datarailsshared-datarailsshared.js +0 -35
- package/esm2015/lib/date-tags/date-tag.component.js +0 -74
- package/esm2015/lib/date-tags/date-tag.module.js +0 -36
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +0 -77
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +0 -164
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.service.js +0 -83
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +0 -80
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +0 -114
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +0 -84
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +0 -78
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +0 -55
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +0 -77
- package/esm2015/lib/dr-accordion/accordion-item.component.js +0 -123
- package/esm2015/lib/dr-accordion/accordion.component.js +0 -43
- package/esm2015/lib/dr-accordion/accordion.module.js +0 -23
- package/esm2015/lib/dr-alert/dr-alert.component.js +0 -35
- package/esm2015/lib/dr-alert/dr-alert.module.js +0 -18
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +0 -54
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +0 -26
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +0 -16
- package/esm2015/lib/dr-avatar/services/dr-avatar.service.js +0 -17
- package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +0 -25
- package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +0 -20
- package/esm2015/lib/dr-chat/chat.component.js +0 -119
- package/esm2015/lib/dr-chat/chat.module.js +0 -41
- package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +0 -155
- package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +0 -71
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js +0 -49
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +0 -23
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +0 -47
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +0 -18
- package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +0 -87
- package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +0 -15
- package/esm2015/lib/dr-details-list/dr-details-list.component.js +0 -65
- package/esm2015/lib/dr-details-list/dr-details-list.module.js +0 -16
- package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +0 -84
- package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +0 -92
- package/esm2015/lib/dr-dialog/dialog.module.js +0 -34
- package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +0 -25
- package/esm2015/lib/dr-dialog/services/dialog.service.js +0 -78
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +0 -12
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +0 -104
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +0 -114
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +0 -104
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +0 -34
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +0 -24
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +0 -120
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +0 -19
- package/esm2015/lib/dr-error/dr-error.component.js +0 -56
- package/esm2015/lib/dr-error/dr-error.module.js +0 -22
- package/esm2015/lib/dr-inputs/button/button.component.js +0 -39
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +0 -66
- package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +0 -47
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +0 -234
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +0 -182
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -183
- package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +0 -12
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +0 -194
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +0 -194
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +0 -68
- package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +0 -29
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +0 -123
- package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +0 -74
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +0 -68
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +0 -67
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +0 -73
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +0 -157
- package/esm2015/lib/dr-layout/dr-layout-body.component.js +0 -13
- package/esm2015/lib/dr-layout/dr-layout-header.component.js +0 -17
- package/esm2015/lib/dr-layout/dr-layout.component.js +0 -14
- package/esm2015/lib/dr-layout/dr-layout.module.js +0 -20
- package/esm2015/lib/dr-popover/dr-popover-ref.js +0 -20
- package/esm2015/lib/dr-popover/dr-popover.component.js +0 -106
- package/esm2015/lib/dr-popover/dr-popover.directive.js +0 -84
- package/esm2015/lib/dr-popover/dr-popover.module.js +0 -23
- package/esm2015/lib/dr-popover/dr-popover.service.js +0 -106
- package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +0 -104
- package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +0 -75
- package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +0 -79
- package/esm2015/lib/dr-scenario/dr-scenario.module.js +0 -28
- package/esm2015/lib/dr-scenario/services/scenario.service.js +0 -196
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +0 -18
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +0 -58
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +0 -18
- package/esm2015/lib/dr-tabs/dr-tab.component.js +0 -26
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +0 -35
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +0 -32
- package/esm2015/lib/dr-tags/dr-tag.component.js +0 -183
- package/esm2015/lib/dr-tags/dr-tag.module.js +0 -24
- package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +0 -19
- package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +0 -18
- package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +0 -20
- package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +0 -34
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +0 -41
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +0 -151
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +0 -38
- package/esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js +0 -2
- package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +0 -210
- package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +0 -58
- package/esm2015/lib/dr-treeview/dr-tree-view.module.js +0 -38
- package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +0 -97
- package/esm2015/lib/dr-treeview/helpers/treeview-helper.js +0 -82
- package/esm2015/lib/dr-treeview/models/treeview-config.js +0 -22
- package/esm2015/lib/dr-treeview/models/treeview-i18n.js +0 -42
- package/esm2015/lib/dr-treeview/models/treeview-item.js +0 -155
- package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +0 -17
- package/esm2015/lib/list-tags/list-tag.component.js +0 -37
- package/esm2015/lib/list-tags/list-tag.module.js +0 -23
- package/esm2015/lib/models/chat.js +0 -38
- package/esm2015/lib/models/dropdown.js +0 -2
- package/esm2015/lib/models/popover.js +0 -27
- package/esm2015/lib/models/spinnerOptions.js +0 -13
- package/esm2015/lib/stepper/stepper.component.js +0 -55
- package/esm2015/lib/stepper/stepper.module.js +0 -17
- package/esm2015/lib/utils/dr-shared-utils.js +0 -47
- package/esm2015/public-api.js +0 -100
- package/fesm2015/datarailsshared-datarailsshared.js +0 -7194
- package/fesm2015/datarailsshared-datarailsshared.js.map +0 -1
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -12
- package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -5
- package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -6
- package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -4
- /package/{esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js → esm2022/lib/dr-inputs/dr-toggle-button/toggle-button-mode.mjs} +0 -0
- /package/{esm2015/lib/dr-scenario/interfaces/scenario.js → esm2022/lib/dr-scenario/interfaces/scenario.mjs} +0 -0
- /package/{esm2015/lib/dr-tags/dr-tag.types.js → esm2022/lib/dr-tags/dr-tag.types.mjs} +0 -0
- /package/{esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs} +0 -0
- /package/{esm2015/lib/dr-tooltip/enums/tooltip-theme.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-theme.enum.mjs} +0 -0
- /package/{esm2015/lib/models/badgeStatus.js → esm2022/lib/models/badgeStatus.mjs} +0 -0
- /package/{esm2015/lib/models/validationError.js → esm2022/lib/models/validationError.mjs} +0 -0
- /package/{esm2015/lib/stepper/interfaces/stepper.js → esm2022/lib/stepper/interfaces/stepper.mjs} +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
import { first } from 'rxjs/operators';
|
|
3
|
+
import { DrPopoverService } from './dr-popover.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./dr-popover.service";
|
|
6
|
+
export class DrPopoverDirective {
|
|
7
|
+
constructor(elementRef, drPopoverService) {
|
|
8
|
+
this.elementRef = elementRef;
|
|
9
|
+
this.drPopoverService = drPopoverService;
|
|
10
|
+
this.contentContext = {};
|
|
11
|
+
this.position = 'bottom';
|
|
12
|
+
this.class = '';
|
|
13
|
+
this.overlayConfig = {};
|
|
14
|
+
this.manualClosing = { enabled: false };
|
|
15
|
+
this.popoverClose = new EventEmitter();
|
|
16
|
+
this.popoverOpened = new EventEmitter();
|
|
17
|
+
this.showStateChange = new EventEmitter();
|
|
18
|
+
this.scrollHandler = (event) => {
|
|
19
|
+
// Find the nearest scrollable parent for which scrolling is possible
|
|
20
|
+
const isVerticalScroll = !event.shiftKey;
|
|
21
|
+
const scrollableElement = this.getScrollableElement(event.target, isVerticalScroll);
|
|
22
|
+
// Check if scroll possible and host element places inside scrollable element
|
|
23
|
+
if (scrollableElement && scrollableElement.contains(this.elementRef.nativeElement)) {
|
|
24
|
+
this.closePopover();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
togglePopover() {
|
|
29
|
+
if (this.disabled)
|
|
30
|
+
return;
|
|
31
|
+
if (this.popoverRef) {
|
|
32
|
+
this.closePopover();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.renderPopover();
|
|
36
|
+
this.showStateChange.emit({ isShown: !!this.popoverRef });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
closePopover(res) {
|
|
40
|
+
if (this.popoverRef) {
|
|
41
|
+
this.popoverRef.close(res);
|
|
42
|
+
this.popoverRef = null;
|
|
43
|
+
window.removeEventListener('wheel', this.scrollHandler);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
renderPopover() {
|
|
47
|
+
const popoverRef = (this.popoverRef = this.drPopoverService.open(this.content, {
|
|
48
|
+
hostRef: this.elementRef,
|
|
49
|
+
overlayConfig: this.overlayConfig,
|
|
50
|
+
class: this.class,
|
|
51
|
+
manualClosing: this.manualClosing,
|
|
52
|
+
position: this.position,
|
|
53
|
+
contentContext: this.contentContext,
|
|
54
|
+
alignment: this.alignment,
|
|
55
|
+
freezeToContainerSelector: this.freezeToContainerSelector,
|
|
56
|
+
}));
|
|
57
|
+
popoverRef.onClose.pipe(first()).subscribe((res) => {
|
|
58
|
+
this.closePopover();
|
|
59
|
+
this.popoverClose.emit(res);
|
|
60
|
+
this.showStateChange.emit({ isShown: !!this.popoverRef });
|
|
61
|
+
});
|
|
62
|
+
popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {
|
|
63
|
+
this.popoverOpened.emit();
|
|
64
|
+
});
|
|
65
|
+
if (!this.manualClosing?.enabled && !this.freezeToContainerSelector) {
|
|
66
|
+
window.addEventListener('wheel', this.scrollHandler);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
ngOnDestroy() {
|
|
70
|
+
this.closePopover();
|
|
71
|
+
}
|
|
72
|
+
getScrollableElement(element, isVerticalScroll) {
|
|
73
|
+
while (element) {
|
|
74
|
+
const overflow = isVerticalScroll
|
|
75
|
+
? window.getComputedStyle(element).overflowY
|
|
76
|
+
: window.getComputedStyle(element).overflowX;
|
|
77
|
+
const isScrollable = ['auto', 'scroll'].includes(overflow) &&
|
|
78
|
+
(isVerticalScroll ? element.scrollHeight > element.clientHeight : element.scrollWidth > element.clientWidth);
|
|
79
|
+
if (isScrollable) {
|
|
80
|
+
return element;
|
|
81
|
+
}
|
|
82
|
+
element = element.parentElement;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/** @nocollapse */ static { this.ɵfac = function DrPopoverDirective_Factory(t) { return new (t || DrPopoverDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DrPopoverService)); }; }
|
|
87
|
+
/** @nocollapse */ static { this.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DrPopoverDirective, selectors: [["", "drPopover", ""]], hostBindings: function DrPopoverDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
88
|
+
i0.ɵɵlistener("click", function DrPopoverDirective_click_HostBindingHandler() { return ctx.togglePopover(); });
|
|
89
|
+
} }, inputs: { content: ["drPopover", "content"], contentContext: ["drPopoverContext", "contentContext"], position: ["drPopoverPosition", "position"], class: ["drPopoverClass", "class"], overlayConfig: ["drPopoverOverlayConfig", "overlayConfig"], manualClosing: ["drPopoverManualClosing", "manualClosing"], alignment: ["drPopoverAlignment", "alignment"], disabled: ["drPopoverDisabled", "disabled"], freezeToContainerSelector: ["drPopoverFreezeToContainerSelector", "freezeToContainerSelector"] }, outputs: { popoverClose: "drPopoverClose", popoverOpened: "drPopoverOpened", showStateChange: "drPopoverShowStateChange" }, exportAs: ["drPopoverInstance"] }); }
|
|
90
|
+
}
|
|
91
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrPopoverDirective, [{
|
|
92
|
+
type: Directive,
|
|
93
|
+
args: [{
|
|
94
|
+
selector: '[drPopover]',
|
|
95
|
+
exportAs: 'drPopoverInstance',
|
|
96
|
+
}]
|
|
97
|
+
}], function () { return [{ type: i0.ElementRef }, { type: i1.DrPopoverService }]; }, { content: [{
|
|
98
|
+
type: Input,
|
|
99
|
+
args: ['drPopover']
|
|
100
|
+
}], contentContext: [{
|
|
101
|
+
type: Input,
|
|
102
|
+
args: ['drPopoverContext']
|
|
103
|
+
}], position: [{
|
|
104
|
+
type: Input,
|
|
105
|
+
args: ['drPopoverPosition']
|
|
106
|
+
}], class: [{
|
|
107
|
+
type: Input,
|
|
108
|
+
args: ['drPopoverClass']
|
|
109
|
+
}], overlayConfig: [{
|
|
110
|
+
type: Input,
|
|
111
|
+
args: ['drPopoverOverlayConfig']
|
|
112
|
+
}], manualClosing: [{
|
|
113
|
+
type: Input,
|
|
114
|
+
args: ['drPopoverManualClosing']
|
|
115
|
+
}], alignment: [{
|
|
116
|
+
type: Input,
|
|
117
|
+
args: ['drPopoverAlignment']
|
|
118
|
+
}], disabled: [{
|
|
119
|
+
type: Input,
|
|
120
|
+
args: ['drPopoverDisabled']
|
|
121
|
+
}], freezeToContainerSelector: [{
|
|
122
|
+
type: Input,
|
|
123
|
+
args: ['drPopoverFreezeToContainerSelector']
|
|
124
|
+
}], popoverClose: [{
|
|
125
|
+
type: Output,
|
|
126
|
+
args: ['drPopoverClose']
|
|
127
|
+
}], popoverOpened: [{
|
|
128
|
+
type: Output,
|
|
129
|
+
args: ['drPopoverOpened']
|
|
130
|
+
}], showStateChange: [{
|
|
131
|
+
type: Output,
|
|
132
|
+
args: ['drPopoverShowStateChange']
|
|
133
|
+
}], togglePopover: [{
|
|
134
|
+
type: HostListener,
|
|
135
|
+
args: ['click']
|
|
136
|
+
}] }); })();
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1wb3BvdmVyL2RyLXBvcG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFPeEQsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsWUFDWSxVQUFzQixFQUN0QixnQkFBa0M7UUFEbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUJuQixtQkFBYyxHQUFlLEVBQWdCLENBQUM7UUFFN0MsYUFBUSxHQUFlLFFBQVEsQ0FBQztRQUVuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRUgsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBRXBDLGtCQUFhLEdBQTBCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBUWpFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV0QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFaEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQTREdkYsa0JBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLHFFQUFxRTtZQUNyRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUN6QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsTUFB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QUFDLGlCQUFpQjtZQUVXLGVBQWU7a0JBQWxELE1BQU07bUJBQUMsMEJBQTBCO1lBVWxDLGFBQWE7a0JBRFosWUFBWTttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uIH0gZnJvbSAnLi8uLi9tb2RlbHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgRHJQb3BvdmVyUmVmIH0gZnJvbSAnLi9kci1wb3BvdmVyLXJlZic7XG5pbXBvcnQgeyBEclBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi9kci1wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHJQb3BvdmVyQWxpZ25tZW50LCBEclBvcG92ZXJDb25maWcsIElQb3BvdmVyTWFudWFsQ2xvc2luZyB9IGZyb20gJy4uL21vZGVscy9wb3BvdmVyJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJQb3BvdmVyXScsXG4gICAgZXhwb3J0QXM6ICdkclBvcG92ZXJJbnN0YW5jZScsXG59KVxuZXhwb3J0IGNsYXNzIERyUG9wb3ZlckRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdkclBvcG92ZXInKSBjb250ZW50OiBUZW1wbGF0ZVJlZjxUPiB8IFR5cGU8VD47XG5cbiAgICBASW5wdXQoJ2RyUG9wb3ZlckNvbnRleHQnKSBjb250ZW50Q29udGV4dDogUGFydGlhbDxUPiA9IHt9IGFzIFBhcnRpYWw8VD47XG5cbiAgICBASW5wdXQoJ2RyUG9wb3ZlclBvc2l0aW9uJykgcG9zaXRpb246IEVsUG9zaXRpb24gPSAnYm90dG9tJztcblxuICAgIEBJbnB1dCgnZHJQb3BvdmVyQ2xhc3MnKSBjbGFzcyA9ICcnO1xuXG4gICAgQElucHV0KCdkclBvcG92ZXJPdmVybGF5Q29uZmlnJykgb3ZlcmxheUNvbmZpZzogRHJQb3BvdmVyQ29uZmlnID0ge307XG5cbiAgICBASW5wdXQoJ2RyUG9wb3Zlck1hbnVhbENsb3NpbmcnKSBtYW51YWxDbG9zaW5nOiBJUG9wb3Zlck1hbnVhbENsb3NpbmcgPSB7IGVuYWJsZWQ6IGZhbHNlIH07XG5cbiAgICBASW5wdXQoJ2RyUG9wb3ZlckFsaWdubWVudCcpIGFsaWdubWVudDogRHJQb3BvdmVyQWxpZ25tZW50O1xuXG4gICAgQElucHV0KCdkclBvcG92ZXJEaXNhYmxlZCcpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdkclBvcG92ZXJGcmVlemVUb0NvbnRhaW5lclNlbGVjdG9yJykgZnJlZXplVG9Db250YWluZXJTZWxlY3Rvcjogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgnZHJQb3BvdmVyQ2xvc2UnKSBwb3BvdmVyQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoJ2RyUG9wb3Zlck9wZW5lZCcpIHBvcG92ZXJPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdkclBvcG92ZXJTaG93U3RhdGVDaGFuZ2UnKSBzaG93U3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXNTaG93bjogYm9vbGVhbiB9PigpO1xuXG4gICAgcHJpdmF0ZSBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRyUG9wb3ZlclNlcnZpY2U6IERyUG9wb3ZlclNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHRvZ2dsZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMucG9wb3ZlclJlZikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyUG9wb3ZlcigpO1xuICAgICAgICAgICAgdGhpcy5zaG93U3RhdGVDaGFuZ2UuZW1pdCh7IGlzU2hvd246ICEhdGhpcy5wb3BvdmVyUmVmIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2VQb3BvdmVyKHJlcz86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UocmVzKTtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZiA9IG51bGw7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJQb3BvdmVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gKHRoaXMucG9wb3ZlclJlZiA9IHRoaXMuZHJQb3BvdmVyU2VydmljZS5vcGVuKHRoaXMuY29udGVudCwge1xuICAgICAgICAgICAgaG9zdFJlZjogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgb3ZlcmxheUNvbmZpZzogdGhpcy5vdmVybGF5Q29uZmlnLFxuICAgICAgICAgICAgY2xhc3M6IHRoaXMuY2xhc3MsXG4gICAgICAgICAgICBtYW51YWxDbG9zaW5nOiB0aGlzLm1hbnVhbENsb3NpbmcsXG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0OiB0aGlzLmNvbnRlbnRDb250ZXh0LFxuICAgICAgICAgICAgYWxpZ25tZW50OiB0aGlzLmFsaWdubWVudCxcbiAgICAgICAgICAgIGZyZWV6ZVRvQ29udGFpbmVyU2VsZWN0b3I6IHRoaXMuZnJlZXplVG9Db250YWluZXJTZWxlY3RvcixcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHBvcG92ZXJSZWYub25DbG9zZS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyQ2xvc2UuZW1pdChyZXMpO1xuICAgICAgICAgICAgdGhpcy5zaG93U3RhdGVDaGFuZ2UuZW1pdCh7IGlzU2hvd246ICEhdGhpcy5wb3BvdmVyUmVmIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3BvdmVyT3BlbmVkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW5lZC5lbWl0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5tYW51YWxDbG9zaW5nPy5lbmFibGVkICYmICF0aGlzLmZyZWV6ZVRvQ29udGFpbmVyU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMuc2Nyb2xsSGFuZGxlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gRmluZCB0aGUgbmVhcmVzdCBzY3JvbGxhYmxlIHBhcmVudCBmb3Igd2hpY2ggc2Nyb2xsaW5nIGlzIHBvc3NpYmxlXG4gICAgICAgIGNvbnN0IGlzVmVydGljYWxTY3JvbGwgPSAhZXZlbnQuc2hpZnRLZXk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVFbGVtZW50ID0gdGhpcy5nZXRTY3JvbGxhYmxlRWxlbWVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIGlzVmVydGljYWxTY3JvbGwpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHNjcm9sbCBwb3NzaWJsZSBhbmQgaG9zdCBlbGVtZW50IHBsYWNlcyBpbnNpZGUgc2Nyb2xsYWJsZSBlbGVtZW50XG4gICAgICAgIGlmIChzY3JvbGxhYmxlRWxlbWVudCAmJiBzY3JvbGxhYmxlRWxlbWVudC5jb250YWlucyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2V0U2Nyb2xsYWJsZUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLCBpc1ZlcnRpY2FsU2Nyb2xsKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93ID0gaXNWZXJ0aWNhbFNjcm9sbFxuICAgICAgICAgICAgICAgID8gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkub3ZlcmZsb3dZXG4gICAgICAgICAgICAgICAgOiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5vdmVyZmxvd1g7XG4gICAgICAgICAgICBjb25zdCBpc1Njcm9sbGFibGUgPVxuICAgICAgICAgICAgICAgIFsnYXV0bycsICdzY3JvbGwnXS5pbmNsdWRlcyhvdmVyZmxvdykgJiZcbiAgICAgICAgICAgICAgICAoaXNWZXJ0aWNhbFNjcm9sbCA/IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID4gZWxlbWVudC5jbGllbnRIZWlnaHQgOiBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aCk7XG5cbiAgICAgICAgICAgIGlmIChpc1Njcm9sbGFibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DrPopoverDirective } from './dr-popover.directive';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { DrPopoverComponent } from './dr-popover.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class DrPopoverModule {
|
|
7
|
+
/** @nocollapse */ static { this.ɵfac = function DrPopoverModule_Factory(t) { return new (t || DrPopoverModule)(); }; }
|
|
8
|
+
/** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrPopoverModule }); }
|
|
9
|
+
/** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
|
|
10
|
+
}
|
|
11
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrPopoverModule, [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
imports: [CommonModule],
|
|
15
|
+
exports: [DrPopoverDirective, DrPopoverComponent],
|
|
16
|
+
declarations: [DrPopoverDirective, DrPopoverComponent],
|
|
17
|
+
}]
|
|
18
|
+
}], null, null); })();
|
|
19
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrPopoverModule, { declarations: [DrPopoverDirective, DrPopoverComponent], imports: [CommonModule], exports: [DrPopoverDirective, DrPopoverComponent] }); })();
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1wb3BvdmVyL2RyLXBvcG92ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQU81RCxNQUFNLE9BQU8sZUFBZTttR0FBZixlQUFlO2tHQUFmLGVBQWU7c0dBSmQsWUFBWTs7dUZBSWIsZUFBZTtjQUwzQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztnQkFDakQsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7YUFDekQ7O3dGQUNZLGVBQWUsbUJBRlQsa0JBQWtCLEVBQUUsa0JBQWtCLGFBRjNDLFlBQVksYUFDWixrQkFBa0IsRUFBRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kci1wb3BvdmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kci1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0RyUG9wb3ZlckRpcmVjdGl2ZSwgRHJQb3BvdmVyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtEclBvcG92ZXJEaXJlY3RpdmUsIERyUG9wb3ZlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIERyUG9wb3Zlck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { first } from 'rxjs/operators';
|
|
2
|
+
import { DrPopoverRef } from './dr-popover-ref';
|
|
3
|
+
import { DrPopoverComponent } from './dr-popover.component';
|
|
4
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
5
|
+
import { Injectable, Injector } from '@angular/core';
|
|
6
|
+
import { Overlay, OverlayConfig, OverlayPositionBuilder } from '@angular/cdk/overlay';
|
|
7
|
+
import { POPUP_POSITIONS } from '../models/constants';
|
|
8
|
+
import { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension } from '../models/popover';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
11
|
+
export class DrPopoverService {
|
|
12
|
+
constructor(overlay, overlayPositionBuilder, injector) {
|
|
13
|
+
this.overlay = overlay;
|
|
14
|
+
this.overlayPositionBuilder = overlayPositionBuilder;
|
|
15
|
+
this.injector = injector;
|
|
16
|
+
}
|
|
17
|
+
open(content, popoverModel) {
|
|
18
|
+
if (!content)
|
|
19
|
+
return;
|
|
20
|
+
const model = { ...DEFAULT_MODEL, ...popoverModel };
|
|
21
|
+
const overlayRef = this.createOverlay(model);
|
|
22
|
+
const popoverRef = new DrPopoverRef(overlayRef);
|
|
23
|
+
this.attachOverlayContainer(content, model, overlayRef, popoverRef);
|
|
24
|
+
this.registerListeners(model, overlayRef, popoverRef);
|
|
25
|
+
return popoverRef;
|
|
26
|
+
}
|
|
27
|
+
attachOverlayContainer(content, { contentContext, position, class: elementClass, manualClosing, hostRef, alignment, freezeToContainerSelector, overlayConfig, }, overlayRef, popoverRef) {
|
|
28
|
+
const componentPortal = new ComponentPortal(DrPopoverComponent, null, this.createInjector(popoverRef, overlayConfig.providers));
|
|
29
|
+
const contentRef = overlayRef.attach(componentPortal);
|
|
30
|
+
popoverRef.componentRef = contentRef;
|
|
31
|
+
contentRef.instance.content = content;
|
|
32
|
+
contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };
|
|
33
|
+
contentRef.instance.class = elementClass + ' ' + position;
|
|
34
|
+
contentRef.instance.manualClosing = manualClosing;
|
|
35
|
+
contentRef.instance.hostRef = hostRef;
|
|
36
|
+
contentRef.instance.alignment = alignment;
|
|
37
|
+
contentRef.instance.position = position;
|
|
38
|
+
contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;
|
|
39
|
+
}
|
|
40
|
+
createOverlay(popoverModel) {
|
|
41
|
+
const overlayConfig = this.getOverlayConfig(popoverModel);
|
|
42
|
+
return this.overlay.create(overlayConfig);
|
|
43
|
+
}
|
|
44
|
+
getOverlayConfig(popoverModel) {
|
|
45
|
+
if (!POPUP_POSITIONS[popoverModel.position])
|
|
46
|
+
throw new Error(`DrPopover does not support the '${popoverModel?.position}' position!`);
|
|
47
|
+
const position = { ...POPUP_POSITIONS[popoverModel.position] };
|
|
48
|
+
const positionOffsetY = popoverModel.overlayConfig.positionOffsetY;
|
|
49
|
+
const positionOffsetX = popoverModel.overlayConfig.positionOffsetX;
|
|
50
|
+
if (positionOffsetY || positionOffsetX) {
|
|
51
|
+
if (position.offsetY) {
|
|
52
|
+
position.offsetY = position.offsetY < 0 ? positionOffsetY : positionOffsetY;
|
|
53
|
+
position.offsetX = positionOffsetX;
|
|
54
|
+
}
|
|
55
|
+
if (position.offsetX) {
|
|
56
|
+
position.offsetX = position.offsetX < 0 ? -positionOffsetX : positionOffsetX;
|
|
57
|
+
position.offsetY = positionOffsetY;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (popoverModel.overlayConfig.noPadding) {
|
|
61
|
+
position.offsetY = 0;
|
|
62
|
+
position.offsetX = 0;
|
|
63
|
+
}
|
|
64
|
+
const config = { ...DEFAULT_CONFIG, ...(popoverModel.overlayConfig || {}) };
|
|
65
|
+
const hostElement = this.getHostElement(popoverModel.hostRef);
|
|
66
|
+
const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);
|
|
67
|
+
const overlayConfig = new OverlayConfig({
|
|
68
|
+
scrollStrategy: this.overlay.scrollStrategies.noop(),
|
|
69
|
+
positionStrategy,
|
|
70
|
+
...config,
|
|
71
|
+
});
|
|
72
|
+
if (popoverModel.alignment === 'host' && hostElement) {
|
|
73
|
+
const alignmentDimension = getAlignmentDimension(popoverModel.position);
|
|
74
|
+
overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];
|
|
75
|
+
}
|
|
76
|
+
return overlayConfig;
|
|
77
|
+
}
|
|
78
|
+
createInjector(popoverRef, tokens) {
|
|
79
|
+
const injectionTokens = [...(tokens || []), { provide: DrPopoverRef, useValue: popoverRef }];
|
|
80
|
+
return Injector.create({ providers: injectionTokens, parent: this.injector });
|
|
81
|
+
}
|
|
82
|
+
registerListeners(popoverModel, overlayRef, popoverRef) {
|
|
83
|
+
const config = popoverModel.overlayConfig || {};
|
|
84
|
+
const targetElement = popoverModel.targetElement;
|
|
85
|
+
const hostElement = this.getHostElement(popoverModel.hostRef);
|
|
86
|
+
if (config?.closeOnBackdropClick && config?.hasBackdrop) {
|
|
87
|
+
overlayRef.backdropClick().subscribe(() => popoverRef.close());
|
|
88
|
+
}
|
|
89
|
+
if (targetElement) {
|
|
90
|
+
targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });
|
|
91
|
+
}
|
|
92
|
+
if (popoverModel.alignment === 'host' && hostElement) {
|
|
93
|
+
const alignmentDimension = getAlignmentDimension(popoverModel.position);
|
|
94
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
95
|
+
entries.forEach((host) => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));
|
|
96
|
+
});
|
|
97
|
+
resizeObserver.observe(hostElement);
|
|
98
|
+
popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
getHostElement(hostRef) {
|
|
102
|
+
if (!hostRef || hostRef.x)
|
|
103
|
+
return null;
|
|
104
|
+
if (hostRef.nativeElement)
|
|
105
|
+
return hostRef.nativeElement;
|
|
106
|
+
return hostRef;
|
|
107
|
+
}
|
|
108
|
+
/** @nocollapse */ static { this.ɵfac = function DrPopoverService_Factory(t) { return new (t || DrPopoverService)(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i1.OverlayPositionBuilder), i0.ɵɵinject(i0.Injector)); }; }
|
|
109
|
+
/** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: DrPopoverService, factory: DrPopoverService.ɵfac, providedIn: 'root' }); }
|
|
110
|
+
}
|
|
111
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrPopoverService, [{
|
|
112
|
+
type: Injectable,
|
|
113
|
+
args: [{
|
|
114
|
+
providedIn: 'root',
|
|
115
|
+
}]
|
|
116
|
+
}], function () { return [{ type: i1.Overlay }, { type: i1.OverlayPositionBuilder }, { type: i0.Injector }]; }, null); })();
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItcG9wb3Zlci9kci1wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFxQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBbUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSzFILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDWSxPQUFnQixFQUNoQixzQkFBOEMsRUFDOUMsUUFBa0I7UUFGbEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDM0IsQ0FBQztJQUVKLElBQUksQ0FDQSxPQUEwRCxFQUMxRCxZQUF5QztRQUV6QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1FBRXBELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFh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QUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNyQixVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FDM0csQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1lBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFJLE9BQTRDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLElBQVksT0FBUSxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNoRCxJQUFpQixPQUFRLENBQUMsYUFBYTtZQUFFLE9BQW9CLE9BQVEsQ0FBQyxhQUFhLENBQUM7UUFDcEYsT0FBb0IsT0FBTyxDQUFDO0lBQ2hDLENBQUM7b0dBbEpRLGdCQUFnQjtzR0FBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGYixNQUFNOzt1RkFFVCxnQkFBZ0I7Y0FINUIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEclBvcG92ZXJSZWYgfSBmcm9tICcuL2RyLXBvcG92ZXItcmVmJztcbmltcG9ydCB7IERyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vZHItcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgU3RhdGljUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUE9QVVBfUE9TSVRJT05TIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRywgREVGQVVMVF9NT0RFTCwgZ2V0QWxpZ25tZW50RGltZW5zaW9uLCBJRHJQb3BvdmVyQ29tcG9uZW50TW9kZWwsIFBvaW50IH0gZnJvbSAnLi4vbW9kZWxzL3BvcG92ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEclBvcG92ZXJTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge31cblxuICAgIG9wZW48VD4oXG4gICAgICAgIGNvbnRlbnQ6IFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8VD4sXG4gICAgICAgIHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsPFQ+LFxuICAgICk6IERyUG9wb3ZlclJlZjxUPiB7XG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IG1vZGVsID0geyAuLi5ERUZBVUxUX01PREVMLCAuLi5wb3BvdmVyTW9kZWwgfTtcblxuICAgICAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KG1vZGVsKTtcblxuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gbmV3IERyUG9wb3ZlclJlZjxUPihvdmVybGF5UmVmKTtcblxuICAgICAgICB0aGlzLmF0dGFjaE92ZXJsYXlDb250YWluZXIoY29udGVudCwgbW9kZWwsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMobW9kZWwsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xuXG4gICAgICAgIHJldHVybiBwb3BvdmVyUmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXR0YWNoT3ZlcmxheUNvbnRhaW5lcjxUPihcbiAgICAgICAgY29udGVudDogVHlwZTxUPiB8IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb250ZW50Q29udGV4dCxcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgY2xhc3M6IGVsZW1lbnRDbGFzcyxcbiAgICAgICAgICAgIG1hbnVhbENsb3NpbmcsXG4gICAgICAgICAgICBob3N0UmVmLFxuICAgICAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICAgICAgZnJlZXplVG9Db250YWluZXJTZWxlY3RvcixcbiAgICAgICAgICAgIG92ZXJsYXlDb25maWcsXG4gICAgICAgIH06IElEclBvcG92ZXJDb21wb25lbnRNb2RlbCxcbiAgICAgICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICAgICAgcG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+LFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPERyUG9wb3ZlckNvbXBvbmVudDxUPj4oXG4gICAgICAgICAgICBEclBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVJbmplY3Rvcihwb3BvdmVyUmVmLCBvdmVybGF5Q29uZmlnLnByb3ZpZGVycyksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBvdmVybGF5UmVmLmF0dGFjaDxEclBvcG92ZXJDb21wb25lbnQ8VD4+KGNvbXBvbmVudFBvcnRhbCk7XG5cbiAgICAgICAgcG9wb3ZlclJlZi5jb21wb25lbnRSZWYgPSBjb250ZW50UmVmO1xuXG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuY29udGVudENvbnRleHQgPSB7IC4uLmNvbnRlbnRDb250ZXh0LCBjbG9zZVBvcG92ZXI6IHBvcG92ZXJSZWYuY2xvc2UuYmluZChwb3BvdmVyUmVmKSB9O1xuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLmNsYXNzID0gZWxlbWVudENsYXNzICsgJyAnICsgcG9zaXRpb247XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UubWFudWFsQ2xvc2luZyA9IG1hbnVhbENsb3Npbmc7XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuaG9zdFJlZiA9IGhvc3RSZWY7XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuYWxpZ25tZW50ID0gYWxpZ25tZW50O1xuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuZnJlZXplVG9Db250YWluZXJTZWxlY3RvciA9IGZyZWV6ZVRvQ29udGFpbmVyU2VsZWN0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsKTogT3ZlcmxheVJlZiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcocG9wb3Zlck1vZGVsKTtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIGlmICghUE9QVVBfUE9TSVRJT05TW3BvcG92ZXJNb2RlbC5wb3NpdGlvbl0pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERyUG9wb3ZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSAnJHtwb3BvdmVyTW9kZWw/LnBvc2l0aW9ufScgcG9zaXRpb24hYCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb246IGFueSA9IHsgLi4uUE9QVVBfUE9TSVRJT05TW3BvcG92ZXJNb2RlbC5wb3NpdGlvbl0gfTtcbiAgICAgICAgY29uc3QgcG9zaXRpb25PZmZzZXRZID0gcG9wb3Zlck1vZGVsLm92ZXJsYXlDb25maWcucG9zaXRpb25PZmZzZXRZO1xuICAgICAgICBjb25zdCBwb3NpdGlvbk9mZnNldFggPSBwb3BvdmVyTW9kZWwub3ZlcmxheUNvbmZpZy5wb3NpdGlvbk9mZnNldFg7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uT2Zmc2V0WSB8fCBwb3NpdGlvbk9mZnNldFgpIHtcbiAgICAgICAgICAgIGlmIChwb3NpdGlvbi5vZmZzZXRZKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24ub2Zmc2V0WSA9IHBvc2l0aW9uLm9mZnNldFkgPCAwID8gcG9zaXRpb25PZmZzZXRZIDogcG9zaXRpb25PZmZzZXRZO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uLm9mZnNldFggPSBwb3NpdGlvbk9mZnNldFg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocG9zaXRpb24ub2Zmc2V0WCkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uLm9mZnNldFggPSBwb3NpdGlvbi5vZmZzZXRYIDwgMCA/IC1wb3NpdGlvbk9mZnNldFggOiBwb3NpdGlvbk9mZnNldFg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24ub2Zmc2V0WSA9IHBvc2l0aW9uT2Zmc2V0WTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3BvdmVyTW9kZWwub3ZlcmxheUNvbmZpZy5ub1BhZGRpbmcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uLm9mZnNldFkgPSAwO1xuICAgICAgICAgICAgcG9zaXRpb24ub2Zmc2V0WCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uKHBvcG92ZXJNb2RlbC5vdmVybGF5Q29uZmlnIHx8IHt9KSB9O1xuICAgICAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQocG9wb3Zlck1vZGVsLmhvc3RSZWYpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIuZmxleGlibGVDb25uZWN0ZWRUbyhwb3BvdmVyTW9kZWwuaG9zdFJlZikud2l0aFBvc2l0aW9ucyhbcG9zaXRpb25dKTtcblxuICAgICAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwb3BvdmVyTW9kZWwuYWxpZ25tZW50ID09PSAnaG9zdCcgJiYgaG9zdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFsaWdubWVudERpbWVuc2lvbiA9IGdldEFsaWdubWVudERpbWVuc2lvbihwb3BvdmVyTW9kZWwucG9zaXRpb24pO1xuICAgICAgICAgICAgb3ZlcmxheUNvbmZpZ1thbGlnbm1lbnREaW1lbnNpb25dID0gaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbYWxpZ25tZW50RGltZW5zaW9uXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdmVybGF5Q29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VD4ocG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+LCB0b2tlbnM6IFN0YXRpY1Byb3ZpZGVyW10pOiBJbmplY3RvciB7XG4gICAgICAgIGNvbnN0IGluamVjdGlvblRva2VuczogU3RhdGljUHJvdmlkZXJbXSA9IFsuLi4odG9rZW5zIHx8IFtdKSwgeyBwcm92aWRlOiBEclBvcG92ZXJSZWYsIHVzZVZhbHVlOiBwb3BvdmVyUmVmIH1dO1xuXG4gICAgICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IGluamVjdGlvblRva2VucywgcGFyZW50OiB0aGlzLmluamVjdG9yIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJMaXN0ZW5lcnM8VD4oXG4gICAgICAgIHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsLFxuICAgICAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgICAgICBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD4sXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHBvcG92ZXJNb2RlbC5vdmVybGF5Q29uZmlnIHx8IHt9O1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gcG9wb3Zlck1vZGVsLnRhcmdldEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5nZXRIb3N0RWxlbWVudChwb3BvdmVyTW9kZWwuaG9zdFJlZik7XG5cbiAgICAgICAgaWYgKGNvbmZpZz8uY2xvc2VPbkJhY2tkcm9wQ2xpY2sgJiYgY29uZmlnPy5oYXNCYWNrZHJvcCkge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHBvcG92ZXJSZWYuY2xvc2UoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgKCkgPT4gcG9wb3ZlclJlZi5jbG9zZSgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9wb3Zlck1vZGVsLmFsaWdubWVudCA9PT0gJ2hvc3QnICYmIGhvc3RFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBhbGlnbm1lbnREaW1lbnNpb24gPSBnZXRBbGlnbm1lbnREaW1lbnNpb24ocG9wb3Zlck1vZGVsLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgZW50cmllcy5mb3JFYWNoKChob3N0KSA9PlxuICAgICAgICAgICAgICAgICAgICBvdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBbYWxpZ25tZW50RGltZW5zaW9uXTogaG9zdC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbYWxpZ25tZW50RGltZW5zaW9uXSB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGhvc3RFbGVtZW50KTtcbiAgICAgICAgICAgIHBvcG92ZXJSZWYub25DbG9zZS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiByZXNpemVPYnNlcnZlci51bm9ic2VydmUoaG9zdEVsZW1lbnQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQ8VD4oaG9zdFJlZjogUG9pbnQgfCBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8VD4pOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGlmICghaG9zdFJlZiB8fCAoPFBvaW50Pmhvc3RSZWYpLngpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoKDxFbGVtZW50UmVmPmhvc3RSZWYpLm5hdGl2ZUVsZW1lbnQpIHJldHVybiAoPEVsZW1lbnRSZWY+aG9zdFJlZikubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIDxIVE1MRWxlbWVudD5ob3N0UmVmO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { Scenario } from '../../interfaces/scenario';
|
|
3
|
+
import { ScenarioService } from '../../services/scenario.service';
|
|
4
|
+
import { TagTypes } from '../../../models/serverTags';
|
|
5
|
+
import { find as _find } from 'lodash';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../services/scenario.service";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "../../../dr-inputs/dr-select/dr-select.component";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "../../../dr-tags-constructor/dr-tags-constructor.component";
|
|
12
|
+
function DrScenarioConfigurationComponent_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
14
|
+
i0.ɵɵelementStart(0, "div", 5)(1, "dr-tags-constructor", 6);
|
|
15
|
+
i0.ɵɵlistener("tagChange", function DrScenarioConfigurationComponent_div_5_Template_dr_tags_constructor_tagChange_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onScenarioDataChange()); })("tagToggle", function DrScenarioConfigurationComponent_div_5_Template_dr_tags_constructor_tagToggle_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onScenarioTagToggle($event)); });
|
|
16
|
+
i0.ɵɵelementEnd()();
|
|
17
|
+
} if (rf & 2) {
|
|
18
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
19
|
+
i0.ɵɵadvance(1);
|
|
20
|
+
i0.ɵɵproperty("scenarioTagsConfig", ctx_r0.scenarioTags);
|
|
21
|
+
} }
|
|
22
|
+
export class DrScenarioConfigurationComponent {
|
|
23
|
+
set selectedScenario(scenario) {
|
|
24
|
+
if (!Object.values(Scenario).includes(scenario)) {
|
|
25
|
+
this._selectedScenario = Scenario.ACTUALS;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this._selectedScenario = scenario;
|
|
29
|
+
}
|
|
30
|
+
get selectedScenario() {
|
|
31
|
+
return this._selectedScenario || Scenario.ACTUALS;
|
|
32
|
+
}
|
|
33
|
+
get scenarioTags() {
|
|
34
|
+
return this._scenarioTags;
|
|
35
|
+
}
|
|
36
|
+
set scenarioTags(tags) {
|
|
37
|
+
this._scenarioTags = tags;
|
|
38
|
+
this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });
|
|
39
|
+
}
|
|
40
|
+
get dateTag() {
|
|
41
|
+
return _find(this.scenarioTags, { type: TagTypes.DATE });
|
|
42
|
+
}
|
|
43
|
+
constructor(scenarioService) {
|
|
44
|
+
this.scenarioService = scenarioService;
|
|
45
|
+
this._scenarioTags = [];
|
|
46
|
+
this.wholeTagsConfig = [];
|
|
47
|
+
this.isMultipleDimension = false;
|
|
48
|
+
this.isForecastMultipleDimension = false;
|
|
49
|
+
this.scenarioDataChanged = new EventEmitter();
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
this.scenarios = this.scenarioService.scenarios;
|
|
53
|
+
this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);
|
|
54
|
+
this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);
|
|
55
|
+
}
|
|
56
|
+
onScenarioChange(scenario) {
|
|
57
|
+
this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);
|
|
58
|
+
this.onScenarioDataChange();
|
|
59
|
+
}
|
|
60
|
+
onScenarioTagToggle(tag) {
|
|
61
|
+
this.scenarioService.tagNotSupportingDatesHandler(tag, this.tagNotSupportingDates, this.dateTag);
|
|
62
|
+
this.scenarioService.tagAcceptableSubTagsHandler(tag, this.dateTag);
|
|
63
|
+
this.onScenarioDataChange();
|
|
64
|
+
}
|
|
65
|
+
onScenarioDataChange() {
|
|
66
|
+
this.scenarioDataChanged.emit({
|
|
67
|
+
scenario: this.selectedScenario,
|
|
68
|
+
tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/** @nocollapse */ static { this.ɵfac = function DrScenarioConfigurationComponent_Factory(t) { return new (t || DrScenarioConfigurationComponent)(i0.ɵɵdirectiveInject(i1.ScenarioService)); }; }
|
|
72
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrScenarioConfigurationComponent, selectors: [["dr-scenario-configuration"]], inputs: { currentTagsConfig: "currentTagsConfig", wholeTagsConfig: "wholeTagsConfig", selectedScenario: "selectedScenario", isMultipleDimension: "isMultipleDimension", isForecastMultipleDimension: "isForecastMultipleDimension" }, outputs: { scenarioDataChanged: "scenarioDataChanged" }, features: [i0.ɵɵProvidersFeature([ScenarioService])], decls: 6, vars: 3, consts: [[1, "scenario"], [1, "scenario__list"], [1, "scenario__title", "scenario__title-list"], ["placeholder", "Select", 3, "ngModel", "items", "ngModelChange"], ["class", "scenario__tags", 4, "ngIf"], [1, "scenario__tags"], [3, "scenarioTagsConfig", "tagChange", "tagToggle"]], template: function DrScenarioConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "p", 2);
|
|
74
|
+
i0.ɵɵtext(3, "Scenario");
|
|
75
|
+
i0.ɵɵelementEnd();
|
|
76
|
+
i0.ɵɵelementStart(4, "dr-select", 3);
|
|
77
|
+
i0.ɵɵlistener("ngModelChange", function DrScenarioConfigurationComponent_Template_dr_select_ngModelChange_4_listener($event) { return ctx.selectedScenario = $event; })("ngModelChange", function DrScenarioConfigurationComponent_Template_dr_select_ngModelChange_4_listener($event) { return ctx.onScenarioChange($event); });
|
|
78
|
+
i0.ɵɵelementEnd()();
|
|
79
|
+
i0.ɵɵtemplate(5, DrScenarioConfigurationComponent_div_5_Template, 2, 1, "div", 4);
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
} if (rf & 2) {
|
|
82
|
+
i0.ɵɵadvance(4);
|
|
83
|
+
i0.ɵɵproperty("ngModel", ctx.selectedScenario)("items", ctx.scenarios);
|
|
84
|
+
i0.ɵɵadvance(1);
|
|
85
|
+
i0.ɵɵproperty("ngIf", ctx.scenarioTags == null ? null : ctx.scenarioTags.length);
|
|
86
|
+
} }, dependencies: [i2.NgIf, i3.DrSelectComponent, i4.NgControlStatus, i4.NgModel, i5.DrTagsConstructorComponent], styles: [".scenario__title[_ngcontent-%COMP%]{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.scenario__title-list[_ngcontent-%COMP%]{margin-bottom:4px}.scenario__tags[_ngcontent-%COMP%]{margin-top:24px}[_nghost-%COMP%] .toggle-container__item{padding:2px 8px!important}"], changeDetection: 0 }); }
|
|
87
|
+
}
|
|
88
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrScenarioConfigurationComponent, [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: 'dr-scenario-configuration', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ScenarioService], template: "<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select\n [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor\n [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($any($event))\"></dr-tags-constructor>\n </div>\n</div>\n", styles: [".scenario__title{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.scenario__title-list{margin-bottom:4px}.scenario__tags{margin-top:24px}:host::ng-deep .toggle-container__item{padding:2px 8px!important}\n"] }]
|
|
91
|
+
}], function () { return [{ type: i1.ScenarioService }]; }, { currentTagsConfig: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], wholeTagsConfig: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], selectedScenario: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], isMultipleDimension: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], isForecastMultipleDimension: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], scenarioDataChanged: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}] }); })();
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBa0IsUUFBUSxFQUF3QixNQUFNLDJCQUEyQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQVEsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztJQ0tuQyw4QkFBeUQsNkJBQUE7SUFHakQsa01BQWEsZUFBQSw2QkFBc0IsQ0FBQSxJQUFDLDJMQUN2QixlQUFBLGtDQUFpQyxDQUFBLElBRFY7SUFDWSxpQkFBc0IsRUFBQTs7O0lBRnRFLGVBQW1DO0lBQW5DLHdEQUFtQzs7QURFL0MsTUFBTSxPQUFPLGdDQUFnQztJQVN6QyxJQUFvQixnQkFBZ0IsQ0FBQyxRQUFrQjtRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMs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O1lBWE0sZUFBOEI7WUFBOUIsOENBQThCLHdCQUFBO1lBS1QsZUFBMEI7WUFBMUIsZ0ZBQTBCOzs7dUZESTlDLGdDQUFnQztjQVA1QyxTQUFTOzJCQUNJLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGVBQWUsQ0FBQztrRUFTWixpQkFBaUI7a0JBQWhDLEtBQUs7WUFDVSxlQUFlO2tCQUE5QixLQUFLO1lBQ2MsZ0JBQWdCO2tCQUFuQyxLQUFLO1lBUVUsbUJBQW1CO2tCQUFsQyxLQUFLO1lBQ1UsMkJBQTJCO2tCQUExQyxLQUFLO1lBRVcsbUJBQW1CO2tCQUFuQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElTY2VuYXJpb1RhZ1VpLCBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7IFNjZW5hcmlvU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVRhZywgVGFnVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kIH0gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1zY2VuYXJpby1jb25maWd1cmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1NjZW5hcmlvU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIERyU2NlbmFyaW9Db25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgc2NlbmFyaW9zOiBTY2VuYXJpb1tdO1xuXG4gICAgcHJpdmF0ZSBfc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdID0gW107XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRTY2VuYXJpbzogU2NlbmFyaW87XG4gICAgcHJpdmF0ZSB0YWdOb3RTdXBwb3J0aW5nRGF0ZXM6IElTY2VuYXJpb1RhZ1VpO1xuXG4gICAgQElucHV0KCkgcHVibGljIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgcHVibGljIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIHNldCBzZWxlY3RlZFNjZW5hcmlvKHNjZW5hcmlvOiBTY2VuYXJpbykge1xuICAgICAgICBpZiAoIU9iamVjdC52YWx1ZXMoU2NlbmFyaW8pLmluY2x1ZGVzKHNjZW5hcmlvKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTY2VuYXJpbyA9IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZFNjZW5hcmlvID0gc2NlbmFyaW87XG4gICAgfVxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRTY2VuYXJpbygpOiBTY2VuYXJpbyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFNjZW5hcmlvIHx8IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzY2VuYXJpb1RhZ3MoKTogSVNjZW5hcmlvVGFnVWlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY2VuYXJpb1RhZ3M7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzY2VuYXJpb1RhZ3ModGFnczogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICB0aGlzLl9zY2VuYXJpb1RhZ3MgPSB0YWdzO1xuICAgICAgICB0aGlzLnRhZ05vdFN1cHBvcnRpbmdEYXRlcyA9IF9maW5kKHRhZ3MsIHsgdHVybk9mZkRhdGVUYWdzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVRhZygpOiBJU2NlbmFyaW9UYWdVaSB7XG4gICAgICAgIHJldHVybiBfZmluZCh0aGlzLnNjZW5hcmlvVGFncywgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NlbmFyaW9TZXJ2aWNlOiBTY2VuYXJpb1NlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9zID0gdGhpcy5zY2VuYXJpb1NlcnZpY2Uuc2NlbmFyaW9zO1xuICAgICAgICB0aGlzLnNjZW5hcmlvU2VydmljZS5pbml0U2NlbmFyaW9UYWdzKHRoaXMud2hvbGVUYWdzQ29uZmlnLCB0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCB0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24sIHRoaXMuaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uKTtcbiAgICAgICAgdGhpcy5zY2VuYXJpb1RhZ3MgPSB0aGlzLnNjZW5hcmlvU2VydmljZS5nZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHRoaXMuc2VsZWN0ZWRTY2VuYXJpbyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9DaGFuZ2Uoc2NlbmFyaW86IFNjZW5hcmlvKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9UYWdzID0gdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0U2NlbmFyaW9UYWdzQnlTY2VuYXJpbyhzY2VuYXJpbyk7XG4gICAgICAgIHRoaXMub25TY2VuYXJpb0RhdGFDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY2VuYXJpb1RhZ1RvZ2dsZSh0YWc6IElTY2VuYXJpb1RhZ1VpKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnRhZ05vdFN1cHBvcnRpbmdEYXRlc0hhbmRsZXI8SVNjZW5hcmlvVGFnVWk+KHRhZywgdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMsIHRoaXMuZGF0ZVRhZyk7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnRhZ0FjY2VwdGFibGVTdWJUYWdzSGFuZGxlcjxJU2NlbmFyaW9UYWdVaT4odGFnLCB0aGlzLmRhdGVUYWcpO1xuICAgICAgICB0aGlzLm9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvRGF0YUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBzY2VuYXJpbzogdGhpcy5zZWxlY3RlZFNjZW5hcmlvLFxuICAgICAgICAgICAgdGFnc0NvbmZpZzogdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHRoaXMuc2NlbmFyaW9UYWdzLCB0aGlzLndob2xlVGFnc0NvbmZpZyksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2VuYXJpb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzY2VuYXJpb19fbGlzdFwiPlxuICAgICAgICA8cCBjbGFzcz1cInNjZW5hcmlvX190aXRsZSBzY2VuYXJpb19fdGl0bGUtbGlzdFwiPlNjZW5hcmlvPC9wPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2NlbmFyaW9cIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInNjZW5hcmlvc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNjZW5hcmlvQ2hhbmdlKCRldmVudClcIj48L2RyLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2NlbmFyaW9fX3RhZ3NcIiAqbmdJZj1cInNjZW5hcmlvVGFncz8ubGVuZ3RoXCI+XG4gICAgICAgIDxkci10YWdzLWNvbnN0cnVjdG9yXG4gICAgICAgICAgICBbc2NlbmFyaW9UYWdzQ29uZmlnXT1cInNjZW5hcmlvVGFnc1wiXG4gICAgICAgICAgICAodGFnQ2hhbmdlKT1cIm9uU2NlbmFyaW9EYXRhQ2hhbmdlKClcIlxuICAgICAgICAgICAgKHRhZ1RvZ2dsZSk9XCJvblNjZW5hcmlvVGFnVG9nZ2xlKCRhbnkoJGV2ZW50KSlcIj48L2RyLXRhZ3MtY29uc3RydWN0b3I+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { reduce as _reduce, find as _find, merge as _merge } from 'lodash';
|
|
3
|
+
import { Scenario } from '../../interfaces/scenario';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "../../../dr-tags/dr-tag.component";
|
|
7
|
+
function DrScenarioTagConfigurationComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
9
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "dr-tag", 2);
|
|
10
|
+
i0.ɵɵlistener("tagChange", function DrScenarioTagConfigurationComponent_div_0_Template_dr_tag_tagChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onTagChange($event)); })("dynamicTagChange", function DrScenarioTagConfigurationComponent_div_0_Template_dr_tag_dynamicTagChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onDynamicTagsChange($event)); });
|
|
11
|
+
i0.ɵɵelementEnd()();
|
|
12
|
+
} if (rf & 2) {
|
|
13
|
+
const tagConfig_r1 = ctx.$implicit;
|
|
14
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
15
|
+
i0.ɵɵadvance(1);
|
|
16
|
+
i0.ɵɵproperty("tagConfig", tagConfig_r1)("selectedTag", ctx_r0.currentTagsMap[tagConfig_r1.id])("lockedDate", ctx_r0.lockedDates)("fiscalYearStartsFrom", ctx_r0.fiscalYearStartsFrom)("fiscalYearBack", ctx_r0.fiscalYearBack)("tagsConfig", ctx_r0.tagsConfig)("dynamicTagValues", ctx_r0.dynamicTagValues)("connectedTags", ctx_r0.connectedTags[tagConfig_r1.id])("isDynamicTagAddEnabled", ctx_r0.isDynamicAddEnabled)("tagAdditionalSettings", ctx_r0.tagAdditionalSettings);
|
|
17
|
+
} }
|
|
18
|
+
export class DrScenarioTagConfigurationComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.connectedTags = {};
|
|
21
|
+
this.dynamicTagValues = {};
|
|
22
|
+
this.lockedDates = [];
|
|
23
|
+
this.scenarioTagDataChanged = new EventEmitter();
|
|
24
|
+
this.currentTagsMap = {};
|
|
25
|
+
this._currentTags = [];
|
|
26
|
+
this.dynamicTagsToSave = [];
|
|
27
|
+
this.tagsToSave = [];
|
|
28
|
+
}
|
|
29
|
+
set currentTags(tags) {
|
|
30
|
+
this._currentTags = tags;
|
|
31
|
+
this.currentTagsMap = _reduce(tags, (acc, curr) => {
|
|
32
|
+
const tagId = _find(this.tagsConfig, { name: curr.name })?.id;
|
|
33
|
+
if (isNaN(tagId))
|
|
34
|
+
return acc;
|
|
35
|
+
acc[tagId] = curr;
|
|
36
|
+
return acc;
|
|
37
|
+
}, {});
|
|
38
|
+
}
|
|
39
|
+
get currentTags() {
|
|
40
|
+
return this._currentTags;
|
|
41
|
+
}
|
|
42
|
+
ngOnChanges(simpleChanges) {
|
|
43
|
+
this.currentTags = this.currentTags;
|
|
44
|
+
}
|
|
45
|
+
onTagChange($event) {
|
|
46
|
+
const savedTag = _find(this.tagsToSave, { id: $event.id });
|
|
47
|
+
if (savedTag) {
|
|
48
|
+
_merge(savedTag, $event);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.tagsToSave.push($event);
|
|
52
|
+
}
|
|
53
|
+
this.onScenarioTagDataChanged();
|
|
54
|
+
}
|
|
55
|
+
onDynamicTagsChange($event) {
|
|
56
|
+
this.dynamicTagsToSave = $event;
|
|
57
|
+
this.onScenarioTagDataChanged();
|
|
58
|
+
}
|
|
59
|
+
onScenarioTagDataChanged() {
|
|
60
|
+
const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];
|
|
61
|
+
this.scenarioTagDataChanged.emit({
|
|
62
|
+
scenario: this.scenario,
|
|
63
|
+
tagsConfig: this.tagsConfig,
|
|
64
|
+
tags,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/** @nocollapse */ static { this.ɵfac = function DrScenarioTagConfigurationComponent_Factory(t) { return new (t || DrScenarioTagConfigurationComponent)(); }; }
|
|
68
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrScenarioTagConfigurationComponent, selectors: [["dr-scenario-tag-configuration"]], inputs: { tagsConfig: "tagsConfig", currentTags: "currentTags", scenario: "scenario", connectedTags: "connectedTags", dynamicTagValues: "dynamicTagValues", tagAdditionalSettings: "tagAdditionalSettings", lockedDates: "lockedDates", fiscalYearStartsFrom: "fiscalYearStartsFrom", fiscalYearBack: "fiscalYearBack", isDynamicAddEnabled: "isDynamicAddEnabled" }, outputs: { scenarioTagDataChanged: "scenarioTagDataChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "scenario-tag-configuration", 4, "ngFor", "ngForOf"], [1, "scenario-tag-configuration"], [3, "tagConfig", "selectedTag", "lockedDate", "fiscalYearStartsFrom", "fiscalYearBack", "tagsConfig", "dynamicTagValues", "connectedTags", "isDynamicTagAddEnabled", "tagAdditionalSettings", "tagChange", "dynamicTagChange"]], template: function DrScenarioTagConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵtemplate(0, DrScenarioTagConfigurationComponent_div_0_Template, 2, 10, "div", 0);
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
i0.ɵɵproperty("ngForOf", ctx.tagsConfig);
|
|
72
|
+
} }, dependencies: [i1.NgForOf, i2.DrTagComponent], styles: [".scenario-tag-configuration[_ngcontent-%COMP%]{margin-bottom:24px}.scenario-tag-configuration[_ngcontent-%COMP%]:last-child{margin-bottom:0}"], changeDetection: 0 }); }
|
|
73
|
+
}
|
|
74
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrScenarioTagConfigurationComponent, [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{ selector: 'dr-scenario-tag-configuration', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scenario-tag-configuration\" *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n [tagAdditionalSettings]=\"tagAdditionalSettings\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n", styles: [".scenario-tag-configuration{margin-bottom:24px}.scenario-tag-configuration:last-child{margin-bottom:0}\n"] }]
|
|
77
|
+
}], null, { tagsConfig: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], currentTags: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], scenario: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], connectedTags: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], dynamicTagValues: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], tagAdditionalSettings: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], lockedDates: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], fiscalYearStartsFrom: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], fiscalYearBack: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], isDynamicAddEnabled: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], scenarioTagDataChanged: [{
|
|
98
|
+
type: Output
|
|
99
|
+
}] }); })();
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItc2NlbmFyaW8vY29tcG9uZW50cy9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUF3QixNQUFNLDJCQUEyQixDQUFDOzs7Ozs7SUNIM0UsOEJBQTZFLGdCQUFBO0lBWXJFLDhMQUFhLGVBQUEsMEJBQW1CLENBQUEsSUFBQywrTEFDYixlQUFBLGtDQUEyQixDQUFBLElBRGQ7SUFDZ0IsaUJBQVMsRUFBQTs7OztJQVgxRCxlQUF1QjtJQUF2Qix3Q0FBdUIsdURBQUEsa0NBQUEscURBQUEseUNBQUEsaUNBQUEsNkNBQUEsd0RBQUEsc0RBQUEsdURBQUE7O0FEVS9CLE1BQU0sT0FBTyxtQ0FBbUM7SUFOaEQ7UUF3Qm9CLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxxQkFBZ0IsR0FB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dEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgSVRhZ0ZvclNlcnZlciwgVENvbm5lY3RlZFRhZ3MsIFREeW5hbWljVGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgcmVkdWNlIGFzIF9yZWR1Y2UsIGZpbmQgYXMgX2ZpbmQsIG1lcmdlIGFzIF9tZXJnZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7IElUYWdBZGRpdGlvbmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi9kci10YWdzL2RyLXRhZy50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJTY2VuYXJpb1RhZ0NvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgcHVibGljIHNldCBjdXJyZW50VGFncyh0YWdzOiBJVGFnRm9yU2VydmVyW10pIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFRhZ3MgPSB0YWdzO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdzTWFwID0gX3JlZHVjZShcbiAgICAgICAgICAgIHRhZ3MsXG4gICAgICAgICAgICAoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnSWQgPSBfZmluZCh0aGlzLnRhZ3NDb25maWcsIHsgbmFtZTogY3Vyci5uYW1lIH0pPy5pZDtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odGFnSWQpKSByZXR1cm4gYWNjO1xuXG4gICAgICAgICAgICAgICAgYWNjW3RhZ0lkXSA9IGN1cnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2NlbmFyaW86IFNjZW5hcmlvO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb25uZWN0ZWRUYWdzOiBUQ29ubmVjdGVkVGFncyA9IHt9O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkeW5hbWljVGFnVmFsdWVzOiBURHluYW1pY1RhZyA9IHt9O1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWdBZGRpdGlvbmFsU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIElUYWdBZGRpdGlvbmFsU2V0dGluZ3M+O1xuXG4gICAgQElucHV0KCkgcHVibGljIGxvY2tlZERhdGVzOiBzdHJpbmdbXSB8IG51bWJlcltdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGZpc2NhbFllYXJTdGFydHNGcm9tOiBudW1iZXI7XG4gICAgQElucHV0KCkgcHVibGljIGZpc2NhbFllYXJCYWNrOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0R5bmFtaWNBZGRFbmFibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb1RhZ0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBjdXJyZW50VGFnc01hcDogeyBbdGFnSWQ6IG51bWJlcl06IElUYWdGb3JTZXJ2ZXIgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBfY3VycmVudFRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgZHluYW1pY1RhZ3NUb1NhdmU6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgdGFnc1RvU2F2ZTogSVRhZ0ZvclNlcnZlcltdID0gW107XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbnRUYWdzKCk6IElUYWdGb3JTZXJ2ZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGFncztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdzID0gdGhpcy5jdXJyZW50VGFncztcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWdDaGFuZ2UoJGV2ZW50OiBJVGFnRm9yU2VydmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhdmVkVGFnID0gX2ZpbmQodGhpcy50YWdzVG9TYXZlLCB7IGlkOiAkZXZlbnQuaWQgfSk7XG5cbiAgICAgICAgaWYgKHNhdmVkVGFnKSB7XG4gICAgICAgICAgICBfbWVyZ2Uoc2F2ZWRUYWcsICRldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhZ3NUb1NhdmUucHVzaCgkZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblNjZW5hcmlvVGFnRGF0YUNoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EeW5hbWljVGFnc0NoYW5nZSgkZXZlbnQ6IElUYWdGb3JTZXJ2ZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmR5bmFtaWNUYWdzVG9TYXZlID0gJGV2ZW50O1xuICAgICAgICB0aGlzLm9uU2NlbmFyaW9UYWdEYXRhQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNjZW5hcmlvVGFnRGF0YUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBbLi4udGhpcy5keW5hbWljVGFnc1RvU2F2ZSwgLi4udGhpcy50YWdzVG9TYXZlXTtcbiAgICAgICAgdGhpcy5zY2VuYXJpb1RhZ0RhdGFDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgc2NlbmFyaW86IHRoaXMuc2NlbmFyaW8sXG4gICAgICAgICAgICB0YWdzQ29uZmlnOiB0aGlzLnRhZ3NDb25maWcsXG4gICAgICAgICAgICB0YWdzLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb25cIiAqbmdGb3I9XCJsZXQgdGFnQ29uZmlnIG9mIHRhZ3NDb25maWdcIj5cbiAgICA8ZHItdGFnXG4gICAgICAgIFt0YWdDb25maWddPVwidGFnQ29uZmlnXCJcbiAgICAgICAgW3NlbGVjdGVkVGFnXT1cImN1cnJlbnRUYWdzTWFwW3RhZ0NvbmZpZy5pZF1cIlxuICAgICAgICBbbG9ja2VkRGF0ZV09XCJsb2NrZWREYXRlc1wiXG4gICAgICAgIFtmaXNjYWxZZWFyU3RhcnRzRnJvbV09XCJmaXNjYWxZZWFyU3RhcnRzRnJvbVwiXG4gICAgICAgIFtmaXNjYWxZZWFyQmFja109XCJmaXNjYWxZZWFyQmFja1wiXG4gICAgICAgIFt0YWdzQ29uZmlnXT1cInRhZ3NDb25maWdcIlxuICAgICAgICBbZHluYW1pY1RhZ1ZhbHVlc109XCJkeW5hbWljVGFnVmFsdWVzXCJcbiAgICAgICAgW2Nvbm5lY3RlZFRhZ3NdPVwiY29ubmVjdGVkVGFnc1t0YWdDb25maWcuaWRdXCJcbiAgICAgICAgW2lzRHluYW1pY1RhZ0FkZEVuYWJsZWRdPVwiaXNEeW5hbWljQWRkRW5hYmxlZFwiXG4gICAgICAgIFt0YWdBZGRpdGlvbmFsU2V0dGluZ3NdPVwidGFnQWRkaXRpb25hbFNldHRpbmdzXCJcbiAgICAgICAgKHRhZ0NoYW5nZSk9XCJvblRhZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGR5bmFtaWNUYWdDaGFuZ2UpPVwib25EeW5hbWljVGFnc0NoYW5nZSgkZXZlbnQpXCI+PC9kci10YWc+XG48L2Rpdj5cbiJdfQ==
|