@datarailsshared/datarailsshared 1.4.195-rocket → 1.4.202
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/_datarailsshared.styles.css +4 -4
- package/assets/styles/_styles.scss +2 -2
- package/assets/styles/mixins.scss +7 -0
- package/bundles/datarailsshared-datarailsshared.umd.js +8041 -0
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -0
- package/datarailsshared-datarailsshared-1.4.202.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +34 -0
- package/datarailsshared-datarailsshared.metadata.json +1 -0
- package/esm2015/datarailsshared-datarailsshared.js +35 -0
- package/esm2015/lib/date-tags/date-tag.component.js +73 -0
- package/esm2015/lib/date-tags/date-tag.module.js +36 -0
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +77 -0
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +153 -0
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +80 -0
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +105 -0
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +84 -0
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +78 -0
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +55 -0
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +77 -0
- package/esm2015/lib/dr-accordion/accordion-item.component.js +123 -0
- package/esm2015/lib/dr-accordion/accordion.component.js +43 -0
- package/esm2015/lib/dr-accordion/accordion.module.js +23 -0
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +44 -0
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -0
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +16 -0
- package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +25 -0
- package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +20 -0
- package/esm2015/lib/dr-chat/chat.component.js +119 -0
- package/esm2015/lib/dr-chat/chat.module.js +41 -0
- package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +155 -0
- package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +71 -0
- package/{esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs → esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js} +21 -21
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +23 -0
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +47 -0
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +18 -0
- package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +87 -0
- package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +15 -0
- package/esm2015/lib/dr-details-list/dr-details-list.component.js +65 -0
- package/esm2015/lib/dr-details-list/dr-details-list.module.js +16 -0
- package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +70 -0
- package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +92 -0
- package/esm2015/lib/dr-dialog/dialog.module.js +34 -0
- package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +25 -0
- package/esm2015/lib/dr-dialog/services/dialog.service.js +78 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +104 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +114 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +104 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -0
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -0
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +103 -0
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +19 -0
- package/esm2015/lib/dr-error/dr-error.component.js +64 -0
- package/esm2015/lib/dr-error/dr-error.module.js +22 -0
- package/esm2015/lib/dr-inputs/button/button.component.js +39 -0
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +65 -0
- package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +47 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +216 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +180 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +183 -0
- package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +12 -0
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +194 -0
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +194 -0
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +66 -0
- package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +29 -0
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +119 -0
- package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +74 -0
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +68 -0
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +63 -0
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +73 -0
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +157 -0
- package/esm2015/lib/dr-layout/dr-layout-body.component.js +13 -0
- package/esm2015/lib/dr-layout/dr-layout-header.component.js +17 -0
- package/esm2015/lib/dr-layout/dr-layout.component.js +14 -0
- package/esm2015/lib/dr-layout/dr-layout.module.js +20 -0
- package/esm2015/lib/dr-popover/dr-popover-ref.js +20 -0
- package/esm2015/lib/dr-popover/dr-popover.component.js +106 -0
- package/esm2015/lib/dr-popover/dr-popover.directive.js +84 -0
- package/esm2015/lib/dr-popover/dr-popover.module.js +23 -0
- package/esm2015/lib/dr-popover/dr-popover.service.js +106 -0
- package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +102 -0
- package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +74 -0
- package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +73 -0
- package/esm2015/lib/dr-scenario/dr-scenario.module.js +28 -0
- package/esm2015/lib/dr-scenario/services/scenario.service.js +167 -0
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +18 -0
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +56 -0
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -0
- package/esm2015/lib/dr-tabs/dr-tab.component.js +26 -0
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +35 -0
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +32 -0
- package/esm2015/lib/dr-tags/dr-tag.component.js +177 -0
- package/esm2015/lib/dr-tags/dr-tag.module.js +24 -0
- package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +19 -0
- package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +18 -0
- package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +20 -0
- package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +34 -0
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +40 -0
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +147 -0
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +35 -0
- package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +210 -0
- package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +58 -0
- package/esm2015/lib/dr-treeview/dr-tree-view.module.js +38 -0
- package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +97 -0
- package/esm2015/lib/dr-treeview/models/treeview-config.js +22 -0
- package/esm2015/lib/dr-treeview/models/treeview-i18n.js +42 -0
- package/esm2015/lib/dr-treeview/models/treeview-item.js +155 -0
- package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +17 -0
- package/esm2015/lib/list-tags/list-tag.component.js +37 -0
- package/esm2015/lib/list-tags/list-tag.module.js +23 -0
- package/esm2015/lib/models/chat.js +36 -0
- package/esm2015/lib/models/datePicker.js +73 -0
- package/esm2015/lib/models/popover.js +27 -0
- package/esm2015/lib/stepper/stepper.component.js +55 -0
- package/esm2015/lib/stepper/stepper.module.js +17 -0
- package/esm2015/public-api.js +93 -0
- package/fesm2015/datarailsshared-datarailsshared.js +6885 -0
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -0
- package/lib/date-tags/date-tag.component.d.ts +16 -4
- package/lib/date-tags/date-tag.module.d.ts +2 -19
- package/lib/date-tags/day-tag/day-tag.component.d.ts +1 -4
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +2 -5
- package/lib/date-tags/month-tag/month-tag.component.d.ts +1 -4
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +1 -4
- package/lib/date-tags/week-tag/week-tag.component.d.ts +1 -4
- package/lib/date-tags/year-tag/year-tag.component.d.ts +1 -4
- package/lib/dr-accordion/accordion-item-body.component.d.ts +0 -3
- package/lib/dr-accordion/accordion-item-header.component.d.ts +0 -3
- package/lib/dr-accordion/accordion-item.component.d.ts +0 -3
- package/lib/dr-accordion/accordion.component.d.ts +0 -3
- package/lib/dr-accordion/accordion.module.d.ts +0 -9
- package/lib/dr-avatar/dr-avatar.component.d.ts +0 -3
- package/lib/dr-avatar/dr-avatar.module.d.ts +0 -9
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +0 -3
- package/lib/dr-badge-status/dr-badge-status.component.d.ts +0 -3
- package/lib/dr-badge-status/dr-badge-status.module.d.ts +0 -7
- package/lib/dr-chat/chat.component.d.ts +0 -3
- package/lib/dr-chat/chat.module.d.ts +0 -17
- package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +0 -3
- package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +0 -3
- package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +0 -3
- package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +0 -3
- package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +0 -3
- package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +0 -3
- package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +0 -3
- package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +0 -3
- package/lib/dr-details-list/dr-details-list.component.d.ts +0 -3
- package/lib/dr-details-list/dr-details-list.module.d.ts +0 -6
- package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +1 -4
- package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +1 -4
- package/lib/dr-dialog/dialog.module.d.ts +0 -12
- package/lib/dr-dialog/interfaces/dialog-data.d.ts +7 -7
- package/lib/dr-dialog/services/dialog.service.d.ts +1 -4
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +0 -3
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -3
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +0 -3
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +0 -3
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +0 -10
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +0 -3
- package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +0 -3
- package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +0 -8
- package/lib/dr-error/dr-error.component.d.ts +0 -3
- package/lib/dr-error/dr-error.module.d.ts +0 -8
- package/lib/dr-inputs/button/button.component.d.ts +1 -4
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +0 -3
- package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +0 -3
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +0 -3
- package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +0 -3
- package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +8 -4
- package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +2 -4
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +0 -3
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +0 -3
- package/lib/dr-inputs/dr-inputs.module.d.ts +0 -25
- package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +0 -3
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +0 -3
- package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +0 -3
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +0 -3
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +0 -3
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +0 -3
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +0 -3
- package/lib/dr-layout/dr-layout-body.component.d.ts +0 -3
- package/lib/dr-layout/dr-layout-header.component.d.ts +0 -3
- package/lib/dr-layout/dr-layout.component.d.ts +0 -3
- package/lib/dr-layout/dr-layout.module.d.ts +0 -8
- package/lib/dr-popover/dr-popover.component.d.ts +4 -8
- package/lib/dr-popover/dr-popover.directive.d.ts +0 -3
- package/lib/dr-popover/dr-popover.module.d.ts +0 -7
- package/lib/dr-popover/dr-popover.service.d.ts +0 -3
- package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +0 -3
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -3
- package/lib/dr-scenario/dr-scenario.module.d.ts +0 -10
- package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
- package/lib/dr-scenario/services/scenario.service.d.ts +0 -3
- package/lib/dr-spinner/dr-spinner.component.d.ts +0 -3
- package/lib/dr-spinner/dr-spinner.directive.d.ts +0 -3
- package/lib/dr-spinner/dr-spinner.module.d.ts +0 -7
- package/lib/dr-tabs/dr-tab.component.d.ts +0 -3
- package/lib/dr-tabs/dr-tabs.component.d.ts +0 -3
- package/lib/dr-tabs/dr-tabs.module.d.ts +0 -11
- package/lib/dr-tags/dr-tag.component.d.ts +0 -3
- package/lib/dr-tags/dr-tag.module.d.ts +0 -9
- package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +0 -3
- package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -3
- package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -3
- package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -3
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +1 -4
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +0 -3
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +0 -11
- package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +1 -1
- package/lib/dr-treeview/components/treeview/treeview.component.d.ts +0 -3
- package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +0 -3
- package/lib/dr-treeview/dr-tree-view.module.d.ts +0 -9
- package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +0 -9
- package/lib/dr-treeview/models/treeview-config.d.ts +0 -3
- package/lib/dr-treeview/models/treeview-i18n.d.ts +0 -5
- package/lib/dr-treeview/pipes/treeview.pipe.d.ts +0 -3
- package/lib/list-tags/list-tag.component.d.ts +0 -3
- package/lib/list-tags/list-tag.module.d.ts +0 -8
- package/lib/models/chat.d.ts +2 -2
- package/lib/models/datePicker.d.ts +3 -10
- package/lib/models/dropdown.d.ts +1 -1
- package/lib/models/popover.d.ts +1 -1
- package/lib/models/serverTags.d.ts +4 -4
- package/lib/stepper/interfaces/stepper.d.ts +1 -1
- package/lib/stepper/stepper.component.d.ts +0 -3
- package/lib/stepper/stepper.module.d.ts +0 -7
- package/package.json +15 -27
- package/public-api.d.ts +0 -27
- package/datarailsshared-datarailsshared-1.4.195-rocket.tgz +0 -0
- package/esm2022/datarailsshared-datarailsshared.mjs +0 -5
- package/esm2022/lib/date-tags/any-tag.component.mjs +0 -45
- package/esm2022/lib/date-tags/date-tag.component.mjs +0 -48
- package/esm2022/lib/date-tags/date-tag.module.mjs +0 -66
- package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -83
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -161
- package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -88
- package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +0 -106
- package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +0 -90
- package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -84
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -94
- package/esm2022/lib/directives/click-outside/click-outside.module.mjs +0 -18
- package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +0 -59
- package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +0 -109
- package/esm2022/lib/dr-accordion/accordion-item.component.mjs +0 -142
- package/esm2022/lib/dr-accordion/accordion.component.mjs +0 -41
- package/esm2022/lib/dr-accordion/accordion.module.mjs +0 -34
- package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +0 -48
- package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +0 -37
- package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +0 -20
- package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +0 -30
- package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +0 -27
- package/esm2022/lib/dr-chat/chat.component.mjs +0 -147
- package/esm2022/lib/dr-chat/chat.module.mjs +0 -68
- package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +0 -169
- package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +0 -108
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +0 -24
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +0 -57
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +0 -23
- package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +0 -89
- package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +0 -13
- package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +0 -78
- package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +0 -21
- package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +0 -79
- package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +0 -102
- package/esm2022/lib/dr-dialog/dialog.module.mjs +0 -51
- package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +0 -25
- package/esm2022/lib/dr-dialog/services/dialog.service.mjs +0 -78
- package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +0 -16
- package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +0 -108
- package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +0 -124
- package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +0 -125
- package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +0 -49
- package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +0 -26
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -119
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -28
- package/esm2022/lib/dr-error/dr-error.component.mjs +0 -69
- package/esm2022/lib/dr-error/dr-error.module.mjs +0 -31
- package/esm2022/lib/dr-inputs/button/button.component.mjs +0 -70
- package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +0 -67
- package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +0 -67
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +0 -233
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +0 -194
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +0 -194
- package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +0 -16
- package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +0 -196
- package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +0 -232
- package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +0 -108
- package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +0 -32
- package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +0 -182
- package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +0 -82
- package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +0 -77
- package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +0 -69
- package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +0 -82
- package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +0 -180
- package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +0 -16
- package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +0 -24
- package/esm2022/lib/dr-layout/dr-layout.component.mjs +0 -13
- package/esm2022/lib/dr-layout/dr-layout.module.mjs +0 -29
- package/esm2022/lib/dr-popover/dr-popover-ref.mjs +0 -23
- package/esm2022/lib/dr-popover/dr-popover.component.mjs +0 -141
- package/esm2022/lib/dr-popover/dr-popover.directive.mjs +0 -115
- package/esm2022/lib/dr-popover/dr-popover.module.mjs +0 -30
- package/esm2022/lib/dr-popover/dr-popover.service.mjs +0 -110
- package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -110
- package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -85
- package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +0 -81
- package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +0 -41
- package/esm2022/lib/dr-scenario/services/scenario.service.mjs +0 -166
- package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +0 -18
- package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +0 -66
- package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +0 -23
- package/esm2022/lib/dr-tabs/dr-tab.component.mjs +0 -42
- package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +0 -51
- package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +0 -49
- package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -201
- package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -35
- package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +0 -20
- package/esm2022/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.mjs +0 -17
- package/esm2022/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.mjs +0 -19
- package/esm2022/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.mjs +0 -20
- package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +0 -53
- package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +0 -165
- package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +0 -48
- package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +0 -224
- package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +0 -62
- package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +0 -48
- package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +0 -103
- package/esm2022/lib/dr-treeview/models/treeview-config.mjs +0 -23
- package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +0 -47
- package/esm2022/lib/dr-treeview/models/treeview-item.mjs +0 -158
- package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +0 -21
- package/esm2022/lib/list-tags/list-tag.component.mjs +0 -45
- package/esm2022/lib/list-tags/list-tag.module.mjs +0 -34
- package/esm2022/lib/models/chat.mjs +0 -49
- package/esm2022/lib/models/datePicker.mjs +0 -71
- package/esm2022/lib/models/popover.mjs +0 -27
- package/esm2022/lib/stepper/stepper.component.mjs +0 -66
- package/esm2022/lib/stepper/stepper.module.mjs +0 -24
- package/esm2022/public-api.mjs +0 -120
- package/fesm2022/datarailsshared-datarailsshared.mjs +0 -7879
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/date-tags/any-tag.component.d.ts +0 -20
- package/lib/directives/click-outside/click-outside.directive.d.ts +0 -23
- package/lib/directives/click-outside/click-outside.module.d.ts +0 -8
- /package/{esm2022/lib/dr-inputs/dr-toggle-button/toggle-button-mode.mjs → esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js} +0 -0
- /package/{esm2022/lib/dr-scenario/interfaces/scenario.mjs → esm2015/lib/dr-scenario/interfaces/scenario.js} +0 -0
- /package/{esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs → esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js} +0 -0
- /package/{esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs → esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js} +0 -0
- /package/{esm2022/lib/dr-treeview/helpers/treeview-helper.mjs → esm2015/lib/dr-treeview/helpers/treeview-helper.js} +0 -0
- /package/{esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs → esm2015/lib/dr-treeview/models/treeview-header-template-context.js} +0 -0
- /package/{esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs → esm2015/lib/dr-treeview/models/treeview-item-template-context.js} +0 -0
- /package/{esm2022/lib/models/badgeStatus.mjs → esm2015/lib/models/badgeStatus.js} +0 -0
- /package/{esm2022/lib/models/constants.mjs → esm2015/lib/models/constants.js} +0 -0
- /package/{esm2022/lib/models/dropdown.mjs → esm2015/lib/models/dropdown.js} +0 -0
- /package/{esm2022/lib/models/serverTags.mjs → esm2015/lib/models/serverTags.js} +0 -0
- /package/{esm2022/lib/models/spinnerOptions.mjs → esm2015/lib/models/spinnerOptions.js} +0 -0
- /package/{esm2022/lib/models/validationError.mjs → esm2015/lib/models/validationError.js} +0 -0
- /package/{esm2022/lib/stepper/interfaces/stepper.mjs → esm2015/lib/stepper/interfaces/stepper.js} +0 -0
- /package/{esm2022/lib/utils/dr-shared-utils.mjs → esm2015/lib/utils/dr-shared-utils.js} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
2
|
+
export class DrDropdownPositionDirective {
|
|
3
|
+
constructor(el, renderer) {
|
|
4
|
+
this.el = el;
|
|
5
|
+
this.renderer = renderer;
|
|
6
|
+
this.position = 'left';
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
setTimeout(this.calculatePosition.bind(this), 1);
|
|
10
|
+
}
|
|
11
|
+
calculatePosition() {
|
|
12
|
+
let xDifference = 0;
|
|
13
|
+
let defaultDelta = 10;
|
|
14
|
+
let defaultPadding = 0;
|
|
15
|
+
const originalPosition = this.position;
|
|
16
|
+
if (this.position === 'child') {
|
|
17
|
+
defaultDelta = 0;
|
|
18
|
+
defaultPadding = 10;
|
|
19
|
+
xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;
|
|
20
|
+
const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
|
|
21
|
+
this.position = {
|
|
22
|
+
x: this.el.nativeElement.offsetWidth,
|
|
23
|
+
y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
|
|
24
|
+
clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
|
|
25
|
+
clientY: parentRect.y
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (typeof this.position === 'string') {
|
|
29
|
+
this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom' ?
|
|
30
|
+
this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :
|
|
31
|
+
this.drDropdownPosition.y + 'px');
|
|
32
|
+
this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right' ?
|
|
33
|
+
this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :
|
|
34
|
+
this.drDropdownPosition.x + 'px');
|
|
35
|
+
const menuHeight = this.el.nativeElement.offsetHeight;
|
|
36
|
+
const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
|
|
37
|
+
const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
|
|
38
|
+
const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
|
|
39
|
+
const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);
|
|
40
|
+
this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;
|
|
41
|
+
if (heightMoreWindowBottom) {
|
|
42
|
+
this.position = 'top';
|
|
43
|
+
}
|
|
44
|
+
if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {
|
|
45
|
+
this.position = 'top-left';
|
|
46
|
+
const translateX = `calc(-100% + ${this.drDropdownPosition.width}px)`;
|
|
47
|
+
const translateY = 'calc(-100% - 8px)';
|
|
48
|
+
this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${translateX}, ${translateY})`);
|
|
49
|
+
}
|
|
50
|
+
if (heightMoreWindowTop && heightMoreWindowBottom) {
|
|
51
|
+
this.position = 'left-center';
|
|
52
|
+
}
|
|
53
|
+
if (this.position === 'bottom-left') {
|
|
54
|
+
this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${this.drDropdownPosition.width}px), ${this.drDropdownPosition.height + 8}px)`);
|
|
55
|
+
}
|
|
56
|
+
const className = this.position === 'top' ? 'content-top'
|
|
57
|
+
: this.position === 'top-left' ? 'content-top-left'
|
|
58
|
+
: this.position === 'bottom' ? 'content-bottom'
|
|
59
|
+
: this.position === 'bottom-left' ? 'content-bottom-left'
|
|
60
|
+
: this.position === 'left' ? 'content-left'
|
|
61
|
+
: this.position === 'left-center' ? 'content-left-center'
|
|
62
|
+
: this.position === 'right' ? 'content-right'
|
|
63
|
+
: this.position === 'bottom-right' ? 'content-bottom-right' : '';
|
|
64
|
+
this.renderer.addClass(this.el.nativeElement, className);
|
|
65
|
+
this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
const defaultChildPadding = 3;
|
|
69
|
+
const widthMoreWindowRight = originalPosition !== 'child'
|
|
70
|
+
? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)
|
|
71
|
+
: window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
|
|
72
|
+
const widthMoreWindowBottom = originalPosition !== 'child'
|
|
73
|
+
? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)
|
|
74
|
+
: window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
|
|
75
|
+
const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);
|
|
76
|
+
this.widthMoreRight = !(widthMoreWindowRight < 0);
|
|
77
|
+
let calculatedHorizantallyPos = widthMoreWindowRight < 0
|
|
78
|
+
? -this.position.x + -defaultChildPadding
|
|
79
|
+
: this.position.x + defaultChildPadding + xDifference;
|
|
80
|
+
if (spaceRightAmount <= 0 && originalPosition !== 'child') {
|
|
81
|
+
calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;
|
|
82
|
+
}
|
|
83
|
+
const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
|
|
84
|
+
this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
|
|
85
|
+
this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');
|
|
86
|
+
this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
DrDropdownPositionDirective.decorators = [
|
|
91
|
+
{ type: Directive, args: [{
|
|
92
|
+
selector: '[drDropdownPosition]',
|
|
93
|
+
exportAs: 'dropdownPosition'
|
|
94
|
+
},] }
|
|
95
|
+
];
|
|
96
|
+
DrDropdownPositionDirective.ctorParameters = () => [
|
|
97
|
+
{ type: ElementRef },
|
|
98
|
+
{ type: Renderer2 }
|
|
99
|
+
];
|
|
100
|
+
DrDropdownPositionDirective.propDecorators = {
|
|
101
|
+
drDropdownPosition: [{ type: Input }],
|
|
102
|
+
position: [{ type: Input }]
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPaEYsTUFBTSxPQUFPLDJCQUEyQjtJQU9wQyxZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFKdEQsYUFBUSxHQUFxQyxNQUFNLENBQUM7SUFLN0QsQ0FBQztJQUVELFFBQVE7UUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDM0IsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNqQixjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDaEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVB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QUs7dUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uLCBJRHJvcGRvd25Db29yZGluYXRlIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJEcm9wZG93blBvc2l0aW9uXScsXG4gICAgZXhwb3J0QXM6ICdkcm9wZG93blBvc2l0aW9uJ1xufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duUG9zaXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgZHJEcm9wZG93blBvc2l0aW9uO1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBFbFBvc2l0aW9uIHwgSURyb3Bkb3duQ29vcmRpbmF0ZSA9ICdsZWZ0JztcblxuICAgIHdpZHRoTW9yZVJpZ2h0OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQodGhpcy5jYWxjdWxhdGVQb3NpdGlvbi5iaW5kKHRoaXMpLCAxKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVQb3NpdGlvbigpIHtcbiAgICAgICAgbGV0IHhEaWZmZXJlbmNlID0gMDtcbiAgICAgICAgbGV0IGRlZmF1bHREZWx0YSA9IDEwO1xuICAgICAgICBsZXQgZGVmYXVsdFBhZGRpbmcgPSAwO1xuICAgICAgICBjb25zdCBvcmlnaW5hbFBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjtcblxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2NoaWxkJykge1xuICAgICAgICAgICAgZGVmYXVsdERlbHRhID0gMDtcbiAgICAgICAgICAgIGRlZmF1bHRQYWRkaW5nID0gMTA7XG4gICAgICAgICAgICB4RGlmZmVyZW5jZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB4OiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgeTogdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRUb3AgLSA5LFxuICAgICAgICAgICAgICAgIGNsaWVudFg6IHBhcmVudFJlY3QueCArIHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogcGFyZW50UmVjdC55XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc2l0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0b3AnLFxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSAtIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCArICdweCcgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi55ICsgJ3B4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2xlZnQnLFxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ud2lkdGggKyAncHgnIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCArICdweCcpO1xuICAgICAgICAgICAgY29uc3QgbWVudUhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93Qm90dG9tID0gbWVudUhlaWdodCArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgPiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93VG9wID0gbWVudUhlaWdodCAtIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgKyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgLyAyID4gNDg7IC8vIGhlYWRlciBoZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dSaWdodCA9IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggKyAyNTAgPiB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgY29uc3Qgc3BhY2VCZXR3ZWVuRWxBbmRSaWdodEJvcmRlciA9IHdpbmRvdy5pbm5lcldpZHRoIC0gKHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggKyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICAgICAgICAgICAgdGhpcy53aWR0aE1vcmVSaWdodCA9IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggPCBzcGFjZUJldHdlZW5FbEFuZFJpZ2h0Qm9yZGVyO1xuXG4gICAgICAgICAgICBpZiAoaGVpZ2h0TW9yZVdpbmRvd0JvdHRvbSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoZWlnaHRNb3JlV2luZG93Qm90dG9tICYmIHdpZHRoTW9yZVdpbmRvd1JpZ2h0ICYmICFoZWlnaHRNb3JlV2luZG93VG9wIHx8IHRoaXMucG9zaXRpb24gPT09ICd0b3AtbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVYID0gYGNhbGMoLTEwMCUgKyAkeyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi53aWR0aCB9cHgpYDtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVZID0gJ2NhbGMoLTEwMCUgLSA4cHgpJztcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHsgdHJhbnNsYXRlWCB9LCAkeyB0cmFuc2xhdGVZIH0pYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGVpZ2h0TW9yZVdpbmRvd1RvcCAmJiBoZWlnaHRNb3JlV2luZG93Qm90dG9tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICdsZWZ0LWNlbnRlcic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0Jykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zZm9ybScsXG4gICAgICAgICAgICAgICAgICAgIGB0cmFuc2xhdGUoY2FsYygtMTAwJSArICR7IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLndpZHRoIH1weCksICR7IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCArIDggfXB4KWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcgPyAnY29udGVudC10b3AnXG4gICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAndG9wLWxlZnQnID8gJ2NvbnRlbnQtdG9wLWxlZnQnXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgPyAnY29udGVudC1ib3R0b20nXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tbGVmdCcgPyAnY29udGVudC1ib3R0b20tbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdsZWZ0JyA/ICdjb250ZW50LWxlZnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQtY2VudGVyJyA/ICdjb250ZW50LWxlZnQtY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnID8gJ2NvbnRlbnQtcmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tLXJpZ2h0JyA/ICdjb250ZW50LWJvdHRvbS1yaWdodCcgOiAnJztcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd6LWluZGV4JywgJzEwMDEwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Q2hpbGRQYWRkaW5nID0gMztcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoTW9yZVdpbmRvd1JpZ2h0ID0gb3JpZ2luYWxQb3NpdGlvbiAhPT0gJ2NoaWxkJ1xuICAgICAgICAgICAgICAgID8gd2luZG93LmlubmVyV2lkdGggLSAodGhpcy5wb3NpdGlvbi5jbGllbnRYIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZGVmYXVsdFBhZGRpbmcpXG4gICAgICAgICAgICAgICAgOiB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMucG9zaXRpb24uY2xpZW50WCAtIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGRlZmF1bHRQYWRkaW5nO1xuXG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dCb3R0b20gPSBvcmlnaW5hbFBvc2l0aW9uICE9PSAnY2hpbGQnXG4gICAgICAgICAgICAgICAgPyB3aW5kb3cuaW5uZXJIZWlnaHQgLSAodGhpcy5wb3NpdGlvbi5jbGllbnRZIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRlZmF1bHRQYWRkaW5nKVxuICAgICAgICAgICAgICAgIDogd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5wb3NpdGlvbi5jbGllbnRZIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRlZmF1bHRQYWRkaW5nO1xuXG4gICAgICAgICAgICBjb25zdCBzcGFjZVJpZ2h0QW1vdW50ID0gd2luZG93LmlubmVyV2lkdGggLSAodGhpcy5wb3NpdGlvbi5jbGllbnRYICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgZGVmYXVsdFBhZGRpbmcpO1xuICAgICAgICAgICAgdGhpcy53aWR0aE1vcmVSaWdodCA9ICEod2lkdGhNb3JlV2luZG93UmlnaHQgPCAwKTtcblxuICAgICAgICAgICAgbGV0IGNhbGN1bGF0ZWRIb3JpemFudGFsbHlQb3MgPSB3aWR0aE1vcmVXaW5kb3dSaWdodCA8IDBcbiAgICAgICAgICAgICAgICA/IC10aGlzLnBvc2l0aW9uLnggKyAtZGVmYXVsdENoaWxkUGFkZGluZ1xuICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbi54ICsgZGVmYXVsdENoaWxkUGFkZGluZyArIHhEaWZmZXJlbmNlO1xuXG4gICAgICAgICAgICBpZiAoc3BhY2VSaWdodEFtb3VudCA8PSAwICYmIG9yaWdpbmFsUG9zaXRpb24gIT09ICdjaGlsZCcpIHtcbiAgICAgICAgICAgICAgICBjYWxjdWxhdGVkSG9yaXphbnRhbGx5UG9zIC09IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGVsdGFIZWlnaHQgPSB3aWR0aE1vcmVXaW5kb3dCb3R0b20gPCAwID8gd2lkdGhNb3JlV2luZG93Qm90dG9tIDogZGVmYXVsdERlbHRhO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RvcCcsICh0aGlzLnBvc2l0aW9uLnkgKyBkZWx0YUhlaWdodCkgKyAncHgnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIChjYWxjdWxhdGVkSG9yaXphbnRhbGx5UG9zKSArICdweCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd6LWluZGV4JywgJzEwMDEwJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { DrDropdownService } from './dr-dropdown.service';
|
|
3
|
+
export class DrDropdownComponent {
|
|
4
|
+
constructor(menuService, cdr) {
|
|
5
|
+
this.menuService = menuService;
|
|
6
|
+
this.cdr = cdr;
|
|
7
|
+
this.position = 'left';
|
|
8
|
+
this.wasHovered = false;
|
|
9
|
+
}
|
|
10
|
+
set options(data) {
|
|
11
|
+
if (data) {
|
|
12
|
+
this.option = data.option;
|
|
13
|
+
this.position = data.position;
|
|
14
|
+
this.drDropdownInHover = data.drDropdownInHover;
|
|
15
|
+
this.containerClass = data.class;
|
|
16
|
+
this.list = data.list || [];
|
|
17
|
+
this.list.forEach(item => {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
20
|
+
item.childOptions = {
|
|
21
|
+
list: item.children,
|
|
22
|
+
class: ((_b = item === null || item === void 0 ? void 0 : item.childOptions) === null || _b === void 0 ? void 0 : _b.class) || '',
|
|
23
|
+
position: 'child'
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
this.cdr.markForCheck();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
onMouseEnter() {
|
|
31
|
+
this.wasHovered = true;
|
|
32
|
+
}
|
|
33
|
+
onMouseLeave() {
|
|
34
|
+
if (this.drDropdownInHover)
|
|
35
|
+
this.menuService.destroy();
|
|
36
|
+
}
|
|
37
|
+
onClickedOutside() {
|
|
38
|
+
if (this.firstInit) {
|
|
39
|
+
this.menuService.destroy();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.firstInit = true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
hide() {
|
|
46
|
+
this.menuService.destroy();
|
|
47
|
+
}
|
|
48
|
+
disabled(act) {
|
|
49
|
+
if (!act.disabled) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
if (typeof act.disabled === 'boolean') {
|
|
53
|
+
return act.disabled;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return act.disabled(act.data);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
selected(act) {
|
|
60
|
+
if (!act.selected) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (typeof act.selected === 'boolean') {
|
|
64
|
+
return act.selected;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return act.selected(act.data);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
tooltipToShow(act) {
|
|
71
|
+
if (act.toolTipIfDisabled && !this.disabled(act))
|
|
72
|
+
return '';
|
|
73
|
+
return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;
|
|
74
|
+
}
|
|
75
|
+
tooltipPosition(widthMoreRight) {
|
|
76
|
+
return widthMoreRight ? 'right' : 'left';
|
|
77
|
+
}
|
|
78
|
+
action(act) {
|
|
79
|
+
if (!this.disabled(act)) {
|
|
80
|
+
if (act.action) {
|
|
81
|
+
act.action(act.data);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });
|
|
85
|
+
}
|
|
86
|
+
this.hide();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
onActionIconClick($event, actionIcon, data) {
|
|
90
|
+
$event.stopPropagation();
|
|
91
|
+
if (!this.disabled(actionIcon)) {
|
|
92
|
+
actionIcon.action(data);
|
|
93
|
+
this.hide();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
DrDropdownComponent.decorators = [
|
|
98
|
+
{ type: Component, args: [{
|
|
99
|
+
selector: 'dr-dropdown',
|
|
100
|
+
template: "<div #menuContainer\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\"\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n #dropdownPosition=\"dropdownPosition\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\"\n [class.separate-line]=\"act.separateLine\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n",
|
|
101
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
102
|
+
styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden;transition-delay:.2s}::ng-deep .dr-dropdown__container__item:hover>*>.dr-dropdown{visibility:visible;transition-delay:0s}::ng-deep .dr-dropdown__tooltip>.default-content{max-width:300px;white-space:normal!important}.dr-dropdown{position:absolute;z-index:-1;top:0;left:0;width:auto}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 4px 8px 1px #00000040;padding:8px 0;overflow-y:auto;max-height:60vh}.dr-dropdown__container__item{display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}.dr-dropdown__container__item.separate-line{border-top:1px solid #bcbcbc}.dr-dropdown__container__item:hover{background-color:#f9faff}.dr-dropdown__container__item:hover .showOnHover{visibility:visible}.dr-dropdown__container__item.item-selected{background:#f3f7ff}.dr-dropdown__container__item.item-disabled,.dr-dropdown__container__item.item-disabled i,.dr-dropdown__container__item.item-disabled .dr-dropdown__container__item__text{color:#bcbcbc}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.dr-dropdown__container__item i{color:#4e566c}.dr-dropdown__container__item i:hover{color:#4646ce}.dr-dropdown__container__item .showOnHover{visibility:hidden}.dr-dropdown.content-top{transform:translate(-50%,-100%)}.dr-dropdown.content-top-left{transform:translate(-100%,-100%)}.dr-dropdown.content-bottom{transform:translate(-50%,50%)}.dr-dropdown.content-bottom-left{transform:translate(-90%,35%)}.dr-dropdown.content-bottom-right{transform:translateY(15%)}.dr-dropdown.content-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
|
|
103
|
+
},] }
|
|
104
|
+
];
|
|
105
|
+
DrDropdownComponent.ctorParameters = () => [
|
|
106
|
+
{ type: DrDropdownService },
|
|
107
|
+
{ type: ChangeDetectorRef }
|
|
108
|
+
];
|
|
109
|
+
DrDropdownComponent.propDecorators = {
|
|
110
|
+
viewMenu: [{ type: ViewChild, args: ['listMenu',] }],
|
|
111
|
+
menuContainer: [{ type: ViewChild, args: ['menuContainer',] }],
|
|
112
|
+
options: [{ type: Input }]
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVExRCxNQUFNLE9BQU8sbUJBQW1CO0lBWTVCLFlBQXNCLFdBQThCLEVBQVUsR0FBc0I7UUFBOUQsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFQcEYsYUFBUSxHQUFxQyxNQUFNLENBQUM7UUFJN0MsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUkxQixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsSUFBbUM7UUFDcEQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7O2dCQUNyQixJQUFJLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsTUFBTSxFQUFFO29CQUN2QixJQUFJLENBQUMsWUFBWSxHQUFH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SUFBUztRQUNyRSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDNUIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDZjtJQUNMLENBQUM7OztZQTdHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLDZoREFBMkM7Z0JBRTNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBUFEsaUJBQWlCO1lBRlEsaUJBQWlCOzs7dUJBWTlDLFNBQVMsU0FBQyxVQUFVOzRCQUNwQixTQUFTLFNBQUMsZUFBZTtzQkFZekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uLCBJRHJvcGRvd24sIElEcm9wZG93bkFjdGlvbkljb24sIElEcm9wZG93bkNvb3JkaW5hdGUsIElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgRHJEcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL2RyLWRyb3Bkb3duLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93bkNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdsaXN0TWVudScpIHZpZXdNZW51OiBIVE1MRWxlbWVudDtcbiAgICBAVmlld0NoaWxkKCdtZW51Q29udGFpbmVyJykgbWVudUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgb3B0aW9uOiBhbnk7XG4gICAgcG9zaXRpb246IEVsUG9zaXRpb24gfCBJRHJvcGRvd25Db29yZGluYXRlID0gJ2xlZnQnO1xuICAgIGRyRHJvcGRvd25JbkhvdmVyOiBib29sZWFuO1xuICAgIGxpc3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj5bXTtcbiAgICBjb250YWluZXJDbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyB3YXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBmaXJzdEluaXQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWVudVNlcnZpY2U6IERyRHJvcGRvd25TZXJ2aWNlLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgb3B0aW9ucyhkYXRhOiBJRHJvcGRvd248SURyb3Bkb3duSXRlbTxhbnk+Pikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb24gPSBkYXRhLm9wdGlvbjtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBkYXRhLnBvc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duSW5Ib3ZlciA9IGRhdGEuZHJEcm9wZG93bkluSG92ZXI7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gZGF0YS5jbGFzcztcbiAgICAgICAgICAgIHRoaXMubGlzdCA9IGRhdGEubGlzdCB8fCBbXTtcbiAgICAgICAgICAgIHRoaXMubGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0OiBpdGVtLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IGl0ZW0/LmNoaWxkT3B0aW9ucz8uY2xhc3MgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2NoaWxkJ1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2FzSG92ZXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kckRyb3Bkb3duSW5Ib3ZlcikgdGhpcy5tZW51U2VydmljZS5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgb25DbGlja2VkT3V0c2lkZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RJbml0KSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlyc3RJbml0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudVNlcnZpY2UuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGRpc2FibGVkKGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPiB8IElEcm9wZG93bkFjdGlvbkljb248YW55Pik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWFjdC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0LmRpc2FibGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3QuZGlzYWJsZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0LmRpc2FibGVkKGFjdC5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdGVkKGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWFjdC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0LnNlbGVjdGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Quc2VsZWN0ZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0LnNlbGVjdGVkKGFjdC5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvb2x0aXBUb1Nob3coYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGFjdC50b29sVGlwSWZEaXNhYmxlZCAmJiAhdGhpcy5kaXNhYmxlZChhY3QpKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiBhY3QuY3VzdG9tVG9vbHRpcCA/IGFjdC5jdXN0b21Ub29sdGlwKGFjdC5kYXRhKSA6IGFjdC50b29sVGlwO1xuICAgIH1cblxuICAgIHRvb2x0aXBQb3NpdGlvbih3aWR0aE1vcmVSaWdodDogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gd2lkdGhNb3JlUmlnaHQgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cblxuICAgIGFjdGlvbihhY3Q6IElEcm9wZG93bkl0ZW08YW55Pikge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQoYWN0KSkge1xuICAgICAgICAgICAgaWYgKGFjdC5hY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBhY3QuYWN0aW9uKGFjdC5kYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5hY3Rpb25JdGVtLm5leHQoeyBldmVudDogYWN0LmV2ZW50IHx8IGFjdC50aXRsZSB8fCAnZGVmYXVsdCcsIGRhdGE6IGFjdC5kYXRhIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGlvbkljb25DbGljaygkZXZlbnQsIGFjdGlvbkljb246IElEcm9wZG93bkFjdGlvbkljb248YW55PiwgZGF0YTogYW55KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKGFjdGlvbkljb24pKSB7XG4gICAgICAgICAgICBhY3Rpb25JY29uLmFjdGlvbihkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ComponentFactoryResolver, Directive, ElementRef, HostListener, Inject, Input, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { DrDropdownComponent } from './dr-dropdown.component';
|
|
4
|
+
import { DrDropdownService } from './dr-dropdown.service';
|
|
5
|
+
export class DrDropdownDirective {
|
|
6
|
+
constructor(componentFactoryResolver, viewContainerRef, service, el, _document) {
|
|
7
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
8
|
+
this.viewContainerRef = viewContainerRef;
|
|
9
|
+
this.service = service;
|
|
10
|
+
this.el = el;
|
|
11
|
+
this._document = _document;
|
|
12
|
+
this.position = 'left';
|
|
13
|
+
this.mouseleaveTimeout = 200;
|
|
14
|
+
}
|
|
15
|
+
elementHover() {
|
|
16
|
+
if (!this.drDropdownInHover)
|
|
17
|
+
return;
|
|
18
|
+
this.openDropdown();
|
|
19
|
+
}
|
|
20
|
+
elementClick() {
|
|
21
|
+
this.openDropdown();
|
|
22
|
+
}
|
|
23
|
+
leaveDropdownTriggerElement() {
|
|
24
|
+
if (this.drDropdownInHover) {
|
|
25
|
+
setTimeout(_ => {
|
|
26
|
+
if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {
|
|
27
|
+
this.contentCmpRef.destroy();
|
|
28
|
+
this.contentCmpRef = null;
|
|
29
|
+
}
|
|
30
|
+
}, this.mouseleaveTimeout);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
documentClick(e) {
|
|
34
|
+
this.closeDropdown(e);
|
|
35
|
+
}
|
|
36
|
+
openDropdown() {
|
|
37
|
+
const option = this.el.nativeElement.getBoundingClientRect();
|
|
38
|
+
this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());
|
|
39
|
+
if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {
|
|
40
|
+
this.contentCmpRef.destroy();
|
|
41
|
+
this.contentCmpRef = null;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this.service.destroy();
|
|
45
|
+
this.showMenu({
|
|
46
|
+
option,
|
|
47
|
+
drDropdownInHover: this.drDropdownInHover,
|
|
48
|
+
position: this.position,
|
|
49
|
+
list: this.drDropdown,
|
|
50
|
+
class: this.drDropdownClass
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
closeDropdown(e) {
|
|
55
|
+
if (!this.contentCmpRef) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const clickTarget = e.target;
|
|
59
|
+
const triggerElement = this.el.nativeElement;
|
|
60
|
+
const dropdownElement = this.contentCmpRef.location.nativeElement;
|
|
61
|
+
const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;
|
|
62
|
+
const isClickDropdownContents = dropdownElement.contains(clickTarget);
|
|
63
|
+
if (!isClickTriggerElement && !isClickDropdownContents) {
|
|
64
|
+
const elems = this._document.querySelectorAll('dr-dropdown');
|
|
65
|
+
setTimeout(() => elems.forEach(item => item.remove()), 100);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
showMenu(options) {
|
|
69
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);
|
|
70
|
+
this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);
|
|
71
|
+
this.service.addMenu = this.contentCmpRef;
|
|
72
|
+
this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);
|
|
73
|
+
this.contentCmpRef.instance.options = options;
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
if (this.contentCmpRef) {
|
|
77
|
+
this.contentCmpRef.destroy();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
DrDropdownDirective.decorators = [
|
|
82
|
+
{ type: Directive, args: [{
|
|
83
|
+
selector: '[drDropdown]'
|
|
84
|
+
},] }
|
|
85
|
+
];
|
|
86
|
+
DrDropdownDirective.ctorParameters = () => [
|
|
87
|
+
{ type: ComponentFactoryResolver },
|
|
88
|
+
{ type: ViewContainerRef },
|
|
89
|
+
{ type: DrDropdownService },
|
|
90
|
+
{ type: ElementRef },
|
|
91
|
+
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
|
92
|
+
];
|
|
93
|
+
DrDropdownDirective.propDecorators = {
|
|
94
|
+
position: [{ type: Input }],
|
|
95
|
+
drDropdown: [{ type: Input }],
|
|
96
|
+
drDropdownClass: [{ type: Input }],
|
|
97
|
+
drDropdownInHover: [{ type: Input }],
|
|
98
|
+
contentCmpRef: [{ type: ViewChild, args: [DrDropdownComponent, { static: true, read: ViewContainerRef },] }],
|
|
99
|
+
elementHover: [{ type: HostListener, args: ['mouseenter',] }],
|
|
100
|
+
elementClick: [{ type: HostListener, args: ['click',] }],
|
|
101
|
+
leaveDropdownTriggerElement: [{ type: HostListener, args: ['mouseleave',] }],
|
|
102
|
+
documentClick: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRCxNQUFNLE9BQU8sbUJBQW1CO0lBVTVCLFlBQW9CLHdCQUFrRCxFQUNsRCxnQkFBa0MsRUFDbEMsT0FBMEIsRUFDMUIsRUFBYyxFQUNJLFNBQWM7UUFKaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDSSxjQUFTLEdBQVQsU0FBUyxDQUFLO1FBWjNDLGFBQVEsR0FBZSxNQUFNLENBQUM7UUFNdEIsc0JBQWlCLEdBQUcsR0FBRyxDQUFDO0lBT3pDLENBQUM7SUFFMkIsWUFBWTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFDcEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFc0IsWUFBWTtRQUMvQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUUyQiwyQkFBMkI7UUFDbkQsSUFB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Q0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEM7SUFDTCxDQUFDOzs7WUE1RkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCOzs7WUFqQkcsd0JBQXdCO1lBUXhCLGdCQUFnQjtZQUtYLGlCQUFpQjtZQVh0QixVQUFVOzRDQThCRyxNQUFNLFNBQUMsUUFBUTs7O3VCQVozQixLQUFLO3lCQUNMLEtBQUs7OEJBQ0wsS0FBSztnQ0FDTCxLQUFLOzRCQUNMLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzJCQVd2RSxZQUFZLFNBQUMsWUFBWTsyQkFLekIsWUFBWSxTQUFDLE9BQU87MENBSXBCLFlBQVksU0FBQyxZQUFZOzRCQVd6QixZQUFZLFNBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxQb3NpdGlvbiwgSURyb3Bkb3duLCBJRHJvcGRvd25JdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcbmltcG9ydCB7IERyRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2RyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEckRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZHItZHJvcGRvd24uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2RyRHJvcGRvd25dJ1xufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBFbFBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIEBJbnB1dCgpIGRyRHJvcGRvd246IElEcm9wZG93bkl0ZW08VD5bXTtcbiAgICBASW5wdXQoKSBkckRyb3Bkb3duQ2xhc3M6IHN0cmluZztcbiAgICBASW5wdXQoKSBkckRyb3Bkb3duSW5Ib3ZlcjogYm9vbGVhbjtcbiAgICBAVmlld0NoaWxkKERyRHJvcGRvd25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRlbnRDbXBSZWY7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vdXNlbGVhdmVUaW1lb3V0ID0gMjAwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBEckRyb3Bkb3duU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnkpIHtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgZWxlbWVudEhvdmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJEcm9wZG93bkluSG92ZXIpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpIGVsZW1lbnRDbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgbGVhdmVEcm9wZG93blRyaWdnZXJFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5kckRyb3Bkb3duSW5Ib3Zlcikge1xuICAgICAgICAgICAgc2V0VGltZW91dChfID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250ZW50Q21wUmVmICYmICF0aGlzLmNvbnRlbnRDbXBSZWYuaW5zdGFuY2Uud2FzSG92ZXJlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDbXBSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDbXBSZWYgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRoaXMubW91c2VsZWF2ZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pIGRvY3VtZW50Q2xpY2soZSkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZHItZHJvcGRvd24nKS5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5yZW1vdmUoKSk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDbXBSZWYgJiYgdGhpcy5jb250ZW50Q21wUmVmLmRlc3Ryb3lDYnMpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudENtcFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRDbXBSZWYgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01lbnUoe1xuICAgICAgICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICAgICAgICBkckRyb3Bkb3duSW5Ib3ZlcjogdGhpcy5kckRyb3Bkb3duSW5Ib3ZlcixcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgICAgICBsaXN0OiB0aGlzLmRyRHJvcGRvd24sXG4gICAgICAgICAgICAgICAgY2xhc3M6IHRoaXMuZHJEcm9wZG93bkNsYXNzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VEcm9wZG93bihlKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRDbXBSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrVGFyZ2V0ID0gZS50YXJnZXQ7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBkcm9wZG93bkVsZW1lbnQgPSB0aGlzLmNvbnRlbnRDbXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNDbGlja1RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlckVsZW1lbnQuY29udGFpbnMoY2xpY2tUYXJnZXQpIHx8IHRyaWdnZXJFbGVtZW50ID09PSBjbGlja1RhcmdldDtcbiAgICAgICAgY29uc3QgaXNDbGlja0Ryb3Bkb3duQ29udGVudHMgPSBkcm9wZG93bkVsZW1lbnQuY29udGFpbnMoY2xpY2tUYXJnZXQpO1xuXG4gICAgICAgIGlmICghaXNDbGlja1RyaWdnZXJFbGVtZW50ICYmICFpc0NsaWNrRHJvcGRvd25Db250ZW50cykge1xuICAgICAgICAgICAgY29uc3QgZWxlbXMgPSB0aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkci1kcm9wZG93bicpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5yZW1vdmUoKSksIDEwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dNZW51KG9wdGlvbnM6IElEcm9wZG93bjxUPikge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PERyRHJvcGRvd25Db21wb25lbnQ+ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRHJEcm9wZG93bkNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29udGVudENtcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5hZGRNZW51ID0gdGhpcy5jb250ZW50Q21wUmVmO1xuICAgICAgICB0aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkci1sYXlvdXQnKS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRDbXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuY29udGVudENtcFJlZi5pbnN0YW5jZS5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDbXBSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudENtcFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DrDropdownPositionDirective } from './dr-dropdown-position.directive';
|
|
3
|
+
import { DrDropdownDirective } from './dr-dropdown.directive';
|
|
4
|
+
import { DrDropdownComponent } from './dr-dropdown.component';
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';
|
|
7
|
+
import { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';
|
|
8
|
+
import { DrDropdownService } from './dr-dropdown.service';
|
|
9
|
+
export class DrDropdownModule {
|
|
10
|
+
}
|
|
11
|
+
DrDropdownModule.decorators = [
|
|
12
|
+
{ type: NgModule, args: [{
|
|
13
|
+
imports: [
|
|
14
|
+
CommonModule,
|
|
15
|
+
DrTooltipModule,
|
|
16
|
+
],
|
|
17
|
+
declarations: [
|
|
18
|
+
DrDropdownDirective,
|
|
19
|
+
DrDropdownPositionDirective,
|
|
20
|
+
DrDropdownComponent,
|
|
21
|
+
DrDropdownItemShowPipe,
|
|
22
|
+
],
|
|
23
|
+
exports: [
|
|
24
|
+
DrDropdownDirective,
|
|
25
|
+
DrDropdownPositionDirective,
|
|
26
|
+
DrDropdownComponent,
|
|
27
|
+
DrDropdownItemShowPipe,
|
|
28
|
+
],
|
|
29
|
+
providers: [
|
|
30
|
+
DrDropdownService,
|
|
31
|
+
],
|
|
32
|
+
},] }
|
|
33
|
+
];
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQXdCMUQsTUFBTSxPQUFPLGdCQUFnQjs7O1lBdEI1QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osZUFBZTtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLG1CQUFtQjtvQkFDbkIsMkJBQTJCO29CQUMzQixtQkFBbUI7b0JBQ25CLHNCQUFzQjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLG1CQUFtQjtvQkFDbkIsMkJBQTJCO29CQUMzQixtQkFBbUI7b0JBQ25CLHNCQUFzQjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLGlCQUFpQjtpQkFDcEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEckRyb3Bkb3duUG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RyLWRyb3Bkb3duLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEckRyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi9kci1kcm9wZG93bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vZHItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEclRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi9kci10b29sdGlwL2RyLXRvb2x0aXAubW9kdWxlJztcbmltcG9ydCB7IERyRHJvcGRvd25JdGVtU2hvd1BpcGUgfSBmcm9tICcuL2RyLWRyb3Bkb3duLWl0ZW0tc2hvdy5waXBlJztcbmltcG9ydCB7IERyRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi9kci1kcm9wZG93bi5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRHJUb29sdGlwTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERyRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIERyRHJvcGRvd25Qb3NpdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgRHJEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgRHJEcm9wZG93bkl0ZW1TaG93UGlwZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRHJEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgRHJEcm9wZG93blBvc2l0aW9uRGlyZWN0aXZlLFxuICAgICAgICBEckRyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBEckRyb3Bkb3duSXRlbVNob3dQaXBlLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIERyRHJvcGRvd25TZXJ2aWNlLFxuICAgIF0sXG59KVxuXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93bk1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DrDropdownService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.actionItem = new Subject();
|
|
7
|
+
}
|
|
8
|
+
set addMenu(item) {
|
|
9
|
+
this.menuInView = item;
|
|
10
|
+
}
|
|
11
|
+
destroy() {
|
|
12
|
+
if (this.menuInView) {
|
|
13
|
+
this.menuInView.destroy();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
DrDropdownService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DrDropdownService_Factory() { return new DrDropdownService(); }, token: DrDropdownService, providedIn: "root" });
|
|
18
|
+
DrDropdownService.decorators = [
|
|
19
|
+
{ type: Injectable, args: [{
|
|
20
|
+
providedIn: 'root'
|
|
21
|
+
},] }
|
|
22
|
+
];
|
|
23
|
+
DrDropdownService.ctorParameters = () => [];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWRyb3Bkb3duL2RyLWRyb3Bkb3duLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPL0IsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQjtRQUhBLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztJQUlyRCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsSUFBdUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUM7Ozs7WUFuQkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9kci1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSURyb3Bkb3duQWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duU2VydmljZSB7XG5cbiAgICBhY3Rpb25JdGVtID0gbmV3IFN1YmplY3Q8SURyb3Bkb3duQWN0aW9uPHVua25vd24+PigpO1xuICAgIHByb3RlY3RlZCBtZW51SW5WaWV3OiBDb21wb25lbnRSZWY8RHJEcm9wZG93bkNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBzZXQgYWRkTWVudShpdGVtOiBDb21wb25lbnRSZWY8RHJEcm9wZG93bkNvbXBvbmVudD4pIHtcbiAgICAgICAgdGhpcy5tZW51SW5WaWV3ID0gaXRlbTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5tZW51SW5WaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVJblZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';
|
|
3
|
+
import * as moment from 'moment';
|
|
4
|
+
export class DrDynamicTagComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.lockedTags = [];
|
|
7
|
+
this.tagChange = new EventEmitter();
|
|
8
|
+
this.tagAdd = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
get isPrimitiveDataSource() {
|
|
11
|
+
const values = Object.values(this.values) || [];
|
|
12
|
+
return !_isObject(values[0]);
|
|
13
|
+
}
|
|
14
|
+
ngOnChanges(changes) {
|
|
15
|
+
this.updateDynamicTagValues();
|
|
16
|
+
}
|
|
17
|
+
onTagChanged($event) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
const resultEvent = {
|
|
20
|
+
id: this.tagConfig.id,
|
|
21
|
+
name: this.tagConfig.name,
|
|
22
|
+
value: $event,
|
|
23
|
+
locked: this.lockedTags.includes($event)
|
|
24
|
+
};
|
|
25
|
+
if (!_isNil((_a = this.selectedTag) === null || _a === void 0 ? void 0 : _a.locked)) {
|
|
26
|
+
resultEvent.locked = this.selectedTag.locked;
|
|
27
|
+
}
|
|
28
|
+
if (!_isNil((_b = this.selectedTag) === null || _b === void 0 ? void 0 : _b.label)) {
|
|
29
|
+
resultEvent.label = this.selectedTag.label;
|
|
30
|
+
}
|
|
31
|
+
this.isLockedTagSelected = resultEvent.locked;
|
|
32
|
+
this.tagChange.emit(resultEvent);
|
|
33
|
+
}
|
|
34
|
+
onOptionClick($event, tagValue) {
|
|
35
|
+
if (this.lockedTags.includes(tagValue)) {
|
|
36
|
+
$event.stopImmediatePropagation();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
onDynamicValueAdd($event) {
|
|
40
|
+
const parentValueKey = this.getParentValueKey();
|
|
41
|
+
const parentValues = this.values[parentValueKey] || [];
|
|
42
|
+
if (this.isPrimitiveDataSource) {
|
|
43
|
+
this.values[parentValueKey] = [$event, ...parentValues];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.values[parentValueKey] = [{ value: $event }, ...parentValues];
|
|
47
|
+
}
|
|
48
|
+
this.selectedDynamicTag = $event;
|
|
49
|
+
this.currentValues = this.values[parentValueKey];
|
|
50
|
+
this.onTagChanged($event);
|
|
51
|
+
this.tagAdd.emit($event);
|
|
52
|
+
}
|
|
53
|
+
updateDynamicTagValues() {
|
|
54
|
+
var _a;
|
|
55
|
+
const parentValueKey = this.getParentValueKey();
|
|
56
|
+
this.currentValues = this.values[parentValueKey];
|
|
57
|
+
this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, (_a = this.selectedTag) === null || _a === void 0 ? void 0 : _a.value);
|
|
58
|
+
this.onTagChanged(this.selectedDynamicTag);
|
|
59
|
+
}
|
|
60
|
+
getSelectedDynamicTag(currentValues, selectedValue) {
|
|
61
|
+
if (!(currentValues === null || currentValues === void 0 ? void 0 : currentValues.length))
|
|
62
|
+
return null;
|
|
63
|
+
if (_isObject(currentValues[0])) {
|
|
64
|
+
const valueFromConfig = _find(currentValues, { value: selectedValue });
|
|
65
|
+
const favoriteValue = _find(currentValues, { is_favorite: true });
|
|
66
|
+
return (valueFromConfig || favoriteValue || currentValues[0]).value;
|
|
67
|
+
}
|
|
68
|
+
const valueFromConfig = _find(currentValues, (value) => value === selectedValue);
|
|
69
|
+
return (valueFromConfig || currentValues[0]);
|
|
70
|
+
}
|
|
71
|
+
getParentValueKey() {
|
|
72
|
+
return _map(this.connectedTags, this.tryToParseParentValue).join('__');
|
|
73
|
+
}
|
|
74
|
+
tryToParseParentValue(connectedTags) {
|
|
75
|
+
if (_isNumber(connectedTags.value)) {
|
|
76
|
+
const momentData = moment.unix(connectedTags.value);
|
|
77
|
+
const convertedParentValue = momentData.get('year'); // TODO: add input prop (selectedTimeDimension) or Format
|
|
78
|
+
if (momentData.isValid() && convertedParentValue) {
|
|
79
|
+
return convertedParentValue;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return connectedTags.value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
DrDynamicTagComponent.decorators = [
|
|
86
|
+
{ type: Component, args: [{
|
|
87
|
+
selector: 'dr-dynamic-tag',
|
|
88
|
+
template: "<p class=\"dynamic-tag__label\">{{ tagConfig.name }}</p>\n<dr-select [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n",
|
|
89
|
+
styles: [".dynamic-tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.dynamic-tag__field,.dynamic-tag__field--option,.dynamic-tag__field--label{cursor:pointer;height:24px}.dynamic-tag__field--option{padding:8px 12px;width:100%;display:flex;justify-content:space-between;align-items:center}.dynamic-tag__field--option.disabled{opacity:.5;box-sizing:content-box}.dynamic-tag__field--label{display:flex;align-items:center}.dynamic-tag__field--label>.dynamic-tag__field__icon{position:absolute;right:25px}.dynamic-tag__field--label>dynamic-tag__field__text{margin:0}.dr-icon-star-fill{color:#f0bc57}::ng-deep dr-select.dynamic-tag__locked>ng-select>.ng-select-container{opacity:.4}::ng-deep .ng-option:has(.dynamic-tag__field--option){padding:0!important}\n"]
|
|
90
|
+
},] }
|
|
91
|
+
];
|
|
92
|
+
DrDynamicTagComponent.propDecorators = {
|
|
93
|
+
values: [{ type: Input }],
|
|
94
|
+
tagConfig: [{ type: Input }],
|
|
95
|
+
selectedTag: [{ type: Input }],
|
|
96
|
+
lockedTags: [{ type: Input }],
|
|
97
|
+
connectedTags: [{ type: Input }],
|
|
98
|
+
isDynamicTagAddEnabled: [{ type: Input }],
|
|
99
|
+
disabled: [{ type: Input }],
|
|
100
|
+
tagChange: [{ type: Output }],
|
|
101
|
+
tagAdd: [{ type: Output }]
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsUUFBUSxJQUFJLFNBQVMsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVuSCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQU9qQyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBV29CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFLN0IsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUMzRSxXQUFNLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO0lBOEY1RixDQUFDO0lBeEZHLElBQVcscUJBQXFCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFjOztRQUM5QixNQUFNLFdBQVcsR0FBa0I7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixJQUFJLEVBQUUs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XG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmluZCBhcyBfZmluZCwgaXNOdW1iZXIgYXMgX2lzTnVtYmVyLCBpc09iamVjdCBhcyBfaXNPYmplY3QsIGlzTmlsIGFzIF9pc05pbCwgbWFwIGFzIF9tYXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSUR5bmFtaWNUYWcsIElUYWcsIElUYWdGb3JTZXJ2ZXIsIFREeW5hbWljVGFnLCBURHluYW1pY1RhZ1ZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZHluYW1pYy10YWcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1keW5hbWljLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZHluYW1pYy10YWcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEckR5bmFtaWNUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlczogVER5bmFtaWNUYWc7XG4gICAgQElucHV0KCkgcHVibGljIHRhZ0NvbmZpZzogSVRhZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRUYWc6IElUYWdGb3JTZXJ2ZXI7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9ja2VkVGFnczogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29ubmVjdGVkVGFnczogSVRhZ0ZvclNlcnZlcltdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0R5bmFtaWNUYWdBZGRFbmFibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4oKTtcbiAgICBAT3V0cHV0KCkgdGFnQWRkOiBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFREeW5hbWljVGFnVmFsdWU+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWREeW5hbWljVGFnOiBURHluYW1pY1RhZ1ZhbHVlO1xuICAgIHB1YmxpYyBjdXJyZW50VmFsdWVzOiBURHluYW1pY1RhZ1ZhbHVlW107XG4gICAgcHVibGljIGlzTG9ja2VkVGFnU2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IGlzUHJpbWl0aXZlRGF0YVNvdXJjZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnZhbHVlcykgfHwgW107XG4gICAgICAgIHJldHVybiAhX2lzT2JqZWN0KHZhbHVlc1swXSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVEeW5hbWljVGFnVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFnQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogJGV2ZW50LFxuICAgICAgICAgICAgbG9ja2VkOiB0aGlzLmxvY2tlZFRhZ3MuaW5jbHVkZXMoJGV2ZW50KVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghX2lzTmlsKHRoaXMuc2VsZWN0ZWRUYWc/LmxvY2tlZCkpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxvY2tlZCA9IHRoaXMuc2VsZWN0ZWRUYWcubG9ja2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFfaXNOaWwodGhpcy5zZWxlY3RlZFRhZz8ubGFiZWwpKSB7XG4gICAgICAgICAgICByZXN1bHRFdmVudC5sYWJlbCA9IHRoaXMuc2VsZWN0ZWRUYWcubGFiZWw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzTG9ja2VkVGFnU2VsZWN0ZWQgPSByZXN1bHRFdmVudC5sb2NrZWQ7XG4gICAgICAgIHRoaXMudGFnQ2hhbmdlLmVtaXQocmVzdWx0RXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9wdGlvbkNsaWNrKCRldmVudDogRXZlbnQsIHRhZ1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9ja2VkVGFncy5pbmNsdWRlcyh0YWdWYWx1ZSkpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNWYWx1ZUFkZCgkZXZlbnQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZUtleSA9IHRoaXMuZ2V0UGFyZW50VmFsdWVLZXkoKTtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldIHx8IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJpbWl0aXZlRGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldID0gWyRldmVudCwgLi4ucGFyZW50VmFsdWVzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XSA9IFt7IHZhbHVlOiAkZXZlbnQgfSwgLi4ucGFyZW50VmFsdWVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnID0gJGV2ZW50O1xuXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XTtcbiAgICAgICAgdGhpcy5vblRhZ0NoYW5nZWQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdBZGQuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRHluYW1pY1RhZ1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVLZXkgPSB0aGlzLmdldFBhcmVudFZhbHVlS2V5KCk7XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZER5bmFtaWNUYWcgPSB0aGlzLmdldFNlbGVjdGVkRHluYW1pY1RhZyh0aGlzLmN1cnJlbnRWYWx1ZXMsIHRoaXMuc2VsZWN0ZWRUYWc/LnZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRhZ0NoYW5nZWQodGhpcy5zZWxlY3RlZER5bmFtaWNUYWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWREeW5hbWljVGFnKGN1cnJlbnRWYWx1ZXM6IFREeW5hbWljVGFnVmFsdWVbXSwgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjdXJyZW50VmFsdWVzPy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmIChfaXNPYmplY3QoY3VycmVudFZhbHVlc1swXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlRnJvbUNvbmZpZyA9IF9maW5kKGN1cnJlbnRWYWx1ZXMsIHsgdmFsdWU6IHNlbGVjdGVkVmFsdWUgfSkgYXMgSUR5bmFtaWNUYWc7XG4gICAgICAgICAgICBjb25zdCBmYXZvcml0ZVZhbHVlID0gX2ZpbmQoY3VycmVudFZhbHVlcywgeyBpc19mYXZvcml0ZTogdHJ1ZSB9KSBhcyBJRHluYW1pY1RhZztcbiAgICAgICAgICAgIHJldHVybiAodmFsdWVGcm9tQ29uZmlnIHx8IGZhdm9yaXRlVmFsdWUgfHwgY3VycmVudFZhbHVlc1swXSkudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZUZyb21Db25maWcgPSBfZmluZChjdXJyZW50VmFsdWVzLCAodmFsdWUpID0+IHZhbHVlID09PSBzZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgcmV0dXJuICh2YWx1ZUZyb21Db25maWcgfHwgY3VycmVudFZhbHVlc1swXSkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGFyZW50VmFsdWVLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIF9tYXAodGhpcy5jb25uZWN0ZWRUYWdzLCB0aGlzLnRyeVRvUGFyc2VQYXJlbnRWYWx1ZSkuam9pbignX18nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyeVRvUGFyc2VQYXJlbnRWYWx1ZShjb25uZWN0ZWRUYWdzOiBJVGFnRm9yU2VydmVyKSB7XG4gICAgICAgIGlmIChfaXNOdW1iZXIoY29ubmVjdGVkVGFncy52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbWVudERhdGEgPSBtb21lbnQudW5peChjb25uZWN0ZWRUYWdzLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZFBhcmVudFZhbHVlID0gbW9tZW50RGF0YS5nZXQoJ3llYXInKTsgLy8gVE9ETzogYWRkIGlucHV0IHByb3AgKHNlbGVjdGVkVGltZURpbWVuc2lvbikgb3IgRm9ybWF0XG5cbiAgICAgICAgICAgIGlmIChtb21lbnREYXRhLmlzVmFsaWQoKSAmJiBjb252ZXJ0ZWRQYXJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRQYXJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25uZWN0ZWRUYWdzLnZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DrDynamicTagComponent } from './dr-dynamic-tag.component';
|
|
4
|
+
import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
|
|
5
|
+
import { FormsModule } from '@angular/forms';
|
|
6
|
+
export class DrDynamicTagModule {
|
|
7
|
+
}
|
|
8
|
+
DrDynamicTagModule.decorators = [
|
|
9
|
+
{ type: NgModule, args: [{
|
|
10
|
+
declarations: [DrDynamicTagComponent],
|
|
11
|
+
imports: [
|
|
12
|
+
CommonModule,
|
|
13
|
+
DrInputsModule,
|
|
14
|
+
FormsModule,
|
|
15
|
+
],
|
|
16
|
+
exports: [DrDynamicTagComponent]
|
|
17
|
+
},] }
|
|
18
|
+
];
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXN0MsTUFBTSxPQUFPLGtCQUFrQjs7O1lBVDlCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxXQUFXO2lCQUNkO2dCQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEckR5bmFtaWNUYWdDb21wb25lbnQgfSBmcm9tICcuL2RyLWR5bmFtaWMtdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0RyRHluYW1pY1RhZ0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIERySW5wdXRzTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtEckR5bmFtaWNUYWdDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERyRHluYW1pY1RhZ01vZHVsZSB7XG59XG4iXX0=
|