@datarailsshared/datarailsshared 1.4.569 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/_storybook-styles.scss +37 -0
- package/assets/styles/_styles.scss +9 -2
- package/assets/styles/colors.scss +88 -74
- package/assets/styles/dataRailsFont.scss +1 -1
- package/assets/styles/dialog.scss +22 -0
- package/assets/styles/icons.scss +1 -1
- package/assets/styles/mixins.scss +106 -6
- package/assets/styles/vars.scss +6 -4
- package/datarailsshared-datarailsshared-1.5.1.tgz +0 -0
- package/esm2022/datarailsshared-datarailsshared.mjs +5 -0
- package/esm2022/lib/date-tags/any-tag.component.mjs +42 -0
- package/esm2022/lib/date-tags/date-tag.component.mjs +126 -0
- package/esm2022/lib/date-tags/date-tag.module.mjs +53 -0
- package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +95 -0
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +222 -0
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +87 -0
- package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +98 -0
- package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +126 -0
- package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +102 -0
- package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +96 -0
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +92 -0
- package/esm2022/lib/directives/click-outside/click-outside.module.mjs +19 -0
- package/esm2022/lib/directives/dr-shine-animation/dr-shine-animation.directive.mjs +63 -0
- package/esm2022/lib/directives/let/let.directive.mjs +35 -0
- package/esm2022/lib/directives/ng-track-by-property/ng-track-by-property.directive.mjs +23 -0
- package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +61 -0
- package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +154 -0
- package/esm2022/lib/dr-accordion/accordion-item.component.mjs +143 -0
- package/esm2022/lib/dr-accordion/accordion.component.mjs +55 -0
- package/esm2022/lib/dr-accordion/accordion.module.mjs +35 -0
- package/esm2022/lib/dr-alert/dr-alert.component.mjs +64 -0
- package/esm2022/lib/dr-alert/dr-alert.module.mjs +20 -0
- package/{esm2015/lib/dr-alert/enums/dr-alert-theme.enum.js → esm2022/lib/dr-alert/enums/dr-alert-theme.enum.mjs} +1 -2
- package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +142 -0
- package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +21 -0
- package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +20 -0
- package/esm2022/lib/dr-avatar/services/dr-avatar.service.mjs +17 -0
- package/esm2022/lib/dr-avatar/types.mjs +2 -0
- package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +53 -0
- package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +21 -0
- package/esm2022/lib/dr-chat/chat.component.mjs +202 -0
- package/esm2022/lib/dr-chat/chat.module.mjs +81 -0
- package/esm2022/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.mjs +31 -0
- package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +273 -0
- package/esm2022/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.mjs +380 -0
- package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +185 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +47 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +26 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +78 -0
- package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +30 -0
- package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +187 -0
- package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +14 -0
- package/esm2022/lib/dr-chip/dr-chip.component.mjs +58 -0
- package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +19 -0
- package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +204 -0
- package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +326 -0
- package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +29 -0
- package/esm2022/lib/dr-code-editor/models/code-editor-hint.mjs +6 -0
- package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +106 -0
- package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +20 -0
- package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +339 -0
- package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +238 -0
- package/esm2022/lib/dr-dialog/dialog.module.mjs +27 -0
- package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +27 -0
- package/esm2022/lib/dr-dialog/services/dialog.service.mjs +77 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +29 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +16 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +248 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +142 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +41 -0
- package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +62 -0
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +203 -0
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +21 -0
- package/esm2022/lib/dr-error/dr-error.component.mjs +90 -0
- package/esm2022/lib/dr-error/dr-error.module.mjs +22 -0
- package/esm2022/lib/dr-inputs/button/button.component.mjs +101 -0
- package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +110 -0
- package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +55 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +400 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.mjs +157 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +269 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +326 -0
- package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +16 -0
- package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +224 -0
- package/esm2022/lib/dr-inputs/date-pickers/services/week-selection-strategy.mjs +34 -0
- package/esm2022/lib/dr-inputs/date-pickers/week-selector/week-selector.component.mjs +91 -0
- package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +336 -0
- package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +128 -0
- package/esm2022/lib/dr-inputs/dr-link/dr-link.component.mjs +43 -0
- package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +37 -0
- package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +391 -0
- package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +138 -0
- package/esm2022/lib/dr-inputs/dr-slider/dr-slider.component.mjs +53 -0
- package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +108 -0
- package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +108 -0
- package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +88 -0
- package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +185 -0
- package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +19 -0
- package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +25 -0
- package/esm2022/lib/dr-layout/dr-layout.component.mjs +21 -0
- package/esm2022/lib/dr-layout/dr-layout.module.mjs +22 -0
- package/esm2022/lib/dr-popover/dr-popover-ref.mjs +23 -0
- package/esm2022/lib/dr-popover/dr-popover.component.mjs +155 -0
- package/esm2022/lib/dr-popover/dr-popover.directive.mjs +137 -0
- package/esm2022/lib/dr-popover/dr-popover.module.mjs +20 -0
- package/esm2022/lib/dr-popover/dr-popover.service.mjs +117 -0
- package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +104 -0
- package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +100 -0
- package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +87 -0
- package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +27 -0
- package/esm2022/lib/dr-scenario/services/scenario.service.mjs +195 -0
- package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +27 -0
- package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +66 -0
- package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +22 -0
- package/esm2022/lib/dr-tabs/dr-tab.component.mjs +47 -0
- package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +252 -0
- package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +25 -0
- package/esm2022/lib/dr-tags/dr-tag.component.mjs +235 -0
- package/esm2022/lib/dr-tags/dr-tag.module.mjs +23 -0
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +161 -0
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +24 -0
- package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +71 -0
- package/esm2022/lib/dr-toastr/default-toastr/default-toastr.component.mjs +73 -0
- package/esm2022/lib/dr-toastr/dr-toastr.module.mjs +31 -0
- package/esm2022/lib/dr-toastr/dr-toastr.service.mjs +44 -0
- package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +31 -0
- package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +82 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +86 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +194 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +24 -0
- package/esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs +14 -0
- package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +407 -0
- package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +97 -0
- package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +31 -0
- package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +108 -0
- package/esm2022/lib/dr-treeview/helpers/treeview-helper.mjs +82 -0
- package/esm2022/lib/dr-treeview/models/treeview-config.mjs +25 -0
- package/{esm2015/lib/dr-treeview/models/treeview-header-template-context.js → esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs} +1 -1
- package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +47 -0
- package/{esm2015/lib/dr-treeview/models/treeview-item-template-context.js → esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs} +1 -1
- package/esm2022/lib/dr-treeview/models/treeview-item.mjs +155 -0
- package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +21 -0
- package/esm2022/lib/drawer/drawer-animation.mjs +18 -0
- package/esm2022/lib/drawer/drawer-config.mjs +35 -0
- package/esm2022/lib/drawer/drawer-container.component.mjs +179 -0
- package/esm2022/lib/drawer/drawer-position-strategy.mjs +14 -0
- package/esm2022/lib/drawer/drawer-ref.mjs +106 -0
- package/esm2022/lib/drawer/drawer.module.mjs +19 -0
- package/esm2022/lib/drawer/drawer.service.mjs +140 -0
- package/esm2022/lib/drawer/public-api.mjs +6 -0
- package/esm2022/lib/image-cropper/dr-image-cropper-canvas.service.mjs +78 -0
- package/esm2022/lib/image-cropper/dr-image-cropper.component.mjs +133 -0
- package/esm2022/lib/image-cropper/dr-image-cropper.types.mjs +6 -0
- package/esm2022/lib/list-tags/list-tag.component.mjs +82 -0
- package/esm2022/lib/list-tags/list-tag.module.mjs +22 -0
- package/esm2022/lib/models/chat.mjs +36 -0
- package/{esm2015/lib/models/constants.js → esm2022/lib/models/constants.mjs} +17 -22
- package/{esm2015/lib/models/datePicker.js → esm2022/lib/models/datePicker.mjs} +2 -2
- package/esm2022/lib/models/datePickerRange.mjs +2 -0
- package/esm2022/lib/models/dropdown.mjs +2 -0
- package/{esm2015/lib/models/feedback.js → esm2022/lib/models/feedback.mjs} +1 -2
- package/esm2022/lib/models/popover.mjs +27 -0
- package/{esm2015/lib/models/serverTags.js → esm2022/lib/models/serverTags.mjs} +1 -1
- package/esm2022/lib/models/spinnerOptions.mjs +2 -0
- package/esm2022/lib/models/toastr.mjs +14 -0
- package/esm2022/lib/pipes/filter/filter.pipe.mjs +48 -0
- package/esm2022/lib/pipes/img/img.pipe.mjs +19 -0
- package/esm2022/lib/stepper/stepper.component.mjs +270 -0
- package/esm2022/lib/stepper/stepper.module.mjs +20 -0
- package/esm2022/lib/utils/data-analytics.service.mjs +21 -0
- package/esm2022/lib/utils/decorators.mjs +12 -0
- package/esm2022/lib/utils/dr-shared-utils.mjs +85 -0
- package/esm2022/public-api.mjs +156 -0
- package/esm2022/src/lib/drawer/drDrawer.mjs +5 -0
- package/esm2022/src/lib/drawer/drawer-animation.mjs +18 -0
- package/esm2022/src/lib/drawer/drawer-config.mjs +35 -0
- package/esm2022/src/lib/drawer/drawer-container.component.mjs +179 -0
- package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +14 -0
- package/esm2022/src/lib/drawer/drawer-ref.mjs +106 -0
- package/esm2022/src/lib/drawer/drawer.module.mjs +19 -0
- package/esm2022/src/lib/drawer/drawer.service.mjs +140 -0
- package/esm2022/src/lib/drawer/public-api.mjs +6 -0
- package/fesm2022/datarailsshared-datarailsshared.mjs +13716 -0
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -0
- package/fesm2022/drDrawer.mjs +496 -0
- package/fesm2022/drDrawer.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/date-tags/any-tag.component.d.ts +20 -0
- package/lib/date-tags/date-tag.component.d.ts +4 -16
- package/lib/date-tags/date-tag.module.d.ts +19 -2
- package/lib/date-tags/day-tag/day-tag.component.d.ts +4 -1
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +4 -1
- package/lib/date-tags/forecast-tag/forecast-tag.service.d.ts +11 -8
- package/lib/date-tags/month-tag/month-tag.component.d.ts +4 -1
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +4 -1
- package/lib/date-tags/week-tag/week-tag.component.d.ts +4 -1
- package/lib/date-tags/year-tag/year-tag.component.d.ts +4 -1
- package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
- package/lib/directives/click-outside/click-outside.module.d.ts +8 -0
- package/lib/directives/dr-shine-animation/dr-shine-animation.directive.d.ts +18 -0
- package/lib/directives/let/let.directive.d.ts +19 -0
- package/lib/directives/ng-track-by-property/ng-track-by-property.directive.d.ts +8 -0
- package/lib/dr-accordion/accordion-item-body.component.d.ts +3 -0
- package/lib/dr-accordion/accordion-item-header.component.d.ts +14 -1
- package/lib/dr-accordion/accordion-item.component.d.ts +4 -1
- package/lib/dr-accordion/accordion.component.d.ts +5 -0
- package/lib/dr-accordion/accordion.module.d.ts +9 -0
- package/lib/dr-alert/dr-alert.component.d.ts +3 -0
- package/lib/dr-alert/dr-alert.module.d.ts +6 -0
- package/lib/dr-avatar/dr-avatar.component.d.ts +15 -13
- package/lib/dr-avatar/dr-avatar.module.d.ts +8 -0
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +5 -1
- package/lib/dr-avatar/services/dr-avatar.service.d.ts +1 -1
- package/lib/dr-avatar/types.d.ts +8 -0
- package/lib/dr-badge-status/dr-badge-status.component.d.ts +5 -4
- package/lib/dr-badge-status/dr-badge-status.module.d.ts +7 -0
- package/lib/dr-chat/chat.component.d.ts +6 -7
- package/lib/dr-chat/chat.module.d.ts +20 -0
- package/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.d.ts +8 -0
- package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +11 -1
- package/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.d.ts +81 -0
- package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +4 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +3 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +3 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +3 -0
- package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +3 -0
- package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +15 -2
- package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +3 -0
- package/lib/dr-chip/dr-chip.component.d.ts +10 -0
- package/lib/dr-code-editor/components/code-editor-hint-wrapper.component.d.ts +7 -0
- package/lib/dr-code-editor/components/dr-codemirror.component.d.ts +47 -0
- package/lib/dr-code-editor/dr-code-editor.component.d.ts +45 -0
- package/lib/dr-code-editor/dr-code-editor.module.d.ts +17 -0
- package/lib/dr-code-editor/models/code-editor-hint.d.ts +14 -0
- package/lib/dr-details-list/dr-details-list.component.d.ts +3 -0
- package/lib/dr-details-list/dr-details-list.module.d.ts +6 -0
- package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +6 -5
- package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +6 -5
- package/lib/dr-dialog/dialog.module.d.ts +12 -0
- package/lib/dr-dialog/interfaces/dialog-data.d.ts +13 -9
- package/lib/dr-dialog/services/dialog.service.d.ts +10 -3
- package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +8 -0
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +3 -0
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +28 -21
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +21 -14
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +11 -0
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +26 -8
- package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +3 -0
- package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +8 -0
- package/lib/dr-error/dr-error.component.d.ts +12 -8
- package/lib/dr-error/dr-error.module.d.ts +8 -0
- package/lib/dr-inputs/button/button.component.d.ts +6 -8
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +10 -2
- package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +3 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +29 -9
- package/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.d.ts +40 -0
- package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +18 -11
- package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +11 -10
- package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +4 -2
- package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +22 -5
- package/lib/dr-inputs/date-pickers/services/week-selection-strategy.d.ts +12 -0
- package/lib/dr-inputs/date-pickers/week-selector/week-selector.component.d.ts +23 -0
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +35 -20
- package/lib/dr-inputs/dr-inputs.module.d.ts +30 -0
- package/lib/dr-inputs/dr-link/dr-link.component.d.ts +16 -0
- package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +4 -0
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +20 -3
- package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +4 -0
- package/lib/dr-inputs/dr-slider/dr-slider.component.d.ts +18 -0
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +3 -0
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +6 -1
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout-body.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout-header.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout.component.d.ts +3 -0
- package/lib/dr-layout/dr-layout.module.d.ts +8 -0
- package/lib/dr-popover/dr-popover-ref.d.ts +1 -0
- package/lib/dr-popover/dr-popover.component.d.ts +8 -4
- package/lib/dr-popover/dr-popover.directive.d.ts +9 -5
- package/lib/dr-popover/dr-popover.module.d.ts +7 -0
- package/lib/dr-popover/dr-popover.service.d.ts +5 -1
- package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +3 -4
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +3 -0
- package/lib/dr-scenario/dr-scenario.module.d.ts +11 -0
- package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
- package/lib/dr-scenario/services/scenario.service.d.ts +3 -0
- package/lib/dr-spinner/dr-spinner.component.d.ts +3 -0
- package/lib/dr-spinner/dr-spinner.directive.d.ts +4 -2
- package/lib/dr-spinner/dr-spinner.module.d.ts +7 -0
- package/lib/dr-tabs/dr-tab.component.d.ts +5 -0
- package/lib/dr-tabs/dr-tabs.component.d.ts +21 -4
- package/lib/dr-tabs/dr-tabs.module.d.ts +11 -0
- package/lib/dr-tags/dr-tag.component.d.ts +3 -0
- package/lib/dr-tags/dr-tag.module.d.ts +9 -0
- package/lib/dr-tags-constructor/dr-tags-constructor.component.d.ts +33 -0
- package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +10 -0
- package/lib/dr-tags-constructor/tags-constructor.service.d.ts +12 -0
- package/lib/dr-toastr/default-toastr/default-toastr.component.d.ts +15 -0
- package/lib/dr-toastr/dr-toastr.module.d.ts +9 -0
- package/lib/dr-toastr/dr-toastr.service.d.ts +14 -0
- package/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.d.ts +9 -0
- package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +3 -1
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -1
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +7 -0
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +9 -0
- package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +18 -2
- package/lib/dr-treeview/components/treeview/treeview.component.d.ts +3 -0
- package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +3 -0
- package/lib/dr-treeview/dr-tree-view.module.d.ts +9 -0
- package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +9 -0
- package/lib/dr-treeview/models/treeview-config.d.ts +3 -0
- package/lib/dr-treeview/models/treeview-i18n.d.ts +5 -0
- package/lib/dr-treeview/models/treeview-item.d.ts +2 -1
- package/lib/dr-treeview/pipes/treeview.pipe.d.ts +3 -0
- package/lib/drawer/drawer-animation.d.ts +5 -0
- package/lib/drawer/drawer-config.d.ts +68 -0
- package/lib/drawer/drawer-container.component.d.ts +45 -0
- package/lib/drawer/drawer-position-strategy.d.ts +10 -0
- package/lib/drawer/drawer-ref.d.ts +55 -0
- package/lib/drawer/drawer.module.d.ts +7 -0
- package/lib/drawer/drawer.service.d.ts +62 -0
- package/lib/drawer/public-api.d.ts +5 -0
- package/lib/image-cropper/dr-image-cropper-canvas.service.d.ts +20 -0
- package/lib/image-cropper/dr-image-cropper.component.d.ts +28 -0
- package/lib/image-cropper/dr-image-cropper.types.d.ts +9 -0
- package/lib/list-tags/list-tag.component.d.ts +3 -0
- package/lib/list-tags/list-tag.module.d.ts +8 -0
- package/lib/models/chat.d.ts +3 -3
- package/lib/models/datePicker.d.ts +10 -3
- package/lib/models/datePickerRange.d.ts +4 -0
- package/lib/models/dropdown.d.ts +15 -21
- package/lib/models/popover.d.ts +7 -4
- package/lib/models/serverTags.d.ts +4 -4
- package/lib/models/spinnerOptions.d.ts +2 -10
- package/lib/models/toastr.d.ts +18 -0
- package/lib/pipes/filter/filter.pipe.d.ts +7 -0
- package/lib/pipes/img/img.pipe.d.ts +7 -0
- package/lib/stepper/interfaces/stepper.d.ts +1 -1
- package/lib/stepper/stepper.component.d.ts +13 -8
- package/lib/stepper/stepper.module.d.ts +7 -0
- package/lib/utils/data-analytics.service.d.ts +8 -0
- package/lib/utils/decorators.d.ts +1 -0
- package/lib/utils/dr-shared-utils.d.ts +9 -0
- package/package.json +41 -15
- package/public-api.d.ts +59 -6
- package/src/lib/drawer/drawer-animation.d.ts +5 -0
- package/src/lib/drawer/drawer-config.d.ts +68 -0
- package/src/lib/drawer/drawer-container.component.d.ts +45 -0
- package/src/lib/drawer/drawer-position-strategy.d.ts +10 -0
- package/src/lib/drawer/drawer-ref.d.ts +55 -0
- package/src/lib/drawer/drawer.module.d.ts +7 -0
- package/src/lib/drawer/drawer.service.d.ts +62 -0
- package/src/lib/drawer/index.d.ts +5 -0
- package/src/lib/drawer/public-api.d.ts +5 -0
- package/styles.css +749 -0
- package/_datarailsshared.styles.css +0 -4
- package/assets/styles/img/dr-icon-info.svg +0 -4
- package/bundles/datarailsshared-datarailsshared.umd.js +0 -8372
- package/bundles/datarailsshared-datarailsshared.umd.js.map +0 -1
- package/datarailsshared-datarailsshared-1.4.569.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +0 -34
- package/datarailsshared-datarailsshared.metadata.json +0 -1
- package/esm2015/datarailsshared-datarailsshared.js +0 -35
- package/esm2015/lib/date-tags/date-tag.component.js +0 -74
- package/esm2015/lib/date-tags/date-tag.module.js +0 -36
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +0 -77
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +0 -164
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.service.js +0 -83
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +0 -80
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +0 -114
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +0 -84
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +0 -78
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +0 -55
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +0 -77
- package/esm2015/lib/dr-accordion/accordion-item.component.js +0 -123
- package/esm2015/lib/dr-accordion/accordion.component.js +0 -43
- package/esm2015/lib/dr-accordion/accordion.module.js +0 -23
- package/esm2015/lib/dr-alert/dr-alert.component.js +0 -35
- package/esm2015/lib/dr-alert/dr-alert.module.js +0 -18
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +0 -54
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +0 -26
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +0 -16
- package/esm2015/lib/dr-avatar/services/dr-avatar.service.js +0 -17
- package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +0 -25
- package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +0 -20
- package/esm2015/lib/dr-chat/chat.component.js +0 -119
- package/esm2015/lib/dr-chat/chat.module.js +0 -41
- package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +0 -155
- package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +0 -71
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js +0 -49
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +0 -23
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +0 -47
- package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +0 -18
- package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +0 -87
- package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +0 -15
- package/esm2015/lib/dr-details-list/dr-details-list.component.js +0 -65
- package/esm2015/lib/dr-details-list/dr-details-list.module.js +0 -16
- package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +0 -84
- package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +0 -92
- package/esm2015/lib/dr-dialog/dialog.module.js +0 -34
- package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +0 -25
- package/esm2015/lib/dr-dialog/services/dialog.service.js +0 -78
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +0 -12
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +0 -104
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +0 -114
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +0 -104
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +0 -34
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +0 -24
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +0 -120
- package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +0 -19
- package/esm2015/lib/dr-error/dr-error.component.js +0 -56
- package/esm2015/lib/dr-error/dr-error.module.js +0 -22
- package/esm2015/lib/dr-inputs/button/button.component.js +0 -39
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +0 -66
- package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +0 -47
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +0 -234
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +0 -182
- package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -183
- package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +0 -12
- package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +0 -194
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +0 -194
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +0 -68
- package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +0 -29
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +0 -123
- package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +0 -74
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +0 -68
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +0 -67
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +0 -73
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +0 -157
- package/esm2015/lib/dr-layout/dr-layout-body.component.js +0 -13
- package/esm2015/lib/dr-layout/dr-layout-header.component.js +0 -17
- package/esm2015/lib/dr-layout/dr-layout.component.js +0 -14
- package/esm2015/lib/dr-layout/dr-layout.module.js +0 -20
- package/esm2015/lib/dr-popover/dr-popover-ref.js +0 -20
- package/esm2015/lib/dr-popover/dr-popover.component.js +0 -106
- package/esm2015/lib/dr-popover/dr-popover.directive.js +0 -84
- package/esm2015/lib/dr-popover/dr-popover.module.js +0 -23
- package/esm2015/lib/dr-popover/dr-popover.service.js +0 -106
- package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +0 -104
- package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +0 -75
- package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +0 -79
- package/esm2015/lib/dr-scenario/dr-scenario.module.js +0 -28
- package/esm2015/lib/dr-scenario/services/scenario.service.js +0 -196
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +0 -18
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +0 -58
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +0 -18
- package/esm2015/lib/dr-tabs/dr-tab.component.js +0 -26
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +0 -35
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +0 -32
- package/esm2015/lib/dr-tags/dr-tag.component.js +0 -183
- package/esm2015/lib/dr-tags/dr-tag.module.js +0 -24
- package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +0 -19
- package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +0 -18
- package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +0 -20
- package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +0 -34
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +0 -41
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +0 -151
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +0 -38
- package/esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js +0 -2
- package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +0 -210
- package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +0 -58
- package/esm2015/lib/dr-treeview/dr-tree-view.module.js +0 -38
- package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +0 -97
- package/esm2015/lib/dr-treeview/helpers/treeview-helper.js +0 -82
- package/esm2015/lib/dr-treeview/models/treeview-config.js +0 -22
- package/esm2015/lib/dr-treeview/models/treeview-i18n.js +0 -42
- package/esm2015/lib/dr-treeview/models/treeview-item.js +0 -155
- package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +0 -17
- package/esm2015/lib/list-tags/list-tag.component.js +0 -37
- package/esm2015/lib/list-tags/list-tag.module.js +0 -23
- package/esm2015/lib/models/chat.js +0 -38
- package/esm2015/lib/models/dropdown.js +0 -2
- package/esm2015/lib/models/popover.js +0 -27
- package/esm2015/lib/models/spinnerOptions.js +0 -13
- package/esm2015/lib/stepper/stepper.component.js +0 -55
- package/esm2015/lib/stepper/stepper.module.js +0 -17
- package/esm2015/lib/utils/dr-shared-utils.js +0 -47
- package/esm2015/public-api.js +0 -101
- package/fesm2015/datarailsshared-datarailsshared.js +0 -7194
- package/fesm2015/datarailsshared-datarailsshared.js.map +0 -1
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -12
- package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -5
- package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -6
- package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -4
- /package/{esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js → esm2022/lib/dr-inputs/dr-toggle-button/toggle-button-mode.mjs} +0 -0
- /package/{esm2015/lib/dr-scenario/interfaces/scenario.js → esm2022/lib/dr-scenario/interfaces/scenario.mjs} +0 -0
- /package/{esm2015/lib/dr-tags/dr-tag.types.js → esm2022/lib/dr-tags/dr-tag.types.mjs} +0 -0
- /package/{esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs} +0 -0
- /package/{esm2015/lib/dr-tooltip/enums/tooltip-theme.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-theme.enum.mjs} +0 -0
- /package/{esm2015/lib/models/badgeStatus.js → esm2022/lib/models/badgeStatus.mjs} +0 -0
- /package/{esm2015/lib/models/validationError.js → esm2022/lib/models/validationError.mjs} +0 -0
- /package/{esm2015/lib/stepper/interfaces/stepper.js → esm2022/lib/stepper/interfaces/stepper.mjs} +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { TagsConfigSubType } from '../../models/serverTags';
|
|
2
|
+
import { Scenario } from '../interfaces/scenario';
|
|
3
|
+
export const allDateTags = {
|
|
4
|
+
[TagsConfigSubType.YEAR]: {
|
|
5
|
+
name: 'Date',
|
|
6
|
+
toggle: false,
|
|
7
|
+
},
|
|
8
|
+
[TagsConfigSubType.QUARTER]: {
|
|
9
|
+
name: 'Date',
|
|
10
|
+
toggle: false,
|
|
11
|
+
},
|
|
12
|
+
[TagsConfigSubType.MONTH]: {
|
|
13
|
+
name: 'Date',
|
|
14
|
+
toggle: false,
|
|
15
|
+
},
|
|
16
|
+
[TagsConfigSubType.DAY]: {
|
|
17
|
+
name: 'Date',
|
|
18
|
+
toggle: false,
|
|
19
|
+
},
|
|
20
|
+
[TagsConfigSubType.WEEK]: {
|
|
21
|
+
name: 'Date',
|
|
22
|
+
toggle: false,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export function getScenarioTagDataConfig(isMultipleDimension, isForecastMultipleDimension) {
|
|
26
|
+
return {
|
|
27
|
+
[Scenario.ACTUALS]: {
|
|
28
|
+
...allDateTags,
|
|
29
|
+
[TagsConfigSubType.MONTH]: {
|
|
30
|
+
name: 'Date',
|
|
31
|
+
toggle: true,
|
|
32
|
+
},
|
|
33
|
+
[TagsConfigSubType.FILE_STATUS]: {
|
|
34
|
+
toggle: false,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
[Scenario.BUDGET]: {
|
|
38
|
+
[TagsConfigSubType.BUDGET_CYCLE]: {
|
|
39
|
+
toggle: true,
|
|
40
|
+
acceptableSubTags: [TagsConfigSubType.YEAR],
|
|
41
|
+
hidden: !isMultipleDimension,
|
|
42
|
+
},
|
|
43
|
+
[TagsConfigSubType.PLAN]: {
|
|
44
|
+
toggle: false,
|
|
45
|
+
turnOffDateTags: true,
|
|
46
|
+
hidden: isMultipleDimension,
|
|
47
|
+
},
|
|
48
|
+
[TagsConfigSubType.YEAR]: {
|
|
49
|
+
name: 'Date',
|
|
50
|
+
toggle: true,
|
|
51
|
+
},
|
|
52
|
+
[TagsConfigSubType.QUARTER]: {
|
|
53
|
+
name: 'Date',
|
|
54
|
+
toggle: false,
|
|
55
|
+
},
|
|
56
|
+
[TagsConfigSubType.FILE_STATUS]: {
|
|
57
|
+
toggle: false,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
[Scenario.FORECAST]: {
|
|
61
|
+
[TagsConfigSubType.FORECAST_NEW]: {
|
|
62
|
+
toggle: true,
|
|
63
|
+
name: isForecastMultipleDimension ? 'Scenario cycle' : 'Date',
|
|
64
|
+
},
|
|
65
|
+
[TagsConfigSubType.FORECAST_CYCLE]: {
|
|
66
|
+
toggle: true,
|
|
67
|
+
name: 'Planning scenario',
|
|
68
|
+
acceptableSubTags: [TagsConfigSubType.FORECAST_NEW],
|
|
69
|
+
hidden: !isForecastMultipleDimension,
|
|
70
|
+
},
|
|
71
|
+
[TagsConfigSubType.FILE_STATUS]: {
|
|
72
|
+
toggle: false,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
[Scenario.NONE]: {
|
|
76
|
+
...allDateTags,
|
|
77
|
+
[TagsConfigSubType.MONTH]: {
|
|
78
|
+
name: 'Date',
|
|
79
|
+
toggle: true,
|
|
80
|
+
},
|
|
81
|
+
[TagsConfigSubType.FILE_STATUS]: {
|
|
82
|
+
toggle: true,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8tdGFncy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb25zdHMvc2NlbmFyaW8tdGFncy1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBNEMsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN2QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNyQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxtQkFBNEIsRUFBRSwyQkFBb0M7SUFDdkcsT0FBTztRQUNILENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLEdBQUcsV0FBVztZQUNkLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2FBQ2Y7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDZixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM5QixNQUFNLEVBQUUsSUFBSTtnQkFDWixpQkFBaUIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDM0MsTUFBTSxFQUFFLENBQUMsbUJBQW1CO2FBQy9CO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLE1BQU0sRUFBRSxtQkFBbUI7YUFDOUI7WUFDRCxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0QixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsSUFBSTthQUNmO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLEtBQUs7YUFDaEI7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakIsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTTthQUNoRTtZQUNELENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sRUFBRSxJQUFJO2dCQUNaLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLGlCQUFpQixFQUFFLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDO2dCQUNuRCxNQUFNLEVBQUUsQ0FBQywyQkFBMkI7YUFDdkM7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDYixHQUFHLFdBQVc7WUFDZCxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsSUFBSTthQUNmO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDN0IsTUFBTSxFQUFFLElBQUk7YUFDZjtTQUNKO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWdzQ29uZmlnU3ViVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IFNjZW5hcmlvLCBUU2NlbmFyaW9UYWdDb25maWdEYXRhLCBUU2NlbmFyaW9UYWdEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zY2VuYXJpbyc7XG5cbmV4cG9ydCBjb25zdCBhbGxEYXRlVGFncyA9IHtcbiAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuWUVBUl06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLlFVQVJURVJdOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxuICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5NT05USF06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLkRBWV06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLldFRUtdOiB7XG4gICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICB9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyhpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuLCBpc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW4pOiBUU2NlbmFyaW9UYWdEYXRhPFRTY2VuYXJpb1RhZ0NvbmZpZ0RhdGE+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBbU2NlbmFyaW8uQUNUVUFMU106IHtcbiAgICAgICAgICAgIC4uLmFsbERhdGVUYWdzLFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLk1PTlRIXToge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZJTEVfU1RBVFVTXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2NlbmFyaW8uQlVER0VUXToge1xuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkJVREdFVF9DWUNMRV06IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgYWNjZXB0YWJsZVN1YlRhZ3M6IFtUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSXSxcbiAgICAgICAgICAgICAgICBoaWRkZW46ICFpc011bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5QTEFOXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHVybk9mZkRhdGVUYWdzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogaXNNdWx0aXBsZURpbWVuc2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuWUVBUl06IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5RVUFSVEVSXToge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NjZW5hcmlvLkZPUkVDQVNUXToge1xuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZPUkVDQVNUX05FV106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgbmFtZTogaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uID8gJ1NjZW5hcmlvIGN5Y2xlJyA6ICdEYXRlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfQ1lDTEVdOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdQbGFubmluZyBzY2VuYXJpbycsXG4gICAgICAgICAgICAgICAgYWNjZXB0YWJsZVN1YlRhZ3M6IFtUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVddLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogIWlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRklMRV9TVEFUVVNdOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtTY2VuYXJpby5OT05FXToge1xuICAgICAgICAgICAgLi4uYWxsRGF0ZVRhZ3MsXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuTU9OVEhdOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRklMRV9TVEFUVVNdOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ScenarioService } from './services/scenario.service';
|
|
4
|
+
import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
|
|
5
|
+
import { FormsModule } from '@angular/forms';
|
|
6
|
+
import { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';
|
|
7
|
+
import { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';
|
|
8
|
+
import { DrTagModule } from '../dr-tags/dr-tag.module';
|
|
9
|
+
import { DrTagsConstructorModule } from '../dr-tags-constructor/dr-tags-constructor.module';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
const COMPONENTS = [DrScenarioConfigurationComponent, DrScenarioTagConfigurationComponent];
|
|
12
|
+
export class DrScenarioModule {
|
|
13
|
+
/** @nocollapse */ static { this.ɵfac = function DrScenarioModule_Factory(t) { return new (t || DrScenarioModule)(); }; }
|
|
14
|
+
/** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrScenarioModule }); }
|
|
15
|
+
/** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [ScenarioService], imports: [CommonModule, DrInputsModule, FormsModule, DrTagModule, DrTagsConstructorModule] }); }
|
|
16
|
+
}
|
|
17
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrScenarioModule, [{
|
|
18
|
+
type: NgModule,
|
|
19
|
+
args: [{
|
|
20
|
+
declarations: [...COMPONENTS],
|
|
21
|
+
providers: [ScenarioService],
|
|
22
|
+
imports: [CommonModule, DrInputsModule, FormsModule, DrTagModule, DrTagsConstructorModule],
|
|
23
|
+
exports: [...COMPONENTS],
|
|
24
|
+
}]
|
|
25
|
+
}], null, null); })();
|
|
26
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrScenarioModule, { declarations: [DrScenarioConfigurationComponent, DrScenarioTagConfigurationComponent], imports: [CommonModule, DrInputsModule, FormsModule, DrTagModule, DrTagsConstructorModule], exports: [DrScenarioConfigurationComponent, DrScenarioTagConfigurationComponent] }); })();
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItc2NlbmFyaW8vZHItc2NlbmFyaW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFFNUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO0FBUTNGLE1BQU0sT0FBTyxnQkFBZ0I7b0dBQWhCLGdCQUFnQjtrR0FBaEIsZ0JBQWdCO3VHQUpkLENBQUMsZUFBZSxDQUFDLFlBQ2xCLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSx1QkFBdUI7O3VGQUdoRixnQkFBZ0I7Y0FONUIsUUFBUTtlQUFDO2dCQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUM3QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQztnQkFDMUYsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7YUFDM0I7O3dGQUNZLGdCQUFnQixtQkFSVCxnQ0FBZ0MsRUFBRSxtQ0FBbUMsYUFLM0UsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixhQUx6RSxnQ0FBZ0MsRUFBRSxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNjZW5hcmlvU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2NlbmFyaW8uc2VydmljZSc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJTY2VuYXJpb0NvbmZpZ3VyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEclNjZW5hcmlvVGFnQ29uZmlndXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJUYWdNb2R1bGUgfSBmcm9tICcuLi9kci10YWdzL2RyLXRhZy5tb2R1bGUnO1xuaW1wb3J0IHsgRHJUYWdzQ29uc3RydWN0b3JNb2R1bGUgfSBmcm9tICcuLi9kci10YWdzLWNvbnN0cnVjdG9yL2RyLXRhZ3MtY29uc3RydWN0b3IubW9kdWxlJztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtEclNjZW5hcmlvQ29uZmlndXJhdGlvbkNvbXBvbmVudCwgRHJTY2VuYXJpb1RhZ0NvbmZpZ3VyYXRpb25Db21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVFNdLFxuICAgIHByb3ZpZGVyczogW1NjZW5hcmlvU2VydmljZV0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJJbnB1dHNNb2R1bGUsIEZvcm1zTW9kdWxlLCBEclRhZ01vZHVsZSwgRHJUYWdzQ29uc3RydWN0b3JNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJTY2VuYXJpb01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TagsConfigSubType, TagTypes } from '../../models/serverTags';
|
|
3
|
+
import { Scenario } from '../interfaces/scenario';
|
|
4
|
+
import { cloneDeep as _cloneDeep, filter as _filter, find as _find, forEach as _forEach, orderBy as _orderBy, indexOf as _indexOf, reduce as _reduce, some as _some, map as _map, includes as _includes, } from 'lodash';
|
|
5
|
+
import { getScenarioTagDataConfig } from '../consts/scenario-tags-config';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class ScenarioService {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.DEFAULT_FORECAST_DATE_TAG = 'Month';
|
|
10
|
+
}
|
|
11
|
+
get scenarios() {
|
|
12
|
+
return _orderBy(Object.values(Scenario), (scenario) => (scenario === Scenario.NONE ? 1 : 0));
|
|
13
|
+
}
|
|
14
|
+
get areExistingTagsConfig() {
|
|
15
|
+
return !!this.currentTagsConfig;
|
|
16
|
+
}
|
|
17
|
+
initScenarioTags(wholeTagsConfig, currentTagsConfig, isMultipleDimension, isForecastMultipleDimension) {
|
|
18
|
+
if (!wholeTagsConfig?.length)
|
|
19
|
+
return;
|
|
20
|
+
this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);
|
|
21
|
+
this.currentTagsConfig = currentTagsConfig;
|
|
22
|
+
this.isMultipleDimension = isMultipleDimension;
|
|
23
|
+
this.isForecastMultipleDimension = isForecastMultipleDimension;
|
|
24
|
+
}
|
|
25
|
+
getTagsConfigByScenarioTags(scenarioTags, tagsConfig) {
|
|
26
|
+
const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) => _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));
|
|
27
|
+
return this.sortScenarioTags(scenarioTagsConfig);
|
|
28
|
+
}
|
|
29
|
+
getScenarioTagsByScenario(scenario) {
|
|
30
|
+
const scenarioTagsConfig = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);
|
|
31
|
+
const scenarioTagsUi = [];
|
|
32
|
+
_forEach(scenarioTagsConfig, (scenarioTag) => {
|
|
33
|
+
const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;
|
|
34
|
+
const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });
|
|
35
|
+
const tag = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);
|
|
36
|
+
if (isTagWithSubTags) {
|
|
37
|
+
this.updateScenarioSubTags(tag, scenarioTag);
|
|
38
|
+
tag.subTags = ScenarioService.sortedSubTags(tag);
|
|
39
|
+
}
|
|
40
|
+
if (tagWithSubTags)
|
|
41
|
+
return;
|
|
42
|
+
scenarioTagsUi.push(tag);
|
|
43
|
+
});
|
|
44
|
+
if (this.areExistingTagsConfig) {
|
|
45
|
+
this.initExistingTagsConfig(scenario, scenarioTagsUi);
|
|
46
|
+
}
|
|
47
|
+
const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });
|
|
48
|
+
if (isTagNotSupportingDates) {
|
|
49
|
+
this.turnOffDateTag(scenarioTagsUi);
|
|
50
|
+
}
|
|
51
|
+
const tagWithSpecificDateTags = _find(scenarioTagsUi, (tag) => tag.toggle && !!tag.acceptableSubTags?.length);
|
|
52
|
+
if (tagWithSpecificDateTags) {
|
|
53
|
+
this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);
|
|
54
|
+
}
|
|
55
|
+
return this.sortScenarioTags(scenarioTagsUi);
|
|
56
|
+
}
|
|
57
|
+
tagNotSupportingDatesHandler(tag, tagNotSupportingDates, dateTag) {
|
|
58
|
+
if (!tagNotSupportingDates || !tag.toggle)
|
|
59
|
+
return;
|
|
60
|
+
if (tag.type === TagTypes.DATE) {
|
|
61
|
+
tagNotSupportingDates.toggle = false;
|
|
62
|
+
}
|
|
63
|
+
if (tag === tagNotSupportingDates) {
|
|
64
|
+
if (dateTag) {
|
|
65
|
+
dateTag.toggle = false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
tagAcceptableSubTagsHandler(tag, dateTag) {
|
|
70
|
+
if (!tag.acceptableSubTags?.length)
|
|
71
|
+
return;
|
|
72
|
+
if (!dateTag)
|
|
73
|
+
return;
|
|
74
|
+
dateTag.subTags = _map(dateTag.subTags, (subTag) => {
|
|
75
|
+
subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);
|
|
76
|
+
return subTag;
|
|
77
|
+
});
|
|
78
|
+
dateTag.selectedTagSubType = tag.acceptableSubTags[0];
|
|
79
|
+
}
|
|
80
|
+
sortScenarioTags(scenarioTagsUi) {
|
|
81
|
+
return _orderBy(scenarioTagsUi, [(tag) => (tag.type === TagTypes.DATE ? 0 : 1), (tag) => tag.name === 'File Status']);
|
|
82
|
+
}
|
|
83
|
+
static sortedSubTags(tag) {
|
|
84
|
+
const SUB_TAGS_ORDER = [
|
|
85
|
+
TagsConfigSubType.DAY,
|
|
86
|
+
TagsConfigSubType.WEEK,
|
|
87
|
+
TagsConfigSubType.MONTH,
|
|
88
|
+
TagsConfigSubType.QUARTER,
|
|
89
|
+
TagsConfigSubType.YEAR,
|
|
90
|
+
];
|
|
91
|
+
return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));
|
|
92
|
+
}
|
|
93
|
+
initExistingTagsConfig(scenario, scenarioTagsUi) {
|
|
94
|
+
_forEach(this.currentTagsConfig, (tagConfig) => {
|
|
95
|
+
const tagSubType = tagConfig?.options?.sub_type;
|
|
96
|
+
const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);
|
|
97
|
+
if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const scenarioTagUi = tagConfig.type === TagTypes.DATE
|
|
101
|
+
? _find(scenarioTagsUi, { type: tagConfig.type })
|
|
102
|
+
: _find(scenarioTagsUi, { selectedTagSubType: tagSubType });
|
|
103
|
+
if (scenarioTagUi) {
|
|
104
|
+
scenarioTagUi.toggle = true;
|
|
105
|
+
scenarioTagUi.selectedTagSubType = tagSubType;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag) {
|
|
110
|
+
const toggleStatus = isDateTag
|
|
111
|
+
? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)
|
|
112
|
+
: scenarioTag.scenarioData.toggle;
|
|
113
|
+
const selectedTagSubType = isDateTag
|
|
114
|
+
? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)
|
|
115
|
+
: scenarioTag.options.sub_type;
|
|
116
|
+
const tag = {
|
|
117
|
+
toggle: this.areExistingTagsConfig ? false : toggleStatus,
|
|
118
|
+
name: scenarioTag.scenarioData.name || scenarioTag.name,
|
|
119
|
+
description: scenarioTag.scenarioData.description || scenarioTag.description,
|
|
120
|
+
type: scenarioTag.type,
|
|
121
|
+
selectedTagSubType,
|
|
122
|
+
};
|
|
123
|
+
if (scenarioTag.scenarioData.turnOffDateTags) {
|
|
124
|
+
tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;
|
|
125
|
+
}
|
|
126
|
+
if (scenarioTag.scenarioData.acceptableSubTags) {
|
|
127
|
+
tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;
|
|
128
|
+
}
|
|
129
|
+
return tag;
|
|
130
|
+
}
|
|
131
|
+
updateScenarioSubTags(tag, scenarioTag) {
|
|
132
|
+
if (!tag.subTags) {
|
|
133
|
+
tag.subTags = [];
|
|
134
|
+
}
|
|
135
|
+
const tagSubType = scenarioTag.options.sub_type;
|
|
136
|
+
tag.subTags.push({
|
|
137
|
+
subType: tagSubType,
|
|
138
|
+
name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
turnOffDateTag(scenarioTags) {
|
|
142
|
+
const dateTag = _find(scenarioTags, { type: TagTypes.DATE });
|
|
143
|
+
if (!dateTag)
|
|
144
|
+
return;
|
|
145
|
+
dateTag.toggle = false;
|
|
146
|
+
}
|
|
147
|
+
hideNotAvailableTags(tagWithSpecificDateTags, scenarioTags) {
|
|
148
|
+
const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;
|
|
149
|
+
if (!subTags.length)
|
|
150
|
+
return;
|
|
151
|
+
_forEach(scenarioTags, (tag) => {
|
|
152
|
+
if (!tag.acceptableSubTags?.length)
|
|
153
|
+
return;
|
|
154
|
+
if (tag !== tagWithSpecificDateTags) {
|
|
155
|
+
tag.toggle = false;
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
_forEach(subTags, (subTag) => {
|
|
159
|
+
subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
getScenarioSelectedDateTag(scenario, dateTags) {
|
|
163
|
+
const monthSubType = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options
|
|
164
|
+
?.sub_type;
|
|
165
|
+
const scenarioSelectedDateTag = {
|
|
166
|
+
[Scenario.ACTUALS]: () => monthSubType,
|
|
167
|
+
[Scenario.BUDGET]: () => _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,
|
|
168
|
+
[Scenario.FORECAST]: () => _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options
|
|
169
|
+
?.sub_type,
|
|
170
|
+
[Scenario.NONE]: () => monthSubType,
|
|
171
|
+
};
|
|
172
|
+
if (!scenarioSelectedDateTag[scenario])
|
|
173
|
+
return;
|
|
174
|
+
return scenarioSelectedDateTag[scenario]();
|
|
175
|
+
}
|
|
176
|
+
getScenarioTagsConfig(scenario, tagsConfig) {
|
|
177
|
+
return _reduce(tagsConfig, (acc, tagConfig) => {
|
|
178
|
+
const tagSubType = tagConfig?.options?.sub_type;
|
|
179
|
+
const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);
|
|
180
|
+
const scenarioTagConfig = scenarioTagDataConfig && scenarioTagDataConfig[scenario] ? scenarioTagDataConfig[scenario][tagSubType] : null;
|
|
181
|
+
if (!scenarioTagConfig || scenarioTagConfig.hidden)
|
|
182
|
+
return acc;
|
|
183
|
+
const clonedTagConfig = _cloneDeep(tagConfig);
|
|
184
|
+
const scenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };
|
|
185
|
+
acc.push(scenarioTag);
|
|
186
|
+
return acc;
|
|
187
|
+
}, []);
|
|
188
|
+
}
|
|
189
|
+
/** @nocollapse */ static { this.ɵfac = function ScenarioService_Factory(t) { return new (t || ScenarioService)(); }; }
|
|
190
|
+
/** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ScenarioService, factory: ScenarioService.ɵfac }); }
|
|
191
|
+
}
|
|
192
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ScenarioService, [{
|
|
193
|
+
type: Injectable
|
|
194
|
+
}], null, null); })();
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXNjZW5hcmlvL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVEsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUE0RCxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RyxPQUFPLEVBQ0gsU0FBUyxJQUFJLFVBQVUsRUFDdkIsTUFBTSxJQUFJLE9BQU8sRUFDakIsSUFBSSxJQUFJLEtBQUssRUFDYixPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixNQUFNLElBQUksT0FBTyxFQUNqQixJQUFJLElBQUksS0FBSyxFQUNiLEdBQUcsSUFBSSxJQUFJLEVBQ1gsUUFBUSxJQUFJLFNBQVMsR0FDeEIsTUFBTSxRQUFRLENBQUM7QUFDaEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRzFFLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVksOEJBQXlCLEdBQUcsT0FBTyxDQUFDO0tBb1AvQztJQTdPRyxJQUFXLFNBQVM7UUFDaEIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxJQUFZLHFCQUFxQjtRQUM3QixPQUFPLENBQUMsQ0FB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R0FwUFEsZUFBZTtzR0FBZixlQUFlLFdBQWYsZUFBZTs7dUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgVGFnc0NvbmZpZ1N1YlR5cGUsIFRhZ1R5cGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgSVNjZW5hcmlvLCBJU2NlbmFyaW9TdWJUYWcsIElTY2VuYXJpb1RhZywgSVNjZW5hcmlvVGFnVWksIFNjZW5hcmlvIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zY2VuYXJpbyc7XG5pbXBvcnQge1xuICAgIGNsb25lRGVlcCBhcyBfY2xvbmVEZWVwLFxuICAgIGZpbHRlciBhcyBfZmlsdGVyLFxuICAgIGZpbmQgYXMgX2ZpbmQsXG4gICAgZm9yRWFjaCBhcyBfZm9yRWFjaCxcbiAgICBvcmRlckJ5IGFzIF9vcmRlckJ5LFxuICAgIGluZGV4T2YgYXMgX2luZGV4T2YsXG4gICAgcmVkdWNlIGFzIF9yZWR1Y2UsXG4gICAgc29tZSBhcyBfc29tZSxcbiAgICBtYXAgYXMgX21hcCxcbiAgICBpbmNsdWRlcyBhcyBfaW5jbHVkZXMsXG59IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBnZXRTY2VuYXJpb1RhZ0RhdGFDb25maWcgfSBmcm9tICcuLi9jb25zdHMvc2NlbmFyaW8tdGFncy1jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2NlbmFyaW9TZXJ2aWNlIHtcbiAgICBwcml2YXRlIERFRkFVTFRfRk9SRUNBU1RfREFURV9UQUcgPSAnTW9udGgnO1xuXG4gICAgcHJpdmF0ZSB3aG9sZVRhZ3NDb25maWc6IElUYWdbXTtcbiAgICBwcml2YXRlIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgcHJpdmF0ZSBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuO1xuICAgIHByaXZhdGUgaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uOiBib29sZWFuO1xuXG4gICAgcHVibGljIGdldCBzY2VuYXJpb3MoKTogU2NlbmFyaW9bXSB7XG4gICAgICAgIHJldHVybiBfb3JkZXJCeShPYmplY3QudmFsdWVzKFNjZW5hcmlvKSwgKHNjZW5hcmlvKSA9PiAoc2NlbmFyaW8gPT09IFNjZW5hcmlvLk5PTkUgPyAxIDogMCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGFyZUV4aXN0aW5nVGFnc0NvbmZpZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jdXJyZW50VGFnc0NvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdFNjZW5hcmlvVGFncyh3aG9sZVRhZ3NDb25maWc6IElUYWdbXSwgY3VycmVudFRhZ3NDb25maWc6IElUYWdbXSwgaXNNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbiwgaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghd2hvbGVUYWdzQ29uZmlnPy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICB0aGlzLndob2xlVGFnc0NvbmZpZyA9IF9jbG9uZURlZXAod2hvbGVUYWdzQ29uZmlnKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnc0NvbmZpZyA9IGN1cnJlbnRUYWdzQ29uZmlnO1xuICAgICAgICB0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24gPSBpc011bHRpcGxlRGltZW5zaW9uO1xuICAgICAgICB0aGlzLmlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbiA9IGlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSwgdGFnc0NvbmZpZzogSVRhZ1tdKTogSVRhZ1tdIHtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzQ29uZmlnID0gX2ZpbHRlcih0YWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PlxuICAgICAgICAgICAgX3NvbWUoXG4gICAgICAgICAgICAgICAgc2NlbmFyaW9UYWdzLFxuICAgICAgICAgICAgICAgIChzY2VuYXJpb1RhZykgPT4gc2NlbmFyaW9UYWcudG9nZ2xlICYmIHNjZW5hcmlvVGFnLnNlbGVjdGVkVGFnU3ViVHlwZSA9PT0gdGFnQ29uZmlnLm9wdGlvbnMuc3ViX3R5cGUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRTY2VuYXJpb1RhZ3Moc2NlbmFyaW9UYWdzQ29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NlbmFyaW9UYWdzQnlTY2VuYXJpbyhzY2VuYXJpbzogU2NlbmFyaW8pIHtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdbXSA9IHRoaXMuZ2V0U2NlbmFyaW9UYWdzQ29uZmlnKHNjZW5hcmlvLCB0aGlzLndob2xlVGFnc0NvbmZpZyk7XG4gICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnc1VpOiBJU2NlbmFyaW9UYWdVaVtdID0gW107XG5cbiAgICAgICAgX2ZvckVhY2goc2NlbmFyaW9UYWdzQ29uZmlnLCAoc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNUYWdXaXRoU3ViVGFncyA9IHNjZW5hcmlvVGFnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEU7XG4gICAgICAgICAgICBjb25zdCB0YWdXaXRoU3ViVGFncyA9IGlzVGFnV2l0aFN1YlRhZ3MgJiYgX2ZpbmQoc2NlbmFyaW9UYWdzVWksIHsgdHlwZTogc2NlbmFyaW9UYWcudHlwZSB9KTtcblxuICAgICAgICAgICAgY29uc3QgdGFnOiBJU2NlbmFyaW9UYWdVaSA9XG4gICAgICAgICAgICAgICAgdGFnV2l0aFN1YlRhZ3MgfHwgdGhpcy5wcmVwYXJlU2NlbmFyaW9UYWcoc2NlbmFyaW9UYWdzQ29uZmlnLCBzY2VuYXJpb1RhZywgc2NlbmFyaW8sIGlzVGFnV2l0aFN1YlRhZ3MpO1xuXG4gICAgICAgICAgICBpZiAoaXNUYWdXaXRoU3ViVGFncykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2NlbmFyaW9TdWJUYWdzKHRhZywgc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgICAgIHRhZy5zdWJUYWdzID0gU2NlbmFyaW9TZXJ2aWNlLnNvcnRlZFN1YlRhZ3ModGFnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhZ1dpdGhTdWJUYWdzKSByZXR1cm47XG4gICAgICAgICAgICBzY2VuYXJpb1RhZ3NVaS5wdXNoKHRhZyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmFyZUV4aXN0aW5nVGFnc0NvbmZpZykge1xuICAgICAgICAgICAgdGhpcy5pbml0RXhpc3RpbmdUYWdzQ29uZmlnKHNjZW5hcmlvLCBzY2VuYXJpb1RhZ3NVaSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1RhZ05vdFN1cHBvcnRpbmdEYXRlcyA9IF9zb21lKHNjZW5hcmlvVGFnc1VpLCB7IHR1cm5PZmZEYXRlVGFnczogdHJ1ZSwgdG9nZ2xlOiB0cnVlIH0pO1xuICAgICAgICBpZiAoaXNUYWdOb3RTdXBwb3J0aW5nRGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHVybk9mZkRhdGVUYWcoc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFnV2l0aFNwZWNpZmljRGF0ZVRhZ3M6IElTY2VuYXJpb1RhZ1VpID0gX2ZpbmQoXG4gICAgICAgICAgICBzY2VuYXJpb1RhZ3NVaSxcbiAgICAgICAgICAgICh0YWcpID0+IHRhZy50b2dnbGUgJiYgISF0YWcuYWNjZXB0YWJsZVN1YlRhZ3M/Lmxlbmd0aCxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLCBzY2VuYXJpb1RhZ3NVaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc1VpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdGFnTm90U3VwcG9ydGluZ0RhdGVzSGFuZGxlcjxUIGV4dGVuZHMgSVNjZW5hcmlvVGFnVWk+KHRhZzogVCwgdGFnTm90U3VwcG9ydGluZ0RhdGVzOiBULCBkYXRlVGFnOiBUKTogdm9pZCB7XG4gICAgICAgIGlmICghdGFnTm90U3VwcG9ydGluZ0RhdGVzIHx8ICF0YWcudG9nZ2xlKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFKSB7XG4gICAgICAgICAgICB0YWdOb3RTdXBwb3J0aW5nRGF0ZXMudG9nZ2xlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFnID09PSB0YWdOb3RTdXBwb3J0aW5nRGF0ZXMpIHtcbiAgICAgICAgICAgIGlmIChkYXRlVGFnKSB7XG4gICAgICAgICAgICAgICAgZGF0ZVRhZy50b2dnbGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0YWdBY2NlcHRhYmxlU3ViVGFnc0hhbmRsZXI8VCBleHRlbmRzIElTY2VuYXJpb1RhZ1VpPih0YWc6IFQsIGRhdGVUYWc6IFQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0YWcuYWNjZXB0YWJsZVN1YlRhZ3M/Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIGlmICghZGF0ZVRhZykgcmV0dXJuO1xuXG4gICAgICAgIGRhdGVUYWcuc3ViVGFncyA9IF9tYXAoZGF0ZVRhZy5zdWJUYWdzLCAoc3ViVGFnKSA9PiB7XG4gICAgICAgICAgICBzdWJUYWcuaGlkZGVuID0gdGFnLnRvZ2dsZSAmJiAhX2luY2x1ZGVzKHRhZy5hY2NlcHRhYmxlU3ViVGFncywgc3ViVGFnLnN1YlR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN1YlRhZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGF0ZVRhZy5zZWxlY3RlZFRhZ1N1YlR5cGUgPSB0YWcuYWNjZXB0YWJsZVN1YlRhZ3NbMF07XG4gICAgfVxuXG4gICAgcHVibGljIHNvcnRTY2VuYXJpb1RhZ3Moc2NlbmFyaW9UYWdzVWk6IGFueVtdKTogYW55W10ge1xuICAgICAgICByZXR1cm4gX29yZGVyQnkoc2NlbmFyaW9UYWdzVWksIFsodGFnKSA9PiAodGFnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUgPyAwIDogMSksICh0YWcpID0+IHRhZy5uYW1lID09PSAnRmlsZSBTdGF0dXMnXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBzb3J0ZWRTdWJUYWdzKHRhZzogSVNjZW5hcmlvVGFnVWkpOiBJU2NlbmFyaW9TdWJUYWdbXSB7XG4gICAgICAgIGNvbnN0IFNVQl9UQUdTX09SREVSID0gW1xuICAgICAgICAgICAgVGFnc0NvbmZpZ1N1YlR5cGUuREFZLFxuICAgICAgICAgICAgVGFnc0NvbmZpZ1N1YlR5cGUuV0VFSyxcbiAgICAgICAgICAgIFRhZ3NDb25maWdTdWJUeXBlLk1PTlRILFxuICAgICAgICAgICAgVGFnc0NvbmZpZ1N1YlR5cGUuUVVBUlRFUixcbiAgICAgICAgICAgIFRhZ3NDb25maWdTdWJUeXBlLllFQVIsXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBfb3JkZXJCeSh0YWcuc3ViVGFncywgKHN1YlRhZykgPT4gX2luZGV4T2YoU1VCX1RBR1NfT1JERVIsIHN1YlRhZy5zdWJUeXBlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RXhpc3RpbmdUYWdzQ29uZmlnKHNjZW5hcmlvOiBTY2VuYXJpbywgc2NlbmFyaW9UYWdzVWk6IElTY2VuYXJpb1RhZ1VpW10pIHtcbiAgICAgICAgX2ZvckVhY2godGhpcy5jdXJyZW50VGFnc0NvbmZpZywgKHRhZ0NvbmZpZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFnU3ViVHlwZSA9IHRhZ0NvbmZpZz8ub3B0aW9ucz8uc3ViX3R5cGU7XG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZ0RhdGFDb25maWcgPSBnZXRTY2VuYXJpb1RhZ0RhdGFDb25maWcodGhpcy5pc011bHRpcGxlRGltZW5zaW9uLCB0aGlzLmlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbik7XG4gICAgICAgICAgICBpZiAoIXNjZW5hcmlvVGFnRGF0YUNvbmZpZyB8fCAhc2NlbmFyaW9UYWdEYXRhQ29uZmlnW3NjZW5hcmlvXSB8fCAhc2NlbmFyaW9UYWdEYXRhQ29uZmlnW3NjZW5hcmlvXVt0YWdTdWJUeXBlXSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdVaSA9XG4gICAgICAgICAgICAgICAgdGFnQ29uZmlnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEVcbiAgICAgICAgICAgICAgICAgICAgPyBfZmluZChzY2VuYXJpb1RhZ3NVaSwgeyB0eXBlOiB0YWdDb25maWcudHlwZSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9maW5kKHNjZW5hcmlvVGFnc1VpLCB7IHNlbGVjdGVkVGFnU3ViVHlwZTogdGFnU3ViVHlwZSB9KTtcblxuICAgICAgICAgICAgaWYgKHNjZW5hcmlvVGFnVWkpIHtcbiAgICAgICAgICAgICAgICBzY2VuYXJpb1RhZ1VpLnRvZ2dsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2NlbmFyaW9UYWdVaS5zZWxlY3RlZFRhZ1N1YlR5cGUgPSB0YWdTdWJUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVTY2VuYXJpb1RhZyhcbiAgICAgICAgc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdbXSxcbiAgICAgICAgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZyxcbiAgICAgICAgc2NlbmFyaW86IFNjZW5hcmlvLFxuICAgICAgICBpc0RhdGVUYWc6IGJvb2xlYW4sXG4gICAgKTogSVNjZW5hcmlvVGFnVWkge1xuICAgICAgICBjb25zdCB0b2dnbGVTdGF0dXMgPSBpc0RhdGVUYWdcbiAgICAgICAgICAgID8gX3NvbWUoc2NlbmFyaW9UYWdzQ29uZmlnLCAodGFnKSA9PiB0YWcudHlwZSA9PT0gVGFnVHlwZXMuREFURSAmJiB0YWcuc2NlbmFyaW9EYXRhLnRvZ2dsZSlcbiAgICAgICAgICAgIDogc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLnRvZ2dsZTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZFRhZ1N1YlR5cGUgPSBpc0RhdGVUYWdcbiAgICAgICAgICAgID8gdGhpcy5nZXRTY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzQ29uZmlnKVxuICAgICAgICAgICAgOiBzY2VuYXJpb1RhZy5vcHRpb25zLnN1Yl90eXBlO1xuXG4gICAgICAgIGNvbnN0IHRhZzogSVNjZW5hcmlvVGFnVWkgPSB7XG4gICAgICAgICAgICB0b2dnbGU6IHRoaXMuYXJlRXhpc3RpbmdUYWdzQ29uZmlnID8gZmFsc2UgOiB0b2dnbGVTdGF0dXMsXG4gICAgICAgICAgICBuYW1lOiBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEubmFtZSB8fCBzY2VuYXJpb1RhZy5uYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5kZXNjcmlwdGlvbiB8fCBzY2VuYXJpb1RhZy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHR5cGU6IHNjZW5hcmlvVGFnLnR5cGUsXG4gICAgICAgICAgICBzZWxlY3RlZFRhZ1N1YlR5cGUsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS50dXJuT2ZmRGF0ZVRhZ3MpIHtcbiAgICAgICAgICAgIHRhZy50dXJuT2ZmRGF0ZVRhZ3MgPSBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEudHVybk9mZkRhdGVUYWdzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS5hY2NlcHRhYmxlU3ViVGFncykge1xuICAgICAgICAgICAgdGFnLmFjY2VwdGFibGVTdWJUYWdzID0gc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmFjY2VwdGFibGVTdWJUYWdzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhZztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNjZW5hcmlvU3ViVGFncyh0YWc6IElTY2VuYXJpb1RhZ1VpLCBzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnKTogdm9pZCB7XG4gICAgICAgIGlmICghdGFnLnN1YlRhZ3MpIHtcbiAgICAgICAgICAgIHRhZy5zdWJUYWdzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gc2NlbmFyaW9UYWcub3B0aW9ucy5zdWJfdHlwZTtcblxuICAgICAgICB0YWcuc3ViVGFncy5wdXNoKHtcbiAgICAgICAgICAgIHN1YlR5cGU6IHRhZ1N1YlR5cGUsXG4gICAgICAgICAgICBuYW1lOiB0YWdTdWJUeXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5GT1JFQ0FTVF9ORVcgPyB0aGlzLkRFRkFVTFRfRk9SRUNBU1RfREFURV9UQUcgOiBzY2VuYXJpb1RhZy5uYW1lLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRlVGFnID0gX2ZpbmQoc2NlbmFyaW9UYWdzLCB7IHR5cGU6IFRhZ1R5cGVzLkRBVEUgfSk7XG5cbiAgICAgICAgaWYgKCFkYXRlVGFnKSByZXR1cm47XG4gICAgICAgIGRhdGVUYWcudG9nZ2xlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlTm90QXZhaWxhYmxlVGFncyh0YWdXaXRoU3BlY2lmaWNEYXRlVGFnczogSVNjZW5hcmlvVGFnVWksIHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWJUYWdzID0gX2ZpbmQoc2NlbmFyaW9UYWdzLCB7IHR5cGU6IFRhZ1R5cGVzLkRBVEUgfSk/LnN1YlRhZ3M7XG4gICAgICAgIGlmICghc3ViVGFncy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBfZm9yRWFjaChzY2VuYXJpb1RhZ3MsICh0YWcpID0+IHtcbiAgICAgICAgICAgIGlmICghdGFnLmFjY2VwdGFibGVTdWJUYWdzPy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0YWcgIT09IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgdGFnLnRvZ2dsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBfZm9yRWFjaChzdWJUYWdzLCAoc3ViVGFnKSA9PiB7XG4gICAgICAgICAgICBzdWJUYWcuaGlkZGVuID0gIXRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLmFjY2VwdGFibGVTdWJUYWdzLmluY2x1ZGVzKHN1YlRhZy5zdWJUeXBlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZyhzY2VuYXJpbzogU2NlbmFyaW8sIGRhdGVUYWdzOiBJU2NlbmFyaW9UYWdbXSk6IFRhZ3NDb25maWdTdWJUeXBlIHtcbiAgICAgICAgY29uc3QgbW9udGhTdWJUeXBlID0gX2ZpbmQoZGF0ZVRhZ3MsICh0YWc6IElTY2VuYXJpb1RhZykgPT4gdGFnLm9wdGlvbnMuc3ViX3R5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLk1PTlRIKT8ub3B0aW9uc1xuICAgICAgICAgICAgPy5zdWJfdHlwZTtcblxuICAgICAgICBjb25zdCBzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIFtTY2VuYXJpby5BQ1RVQUxTXTogKCkgPT4gbW9udGhTdWJUeXBlLFxuICAgICAgICAgICAgW1NjZW5hcmlvLkJVREdFVF06ICgpID0+XG4gICAgICAgICAgICAgICAgX2ZpbmQoZGF0ZVRhZ3MsICh0YWc6IElTY2VuYXJpb1RhZykgPT4gdGFnLm9wdGlvbnMuc3ViX3R5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLllFQVIpPy5vcHRpb25zPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5GT1JFQ0FTVF06ICgpID0+XG4gICAgICAgICAgICAgICAgX2ZpbmQoZGF0ZVRhZ3MsICh0YWc6IElTY2VuYXJpb1RhZykgPT4gdGFnLm9wdGlvbnMuc3ViX3R5cGUgPT09IFRhZ3NDb25maWdTdWJUeXBlLkZPUkVDQVNUX05FVyk/Lm9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgPy5zdWJfdHlwZSxcbiAgICAgICAgICAgIFtTY2VuYXJpby5OT05FXTogKCkgPT4gbW9udGhTdWJUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghc2NlbmFyaW9TZWxlY3RlZERhdGVUYWdbc2NlbmFyaW9dKSByZXR1cm47XG4gICAgICAgIHJldHVybiBzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZ1tzY2VuYXJpb10oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjZW5hcmlvVGFnc0NvbmZpZyhzY2VuYXJpbzogU2NlbmFyaW8sIHRhZ3NDb25maWc6IElUYWdbXSk6IElTY2VuYXJpb1RhZ1tdIHtcbiAgICAgICAgcmV0dXJuIF9yZWR1Y2UoXG4gICAgICAgICAgICB0YWdzQ29uZmlnLFxuICAgICAgICAgICAgKGFjYzogSVNjZW5hcmlvVGFnW10sIHRhZ0NvbmZpZzogSVRhZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ1N1YlR5cGUgPSB0YWdDb25maWc/Lm9wdGlvbnM/LnN1Yl90eXBlO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdEYXRhQ29uZmlnID0gZ2V0U2NlbmFyaW9UYWdEYXRhQ29uZmlnKHRoaXMuaXNNdWx0aXBsZURpbWVuc2lvbiwgdGhpcy5pc0ZvcmVjYXN0TXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnQ29uZmlnOiBJU2NlbmFyaW8gPVxuICAgICAgICAgICAgICAgICAgICBzY2VuYXJpb1RhZ0RhdGFDb25maWcgJiYgc2NlbmFyaW9UYWdEYXRhQ29uZmlnW3NjZW5hcmlvXSA/IHNjZW5hcmlvVGFnRGF0YUNvbmZpZ1tzY2VuYXJpb11bdGFnU3ViVHlwZV0gOiBudWxsO1xuICAgICAgICAgICAgICAgIGlmICghc2NlbmFyaW9UYWdDb25maWcgfHwgc2NlbmFyaW9UYWdDb25maWcuaGlkZGVuKSByZXR1cm4gYWNjO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmVkVGFnQ29uZmlnID0gX2Nsb25lRGVlcCh0YWdDb25maWcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnOiBJU2NlbmFyaW9UYWcgPSB7IC4uLmNsb25lZFRhZ0NvbmZpZywgc2NlbmFyaW9EYXRhOiBzY2VuYXJpb1RhZ0NvbmZpZyB9O1xuXG4gICAgICAgICAgICAgICAgYWNjLnB1c2goc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW10sXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|