@datarailsshared/datarailsshared 1.4.203-rocket → 1.4.215
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/colors.scss +4 -1
- package/bundles/datarailsshared-datarailsshared.umd.js +8108 -0
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -0
- package/datarailsshared-datarailsshared-1.4.215.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-alert/dr-alert.component.js +35 -0
- package/esm2015/lib/dr-alert/dr-alert.module.js +18 -0
- package/esm2015/lib/dr-alert/enums/dr-alert-theme.enum.js +10 -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/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js +49 -0
- 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 +54 -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 +181 -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 +121 -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.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/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/{esm2022/lib/models/datePicker.mjs → esm2015/lib/models/datePicker.js} +1 -1
- 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/lib/utils/dr-shared-utils.js +47 -0
- package/esm2015/public-api.js +96 -0
- package/fesm2015/datarailsshared-datarailsshared.js +6938 -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-alert/dr-alert.component.d.ts +8 -0
- package/lib/dr-alert/dr-alert.module.d.ts +2 -0
- package/lib/dr-alert/enums/dr-alert-theme.enum.d.ts +7 -0
- 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 +2 -5
- 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 +3 -7
- 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 +1 -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 +3 -27
- package/datarailsshared-datarailsshared-1.4.203-rocket.tgz +0 -0
- package/esm2022/datarailsshared-datarailsshared.mjs +0 -5
- package/esm2022/lib/date-tags/any-tag.component.mjs +0 -44
- package/esm2022/lib/date-tags/date-tag.component.mjs +0 -47
- package/esm2022/lib/date-tags/date-tag.module.mjs +0 -66
- package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -82
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -159
- package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -87
- 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 -89
- package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -83
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -92
- package/esm2022/lib/directives/click-outside/click-outside.module.mjs +0 -18
- package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +0 -58
- package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +0 -108
- package/esm2022/lib/dr-accordion/accordion-item.component.mjs +0 -138
- package/esm2022/lib/dr-accordion/accordion.component.mjs +0 -42
- 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 -27
- package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +0 -27
- package/esm2022/lib/dr-chat/chat.component.mjs +0 -138
- package/esm2022/lib/dr-chat/chat.module.mjs +0 -68
- package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +0 -168
- package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +0 -89
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +0 -47
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +0 -26
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +0 -49
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +0 -17
- package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +0 -88
- 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 -79
- 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 -76
- package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +0 -97
- 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 -77
- package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +0 -16
- package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +0 -104
- package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +0 -116
- package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +0 -117
- package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +0 -49
- package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +0 -25
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -112
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -28
- package/esm2022/lib/dr-error/dr-error.component.mjs +0 -67
- package/esm2022/lib/dr-error/dr-error.module.mjs +0 -31
- package/esm2022/lib/dr-inputs/button/button.component.mjs +0 -66
- package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +0 -65
- package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +0 -64
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +0 -226
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +0 -190
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +0 -186
- 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 -195
- package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +0 -218
- package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +0 -108
- package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +0 -31
- package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +0 -159
- package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +0 -79
- package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +0 -72
- package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +0 -66
- package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +0 -78
- package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +0 -173
- 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.component.mjs +0 -126
- package/esm2022/lib/dr-popover/dr-popover.directive.mjs +0 -110
- package/esm2022/lib/dr-popover/dr-popover.module.mjs +0 -30
- package/esm2022/lib/dr-popover/dr-popover.service.mjs +0 -107
- package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -105
- package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -83
- 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 -165
- package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +0 -17
- package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +0 -59
- package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +0 -23
- package/esm2022/lib/dr-tabs/dr-tab.component.mjs +0 -37
- package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +0 -47
- package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +0 -49
- package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -188
- package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -35
- package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +0 -18
- package/esm2022/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.mjs +0 -16
- package/esm2022/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.mjs +0 -18
- package/esm2022/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.mjs +0 -19
- package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +0 -48
- package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +0 -156
- package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +0 -48
- package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +0 -215
- package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +0 -60
- package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +0 -48
- package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +0 -106
- package/esm2022/lib/dr-treeview/models/treeview-config.mjs +0 -25
- package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +0 -47
- package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +0 -21
- package/esm2022/lib/list-tags/list-tag.component.mjs +0 -42
- package/esm2022/lib/list-tags/list-tag.module.mjs +0 -34
- package/esm2022/lib/models/chat.mjs +0 -36
- package/esm2022/lib/models/popover.mjs +0 -27
- package/esm2022/lib/stepper/stepper.component.mjs +0 -63
- package/esm2022/lib/stepper/stepper.module.mjs +0 -24
- package/esm2022/lib/utils/dr-shared-utils.mjs +0 -47
- package/esm2022/public-api.mjs +0 -120
- package/fesm2022/datarailsshared-datarailsshared.mjs +0 -7551
- 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-popover/dr-popover-ref.mjs → esm2015/lib/dr-popover/dr-popover-ref.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/dr-treeview/models/treeview-item.mjs → esm2015/lib/dr-treeview/models/treeview-item.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
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
+
import { DateFromats, DateTags, TimeframeOption } from '../../../models/datePicker';
|
|
4
|
+
import { DrSharedUtils } from '../../../utils/dr-shared-utils';
|
|
5
|
+
import * as _ from 'lodash';
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const moment = require('moment');
|
|
8
|
+
export class DrDatePickerService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.isTimeframeSelectionEnabled = false;
|
|
11
|
+
this.timeframe = TimeframeOption.DAY;
|
|
12
|
+
this.format$ = new BehaviorSubject(DateFromats.MAT_DEFAULT_DATE_FORMAT);
|
|
13
|
+
this.updatedQuarter$ = new Subject();
|
|
14
|
+
this.updatedDateAndClose$ = new Subject();
|
|
15
|
+
this.presetTag$ = new BehaviorSubject('');
|
|
16
|
+
this.onSameDaySelectedInCalendar$ = new Subject();
|
|
17
|
+
this.keepPresetTag = false;
|
|
18
|
+
this.isValueUpdating = false;
|
|
19
|
+
this.availableTimeframes = [
|
|
20
|
+
TimeframeOption.DAY,
|
|
21
|
+
TimeframeOption.WEEK,
|
|
22
|
+
TimeframeOption.MONTH,
|
|
23
|
+
TimeframeOption.QUARTER,
|
|
24
|
+
TimeframeOption.YEAR
|
|
25
|
+
];
|
|
26
|
+
this.formatConfig = {
|
|
27
|
+
day: DateFromats.MAT_DEFAULT_DATE_FORMAT,
|
|
28
|
+
month: DateFromats.MONTH_YEAR_FORMAT,
|
|
29
|
+
year: DateFromats.YEAR_FORMAT,
|
|
30
|
+
quarter: DateFromats.QUARTER_FORMAT,
|
|
31
|
+
week: DateFromats.WEEK_FORMAT
|
|
32
|
+
};
|
|
33
|
+
this.fiscalYearMonthsModifier = 0;
|
|
34
|
+
}
|
|
35
|
+
getDisplayPrefix() {
|
|
36
|
+
const formatCached = this.format$.getValue();
|
|
37
|
+
switch (true) {
|
|
38
|
+
case formatCached === null || formatCached === void 0 ? void 0 : formatCached.includes('Q'):
|
|
39
|
+
return 'Q';
|
|
40
|
+
case formatCached === null || formatCached === void 0 ? void 0 : formatCached.includes('W'):
|
|
41
|
+
return 'W';
|
|
42
|
+
default:
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
getTimeframe(format) {
|
|
47
|
+
return DrSharedUtils.getTimeframeByDateFormat(format);
|
|
48
|
+
}
|
|
49
|
+
getConfiguredFormat(timeframe) {
|
|
50
|
+
return this.formatConfig[timeframe];
|
|
51
|
+
}
|
|
52
|
+
updateTimeframeAndFormat(format) {
|
|
53
|
+
const normalizedFormat = this.normalizeValue(format || this.format$.getValue());
|
|
54
|
+
this.timeframe = this.getTimeframe(normalizedFormat);
|
|
55
|
+
this.format$.next(this.getConfiguredFormat(this.timeframe));
|
|
56
|
+
}
|
|
57
|
+
normalizeValue(value) {
|
|
58
|
+
return value.replace(/d/g, 'D');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get quarter number for date according to fiscal year
|
|
62
|
+
*
|
|
63
|
+
* @param date
|
|
64
|
+
*/
|
|
65
|
+
getQuarterAccordingToFiscalYear(date) {
|
|
66
|
+
let fiscalMonth = this.fiscalYearMonthsModifier;
|
|
67
|
+
const dateMonth = date.month();
|
|
68
|
+
if (dateMonth < fiscalMonth) {
|
|
69
|
+
fiscalMonth -= 12;
|
|
70
|
+
}
|
|
71
|
+
return Math.trunc((date.month() - fiscalMonth) / 3) + 1;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Sets date to end of quarter in FY by passed quarter number
|
|
75
|
+
*
|
|
76
|
+
* @param date
|
|
77
|
+
* @param quarterNumber
|
|
78
|
+
*/
|
|
79
|
+
setEndOfQuarter(date, quarterNumber) {
|
|
80
|
+
date
|
|
81
|
+
.subtract(this.fiscalYearMonthsModifier, 'M')
|
|
82
|
+
.startOf('year')
|
|
83
|
+
.add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')
|
|
84
|
+
.endOf('month');
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Sets date to start of quarter in FY by passed quarter number
|
|
88
|
+
*
|
|
89
|
+
* @param date
|
|
90
|
+
* @param quarterNumber
|
|
91
|
+
*/
|
|
92
|
+
setStartOfQuarter(date, quarterNumber) {
|
|
93
|
+
date
|
|
94
|
+
.subtract(this.fiscalYearMonthsModifier, 'M')
|
|
95
|
+
.startOf('year')
|
|
96
|
+
.add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Sets date to end of current quarter (in which date is located) according to FY
|
|
100
|
+
*
|
|
101
|
+
* @param date
|
|
102
|
+
*/
|
|
103
|
+
setEndOfCurrentQuarter(date) {
|
|
104
|
+
this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Sets date to start of current quarter (in which date is located) according to FY
|
|
108
|
+
*
|
|
109
|
+
* @param date
|
|
110
|
+
*/
|
|
111
|
+
setStartOfCurrentQuarter(date) {
|
|
112
|
+
this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* If date selection on this timeframe depends on Fiscal Year
|
|
116
|
+
*
|
|
117
|
+
* @param timeframe
|
|
118
|
+
*/
|
|
119
|
+
isTimeframeDependingOnFY(timeframe) {
|
|
120
|
+
return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Subtract from date fiscal year shift months count
|
|
124
|
+
*
|
|
125
|
+
* @param date
|
|
126
|
+
*/
|
|
127
|
+
subtractFiscalYearMonthsFromDate(date) {
|
|
128
|
+
return this.getDateModifiedByFiscalMonths(date, true);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Add to date fiscal year shift months count
|
|
132
|
+
*
|
|
133
|
+
* @param date
|
|
134
|
+
*/
|
|
135
|
+
addFiscalYearMonthsToDate(date) {
|
|
136
|
+
return this.getDateModifiedByFiscalMonths(date);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Add or subtract depending on isRevert paremeter Fiscal year month shift
|
|
140
|
+
*
|
|
141
|
+
* @param date
|
|
142
|
+
* @param isSubtract
|
|
143
|
+
*/
|
|
144
|
+
getDateModifiedByFiscalMonths(date, isSubtract = false) {
|
|
145
|
+
return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;
|
|
146
|
+
}
|
|
147
|
+
updateDatePickerByPreset(tag, calender) {
|
|
148
|
+
this.keepPresetTag = true;
|
|
149
|
+
let date = null;
|
|
150
|
+
if (tag) {
|
|
151
|
+
date = DrSharedUtils.getDateByTag(tag);
|
|
152
|
+
switch (tag) {
|
|
153
|
+
case DateTags.TODAY:
|
|
154
|
+
this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);
|
|
155
|
+
break;
|
|
156
|
+
case DateTags.YESTERDAY:
|
|
157
|
+
this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);
|
|
158
|
+
break;
|
|
159
|
+
case DateTags.THIS_MONTH:
|
|
160
|
+
this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);
|
|
161
|
+
this.selectDateInCalendarMonthView(date, calender);
|
|
162
|
+
break;
|
|
163
|
+
case DateTags.PREV_MONTH:
|
|
164
|
+
this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);
|
|
165
|
+
this.selectDateInCalendarMonthView(date, calender);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
this.presetTag$.next(tag);
|
|
170
|
+
this.updatedDateAndClose$.next(date);
|
|
171
|
+
}
|
|
172
|
+
selectDateInCalendarMonthView(date, calender) {
|
|
173
|
+
setTimeout(() => {
|
|
174
|
+
const monthView = calender.monthView;
|
|
175
|
+
if (monthView) {
|
|
176
|
+
monthView._activeDate = date;
|
|
177
|
+
monthView._selected = date;
|
|
178
|
+
monthView._init();
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
resetPresetTag() {
|
|
183
|
+
if (!this.keepPresetTag) {
|
|
184
|
+
this.presetTag$.next(null);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
this.keepPresetTag = false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
DrDatePickerService.decorators = [
|
|
192
|
+
{ type: Injectable }
|
|
193
|
+
];
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kYXRlLXBpY2tlcnMvc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUEyQixlQUFlLEVBQW9CLE1BQU0sNEJBQTRCLENBQUM7QUFDL0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLGFBQWE7QUFDYixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFHakMsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVJLGdDQUEyQixHQUFHLEtBQUssQ0FBQztRQUNwQyxjQUFTLEdBQXFCLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFDbEQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNFLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRzdDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM3QyxpQ0FBNEIsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3JELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHdCQUFtQixHQUFHO1lBQ2xCLGVBQWUsQ0FB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VUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFnQixDQUFDO1lBQzVDLElBQUksU0FBUyxFQUFFO2dCQUNYLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUM3QixTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDM0IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDTCxDQUFDOzs7WUF6TUosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdENhbGVuZGFyLCBNYXREYXRlcGlja2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlRnJvbWF0cywgRGF0ZVRhZ3MsIElEYXRlUGlja2VyRm9ybWF0Q29uZmlnLCBUaW1lZnJhbWVPcHRpb24sIFRUaW1lZnJhbWVPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0ZVBpY2tlcic7XG5pbXBvcnQgeyBEclNoYXJlZFV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZHItc2hhcmVkLXV0aWxzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcblxuLy8gQHRzLWlnbm9yZVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEckRhdGVQaWNrZXJTZXJ2aWNlIHtcbiAgICBpc1RpbWVmcmFtZVNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aW1lZnJhbWU6IFRUaW1lZnJhbWVPcHRpb24gPSBUaW1lZnJhbWVPcHRpb24uREFZO1xuICAgIGZvcm1hdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oRGF0ZUZyb21hdHMuTUFUX0RFRkFVTFRfREFURV9GT1JNQVQpO1xuICAgIHVwZGF0ZWRRdWFydGVyJCA9IG5ldyBTdWJqZWN0PE1vbWVudD4oKTtcbiAgICB1cGRhdGVkRGF0ZUFuZENsb3NlJCA9IG5ldyBTdWJqZWN0PE1vbWVudD4oKTtcbiAgICBkYXRlUGlja2VySW5zdGFuY2U6IE1hdERhdGVwaWNrZXI8YW55PjtcbiAgICBpc1VzaW5nRGF0ZVRhZ1ByZXNldHM6IGJvb2xlYW47XG4gICAgcHJlc2V0VGFnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgb25TYW1lRGF5U2VsZWN0ZWRJbkNhbGVuZGFyJCA9IG5ldyBTdWJqZWN0PE1vbWVudD4oKTtcbiAgICBrZWVwUHJlc2V0VGFnID0gZmFsc2U7XG4gICAgaXNWYWx1ZVVwZGF0aW5nID0gZmFsc2U7XG4gICAgYXZhaWxhYmxlVGltZWZyYW1lcyA9IFtcbiAgICAgICAgVGltZWZyYW1lT3B0aW9uLkRBWSxcbiAgICAgICAgVGltZWZyYW1lT3B0aW9uLldFRUssXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5NT05USCxcbiAgICAgICAgVGltZWZyYW1lT3B0aW9uLlFVQVJURVIsXG4gICAgICAgIFRpbWVmcmFtZU9wdGlvbi5ZRUFSXG4gICAgXTtcblxuICAgIHB1YmxpYyBmb3JtYXRDb25maWc6IElEYXRlUGlja2VyRm9ybWF0Q29uZmlnID0ge1xuICAgICAgICBkYXk6IERhdGVGcm9tYXRzLk1BVF9ERUZBVUxUX0RBVEVfRk9STUFULFxuICAgICAgICBtb250aDogRGF0ZUZyb21hdHMuTU9OVEhfWUVBUl9GT1JNQVQsXG4gICAgICAgIHllYXI6IERhdGVGcm9tYXRzLllFQVJfRk9STUFULFxuICAgICAgICBxdWFydGVyOiBEYXRlRnJvbWF0cy5RVUFSVEVSX0ZPUk1BVCxcbiAgICAgICAgd2VlazogRGF0ZUZyb21hdHMuV0VFS19GT1JNQVRcbiAgICB9O1xuICAgIHB1YmxpYyBjYWxlbmRhckluc3RhbmNlOiBNYXRDYWxlbmRhcjxhbnk+O1xuXG4gICAgcHVibGljIGZpc2NhbFllYXJNb250aHNNb2RpZmllciA9IDA7XG5cbiAgICBnZXREaXNwbGF5UHJlZml4KCkge1xuICAgICAgICBjb25zdCBmb3JtYXRDYWNoZWQgPSB0aGlzLmZvcm1hdCQuZ2V0VmFsdWUoKTtcbiAgICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICAgICBjYXNlIGZvcm1hdENhY2hlZD8uaW5jbHVkZXMoJ1EnKTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1EnO1xuICAgICAgICAgICAgY2FzZSBmb3JtYXRDYWNoZWQ/LmluY2x1ZGVzKCdXJyk6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdXJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VGltZWZyYW1lKGZvcm1hdDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBEclNoYXJlZFV0aWxzLmdldFRpbWVmcmFtZUJ5RGF0ZUZvcm1hdChmb3JtYXQpO1xuICAgIH1cblxuICAgIGdldENvbmZpZ3VyZWRGb3JtYXQodGltZWZyYW1lOiBUVGltZWZyYW1lT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdENvbmZpZ1t0aW1lZnJhbWVdO1xuICAgIH1cblxuICAgIHVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRm9ybWF0ID0gdGhpcy5ub3JtYWxpemVWYWx1ZShmb3JtYXQgfHwgdGhpcy5mb3JtYXQkLmdldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLnRpbWVmcmFtZSA9IHRoaXMuZ2V0VGltZWZyYW1lKG5vcm1hbGl6ZWRGb3JtYXQpO1xuICAgICAgICB0aGlzLmZvcm1hdCQubmV4dCh0aGlzLmdldENvbmZpZ3VyZWRGb3JtYXQodGhpcy50aW1lZnJhbWUpKTtcbiAgICB9XG5cbiAgICBub3JtYWxpemVWYWx1ZSh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvZC9nLCAnRCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBxdWFydGVyIG51bWJlciBmb3IgZGF0ZSBhY2NvcmRpbmcgdG8gZmlzY2FsIHllYXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIGdldFF1YXJ0ZXJBY2NvcmRpbmdUb0Zpc2NhbFllYXIoZGF0ZTogTW9tZW50KTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGZpc2NhbE1vbnRoID0gdGhpcy5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXI7XG4gICAgICAgIGNvbnN0IGRhdGVNb250aCA9IGRhdGUubW9udGgoKTtcbiAgICAgICAgaWYgKGRhdGVNb250aCA8IGZpc2NhbE1vbnRoKSB7XG4gICAgICAgICAgICBmaXNjYWxNb250aCAtPSAxMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTWF0aC50cnVuYygoZGF0ZS5tb250aCgpIC0gZmlzY2FsTW9udGgpIC8gMykgKyAxO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGF0ZSB0byBlbmQgb2YgcXVhcnRlciBpbiBGWSBieSBwYXNzZWQgcXVhcnRlciBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICogQHBhcmFtIHF1YXJ0ZXJOdW1iZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RW5kT2ZRdWFydGVyKGRhdGU6IE1vbWVudCwgcXVhcnRlck51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGRhdGVcbiAgICAgICAgICAgIC5zdWJ0cmFjdCh0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllciwgJ00nKVxuICAgICAgICAgICAgLnN0YXJ0T2YoJ3llYXInKVxuICAgICAgICAgICAgLmFkZCh0aGlzLmZpc2NhbFllYXJNb250aHNNb2RpZmllciArIHF1YXJ0ZXJOdW1iZXIgKiAzIC0gMSwgJ00nKVxuICAgICAgICAgICAgLmVuZE9mKCdtb250aCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgZGF0ZSB0byBzdGFydCBvZiBxdWFydGVyIGluIEZZIGJ5IHBhc3NlZCBxdWFydGVyIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKiBAcGFyYW0gcXVhcnRlck51bWJlclxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRTdGFydE9mUXVhcnRlcihkYXRlOiBNb21lbnQsIHF1YXJ0ZXJOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBkYXRlXG4gICAgICAgICAgICAuc3VidHJhY3QodGhpcy5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXIsICdNJylcbiAgICAgICAgICAgIC5zdGFydE9mKCd5ZWFyJylcbiAgICAgICAgICAgIC5hZGQodGhpcy5maXNjYWxZZWFyTW9udGhzTW9kaWZpZXIgKyAocXVhcnRlck51bWJlciAtIDEpICogMywgJ00nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGRhdGUgdG8gZW5kIG9mIGN1cnJlbnQgcXVhcnRlciAoaW4gd2hpY2ggZGF0ZSBpcyBsb2NhdGVkKSBhY2NvcmRpbmcgdG8gRllcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIHNldEVuZE9mQ3VycmVudFF1YXJ0ZXIoZGF0ZTogTW9tZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RW5kT2ZRdWFydGVyKGRhdGUsIHRoaXMuZ2V0UXVhcnRlckFjY29yZGluZ1RvRmlzY2FsWWVhcihkYXRlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBkYXRlIHRvIHN0YXJ0IG9mIGN1cnJlbnQgcXVhcnRlciAoaW4gd2hpY2ggZGF0ZSBpcyBsb2NhdGVkKSBhY2NvcmRpbmcgdG8gRllcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIHNldFN0YXJ0T2ZDdXJyZW50UXVhcnRlcihkYXRlOiBNb21lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRTdGFydE9mUXVhcnRlcihkYXRlLCB0aGlzLmdldFF1YXJ0ZXJBY2NvcmRpbmdUb0Zpc2NhbFllYXIoZGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIGRhdGUgc2VsZWN0aW9uIG9uIHRoaXMgdGltZWZyYW1lIGRlcGVuZHMgb24gRmlzY2FsIFllYXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aW1lZnJhbWVcbiAgICAgKi9cbiAgICBwdWJsaWMgaXNUaW1lZnJhbWVEZXBlbmRpbmdPbkZZKHRpbWVmcmFtZTogVGltZWZyYW1lT3B0aW9uKSB7XG4gICAgICAgIHJldHVybiBfLmluY2x1ZGVzKFtUaW1lZnJhbWVPcHRpb24uUVVBUlRFUiwgVGltZWZyYW1lT3B0aW9uLllFQVJdLCB0aW1lZnJhbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1YnRyYWN0IGZyb20gZGF0ZSBmaXNjYWwgeWVhciBzaGlmdCBtb250aHMgY291bnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlXG4gICAgICovXG4gICAgcHVibGljIHN1YnRyYWN0RmlzY2FsWWVhck1vbnRoc0Zyb21EYXRlKGRhdGU6IE1vbWVudCk6IE1vbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGVNb2RpZmllZEJ5RmlzY2FsTW9udGhzKGRhdGUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0byBkYXRlIGZpc2NhbCB5ZWFyIHNoaWZ0IG1vbnRocyBjb3VudFxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRmlzY2FsWWVhck1vbnRoc1RvRGF0ZShkYXRlOiBNb21lbnQpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRlTW9kaWZpZWRCeUZpc2NhbE1vbnRocyhkYXRlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgb3Igc3VidHJhY3QgZGVwZW5kaW5nIG9uIGlzUmV2ZXJ0IHBhcmVtZXRlciBGaXNjYWwgeWVhciBtb250aCBzaGlmdFxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGVcbiAgICAgKiBAcGFyYW0gaXNTdWJ0cmFjdFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RGF0ZU1vZGlmaWVkQnlGaXNjYWxNb250aHMoZGF0ZTogTW9tZW50LCBpc1N1YnRyYWN0ID0gZmFsc2UpOiBNb21lbnQge1xuICAgICAgICByZXR1cm4gZGF0ZSA/IF8uY2xvbmVEZWVwKGRhdGUpW2lzU3VidHJhY3QgPyAnc3VidHJhY3QnIDogJ2FkZCddKHRoaXMuZmlzY2FsWWVhck1vbnRoc01vZGlmaWVyLCAnbW9udGgnKSA6IGRhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZURhdGVQaWNrZXJCeVByZXNldCh0YWc6IHN0cmluZywgY2FsZW5kZXI6IGFueSkge1xuICAgICAgICB0aGlzLmtlZXBQcmVzZXRUYWcgPSB0cnVlO1xuICAgICAgICBsZXQgZGF0ZSA9IG51bGw7XG4gICAgICAgIGlmICh0YWcpIHtcbiAgICAgICAgZGF0ZSA9IERyU2hhcmVkVXRpbHMuZ2V0RGF0ZUJ5VGFnKHRhZyk7XG4gICAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgICAgICBjYXNlIERhdGVUYWdzLlRPREFZOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KERhdGVGcm9tYXRzLk1BVF9ERUZBVUxUX0RBVEVfRk9STUFUKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVRhZ3MuWUVTVEVSREFZOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZWZyYW1lQW5kRm9ybWF0KERhdGVGcm9tYXRzLk1BVF9ERUZBVUxUX0RBVEVfRk9STUFUKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVRhZ3MuVEhJU19NT05USDpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChEYXRlRnJvbWF0cy5NT05USF9ZRUFSX0ZPUk1BVCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRlSW5DYWxlbmRhck1vbnRoVmlldyhkYXRlLCBjYWxlbmRlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERhdGVUYWdzLlBSRVZfTU9OVEg6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lZnJhbWVBbmRGb3JtYXQoRGF0ZUZyb21hdHMuTU9OVEhfWUVBUl9GT1JNQVQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZUluQ2FsZW5kYXJNb250aFZpZXcoZGF0ZSwgY2FsZW5kZXIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJlc2V0VGFnJC5uZXh0KHRhZyk7XG4gICAgICAgIHRoaXMudXBkYXRlZERhdGVBbmRDbG9zZSQubmV4dChkYXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RGF0ZUluQ2FsZW5kYXJNb250aFZpZXcoZGF0ZTogTW9tZW50LCBjYWxlbmRlcjogYW55KTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbW9udGhWaWV3ID0gY2FsZW5kZXIubW9udGhWaWV3IGFzIGFueTtcbiAgICAgICAgICAgIGlmIChtb250aFZpZXcpIHtcbiAgICAgICAgICAgICAgICBtb250aFZpZXcuX2FjdGl2ZURhdGUgPSBkYXRlO1xuICAgICAgICAgICAgICAgIG1vbnRoVmlldy5fc2VsZWN0ZWQgPSBkYXRlO1xuICAgICAgICAgICAgICAgIG1vbnRoVmlldy5faW5pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRQcmVzZXRUYWcoKSB7XG4gICAgICAgIGlmICghdGhpcy5rZWVwUHJlc2V0VGFnKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNldFRhZyQubmV4dChudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMua2VlcFByZXNldFRhZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, forwardRef, HostBinding, Input, Output, Renderer2, ViewChild, } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { noop } from 'rxjs';
|
|
4
|
+
export class DrInputComponent {
|
|
5
|
+
constructor(elementRef, renderer, cdr) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
7
|
+
this.renderer = renderer;
|
|
8
|
+
this.cdr = cdr;
|
|
9
|
+
this._clearable = false;
|
|
10
|
+
this.type = 'string';
|
|
11
|
+
this.placeholder = '';
|
|
12
|
+
this.readonly = false;
|
|
13
|
+
this.blur = new EventEmitter();
|
|
14
|
+
this.ngModelDebounceChange = new EventEmitter();
|
|
15
|
+
this.innerValue = null;
|
|
16
|
+
this._disabled = null;
|
|
17
|
+
this._elementClass = [];
|
|
18
|
+
this._buttonOptions = {
|
|
19
|
+
show: false,
|
|
20
|
+
showOnFocus: false,
|
|
21
|
+
focusSet: false,
|
|
22
|
+
checkFocusOut: (target, element) => true,
|
|
23
|
+
text: 'Save'
|
|
24
|
+
};
|
|
25
|
+
this.searchHandler = new EventEmitter();
|
|
26
|
+
this.clearHandler = new EventEmitter();
|
|
27
|
+
this.buttonHandler = new EventEmitter();
|
|
28
|
+
this.tabindex = -1;
|
|
29
|
+
this.onChangeCallback = noop;
|
|
30
|
+
this.onTouchedCallback = noop;
|
|
31
|
+
this.onChange = () => {
|
|
32
|
+
};
|
|
33
|
+
this.onTouched = () => {
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
set disabled(value) {
|
|
37
|
+
this.setDisabledState(value);
|
|
38
|
+
}
|
|
39
|
+
set buttonOptions(value) {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
if (value) {
|
|
42
|
+
this._buttonOptions = Object.assign(Object.assign({}, this._buttonOptions), value);
|
|
43
|
+
if (((_a = this._buttonOptions) === null || _a === void 0 ? void 0 : _a.show) || ((_b = this._buttonOptions) === null || _b === void 0 ? void 0 : _b.showOnFocus)) {
|
|
44
|
+
this._elementClass.push('with-button');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (this._buttonOptions.showOnFocus) {
|
|
48
|
+
this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {
|
|
49
|
+
this._buttonOptions.focusSet = true;
|
|
50
|
+
this.cdr.markForCheck();
|
|
51
|
+
});
|
|
52
|
+
this.globalListenFunc = this.renderer.listen('document', 'click', event => {
|
|
53
|
+
if (event.target.parentNode !== this.elementRef.nativeElement) {
|
|
54
|
+
if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {
|
|
55
|
+
this.onButtonClicked(event);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
this.cdr.markForCheck();
|
|
61
|
+
}
|
|
62
|
+
set clearable(val) {
|
|
63
|
+
this._clearable = !!val;
|
|
64
|
+
if (this._clearable) {
|
|
65
|
+
this._elementClass.push('clearable');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this._elementClass = this._elementClass.filter(item => item !== 'clearable');
|
|
69
|
+
}
|
|
70
|
+
this.cdr.markForCheck();
|
|
71
|
+
}
|
|
72
|
+
get elementClass() {
|
|
73
|
+
return this._elementClass.join(' ');
|
|
74
|
+
}
|
|
75
|
+
set(val) {
|
|
76
|
+
this._elementClass = val.split(' ');
|
|
77
|
+
}
|
|
78
|
+
get value() {
|
|
79
|
+
return this.innerValue;
|
|
80
|
+
}
|
|
81
|
+
set value(v) {
|
|
82
|
+
if (v !== this.innerValue) {
|
|
83
|
+
this.innerValue = this.type === 'number' ? +v : v;
|
|
84
|
+
this.onChangeCallback(this.innerValue);
|
|
85
|
+
}
|
|
86
|
+
this.cdr.markForCheck();
|
|
87
|
+
}
|
|
88
|
+
ngAfterViewInit() {
|
|
89
|
+
if (this.clearable) {
|
|
90
|
+
this._elementClass.push('clearable');
|
|
91
|
+
}
|
|
92
|
+
if (this.prefixIcon) {
|
|
93
|
+
this._elementClass.push('with-prefix');
|
|
94
|
+
}
|
|
95
|
+
if (this.suffixIcon) {
|
|
96
|
+
this._elementClass.push('with-suffix');
|
|
97
|
+
}
|
|
98
|
+
if (this.type === 'search') {
|
|
99
|
+
this._elementClass.push('search-type');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
registerOnChange(fn) {
|
|
103
|
+
this.onChangeCallback = fn;
|
|
104
|
+
}
|
|
105
|
+
registerOnTouched(fn) {
|
|
106
|
+
this.onTouchedCallback = fn;
|
|
107
|
+
}
|
|
108
|
+
writeValue(value) {
|
|
109
|
+
if (value !== this.innerValue) {
|
|
110
|
+
this.innerValue = value;
|
|
111
|
+
this.updateChanges();
|
|
112
|
+
this.cdr.markForCheck();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
updateChanges() {
|
|
116
|
+
this.onChange(this.value);
|
|
117
|
+
}
|
|
118
|
+
setDisabledState(isDisabled) {
|
|
119
|
+
if (isDisabled) {
|
|
120
|
+
this._elementClass.push('disabled');
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
this._elementClass = this._elementClass.filter(item => item !== 'disabled');
|
|
124
|
+
}
|
|
125
|
+
this._disabled = isDisabled;
|
|
126
|
+
this.cdr.markForCheck();
|
|
127
|
+
}
|
|
128
|
+
onSearchClicked($event) {
|
|
129
|
+
this.searchHandler.emit($event);
|
|
130
|
+
}
|
|
131
|
+
onButtonClicked($event) {
|
|
132
|
+
this.buttonHandler.emit($event);
|
|
133
|
+
this._buttonOptions.focusSet = false;
|
|
134
|
+
this.cdr.markForCheck();
|
|
135
|
+
}
|
|
136
|
+
ngOnDestroy() {
|
|
137
|
+
if (this.listenFunc) {
|
|
138
|
+
this.listenFunc();
|
|
139
|
+
this.globalListenFunc();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
onClear($event) {
|
|
143
|
+
this.clearHandler.emit($event);
|
|
144
|
+
$event.preventDefault();
|
|
145
|
+
$event.stopPropagation();
|
|
146
|
+
this.value = null;
|
|
147
|
+
}
|
|
148
|
+
focus() {
|
|
149
|
+
this.inputElement.nativeElement.focus();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
DrInputComponent.decorators = [
|
|
153
|
+
{ type: Component, args: [{
|
|
154
|
+
selector: 'dr-input',
|
|
155
|
+
template: "<ng-content select=\"[prefixIcon]\"></ng-content>\n<input #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"ngModelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minLength]=\"minLength\"\n [maxlength]=\"maxlength\"\n [step]=\"step\"\n>\n<span *ngIf=\"value\" class=\"clear-icon\" (click)=\"onClear($event)\"></span>\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked($event)\"></span>\n<ng-content select=\"[suffixIcon]\"></ng-content>\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\"\n (click)=\"onButtonClicked($event)\">\n {{_buttonOptions.text}}\n</button>\n",
|
|
156
|
+
providers: [{
|
|
157
|
+
provide: NG_VALUE_ACCESSOR,
|
|
158
|
+
useExisting: forwardRef(() => DrInputComponent),
|
|
159
|
+
multi: true
|
|
160
|
+
}],
|
|
161
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
162
|
+
styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Poppins\",sans-serif;background:#fff;border:1px solid #c3c4ce;border-radius:6px;color:#85889c;padding:0 8px;overflow:hidden;outline:none}:host:hover{border-color:#85889c}:host:focus-within{border-color:#21b8f1!important;color:#151b3f}:host.disabled{pointer-events:none;border:none;color:#85889c;background:#e5e6ea}:host.ng-valid.ng-dirty{border-color:#03a678}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#de2833!important}:host.ng-untouched.ng-valid{border-color:#c3c4ce}:host input{display:flex;font-size:14px;flex-grow:1;height:100%;border:none;padding:4px 0;text-align:left}:host input::placeholder{font-size:14px;line-height:18px}:host input:disabled{border:none;color:#85889c;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}:host .clear-icon{visibility:hidden}:host.clearable .clear-icon,:host.ng-touched.ng-invalid .clear-icon{visibility:visible;content:url('data:image/svg+xml; utf8, <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5.91783 5.00001L9.03353 1.88395C9.11924 1.79818 9.16651 1.68374 9.16665 1.56171C9.16665 1.43962 9.11937 1.32504 9.03353 1.2394L8.76047 0.966415C8.67463 0.880433 8.56023 0.833344 8.43808 0.833344C8.31612 0.833344 8.20166 0.880433 8.11582 0.966415L5.00013 4.08227L1.88428 0.966415C1.79858 0.880433 1.68404 0.833344 1.56196 0.833344C1.44001 0.833344 1.32556 0.880433 1.23985 0.966415L0.966646 1.2394C0.788869 1.41719 0.788869 1.70637 0.966646 1.88395L4.08242 5.00001L0.966646 8.11593C0.880873 8.20184 0.833677 8.31628 0.833677 8.43831C0.833677 8.56034 0.880873 8.67478 0.966646 8.76062L1.23978 9.03361C1.32548 9.11952 1.44 9.16668 1.56188 9.16668C1.68397 9.16668 1.7985 9.11952 1.88421 9.03361L5.00005 5.91769L8.11575 9.03361C8.20159 9.11952 8.31605 9.16668 8.438 9.16668H8.43815C8.56017 9.16668 8.67456 9.11952 8.7604 9.03361L9.03346 8.76062C9.11916 8.67484 9.16643 8.56034 9.16643 8.43831C9.16643 8.31628 9.11916 8.20184 9.03346 8.116L5.91783 5.00001Z\" fill=\"%2351566F\"/></svg> ');margin:auto 8px;cursor:pointer}:host span+span,:host span+img{margin-left:0}:host.search-type{padding:0 16px;border-radius:16px}:host.search-type.ng-valid{border-color:#c3c4ce}:host.search-type .search-icon{content:url('data:image/svg+xml; utf8, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.5816 10.2097C11.4878 10.1157 11.3605 10.0629 11.2277 10.0629H10.8175C10.7473 10.0629 10.6799 10.035 10.6303 9.98534C10.5322 9.88724 10.527 9.73044 10.6132 9.62178C11.4154 8.6112 11.8925 7.33534 11.8925 5.94625C11.8925 2.66209 9.23042 0 5.94625 0C2.66209 0 0 2.66209 0 5.94625C0 9.23042 2.66209 11.8925 5.94625 11.8925C7.33523 11.8925 8.611 11.4155 9.62155 10.6172C9.7304 10.5312 9.88711 10.5366 9.9852 10.6347C10.0349 10.6845 10.0629 10.7519 10.0629 10.8223V11.2277C10.0629 11.3605 10.1157 11.4878 10.2097 11.5816L14.2834 15.6472C14.4787 15.8421 14.795 15.8419 14.9901 15.6468L15.6468 14.9901C15.8419 14.795 15.8421 14.4787 15.6472 14.2834L11.5816 10.2097ZM5.94625 10.0629C3.67296 10.0629 1.82962 8.21955 1.82962 5.94625C1.82962 3.67296 3.67296 1.82962 5.94625 1.82962C8.21955 1.82962 10.0629 3.67296 10.0629 5.94625C10.0629 8.21955 8.21955 10.0629 5.94625 10.0629Z\" fill=\"%23BCBCBC\"/></svg> ');margin:auto 0 auto 8px;cursor:pointer}:host.with-button{padding-right:0}:host.with-button button{color:#0061ff;background:#f6f7f8;height:100%;width:auto;padding:0 8px;display:flex;align-items:center;border:none;border-left:1px solid #c3c4ce}:host ::ng-deep img[prefixIcon],:host ::ng-deep img[suffixIcon],:host ::ng-deep i[prefixIcon],:host ::ng-deep i[suffixIcon]{position:relative;margin:auto 8px}:host ::ng-deep img[prefixIcon],:host ::ng-deep i[prefixIcon]{margin-left:0}:host ::ng-deep img[suffixIcon],:host ::ng-deep i[suffixIcon]{margin-right:0}\n"]
|
|
163
|
+
},] }
|
|
164
|
+
];
|
|
165
|
+
DrInputComponent.ctorParameters = () => [
|
|
166
|
+
{ type: ElementRef },
|
|
167
|
+
{ type: Renderer2 },
|
|
168
|
+
{ type: ChangeDetectorRef }
|
|
169
|
+
];
|
|
170
|
+
DrInputComponent.propDecorators = {
|
|
171
|
+
disabled: [{ type: Input }],
|
|
172
|
+
buttonOptions: [{ type: Input }],
|
|
173
|
+
type: [{ type: Input }],
|
|
174
|
+
name: [{ type: Input }],
|
|
175
|
+
placeholder: [{ type: Input }],
|
|
176
|
+
readonly: [{ type: Input }],
|
|
177
|
+
clearable: [{ type: Input }],
|
|
178
|
+
min: [{ type: Input }],
|
|
179
|
+
max: [{ type: Input }],
|
|
180
|
+
minLength: [{ type: Input }],
|
|
181
|
+
maxlength: [{ type: Input }],
|
|
182
|
+
step: [{ type: Input }],
|
|
183
|
+
blur: [{ type: Output }],
|
|
184
|
+
ngModelDebounceChange: [{ type: Output }],
|
|
185
|
+
elementClass: [{ type: HostBinding, args: ['class',] }],
|
|
186
|
+
searchHandler: [{ type: Output }],
|
|
187
|
+
clearHandler: [{ type: Output }],
|
|
188
|
+
buttonHandler: [{ type: Output }],
|
|
189
|
+
inputElement: [{ type: ViewChild, args: ['inputRef',] }],
|
|
190
|
+
prefixIcon: [{ type: ContentChild, args: ['prefix', { static: false },] }],
|
|
191
|
+
suffixIcon: [{ type: ContentChild, args: ['suffix', { static: false },] }],
|
|
192
|
+
tabindex: [{ type: HostBinding, args: ['tabindex',] }]
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RyLWlucHV0L2RyLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFBRSxTQUFTLEdBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBYTVCLE1BQU0sT0FBTyxnQkFBZ0I7SUF5R3pCLFlBQW9CLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLEdBQXNCO1FBRnRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTFHMUMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQTZCVixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBRWhCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFpQmhCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFPckQsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLG1CQUFjLEdBQUc7WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFdBQVcsRUFBRSxLQUFLO1lBQ2xC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RSxNQUFNLEVBQUUsS0FBSyxFQUFFO3VCQUV4QyxXQUFXLFNBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcklucHV0Q29tcG9uZW50KSxcbiAgICAgICAgbXVsdGk6IHRydWVcbiAgICB9XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICAgIF9jbGVhcmFibGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBidXR0b25PcHRpb25zKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fYnV0dG9uT3B0aW9ucyA9IHsgLi4udGhpcy5fYnV0dG9uT3B0aW9ucywgLi4udmFsdWUgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9idXR0b25PcHRpb25zPy5zaG93IHx8IHRoaXMuX2J1dHRvbk9wdGlvbnM/LnNob3dPbkZvY3VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzLnB1c2goJ3dpdGgtYnV0dG9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2J1dHRvbk9wdGlvbnMuc2hvd09uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuRnVuYyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9idXR0b25PcHRpb25zLmZvY3VzU2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5nbG9iYWxMaXN0ZW5GdW5jID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQucGFyZW50Tm9kZSAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2J1dHRvbk9wdGlvbnMuY2hlY2tGb2N1c091dChldmVudC50YXJnZXQsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkJ1dHRvbkNsaWNrZWQoZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdHlwZSA9ICdzdHJpbmcnO1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzZXQgY2xlYXJhYmxlKHZhbCkge1xuICAgICAgICB0aGlzLl9jbGVhcmFibGUgPSAhIXZhbDtcbiAgICAgICAgaWYgKHRoaXMuX2NsZWFyYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzLnB1c2goJ2NsZWFyYWJsZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzID0gdGhpcy5fZWxlbWVudENsYXNzLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09ICdjbGVhcmFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBtaW46IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKSBtYXg6IG51bWJlciB8IHN0cmluZztcbiAgICBASW5wdXQoKSBtaW5MZW5ndGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtYXhsZW5ndGg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBzdGVwO1xuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBuZ01vZGVsRGVib3VuY2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgZWxlbWVudENsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50Q2xhc3Muam9pbignICcpO1xuICAgIH1cblxuICAgIGlubmVyVmFsdWUgPSBudWxsO1xuICAgIF9kaXNhYmxlZCA9IG51bGw7XG4gICAgX2VsZW1lbnRDbGFzczogc3RyaW5nW10gPSBbXTtcbiAgICBfYnV0dG9uT3B0aW9ucyA9IHtcbiAgICAgICAgc2hvdzogZmFsc2UsXG4gICAgICAgIHNob3dPbkZvY3VzOiBmYWxzZSxcbiAgICAgICAgZm9jdXNTZXQ6IGZhbHNlLFxuICAgICAgICBjaGVja0ZvY3VzT3V0OiAodGFyZ2V0OiBhbnksIGVsZW1lbnQ6IGFueSkgPT4gdHJ1ZSxcbiAgICAgICAgdGV4dDogJ1NhdmUnXG4gICAgfTtcbiAgICBsaXN0ZW5GdW5jOiAoLi4ucGFyYW1zKSA9PiBhbnk7XG4gICAgZ2xvYmFsTGlzdGVuRnVuYzogKC4uLnBhcmFtcykgPT4gYW55O1xuXG5cbiAgICBAT3V0cHV0KCkgc2VhcmNoSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBjbGVhckhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgYnV0dG9uSGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBwcml2YXRlIHJlYWRvbmx5IGlucHV0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgICBAQ29udGVudENoaWxkKCdwcmVmaXgnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJlZml4SWNvbjogRWxlbWVudFJlZjtcbiAgICBAQ29udGVudENoaWxkKCdzdWZmaXgnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3VmZml4SWNvbjogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0QmluZGluZygndGFiaW5kZXgnKSB0YWJpbmRleCA9IC0xO1xuICAgIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkID0gbm9vcDtcbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgfTtcbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgfTtcblxuICAgIHNldCh2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MgPSB2YWwuc3BsaXQoJyAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdGhpcy50eXBlID09PSAnbnVtYmVyJyA/ICt2IDogdjtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsZWFyYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudENsYXNzLnB1c2goJ2NsZWFyYWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnByZWZpeEljb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCd3aXRoLXByZWZpeCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN1ZmZpeEljb24pIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcy5wdXNoKCd3aXRoLXN1ZmZpeCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdzZWFyY2gnKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnc2VhcmNoLXR5cGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50Q2xhc3MucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRDbGFzcyA9IHRoaXMuX2VsZW1lbnRDbGFzcy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSAnZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uU2VhcmNoQ2xpY2tlZCgkZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnNlYXJjaEhhbmRsZXIuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIG9uQnV0dG9uQ2xpY2tlZCgkZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmJ1dHRvbkhhbmRsZXIuZW1pdCgkZXZlbnQpO1xuICAgICAgICB0aGlzLl9idXR0b25PcHRpb25zLmZvY3VzU2V0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5saXN0ZW5GdW5jKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3RlbkZ1bmMoKTtcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsTGlzdGVuRnVuYygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbGVhcigkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbGVhckhhbmRsZXIuZW1pdCgkZXZlbnQpO1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { NgSelectModule } from '@ng-select/ng-select';
|
|
5
|
+
import { DrInputComponent } from './dr-input/dr-input.component';
|
|
6
|
+
import { DrSelectComponent } from './dr-select/dr-select.component';
|
|
7
|
+
import { CheckboxComponent } from './checkbox/checkbox.component';
|
|
8
|
+
import { RadioButtonComponent } from './radio-button/radio-button.component';
|
|
9
|
+
import { RadioGroupComponent } from './radio-button/radio-group.component';
|
|
10
|
+
import { DrToggleComponent } from './dr-toggle/dr-toggle.component';
|
|
11
|
+
import { DrButtonComponent } from './button/button.component';
|
|
12
|
+
import { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';
|
|
13
|
+
import { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';
|
|
14
|
+
import { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';
|
|
15
|
+
import { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';
|
|
16
|
+
import { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';
|
|
17
|
+
import { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';
|
|
18
|
+
import { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';
|
|
19
|
+
import { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';
|
|
20
|
+
import { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';
|
|
21
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
22
|
+
import { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';
|
|
23
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
|
24
|
+
// !!! Please do not use such approach in other places
|
|
25
|
+
// Hard fix for 'none' calendar view selection
|
|
26
|
+
MatCalendar.prototype.focusActiveCell = function () {
|
|
27
|
+
var _a;
|
|
28
|
+
(_a = this._getCurrentViewComponent()) === null || _a === void 0 ? void 0 : _a._focusActiveCell(false);
|
|
29
|
+
};
|
|
30
|
+
const components = [
|
|
31
|
+
DrButtonComponent,
|
|
32
|
+
RadioButtonComponent,
|
|
33
|
+
RadioGroupComponent,
|
|
34
|
+
CheckboxComponent,
|
|
35
|
+
DrInputComponent,
|
|
36
|
+
DrSelectComponent,
|
|
37
|
+
DrToggleComponent,
|
|
38
|
+
DrToggleButtonComponent,
|
|
39
|
+
DrDatePickerComponent,
|
|
40
|
+
DrDatePickerWithTimeframeComponent,
|
|
41
|
+
DrDatePickerFormatDirective,
|
|
42
|
+
DrDatePickerCustomHeaderComponent,
|
|
43
|
+
DrModelDebounceChangeDirective,
|
|
44
|
+
DrShowTimeframePipe,
|
|
45
|
+
DrSelectAddItemComponent
|
|
46
|
+
];
|
|
47
|
+
export class DrInputsModule {
|
|
48
|
+
}
|
|
49
|
+
DrInputsModule.decorators = [
|
|
50
|
+
{ type: NgModule, args: [{
|
|
51
|
+
declarations: components,
|
|
52
|
+
exports: components,
|
|
53
|
+
imports: [
|
|
54
|
+
FormsModule,
|
|
55
|
+
ReactiveFormsModule,
|
|
56
|
+
CommonModule,
|
|
57
|
+
NgSelectModule,
|
|
58
|
+
MatNativeDateModule,
|
|
59
|
+
MatDatepickerModule,
|
|
60
|
+
MatTooltipModule,
|
|
61
|
+
DrTooltipModule
|
|
62
|
+
],
|
|
63
|
+
entryComponents: [DrDatePickerCustomHeaderComponent]
|
|
64
|
+
},] }
|
|
65
|
+
];
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHNGQUFzRixDQUFDO0FBQzFJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxzREFBc0Q7QUFDdEQsOENBQThDO0FBQzlDLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHOztJQUNwQyxNQUFBLElBQUksQ0FBQyx3QkFBd0IsRUFBRSwwQ0FBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRztJQUNmLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIscUJBQXFCO0lBQ3JCLGtDQUFrQztJQUNsQywyQkFBMkI7SUFDM0IsaUNBQWlDO0lBQ2pDLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsd0JBQXdCO0NBQzNCLENBQUM7QUFrQkYsTUFBTSxPQUFPLGNBQWM7OztZQWhCMUIsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUN4QixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsT0FBTyxFQUFFO29CQUNMLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLGNBQWM7b0JBQ2QsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIsZUFBZTtpQkFDbEI7Z0JBQ0QsZUFBZSxFQUFFLENBQUMsaUNBQWlDLENBQUM7YUFDdkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcblxuaW1wb3J0IHsgRHJJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZHItaW5wdXQvZHItaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9kci1zZWxlY3QvZHItc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0dyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1idXR0b24vcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IERyVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9kci10b2dnbGUvZHItdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlcnMvZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyRGF0ZVBpY2tlcldpdGhUaW1lZnJhbWVDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyRm9ybWF0RGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRlLXBpY2tlcnMvZGlyZWN0aXZlcy9kci1kYXRlLXBpY2tlci1mb3JtYXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyVG9nZ2xlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kci10b2dnbGUtYnV0dG9uL2RyLXRvZ2dsZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERyTW9kZWxEZWJvdW5jZUNoYW5nZURpcmVjdGl2ZSB9IGZyb20gJy4vZHItbW9kZWwtZGVib3VuY2UtY2hhbmdlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyU2hvd1RpbWVmcmFtZVBpcGUgfSBmcm9tICcuL2RhdGUtcGlja2Vycy9kci1zaG93LXRpbWVmcmFtZS5waXBlJztcbmltcG9ydCB7IERyU2VsZWN0QWRkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZHItc2VsZWN0LWFkZC1pdGVtL2RyLXNlbGVjdC1hZGQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRHJUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vZHItdG9vbHRpcC9kci10b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5cbi8vICEhISBQbGVhc2UgZG8gbm90IHVzZSBzdWNoIGFwcHJvYWNoIGluIG90aGVyIHBsYWNlc1xuLy8gSGFyZCBmaXggZm9yICdub25lJyBjYWxlbmRhciB2aWV3IHNlbGVjdGlvblxuTWF0Q2FsZW5kYXIucHJvdG90eXBlLmZvY3VzQWN0aXZlQ2VsbCA9IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMuX2dldEN1cnJlbnRWaWV3Q29tcG9uZW50KCk/Ll9mb2N1c0FjdGl2ZUNlbGwoZmFsc2UpO1xufTtcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBEckJ1dHRvbkNvbXBvbmVudCxcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgICBSYWRpb0dyb3VwQ29tcG9uZW50LFxuICAgIENoZWNrYm94Q29tcG9uZW50LFxuICAgIERySW5wdXRDb21wb25lbnQsXG4gICAgRHJTZWxlY3RDb21wb25lbnQsXG4gICAgRHJUb2dnbGVDb21wb25lbnQsXG4gICAgRHJUb2dnbGVCdXR0b25Db21wb25lbnQsXG4gICAgRHJEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgIERyRGF0ZVBpY2tlcldpdGhUaW1lZnJhbWVDb21wb25lbnQsXG4gICAgRHJEYXRlUGlja2VyRm9ybWF0RGlyZWN0aXZlLFxuICAgIERyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudCxcbiAgICBEck1vZGVsRGVib3VuY2VDaGFuZ2VEaXJlY3RpdmUsXG4gICAgRHJTaG93VGltZWZyYW1lUGlwZSxcbiAgICBEclNlbGVjdEFkZEl0ZW1Db21wb25lbnRcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBjb21wb25lbnRzLFxuICAgIGV4cG9ydHM6IGNvbXBvbmVudHMsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICAgICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgRHJUb29sdGlwTW9kdWxlXG4gICAgXSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnRdXG59KVxuXG5leHBvcnQgY2xhc3MgRHJJbnB1dHNNb2R1bGUge1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';
|
|
3
|
+
import { NgModel } from '@angular/forms';
|
|
4
|
+
export class DrModelDebounceChangeDirective {
|
|
5
|
+
constructor(ngModel) {
|
|
6
|
+
this.ngModel = ngModel;
|
|
7
|
+
this.debounce = 200;
|
|
8
|
+
this.ngModelDebounceChange = new EventEmitter();
|
|
9
|
+
}
|
|
10
|
+
ngOnInit() {
|
|
11
|
+
this.subscription = this.ngModel.control.valueChanges.pipe(skip(1), debounceTime(this.debounce), distinctUntilChanged()).subscribe(value => this.ngModelDebounceChange.emit(value));
|
|
12
|
+
}
|
|
13
|
+
ngOnDestroy() {
|
|
14
|
+
this.subscription.unsubscribe();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
DrModelDebounceChangeDirective.decorators = [
|
|
18
|
+
{ type: Directive, args: [{
|
|
19
|
+
selector: '[ngModelDebounceChange]'
|
|
20
|
+
},] }
|
|
21
|
+
];
|
|
22
|
+
DrModelDebounceChangeDirective.ctorParameters = () => [
|
|
23
|
+
{ type: NgModel }
|
|
24
|
+
];
|
|
25
|
+
DrModelDebounceChangeDirective.propDecorators = {
|
|
26
|
+
debounce: [{ type: Input }],
|
|
27
|
+
ngModelDebounceChange: [{ type: Output }]
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItbW9kZWwtZGVib3VuY2UtY2hhbmdlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kci1tb2RlbC1kZWJvdW5jZS1jaGFuZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3pDLE1BQU0sT0FBTyw4QkFBOEI7SUFNdkMsWUFBb0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUgzQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ2QsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUcxRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQzNCLG9CQUFvQixFQUFFLENBQ3pCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUF0QkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5QkFBeUI7YUFDdEM7OztZQUpRLE9BQU87Ozt1QkFRWCxLQUFLO29DQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25nTW9kZWxEZWJvdW5jZUNoYW5nZV0nXG59KVxuZXhwb3J0IGNsYXNzIERyTW9kZWxEZWJvdW5jZUNoYW5nZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgQElucHV0KCkgZGVib3VuY2UgPSAyMDA7XG4gICAgQE91dHB1dCgpIG5nTW9kZWxEZWJvdW5jZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ01vZGVsOiBOZ01vZGVsKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5uZ01vZGVsLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBza2lwKDEpLFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpLFxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLm5nTW9kZWxEZWJvdW5jZUNoYW5nZS5lbWl0KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIl19
|