@datarailsshared/datarailsshared 1.5.311 → 1.5.313

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.
@@ -1 +1 @@
1
- {"version":3,"file":"datarailsshared-datarailsshared.mjs","sources":["../../../projects/datarailsshared/src/lib/date-tags/any-tag.component.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.html","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.html","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.html","../../../projects/datarailsshared/src/lib/models/serverTags.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/toggle-button-mode.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.html","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.html","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.html","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.html","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/services/dr-avatar.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.html","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.html","../../../projects/datarailsshared/src/lib/models/badgeStatus.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.html","../../../projects/datarailsshared/src/lib/dr-alert/enums/dr-alert-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.html","../../../projects/datarailsshared/src/lib/dr-code-editor/components/code-editor-hint-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/components/dr-codemirror.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.html","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/interfaces/scenario.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/consts/scenario-tags-config.ts","../../../projects/datarailsshared/src/lib/dr-scenario/services/scenario.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/tags-constructor.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.html","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-position.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.html","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.html","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-i18n.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-helper.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-item.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-config.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-event-parser.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/pipes/treeview.pipe.ts","../../../projects/datarailsshared/src/lib/models/toastr.ts","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.ts","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.html","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/datarailsshared/src/lib/models/feedback.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/models/code-editor-hint.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.html","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.types.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper-canvas.service.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.module.ts","../../../projects/datarailsshared/src/lib/dr-scenario/dr-scenario.module.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.module.ts","../../../projects/datarailsshared/src/lib/dr-treeview/dr-tree-view.module.ts","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.module.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.module.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.module.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n template: ``,\n selector: 'any-tag'\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n @Input() disabled: boolean;\n dateObj = { date: undefined };\n constructor() {\n }\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n initDate() {\n }\n initName() {\n }\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'w/yyyy'\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY'\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport enum DateTags {\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n THIS_MONTH = 'this_month',\n PREV_MONTH = 'prev_month',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n","import moment from 'moment';\nimport { DateTags, TimeframeOption } from '../models/datePicker';\nimport { Observable } from 'rxjs';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n\n public static getDateByTag(tag: string) :any {\n const todayDate = moment().utc().endOf('day');\n switch (tag) {\n case DateTags.TODAY:\n return todayDate;\n case DateTags.YESTERDAY:\n todayDate.subtract(1, 'days');\n return todayDate;\n case DateTags.THIS_MONTH:\n todayDate.endOf('month');\n return todayDate;\n case DateTags.PREV_MONTH:\n todayDate.subtract(1, 'months').endOf('month');\n return todayDate;\n }\n }\n\n public static fromResizeObserver = (target: Element): Observable<ResizeObserverEntry[]> =>\n new Observable((observer) => {\n const resizeObserver = new ResizeObserver((entries) => observer.next(entries));\n\n resizeObserver.observe(target);\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n public static normalizeLineEndings = (str: string): string => {\n return str ? str.replace(/\\r\\n|\\r/g, '\\n') : str;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, DateTags, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n timeframe: TTimeframeOption = TimeframeOption.DAY;\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n updatedQuarter$ = new Subject<Moment>();\n updatedDateAndClose$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n isUsingDateTagPresets: boolean;\n presetTag$ = new BehaviorSubject<DateTags>('' as DateTags);\n onSameDaySelectedInCalendar$ = new Subject<Moment>();\n keepPresetTag = false;\n isValueUpdating = false;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n\n getDisplayPrefix() {\n const formatCached = this.format$.getValue();\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n\n public updateDatePickerByPreset(tag: DateTags, calender: any) {\n this.keepPresetTag = true;\n let date = null;\n if (tag) {\n date = DrSharedUtils.getDateByTag(tag);\n switch (tag) {\n case DateTags.TODAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.YESTERDAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.THIS_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n case DateTags.PREV_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n }\n }\n this.presetTag$.next(tag);\n this.updatedDateAndClose$.next(date);\n }\n\n public selectDateInCalendarMonthView(date: Moment, calender: any): void {\n setTimeout(() => {\n const monthView = calender.monthView as any;\n if (monthView) {\n monthView._activeDate = date;\n monthView._selected = date;\n monthView._init();\n }\n });\n }\n\n public resetPresetTag() {\n if (!this.keepPresetTag) {\n this.presetTag$.next(null);\n } else {\n this.keepPresetTag = false;\n }\n }\n}\n","import { animate, style, transition } from '@angular/animations';\nimport { DateTags } from './datePicker';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8\n }\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(150, style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(150, style({ opacity: 0 })),\n ]),\n];\n\nexport const PRESET_TAGS_LIST: Array<{ key: string, label: string }> = [ \n {key: DateTags.TODAY, label: 'Today'},\n {key: DateTags.YESTERDAY, label: 'Yesterday'},\n {key: DateTags.THIS_MONTH, label: 'This month'},\n {key: DateTags.PREV_MONTH, label: 'Prev month'}\n];","export enum TooltipTheme {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { TooltipTheme } from '../../enums/tooltip-theme.enum';\n\n@Component({\n selector: 'dr-tooltip-default',\n template: '<span class=\"content\" [innerHTML]=\"content\"></span><ng-content></ng-content>',\n styleUrls: ['./tooltip-default.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipDefaultComponent {\n\n @Input() content: string;\n\n @Input()\n @HostBinding('class')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n constructor() {\n }\n\n}\n","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [\n trigger('tooltip', POPUP_ANIMATION),\n ],\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n @Input() theme: TooltipTheme;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n\n}\n","<div [class]=\"position + ' ' + class + ' ' + theme\" [ngClass]=\"{'dr-tooltip': !options?.withoutContainerStyles}\">\n <div *ngIf=\"!options?.withoutArrow\" class=\"dr-tooltip-arrow\"></div>\n <ng-container *ngIf=\"isContentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\n </ng-container>\n <ng-template #defaultContent>\n <dr-tooltip-default [content]=\"content\" [theme]=\"theme\"></dr-tooltip-default>\n </ng-template>\n</div>\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\nconst getOverlayPosition = (position) => ({ ...POPUP_POSITIONS[position] });\n\n@Directive({\n selector: '[drTooltip]'\n})\nexport class DrTooltipDirective implements OnDestroy {\n\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n private _position = 'top';\n @Input('drTooltipPosition')\n public get position() {\n return this._position;\n }\n public set position(value) {\n this._position = value;\n this.overlayPosition = getOverlayPosition(value);\n }\n @Input('drTooltipClass')\n class = '';\n\n @Input('drTooltipTheme')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n @Input() drTooltipMouseEnterTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = getOverlayPosition(this.position);\n if (position?.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position?.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n this.overlayPosition = position;\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n private mouseenterTimer: ReturnType<typeof setTimeout>;\n private overlayPosition = getOverlayPosition(this.position);\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n if (this.drTooltipMouseEnterTimeout) {\n this.clearMouseEnterTimeout();\n\n this.mouseenterTimer = setTimeout(() => {\n this.renderTooltip();\n }, this.drTooltipMouseEnterTimeout);\n } else {\n this.renderTooltip();\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.clearMouseEnterTimeout();\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([this.overlayPosition]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n if (!this.content) return;\n\n this.createOverlay();\n if (!this.overlayRef?.hasAttached()) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n this.tooltipRef.instance.theme = this.theme;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$.pipe(skip(1)).subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n private clearMouseEnterTimeout() {\n if (this.mouseenterTimer) {\n clearTimeout(this.mouseenterTimer);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrSpinnerComponent {\n\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","<div [class]=\"'spinner-wrapper spinner-wrapper--' + (options?.spinnerType || 'logo')\">\n <div class=\"shadow\" [class.shadow--none]=\"options.noOverlay\"></div>\n <div [class]=\"'spinner spinner--' + (options?.spinnerSize || 'medium')\"></div>\n</div>\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]'\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = 'medium';\n @Input() drSpinnerType: SpinnerType = 'logo';\n @Input() drSpinnerNoOverlay = false;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({ ...options, spinnerSize: this.drSpinnerSize, spinnerType: this.drSpinnerType, noOverlay: this.drSpinnerNoOverlay });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef, ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nconst SELECT_HOST_ATTRIBUTES = [\n 'no-left-border',\n 'no-left-border-radius',\n 'no-right-border',\n 'no-right-border-radius',\n];\n\ninterface INgSelectComponentAccessor {\n close: () => void;\n}\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true\n }]\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n @Input() className: string;\n @Input() items: Array<any> | Readonly<Array<any>> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() hideSelected: boolean;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() loadingText: string = 'Loading...';\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Input() dropdownClass: string;\n @Input() closeOnSelect = true;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n @Output() closeUp: EventEmitter<any> = new EventEmitter<any>();\n @ViewChild(NgSelectComponent, { read: NgSelectComponent }) private readonly ngSelect: INgSelectComponentAccessor;\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n (this.getHostElement()).classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n close(): void {\n this.ngSelect.close();\n }\n\n onDropdownOpen(): void {\n if (typeof this.dropdownClass === 'string') {\n setTimeout(() => {\n document.querySelector('.ng-dropdown-panel').classList.add(...this.dropdownClass.split(' '));\n }, 0);\n }\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\n }\n}\n","<ng-select [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [readonly]=\"readonly\"\n [closeOnSelect]=\"closeOnSelect\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n [isOpen]=\"isOpen\"\n [groupBy]=\"groupBy\"\n [attr.autofocus]=\"autofocus\"\n (change)=\"onChange(selectedItem); change.emit(selectedItem)\"\n (open)=\"open.emit($event); onDropdownOpen()\"\n (close)=\"closeUp.emit($event);\"\n class=\"dr-select\"\n #selectComponent>\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\"\n >{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionFooterTemplate\" [ngTemplateOutletContext]=\"{ item: item, close: selectComponent.close.bind(selectComponent) }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"groupBy\" ng-optgroup-tmp let-item=\"item\">\n {{ item[groupBy] }}\n </ng-template>\n <ng-template ng-loadingspinner-tmp>\n <div *ngIf=\"loading\"\n class=\"dr-select__loading\"\n [drSpinner]=\"loading\"\n [drSpinnerType]=\"'circle'\"\n [drSpinnerSize]=\"'small'\"\n [drSpinnerNoOverlay]=\"true\">\n </div>\n </ng-template>\n</ng-select>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption, ITimeframeOption } from '../../models/datePicker';\n\n@Pipe({\n name: 'drShowTimeframePipe'\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter(item => showOptions.includes(item.timeframe));\n }\n}\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from \"@angular/core\";\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, ITimeframeOption, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { PRESET_TAGS_LIST } from \"../../../models/constants\";\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [{\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year())\n }, {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () => String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year())\n }, {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n }\n }];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n presetTagList = PRESET_TAGS_LIST;\n get selectedPresetTag() {\n return this.datePickerService.presetTag$.getValue();\n };\n\n public readonly calendarView = CalendarView;\n\n constructor(private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe(value => {\n const timeframe = this.datePickerService.getTimeframe(value);\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.timeframe === timeframe)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n _calendar._userSelection.subscribe(date => {\n if (!this.datePickerService.isValueUpdating) {\n this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();\n this.periodYearLabel= fullPeriodLabel.match(/[0-9]+/g).toString();\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe(value) {\n if (value !== this.selectedTimeframe) {\n this.datePickerService.resetPresetTag();\n }\n this.selectedTimeframe = value;\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(this._calendar.currentView as CalendarView);\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n }\n\n onSelectPresetTag(tag: any) {\n if (tag.key === this.selectedPresetTag) {\n this.datePickerService.presetTag$.next(null);\n } else {\n this.datePickerService.presetTag$.next(tag.key);\n }\n this.datePickerService.updateDatePickerByPreset(this.selectedPresetTag, this._calendar);\n }\n}\n","<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div *ngFor=\"let tag of presetTagList\" \n id=\"preset_tag\" \n class=\"dr-datepicker-preset-date__tags__tag\" \n (click)=\"onSelectPresetTag(tag)\" \n [ngClass]=\"{'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag}\"\n [drTooltip]=\"selectedPresetTag === tag.key? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat\n }\n ]\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(\n this.configDateParse,\n this.configDateDisplay\n );\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl\n ) {\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport moment from 'moment';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\n\nconst noop = () => {\n};\n\nexport class CustomDateAdapter extends MomentDateAdapter {\n getFirstDayOfWeek(): number {\n return 1;\n }\n}\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n DrDatePickerService\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {\n @Input()\n format: string;\n\n @Input() set min(minDate: number) {\n this._min = minDate ? moment.unix(minDate).utc() : null;\n }\n\n @Input() set max(maxDate: number) {\n this._max = maxDate ? moment.unix(maxDate).utc() : null;\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select...';\n\n @Input() @HostBinding('class.disabled') disabled: boolean;\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @Input() datepickerFilter: (moment: Moment) => boolean;\n\n @ViewChild('datePicker') public datePicker: any;\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n if (v !== this.innerValue) {\n this.setValueFromMoment(v);\n }\n this.cdr.markForCheck();\n }\n\n protected innerValue: Moment = null;\n protected destroyed$ = new Subject<void>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n let timeframe;\n let format = this.datePickerService.getConfiguredFormat(this.format as TimeframeOption);\n if (format) {\n timeframe = this.format as TimeframeOption;\n } else {\n format = this.datePickerService.normalizeValue(this.format);\n timeframe = this.datePickerService.getTimeframe(format);\n }\n this.datePickerService.timeframe = timeframe;\n this.datePickerService.format$.next(format);\n }\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n } else {\n this.innerValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(this.innerValue, 4);\n } else {\n this.innerValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n this.innerValue.startOf(timeframe);\n endOfPeriod = this.innerValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(this.innerValue, 'seconds');\n this.innerValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n this.innerValue.startOf(timeframe);\n break;\n }\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.setValueFromMoment(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n /*\n * We need keep local timestamp for Electron Application\n * Issue in electron: when we select date, date select with -1 (if we're choosing 2023, output will be 2022)\n */\n const convertedValue = (document as any).is_electron ? moment.unix(value) : moment.unix(value).utc();\n this.innerValue = value ? convertedValue : null;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n // Should be as arrow function to avoid lose scope\n public dateFilter = (moment: Moment) => {\n if (this.datepickerFilter && moment) {\n return this.datepickerFilter(moment);\n }\n\n return true;\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n\n // isValueUpdating is required for manage clicks on same dates: if isValueUpdating - true then\n // days are different and subscription on calendar day click action won't trigger Accessor ngModel update\n // one more time\n this.datePickerService.isValueUpdating = true;\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n setTimeout(() => {\n this.datePickerService.isValueUpdating = false;\n });\n }\n @HostBinding('class.active')\n private active = false;\n onOpen() {\n this.active = true;\n }\n\n onCLose() {\n this.active = false;\n }\n}\n","<i class=\"dr-icon-date\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n</mat-datepicker>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport moment from 'moment';\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n styleUrls: ['./day-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\n\nexport class DayTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value: number) {\n const date = moment.unix(value);\n const resultTag: IDateTag = {\n name: this.name,\n value: date.unix(),\n label: date.format('MM/DD/YYYY'),\n locked: !this.dateFilter(date)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(momentData): boolean {\n const date = momentData.date();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.date() === date;\n });\n };\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"day\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n styleUrls: ['./week-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n const timestamp = this.defaultValue || moment().unix() ;\n this.date = timestamp;\n this.dateObj.date = timestamp;\n this.chosenTagHandler(timestamp);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n dateFilter(date): boolean {\n const week = date.week();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.week() === week && lockDate.year() === year;\n });\n };\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value).utc().weekday(1);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getWeekLabel(resultDate),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(moment) {\n return `W${ moment.week() } ${ moment.year() }`;\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"week\"\n [(ngModel)]=\"date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n\nimport moment from 'moment';\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n styleUrls: ['./month-tag.component.scss'],\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\n\nexport class MonthTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n // Should be as arrow function to avoid lose scope\n dateFilter(date): boolean {\n const month = date.month();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === year && lockDate.month() === month;\n });\n };\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"month\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport moment from 'moment';\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n styleUrls: ['./quarter-tag.component.scss'],\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit, OnChanges {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.quarters\n ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value)))\n : false;\n }\n\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.initName();\n this.initTags();\n }\n }\n\n ngOnInit() {\n this.initName();\n this.initTags();\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n initTags() {\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n if (quarter.isSelected) {\n this.selectedValue = quarter;\n this.chosenTagHandler(quarter);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n chosenTagHandler(quarter) {\n const resultDate = moment.unix(quarter.value);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(quarter)\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i; let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: (i === 0),\n disabled: false,\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor((date.getMonth() / 3) + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter(quarter): boolean {\n const quarterDate = moment.unix(quarter.value);\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {\n quarter.disabled = true;\n return true;\n }\n\n return false;\n });\n };\n}\n","<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n styleUrls: ['./year-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\n\nexport class YearTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const calendarDateYear = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === calendarDateYear;\n });\n };\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"year\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MatLegacySelectChange as MatSelectChange } from '@angular/material/legacy-select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { find as _find } from 'lodash';\nimport moment from 'moment';\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n styleUrls: ['./forecast-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n }\n ]\n})\n\nexport class ForecastTagComponent extends AnyTagComponent implements OnChanges {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n\n forecastValue: number | undefined = undefined;\n isDateEventHappened = false;\n initialForecastValue: number;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12', disabled: false },\n { value: 1, label: '1+11', disabled: false },\n { value: 2, label: '2+10', disabled: false },\n { value: 3, label: '3+9', disabled: false },\n { value: 4, label: '4+8', disabled: false },\n { value: 5, label: '5+7', disabled: false },\n { value: 6, label: '6+6', disabled: false },\n { value: 7, label: '7+5', disabled: false },\n { value: 8, label: '8+4', disabled: false },\n { value: 9, label: '9+3', disabled: false },\n { value: 10, label: '10+2', disabled: false },\n { value: 11, label: '11+1', disabled: false }\n ];\n\n private initDateValue = null;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.updateLockedDate();\n }\n }\n\n private isNeedToIncrementYear(dateObj, fiscalYearStartsFrom) {\n return dateObj.month() + 1 >= fiscalYearStartsFrom;\n }\n\n initDate() {\n const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n this.initialForecastValue = this.forecastValue;\n const fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\n\n this.updateYear(fiscal_year, this.forecastValue);\n this.updateLockedDate();\n\n if (!this.initDateValue) {\n this.initDateValue = dateVal.unix();\n }\n }\n\n updateYear(fiscalYear?: number, month?: number) {\n const DATE_TIME = '12:00:00';\n const MONTH_DIFF = 1;\n\n this.dateObj.date = fiscalYear\n ? moment.utc(`${ month + MONTH_DIFF || '01' }/01/${ fiscalYear } ${ DATE_TIME }`, 'MM/DD/YYYY hh:mm:ss').unix()\n : moment.utc().unix();\n }\n\n updateLockedDate() {\n const year = moment.unix(this.dateObj.date).year();\n\n this.forecastTags = this.forecastTags.map(forecastTag => {\n forecastTag.disabled = this.lockedDate.some((timestamp) => {\n const locked = moment.unix(timestamp);\n return locked.month() === forecastTag.value && +locked.year() === +year;\n });\n\n return forecastTag;\n });\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast (New)';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.month() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.year();\n if (this.initialForecastValue !== this.forecastValue && !!this.dateObj?.date && dateObj.year() - moment.unix(this.defaultValue).year() < 1 && fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n if (this.isNeedToIncrementYear(dateObj, fiscal_year_starts_from)) {\n fiscal_year += 1;\n }\n } else {\n if (!this.isNeedToIncrementYear(dateObj, fiscal_year_starts_from)) {\n fiscal_year -= 1;\n }\n }\n }\n return fiscal_year;\n }\n\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler(event: Event) {\n this.updateLockedDate();\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n if (this.isDateEventHappened) return;\n\n const month = this.forecastValue;\n const year = moment.unix(this.dateObj.date).year();\n\n let dateValueResult;\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n const date = new Date(year, month, 1, 12, 0, 0, 0);\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\n } else {\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\n }\n }\n\n dateValueResult = date.getTime() / 1000;\n const initDate = moment.unix(this.dateObj.date).set('month', month);\n const fiscal_year = this.getFiscalYearFromDate(initDate, fiscal_year_starts_from, fiscal_year_back);\n this.updateYear(fiscal_year, date.getMonth());\n\n this.isDateEventHappened = true;\n setTimeout(() => {\n this.isDateEventHappened = false;\n });\n }\n\n const resultTag: IDateTag = {\n name: this.name,\n value: dateValueResult,\n label: `${ _find(this.forecastTags, { value: this.forecastValue })?.label } (${ year })`,\n locked: !this.dateFilter(moment.unix(this.dateObj.date))\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const month = this.forecastValue;\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.month() === month && lockDate.year() === year;\n });\n };\n}\n","<div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler($event)\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler($event)\"></dr-date-picker>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() disabled: boolean;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n","<div>\n <year-tag *ngIf=\"dateTypeChosen === 'year'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></year-tag>\n <quarter-tag *ngIf=\"dateTypeChosen === 'quarter'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></quarter-tag>\n <month-tag *ngIf=\"dateTypeChosen === 'month'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></month-tag>\n <week-tag *ngIf=\"dateTypeChosen === 'week'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></week-tag>\n <day-tag *ngIf=\"dateTypeChosen === 'day'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></day-tag>\n <forecast-tag *ngIf=\"dateTypeChosen === 'forecast_new'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></forecast-tag>\n</div>\n","// instead of getting this from the server each time\n// this is not going to change much\nexport enum TagTypes {\n LIST = 'LIST',\n DATE = 'DATE'\n}\n\nexport enum TagsConfigSubType {\n YEAR = 'year',\n PLAN = 'plan',\n BUDGET_CYCLE = 'budget cycle',\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day',\n FORECAST_NEW = 'forecast_new',\n QUARTER = 'quarter',\n FILE_STATUS = 'file_status'\n}\n\nexport interface ITag {\n id: number;\n name: string;\n type: TAG_TYPES;\n options: any;\n values: string[] | null;\n description: string;\n locked?: boolean;\n}\n\nexport interface ITagForServer {\n id: number;\n name: string;\n value?: number | string;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IDateTag {\n name: string;\n value?: number;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IListTag {\n name: string;\n value?: number;\n label?: string;\n}\n\nexport interface IDynamicTag {\n value: string;\n is_favorite?: boolean;\n}\n\nexport type TDynamicTagValue = IDynamicTag | string | number;\nexport type TDynamicTag = { [parentValue: string]: TDynamicTagValue[] };\nexport type TConnectedTags = { [tagId: number]: ITagForServer[] };\nexport type TAG_TYPES = TagTypes;\n","export enum ToggleButtonMode {\n DEFAULT = 'default',\n DOTTED = 'dotted',\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ToggleButtonMode } from './toggle-button-mode';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() bindHidden: string | null = null;\n @Input() mode: ToggleButtonMode = ToggleButtonMode.DEFAULT;\n @Input() selectedValue: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n const nextValue = item[this.bindValue] || item;\n if (this.selectedValue === nextValue) {\n return;\n }\n\n this.selectedValue = nextValue;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","<div class=\"toggle-container\"\n [class.disabled]=\"_disabled\"\n [attr.mode]=\"mode\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item && !item[bindHidden]\"\n class=\"toggle-container__item\"\n [class.selected]=\"item[bindValue] === selectedValue || item === selectedValue\"\n [class.disabled]=\"item.disabled\"\n (click)=\"setValue(item)\">{{ item[bindLabel] || item.name || item }}</div>\n </ng-container>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\n\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Input() disabled: boolean;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","<div>\n <div *ngIf=\"values.length > 2\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select placeholder=\"Select\"\n [(ngModel)]=\"defaultValue\"\n [items]=\"values\"\n (ngModelChange)=\"chosenTagHandler($event)\">\n\n </dr-select>\n </div>\n <div *ngIf=\"values.length < 3\" class=\"tag__toggle-button\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-toggle-button bindValue=\"value\"\n bindLabel=\"name\"\n [(ngModel)]=\"defaultValue\"\n (ngModelChange)=\"chosenTagHandler($event)\"\n [items]=\"values\" style=\"display: flex\"></dr-toggle-button>\n </div>\n</div>\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, filter, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]'\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n private previousValue = null;\n\n @Input() debounce = 500;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges.pipe(\n skip(1),\n debounceTime(this.debounce),\n filter(value => value !== this.previousValue),\n distinctUntilChanged()\n ).subscribe(value => {\n this.previousValue = value;\n this.ngModelDebounceChange.emit(value)\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input() set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input() set buttonOptions(value) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input() set type(val) {\n this._type = val;\n if (this._type === 'search') {\n this._elementClass.push('search-type');\n if (!this._placeholder) {\n this._placeholder = 'Search...';\n }\n }\n };\n\n get type(): string {\n return this._type;\n }\n\n @Input() name: string;\n\n @Input() set placeholder(val: string) {\n this._placeholder = val;\n };\n\n get placeholder(): string {\n return this._placeholder;\n }\n\n @Input() readonly = false;\n\n @Input() set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Input()\n @HostBinding('class.search-type-mini')\n searchMini: boolean;\n @Output() blur = new EventEmitter();\n @Output() modelDebounceChange = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled = null;\n _elementClass: string[] = [];\n _buttonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save'\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() clearHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\n @ViewChild('inputRef') private readonly inputElement: ElementRef<HTMLInputElement>;\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n private _placeholder = '';\n private _type = 'string';\n private _clearable = false;\n\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked() {\n this.searchHandler.emit(this.value);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n this.clearHandler.emit($event);\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n}\n","<ng-content select=\"[prefixIcon]\"></ng-content>\n<input #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.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()\"></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","import { Component, HostBinding, Input } from '@angular/core';\n\ntype ButtonType =\n 'primary' |\n 'split-primary-first' |\n 'split-primary-last' |\n 'secondary' |\n 'split-secondary-first' |\n 'split-secondary-last' |\n 'icon' |\n 'icon-primary' |\n 'icon-secondary' |\n 'ghost' |\n 'selection' |\n 'highlight' |\n 'danger' |\n 'help';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n @Input()\n @HostBinding('class')\n theme: ButtonType = 'primary';\n\n @Input()\n @HostBinding('class.with-icon')\n icon: string | string[];\n @Input() iconColor: string;\n @Input() iconSize = '24px';\n\n @Input()\n @HostBinding('class.with-icon-after')\n iconAfter: string | string[];\n @Input() iconAfterColor: string;\n @Input() iconAfterSize = '24px';\n\n\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n\n @Input()\n @HostBinding('class.loading')\n isLoading = false;\n\n @Input()\n @HostBinding('class.active')\n isActive = false;\n}\n","<button [disabled]=\"disabled\">\n <i *ngIf=\"icon\"\n class=\"dr-button__icon\"\n [class]=\"icon\"\n [style.font-size]=\"iconSize\"\n [style.color]=\"iconColor || 'inherit'\">\n </i>\n <ng-content></ng-content>\n <div *ngIf=\"isLoading\"\n class=\"dr-button__spinner\">\n <i [style.font-size]=\"iconSize\" class=\"dr-icon-load\"></i>\n </div>\n <i *ngIf=\"iconAfter\"\n class=\"dr-button__icon dr-button__icon--after\"\n [class]=\"iconAfter\"\n [style.font-size]=\"iconAfterSize\"\n [style.color]=\"iconAfterColor || 'inherit'\">\n </i>\n</button>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { DrSelectComponent } from '../dr-select/dr-select.component';\nimport { reduce as _reduce } from 'lodash';\nimport { DrInputComponent } from '../dr-input/dr-input.component';\n\n@Component({\n selector: 'dr-select-add-item',\n templateUrl: './dr-select-add-item.component.html',\n styleUrls: ['./dr-select-add-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSelectAddItemComponent implements OnInit, OnChanges {\n public isDynamicAdding: boolean;\n public dynamicValue: string;\n public currentValues: any[] = [];\n public isDirty: boolean;\n\n @Input() public dynamicAddLabel = 'Add new';\n @Input() public bindValue: string;\n @Input() private values: any[] = [];\n @Output() private dynamicValueAdded: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('dynamicInputRef') set inputRef(input: DrInputComponent) {\n if (!input) return;\n input.focus();\n }\n\n constructor(private drSelect: DrSelectComponent) {\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.calculateCurrentValues();\n }\n\n public ngOnInit(): void {\n this.calculateCurrentValues();\n }\n\n public onDynamicAdding(): void {\n this.isDynamicAdding = true;\n }\n\n public onDynamicAddingClose(): void {\n this.isDynamicAdding = false;\n this.dynamicValue = '';\n }\n\n public isDynamicValueValid(): boolean {\n const trimmedValue = this.dynamicValue?.trim();\n if (!trimmedValue) return false;\n return !this.currentValues.includes(trimmedValue);\n }\n\n public onDynamicAdd(value: string, keydownEvent?: KeyboardEvent): void {\n this.isDirty = true;\n if (!this.isDynamicValueValid()) return;\n if (keydownEvent && keydownEvent.key !== 'Enter') return;\n\n this.onDynamicAddingClose();\n this.drSelect.close();\n this.dynamicValueAdded.emit(value?.trim());\n }\n\n private calculateCurrentValues(): void {\n this.currentValues = this.bindValue\n ? _reduce(this.values, (acc, curr) => {\n acc.push(curr[this.bindValue]);\n return acc;\n }, [])\n : this.values;\n }\n}\n","<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <dr-input #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\"\n icon=\"dr-icon-exit\"\n iconSize=\"18px\"\n (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';\nimport { IDynamicTag, ITag, ITagForServer, TDynamicTag, TDynamicTagValue } from '../models/serverTags';\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-dynamic-tag',\n templateUrl: './dr-dynamic-tag.component.html',\n styleUrls: ['./dr-dynamic-tag.component.scss']\n})\nexport class DrDynamicTagComponent implements OnChanges {\n\n @Input() public values: TDynamicTag;\n @Input() public tagConfig: ITag;\n @Input() public selectedTag: ITagForServer;\n\n @Input() public lockedTags: any[] = [];\n @Input() public connectedTags: ITagForServer[];\n @Input() public isDynamicTagAddEnabled: boolean;\n @Input() public disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n @Output() tagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public selectedDynamicTag: TDynamicTagValue;\n public currentValues: TDynamicTagValue[];\n public isLockedTagSelected: boolean;\n\n public get isPrimitiveDataSource(): boolean {\n const values = Object.values(this.values) || [];\n return !_isObject(values[0]);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.updateDynamicTagValues();\n }\n\n public onTagChanged($event: string): void {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: $event,\n locked: this.lockedTags.includes($event)\n };\n\n if (!_isNil(this.selectedTag?.locked)) {\n resultEvent.locked = this.selectedTag.locked;\n }\n\n if (!_isNil(this.selectedTag?.label)) {\n resultEvent.label = this.selectedTag.label;\n }\n\n this.isLockedTagSelected = resultEvent.locked;\n this.tagChange.emit(resultEvent);\n }\n\n public onOptionClick($event: Event, tagValue: string | number): void {\n if (this.lockedTags.includes(tagValue)) {\n $event.stopImmediatePropagation();\n }\n }\n\n public onDynamicValueAdd($event: string) {\n const parentValueKey = this.getParentValueKey();\n const parentValues = this.values[parentValueKey] || [];\n\n if (this.isPrimitiveDataSource) {\n this.values[parentValueKey] = [$event, ...parentValues];\n } else {\n this.values[parentValueKey] = [{ value: $event }, ...parentValues];\n }\n\n this.selectedDynamicTag = $event;\n\n this.currentValues = this.values[parentValueKey];\n this.onTagChanged($event);\n this.tagAdd.emit($event);\n }\n\n private updateDynamicTagValues(): void {\n const parentValueKey = this.getParentValueKey();\n this.currentValues = this.values[parentValueKey];\n this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, this.selectedTag?.value);\n this.onTagChanged(this.selectedDynamicTag);\n }\n\n private getSelectedDynamicTag(currentValues: TDynamicTagValue[], selectedValue: string | number): string {\n if (!currentValues?.length) return null;\n\n if (_isObject(currentValues[0])) {\n const valueFromConfig = _find(currentValues, { value: selectedValue }) as IDynamicTag;\n const favoriteValue = _find(currentValues, { is_favorite: true }) as IDynamicTag;\n return (valueFromConfig || favoriteValue || currentValues[0]).value;\n }\n\n const valueFromConfig = _find(currentValues, (value) => value === selectedValue);\n return (valueFromConfig || currentValues[0]) as string;\n }\n\n private getParentValueKey(): string {\n return _map(this.connectedTags, this.tryToParseParentValue).join('__');\n }\n\n private tryToParseParentValue(connectedTags: ITagForServer) {\n if (_isNumber(connectedTags.value)) {\n const momentData = moment.unix(connectedTags.value);\n const convertedParentValue = momentData.get('year'); // TODO: add input prop (selectedTimeDimension) or Format\n\n if (momentData.isValid() && convertedParentValue) {\n return convertedParentValue;\n }\n }\n\n return connectedTags.value;\n }\n}\n","<p class=\"dynamic-tag__label\">{{ tagConfig.name }}</p>\n<dr-select [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { IDateTag, IListTag, ITag, ITagForServer, TagTypes, TDynamicTag, TDynamicTagValue } from '../models/serverTags';\nimport { find as _find, forEach as _forEach, map as _map, merge as _merge, some as _some } from 'lodash';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrTagComponent implements OnInit, OnChanges {\n @Input() tagConfig: ITag;\n // selectedTagValue\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[] = [];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n\n @Input() tagsConfig: ITag[];\n @Input() dynamicTagValues: TDynamicTag = {};\n\n @Input() public set connectedTags(tags: ITagForServer[]) {\n this._connectedTags = tags || [];\n }\n\n @Input() isDynamicTagAddEnabled: boolean;\n\n @Input() disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>(); // Not emit value for dynamic tag\n @Output() dynamicTagChange: EventEmitter<ITagForServer[]> = new EventEmitter<ITagForServer[]>();\n @Output() dynamicTagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public defaultValue: string | undefined;\n public currentTagDynamic: boolean;\n public currentTagConnectedToDynamic = false;\n public tagTypes = TagTypes;\n\n public dateTag: any;\n public listTag: any;\n\n private connectedTagsValues: ITagForServer[] = [];\n private dynamicTagValue: ITagForServer;\n private _connectedTags: ITagForServer[] = [];\n\n public get connectedTags(): ITagForServer[] {\n return this._connectedTags;\n }\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: ''\n };\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges.tagsConfig) {\n this.calculateDynamicTag();\n }\n }\n\n ngOnInit() {\n this.dateTag = {\n type: this.tagConfig.type,\n sub_type: this.tagConfig.options.sub_type,\n value: this.selectedTag?.value,\n };\n\n this.listTag = {\n name: this.tagConfig.name,\n type: this.tagConfig.type,\n values: this.tagConfig.values,\n value: this.selectedTag?.value,\n };\n\n if (this.tagsConfig && this.currentTagDynamic) {\n this.configureTagItems();\n }\n\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: event.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onDynamicTagChange(tag?: ITagForServer) {\n if (tag) {\n this.dynamicTagValue = tag;\n }\n\n this.dynamicTagChange.emit([...this.connectedTagsValues, this.dynamicTagValue]);\n }\n\n private onDynamicHandler(event) {\n const connectedDateTagConfig = _find(this.tagsConfig, (tagConfig) => tagConfig.name === event.name);\n this.connectedTags = _map(this.connectedTags, tag => {\n if (tag.id === connectedDateTagConfig.id) {\n tag.value = event.value;\n tag.locked = event.locked;\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n tag.label = event.label;\n }\n }\n\n return tag;\n });\n\n const resultEvent: ITagForServer = {\n id: connectedDateTagConfig.id,\n name: connectedDateTagConfig.name,\n value: event.value\n };\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n resultEvent.label = event.label;\n resultEvent.locked = event.locked;\n }\n\n\n const savedTag = _find(this.connectedTagsValues, { id: resultEvent.id });\n\n if (savedTag) {\n _merge(savedTag, resultEvent);\n } else {\n this.connectedTagsValues.push(resultEvent);\n }\n\n this.onDynamicTagChange();\n }\n\n private configureTagItems() {\n _forEach(this.tagsConfig, (tagConfig) => {\n // TODO: task DR-22350\n // TODO: should be like this.tagConfig.options.connected_tags.includes(curr.options.sub_type)\n if (!['year'].includes(tagConfig.options.sub_type)) return;\n if (tagConfig.type === TagTypes.DATE) {\n this.dateTag = {\n type: tagConfig.type,\n sub_type: tagConfig.options.sub_type,\n value: (_find(this.connectedTags, { id: tagConfig.id }) || {}).value,\n };\n }\n\n if (tagConfig.type === TagTypes.LIST) {\n this.listTag = {\n name: tagConfig.name,\n type: tagConfig.type,\n values: tagConfig.values,\n value: tagConfig?.options?.default_value,\n };\n }\n\n if (!_find(this.connectedTags, { id: tagConfig.id })) {\n this.connectedTags.push({\n id: tagConfig.id,\n name: tagConfig.name,\n value: undefined,\n });\n }\n });\n }\n\n private calculateDynamicTag(): void {\n this.currentTagDynamic = this.tagConfig.options.is_custom;\n\n this.currentTagConnectedToDynamic = _some(this.tagsConfig, (tagConfig) => tagConfig.options.is_custom\n && ['year'].includes(this.tagConfig.options.sub_type));\n }\n}\n","<div [class.dynamic-tag]=\"currentTagDynamic\">\n <date-tag *ngIf=\"dateTag.type === tagTypes.DATE && !currentTagConnectedToDynamic\"\n [dateTypeChosen]=\"dateTag.sub_type\"\n [defaultValue]=\"dateTag.value\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (selectedDate)=\"onDateHandler($event)\"></date-tag>\n\n <list-tag *ngIf=\"listTag.type === tagTypes.LIST && !currentTagConnectedToDynamic && !tagConfig.options?.is_custom\"\n (tagChange)=\"onListHandler($event)\"\n [name]=\"listTag.name\"\n [values]=\"listTag.values\"\n [disabled]=\"disabled\"\n [defaultValue]=\"listTag?.value || defaultValue\"></list-tag>\n\n <dr-dynamic-tag *ngIf=\"currentTagDynamic\"\n [lockedTags]=\"lockedDate\"\n [connectedTags]=\"connectedTags\"\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"selectedTag\"\n [isDynamicTagAddEnabled]=\"isDynamicTagAddEnabled\"\n [values]=\"dynamicTagValues\"\n [disabled]=\"disabled\"\n (tagChange)=\"onDynamicTagChange($event)\"\n (tagAdd)=\"dynamicTagAdd.emit($event)\"></dr-dynamic-tag>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {\n });\n onTouched: any = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","<label>\n <input\n type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n (change)=\"valueChanged(value)\"\n [(ngModel)]=\"modelValue\"\n [disabled]=\"disabled\"\n (click)=\"toggleChange($event)\">\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: `\n <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {\n }\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {\n };\n protected onTouched = () => {\n };\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes.pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n ).subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange)).pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin').pipe(\n filter(event => hostElement.contains(event.target as Node)),\n switchMap(() => merge(\n fromEvent<Event>(this.document, 'focusin'),\n fromEvent<Event>(this.document, 'click'),\n )),\n filter(event => !hostElement.contains(event.target as Node)),\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor, AfterViewInit {\n public tooltip: string;\n @Input() checkedStatus: boolean;\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n @Input()\n @HostBinding('class.text-nowrap')\n textNowrap: boolean;\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n @ViewChild('checkboxContent') checkboxContent: ElementRef;\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n const element = this.checkboxContent.nativeElement;\n if (this.textNowrap && element.scrollWidth > element.clientWidth) {\n this.tooltip = element.innerText;\n }\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setValue(event) {\n const input = (event.target as HTMLInputElement);\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","<label>\n <input type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'checked' : 'unchecked'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"disabled\"\n (change)=\"setValue($event)\"\n (click)=\"$event.stopPropagation()\">\n <span #checkboxContent\n [class]=\"icon\"\n [class.indeterminate]=\"indeterminate\"\n [drTooltip]=\"tooltip\">\n <ng-content></ng-content>\n </span>\n</label>\n","import { Component, Input } from '@angular/core';\n\nexport enum LinkTheme {\n DEFAULT = 'DEFAULT',\n DEFAULT_UNDERLINE = 'DEFAULT_UNDERLINE',\n GRAY_UNDERLINE = 'GRAY_UNDERLINE',\n}\n\nexport const DEFAULT_LINK_FONT_SIZE = '14px' as const;\nexport const DEFAULT_LINK_FONT_WEIGHT = 400 as const;\n\n@Component({\n selector: 'dr-link',\n templateUrl: './dr-link.component.html',\n styleUrls: ['./dr-link.component.scss']\n})\nexport class DrLinkComponent {\n @Input({ required: true }) link: string;\n @Input() fontSize: string = DEFAULT_LINK_FONT_SIZE;\n @Input() fontWeight: number = DEFAULT_LINK_FONT_WEIGHT;\n @Input() theme: LinkTheme = LinkTheme.DEFAULT;\n}\n","<a class=\"dr-link\"\n [class]=\"theme\"\n [href]=\"link\"\n [style.font-weight]=\"fontWeight\"\n [style.font-size]=\"fontSize\">\n <ng-content></ng-content>\n</a>\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateTags, IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { Moment } from 'moment';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\nimport { TooltipPosition } from '../../../dr-tooltip/enums/tooltip-position.enum';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit, OnChanges {\n presetTagSelected: string;\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n @Input() paginationDebounce;\n\n @Input() set isUsingDateTagPresets(flag: boolean) {\n this.datePickerService.isUsingDateTagPresets = flag;\n }\n\n @Input() set presetTag(tag: string) {\n this.datePickerService.presetTag$.next(tag as DateTags);\n }\n\n @Input() datepickerTooltip: TemplateRef<any> | null;\n @Input() datepickerTooltipPosition: string = TooltipPosition.TOP;\n @Input() datepickerTooltipTimeout: number = 0;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n this.setValueFromMoment(v);\n this.cdr.markForCheck();\n }\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n @Output() onChangePresetTag = new EventEmitter<DateTags>();\n\n private readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.getNextDate('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.getNextDate('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.getNextDate('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.getNextDate('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.getNextDate('addCalendarDays', 7, forward)\n };\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n\n let displayValue = _.cloneDeep(this.value);\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n displayValue = this.datePickerService.subtractFiscalYearMonthsFromDate(displayValue);\n }\n\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + displayValue.format(formatCached);\n }\n\n public isNextDateDisabled = false;\n public isPrevDateDisabled = false;\n\n private onChangeDebounced$: Subject<number> = new Subject<number>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n\n datePickerService.presetTag$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n let tagObj = PRESET_TAGS_LIST.find((val) => val?.key === value);\n this.presetTagSelected = tagObj?.label;\n this.onChangePresetTag.emit(value);\n });\n\n this.datePickerService.onSameDaySelectedInCalendar$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n\n datePickerService.updatedDateAndClose$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.setValueFromMoment(value);\n } else {\n this.onChangeCallback(this.innerValue.unix());\n }\n this.datePicker.close();\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n\n if (this.paginationDebounce) {\n this.onChangeDebounced$.pipe(takeUntil(this.destroyed$), debounceTime(this.paginationDebounce)).subscribe((value) => {\n this.onChangeCallback(value);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n this.datePickerService.updateTimeframeAndFormat(changes.format.currentValue);\n }\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](forward);\n this.pagingDateChange(nextValue);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(newValue: Moment): void {\n if (this.paginationDebounce) {\n // this is required for not sending extra requests when user quickly clicking on pagination\n // here we do the same as in setValueFromMoment(newValue) with difference\n // that updating of ngModel/formControl is debounced\n this.datePickerService.resetPresetTag();\n const timestamp = newValue.unix();\n this.writeValue(timestamp);\n this.onChangeDebounced$.next(this.innerValue.unix());\n } else {\n this.setValueFromMoment(newValue);\n }\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.datePickerService.resetPresetTag();\n super.setValue(timestamp);\n }\n public writeValue(value: number): void {\n super.writeValue(value);\n if (!value) return;\n this.restrictPagination();\n }\n\n private getNextDate(actionCall: string, amount: number, forward: boolean): Moment {\n return this.dateAdapter[actionCall]?.(this.innerValue, forward ? amount : -amount);\n }\n\n private restrictPagination(): void {\n if (!this._min && !this._max) return;\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](true);\n const prevValue = this.pagingSetup[this.datePickerService.timeframe](false);\n this.isNextDateDisabled = this._max && nextValue && nextValue.unix() > this._max.unix();\n this.isPrevDateDisabled = this._min && prevValue && prevValue.unix() < this._min.unix();\n }\n}\n","<dr-button [disabled]=\"isPrevDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-left\" (click)=\"pagingClicked(false)\"></dr-button>\n<div [drTooltip]=\"datepickerTooltip\"\n [drTooltipPosition]=\"datepickerTooltipPosition\"\n [drTooltipMousleaveTimeout]=\"datepickerTooltipTimeout\"\n class=\"dr-datepicker-input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n\n <div class=\"dr-datepicker-input-container__formatted-value-display\" (click)=\"datepickerInput.click()\">\n <span *ngIf=\"presetTagSelected && datePickerService.isUsingDateTagPresets\"> {{ presetTagSelected }} </span>\n <span>{{ presetTagSelected && datePickerService.isUsingDateTagPresets ? '(' + displayedFormattedValue + ')' : displayedFormattedValue }}</span>\n </div>\n <input\n #datepickerInput\n [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"\n />\n</div>\n<dr-button [disabled]=\"isNextDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-right\" (click)=\"pagingClicked(true)\"></dr-button>\n<mat-datepicker #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n [panelClass]=\"datePickerService.isUsingDateTagPresets ? 'date-picker-preset-tag' : 'dr-timeframe-datepicker'\"\n >\n</mat-datepicker>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerPeriodPosition } from '../../../models/datePicker';\nimport { IDatePickerRange } from '../../../models/datePickerRange';\n\nconst noop = () => {};\n\n@Component({\n selector: 'dr-date-picker-range',\n templateUrl: './dr-date-picker-range.component.html',\n styleUrls: ['./dr-date-picker-range.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerRangeComponent, multi: true }\n ],\n})\nexport class DrDatePickerRangeComponent implements ControlValueAccessor {\n\n private get defaultValue(): IDatePickerRange {\n return {\n from: null,\n to: null,\n };\n }\n\n public _disabled: boolean;\n\n @Input() format: string;\n\n @Input() periodPositionFrom: DatePickerPeriodPosition = DatePickerPeriodPosition.START_OF_PERIOD;\n @Input() periodPositionTo: DatePickerPeriodPosition = DatePickerPeriodPosition.END_OF_PERIOD;\n\n @Input() labelFrom = 'From';\n @Input() labelTo = 'To';\n\n @Input() placeholderFrom = 'Select...';\n @Input() placeholderTo = 'Select...';\n\n @Input() set disabled(val: boolean) {\n this.setDisabledState(val);\n }\n @Input() disabledFrom: boolean;\n @Input() disabledTo: boolean;\n\n @HostBinding('class.column') @Input() column: boolean;\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n private innerValue: IDatePickerRange = this.defaultValue;\n\n private innerValueFrom: number = null;\n\n public get valueFrom(): number {\n return this.innerValueFrom;\n }\n\n public set valueFrom(v: number) {\n if (v !== this.innerValueFrom) {\n this.innerValueFrom = v;\n this.innerValue.from = this.innerValueFrom;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n private innerValueTo: number = null;\n\n public get valueTo(): number {\n return this.innerValueTo;\n }\n\n public set valueTo(v: number) {\n if (v !== this.innerValueTo) {\n this.innerValueTo = v;\n this.innerValue.to = this.innerValueTo;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n constructor(\n protected cdr: ChangeDetectorRef,\n ) {\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: IDatePickerRange): void {\n if (!value) {\n this.innerValue = this.defaultValue;\n this.innerValueFrom = this.innerValue.from;\n this.innerValueTo = this.innerValue.to;\n this.cdr.markForCheck();\n } else if (value.from !== this.innerValue.from || value.to !== this.innerValue.to) {\n this.innerValueFrom = value.from || null;\n this.innerValueTo = value.to || null;\n this.innerValue = {\n from: this.innerValueFrom,\n to: this.innerValueTo,\n }\n this.cdr.markForCheck();\n }\n }\n\n public setDisabledState(val: boolean) {\n this._disabled = val;\n this.cdr.markForCheck();\n }\n}\n","<div class=\"date-picker-range__from\">\n <span *ngIf=\"labelFrom\" class=\"date-picker-range__from__label\">{{ labelFrom }}</span>\n <dr-date-picker [(ngModel)]=\"valueFrom\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionFrom\"\n [placeholder]=\"placeholderFrom\"\n [max]=\"valueTo\"\n [disabled]=\"_disabled || disabledFrom\">\n </dr-date-picker>\n</div>\n<div class=\"date-picker-range__to\">\n <span *ngIf=\"labelTo\" class=\"date-picker-range__to__label\">{{ labelTo }}</span>\n <dr-date-picker [(ngModel)]=\"valueTo\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionTo\"\n [placeholder]=\"placeholderTo\"\n [min]=\"valueFrom\"\n [disabled]=\"_disabled || disabledTo\">\n </dr-date-picker>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoComponent {\n\n @Input() data: TooltipInfoContext;\n @Input() useDescriptionAsHTML: boolean;\n\n constructor() {\n }\n\n}\n","<div class=\"tooltip-info\">\n <i *ngIf=\"data?.icon else defaultIcon\" class=\"fa\" [class]=\"data.icon\" [style.fontSize.px]=\"14\"\n [style.margin.px]=\"12\" [style.color]=\"data?.iconColor || '#7B61FF'\"></i>\n <div class=\"tooltip-info-content-wrapper\">\n <div *ngIf=\"data?.title\" class=\"tooltip-info_header\">\n <span>{{data.title}}</span>\n </div>\n <div *ngIf=\"data?.description\" class=\"tooltip-info_description\"\n [class.tooltip-info_description-no-border]=\"!data.title\">\n <ng-container *ngIf=\"!data.title\"></ng-container>\n <span *ngIf=\"!useDescriptionAsHTML\">{{data.description}}</span>\n <div *ngIf=\"useDescriptionAsHTML\" [innerHTML]=\"data.description\"></div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultIcon>\n <ng-container *ngIf=\"!data.icon\">\n <div class=\"default-icon\"></div>\n </ng-container>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info-simple',\n templateUrl: './tooltip-info-simple.component.html',\n styleUrls: ['./tooltip-info-simple.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoSimpleComponent {\n\n @Input() context: TooltipInfoContext;\n\n constructor() {\n }\n\n}\n","<div class=\"tooltip-info-simple\">\n <div *ngIf=\"context?.title\" class=\"tooltip-info-simple__title\">{{context?.title}}</div>\n <div *ngIf=\"context?.description\" class=\"tooltip-info-simple__description\">{{context?.description}}</div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-no-body',\n templateUrl: './tooltip-no-body.component.html',\n styleUrls: ['./tooltip-no-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipNoBodyComponent implements OnInit {\n\n @Input() context: any;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"tooltip-bold\" [ngClass]=\"{'tooltip-bold--icon': context?.icon}\">\n <div class=\"tooltip-bold__title\">\n <i *ngIf=\"context?.icon\" [class]=\"context?.icon\" [style.color]=\"context?.iconColor || 'black'\"></i>\n {{ context.title }}\n </div>\n <div class=\"tooltip-bold-text\">\n {{ context.text }}\n </div>\n</div>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-process-default',\n template: `\n <div class=\"container\" [innerHTML]=\"text\"></div>\n `,\n styles: [`\n .container {\n width: auto;\n max-width: 388px;\n text-align: start;\n font-size: 14px;\n line-height: 22px;\n padding: 10px 12px;\n color: #151B3F;\n background-color: #FFF;\n border-radius: 8px;\n box-shadow: 0px 4px 8px 1px rgba(0, 0, 0, 0.25);\n border: 1px solid #C3C4CE;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipProcessDefaultComponent {\n\n @Input() text: string;\n\n constructor() {\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class StepperComponent<T extends Step> {\n\n @Input() steps: T[];\n @Input() currentStep: T;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Input() mini = false;\n @Output() stepChange: EventEmitter<T> = new EventEmitter<T>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<HTMLElement>;\n\n selectStep(step: T): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: T): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed) return `${ (step?.completedTasks / step?.requiredTasks * 100) || 0 }%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","<div class=\"scroll-section\" *ngIf=\"stepper?.scrollLeft !== 0\" (click)=\"scrollLeft()\">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n<div #stepper\n class=\"stepper\"\n [class.stepper--disabled]=\"disabled\"\n [class.stepper--mini]=\"mini\">\n <ng-container *ngFor=\"let step of steps; let index = index; last as isLast; first as isFirst\">\n <div *ngIf=\"!step.hide\" class=\"step\" (click)=\"selectStep(step)\"\n [class.step-setup]=\"inlineLabels\">\n <div class=\"step-wrapper\" [drTooltip]=\"step.description && tooltip\"\n [drTooltipContext]=\"{ step: step }\"\n [drTooltipPosition]=\"'bottom'\">\n <div data-test=\"step_point\" class=\"step-point\" [class.active]=\"currentStep === step\" [class.completed]=\"step.completed\">\n <div *ngIf=\"step === currentStep;\" class=\"ellipse\"></div>\n <ng-container [ngSwitch]=\"step.completed\">\n <ng-template [ngSwitchCase]=\"true\">\n <div class=\"pointer blue\">\n <i class=\"dr-icon-approve\"></i>\n </div>\n </ng-template>\n <ng-template [ngSwitchCase]=\"false\">\n <div class=\"pointer\" [class.gray]=\"step !== currentStep\"\n [ngClass]=\"{'blue with-ellipse': step === currentStep}\">\n <div [hidden]=\"step === currentStep || hiddenIndex\" class=\"text\">{{index + 1}}</div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div data-test=\"step_label_name\" class=\"step-label\" [class.active]=\"currentStep === step\"\n [ngClass]=\"step.completed ? 'completed' : 'uncompleted'\">\n <span [hidden]=\"hiddenNames\">{{step.name}}</span>\n </div>\n <ng-container *ngIf=\"inlineLabels\" [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n <span *ngIf=\"step.showProgress\"\n data-test=\"step_progress\"\n class=\"step-progress\">\n {{(step.requiredTasks ? step.completedTasks : step.requiredTasks) + '/' + step.requiredTasks}}\n </span>\n </div>\n <ng-container *ngIf=\"!inlineLabels\" [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n </div>\n <div *ngIf=\"mini\" class=\"stepper--mini-connector\"></div>\n </ng-container>\n</div>\n<div (click)=\"scrollRight()\" class=\"scroll-section\"\n *ngIf=\"stepper?.scrollWidth > stepper?.clientWidth && roundWidth(stepper?.scrollLeft + stepper?.clientWidth) < stepper?.scrollWidth\">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n\n<ng-template #tooltip let-step=\"step\">\n <div class=\"step-tooltip\">\n <div class=\"step-tooltip_name\">{{step.name}}</div>\n <div class=\"step-tooltip_description\">{{step.description}}</div>\n </div>\n</ng-template>\n\n<ng-template #connector let-step=\"step\" let-isLast=\"isLast\" let-index=\"index\">\n <div class=\"step-connector\" [class.only-one-step]=\"steps.length === 1\"\n [class]=\"'step-connector--' + (!inlineLabels ? 'absolute' : 'inline')\"\n *ngIf=\"steps.length === 1 || !isLast\"\n [style.visibility]=\"withoutConnectors || steps[step.index + 1]?.hide ? 'hidden' : 'unset'\"\n [class.connector-grand]=\"!inlineLabels && (index === 0 || index === steps.length - 2)\">\n <div class=\"progress\" [style.width]=\"getWidth(step)\"></div>\n </div>\n</ng-template>\n","import { IFeedback } from \"./feedback\";\n\nexport const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport enum ChatRole {\n USER = 'user',\n ASSISTANT = 'assistant',\n}\n\nexport interface IChatMessageRef {\n id: string\n seq: number\n}\n\ninterface IChatNewMessage {\n kind: CHAT_MESSAGE_TYPE\n role: ChatRole\n body: string\n}\n\nexport interface IChatMessageBase extends IChatMessageRef {\n kind: string | CHAT_MESSAGE_TYPE;\n reply: boolean;\n role: ChatRole;\n avatarUrl?: string;\n user?: any;\n subjectId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatImageMessage & IChatDownloadFileMessage;\n\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatImageMessage,\n IChatDownloadFileMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n role: ChatRole;\n reply: boolean;\n text?: string;\n body?: any;\n url?: string;\n label?: string;\n parameters?: any;\n data?: any;\n avatarUrl?: string;\n user?: any;\n feedback?: IFeedback;\n subjectId?: string;\n\n constructor(obj: any) {\n this.id = obj?.id;\n this.subjectId = obj?.subjectId;\n this.feedback = obj?.feedback;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.role = obj?.role;\n this.reply = obj?.role !== ChatRole.USER;\n this.text = obj?.text || obj.body;\n this.url = obj?.url;\n this.label = obj?.label;\n this.body = obj?.body;\n this.parameters = obj?.parameters;\n //TODO fix me: remove staticFunc\n this.avatarUrl = obj?.avatarUrl ?\n obj.avatarUrl :\n !obj?.role || obj?.role === ChatRole.ASSISTANT ? (document as any).staticFunc('/genius-logo.webp') : '';\n\n this.user = obj?.user;\n }\n}\n","import { ChangeDetectionStrategy, Component, } from '@angular/core';\n\n@Component({\n selector: 'dr-dot-flashing',\n templateUrl: 'dr-dot-flashing.component.html',\n styleUrls: ['./dr-dot-flashing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDotFlashingComponent {\n\n constructor() {\n }\n}\n","<div class=\"dot-flashing\"></div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n\n _textareaInitialHeight = true;\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n @Output() abort = new EventEmitter<any>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${ res.src })`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage() {\n if (this.waitForReply) {\n return;\n }\n\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this._textareaInitialHeight = true;\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n\n abortMessage() {\n this.abort.emit();\n }\n\n onModelChange(value: string): void {\n this._textareaInitialHeight = false;\n this.inputChange.emit(value);\n }\n\n getTextAreaHeight(textAreaElement: HTMLTextAreaElement) {\n let height;\n if (this._textareaInitialHeight) {\n height = 45;\n } else {\n height = textAreaElement.scrollHeight;\n }\n return `height: ${ height }px;`;\n }\n}\n","<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keyup.enter)=\"sendMessage()\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <dr-dot-flashing *ngIf=\"waitForReply\" class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","export class DrAvatarService {\n public static avatarColors = [\n '#0061FF',\n '#20A452',\n '#19194C',\n '#FF4E00',\n '#B14EF2',\n '#578AFF',\n '#F13FA4',\n '#8693A2',\n '#00867E',\n ];\n\n public static getAvatarColorNumber(index: number): number {\n return index % this.avatarColors.length;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'drAvatar'\n})\nexport class DrAvatarPipe implements PipeTransform {\n\n transform(item: any, type: string = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DrAvatarService } from './services/dr-avatar.service';\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrAvatarComponent {\n\n @Input() set users(users: any[] | any) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = DrAvatarService.getAvatarColorNumber(index);\n }\n });\n }\n }\n\n @Input() warning = false;\n @Input() showUnassigned = false;\n @Input() drAvatarTooltipPosition = 'bottom';\n @Input() drAvatarTooltipClass: string;\n @Input() drAvatarSize: string;\n @Input() drAvatarIsClickable = true;\n\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\n\n constructor() {\n }\n\n getFirstUsers(): any[] {\n return this.parsedUsers.slice(0, 2);\n }\n\n getLastUsers(): any[] {\n if (this.parsedUsers.length > 2) {\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\n }\n return [];\n }\n\n public getAvatarColor(user: { [field: string]: any, colorNumber?: number }): string {\n return DrAvatarService.avatarColors[user.colorNumber] || DrAvatarService.avatarColors[0];\n }\n}\n","<div class=\"users-section\">\n <div *ngIf=\"!parsedUsers.length\"\n class=\"users-section__default\">\n </div>\n\n <div *ngFor=\"let user of getFirstUsers()\"\n class=\"users-section__user\"\n [class]=\"user.status\"\n [style.width]=\"drAvatarSize || null\"\n [style.height]=\"drAvatarSize || null\"\n [style.background-color]=\"getAvatarColor(user)\"\n [ngClass]=\"{\n 'users-section__default': showUnassigned && !user.email,\n 'users-section__user--clickable': drAvatarIsClickable\n }\"\n [drTooltip]=\"user | drAvatar\"\n [drTooltipClass]=\"drAvatarTooltipClass\"\n [drTooltipPosition]=\"drAvatarTooltipPosition\"\n (click)=\"drAvatarIsClickable && userClicked.emit()\">\n {{user | drAvatar: 'initials'}}\n </div>\n\n <div *ngIf=\"parsedUsers.length > 2\"\n class=\"users-section__user icon-2\"\n [drTooltip]=\"usersTemplate\"\n [drTooltipPosition]=\"'bottom'\">\n {{getLastUsers().length}}\n </div>\n</div>\n\n<ng-template #usersTemplate>\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\n <div class=\"users-section__user\"\n (click)=\"userClicked.emit()\"\n [class]=\"user.class\">\n {{user | drAvatar: 'initials'}}\n </div>\n <span class=\"username\">\n {{user | drAvatar}}\n </span>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","<div class=\"text\" *ngIf=\"message\">{{ message.text }}</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${ file.url })`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(protected cd: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","<div class=\"message-content-group\">\n <a *ngFor=\"let file of readyFiles\" [href]=\"file.url\" target=\"_blank\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle && file.icon\"></i>\n <div *ngIf=\"file.urlStyle\" [style.background-image]=\"file.urlStyle\"></div>\n </a>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * User info for avatar\n */\n @Input() user: any;\n\n @ContentChild('drChatMessageActions') drChatMessageActions: TemplateRef<any>;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {\n }\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${ type }'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${ type }'.`,\n );\n }\n\n return customMessageDirective;\n }\n}\n","<ng-container *ngIf=\"message.avatarUrl; else userAvatar\">\n <div class=\"avatar\" [style.background-image]=\"'url(' + message.avatarUrl + ')'\"></div>\n</ng-container>\n<ng-template #userAvatar>\n <dr-avatar *ngIf=\"message.user\" [users]=\"message.user\"></dr-avatar>\n</ng-template>\n<div class=\"message\" [class.message--custom]=\"customMessage\">\n <ng-container [ngSwitch]=\"message.kind\">\n <dr-chat-message-text *ngSwitchCase=\"MESSAGE_TYPE.TEXT\" [message]=\"message\"></dr-chat-message-text>\n <dr-chat-message-file *ngSwitchCase=\"MESSAGE_TYPE.DOWNLOAD_FILE\" [message]=\"message\"></dr-chat-message-file>\n <ng-container *ngSwitchDefault>\n <ng-container [ngTemplateOutlet]=\"getTemplate()\" [ngTemplateOutletContext]=\"getTemplateContext()\"></ng-container>\n </ng-container>\n </ng-container>\n <div class=\"message__actions\" *ngIf=\"drChatMessageActions;\">\n <ng-container [ngTemplateOutlet]=\"drChatMessageActions\"></ng-container>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DoCheck, ElementRef, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild,\n} from '@angular/core';\nimport * as _ from 'lodash';\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-chat-suggestions',\n templateUrl: 'chat-suggestions.component.html',\n styleUrls: ['./chat-suggestions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatSuggestionsComponent implements OnInit, OnDestroy, AfterViewInit {\n\n _nonHiddenValues: string[] = [];\n visibleValues: string[] = [];\n isSuggestedMenuOpen = false;\n colsCount = 1;\n private destroy$ = new Subject<void>();\n\n @Input() values: string [] = [];\n @Input() fullScreen: boolean = false;\n @Input() buttonMode: boolean = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChild('suggestionsContainer', {static: false}) suggestionContainer: ElementRef;\n\n get hiddenValues(): string[] {\n return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];\n }\n set hiddenValues(values) {\n localStorage.setItem('aiChatSuggestions', JSON.stringify(values));\n }\n\n onResize$: Observable<ResizeObserverEntry[]>;\n\n colWidth = 300;\n colGap = 28;\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.filterValues();\n }\n\n ngAfterViewInit() {\n this.onResize$ = DrSharedUtils.fromResizeObserver(this.suggestionContainer?.nativeElement);\n this.onResize$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.recalculateColsCount();\n });\n this.recalculateColsCount();\n }\n\n onItemClick(item: string) {\n if (this.waitForReply) {\n return;\n }\n this.isSuggestedMenuOpen = false;\n this.suggestionSelect.emit(item);\n this.hiddenValues = [...this.hiddenValues, item];\n this.filterValues();\n }\n\n filterValues() {\n const hiddenValues = this.hiddenValues;\n this._nonHiddenValues = _.filter(this.values, val => !hiddenValues.includes(val));\n this.fillVisibleValues();\n }\n\n fillVisibleValues() {\n const maxItemsCount = this.fullScreen ? 6 : 3;\n const nonHiddenValues = _.clone(this._nonHiddenValues);\n this.visibleValues.length = 0;\n for (let i = 0; i < maxItemsCount; i++) {\n if (!nonHiddenValues.length) {\n break;\n }\n const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);\n const item = nonHiddenValues.splice(randomIndex, 1)[0];\n this.visibleValues.push(item);\n }\n this.cdr.markForCheck();\n }\n\n clearHidden() {\n localStorage.setItem('aiChatSuggestions', null);\n this.filterValues();\n }\n\n recalculateColsCount() {\n if (this.suggestionContainer?.nativeElement?.offsetWidth >= (this.colWidth * 3 + this.colGap * 2)) {\n this.colsCount = 3;\n } else if (this.suggestionContainer?.nativeElement?.offsetWidth > (this.colWidth * 2 + this.colGap)) {\n this.colsCount = 2;\n } else {\n this.colsCount = 1;\n }\n this.cdr.markForCheck();\n }\n\n toggleSuggestedMenu(): void {\n this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;\n if (this.isSuggestedMenuOpen) {\n this.fillVisibleValues();\n }\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"chat-suggestions\" #suggestionsContainer\n [ngClass]=\"{'chat-suggestions--three-cols': colsCount === 3,\n 'chat-suggestions--two-cols': colsCount === 2,\n 'chat-suggestions--one-col': colsCount === 1,\n 'chat-suggestions--button-mode': buttonMode }\">\n <ng-container *ngIf=\"buttonMode; else suggestionCards\">\n <div class=\"chat-suggestions__container\"\n [class.chat-suggestions__container--opened]=\"isSuggestedMenuOpen\"\n *ngIf=\"visibleValues.length\">\n <dr-button theme=\"ghost\" class=\"chat-suggestions__container__button\" (click)=\"toggleSuggestedMenu()\">\n Suggested chats\n </dr-button>\n <ng-container *ngTemplateOutlet=\"suggestionCards\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #suggestionCards>\n <div class=\"chat-suggestions__items\"\n [ngClass]=\"{'chat-suggestions__items--three-cols': colsCount === 3,\n 'chat-suggestions__items--two-cols': colsCount === 2,\n 'chat-suggestions__items--one-col': colsCount === 1 }\">\n <div *ngFor=\"let item of visibleValues\"\n class=\"chat-suggestions__items__item\" (click)=\"onItemClick(item)\">\n {{ item }}\n </div>\n </div>\n</ng-template>\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService],\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @Input() fullScreen: boolean;\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n }\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @Input() suggestions: string[] = [];\n @Input() reopen: boolean;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @ContentChild('drChatHeader') chatHeader: TemplateRef<unknown>;\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild(DrChatSuggestionsComponent) _chatSuggestions: DrChatSuggestionsComponent;\n\n public get messagesContainerWithScroll(): boolean {\n return (\n this.messagesContainer && this.messagesContainer.nativeElement.scrollHeight > this.messagesContainer.nativeElement.offsetHeight\n );\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n this.messages.changes.subscribe(messages => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n if (this.messagesContainer) {\n const scrollToOptions: any = {\n top: this.messagesContainer.nativeElement.scrollHeight,\n };\n\n if (!this.reopen) {\n scrollToOptions.behavior = 'smooth';\n }\n\n this.messagesContainer.nativeElement.scrollTo(scrollToOptions);\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n clearHiddenSuggestions() {\n if (this._chatSuggestions) {\n this._chatSuggestions.clearHidden();\n }\n }\n\n hideSuggestions(): void {\n if (this._chatSuggestions.isSuggestedMenuOpen) {\n this._chatSuggestions.toggleSuggestedMenu();\n }\n }\n}\n","<div class=\"chat\" [class.chat--in-full-screen]=\"fullScreen\">\n <div class=\"chat__sticky-top\">\n <ng-container *ngIf=\"chatHeader\" [ngTemplateOutlet]=\"chatHeader\"></ng-container>\n\n <div class=\"chat__alert\">\n <ng-content select=\"dr-chat-alert\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"!messages?.length\" class=\"chat__empty-state\">\n <span class=\"chat__empty-state__text\">{{ noMessagesPlaceholder }}</span>\n </div>\n\n <div *ngIf=\"messages?.length\" class=\"chat__messages\">\n <div #messagesContainer class=\"chat__messages__container\"\n [class.chat__messages__container--scroll]=\"messagesContainerWithScroll\">\n <ng-content select=\"dr-chat-message\"></ng-content>\n </div>\n </div>\n\n <dr-chat-suggestions *ngIf=\"suggestions?.length\"\n [values]=\"suggestions\"\n [fullScreen]=\"fullScreen\"\n [waitForReply]=\"waitForReply\"\n class=\"chat__suggestions\"\n [class.chat__suggestions--full-height]=\"fullScreen && !messages?.length\"\n [buttonMode]=\"!!messages?.length\"\n (suggestionSelect)=\"suggestionSelect.emit($event)\">\n </dr-chat-suggestions>\n\n <div class=\"form\">\n <ng-content select=\"dr-chat-form\"></ng-content>\n </div>\n</div>\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'dr-chat-alert',\n templateUrl: './dr-chat-alert.component.html',\n styleUrls: ['./dr-chat-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatAlertComponent {\n @Input() iconClass = 'dr-icon-info';\n @Output() close: EventEmitter<void> = new EventEmitter<void>();\n}\n","<i [class]=\"iconClass\"></i>\n<ng-content></ng-content>\n<dr-button (click)=\"close.emit()\"\n theme=\"icon\"\n icon=\"dr-icon-exit\"\n class=\"chat-alert-close-btn\"\n drTooltip=\"Close\">\n</dr-button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","<span class=\"toggle-title mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{toggleTitle}}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'toggle-on' : 'toggle-off'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\">\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"toggle-title ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{toggleTitle}}</span>\n","export enum BadgeStatus {\n INFO = 'info',\n ERROR = 'error',\n WARNING = 'warning',\n SUCCESS = 'success',\n REGULAR = 'regular',\n PROGRESS = 'progress',\n DOTTED = 'dotted',\n}\n","import {\n Component,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { BadgeStatus } from '../models/badgeStatus';\n\n@Component({\n templateUrl: 'dr-badge-status.component.html',\n selector: 'dr-badge-status',\n styleUrls: ['dr-badge-status.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrBadgeStatusComponent {\n\n @Input() theme: BadgeStatus = BadgeStatus.REGULAR;\n @Input() icon: string;\n @Input() label: string;\n @Input() tooltip: string;\n}\n","<div class=\"badge-status\" [drTooltip]=\"tooltip\"\n [ngClass]=\"'badge-status--' + theme\">\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i>\n <span *ngIf=\"label\">{{ label }}</span>\n</div>\n","export enum DrAlertTheme {\n SUCCESS = 'success',\n ERROR = 'error',\n BOLD_ERROR = 'bold-error',\n WARNING = 'warning',\n INFO = 'info',\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { DrAlertTheme } from './enums/dr-alert-theme.enum';\n\nconst ALERT_THEME_ICONS = {\n [DrAlertTheme.SUCCESS]: 'dr-icon-uploaded-success',\n [DrAlertTheme.BOLD_ERROR]: 'dr-icon-error',\n [DrAlertTheme.ERROR]: 'dr-icon-error',\n [DrAlertTheme.WARNING]: 'dr-icon-warning',\n [DrAlertTheme.INFO]: 'dr-icon-info',\n};\n\n@Component({\n selector: 'dr-alert',\n templateUrl: './dr-alert.component.html',\n styleUrls: ['./dr-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAlertComponent {\n @Input() theme: DrAlertTheme = DrAlertTheme.INFO;\n @Input() customIconClass: string;\n @Input() text: string;\n\n @HostBinding('class')\n get elementClass(): string {\n return `dr-alert dr-alert--${ this.theme }`;\n }\n\n public get themeIconClass(): string {\n return this.customIconClass || ALERT_THEME_ICONS[this.theme];\n }\n}\n","<div class=\"dr-alert__content-wrapper\">\n <ng-container *ngIf=\"!contentRef.innerHTML.trim()\">\n <i [class]=\"'dr-alert__icon ' + themeIconClass\"></i>\n <span class=\"dr-alert__text\">{{ text }}</span>\n </ng-container>\n <div class=\"dr-alert__custom-content\" #contentRef>\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-code-editor-hint-wrapper',\n template: ` <span [innerHTML]=\"content\" [drTooltip]=\"tooltip\"></span> `,\n})\nexport class CodeEditorHintWrapperComponent {\n content: string;\n tooltip: string;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n NgZone,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Editor, EditorChange, EditorFromTextArea, ScrollInfo } from 'codemirror';\nimport * as CodeMirror from 'codemirror'\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\n\n@Component({\n selector: 'dr-codemirror',\n template: `\n <textarea\n [name]=\"name\"\n class=\"dr-codemirror {{ className }}\"\n [class.dr-codemirror--focused]=\"isFocused\"\n autocomplete=\"off\"\n [autofocus]=\"autoFocus\"\n #ref\n >\n </textarea>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrCodemirrorComponent),\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrCodemirrorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor, DoCheck\n{\n @Input() className = '';\n @Input() name = 'codemirror';\n @Input() autoFocus = false;\n\n @Input()\n set options(value: { [key: string]: any }) {\n this._options = value;\n if (!this._differ && value) {\n this._differ = this._differs.find(value).create();\n }\n }\n @Input() preserveScrollPosition = false;\n @Output() cursorActivity = new EventEmitter<Editor>();\n @Output() focusChange = new EventEmitter<boolean>();\n @Output() scroll = new EventEmitter<ScrollInfo>();\n @Output() drop = new EventEmitter<[Editor, DragEvent]>();\n @Output() codeMirrorLoaded = new EventEmitter<DrCodemirrorComponent>();\n @ViewChild('ref') ref!: ElementRef<HTMLTextAreaElement>;\n value = '';\n disabled = false;\n isFocused = false;\n codeMirror?: EditorFromTextArea;\n\n private _codeMirror: any;\n private _differ?: KeyValueDiffer<string, any>;\n private _options: any;\n\n constructor(private _differs: KeyValueDiffers, private _ngZone: NgZone) {}\n\n get codeMirrorGlobal(): any {\n if (this._codeMirror) {\n return this._codeMirror;\n }\n\n this._codeMirror = CodeMirror;\n return this._codeMirror;\n }\n\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(async () => {\n const codeMirrorObj = await this.codeMirrorGlobal;\n const codeMirror = codeMirrorObj?.default ? codeMirrorObj.default : codeMirrorObj;\n this.codeMirror = codeMirror.fromTextArea(\n this.ref.nativeElement,\n this._options,\n ) as EditorFromTextArea;\n this.codeMirror.on('cursorActivity', cm => this._ngZone.run(() => this.cursorActive(cm)));\n this.codeMirror.on('scroll', this.scrollChanged.bind(this));\n this.codeMirror.on('blur', () => this._ngZone.run(() => this.focusChanged(false)));\n this.codeMirror.on('focus', () => this._ngZone.run(() => this.focusChanged(true)));\n this.codeMirror.on('change', (cm, change) =>\n this._ngZone.run(() => this.codemirrorValueChanged(cm, change)),\n );\n this.codeMirror.on('drop', (cm, e) => {\n this._ngZone.run(() => this.dropFiles(cm, e));\n });\n this.codeMirror.setValue(this.value);\n this.codeMirrorLoaded.emit(this);\n });\n }\n\n ngDoCheck() {\n if (!this._differ) {\n return;\n }\n // check options have not changed\n const changes = this._differ.diff(this._options);\n if (changes) {\n changes.forEachChangedItem(option =>\n this.setOptionIfChanged(option.key, option.currentValue),\n );\n changes.forEachAddedItem(option => this.setOptionIfChanged(option.key, option.currentValue));\n changes.forEachRemovedItem(option =>\n this.setOptionIfChanged(option.key, option.currentValue),\n );\n }\n }\n\n ngOnDestroy() {\n // is there a lighter-weight way to remove the cm instance?\n if (this.codeMirror) {\n this.codeMirror.toTextArea();\n }\n }\n\n codemirrorValueChanged(cm: Editor, change: EditorChange) {\n const cmVal = cm.getValue();\n if (this.value !== cmVal) {\n this.value = cmVal;\n this.onChange(this.value);\n }\n }\n\n setOptionIfChanged(optionName: string, newValue: any) {\n if (!this.codeMirror) {\n return;\n }\n\n // cast to any to handle strictly typed option names\n // could possibly import settings strings available in the future\n this.codeMirror.setOption(optionName as any, newValue);\n }\n\n focusChanged(focused: boolean) {\n this.onTouched();\n this.isFocused = focused;\n this.focusChange.emit(focused);\n }\n\n scrollChanged(cm: Editor) {\n this.scroll.emit(cm.getScrollInfo());\n }\n\n cursorActive(cm: Editor) {\n this.cursorActivity.emit(cm);\n }\n\n dropFiles(cm: Editor, e: DragEvent) {\n this.drop.emit([cm, e]);\n }\n\n writeValue(value: string) {\n if (value === null || value === undefined) {\n return;\n }\n if (!this.codeMirror) {\n this.value = value;\n return;\n }\n const cur = this.codeMirror.getValue();\n if (value !== cur && DrSharedUtils.normalizeLineEndings(cur) !== DrSharedUtils.normalizeLineEndings(value)) {\n this.value = value;\n if (this.preserveScrollPosition) {\n const prevScrollPosition = this.codeMirror.getScrollInfo();\n this.codeMirror.setValue(this.value);\n this.codeMirror.scrollTo(prevScrollPosition.left, prevScrollPosition.top);\n } else {\n this.codeMirror.setValue(this.value);\n }\n }\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.setOptionIfChanged('readOnly', this.disabled);\n }\n\n private onChange = (_: any) => {};\n\n private onTouched = () => {};\n}\n","import { Component, HostBinding, Input, Optional } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgModel } from '@angular/forms';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n})\nexport class DrErrorComponent {\n constructor(@Optional() private formGroupDirective: FormGroupDirective) {}\n\n public _control: AbstractControl | NgModel;\n @Input() set control(value: AbstractControl | NgModel) {\n if (value) {\n this._control = value;\n }\n }\n\n @Input() set controlName(value: string) {\n if (!value || typeof value !== 'string') return;\n\n if (!this.formGroupDirective) {\n throw new Error('You must provide a formGroupDirective to use this input');\n }\n\n this.control = this.formGroupDirective.control.get(value) as AbstractControl;\n }\n\n @Input() label = 'Field error';\n @Input() errorTooltipPosition = 'top';\n @Input() displayAsLabel = false;\n\n @Input() @HostBinding('class.no-icon') noIcon = false;\n\n get errorString() {\n if (this._control.hasError('required')) {\n return 'Field is required!';\n }\n\n return this._control.errors?.errorString || null;\n }\n\n get isWarning() {\n return this._control.errors?.isWarning;\n }\n}\n","<div *ngIf=\"_control.status === 'INVALID' && !_control.pristine\"\n [drTooltip]=\"displayAsLabel ? null : errorString\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.error-container--cursor-pointer]=\"!displayAsLabel\"\n [class.warning]=\"isWarning\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{ displayAsLabel ? errorString : label }}</span>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n forwardRef,\n Injector,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as CodeMirror from 'codemirror';\nimport { Hint, Hints } from 'codemirror';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { ICodeEditorHint, ICodeEditorMarker } from './models/code-editor-hint';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\nconst noop = () => {};\n\n@Component({\n selector: 'dr-code-editor',\n templateUrl: './dr-code-editor.component.html',\n styleUrls: ['./dr-code-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrCodeEditorComponent), multi: true }],\n})\nexport class DrCodeEditorComponent implements ControlValueAccessor {\n constructor(\n private cdr: ChangeDetectorRef,\n private cfr: ComponentFactoryResolver,\n private injector: Injector,\n ) {}\n\n public innerValue: any = '';\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n private existMarkers: any[];\n private highlightedHints: any[];\n private parenthesesMarkers = [];\n private parenthesisColors: string[] = [\n '#2F3E48',\n '#1f68cc',\n '#9480CD',\n '#4D9944',\n '#B03E84',\n '#B64900',\n '#267392',\n '#326AC7',\n ];\n private parenthesesMap = {\n '}': '{',\n ']': '[',\n ')': '(',\n '{': '}',\n '[': ']',\n '(': ')',\n };\n private doc: any;\n private _hints: ICodeEditorHint[] = [];\n\n private hintRefsStack = [];\n\n public codeMirrorOptions: any = {\n lineWrapping: true,\n matchBrackets: true,\n autoRefresh: true,\n lineNumbers: false,\n mode: 'javascript',\n extraKeys: { 'Ctrl-Space': 'autocomplete' },\n autoCloseBrackets: true,\n hintOptions: {\n container: window.document.body,\n completeSingle: false,\n },\n };\n public isFocused: boolean;\n @Input() private markers: ICodeEditorMarker[];\n @Input() public highlightHints = false;\n\n @Input() set hints(values: ICodeEditorHint[]) {\n if (values?.length) {\n this._hints = values;\n this.registerHints(values);\n }\n }\n\n @Input() control: FormControl | any;\n @ViewChild('codeEditor') private codeEditor: DrCodemirrorComponent;\n\n public get value(): string {\n return this.innerValue;\n }\n\n public set value(v: string) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n this.highlightCustomFunctionsInEditor();\n this.colorizeParentheses();\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n }\n }\n\n public writeValue(value: string): void {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n focusChanged(bool): void {\n this.isFocused = bool;\n }\n public afterCodeMirrorLoaded(): void {\n this.doc = this.codeEditor.codeMirror.getDoc();\n\n this.codeEditor.codeMirror.on('keyup', (cm, event) => {\n if (!this._hints.length) return;\n\n if (\n (!event.ctrlKey && event.keyCode >= 65 && event.keyCode <= 90) ||\n (event.keyCode >= 97 && event.keyCode <= 122) ||\n (event.keyCode >= 46 && event.keyCode <= 57) ||\n event.keyCode === 32\n ) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n });\n this.codeEditor.codeMirror.on('focus', (cm, event) => {\n if (!this._hints.length) return;\n\n setTimeout(() => {\n if (this.isFocused) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n }, 200);\n });\n\n setTimeout(() => {\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n });\n }\n\n private isClosedParenthesis(parenthesis: string): boolean {\n return ['}', ')', ']'].some((value: string) => value === parenthesis)\n }\n\n private colorizeParentheses(): void {\n const string = this.doc.getValue();\n const stack = [];\n const result = [];\n let line = 0;\n let ch = 0;\n this.parenthesesMarkers.forEach((marker) => marker.clear());\n this.parenthesesMarkers = [];\n\n for (let index = 0; index < string.length; index++) {\n const char = string.charAt(index);\n if (char === '\\n') {\n line++;\n ch = 0;\n continue;\n }\n if (this.parenthesesMap[char]) {\n const peek = stack ? stack[stack.length - 1] : null;\n\n if (!this.isClosedParenthesis(char)) {\n let colorIndex = (peek?.colorIndex + 1) || 0;\n colorIndex = colorIndex > this.parenthesisColors.length - 1 ? 0 : colorIndex;\n\n stack.push({ value: char, color: this.parenthesisColors[colorIndex], colorIndex });\n result[index] = { value: char, color: this.parenthesisColors[colorIndex], colorIndex };\n }\n if (stack?.length && peek?.value === this.parenthesesMap[char]) {\n result[index] = { value: char, color: peek.color, colorIndex: peek.colorIndex };\n stack.pop();\n }\n }\n\n if (result[index]) {\n this.parenthesesMarkers.push(\n this.doc.markText(\n {\n line,\n ch,\n },\n {\n line,\n ch: ch + 1,\n },\n {\n css: `color: ${result[index].color}`,\n },\n ),\n );\n }\n ch++;\n }\n }\n\n private highlightCustomFunctionsInEditor(): void {\n const markers = this.markers || [];\n const existMarkers = this.existMarkers || [];\n\n existMarkers.forEach((m) => m.clear());\n this.doc.eachLine((line) => {\n markers.forEach((marker) => {\n const searchStr = marker.name + '\\\\(';\n const matches = line.text.matchAll(new RegExp(searchStr, 'g'));\n for (const match of matches) {\n existMarkers.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index,\n },\n {\n line: line.lineNo(),\n ch: match.index + marker.name.length,\n },\n {\n className: 'marker',\n title: marker.title,\n },\n ),\n );\n }\n });\n });\n }\n\n public pasteText(text: string, goCharLeft?: boolean): void {\n this.doc.replaceSelection(text);\n this.doc.cm.focus();\n if (goCharLeft) {\n this.doc.cm.execCommand('goCharLeft');\n }\n }\n\n private registerHints(dictionary: ICodeEditorHint[] = []) {\n const hintRegexp = /[\\w$]|[ &'\"#%$@]/;\n CodeMirror.registerHelper('hint', 'dictionaryHint', (editor) => {\n const cursor = editor.getCursor();\n const currentLine = editor.getLine(cursor.line);\n\n let start = cursor.ch;\n let end = cursor.ch;\n while (end < currentLine.length && hintRegexp.test(currentLine.charAt(end))) ++end;\n while (start && hintRegexp.test(currentLine.charAt(start - 1))) --start;\n\n const currentWord = (start !== end && currentLine.slice(start, end)) || '';\n\n const filteredDictionary = (\n !currentWord\n ? dictionary\n : dictionary.filter((item) => item.value.toLowerCase().includes(currentWord.toLowerCase()))\n ).sort() || [];\n\n const hintsList: Hint[] = filteredDictionary.map((item: ICodeEditorHint) => {\n const displayText = item.value;\n let text = item.value;\n\n if (currentLine[start - 1] !== '[') {\n text = '[' + text;\n }\n if (currentLine[end] !== ']') {\n text += ']';\n }\n\n return {\n text,\n displayText,\n render: (element: HTMLLIElement, data: Hints, current: Hint) => {\n const startIndex = current.displayText.toLowerCase().indexOf(currentWord.toLowerCase());\n const stringToReplace = current.displayText.slice(startIndex, startIndex + currentWord.length);\n const hintHTML =\n `${item.icon} ` + current.displayText.replace(stringToReplace, `<b>${stringToReplace}</b>`);\n\n const componentFactory = this.cfr.resolveComponentFactory(CodeEditorHintWrapperComponent);\n const componentRef = componentFactory.create(this.injector);\n componentRef.instance.content = hintHTML;\n componentRef.instance.tooltip = item.hint;\n componentRef.changeDetectorRef.detectChanges();\n element.appendChild(componentRef.location.nativeElement);\n\n this.hintRefsStack.push(componentRef);\n },\n };\n });\n\n return {\n list: hintsList,\n from: CodeMirror.Pos(cursor.line, start),\n to: CodeMirror.Pos(cursor.line, end),\n };\n });\n\n // @ts-ignore\n CodeMirror.commands.autocomplete = (cm) => {\n this.destroyHints();\n\n // @ts-ignore\n CodeMirror.showHint(cm, CodeMirror.hint.dictionaryHint);\n };\n }\n\n private destroyHints() {\n this.hintRefsStack.forEach((ref) => ref.destroy());\n this.hintRefsStack = [];\n }\n\n private updateHighlightHints() {\n const hints = this._hints || [];\n const highlightedHints = this.highlightedHints || [];\n\n highlightedHints.forEach((m) => m.clear());\n\n this.doc.eachLine((line) => {\n const matches = line.text.matchAll(/(?:\\[).+?(?=\\])/gm);\n for (const match of matches) {\n const hint = hints.find((h) => h.value === match[0].replace('[', ''));\n if (hint) {\n highlightedHints.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index + 1,\n },\n {\n line: line.lineNo(),\n ch: match.index + 1 + hint.value.length,\n },\n {\n className: 'hint-variable',\n title: hint.value,\n },\n ),\n );\n }\n }\n });\n\n this.cdr.markForCheck();\n }\n}\n","<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\"\n >Start typing your formula here. We support (+,-,*,/). <br />\n For Example: [Feb-22] - [Jan-22]</span\n>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n","import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';\n\nexport enum Scenario {\n ACTUALS = 'Actuals',\n FORECAST = 'Forecast',\n BUDGET = 'Budget',\n NONE = 'None',\n}\n\nexport interface IScenarioTag extends ITag {\n scenarioData: IScenario;\n}\n\nexport interface IScenarioCommon {\n toggle: boolean;\n name: string;\n description: string;\n acceptableSubTags?: TagsConfigSubType[];\n turnOffDateTags?: boolean;\n}\n\nexport interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {\n name?: string;\n description?: string;\n hidden?: boolean;\n}\n\nexport interface IScenarioTagUi extends IScenarioCommon {\n selectedTagSubType: TagsConfigSubType;\n type: TagTypes;\n subTags?: IScenarioSubTag[];\n}\n\nexport interface IScenarioSubTag {\n name: string;\n subType: TagsConfigSubType;\n hidden?: boolean;\n}\n\nexport type TScenarioTagConfigData = { [key in TagsConfigSubType]?: IScenario };\nexport type TScenarioTagData<T> = { [key in Scenario]?: T };\nexport type TScenarioDataChanged = { scenario: Scenario; tags?: ITagForServer[]; tagsConfig?: ITag[] };\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';\nimport { reduce as _reduce, find as _find, merge as _merge } from 'lodash';\nimport { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\n\n@Component({\n selector: 'dr-scenario-tag-configuration',\n templateUrl: './dr-scenario-tag-configuration.component.html',\n styleUrls: ['./dr-scenario-tag-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrScenarioTagConfigurationComponent implements OnChanges {\n @Input() public tagsConfig: ITag[];\n @Input() public set currentTags(tags: ITagForServer[]) {\n this._currentTags = tags;\n this.currentTagsMap = _reduce(tags, (acc, curr) => {\n const tagId = _find(this.tagsConfig, { name: curr.name })?.id;\n if (isNaN(tagId)) return acc;\n\n acc[tagId] = curr;\n return acc;\n }, {});\n }\n\n @Input() public scenario: Scenario;\n @Input() public connectedTags: TConnectedTags = {};\n @Input() public dynamicTagValues: TDynamicTag = {};\n\n @Input() public lockedDates: string[] | number[] = [];\n @Input() public fiscalYearStartsFrom: number;\n @Input() public fiscalYearBack: boolean;\n @Input() public isDynamicAddEnabled: boolean;\n\n @Output() public scenarioTagDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public currentTagsMap: { [tagId: number]: ITagForServer } = {};\n\n private _currentTags: ITagForServer[] = [];\n private dynamicTagsToSave: ITagForServer[] = [];\n private tagsToSave: ITagForServer[] = [];\n\n public get currentTags(): ITagForServer[] {\n return this._currentTags;\n }\n\n public ngOnChanges(simpleChanges: SimpleChanges): void {\n this.currentTags = this.currentTags;\n }\n\n public onTagChange($event: ITagForServer): void {\n const savedTag = _find(this.tagsToSave, { id: $event.id });\n\n if (savedTag) {\n _merge(savedTag, $event);\n } else {\n this.tagsToSave.push($event);\n }\n\n this.onScenarioTagDataChanged();\n }\n\n public onDynamicTagsChange($event: ITagForServer[]): void {\n this.dynamicTagsToSave = $event;\n this.onScenarioTagDataChanged();\n }\n\n public onScenarioTagDataChanged(): void {\n const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];\n this.scenarioTagDataChanged.emit({\n scenario: this.scenario,\n tagsConfig: this.tagsConfig,\n tags,\n });\n }\n}\n","<div class=\"scenario-tag-configuration\"\n *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n","import { TagsConfigSubType } from '../../models/serverTags';\nimport { Scenario, TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';\n\nexport const allDateTags = {\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.DAY]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.WEEK]: {\n name: 'Date',\n toggle: false,\n }\n};\n\nexport function getScenarioTagDataConfig(isMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData> {\n return {\n [Scenario.ACTUALS]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.BUDGET]: {\n [TagsConfigSubType.BUDGET_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.YEAR],\n hidden: !isMultipleDimension,\n },\n [TagsConfigSubType.PLAN]: {\n toggle: false,\n turnOffDateTags: true,\n hidden: isMultipleDimension,\n },\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.FORECAST]: {\n [TagsConfigSubType.FORECAST_NEW]: {\n toggle: true,\n name: 'Date',\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.NONE]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: true,\n },\n },\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../../models/serverTags';\nimport { IScenario, IScenarioSubTag, IScenarioTag, IScenarioTagUi, Scenario } from '../interfaces/scenario';\nimport {\n cloneDeep as _cloneDeep,\n filter as _filter,\n find as _find,\n forEach as _forEach,\n orderBy as _orderBy,\n indexOf as _indexOf,\n reduce as _reduce,\n some as _some, map as _map,\n includes as _includes\n} from 'lodash';\nimport { getScenarioTagDataConfig } from '../consts/scenario-tags-config';\n\n@Injectable()\nexport class ScenarioService {\n private DEFAULT_FORECAST_DATE_TAG = 'Month';\n\n private wholeTagsConfig: ITag[];\n private currentTagsConfig: ITag[];\n private isMultipleDimension: boolean;\n\n public get scenarios(): Scenario[] {\n return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);\n }\n\n private get areExistingTagsConfig(): boolean {\n return !!this.currentTagsConfig;\n }\n\n public initScenarioTags(wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension: boolean): void {\n if (!wholeTagsConfig?.length) return;\n\n this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);\n this.currentTagsConfig = currentTagsConfig;\n this.isMultipleDimension = isMultipleDimension;\n }\n\n public getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[] {\n const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) =>\n _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));\n\n return this.sortScenarioTags(scenarioTagsConfig);\n }\n\n public getScenarioTagsByScenario(scenario: Scenario) {\n const scenarioTagsConfig: IScenarioTag[] = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);\n const scenarioTagsUi: IScenarioTagUi[] = [];\n\n _forEach(scenarioTagsConfig, (scenarioTag: IScenarioTag) => {\n const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });\n\n const tag: IScenarioTagUi = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateScenarioSubTags(tag, scenarioTag);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return;\n scenarioTagsUi.push(tag);\n });\n\n if (this.areExistingTagsConfig) {\n this.initExistingTagsConfig(scenario, scenarioTagsUi);\n }\n\n const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });\n if (isTagNotSupportingDates) {\n this.turnOffDateTag(scenarioTagsUi);\n }\n\n const tagWithSpecificDateTags: IScenarioTagUi = _find(scenarioTagsUi, (tag) => tag.toggle && !!tag.acceptableSubTags?.length);\n if (tagWithSpecificDateTags) {\n this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);\n }\n\n return this.sortScenarioTags(scenarioTagsUi);\n }\n\n public tagNotSupportingDatesHandler<T extends IScenarioTagUi>(tag: T, tagNotSupportingDates: T, dateTag: T): void {\n if (!tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n tagNotSupportingDates.toggle = false;\n }\n\n if (tag === tagNotSupportingDates) {\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n public tagAcceptableSubTagsHandler<T extends IScenarioTagUi>(tag: T, dateTag: T): void {\n if (!tag.acceptableSubTags?.length) return;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n\n public sortScenarioTags(scenarioTagsUi: any[]): any[] {\n return _orderBy(scenarioTagsUi, [\n (tag) => (tag.type === TagTypes.DATE ? 0 : 1),\n (tag) => (tag.name === 'File Status')\n ]);\n }\n\n public static sortedSubTags(tag: IScenarioTagUi): IScenarioSubTag[] {\n const SUB_TAGS_ORDER = [TagsConfigSubType.DAY, TagsConfigSubType.WEEK, TagsConfigSubType.MONTH, TagsConfigSubType.QUARTER, TagsConfigSubType.YEAR];\n return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));\n }\n\n private initExistingTagsConfig(scenario: Scenario, scenarioTagsUi: IScenarioTagUi[]) {\n _forEach(this.currentTagsConfig, (tagConfig) => {\n const tagSubType = tagConfig?.options?.sub_type;\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);\n if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {\n return;\n }\n\n const scenarioTagUi = tagConfig.type === TagTypes.DATE\n ? _find(scenarioTagsUi, { type: tagConfig.type })\n : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });\n\n if (scenarioTagUi) {\n scenarioTagUi.toggle = true;\n scenarioTagUi.selectedTagSubType = tagSubType;\n }\n });\n }\n\n private prepareScenarioTag(scenarioTagsConfig: IScenarioTag[], scenarioTag: IScenarioTag, scenario: Scenario, isDateTag: boolean): IScenarioTagUi {\n const toggleStatus = isDateTag\n ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)\n : scenarioTag.scenarioData.toggle;\n\n const selectedTagSubType = isDateTag\n ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)\n : scenarioTag.options.sub_type;\n\n const tag: IScenarioTagUi = {\n toggle: this.areExistingTagsConfig ? false : toggleStatus,\n name: scenarioTag.scenarioData.name || scenarioTag.name,\n description: scenarioTag.scenarioData.description || scenarioTag.description,\n type: scenarioTag.type,\n selectedTagSubType,\n };\n\n if (scenarioTag.scenarioData.turnOffDateTags) {\n tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;\n }\n\n if (scenarioTag.scenarioData.acceptableSubTags) {\n tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;\n }\n\n return tag;\n }\n\n private updateScenarioSubTags(tag: IScenarioTagUi, scenarioTag: IScenarioTag): void {\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n const tagSubType = scenarioTag.options.sub_type;\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,\n });\n }\n\n private turnOffDateTag(scenarioTags: IScenarioTagUi[]): void {\n const dateTag = _find(scenarioTags, { type: TagTypes.DATE });\n\n if (!dateTag) return;\n dateTag.toggle= false;\n }\n\n private hideNotAvailableTags(tagWithSpecificDateTags: IScenarioTagUi, scenarioTags: IScenarioTagUi[]): void {\n const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;\n if (!subTags.length) return;\n\n _forEach(scenarioTags, (tag) => {\n if (!tag.acceptableSubTags?.length) return;\n if (tag !== tagWithSpecificDateTags) {\n tag.toggle = false;\n }\n });\n\n _forEach(subTags, (subTag) => {\n subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);\n });\n }\n\n private getScenarioSelectedDateTag(scenario: Scenario, dateTags: IScenarioTag[]): TagsConfigSubType {\n const monthSubType = _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options?.sub_type;\n\n const scenarioSelectedDateTag = {\n [Scenario.ACTUALS]: () => monthSubType,\n [Scenario.BUDGET]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,\n [Scenario.FORECAST]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options?.sub_type,\n [Scenario.NONE]: () => monthSubType,\n }\n\n if (!scenarioSelectedDateTag[scenario]) return;\n return scenarioSelectedDateTag[scenario]();\n }\n\n private getScenarioTagsConfig(scenario: Scenario, tagsConfig: ITag[]): IScenarioTag[] {\n return _reduce(tagsConfig, (acc: IScenarioTag[], tagConfig: ITag) => {\n const tagSubType = tagConfig?.options?.sub_type;\n\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);\n const scenarioTagConfig: IScenario = scenarioTagDataConfig && scenarioTagDataConfig[scenario] ?\n scenarioTagDataConfig[scenario][tagSubType] : null;\n if (!scenarioTagConfig || scenarioTagConfig.hidden) return acc;\n\n const clonedTagConfig = _cloneDeep(tagConfig);\n const scenarioTag: IScenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };\n\n acc.push(scenarioTag);\n return acc;\n }, []);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../models/serverTags';\nimport { find as _find, reduce as _reduce, some as _some } from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\n\n@Injectable()\nexport class TagsConstructorService {\n private readonly tagsNotSupportingDatesTag = [TagsConfigSubType.PLAN];\n private readonly tagsAcceptableSubTags = {\n [TagsConfigSubType.BUDGET_CYCLE]: [TagsConfigSubType.YEAR],\n };\n\n public buildTags(tagsConfigToDisplay: ITag[], selectedTagsConfig: ITag[]): IScenarioTagUi[] {\n return _reduce(tagsConfigToDisplay, (acc, tagConfig: ITag) => {\n const isTagWithSubTags = tagConfig.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(acc, { type: tagConfig.type });\n\n const tag = tagWithSubTags || this.prepareTag(tagConfig, selectedTagsConfig, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateSubTags(tag, tagConfig, selectedTagsConfig);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return acc;\n\n acc.push(tag);\n return acc;\n }, []);\n }\n\n private updateSubTags(tag: IScenarioTagUi, tagConfig: ITag, selectedTagsConfig: ITag[]): void {\n const tagSubType = tagConfig.options.sub_type;\n if (tagSubType === TagsConfigSubType.FORECAST_NEW) return;\n\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n tag.name = 'Date';\n\n const enabledTagSubType = _find(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === tagSubType)?.options?.sub_type;\n tag.toggle = !!enabledTagSubType || tag.toggle;\n\n if (tag.toggle && enabledTagSubType) {\n tag.selectedTagSubType = tagSubType;\n }\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagConfig.name,\n });\n }\n\n private prepareTag(tagConfig: ITag, selectedTagsConfig: ITag[], isTagWithSubTags: boolean): IScenarioTagUi {\n const selectedTagSubType = isTagWithSubTags ? TagsConfigSubType.MONTH : tagConfig.options.sub_type;\n const toggleStatus = _some(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === selectedTagSubType);\n\n const tag: IScenarioTagUi = {\n toggle: toggleStatus,\n name: tagConfig.name,\n description: tagConfig.description,\n type: tagConfig.type,\n selectedTagSubType,\n }\n\n if (this.tagsNotSupportingDatesTag.includes(selectedTagSubType)) {\n tag.turnOffDateTags = true;\n }\n\n if (this.tagsAcceptableSubTags[selectedTagSubType]) {\n tag.acceptableSubTags = this.tagsAcceptableSubTags[selectedTagSubType];\n }\n\n return tag;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\nimport { ToggleButtonMode } from '../dr-inputs/dr-toggle-button/toggle-button-mode';\nimport { ITag } from '../models/serverTags';\nimport {\n reduce as _reduce,\n some as _some,\n filter as _filter,\n forEach as _forEach,\n} from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n@Component({\n selector: 'dr-tags-constructor',\n templateUrl: './dr-tags-constructor.component.html',\n styleUrls: ['./dr-tags-constructor.component.scss'],\n})\nexport class DrTagsConstructorComponent implements OnInit {\n public readonly toggleButtonMode = ToggleButtonMode;\n\n public get currentTags(): IScenarioTagUi[] {\n return this.scenarioTagsConfig || this.tagsUi;\n }\n\n public get isScenarioFlow(): boolean {\n return !!this.scenarioTagsConfig;\n }\n\n /*\n * Used only for scenario flow (dr-scenario-configuration tag)\n * (only this input necessary for scenario flow)\n * */\n @Input() scenarioTagsConfig: IScenarioTagUi[];\n\n /*\n * Used for display provided tagsConfig\n * (for scenario flow, use this input to get tagsConfig data on stateChange emit)\n * */\n @Input() tagsConfigToDisplay: ITag[] = [];\n\n /*\n * Used for toggle on provided tagsConfig\n * (not related to scenario flow)\n * */\n @Input() selectedTagsConfig: ITag[] = [];\n\n @Output() tagChange: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() tagToggle: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() stateChange: EventEmitter<ITag[]> = new EventEmitter<ITag[]>();\n\n private tagsUi = [];\n\n private get tagsWithSubTags(): IScenarioTagUi[] {\n return _reduce(this.tagsUi, (acc, curr: IScenarioTagUi) => {\n if (curr?.subTags?.length) {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n private get tagsNotSupportingDateTag(): IScenarioTagUi[] {\n return _reduce(this.tagsUi, (acc, curr: IScenarioTagUi) => {\n if (curr?.turnOffDateTags) {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n constructor(private scenarioService: ScenarioService,\n private tagsConstructor: TagsConstructorService) {\n }\n\n public ngOnInit(): void {\n if (!this.isScenarioFlow) {\n this.buildTags();\n }\n }\n\n public onSubTagChange(tag: IScenarioTagUi): void {\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagChange.emit(tagToEmit);\n }\n\n public onTagToggle(tag: IScenarioTagUi): void {\n if (!this.isScenarioFlow) {\n this.updateTagsState(tag);\n }\n\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagToggle.emit(tagToEmit);\n }\n\n public onStateChange(): void {\n const tagsConfig = this.getTagsConfig(this.currentTags);\n this.stateChange.emit(tagsConfig);\n }\n\n private buildTags(): void {\n this.tagsUi = this.tagsConstructor.buildTags(this.tagsConfigToDisplay, this.selectedTagsConfig);\n }\n\n private getTagsConfig(currentTags: IScenarioTagUi[]): ITag[] {\n return _filter(this.tagsConfigToDisplay, (tagConfig) =>\n _some(currentTags, (tag) => tag.toggle && tag.selectedTagSubType === tagConfig.options.sub_type));\n }\n\n private updateTagsState(tag: IScenarioTagUi): void {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagAcceptableSubTagsHandler(tag, tagWithSubTag));\n\n _forEach(this.tagsNotSupportingDateTag, (tagNotSupportingDate) => {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagNotSupportingDatesHandler(tag, tagNotSupportingDate, tagWithSubTag));\n });\n }\n}\n","<div class=\"tags-constructor\">\n <p class=\"tags-constructor__title--extra tags-constructor__tags__title\">Tags</p>\n <div class=\"tags-constructor__tag\" *ngFor=\"let tag of currentTags\">\n <div class=\"tags-constructor__tag__header\">\n <p class=\"tags-constructor__title\">{{ tag.name }}</p>\n <dr-toggle [(ngModel)]=\"tag.toggle\"\n (ngModelChange)=\"onTagToggle(tag)\"></dr-toggle>\n </div>\n <div class=\"tags-constructor__tag__description\">\n <p class=\"tags-constructor__text\">{{ tag.description }}</p>\n </div>\n <div *ngIf=\"tag.toggle\" class=\"tags-constructor__tag__body\">\n <div *ngIf=\"tag.subTags?.length\" class=\"tags-constructor__sub-tag\">\n <dr-toggle-button [(ngModel)]=\"tag.selectedTagSubType\"\n bindHidden=\"hidden\"\n bindLabel=\"name\"\n bindValue=\"subType\"\n [items]=\"tag.subTags\"\n [mode]=\"toggleButtonMode.DOTTED\"\n (ngModelChange)=\"onSubTagChange(tag)\"></dr-toggle-button>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ScenarioService } from '../../services/scenario.service';\nimport { ITag, TagTypes } from '../../../models/serverTags';\nimport { find as _find } from 'lodash';\n\n@Component({\n selector: 'dr-scenario-configuration',\n templateUrl: './dr-scenario-configuration.component.html',\n styleUrls: ['./dr-scenario-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScenarioService]\n})\nexport class DrScenarioConfigurationComponent implements OnInit {\n public scenarios: Scenario[];\n\n private _scenarioTags: IScenarioTagUi[] = [];\n private _selectedScenario: Scenario;\n private tagNotSupportingDates: IScenarioTagUi;\n\n @Input() public currentTagsConfig: ITag[];\n @Input() public wholeTagsConfig: ITag[] = [];\n @Input() public set selectedScenario(scenario: Scenario) {\n if (!Object.values(Scenario).includes(scenario)) {\n this._selectedScenario = Scenario.ACTUALS;\n return;\n }\n\n this._selectedScenario = scenario;\n }\n @Input() public isMultipleDimension: boolean = false;\n\n @Output() public scenarioDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public get selectedScenario(): Scenario {\n return this._selectedScenario || Scenario.ACTUALS;\n }\n\n public get scenarioTags(): IScenarioTagUi[] {\n return this._scenarioTags;\n }\n\n public set scenarioTags(tags: IScenarioTagUi[]) {\n this._scenarioTags = tags;\n this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });\n }\n\n public get dateTag(): IScenarioTagUi {\n return _find(this.scenarioTags, { type: TagTypes.DATE });\n }\n\n constructor(private scenarioService: ScenarioService) {\n }\n\n public ngOnInit(): void {\n this.scenarios = this.scenarioService.scenarios;\n this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension);\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);\n }\n\n public onScenarioChange(scenario: Scenario): void {\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);\n this.onScenarioDataChange();\n }\n\n public onScenarioTagToggle(tag: IScenarioTagUi): void {\n this.scenarioService.tagNotSupportingDatesHandler<IScenarioTagUi>(tag, this.tagNotSupportingDates, this.dateTag);\n this.scenarioService.tagAcceptableSubTagsHandler<IScenarioTagUi>(tag, this.dateTag);\n this.onScenarioDataChange();\n }\n\n public onScenarioDataChange(): void {\n this.scenarioDataChanged.emit({\n scenario: this.selectedScenario,\n tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),\n });\n }\n}\n","<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($event)\"></dr-tags-constructor>\n </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n updatePosition(): void {\n if (!this.overlayRef) return;\n this.overlayRef.updatePosition();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: any;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n freezeToContainerSelector?: string;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n noPadding?: boolean;\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [\n trigger('popover', POPUP_ANIMATION),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n\n @Output() popoverOpened: EventEmitter<void> = new EventEmitter<void>();\n\n _contentAsType: Type<T>;\n _contentAsTemplate: TemplateRef<any>;\n @Input() set content(value: TemplateRef<any> | Type<T>) {\n this.isContentTemplate = value instanceof TemplateRef;\n if (this.isContentTemplate) {\n this._contentAsTemplate = (value as TemplateRef<any>);\n } else {\n this._contentAsType = (value as Type<T>);\n }\n };\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n @Input() freezeToContainerSelector: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (!isTargetHost\n && !isTargetInPopover\n && !isTargetInDatepicker\n && !isTargetInSelect\n && !isTargetInDatepickerContent\n && !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {\n }\n\n ngOnInit(): void {\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this._contentAsType);\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.popoverOpened.emit();\n this.repositionToNewContainerAndFreeze();\n this.cdr.detectChanges();\n }\n\n /**\n * Removing popover element from cdk-overlay and attach to provided container after element is positioned\n * is required for specific case of preserving popover at same position on document while scroll (not fixed)\n *\n * TODO: implement more neat, transparent and Angular way solution: i.e. create another service (or extend existiong one)\n * without attaching component to cdk Overlay and instead positioning it to element passed in directive input parameter\n */\n private repositionToNewContainerAndFreeze(): void {\n const newContainer = !!this.freezeToContainerSelector && document.querySelector(this.freezeToContainerSelector);\n if (newContainer) {\n\n // waiting until element is positioned on overlay\n setTimeout(() => {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (!element.closest('.cdk-overlay-container')) return;\n\n const position = element.getBoundingClientRect();\n const newContainerPosition = newContainer.getBoundingClientRect();\n\n element.style.position = 'absolute';\n element.style.top = `${ newContainer.scrollTop + position.top - newContainerPosition.top }px`;\n element.style.left = `${ newContainerPosition.left + position.left }px`;\n\n newContainer.appendChild(element);\n });\n }\n }\n\n}\n","<div class=\"dr-popover\" [class]=\"class\" #popoverContainer>\n <ng-container *ngIf=\"isContentTemplate\">\n <ng-container *ngTemplateOutlet=\"_contentAsTemplate; context: contentContext\"></ng-container>\n </ng-container>\n</div>\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport {\n DEFAULT_CONFIG,\n DEFAULT_MODEL,\n getAlignmentDimension,\n IDrPopoverComponentModel,\n Point\n} from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {\n }\n\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<HTMLElement>,\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment, freezeToContainerSelector}: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${ popoverModel?.position }' position!`);\n\n const position = { ... POPUP_POSITIONS[popoverModel.position] };\n if (popoverModel.overlayConfig.noPadding) {\n position.offsetY = 0;\n position.offsetX = 0;\n }\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {} };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\n const injectionTokens: StaticProvider[] = [\n { provide: DrPopoverRef, useValue: popoverRef },\n ];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, DrPopoverConfig, IPopoverManualClosing } from '../models/popover';\nimport { Observable, Subscription } from 'rxjs';\n\n@Directive({\n selector: '[drPopover]',\n exportAs: 'drPopoverInstance'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: any = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: DrPopoverConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Input('drPopoverUpdateOnResize') resizeOnEvent: Observable<T>;\n\n @Input('drPopoverFreezeToContainerSelector') freezeToContainerSelector: string;\n\n // eslint-disable-next-line\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverOpened') popoverOpened = new EventEmitter<void>();\n\n // eslint-disable-next-line\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n private resizeSub: Subscription;\n\n public get isPopoverOpen(): boolean {\n return !!this.popoverRef;\n }\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {\n }\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n freezeToContainerSelector: this.freezeToContainerSelector\n });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n if (this.resizeSub) {\n this.resizeSub.unsubscribe();\n this.resizeSub = null;\n }\n\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n\n popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {\n this.popoverOpened.emit();\n });\n\n if (this.resizeOnEvent && !this.resizeSub && this.popoverRef) {\n this.resizeSub = this.resizeOnEvent.subscribe(() => {\n setTimeout(() => this.popoverRef.updatePosition());\n });\n }\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdownAction } from '../models/dropdown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrDropdownService {\n\n actionItem = new Subject<IDropdownAction<unknown>>();\n protected menuInView: ComponentRef<DrDropdownComponent>;\n\n constructor() {\n }\n\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\n this.menuInView = item;\n }\n\n destroy() {\n if (this.menuInView) {\n this.menuInView.destroy();\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ElPosition, IDropdownCoordinate } from '../models/dropdown';\n\n@Directive({\n selector: '[drDropdownPosition]',\n exportAs: 'dropdownPosition'\n})\nexport class DrDropdownPositionDirective implements OnInit {\n\n @Input() drDropdownPosition;\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\n\n widthMoreRight: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n setTimeout(this.calculatePosition.bind(this), 1);\n }\n\n calculatePosition() {\n let xDifference = 0;\n let defaultDelta = 10;\n let defaultPadding = 0;\n const originalPosition = this.position;\n\n if (this.position === 'child') {\n defaultDelta = 0;\n defaultPadding = 10;\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\n\n this.position = {\n x: this.el.nativeElement.offsetWidth,\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\n clientY: parentRect.y\n };\n }\n\n if (typeof this.position === 'string') {\n this.renderer.setStyle(this.el.nativeElement, 'top',\n this.position === 'bottom' ?\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\n this.drDropdownPosition.y + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left',\n this.position === 'right' ?\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\n this.drDropdownPosition.x + 'px');\n const menuHeight = this.el.nativeElement.offsetHeight;\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\n\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\n\n if (heightMoreWindowBottom) {\n this.position = 'top';\n }\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\n this.position = 'top-left';\n const translateX = `calc(-100% + ${ this.drDropdownPosition.width }px)`;\n const translateY = 'calc(-100% - 8px)';\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${ translateX }, ${ translateY })`);\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`\n );\n }\n const className = this.position === 'top' ? 'content-top'\n : this.position === 'top-left' ? 'content-top-left'\n : this.position === 'bottom' ? 'content-bottom'\n : this.position === 'bottom-left' ? 'content-bottom-left'\n : this.position === 'left' ? 'content-left'\n : this.position === 'left-center' ? 'content-left-center'\n : this.position === 'right' ? 'content-right'\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\n this.renderer.addClass(this.el.nativeElement, className);\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n } else {\n const defaultChildPadding = 3;\n const widthMoreWindowRight = originalPosition !== 'child'\n ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)\n : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;\n\n const widthMoreWindowBottom = originalPosition !== 'child'\n ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)\n : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;\n\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\n this.widthMoreRight = !(widthMoreWindowRight < 0);\n\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\n ? -this.position.x + -defaultChildPadding\n : this.position.x + defaultChildPadding + xDifference;\n\n if (spaceRightAmount <= 0 && originalPosition !== 'child') {\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\n }\n\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\n\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe'\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter(item => item.show ? item.show(item.data) : true);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrDropdownComponent {\n\n @ViewChild('listMenu') viewMenu: HTMLElement;\n @ViewChild('menuContainer') menuContainer: HTMLElement;\n option: any;\n position: ElPosition | IDropdownCoordinate = 'left';\n drDropdownInHover: boolean;\n list: IDropdownItem<unknown>[];\n containerClass: string;\n public wasHovered = false;\n private firstInit: boolean;\n\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\n }\n\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\n if (data) {\n this.option = data.option;\n this.position = data.position;\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.list = data.list || [];\n this.list.forEach(item => {\n if (item.children?.length) {\n item.childOptions = {\n list: item.children,\n class: item?.childOptions?.class || '',\n position: 'child'\n };\n }\n });\n this.cdr.markForCheck();\n }\n }\n\n onMouseEnter(): void {\n this.wasHovered = true;\n }\n\n onMouseLeave(): void {\n if (this.drDropdownInHover) this.menuService.destroy();\n }\n\n onClickedOutside(): void {\n if (this.firstInit) {\n this.menuService.destroy();\n } else {\n this.firstInit = true;\n }\n }\n\n hide(): void {\n this.menuService.destroy();\n }\n\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;\n }\n\n tooltipPosition(widthMoreRight: boolean) {\n return widthMoreRight ? 'right' : 'left';\n }\n\n action(act: IDropdownItem<any>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });\n }\n this.hide();\n }\n }\n\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\n $event.stopPropagation();\n if (!this.disabled(actionIcon)) {\n actionIcon.action(data);\n this.hide();\n }\n }\n}\n\n","<div #menuContainer\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\"\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n #dropdownPosition=\"dropdownPosition\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\"\n [class.separate-line]=\"act.separateLine\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ElPosition, IDropdown, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Directive({\n selector: '[drDropdown]'\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n\n @Input() position: ElPosition = 'left';\n @Input() drDropdown: IDropdownItem<T>[];\n @Input() drDropdownClass: string;\n @Input() drDropdownInHover: boolean;\n @ViewChild(DrDropdownComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n\n private readonly mouseleaveTimeout = 200;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private service: DrDropdownService,\n private el: ElementRef,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n @HostListener('mouseenter') elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click') elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave') leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(_ => {\n if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\n this.closeDropdown(e);\n }\n\n private openDropdown(): void {\n const option = this.el.nativeElement.getBoundingClientRect();\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else {\n this.service.destroy();\n this.showMenu({\n option,\n drDropdownInHover: this.drDropdownInHover,\n position: this.position,\n list: this.drDropdown,\n class: this.drDropdownClass\n });\n }\n }\n\n private closeDropdown(e): void {\n\n if (!this.contentCmpRef) {\n return;\n }\n\n const clickTarget = e.target;\n const triggerElement = this.el.nativeElement;\n const dropdownElement = this.contentCmpRef.location.nativeElement;\n const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;\n const isClickDropdownContents = dropdownElement.contains(clickTarget);\n\n if (!isClickTriggerElement && !isClickDropdownContents) {\n const elems = this._document.querySelectorAll('dr-dropdown');\n setTimeout(() => elems.forEach(item => item.remove()), 100);\n }\n }\n\n private showMenu(options: IDropdown<T>) {\n const componentFactory: ComponentFactory<DrDropdownComponent> = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.service.addMenu = this.contentCmpRef;\n this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class DrTabComponent implements OnInit {\n @Input() label: string;\n @Input() icon: string;\n @Input() disabled: boolean;\n @Input() tooltip: string;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent {\n _disableAnimation = true;\n _selectedIndex = 0;\n @Input() theme: string = 'primary';\n @Input() set selectedTab(value) {\n this._selectedIndex = value || 0;\n\n /**\n * Hack to disable animation calculation in case the pre-selected tab is not at index 0.\n * Otherwise, the animation of redirecting to the pre-selected tab will conflict\n * with the animation of the tab at index 0.\n */\n if (this._selectedIndex) {\n this._disableAnimation = true;\n setTimeout(() => {\n this._disableAnimation = false;\n });\n }\n };\n @Input() withRadio: boolean;\n @Input() withIcon: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Input() hideTabs = false;\n @Input() noHeaderBorder = false;\n @Input() noTabLabelsPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor(protected cdr: ChangeDetectorRef) {\n }\n\n selectedIndexChange($event) {\n this._selectedIndex = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","<mat-tab-group disableRipple\n [ngClass]=\"theme\"\n [selectedIndex]=\"_selectedIndex\"\n (selectedIndexChange)=\"selectedIndexChange($event)\"\n [class.with-radio]=\"withRadio\"\n [class.vertical]=\"vertical\"\n [class.no-tab-labels-padding]=\"noTabLabelsPadding\"\n [class.no-body-padding]=\"noBodyPadding\"\n [class.no-tabs]=\"hideTabs\"\n [class.no-header-border]=\"noHeaderBorder\"\n [animationDuration]=\"vertical || _disableAnimation ? '0ms' : '500ms'\">\n <mat-tab *ngFor=\"let tab of tabsContentList; let index = index\" label=\"{{ tab.label }}\" [disabled]=\"tab.disabled\">\n <ng-container *ngIf=\"withRadio\">\n <ng-template mat-tab-label>\n <dr-radio-button [value]=\"index\"\n [(ngModel)]=\"_selectedIndex\">\n </dr-radio-button>\n {{ tab.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tab.tooltip && !withRadio && !withIcon\">\n <ng-template mat-tab-label>\n <label class=\"cursor-pointer\" [drTooltip]=\"tab.tooltip\">{{ tab.label }}</label>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"withIcon\">\n <ng-template mat-tab-label>\n <span class=\"icon-tab__wrapper\">\n <i [ngClass]=\"tab.icon\" class=\"cursor-pointer\"></i>\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n </mat-tab>\n</mat-tab-group>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\n }\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe(collapsed => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\n <ng-content></ng-content>\n <i class=\"dr-icon-arrow-down expansion-indicator\"\n [@expansionIndicator]=\"state\"\n *ngIf=\"!disabled\">\n </i>\n `,\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate(180deg)',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit, } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {\n }\n}\n","<div class=\"dr-layout\">\n <ng-content select=\"dr-layout-header\"></ng-content>\n <div class=\"dr-layout__container\">\n <div class=\"content\">\n <div class=\"columns\">\n <ng-content select=\"dr-layout-body\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-details-list',\n templateUrl: './dr-details-list.component.html',\n styleUrls: ['./dr-details-list.component.scss'],\n animations: [\n trigger('expansionIndicatorList', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ]\n})\n\nexport class DrDetailsListComponent implements OnDestroy {\n\n private destroy$ = new Subject<void>();\n public list: string[] = [];\n\n @Input() title = 'Show details';\n @Input() set items(val: string[] | Observable<string[]>) {\n if (!val) {\n return;\n }\n\n if (Array.isArray(val)) {\n this.list = val;\n } else {\n val.pipe(takeUntil(this.destroy$)).subscribe((res: string[]) => {\n this.list = res;\n });\n }\n };\n @Input() collapse = true;\n\n get state(): string {\n if (this.collapse) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor() {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"details\">\n <div class=\"details__header\" (click)=\"collapse = !collapse\">\n <i [class.dr-icon-arrow-right]=\"collapse\"\n [class.dr-icon-arrow-down]=\"!collapse\">\n </i>\n {{ title }}\n </div>\n <ul class=\"details__list\" [@expansionIndicatorList]=\"{ value: state }\">\n <li *ngFor=\"let item of list\">{{ item }}</li>\n </ul>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class')\n get elementClass(): SizeModal {\n return this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n }\n\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private dialogService: DialogService,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp) {\n }\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(this.dialogData.child);\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n enableAcceptButton() {\n this.dialogData.acceptButton.isDisabled = false;\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData.confirmFn().pipe(takeUntil(this.destroy$), catchError(error => this.dialogService.throwErr(error, this.saving$))).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","<div class=\"dialog-wrapper\"\n [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\"\n data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\"\n *ngIf=\"dialogData.subtitle\">{{ dialogData.subtitle }}</h1>\n </div>\n <div class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\">{{ dialogData.customButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\">{{ dialogData.cancelButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\">{{ dialogData.acceptButton.label }}</dr-button>\n </span>\n </div>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { MatLegacyDialogConfig as MatDialogConfig } from '@angular/material/legacy-dialog';\n\ntype DialogConfig = Omit<MatDialogConfig, 'data'>;\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> extends DialogConfig {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n };\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n theme?: {\n themeSize?: SizeModal;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: TDialogFieldType;\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n datePickerFormat?: TimeframeOption;\n formGroupClass?: string;\n}\n\nexport type SizeModal =\n | 'small-modal'\n | 'small-modal-max-height'\n | 'medium-small-modal'\n | 'medium-modal'\n | 'medium-modal-max-height'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal'\n | 'xl-medium-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n isDisabled?: boolean;\n loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n SMALL_MAX_HEIGHT = 'small-modal-max-height',\n MEDIUM = 'medium-modal',\n MEDIUM_SMALL = 'medium-small-modal',\n MEDIUM_MAX_HEIGHT = 'medium-modal-max-height',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n X_MEDIUM = 'xl-medium-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n DATE_PICKER = 'date_picker',\n CHECKBOX = 'checkbox',\n}\n\nexport type TDialogFieldType = DIALOG_FIELD_TYPE;\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n readonly dialogFieldType = DIALOG_FIELD_TYPE;\n\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\n fieldsItemsLoading: Record<string, BehaviorSubject<boolean>> = {};\n\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n private dialogService: DialogService,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {\n }\n\n ngOnInit(): void {\n if (!this.dialogData.fields) this.dialogData.fields = [];\n\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n if (currentValue.items$) {\n this.fieldsItemsLoading[currentValue.name] = new BehaviorSubject<boolean>(true);\n currentValue.items$ = (currentValue.items$ as any).pipe(\n catchError((err) => {\n this.fieldsItemsLoading[currentValue.name].next(false);\n return throwError(() => err);\n }),\n tap(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n finalize(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n );\n }\n\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(currentValue.default || null, currentValue.validators || []);\n return Object.assign(accumulator, currentFormControl);\n }, {})\n );\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData.confirmFn(this.form.value).pipe(\n finalize(() => {\n this.isLoading = false\n this.saving$.next(false);\n }),\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n return this.dialogService.throwErr(err, this.saving$);\n }),\n ).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\"\n data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\">{{ field.label }}</label>\n <div class=\"input-group p-0\"\n [ngClass]=\"{ 'col-md-10': field.label && !field.isLabelFullWidth, 'col-md-12': !field.label || field.isLabelFullWidth }\">\n <dr-select *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close();\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\"\n class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}</button>\n </ng-template>\n </dr-select>\n <dr-input *ngIf=\"field.type === dialogFieldType.INPUT\" data-test=\"modalInput\" class=\"form-control\"\n [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label class=\"form-field-error-alert\" *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\"\n *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\">{{ dialogData.customButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\"\n [theme]=\"'secondary'\">{{ dialogData.cancelButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.acceptButton\" data-test=\"modalAddBtn\" (click)=\"onAccept()\" [theme]=\"'primary'\"\n [isLoading]=\"isLoading\" [disabled]=\"form.invalid\">{{ dialogData.acceptButton.label }}</dr-button>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(\n private dialog: MatDialog,\n ) {\n }\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = (DialogWrapperComponent as any);\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n enableAcceptButton(): void {\n this.wrapperComponent.componentInstance.enableAcceptButton();\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(componentType: ComponentType<WrapperType>, dialogData: DialogData<D>): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n\n throwErr(err: Error, load?: Subject<any> | BehaviorSubject<any>): Observable<any> {\n if (load) {\n load.next(false);\n }\n throw err;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TreeviewSelection } from './treeview-item';\n\n@Injectable()\nexport abstract class TreeviewI18n {\n abstract getText(selection: TreeviewSelection): string;\n abstract getAllCheckboxText(): string;\n abstract getFilterPlaceholder(): string;\n abstract getFilterNoItemsFoundText(): string;\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\n}\n\n@Injectable()\nexport class DefaultTreeviewI18n extends TreeviewI18n {\n getText(selection: TreeviewSelection): string {\n if (selection.uncheckedItems.length === 0) {\n if (selection.checkedItems.length > 0) {\n return this.getAllCheckboxText();\n } else {\n return '';\n }\n }\n\n switch (selection.checkedItems.length) {\n case 0:\n return 'Select options';\n case 1:\n return selection.checkedItems[0].text;\n default:\n return `${selection.checkedItems.length} options selected`;\n }\n }\n\n getAllCheckboxText(): string {\n return 'All';\n }\n\n getFilterPlaceholder(): string {\n return 'Filter';\n }\n\n getFilterNoItemsFoundText(): string {\n return 'No items found';\n }\n\n getTooltipCollapseExpandText(isCollapse: boolean): string {\n return isCollapse ? 'Expand' : 'Collapse';\n }\n}\n","import { concat, isNil, pull } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\nexport const TreeviewHelper = {\n findItem,\n findItemInList,\n findParent,\n removeItem,\n concatSelection\n};\n\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\n if (isNil(root)) {\n return undefined;\n }\n\n if (root.value === value) {\n return root;\n }\n\n if (root.children) {\n for (const child of root.children) {\n const foundItem = findItem(child, value);\n if (foundItem) {\n return foundItem;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\n if (isNil(list)) {\n return undefined;\n }\n\n for (const item of list) {\n const foundItem = findItem(item, value);\n if (foundItem) {\n return foundItem;\n }\n }\n\n return undefined;\n}\n\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\n if (isNil(root) || isNil(root.children)) {\n return undefined;\n }\n\n for (const child of root.children) {\n if (child === item) {\n return root;\n } else {\n const parent = findParent(child, item);\n if (parent) {\n return parent;\n }\n }\n }\n\n return undefined;\n}\n\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\n const parent = findParent(root, item);\n if (parent) {\n pull(parent.children, item);\n if (parent.children.length === 0) {\n parent.children = undefined;\n } else {\n parent.correctChecked();\n }\n return true;\n }\n\n return false;\n}\n\nfunction concatSelection(items: TreeviewItem[], checked: TreeviewItem[], unchecked: TreeviewItem[]): { [k: string]: TreeviewItem[] } {\n let checkedItems = [...checked];\n let uncheckedItems = [...unchecked];\n for (const item of items) {\n const selection = item.getSelection();\n checkedItems = concat(checkedItems, selection.checkedItems);\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\n }\n return {\n checked: checkedItems,\n unchecked: uncheckedItems\n };\n}\n","import { isBoolean, isNil, isString } from 'lodash';\nimport { TreeviewHelper } from '../helpers/treeview-helper';\n\nexport interface TreeviewSelection {\n checkedItems: TreeviewItem[];\n uncheckedItems: TreeviewItem[];\n}\n\nexport interface TreeItem {\n text: string;\n value: any;\n disabled?: boolean;\n checked?: boolean;\n collapsed?: boolean;\n children?: TreeItem[];\n}\n\nexport class TreeviewItem {\n private internalDisabled = false;\n internalChecked = true;\n private internalCollapsed = false;\n private internalChildren: TreeviewItem[];\n text: string;\n value: any;\n hidden?: boolean;\n\n constructor(item: TreeItem, autoCorrectChecked = false) {\n if (isNil(item)) {\n throw new Error('Item must be defined');\n }\n if (isString(item.text)) {\n this.text = item.text;\n } else {\n throw new Error('A text of item must be string object');\n }\n this.value = item.value;\n if (isBoolean(item.checked)) {\n this.checked = item.checked;\n }\n if (isBoolean(item.collapsed)) {\n this.collapsed = item.collapsed;\n }\n if (isBoolean(item.disabled)) {\n this.disabled = item.disabled;\n }\n if (!isNil(item.children) && item.children.length > 0) {\n this.children = item.children.map(child => {\n if (this.disabled === true) {\n child.disabled = true;\n }\n\n return new TreeviewItem(child);\n });\n }\n\n if (autoCorrectChecked) {\n this.correctChecked();\n }\n }\n\n get checked(): boolean {\n return this.internalChecked;\n }\n\n set checked(value: boolean) {\n if (!this.internalDisabled) {\n if (this.internalChecked !== value) {\n this.internalChecked = value;\n }\n }\n }\n\n get indeterminate(): boolean {\n return this.checked === undefined;\n }\n\n setCheckedRecursive(value: boolean): void {\n if (!this.internalDisabled) {\n this.internalChecked = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCheckedRecursive(value));\n }\n }\n }\n\n get disabled(): boolean {\n return this.internalDisabled;\n }\n\n set disabled(value: boolean) {\n if (this.internalDisabled !== value) {\n this.internalDisabled = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.disabled = value);\n }\n }\n }\n\n get collapsed(): boolean {\n return this.internalCollapsed;\n }\n\n set collapsed(value: boolean) {\n if (this.internalCollapsed !== value) {\n this.internalCollapsed = value;\n }\n }\n\n setCollapsedRecursive(value: boolean): void {\n this.internalCollapsed = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCollapsedRecursive(value));\n }\n }\n\n get children(): TreeviewItem[] {\n return this.internalChildren;\n }\n\n set children(value: TreeviewItem[]) {\n if (this.internalChildren !== value) {\n if (!isNil(value) && value.length === 0) {\n throw new Error('Children must be not an empty array');\n }\n this.internalChildren = value;\n if (!isNil(this.internalChildren)) {\n let checked = null;\n this.internalChildren.forEach(child => {\n if (checked === null) {\n checked = child.checked;\n } else {\n if (child.checked !== checked) {\n checked = undefined;\n return;\n }\n }\n });\n this.internalChecked = checked;\n }\n }\n }\n\n getSelection(): TreeviewSelection {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (isNil(this.internalChildren)) {\n if (this.internalChecked) {\n checkedItems.push(this);\n } else {\n uncheckedItems.push(this);\n }\n } else {\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n return {\n checkedItems,\n uncheckedItems\n };\n }\n\n correctChecked(): void {\n this.internalChecked = this.getCorrectChecked();\n }\n\n private getCorrectChecked(): boolean {\n let checked: boolean = null;\n if (!isNil(this.internalChildren)) {\n for (const child of this.internalChildren) {\n child.internalChecked = child.getCorrectChecked();\n if (checked === null) {\n checked = child.internalChecked;\n } else if (checked !== child.internalChecked) {\n checked = undefined;\n break;\n }\n }\n } else {\n checked = this.checked;\n }\n\n return checked;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TreeviewConfig {\n hasAllCheckBox = true;\n hasFilter = false;\n hasCollapseExpand = false;\n decoupleChildFromParent = false;\n maxHeight = 500;\n\n get hasDivider(): boolean {\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\n }\n\n public static create(fields?: {\n hasAllCheckBox?: boolean,\n hasFilter?: boolean,\n hasCollapseExpand?: boolean,\n decoupleChildFromParent?: boolean\n maxHeight?: number,\n }): TreeviewConfig {\n const config = new TreeviewConfig();\n Object.assign(config, fields);\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\nimport { TreeviewComponent } from '../components/treeview/treeview.component';\n\n@Injectable()\nexport abstract class TreeviewEventParser {\n abstract getSelectedChange(component: TreeviewComponent): any[];\n}\n\n@Injectable()\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const checkedItems = component.selection.checkedItems;\n if (!isNil(checkedItems)) {\n return checkedItems.map(item => item.value);\n }\n\n return [];\n }\n}\n\nexport interface DownlineTreeviewItem {\n item: TreeviewItem;\n parent: DownlineTreeviewItem;\n}\n\n@Injectable()\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const items = component.items;\n if (!isNil(items)) {\n let result: DownlineTreeviewItem[] = [];\n items.forEach(item => {\n const links = this.getLinks(item, null);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n return [];\n }\n\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\n if (!isNil(item.children)) {\n const link = {\n item,\n parent\n };\n let result: DownlineTreeviewItem[] = [];\n item.children.forEach(child => {\n const links = this.getLinks(child, link);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n if (item.checked) {\n return [{\n item,\n parent\n }];\n }\n\n return null;\n }\n}\n\n@Injectable()\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\n private currentDownlines: DownlineTreeviewItem[] = [];\n private parser = new DownlineTreeviewEventParser();\n\n getSelectedChange(component: TreeviewComponent): any[] {\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\n if (this.currentDownlines.length === 0) {\n this.currentDownlines = newDownlines;\n } else {\n const intersectDownlines: DownlineTreeviewItem[] = [];\n this.currentDownlines.forEach(downline => {\n let foundIndex = -1;\n const length = newDownlines.length;\n for (let i = 0; i < length; i++) {\n if (downline.item.value === newDownlines[i].item.value) {\n foundIndex = i;\n break;\n }\n }\n\n if (foundIndex !== -1) {\n intersectDownlines.push(newDownlines[foundIndex]);\n newDownlines.splice(foundIndex, 1);\n }\n });\n\n this.currentDownlines = intersectDownlines.concat(newDownlines);\n }\n\n return this.currentDownlines;\n }\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\n\n@Component({\n selector: 'ngx-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss']\n})\nexport class TreeviewItemComponent {\n @Input() config: TreeviewConfig;\n @Input() template: TemplateRef<TreeviewItemTemplateContext>;\n @Input() item: TreeviewItem;\n @Output() checkedChange = new EventEmitter<boolean>();\n\n constructor(\n private defaultConfig: TreeviewConfig\n ) {\n this.config = this.defaultConfig;\n }\n\n onCollapseExpand = () => {\n this.item.collapsed = !this.item.collapsed;\n }\n\n onCheckedChange = () => {\n const checked = this.item.checked;\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\n this.item.children.forEach(child => child.setCheckedRecursive(checked));\n }\n this.checkedChange.emit(checked);\n }\n\n onChildCheckedChange(child: TreeviewItem, checked: boolean): void {\n if (!this.config.decoupleChildFromParent) {\n let itemChecked: boolean = null;\n for (const childItem of this.item.children) {\n if (itemChecked === null) {\n itemChecked = childItem.checked;\n } else if (itemChecked !== childItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n if (this.item.checked !== itemChecked) {\n this.item.checked = itemChecked;\n }\n\n }\n\n this.checkedChange.emit(checked);\n }\n}\n","<div *ngIf=\"item\" class=\"treeview-item\">\n <ng-template [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{item: item, onCollapseExpand: onCollapseExpand, onCheckedChange: onCheckedChange}\">\n </ng-template>\n <div *ngIf=\"!item.collapsed\">\n <ngx-treeview-item [config]=\"config\" *ngFor=\"let child of item.children\" [item]=\"child\" [template]=\"template\"\n (checkedChange)=\"onChildCheckedChange(child, $event)\">\n </ngx-treeview-item>\n </div>\n</div>\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, OnInit } from '@angular/core';\nimport { isNil, includes } from 'lodash';\nimport { TreeviewI18n } from '../../models/treeview-i18n';\nimport { TreeviewItem, TreeviewSelection } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewHeaderTemplateContext } from '../../models/treeview-header-template-context';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\nimport { TreeviewHelper } from '../../helpers/treeview-helper';\nimport { TreeviewEventParser } from '../../helpers/treeview-event-parser';\n\nclass FilterTreeviewItem extends TreeviewItem {\n private readonly refItem: TreeviewItem;\n constructor(item: TreeviewItem) {\n super({\n text: item.text,\n value: item.value,\n disabled: item.disabled,\n checked: item.checked,\n collapsed: item.collapsed,\n children: item.children\n });\n this.refItem = item;\n }\n\n updateRefChecked(): void {\n this.children.forEach(child => {\n if (child instanceof FilterTreeviewItem) {\n child.updateRefChecked();\n }\n });\n\n let refChecked = this.checked;\n if (refChecked) {\n for (const refChild of this.refItem.children) {\n if (!refChild.checked) {\n refChecked = false;\n break;\n }\n }\n }\n this.refItem.checked = refChecked;\n }\n}\n\n@Component({\n selector: 'ngx-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss']\n})\nexport class TreeviewComponent implements OnChanges, OnInit {\n @Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;\n @Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;\n @Input() items: TreeviewItem[];\n @Input() config: TreeviewConfig;\n @Output() selectedChange = new EventEmitter<any[]>();\n @Output() filterChange = new EventEmitter<string>();\n headerTemplateContext: TreeviewHeaderTemplateContext;\n allItem: TreeviewItem;\n filterText = '';\n filterItems: TreeviewItem[];\n selection: TreeviewSelection;\n\n constructor(\n public i18n: TreeviewI18n,\n private defaultConfig: TreeviewConfig,\n private eventParser: TreeviewEventParser\n ) {\n this.config = this.defaultConfig;\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\n }\n\n get hasFilterItems(): boolean {\n return !isNil(this.filterItems) && this.filterItems.length > 0;\n }\n\n get maxHeight(): string {\n return `${this.config.maxHeight}`;\n }\n\n ngOnInit(): void {\n this.createHeaderTemplateContext();\n this.generateSelection();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemsSimpleChange = changes.items;\n if (!isNil(itemsSimpleChange) && !isNil(this.items)) {\n this.updateFilterItems();\n this.updateCollapsedOfAll();\n this.raiseSelectedChange();\n }\n }\n\n onAllCollapseExpand(): void {\n this.allItem.collapsed = !this.allItem.collapsed;\n this.filterItems.forEach(item => item.setCollapsedRecursive(this.allItem.collapsed));\n }\n\n onFilterTextChange(text: string): void {\n this.filterText = text;\n this.filterChange.emit(text);\n this.updateFilterItems();\n }\n\n onAllCheckedChange(): void {\n const checked = this.allItem.checked;\n this.filterItems.forEach(item => {\n item.setCheckedRecursive(checked);\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n });\n\n this.raiseSelectedChange();\n }\n\n onItemCheckedChange(item: TreeviewItem, checked: boolean): void {\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n\n this.updateCheckedOfAll();\n this.raiseSelectedChange();\n }\n\n raiseSelectedChange(): void {\n this.generateSelection();\n const values = this.eventParser.getSelectedChange(this);\n setTimeout(() => {\n this.selectedChange.emit(values);\n });\n }\n\n private createHeaderTemplateContext(): void {\n this.headerTemplateContext = {\n config: this.config,\n item: this.allItem,\n onCheckedChange: () => this.onAllCheckedChange(),\n onCollapseExpand: () => this.onAllCollapseExpand(),\n onFilterTextChange: (text) => this.onFilterTextChange(text)\n };\n }\n\n private generateSelection(): void {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (!isNil(this.items)) {\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n this.selection = {\n checkedItems,\n uncheckedItems\n };\n }\n\n private updateFilterItems(): void {\n if (this.filterText !== '') {\n const filterItems: TreeviewItem[] = [];\n const filterText = this.filterText.toLowerCase();\n this.items.forEach(item => {\n const newItem = this.filterItem(item, filterText);\n if (!isNil(newItem)) {\n filterItems.push(newItem);\n }\n });\n this.filterItems = filterItems;\n } else {\n this.filterItems = this.items;\n }\n\n this.updateCheckedOfAll();\n }\n\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\n const isMatch = includes(item.text.toLowerCase(), filterText);\n if (isMatch) {\n return item;\n } else {\n if (!isNil(item.children)) {\n const children: TreeviewItem[] = [];\n item.children.forEach(child => {\n const newChild = this.filterItem(child, filterText);\n if (!isNil(newChild)) {\n children.push(newChild);\n }\n });\n if (children.length > 0) {\n const newItem = new FilterTreeviewItem(item);\n newItem.collapsed = false;\n newItem.children = children;\n return newItem;\n }\n }\n }\n\n return undefined;\n }\n\n private updateCheckedOfAll(): void {\n let itemChecked: boolean = null;\n for (const filterItem of this.filterItems) {\n if (itemChecked === null) {\n itemChecked = filterItem.checked;\n } else if (itemChecked !== filterItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n this.allItem.checked = itemChecked;\n }\n\n private updateCollapsedOfAll(): void {\n let hasItemExpanded = false;\n for (const filterItem of this.filterItems) {\n if (!filterItem.collapsed) {\n hasItemExpanded = true;\n break;\n }\n }\n\n this.allItem.collapsed = !hasItemExpanded;\n }\n}\n","<ng-template #defaultItemTemplate let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\">\n <div class=\"form-inline row-item\">\n <i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg *ngSwitchCase=\"true\" width=\"0.8rem\" height=\"0.8rem\" viewBox=\"0 0 16 16\" class=\"bi bi-caret-right-fill\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\" />\n </svg>\n <svg *ngSwitchCase=\"false\" width=\"0.8rem\" height=\"0.8rem\" viewBox=\"0 0 16 16\" class=\"bi bi-caret-down-fill\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg>\n </i>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"item.checked\" (ngModelChange)=\"onCheckedChange()\"\n [disabled]=\"item.disabled\" [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{item.text}}\n </label>\n </div>\n </div>\n</ng-template>\n<ng-template #defaultHeaderTemplate let-config=\"config\" let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\" let-onFilterTextChange=\"onFilterTextChange\">\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\n <div class=\"col-12\">\n <input class=\"form-control\" type=\"text\" [placeholder]=\"i18n.getFilterPlaceholder()\" [(ngModel)]=\"filterText\"\n (ngModelChange)=\"onFilterTextChange($event)\" />\n </div>\n </div>\n <div *ngIf=\"hasFilterItems\">\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row row-all\">\n <div class=\"col-12\">\n <div class=\"form-check form-check-inline\" *ngIf=\"config.hasAllCheckBox\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"item.checked\" (ngModelChange)=\"onCheckedChange()\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{i18n.getAllCheckboxText()}}\n </label>\n </div>\n <label *ngIf=\"config.hasCollapseExpand\" class=\"float-right form-check-label\" (click)=\"onCollapseExpand()\">\n <i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg *ngSwitchCase=\"true\" width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-arrows-angle-expand\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\"\n d=\"M1.5 10.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path fill-rule=\"evenodd\"\n d=\"M6.354 9.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm8.5-8.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path fill-rule=\"evenodd\"\n d=\"M10.036 1.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 1 1-1 0V2h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n <svg *ngSwitchCase=\"false\" width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-arrows-angle-contract\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\"\n d=\"M9.5 2.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path fill-rule=\"evenodd\"\n d=\"M14.354 1.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 1 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm-7.5 7.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path fill-rule=\"evenodd\"\n d=\"M2.036 9.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V10h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n </i>\n </label>\n </div>\n </div>\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\"></div>\n </div>\n</ng-template>\n<div class=\"treeview-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate || defaultHeaderTemplate\"\n [ngTemplateOutletContext]=\"headerTemplateContext\">\n </ng-template>\n</div>\n<div [ngSwitch]=\"hasFilterItems\">\n <div *ngSwitchCase=\"true\" class=\"treeview-container\" [style.max-height.px]=\"maxHeight\">\n <ngx-treeview-item *ngFor=\"let item of filterItems\" [config]=\"config\" [item]=\"item\"\n [template]=\"itemTemplate || defaultItemTemplate\" (checkedChange)=\"onItemCheckedChange(item, $event)\">\n </ngx-treeview-item>\n </div>\n <div *ngSwitchCase=\"false\" class=\"treeview-text\">\n {{i18n.getFilterNoItemsFoundText()}}\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\n@Pipe({\n name: 'ngxTreeview'\n})\nexport class TreeviewPipe implements PipeTransform {\n transform(objects: any[], textField: string): TreeviewItem[] {\n if (isNil(objects)) {\n return undefined;\n }\n\n return objects.map(object => new TreeviewItem({ text: object[textField], value: object }));\n }\n}\n","export enum ToastrStatus {\n INFO = 'status-info',\n ERROR = 'status-danger',\n SUCCESS = 'status-success',\n WARNING = 'status-warning'\n}\n\nexport const ToastrStatusIcon = {\n [ToastrStatus.INFO]: 'dr-icon-noty-notification',\n [ToastrStatus.ERROR]: 'dr-icon-noty-error',\n [ToastrStatus.SUCCESS]: 'dr-icon-noty-success',\n [ToastrStatus.WARNING]: 'dr-icon-noty-warning',\n};\n\nexport type DefaultToastrData = {\n title: string;\n message: string;\n status: ToastrStatus;\n isHtmlBody: boolean;\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\nimport { DefaultToastrData, ToastrStatus, ToastrStatusIcon } from '../../models/toastr';\n\n\n@Component({\n selector: 'dr-default-toastr',\n templateUrl: './default-toastr.component.html',\n styleUrls: ['./default-toastr.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultToastrComponent extends Toast implements OnInit {\n\n data: DefaultToastrData = {\n title: '',\n message: '',\n status: ToastrStatus.SUCCESS,\n isHtmlBody: false\n };\n icon = ToastrStatusIcon[this.data.status];\n\n @HostBinding('class') class = this.data.status;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage\n ) {\n super(toastrService, toastPackage);\n }\n\n ngOnInit(): void {\n this.class = this.data.status;\n this.icon = ToastrStatusIcon[this.data.status];\n }\n}\n","<div class=\"icon-container\">\n <i class=\"toastr-icon\" [ngClass]=\"icon\"></i>\n</div>\n\n<div class=\"content-container\">\n <span class=\"title\">\n {{data.title}}\n </span>\n\n <div class=\"message\" *ngIf=\"!data.isHtmlBody; else htmlBody\">\n {{data.message}}\n </div>\n\n <ng-template #htmlBody>\n <div class=\"message\" [innerHTML]=\"data.message\"></div>\n </ng-template>\n\n</div>\n\n<div class=\"icon-container\">\n <i class=\"dr-icon-exit\"></i>\n</div>\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({ selector: '[clickOutside]' })\nexport class ClickOutsideDirective implements OnInit, OnDestroy, OnChanges {\n @Input() attachOutsideOnClick: boolean = false;\n @Input() exclude: string = '';\n\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n private _nodesExcluded: Array<HTMLElement> = [];\n\n constructor(\n @Inject(DOCUMENT) private _document /*: HTMLDocument*/,\n private _el: ElementRef) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n }\n\n ngOnInit() {\n this._init();\n }\n\n ngOnDestroy() {\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.removeEventListener('click', this._initOnClickBody);\n }\n\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['attachOutsideOnClick'] || changes['exclude']) {\n this._init();\n }\n }\n\n private _init() {\n if (this.exclude) {\n this.exclude.split(',').forEach((selector) => {\n if (selector) {\n try {\n const node = this._document.querySelector(selector.trim());\n if (node) {\n this._nodesExcluded.push(node);\n }\n } catch (err) {\n if (window.console) {\n window.console.error('[ng2-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n });\n }\n\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.addEventListener('click', this._initOnClickBody);\n } else {\n this._initOnClickBody();\n }\n }\n\n /** @internal */\n private _initOnClickBody() {\n this._document.body.addEventListener('click', this._onClickBody);\n }\n\n /** @internal */\n private _onClickBody(e: Event) {\n if (!this._el.nativeElement.contains(e.target) && !this._shouldExclude(e.target)) {\n this.clickOutside.emit(e);\n\n if (this.attachOutsideOnClick) {\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n }\n }\n\n /** @internal */\n private _shouldExclude(target): boolean {\n for (let i = 0; i < this._nodesExcluded.length; i++) {\n if (this._nodesExcluded[i].contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n}\n","export enum FeedbackSentiment {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n};\n\nexport interface IFeedback {\n\tsubjectId: string;\n sentiment: FeedbackSentiment;\n\ttext?: string;\n tags?: Array<string>;\n}\n","export interface ICodeEditorHint {\n icon: ICodeEditorHintIcon;\n value: string;\n type?: string;\n hint?: string;\n}\n\nexport enum ICodeEditorHintIcon {\n VALUE = '#',\n CALCULATED_VALUE = '=',\n}\n\nexport interface ICodeEditorMarker {\n name: string;\n title: string;\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { ToastrService } from 'ngx-toastr';\nimport { ToastrStatus } from '../models/toastr';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrToastrService {\n\n constructor(private toastr: ToastrService) {\n }\n\n info(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.INFO, isHtmlBody, timeOut);\n }\n\n danger(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.ERROR, isHtmlBody, timeOut);\n }\n\n success(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.SUCCESS, isHtmlBody, timeOut);\n }\n\n warning(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.WARNING, isHtmlBody, timeOut);\n }\n\n private showToastr(message: string | SafeHtml, title: string, status: ToastrStatus, isHtmlBody?: boolean, timeOut: number = 5000): void {\n const toastr = this.toastr.show('', '', {\n positionClass: 'toastr-bottom-left',\n tapToDismiss: true,\n timeOut,\n });\n\n toastr.portal.instance.data = {\n title,\n message,\n status,\n isHtmlBody\n };\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipInfoSimpleComponent } from './components/tooltip-info-simple/tooltip-info-simple.component';\nimport { TooltipNoBodyComponent } from './components/tooltip-no-body/tooltip-no-body.component';\nimport { TooltipProcessDefaultComponent } from './components/tooltip-process-default/tooltip-process-default.component';\nimport { TooltipDefaultComponent } from './components/tooltip-default/tooltip-default.component';\n\nconst TOOLTIP_COMPONENTS = [\n TooltipDefaultComponent,\n TooltipInfoComponent,\n TooltipInfoSimpleComponent,\n TooltipNoBodyComponent,\n TooltipProcessDefaultComponent\n];\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n providers: [],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n})\n\nexport class DrTooltipModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [...components, ...directives],\n declarations: [...components, ...directives]\n})\n\nexport class DrSpinnerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\nimport { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { DrSpinnerModule } from '../dr-spinner/dr-spinner.module';\nimport { DrDatePickerRangeComponent } from './date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nimport { DrLinkComponent } from './dr-link/dr-link.component';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function() {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrDatePickerRangeComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe,\n DrSelectAddItemComponent,\n DrLinkComponent\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatNativeDateModule,\n MatDatepickerModule,\n DrTooltipModule,\n DrSpinnerModule,\n ],\n})\n\nexport class DrInputsModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent } from './any-tag.component';\nimport { DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport const components = [\n DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n NgSelectModule\n ],\n exports: components,\n declarations: components,\n})\n\nexport class DateTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListTagComponent } from './list-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrDynamicTagComponent } from './dr-dynamic-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DrDynamicTagComponent],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n ],\n exports: [DrDynamicTagComponent]\n})\nexport class DrDynamicTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\nimport { DrDynamicTagModule } from '../dr-dynamic-tag/dr-dynamic-tag.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule,\n DrDynamicTagModule\n ],\n exports: [DrTagComponent],\n providers: [],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n exports: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n imports: [\n MatTooltipModule,\n DrTooltipModule,\n CommonModule\n ]\n})\n\nexport class DrAvatarModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n providers: [],\n declarations: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n})\n\nexport class DrPopoverModule {\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-slider',\n templateUrl: './dr-slider.component.html',\n styleUrls: ['./dr-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrSliderComponent, multi: true }\n ],\n standalone: true,\n})\nexport class DrSliderComponent implements ControlValueAccessor {\n @Input() disabled: boolean;\n @Input() max: number = 100;\n @Input() min: number = 1;\n @Input() step: number = 1;\n @Input() rangeValue: number = 1;\n\n private onChange: (value: number) => void = () => {\n };\n private onTouched: () => void = () => {\n };\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: number): void {\n this.rangeValue = value;\n }\n\n setValue(event): void {\n this.writeValue(event.target.value);\n this.onChange(this.rangeValue);\n this.onTouched();\n }\n}\n","<input type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n [value]=\"rangeValue\"\n (change)=\"setValue($event)\"\n/>\n","export enum CROP_IMAGE_MODES {\n SQUARE = 'square',\n RECTANGLE = 'rectangle',\n}\n\nexport interface ICropImageData {\n file: File;\n coordinates: string;\n cropMode: CROP_IMAGE_MODES;\n}\n","import { Injectable } from '@angular/core';\nimport { CROP_IMAGE_MODES } from './dr-image-cropper.types';\n\n@Injectable()\nexport class DrImageCropperCanvasService {\n ctx: CanvasRenderingContext2D;\n\n private readonly ALPHA_FOR_SHADOW = 0.2;\n // this param means that a side of a white square is half of a side of a canvas\n private readonly CROP_AREA_PROPORTION = 2;\n private readonly RECTANGULAR_SHADOW_WIDTH = 30;\n private readonly RECTANGULAR_SHADOW_HEIGHT = 70;\n\n drawShape(canvasSize: number, cropMode: CROP_IMAGE_MODES, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n this.clearCanvas(canvasSize);\n this.drawImageByZoom(canvasSize, zoomLevel, htmlImageElement);\n this.drawShadow(cropMode, canvasSize);\n }\n\n getCoordinates(cropMode: CROP_IMAGE_MODES, canvasSize: number): string {\n return cropMode === CROP_IMAGE_MODES.SQUARE\n ? this.getCoordinatesForSquare(canvasSize)\n : this.getCoordinatesForRectangle(canvasSize);\n }\n\n private getCoordinatesForSquare(canvasSize: number): string {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n const bottomPosition = canvasSize - shadowLength;\n return [shadowLength, shadowLength, bottomPosition, bottomPosition].join(',');\n }\n\n private getCoordinatesForRectangle(canvasSize: number): string {\n return [\n this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT\n ].join(',');\n }\n\n private drawShadow(cropMode: CROP_IMAGE_MODES, canvasSize: number): void {\n this.ctx.globalAlpha = this.ALPHA_FOR_SHADOW;\n this.ctx.fillStyle = 'black';\n if (cropMode === CROP_IMAGE_MODES.SQUARE) {\n this.drawSquareShadow(canvasSize)\n } else if (cropMode === CROP_IMAGE_MODES.RECTANGLE) {\n this.drawRectangularShadow(canvasSize);\n }\n this.ctx.globalAlpha = 1;\n }\n\n private drawSquareShadow(canvasSize: number): void {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n this.ctx.fillRect(0, 0, shadowLength, canvasSize);\n this.ctx.fillRect(canvasSize - shadowLength, 0, shadowLength, canvasSize);\n this.ctx.fillRect(shadowLength, 0, 2 * shadowLength, shadowLength);\n this.ctx.fillRect(shadowLength, canvasSize - shadowLength, 2 * shadowLength, shadowLength);\n }\n\n private drawRectangularShadow(canvasSize: number): void {\n this.ctx.fillRect(0, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(canvasSize - this.RECTANGULAR_SHADOW_WIDTH, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n 0,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT\n );\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT\n );\n }\n\n private drawImageByZoom(canvasSize: number, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n const maxImageDimension = Math.max(htmlImageElement.width, htmlImageElement.height);\n const proportion = canvasSize / (this.CROP_AREA_PROPORTION * maxImageDimension);\n const suitableWidth = htmlImageElement.width * proportion * zoomLevel;\n const suitableHeight = htmlImageElement.height * proportion * zoomLevel;\n\n const rectX = (canvasSize - suitableWidth) / 2;\n const rectY = (canvasSize - suitableHeight) / 2;\n\n this.ctx.drawImage(htmlImageElement, rectX, rectY, suitableWidth, suitableHeight);\n }\n\n private clearCanvas(canvasSize: number): void {\n this.ctx.fillStyle = 'white';\n this.ctx.fillRect(0, 0, canvasSize, canvasSize);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DrSliderComponent } from '../dr-inputs/dr-slider/dr-slider.component';\nimport { CROP_IMAGE_MODES, ICropImageData } from './dr-image-cropper.types';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrImageCropperCanvasService } from './dr-image-cropper-canvas.service';\n\n@Component({\n selector: 'dr-image-cropper',\n templateUrl: './dr-image-cropper.component.html',\n styleUrls: ['./dr-image-cropper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, DrSliderComponent, DrInputsModule],\n standalone: true,\n providers: [DrImageCropperCanvasService]\n})\nexport class DrImageCropperComponent implements OnChanges, AfterViewInit {\n @Input({ required: true }) cropperSize: number;\n @Input({ required: true }) imageFile: File;\n @Input() maxZoom: number = 10;\n @Input() minZoom: number = 0.5;\n @Input() zoomStep: number = 0.1;\n @Input() zoomLevel: number = 1;\n\n @Output() cropChanged = new EventEmitter<ICropImageData>();\n @Output() clearClicked = new EventEmitter<void>();\n\n @ViewChild('imageCanvas', { static: true }) canvasElement: ElementRef<HTMLCanvasElement>;\n\n htmlImageElement: HTMLImageElement;\n cropMode: CROP_IMAGE_MODES = CROP_IMAGE_MODES.SQUARE;\n readonly CROP_IMAGE_MODES = CROP_IMAGE_MODES;\n\n constructor(private readonly canvasService: DrImageCropperCanvasService) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.imageFile && this.imageFile) {\n this.readImageFile();\n }\n }\n\n ngAfterViewInit(): void {\n this.canvasService.ctx = this.canvasElement.nativeElement.getContext('2d');\n }\n\n drawImage(newZoomEvent?): void {\n if (newZoomEvent !== undefined) {\n this.zoomLevel = newZoomEvent.target.value;\n }\n this.onCropModeUpdated();\n }\n\n onCropModeUpdated(cropMode?: CROP_IMAGE_MODES): void {\n if (cropMode) {\n this.cropMode = cropMode;\n }\n\n this.canvasService.drawShape(this.cropperSize, this.cropMode, this.zoomLevel, this.htmlImageElement);\n const coordinates = this.canvasService.getCoordinates(this.cropMode, this.cropperSize);\n this.canvasElement.nativeElement.toBlob((blob) => {\n const file = new File([blob], this.imageFile.name, { type: this.imageFile.type, lastModified: Date.now() });\n this.cropChanged.emit({ file, coordinates, cropMode: this.cropMode });\n }, this.imageFile.type);\n }\n\n private readImageFile(): void {\n const reader = new FileReader();\n reader.onload = () => {\n this.htmlImageElement = new Image();\n this.htmlImageElement.src = this.getImagesStringSrc(reader);\n this.htmlImageElement.onload = () => {\n this.canvasElement.nativeElement.width = this.canvasElement.nativeElement.height = this.cropperSize;\n this.drawImage();\n };\n };\n reader.readAsDataURL(this.imageFile);\n }\n\n private getImagesStringSrc(reader: FileReader): string {\n if (typeof reader.result === 'string') return reader.result;\n\n const decoder = new TextDecoder();\n return decoder.decode(reader.result);\n }\n}\n","<div class=\"crop-mode-btns-container\">\n <dr-button theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.SQUARE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.SQUARE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__square-icon\"></div>\n Square\n </div>\n </dr-button>\n <dr-button theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.RECTANGLE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.RECTANGLE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__rectangle-icon\"></div>\n Rectangle\n </div>\n </dr-button>\n</div>\n\n<div class=\"image-cropper\">\n <canvas #imageCanvas></canvas>\n</div>\n<dr-slider\n [(ngModel)]=\"zoomLevel\"\n [max]=\"maxZoom\"\n [min]=\"minZoom\"\n [step]=\"zoomStep\"\n [style.width]=\"cropperSize + 'px'\"\n class=\"image-crop-slider\"\n (input)=\"drawImage($event)\">\n</dr-slider>\n<dr-button [theme]=\"'ghost'\" (click)=\"clearClicked.emit()\" class=\"try-another-btn\">\n Try another image\n</dr-button>\n","import { NgModule } from '@angular/core';\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\nimport { DrDropdownDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule,\n ],\n declarations: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n exports: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n providers: [\n DrDropdownService,\n ],\n})\n\nexport class DrDropdownModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n DrTooltipModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [\n DrLayoutComponent,\n DrLayoutHeaderComponent,\n DrLayoutBodyComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\n\nexport class DrLayoutModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DrTooltipModule\n ],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [\n DrErrorComponent\n ],\n})\n\nexport class DrErrorModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [StepperComponent]\n})\nexport class DrStepperModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDetailsListComponent } from './dr-details-list.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrDetailsListComponent],\n providers: [],\n declarations: [DrDetailsListComponent],\n})\n\nexport class DrDetailsListModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogModule as MatDialogModule, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDetailsListModule } from '../dr-details-list/dr-details-list.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule,\n DrDetailsListModule\n ],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n DialogService\n ]\n})\nexport class DrDialogModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\nimport { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';\nimport { DrChatAlertComponent } from './dr-chat-alert/dr-chat-alert.component';\n\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatSuggestionsComponent,\n DrDotFlashingComponent,\n DrChatAlertComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n DrAvatarModule,\n DrInputsModule,\n DrTooltipModule,\n ],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrTagsConstructorComponent } from './dr-tags-constructor.component';\nimport { FormsModule } from '@angular/forms';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n\n@NgModule({\n declarations: [DrTagsConstructorComponent],\n imports: [CommonModule, DrInputsModule, FormsModule],\n providers: [ScenarioService, TagsConstructorService],\n exports: [DrTagsConstructorComponent],\n})\nexport class DrTagsConstructorModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScenarioService } from './services/scenario.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\nimport { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';\nimport { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nimport { DrTagModule } from '../dr-tags/dr-tag.module';\nimport { DrTagsConstructorModule } from '../dr-tags-constructor/dr-tags-constructor.module';\n\n\nconst COMPONENTS = [\n DrScenarioConfigurationComponent,\n DrScenarioTagConfigurationComponent,\n]\n\n@NgModule({\n declarations: [...COMPONENTS],\n providers: [ScenarioService],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n DrTagModule,\n DrTagsConstructorModule,\n ],\n exports: [...COMPONENTS],\n})\nexport class DrScenarioModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrBadgeStatusComponent } from './dr-badge-status.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [DrBadgeStatusComponent],\n providers: [],\n declarations: [\n DrBadgeStatusComponent\n ],\n})\n\nexport class DrBadgeStatusModule {\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TreeviewComponent } from './components/treeview/treeview.component';\nimport { TreeviewItemComponent } from './components/treeview-item/treeview-item.component';\nimport { TreeviewPipe } from './pipes/treeview.pipe';\nimport { TreeviewConfig } from './models/treeview-config';\nimport { DefaultTreeviewEventParser, TreeviewEventParser } from './helpers/treeview-event-parser';\n\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule\n ],\n declarations: [\n TreeviewComponent,\n TreeviewItemComponent,\n TreeviewPipe\n ],\n exports: [\n TreeviewComponent,\n TreeviewPipe,\n ],\n providers: [],\n})\n\nexport class TreeviewModule {\n static forRoot(): ModuleWithProviders<TreeviewModule> {\n return {\n ngModule: TreeviewModule,\n providers: [\n TreeviewConfig,\n { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective]\n})\nexport class ClickOutsideModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAlertComponent } from './dr-alert.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrAlertComponent],\n providers: [],\n declarations: [\n DrAlertComponent\n ],\n})\n\nexport class DrAlertModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrToastrService } from './dr-toastr.service';\nimport { ToastrModule } from 'ngx-toastr';\nimport { DefaultToastrComponent } from './default-toastr/default-toastr.component';\n\n@NgModule({\n declarations: [\n DefaultToastrComponent\n ],\n imports: [\n CommonModule,\n ToastrModule.forRoot({\n toastComponent: DefaultToastrComponent\n })\n ],\n exports: [DefaultToastrComponent],\n providers: [DrToastrService],\n})\n\nexport class DrToastrModule {\n}\n","import 'codemirror/mode/javascript/javascript';\nimport 'codemirror/addon/edit/matchbrackets';\nimport 'codemirror/addon/hint/show-hint';\nimport '@codemirror/autocomplete';\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrCodeEditorComponent } from './dr-code-editor.component';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrErrorModule } from '../dr-error/dr-error.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrTooltipModule,\n DrErrorModule\n ],\n exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n providers: [],\n declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n})\n\nexport class DrCodeEditorModule {\n}\n","/* components */\nexport * from './lib/date-tags/any-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-link/dr-link.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';export * from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nexport * from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport * from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport * from './lib/dr-inputs/dr-select-add-item/dr-select-add-item.component';\nexport * from './lib/dr-tooltip/components/tooltip-default/tooltip-default.component';\nexport * from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport * from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport * from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport * from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/dr-chat/chat.component';\nexport * from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport * from './lib/dr-chat/dr-chat-suggestions/chat-suggestions.component';\nexport * from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport * from './lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component';\nexport * from './lib/dr-chat/dr-chat-alert/dr-chat-alert.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\nexport * from './lib/dr-badge-status/dr-badge-status.component';\nexport * from './lib/dr-alert/dr-alert.component';\nexport * from './lib/dr-code-editor/dr-code-editor.component';\nexport * from './lib/dr-code-editor/components/dr-codemirror.component';\nexport * from './lib/dr-code-editor/components/code-editor-hint-wrapper.component';\n\nexport * from './lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nexport * from './lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component';\nexport * from './lib/dr-tags-constructor/dr-tags-constructor.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\nexport * from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport * from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\n\nexport * from './lib/dr-details-list/dr-details-list.component';\n\nexport * from './lib/dr-chat/chat.component';\n\nexport * from './lib/dr-treeview/components/treeview/treeview.component';\nexport * from './lib/dr-treeview/pipes/treeview.pipe';\nexport * from './lib/dr-treeview/models/treeview-item';\nexport * from './lib/dr-treeview/models/treeview-config';\nexport * from './lib/dr-treeview/models/treeview-i18n';\nexport * from './lib/dr-treeview/models/treeview-item-template-context';\nexport * from './lib/dr-treeview/helpers/treeview-event-parser';\nexport * from './lib/dr-treeview/helpers/treeview-helper';\n\nexport * from './lib/dr-toastr/default-toastr/default-toastr.component';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\nexport { TooltipTheme } from './lib/dr-tooltip/enums/tooltip-theme.enum';\nexport { Scenario, TScenarioDataChanged } from './lib/dr-scenario/interfaces/scenario';\nexport { ToggleButtonMode } from './lib/dr-inputs/dr-toggle-button/toggle-button-mode';\nexport { DrAlertTheme } from './lib/dr-alert/enums/dr-alert-theme.enum';\n\n/* interfaces & types */\nexport { TooltipInfoContext } from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\nexport * from './lib/directives/click-outside/click-outside.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer, IDynamicTag, TDynamicTagValue, TDynamicTag, TagTypes, TagsConfigSubType, TConnectedTags } from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport {\n ElPosition,\n IDropdown,\n IDropdownItem,\n IDropdownActionIcon,\n IDropdownCoordinate,\n IDropdownCallEvent,\n IDropdownAction\n} from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\nexport * from './lib/models/badgeStatus';\nexport * from './lib/models/feedback';\nexport * from './lib/models/toastr';\nexport * from './lib/models/datePickerRange';\nexport * from './lib/dr-code-editor/models/code-editor-hint';\n\n/* services */\nexport { ScenarioService } from './lib/dr-scenario/services/scenario.service';\nexport { TagsConstructorService } from './lib/dr-tags-constructor/tags-constructor.service';\nexport { DrAvatarService } from './lib/dr-avatar/services/dr-avatar.service';\nexport { DrToastrService } from './lib/dr-toastr/dr-toastr.service';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrSliderComponent } from './lib/dr-inputs/dr-slider/dr-slider.component';\nexport { DrImageCropperComponent } from './lib/image-cropper/dr-image-cropper.component';\nexport * from './lib/image-cropper/dr-image-cropper.types';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\nexport { DrDetailsListModule } from './lib/dr-details-list/dr-details-list.module';\nexport { DrScenarioModule } from './lib/dr-scenario/dr-scenario.module';\nexport { DrBadgeStatusModule } from './lib/dr-badge-status/dr-badge-status.module';\nexport { TreeviewModule } from './lib/dr-treeview/dr-tree-view.module';\nexport { ClickOutsideModule } from './lib/directives/click-outside/click-outside.module';\nexport { DrAlertModule } from './lib/dr-alert/dr-alert.module';\nexport { DrTagsConstructorModule } from './lib/dr-tags-constructor/dr-tags-constructor.module';\nexport { DrToastrModule } from './lib/dr-toastr/dr-toastr.module';\nexport { DrCodeEditorModule } from './lib/dr-code-editor/dr-code-editor.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.TooltipDefaultComponent","i1","i2","i4.DrSpinnerDirective","i3.DrDatePickerService","i4","i5","i6.DrTooltipDirective","i7.DrSelectComponent","i8.DrShowTimeframePipe","noop","i2.DrDatePickerService","i3","i5.DrDatePickerFormatDirective","i6","i2.DrDatePickerComponent","i2.DrSelectComponent","_find","i3.DrDatePickerComponent","i2.DayTagComponent","i3.WeekTagComponent","i4.MonthTagComponent","i5.QuarterTagComponent","i6.YearTagComponent","i7.ForecastTagComponent","i3.DrSelectComponent","i4.DrToggleButtonComponent","i3.DrModelDebounceChangeDirective","_reduce","i1.DrSelectComponent","i4.DrButtonComponent","i5.DrInputComponent","_isObject","_isNil","_map","_isNumber","i3.DrSelectAddItemComponent","_merge","_forEach","_some","i2.DateTagComponent","i3.ListTagComponent","i4.DrDynamicTagComponent","merge","i1.DrTooltipDirective","i7.DrButtonComponent","i2.DrTooltipDirective","i5.DrDotFlashingComponent","i3.DrAvatarPipe","i1.DrChatCustomMessageService","i3.DrAvatarComponent","i4.DrChatMessageTextComponent","i5.DrChatMessageFileComponent","i2.DrButtonComponent","i2.DrChatSuggestionsComponent","i1.DrButtonComponent","i3.DrTooltipDirective","i3.DrErrorComponent","i4.DrCodemirrorComponent","i2.DrTagComponent","_orderBy","_cloneDeep","_filter","_includes","_indexOf","i1.ScenarioService","i2.TagsConstructorService","i4.DrToggleComponent","i5.DrToggleButtonComponent","i5.DrTagsConstructorComponent","i1.DrPopoverRef","i1.DrPopoverService","i1.DrDropdownService","i4.DrDropdownPositionDirective","i5.DrDropdownItemShowPipe","i4.RadioButtonComponent","i5.DrTooltipDirective","i1.DrAccordionComponent","i1.DrAccordionItemComponent","MAT_DIALOG_DATA","i6.DrDetailsListComponent","i5.CheckboxComponent","i6.DrInputComponent","i8.DrDatePickerComponent","i9","i1.TreeviewConfig","i1.TreeviewI18n","i2.TreeviewConfig","i3.TreeviewEventParser","i6.TreeviewItemComponent","components","MatTooltipModule","i1.DrImageCropperCanvasService","i3.DrButtonComponent","MatDialogModule","MatDialogRef"],"mappings":"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"}
1
+ {"version":3,"file":"datarailsshared-datarailsshared.mjs","sources":["../../../projects/datarailsshared/src/lib/date-tags/any-tag.component.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.html","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.html","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.html","../../../projects/datarailsshared/src/lib/models/serverTags.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/toggle-button-mode.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.html","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.html","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.html","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.html","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/services/dr-avatar.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.html","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.html","../../../projects/datarailsshared/src/lib/models/badgeStatus.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.html","../../../projects/datarailsshared/src/lib/dr-alert/enums/dr-alert-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.html","../../../projects/datarailsshared/src/lib/dr-code-editor/components/code-editor-hint-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/components/dr-codemirror.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.html","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/interfaces/scenario.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/consts/scenario-tags-config.ts","../../../projects/datarailsshared/src/lib/dr-scenario/services/scenario.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/tags-constructor.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.html","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-position.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.html","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.html","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-i18n.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-helper.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-item.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-config.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-event-parser.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/pipes/treeview.pipe.ts","../../../projects/datarailsshared/src/lib/models/toastr.ts","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.ts","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.html","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/datarailsshared/src/lib/models/feedback.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/models/code-editor-hint.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.html","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.types.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper-canvas.service.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.module.ts","../../../projects/datarailsshared/src/lib/dr-scenario/dr-scenario.module.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.module.ts","../../../projects/datarailsshared/src/lib/dr-treeview/dr-tree-view.module.ts","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.module.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.module.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.module.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n template: ``,\n selector: 'any-tag'\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n @Input() disabled: boolean;\n dateObj = { date: undefined };\n constructor() {\n }\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n initDate() {\n }\n initName() {\n }\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'w/yyyy'\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY'\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport enum DateTags {\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n THIS_MONTH = 'this_month',\n PREV_MONTH = 'prev_month',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n","import moment from 'moment';\nimport { DateTags, TimeframeOption } from '../models/datePicker';\nimport { Observable } from 'rxjs';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n\n public static getDateByTag(tag: string) :any {\n const todayDate = moment().utc().endOf('day');\n switch (tag) {\n case DateTags.TODAY:\n return todayDate;\n case DateTags.YESTERDAY:\n todayDate.subtract(1, 'days');\n return todayDate;\n case DateTags.THIS_MONTH:\n todayDate.endOf('month');\n return todayDate;\n case DateTags.PREV_MONTH:\n todayDate.subtract(1, 'months').endOf('month');\n return todayDate;\n }\n }\n\n public static fromResizeObserver = (target: Element): Observable<ResizeObserverEntry[]> =>\n new Observable((observer) => {\n const resizeObserver = new ResizeObserver((entries) => observer.next(entries));\n\n resizeObserver.observe(target);\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n public static normalizeLineEndings = (str: string): string => {\n return str ? str.replace(/\\r\\n|\\r/g, '\\n') : str;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, DateTags, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n timeframe: TTimeframeOption = TimeframeOption.DAY;\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n updatedQuarter$ = new Subject<Moment>();\n updatedDateAndClose$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n isUsingDateTagPresets: boolean;\n presetTag$ = new BehaviorSubject<DateTags>('' as DateTags);\n onSameDaySelectedInCalendar$ = new Subject<Moment>();\n keepPresetTag = false;\n isValueUpdating = false;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n\n getDisplayPrefix() {\n const formatCached = this.format$.getValue();\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n\n public updateDatePickerByPreset(tag: DateTags, calender: any) {\n this.keepPresetTag = true;\n let date = null;\n if (tag) {\n date = DrSharedUtils.getDateByTag(tag);\n switch (tag) {\n case DateTags.TODAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.YESTERDAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.THIS_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n case DateTags.PREV_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n }\n }\n this.presetTag$.next(tag);\n this.updatedDateAndClose$.next(date);\n }\n\n public selectDateInCalendarMonthView(date: Moment, calender: any): void {\n setTimeout(() => {\n const monthView = calender.monthView as any;\n if (monthView) {\n monthView._activeDate = date;\n monthView._selected = date;\n monthView._init();\n }\n });\n }\n\n public resetPresetTag() {\n if (!this.keepPresetTag) {\n this.presetTag$.next(null);\n } else {\n this.keepPresetTag = false;\n }\n }\n}\n","import { animate, style, transition } from '@angular/animations';\nimport { DateTags } from './datePicker';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8\n }\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(150, style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(150, style({ opacity: 0 })),\n ]),\n];\n\nexport const PRESET_TAGS_LIST: Array<{ key: string, label: string }> = [ \n {key: DateTags.TODAY, label: 'Today'},\n {key: DateTags.YESTERDAY, label: 'Yesterday'},\n {key: DateTags.THIS_MONTH, label: 'This month'},\n {key: DateTags.PREV_MONTH, label: 'Prev month'}\n];","export enum TooltipTheme {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { TooltipTheme } from '../../enums/tooltip-theme.enum';\n\n@Component({\n selector: 'dr-tooltip-default',\n template: '<span class=\"content\" [innerHTML]=\"content\"></span><ng-content></ng-content>',\n styleUrls: ['./tooltip-default.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipDefaultComponent {\n\n @Input() content: string;\n\n @Input()\n @HostBinding('class')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n constructor() {\n }\n\n}\n","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [\n trigger('tooltip', POPUP_ANIMATION),\n ],\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n @Input() theme: TooltipTheme;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n\n}\n","<div [class]=\"position + ' ' + class + ' ' + theme\" [ngClass]=\"{'dr-tooltip': !options?.withoutContainerStyles}\">\n <div *ngIf=\"!options?.withoutArrow\" class=\"dr-tooltip-arrow\"></div>\n <ng-container *ngIf=\"isContentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\n </ng-container>\n <ng-template #defaultContent>\n <dr-tooltip-default [content]=\"content\" [theme]=\"theme\"></dr-tooltip-default>\n </ng-template>\n</div>\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\nconst getOverlayPosition = (position) => ({ ...POPUP_POSITIONS[position] });\n\n@Directive({\n selector: '[drTooltip]'\n})\nexport class DrTooltipDirective implements OnDestroy {\n\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n private _position = 'top';\n @Input('drTooltipPosition')\n public get position() {\n return this._position;\n }\n public set position(value) {\n this._position = value;\n this.overlayPosition = getOverlayPosition(value);\n }\n @Input('drTooltipClass')\n class = '';\n\n @Input('drTooltipTheme')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n @Input() drTooltipMouseEnterTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = getOverlayPosition(this.position);\n if (position?.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position?.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n this.overlayPosition = position;\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n private mouseenterTimer: ReturnType<typeof setTimeout>;\n private overlayPosition = getOverlayPosition(this.position);\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n if (this.drTooltipMouseEnterTimeout) {\n this.clearMouseEnterTimeout();\n\n this.mouseenterTimer = setTimeout(() => {\n this.renderTooltip();\n }, this.drTooltipMouseEnterTimeout);\n } else {\n this.renderTooltip();\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.clearMouseEnterTimeout();\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([this.overlayPosition]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n if (!this.content) return;\n\n this.createOverlay();\n if (!this.overlayRef?.hasAttached()) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n this.tooltipRef.instance.theme = this.theme;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$.pipe(skip(1)).subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n private clearMouseEnterTimeout() {\n if (this.mouseenterTimer) {\n clearTimeout(this.mouseenterTimer);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrSpinnerComponent {\n\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","<div [class]=\"'spinner-wrapper spinner-wrapper--' + (options?.spinnerType || 'logo')\">\n <div class=\"shadow\" [class.shadow--none]=\"options.noOverlay\"></div>\n <div [class]=\"'spinner spinner--' + (options?.spinnerSize || 'medium')\"></div>\n</div>\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]'\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = 'medium';\n @Input() drSpinnerType: SpinnerType = 'logo';\n @Input() drSpinnerNoOverlay = false;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({ ...options, spinnerSize: this.drSpinnerSize, spinnerType: this.drSpinnerType, noOverlay: this.drSpinnerNoOverlay });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef, ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nconst SELECT_HOST_ATTRIBUTES = [\n 'no-left-border',\n 'no-left-border-radius',\n 'no-right-border',\n 'no-right-border-radius',\n];\n\ninterface INgSelectComponentAccessor {\n close: () => void;\n}\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true\n }]\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n @Input() className: string;\n @Input() items: Array<any> | Readonly<Array<any>> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() hideSelected: boolean;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() loadingText: string = 'Loading...';\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Input() dropdownClass: string;\n @Input() closeOnSelect = true;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n @Output() closeUp: EventEmitter<any> = new EventEmitter<any>();\n @ViewChild(NgSelectComponent, { read: NgSelectComponent }) private readonly ngSelect: INgSelectComponentAccessor;\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n (this.getHostElement()).classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n close(): void {\n this.ngSelect.close();\n }\n\n onDropdownOpen(): void {\n if (typeof this.dropdownClass === 'string') {\n setTimeout(() => {\n document.querySelector('.ng-dropdown-panel').classList.add(...this.dropdownClass.split(' '));\n }, 0);\n }\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\n }\n}\n","<ng-select [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [readonly]=\"readonly\"\n [closeOnSelect]=\"closeOnSelect\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n [isOpen]=\"isOpen\"\n [groupBy]=\"groupBy\"\n [attr.autofocus]=\"autofocus\"\n (change)=\"onChange(selectedItem); change.emit(selectedItem)\"\n (open)=\"open.emit($event); onDropdownOpen()\"\n (close)=\"closeUp.emit($event);\"\n class=\"dr-select\"\n #selectComponent>\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\"\n >{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionFooterTemplate\" [ngTemplateOutletContext]=\"{ item: item, close: selectComponent.close.bind(selectComponent) }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"groupBy\" ng-optgroup-tmp let-item=\"item\">\n {{ item[groupBy] }}\n </ng-template>\n <ng-template ng-loadingspinner-tmp>\n <div *ngIf=\"loading\"\n class=\"dr-select__loading\"\n [drSpinner]=\"loading\"\n [drSpinnerType]=\"'circle'\"\n [drSpinnerSize]=\"'small'\"\n [drSpinnerNoOverlay]=\"true\">\n </div>\n </ng-template>\n</ng-select>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption, ITimeframeOption } from '../../models/datePicker';\n\n@Pipe({\n name: 'drShowTimeframePipe'\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter(item => showOptions.includes(item.timeframe));\n }\n}\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from \"@angular/core\";\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, ITimeframeOption, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { PRESET_TAGS_LIST } from \"../../../models/constants\";\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [{\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year())\n }, {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () => String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year())\n }, {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n }\n }];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n presetTagList = PRESET_TAGS_LIST;\n get selectedPresetTag() {\n return this.datePickerService.presetTag$.getValue();\n };\n\n public readonly calendarView = CalendarView;\n\n constructor(private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe(value => {\n const timeframe = this.datePickerService.getTimeframe(value);\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.timeframe === timeframe)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n _calendar._userSelection.subscribe(date => {\n if (!this.datePickerService.isValueUpdating) {\n this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();\n this.periodYearLabel= fullPeriodLabel.match(/[0-9]+/g).toString();\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe(value) {\n if (value !== this.selectedTimeframe) {\n this.datePickerService.resetPresetTag();\n }\n this.selectedTimeframe = value;\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(this._calendar.currentView as CalendarView);\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n }\n\n onSelectPresetTag(tag: any) {\n if (tag.key === this.selectedPresetTag) {\n this.datePickerService.presetTag$.next(null);\n } else {\n this.datePickerService.presetTag$.next(tag.key);\n }\n this.datePickerService.updateDatePickerByPreset(this.selectedPresetTag, this._calendar);\n }\n}\n","<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div *ngFor=\"let tag of presetTagList\" \n id=\"preset_tag\" \n class=\"dr-datepicker-preset-date__tags__tag\" \n (click)=\"onSelectPresetTag(tag)\" \n [ngClass]=\"{'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag}\"\n [drTooltip]=\"selectedPresetTag === tag.key? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat\n }\n ]\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(\n this.configDateParse,\n this.configDateDisplay\n );\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl\n ) {\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport moment from 'moment';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\n\nconst noop = () => {\n};\n\nexport class CustomDateAdapter extends MomentDateAdapter {\n getFirstDayOfWeek(): number {\n return 1;\n }\n}\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n DrDatePickerService\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {\n @Input()\n format: string;\n\n @Input() set min(minDate: number) {\n this._min = minDate ? moment.unix(minDate).utc() : null;\n }\n\n @Input() set max(maxDate: number) {\n this._max = maxDate ? moment.unix(maxDate).utc() : null;\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select...';\n\n @Input() @HostBinding('class.disabled') disabled: boolean;\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @Input() datepickerFilter: (moment: Moment) => boolean;\n\n @ViewChild('datePicker') public datePicker: any;\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n if (v !== this.innerValue) {\n this.setValueFromMoment(v);\n }\n this.cdr.markForCheck();\n }\n\n protected innerValue: Moment = null;\n protected destroyed$ = new Subject<void>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n let timeframe;\n let format = this.datePickerService.getConfiguredFormat(this.format as TimeframeOption);\n if (format) {\n timeframe = this.format as TimeframeOption;\n } else {\n format = this.datePickerService.normalizeValue(this.format);\n timeframe = this.datePickerService.getTimeframe(format);\n }\n this.datePickerService.timeframe = timeframe;\n this.datePickerService.format$.next(format);\n }\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n } else {\n this.innerValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(this.innerValue, 4);\n } else {\n this.innerValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n this.innerValue.startOf(timeframe);\n endOfPeriod = this.innerValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(this.innerValue, 'seconds');\n this.innerValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n this.innerValue.startOf(timeframe);\n break;\n }\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.setValueFromMoment(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n /*\n * We need keep local timestamp for Electron Application\n * Issue in electron: when we select date, date select with -1 (if we're choosing 2023, output will be 2022)\n */\n const convertedValue = (document as any).is_electron ? moment.unix(value) : moment.unix(value).utc();\n this.innerValue = value ? convertedValue : null;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n // Should be as arrow function to avoid lose scope\n public dateFilter = (moment: Moment) => {\n if (this.datepickerFilter && moment) {\n return this.datepickerFilter(moment);\n }\n\n return true;\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n\n // isValueUpdating is required for manage clicks on same dates: if isValueUpdating - true then\n // days are different and subscription on calendar day click action won't trigger Accessor ngModel update\n // one more time\n this.datePickerService.isValueUpdating = true;\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n setTimeout(() => {\n this.datePickerService.isValueUpdating = false;\n });\n }\n @HostBinding('class.active')\n private active = false;\n onOpen() {\n this.active = true;\n }\n\n onCLose() {\n this.active = false;\n }\n}\n","<i class=\"dr-icon-date\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n</mat-datepicker>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport moment from 'moment';\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n styleUrls: ['./day-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\n\nexport class DayTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value: number) {\n const date = moment.unix(value);\n const resultTag: IDateTag = {\n name: this.name,\n value: date.unix(),\n label: date.format('MM/DD/YYYY'),\n locked: !this.dateFilter(date)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(momentData): boolean {\n const date = momentData.date();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.date() === date;\n });\n };\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"day\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n styleUrls: ['./week-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n const timestamp = this.defaultValue || moment().unix() ;\n this.date = timestamp;\n this.dateObj.date = timestamp;\n this.chosenTagHandler(timestamp);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n dateFilter(date): boolean {\n const week = date.week();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.week() === week && lockDate.year() === year;\n });\n };\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value).utc().weekday(1);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getWeekLabel(resultDate),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(moment) {\n return `W${ moment.week() } ${ moment.year() }`;\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"week\"\n [(ngModel)]=\"date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n\nimport moment from 'moment';\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n styleUrls: ['./month-tag.component.scss'],\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\n\nexport class MonthTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n // Should be as arrow function to avoid lose scope\n dateFilter(date): boolean {\n const month = date.month();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === year && lockDate.month() === month;\n });\n };\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"month\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport moment from 'moment';\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n styleUrls: ['./quarter-tag.component.scss'],\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit, OnChanges {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.quarters\n ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value)))\n : false;\n }\n\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.initName();\n this.initTags();\n }\n }\n\n ngOnInit() {\n this.initName();\n this.initTags();\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n initTags() {\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n if (quarter.isSelected) {\n this.selectedValue = quarter;\n this.chosenTagHandler(quarter);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n chosenTagHandler(quarter) {\n const resultDate = moment.unix(quarter.value);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(quarter)\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i; let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: (i === 0),\n disabled: false,\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor((date.getMonth() / 3) + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter(quarter): boolean {\n const quarterDate = moment.unix(quarter.value);\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {\n quarter.disabled = true;\n return true;\n }\n\n return false;\n });\n };\n}\n","<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n styleUrls: ['./year-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\n\nexport class YearTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(resultDate)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const calendarDateYear = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === calendarDateYear;\n });\n };\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker format=\"year\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MatLegacySelectChange as MatSelectChange } from '@angular/material/legacy-select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { find as _find } from 'lodash';\nimport moment from 'moment';\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n styleUrls: ['./forecast-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n }\n ]\n})\n\nexport class ForecastTagComponent extends AnyTagComponent implements OnChanges {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n\n forecastValue: number | undefined = undefined;\n isDateEventHappened = false;\n initialForecastValue: number;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12', disabled: false },\n { value: 1, label: '1+11', disabled: false },\n { value: 2, label: '2+10', disabled: false },\n { value: 3, label: '3+9', disabled: false },\n { value: 4, label: '4+8', disabled: false },\n { value: 5, label: '5+7', disabled: false },\n { value: 6, label: '6+6', disabled: false },\n { value: 7, label: '7+5', disabled: false },\n { value: 8, label: '8+4', disabled: false },\n { value: 9, label: '9+3', disabled: false },\n { value: 10, label: '10+2', disabled: false },\n { value: 11, label: '11+1', disabled: false }\n ];\n\n private initDateValue = null;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.updateLockedDate();\n }\n }\n\n private isNeedToIncrementYear(dateObj, fiscalYearStartsFrom) {\n return dateObj.month() + 1 >= fiscalYearStartsFrom;\n }\n\n initDate() {\n const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n this.initialForecastValue = this.forecastValue;\n const fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\n\n this.updateYear(fiscal_year, this.forecastValue);\n this.updateLockedDate();\n\n if (!this.initDateValue) {\n this.initDateValue = dateVal.unix();\n }\n }\n\n updateYear(fiscalYear?: number, month?: number) {\n const DATE_TIME = '12:00:00';\n const MONTH_DIFF = 1;\n\n this.dateObj.date = fiscalYear\n ? moment.utc(`${ month + MONTH_DIFF || '01' }/01/${ fiscalYear } ${ DATE_TIME }`, 'MM/DD/YYYY hh:mm:ss').unix()\n : moment.utc().unix();\n }\n\n updateLockedDate() {\n const year = moment.unix(this.dateObj.date).year();\n\n this.forecastTags = this.forecastTags.map(forecastTag => {\n forecastTag.disabled = this.lockedDate.some((timestamp) => {\n const locked = moment.unix(timestamp);\n return locked.month() === forecastTag.value && +locked.year() === +year;\n });\n\n return forecastTag;\n });\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast (New)';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.month() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.year();\n if (this.initialForecastValue !== this.forecastValue && !!this.dateObj?.date && dateObj.year() - moment.unix(this.defaultValue).year() < 1 && fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n if (this.isNeedToIncrementYear(dateObj, fiscal_year_starts_from)) {\n fiscal_year += 1;\n }\n } else {\n if (!this.isNeedToIncrementYear(dateObj, fiscal_year_starts_from)) {\n fiscal_year -= 1;\n }\n }\n }\n return fiscal_year;\n }\n\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler(event: Event) {\n this.updateLockedDate();\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n if (this.isDateEventHappened) return;\n\n const month = this.forecastValue;\n const year = moment.unix(this.dateObj.date).year();\n\n let dateValueResult;\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n const date = new Date(year, month, 1, 12, 0, 0, 0);\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\n } else {\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\n }\n }\n\n dateValueResult = date.getTime() / 1000;\n const initDate = moment.unix(this.dateObj.date).set('month', month);\n const fiscal_year = this.getFiscalYearFromDate(initDate, fiscal_year_starts_from, fiscal_year_back);\n this.updateYear(fiscal_year, date.getMonth());\n\n this.isDateEventHappened = true;\n setTimeout(() => {\n this.isDateEventHappened = false;\n });\n }\n\n const resultTag: IDateTag = {\n name: this.name,\n value: dateValueResult,\n label: `${ _find(this.forecastTags, { value: this.forecastValue })?.label } (${ year })`,\n locked: !this.dateFilter(moment.unix(this.dateObj.date))\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const month = this.forecastValue;\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.month() === month && lockDate.year() === year;\n });\n };\n}\n","<div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler($event)\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler($event)\"></dr-date-picker>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() disabled: boolean;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n","<div>\n <year-tag *ngIf=\"dateTypeChosen === 'year'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></year-tag>\n <quarter-tag *ngIf=\"dateTypeChosen === 'quarter'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></quarter-tag>\n <month-tag *ngIf=\"dateTypeChosen === 'month'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></month-tag>\n <week-tag *ngIf=\"dateTypeChosen === 'week'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></week-tag>\n <day-tag *ngIf=\"dateTypeChosen === 'day'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></day-tag>\n <forecast-tag *ngIf=\"dateTypeChosen === 'forecast_new'\" [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></forecast-tag>\n</div>\n","// instead of getting this from the server each time\n// this is not going to change much\nexport enum TagTypes {\n LIST = 'LIST',\n DATE = 'DATE'\n}\n\nexport enum TagsConfigSubType {\n YEAR = 'year',\n PLAN = 'plan',\n BUDGET_CYCLE = 'budget cycle',\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day',\n FORECAST_NEW = 'forecast_new',\n QUARTER = 'quarter',\n FILE_STATUS = 'file_status'\n}\n\nexport interface ITag {\n id: number;\n name: string;\n type: TAG_TYPES;\n options: any;\n values: string[] | null;\n description: string;\n locked?: boolean;\n}\n\nexport interface ITagForServer {\n id: number;\n name: string;\n value?: number | string;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IDateTag {\n name: string;\n value?: number;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IListTag {\n name: string;\n value?: number;\n label?: string;\n}\n\nexport interface IDynamicTag {\n value: string;\n is_favorite?: boolean;\n}\n\nexport type TDynamicTagValue = IDynamicTag | string | number;\nexport type TDynamicTag = { [parentValue: string]: TDynamicTagValue[] };\nexport type TConnectedTags = { [tagId: number]: ITagForServer[] };\nexport type TAG_TYPES = TagTypes;\n","export enum ToggleButtonMode {\n DEFAULT = 'default',\n DOTTED = 'dotted',\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ToggleButtonMode } from './toggle-button-mode';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() bindHidden: string | null = null;\n @Input() mode: ToggleButtonMode = ToggleButtonMode.DEFAULT;\n @Input() selectedValue: any | string;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n const nextValue = item[this.bindValue] || item;\n if (this.selectedValue === nextValue) {\n return;\n }\n\n this.selectedValue = nextValue;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","<div class=\"toggle-container\"\n [class.disabled]=\"_disabled\"\n [attr.mode]=\"mode\">\n <ng-container *ngFor=\"let item of items\">\n <div *ngIf=\"item && !item[bindHidden]\"\n class=\"toggle-container__item\"\n [class.selected]=\"item[bindValue] === selectedValue || item === selectedValue\"\n [class.disabled]=\"item.disabled\"\n (click)=\"setValue(item)\">{{ item[bindLabel] || item.name || item }}</div>\n </ng-container>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\n\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Input() disabled: boolean;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","<div>\n <div *ngIf=\"values.length > 2\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select placeholder=\"Select\"\n [(ngModel)]=\"defaultValue\"\n [items]=\"values\"\n (ngModelChange)=\"chosenTagHandler($event)\">\n\n </dr-select>\n </div>\n <div *ngIf=\"values.length < 3\" class=\"tag__toggle-button\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-toggle-button bindValue=\"value\"\n bindLabel=\"name\"\n [(ngModel)]=\"defaultValue\"\n (ngModelChange)=\"chosenTagHandler($event)\"\n [items]=\"values\" style=\"display: flex\"></dr-toggle-button>\n </div>\n</div>\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, filter, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]'\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n private previousValue = null;\n\n @Input() debounce = 500;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges.pipe(\n skip(1),\n debounceTime(this.debounce),\n filter(value => value !== this.previousValue),\n distinctUntilChanged()\n ).subscribe(value => {\n this.previousValue = value;\n this.ngModelDebounceChange.emit(value)\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input() set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input() set buttonOptions(value) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input() set type(val) {\n this._type = val;\n if (this._type === 'search') {\n this._elementClass.push('search-type');\n if (!this._placeholder) {\n this._placeholder = 'Search...';\n }\n }\n };\n\n get type(): string {\n return this._type;\n }\n\n @Input() name: string;\n\n @Input() set placeholder(val: string) {\n this._placeholder = val;\n };\n\n get placeholder(): string {\n return this._placeholder;\n }\n\n @Input() readonly = false;\n\n @Input() set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Input()\n @HostBinding('class.search-type-mini')\n searchMini: boolean;\n @Output() blur = new EventEmitter();\n @Output() modelDebounceChange = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled = null;\n _elementClass: string[] = [];\n _buttonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save'\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() clearHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\n @ViewChild('inputRef') private readonly inputElement: ElementRef<HTMLInputElement>;\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n private _placeholder = '';\n private _type = 'string';\n private _clearable = false;\n\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked() {\n this.searchHandler.emit(this.value);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n this.clearHandler.emit($event);\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n}\n","<ng-content select=\"[prefixIcon]\"></ng-content>\n<input #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.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()\"></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","import { Component, HostBinding, Input } from '@angular/core';\n\ntype ButtonType =\n 'primary' |\n 'split-primary-first' |\n 'split-primary-last' |\n 'secondary' |\n 'split-secondary-first' |\n 'split-secondary-last' |\n 'icon' |\n 'icon-primary' |\n 'icon-secondary' |\n 'ghost' |\n 'selection' |\n 'highlight' |\n 'danger' |\n 'help';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n @Input()\n @HostBinding('class')\n theme: ButtonType = 'primary';\n\n @Input()\n @HostBinding('class.with-icon')\n icon: string | string[];\n @Input() iconColor: string;\n @Input() iconSize = '24px';\n\n @Input()\n @HostBinding('class.with-icon-after')\n iconAfter: string | string[];\n @Input() iconAfterColor: string;\n @Input() iconAfterSize = '24px';\n\n\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n\n @Input()\n @HostBinding('class.loading')\n isLoading = false;\n\n @Input()\n @HostBinding('class.active')\n isActive = false;\n}\n","<button [disabled]=\"disabled\">\n <i *ngIf=\"icon\"\n class=\"dr-button__icon\"\n [class]=\"icon\"\n [style.font-size]=\"iconSize\"\n [style.color]=\"iconColor || 'inherit'\">\n </i>\n <ng-content></ng-content>\n <div *ngIf=\"isLoading\"\n class=\"dr-button__spinner\">\n <i [style.font-size]=\"iconSize\" class=\"dr-icon-load\"></i>\n </div>\n <i *ngIf=\"iconAfter\"\n class=\"dr-button__icon dr-button__icon--after\"\n [class]=\"iconAfter\"\n [style.font-size]=\"iconAfterSize\"\n [style.color]=\"iconAfterColor || 'inherit'\">\n </i>\n</button>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { DrSelectComponent } from '../dr-select/dr-select.component';\nimport { reduce as _reduce } from 'lodash';\nimport { DrInputComponent } from '../dr-input/dr-input.component';\n\n@Component({\n selector: 'dr-select-add-item',\n templateUrl: './dr-select-add-item.component.html',\n styleUrls: ['./dr-select-add-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSelectAddItemComponent implements OnInit, OnChanges {\n public isDynamicAdding: boolean;\n public dynamicValue: string;\n public currentValues: any[] = [];\n public isDirty: boolean;\n\n @Input() public dynamicAddLabel = 'Add new';\n @Input() public bindValue: string;\n @Input() private values: any[] = [];\n @Output() private dynamicValueAdded: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('dynamicInputRef') set inputRef(input: DrInputComponent) {\n if (!input) return;\n input.focus();\n }\n\n constructor(private drSelect: DrSelectComponent) {\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n this.calculateCurrentValues();\n }\n\n public ngOnInit(): void {\n this.calculateCurrentValues();\n }\n\n public onDynamicAdding(): void {\n this.isDynamicAdding = true;\n }\n\n public onDynamicAddingClose(): void {\n this.isDynamicAdding = false;\n this.dynamicValue = '';\n }\n\n public isDynamicValueValid(): boolean {\n const trimmedValue = this.dynamicValue?.trim();\n if (!trimmedValue) return false;\n return !this.currentValues.includes(trimmedValue);\n }\n\n public onDynamicAdd(value: string, keydownEvent?: KeyboardEvent): void {\n this.isDirty = true;\n if (!this.isDynamicValueValid()) return;\n if (keydownEvent && keydownEvent.key !== 'Enter') return;\n\n this.onDynamicAddingClose();\n this.drSelect.close();\n this.dynamicValueAdded.emit(value?.trim());\n }\n\n private calculateCurrentValues(): void {\n this.currentValues = this.bindValue\n ? _reduce(this.values, (acc, curr) => {\n acc.push(curr[this.bindValue]);\n return acc;\n }, [])\n : this.values;\n }\n}\n","<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <dr-input #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\"\n icon=\"dr-icon-exit\"\n iconSize=\"18px\"\n (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';\nimport { IDynamicTag, ITag, ITagForServer, TDynamicTag, TDynamicTagValue } from '../models/serverTags';\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-dynamic-tag',\n templateUrl: './dr-dynamic-tag.component.html',\n styleUrls: ['./dr-dynamic-tag.component.scss']\n})\nexport class DrDynamicTagComponent implements OnChanges {\n\n @Input() public values: TDynamicTag;\n @Input() public tagConfig: ITag;\n @Input() public selectedTag: ITagForServer;\n\n @Input() public lockedTags: any[] = [];\n @Input() public connectedTags: ITagForServer[];\n @Input() public isDynamicTagAddEnabled: boolean;\n @Input() public disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n @Output() tagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public selectedDynamicTag: TDynamicTagValue;\n public currentValues: TDynamicTagValue[];\n public isLockedTagSelected: boolean;\n\n public get isPrimitiveDataSource(): boolean {\n const values = Object.values(this.values) || [];\n return !_isObject(values[0]);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.updateDynamicTagValues();\n }\n\n public onTagChanged($event: string): void {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: $event,\n locked: this.lockedTags.includes($event)\n };\n\n if (!_isNil(this.selectedTag?.locked)) {\n resultEvent.locked = this.selectedTag.locked;\n }\n\n if (!_isNil(this.selectedTag?.label)) {\n resultEvent.label = this.selectedTag.label;\n }\n\n this.isLockedTagSelected = resultEvent.locked;\n this.tagChange.emit(resultEvent);\n }\n\n public onOptionClick($event: Event, tagValue: string | number): void {\n if (this.lockedTags.includes(tagValue)) {\n $event.stopImmediatePropagation();\n }\n }\n\n public onDynamicValueAdd($event: string) {\n const parentValueKey = this.getParentValueKey();\n const parentValues = this.values[parentValueKey] || [];\n\n if (this.isPrimitiveDataSource) {\n this.values[parentValueKey] = [$event, ...parentValues];\n } else {\n this.values[parentValueKey] = [{ value: $event }, ...parentValues];\n }\n\n this.selectedDynamicTag = $event;\n\n this.currentValues = this.values[parentValueKey];\n this.onTagChanged($event);\n this.tagAdd.emit($event);\n }\n\n private updateDynamicTagValues(): void {\n const parentValueKey = this.getParentValueKey();\n this.currentValues = this.values[parentValueKey];\n this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, this.selectedTag?.value);\n this.onTagChanged(this.selectedDynamicTag);\n }\n\n private getSelectedDynamicTag(currentValues: TDynamicTagValue[], selectedValue: string | number): string {\n if (!currentValues?.length) return null;\n\n if (_isObject(currentValues[0])) {\n const valueFromConfig = _find(currentValues, { value: selectedValue }) as IDynamicTag;\n const favoriteValue = _find(currentValues, { is_favorite: true }) as IDynamicTag;\n return (valueFromConfig || favoriteValue || currentValues[0]).value;\n }\n\n const valueFromConfig = _find(currentValues, (value) => value === selectedValue);\n return (valueFromConfig || currentValues[0]) as string;\n }\n\n private getParentValueKey(): string {\n return _map(this.connectedTags, this.tryToParseParentValue).join('__');\n }\n\n private tryToParseParentValue(connectedTags: ITagForServer) {\n if (_isNumber(connectedTags.value)) {\n const momentData = moment.unix(connectedTags.value);\n const convertedParentValue = momentData.get('year'); // TODO: add input prop (selectedTimeDimension) or Format\n\n if (momentData.isValid() && convertedParentValue) {\n return convertedParentValue;\n }\n }\n\n return connectedTags.value;\n }\n}\n","<p class=\"dynamic-tag__label\">{{ tagConfig.name }}</p>\n<dr-select [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { IDateTag, IListTag, ITag, ITagForServer, TagTypes, TDynamicTag, TDynamicTagValue } from '../models/serverTags';\nimport { find as _find, forEach as _forEach, map as _map, merge as _merge, some as _some } from 'lodash';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrTagComponent implements OnInit, OnChanges {\n @Input() tagConfig: ITag;\n // selectedTagValue\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[] = [];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n\n @Input() tagsConfig: ITag[];\n @Input() dynamicTagValues: TDynamicTag = {};\n\n @Input() public set connectedTags(tags: ITagForServer[]) {\n this._connectedTags = tags || [];\n }\n\n @Input() isDynamicTagAddEnabled: boolean;\n\n @Input() disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>(); // Not emit value for dynamic tag\n @Output() dynamicTagChange: EventEmitter<ITagForServer[]> = new EventEmitter<ITagForServer[]>();\n @Output() dynamicTagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public defaultValue: string | undefined;\n public currentTagDynamic: boolean;\n public currentTagConnectedToDynamic = false;\n public tagTypes = TagTypes;\n\n public dateTag: any;\n public listTag: any;\n\n private connectedTagsValues: ITagForServer[] = [];\n private dynamicTagValue: ITagForServer;\n private _connectedTags: ITagForServer[] = [];\n\n public get connectedTags(): ITagForServer[] {\n return this._connectedTags;\n }\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: ''\n };\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges.tagsConfig) {\n this.calculateDynamicTag();\n }\n }\n\n ngOnInit() {\n this.dateTag = {\n type: this.tagConfig.type,\n sub_type: this.tagConfig.options.sub_type,\n value: this.selectedTag?.value,\n };\n\n this.listTag = {\n name: this.tagConfig.name,\n type: this.tagConfig.type,\n values: this.tagConfig.values,\n value: this.selectedTag?.value,\n };\n\n if (this.tagsConfig && this.currentTagDynamic) {\n this.configureTagItems();\n }\n\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: event.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onDynamicTagChange(tag?: ITagForServer) {\n if (tag) {\n this.dynamicTagValue = tag;\n }\n\n this.dynamicTagChange.emit([...this.connectedTagsValues, this.dynamicTagValue]);\n }\n\n private onDynamicHandler(event) {\n const connectedDateTagConfig = _find(this.tagsConfig, (tagConfig) => tagConfig.name === event.name);\n this.connectedTags = _map(this.connectedTags, tag => {\n if (tag.id === connectedDateTagConfig.id) {\n tag.value = event.value;\n tag.locked = event.locked;\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n tag.label = event.label;\n }\n }\n\n return tag;\n });\n\n const resultEvent: ITagForServer = {\n id: connectedDateTagConfig.id,\n name: connectedDateTagConfig.name,\n value: event.value\n };\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n resultEvent.label = event.label;\n resultEvent.locked = event.locked;\n }\n\n\n const savedTag = _find(this.connectedTagsValues, { id: resultEvent.id });\n\n if (savedTag) {\n _merge(savedTag, resultEvent);\n } else {\n this.connectedTagsValues.push(resultEvent);\n }\n\n this.onDynamicTagChange();\n }\n\n private configureTagItems() {\n _forEach(this.tagsConfig, (tagConfig) => {\n // TODO: task DR-22350\n // TODO: should be like this.tagConfig.options.connected_tags.includes(curr.options.sub_type)\n if (!['year'].includes(tagConfig.options.sub_type)) return;\n if (tagConfig.type === TagTypes.DATE) {\n this.dateTag = {\n type: tagConfig.type,\n sub_type: tagConfig.options.sub_type,\n value: (_find(this.connectedTags, { id: tagConfig.id }) || {}).value,\n };\n }\n\n if (tagConfig.type === TagTypes.LIST) {\n this.listTag = {\n name: tagConfig.name,\n type: tagConfig.type,\n values: tagConfig.values,\n value: tagConfig?.options?.default_value,\n };\n }\n\n if (!_find(this.connectedTags, { id: tagConfig.id })) {\n this.connectedTags.push({\n id: tagConfig.id,\n name: tagConfig.name,\n value: undefined,\n });\n }\n });\n }\n\n private calculateDynamicTag(): void {\n this.currentTagDynamic = this.tagConfig.options.is_custom;\n\n this.currentTagConnectedToDynamic = _some(this.tagsConfig, (tagConfig) => tagConfig.options.is_custom\n && ['year'].includes(this.tagConfig.options.sub_type));\n }\n}\n","<div [class.dynamic-tag]=\"currentTagDynamic\">\n <date-tag *ngIf=\"dateTag.type === tagTypes.DATE && !currentTagConnectedToDynamic\"\n [dateTypeChosen]=\"dateTag.sub_type\"\n [defaultValue]=\"dateTag.value\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (selectedDate)=\"onDateHandler($event)\"></date-tag>\n\n <list-tag *ngIf=\"listTag.type === tagTypes.LIST && !currentTagConnectedToDynamic && !tagConfig.options?.is_custom\"\n (tagChange)=\"onListHandler($event)\"\n [name]=\"listTag.name\"\n [values]=\"listTag.values\"\n [disabled]=\"disabled\"\n [defaultValue]=\"listTag?.value || defaultValue\"></list-tag>\n\n <dr-dynamic-tag *ngIf=\"currentTagDynamic\"\n [lockedTags]=\"lockedDate\"\n [connectedTags]=\"connectedTags\"\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"selectedTag\"\n [isDynamicTagAddEnabled]=\"isDynamicTagAddEnabled\"\n [values]=\"dynamicTagValues\"\n [disabled]=\"disabled\"\n (tagChange)=\"onDynamicTagChange($event)\"\n (tagAdd)=\"dynamicTagAdd.emit($event)\"></dr-dynamic-tag>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {\n });\n onTouched: any = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","<label>\n <input\n type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n (change)=\"valueChanged(value)\"\n [(ngModel)]=\"modelValue\"\n [disabled]=\"disabled\"\n (click)=\"toggleChange($event)\">\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: `\n <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {\n }\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {\n };\n protected onTouched = () => {\n };\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes.pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n ).subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange)).pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin').pipe(\n filter(event => hostElement.contains(event.target as Node)),\n switchMap(() => merge(\n fromEvent<Event>(this.document, 'focusin'),\n fromEvent<Event>(this.document, 'click'),\n )),\n filter(event => !hostElement.contains(event.target as Node)),\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor, AfterViewInit {\n public tooltip: string;\n @Input() checkedStatus: boolean;\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n @Input()\n @HostBinding('class.text-nowrap')\n textNowrap: boolean;\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n @ViewChild('checkboxContent') checkboxContent: ElementRef;\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n const element = this.checkboxContent.nativeElement;\n if (this.textNowrap && element.scrollWidth > element.clientWidth) {\n this.tooltip = element.innerText;\n }\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setValue(event) {\n const input = (event.target as HTMLInputElement);\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","<label>\n <input type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'checked' : 'unchecked'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"disabled\"\n (change)=\"setValue($event)\"\n (click)=\"$event.stopPropagation()\">\n <span #checkboxContent\n [class]=\"icon\"\n [class.indeterminate]=\"indeterminate\"\n [drTooltip]=\"tooltip\">\n <ng-content></ng-content>\n </span>\n</label>\n","import { Component, Input } from '@angular/core';\n\nexport enum LinkTheme {\n DEFAULT = 'DEFAULT',\n DEFAULT_UNDERLINE = 'DEFAULT_UNDERLINE',\n GRAY_UNDERLINE = 'GRAY_UNDERLINE',\n}\n\nexport const DEFAULT_LINK_FONT_SIZE = '14px' as const;\nexport const DEFAULT_LINK_FONT_WEIGHT = 400 as const;\n\n@Component({\n selector: 'dr-link',\n templateUrl: './dr-link.component.html',\n styleUrls: ['./dr-link.component.scss']\n})\nexport class DrLinkComponent {\n @Input({ required: true }) link: string;\n @Input() fontSize: string = DEFAULT_LINK_FONT_SIZE;\n @Input() fontWeight: number = DEFAULT_LINK_FONT_WEIGHT;\n @Input() theme: LinkTheme = LinkTheme.DEFAULT;\n}\n","<a class=\"dr-link\"\n [class]=\"theme\"\n [href]=\"link\"\n [style.font-weight]=\"fontWeight\"\n [style.font-size]=\"fontSize\">\n <ng-content></ng-content>\n</a>\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateTags, IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { Moment } from 'moment';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\nimport { TooltipPosition } from '../../../dr-tooltip/enums/tooltip-position.enum';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit, OnChanges {\n presetTagSelected: string;\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n @Input() paginationDebounce;\n\n @Input() set isUsingDateTagPresets(flag: boolean) {\n this.datePickerService.isUsingDateTagPresets = flag;\n }\n\n @Input() set presetTag(tag: string) {\n this.datePickerService.presetTag$.next(tag as DateTags);\n }\n\n @Input() datepickerTooltip: TemplateRef<any> | null;\n @Input() datepickerTooltipPosition: string = TooltipPosition.TOP;\n @Input() datepickerTooltipTimeout: number = 0;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n this.setValueFromMoment(v);\n this.cdr.markForCheck();\n }\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n @Output() onChangePresetTag = new EventEmitter<DateTags>();\n\n private readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.getNextDate('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.getNextDate('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.getNextDate('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.getNextDate('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.getNextDate('addCalendarDays', 7, forward)\n };\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n\n let displayValue = _.cloneDeep(this.value);\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n displayValue = this.datePickerService.subtractFiscalYearMonthsFromDate(displayValue);\n }\n\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + displayValue.format(formatCached);\n }\n\n public isNextDateDisabled = false;\n public isPrevDateDisabled = false;\n\n private onChangeDebounced$: Subject<number> = new Subject<number>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n\n datePickerService.presetTag$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n let tagObj = PRESET_TAGS_LIST.find((val) => val?.key === value);\n this.presetTagSelected = tagObj?.label;\n this.onChangePresetTag.emit(value);\n });\n\n this.datePickerService.onSameDaySelectedInCalendar$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n\n datePickerService.updatedDateAndClose$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.setValueFromMoment(value);\n } else {\n this.onChangeCallback(this.innerValue.unix());\n }\n this.datePicker.close();\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n\n if (this.paginationDebounce) {\n this.onChangeDebounced$.pipe(takeUntil(this.destroyed$), debounceTime(this.paginationDebounce)).subscribe((value) => {\n this.onChangeCallback(value);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n this.datePickerService.updateTimeframeAndFormat(changes.format.currentValue);\n }\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](forward);\n this.pagingDateChange(nextValue);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(newValue: Moment): void {\n if (this.paginationDebounce) {\n // this is required for not sending extra requests when user quickly clicking on pagination\n // here we do the same as in setValueFromMoment(newValue) with difference\n // that updating of ngModel/formControl is debounced\n this.datePickerService.resetPresetTag();\n const timestamp = newValue.unix();\n this.writeValue(timestamp);\n this.onChangeDebounced$.next(this.innerValue.unix());\n } else {\n this.setValueFromMoment(newValue);\n }\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.datePickerService.resetPresetTag();\n super.setValue(timestamp);\n }\n public writeValue(value: number): void {\n super.writeValue(value);\n if (!value) return;\n this.restrictPagination();\n }\n\n private getNextDate(actionCall: string, amount: number, forward: boolean): Moment {\n return this.dateAdapter[actionCall]?.(this.innerValue, forward ? amount : -amount);\n }\n\n private restrictPagination(): void {\n if (!this._min && !this._max) return;\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](true);\n const prevValue = this.pagingSetup[this.datePickerService.timeframe](false);\n this.isNextDateDisabled = this._max && nextValue && nextValue.unix() > this._max.unix();\n this.isPrevDateDisabled = this._min && prevValue && prevValue.unix() < this._min.unix();\n }\n}\n","<dr-button [disabled]=\"isPrevDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-left\" (click)=\"pagingClicked(false)\"></dr-button>\n<div [drTooltip]=\"datepickerTooltip\"\n [drTooltipPosition]=\"datepickerTooltipPosition\"\n [drTooltipMousleaveTimeout]=\"datepickerTooltipTimeout\"\n class=\"dr-datepicker-input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n\n <div class=\"dr-datepicker-input-container__formatted-value-display\" (click)=\"datepickerInput.click()\">\n <span *ngIf=\"presetTagSelected && datePickerService.isUsingDateTagPresets\"> {{ presetTagSelected }} </span>\n <span>{{ presetTagSelected && datePickerService.isUsingDateTagPresets ? '(' + displayedFormattedValue + ')' : displayedFormattedValue }}</span>\n </div>\n <input\n #datepickerInput\n [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"\n />\n</div>\n<dr-button [disabled]=\"isNextDateDisabled\" *ngIf=\"!disabled\" theme=\"icon\" icon=\"dr-icon-arrow-right\" (click)=\"pagingClicked(true)\"></dr-button>\n<mat-datepicker #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n [panelClass]=\"datePickerService.isUsingDateTagPresets ? 'date-picker-preset-tag' : 'dr-timeframe-datepicker'\"\n >\n</mat-datepicker>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerPeriodPosition } from '../../../models/datePicker';\nimport { IDatePickerRange } from '../../../models/datePickerRange';\n\nconst noop = () => {};\n\n@Component({\n selector: 'dr-date-picker-range',\n templateUrl: './dr-date-picker-range.component.html',\n styleUrls: ['./dr-date-picker-range.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerRangeComponent, multi: true }\n ],\n})\nexport class DrDatePickerRangeComponent implements ControlValueAccessor {\n\n private get defaultValue(): IDatePickerRange {\n return {\n from: null,\n to: null,\n };\n }\n\n public _disabled: boolean;\n\n @Input() format: string;\n\n @Input() periodPositionFrom: DatePickerPeriodPosition = DatePickerPeriodPosition.START_OF_PERIOD;\n @Input() periodPositionTo: DatePickerPeriodPosition = DatePickerPeriodPosition.END_OF_PERIOD;\n\n @Input() labelFrom = 'From';\n @Input() labelTo = 'To';\n\n @Input() placeholderFrom = 'Select...';\n @Input() placeholderTo = 'Select...';\n\n @Input() set disabled(val: boolean) {\n this.setDisabledState(val);\n }\n @Input() disabledFrom: boolean;\n @Input() disabledTo: boolean;\n\n @HostBinding('class.column') @Input() column: boolean;\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n private innerValue: IDatePickerRange = this.defaultValue;\n\n private innerValueFrom: number = null;\n\n public get valueFrom(): number {\n return this.innerValueFrom;\n }\n\n public set valueFrom(v: number) {\n if (v !== this.innerValueFrom) {\n this.innerValueFrom = v;\n this.innerValue.from = this.innerValueFrom;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n private innerValueTo: number = null;\n\n public get valueTo(): number {\n return this.innerValueTo;\n }\n\n public set valueTo(v: number) {\n if (v !== this.innerValueTo) {\n this.innerValueTo = v;\n this.innerValue.to = this.innerValueTo;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n constructor(\n protected cdr: ChangeDetectorRef,\n ) {\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: IDatePickerRange): void {\n if (!value) {\n this.innerValue = this.defaultValue;\n this.innerValueFrom = this.innerValue.from;\n this.innerValueTo = this.innerValue.to;\n this.cdr.markForCheck();\n } else if (value.from !== this.innerValue.from || value.to !== this.innerValue.to) {\n this.innerValueFrom = value.from || null;\n this.innerValueTo = value.to || null;\n this.innerValue = {\n from: this.innerValueFrom,\n to: this.innerValueTo,\n }\n this.cdr.markForCheck();\n }\n }\n\n public setDisabledState(val: boolean) {\n this._disabled = val;\n this.cdr.markForCheck();\n }\n}\n","<div class=\"date-picker-range__from\">\n <span *ngIf=\"labelFrom\" class=\"date-picker-range__from__label\">{{ labelFrom }}</span>\n <dr-date-picker [(ngModel)]=\"valueFrom\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionFrom\"\n [placeholder]=\"placeholderFrom\"\n [max]=\"valueTo\"\n [disabled]=\"_disabled || disabledFrom\">\n </dr-date-picker>\n</div>\n<div class=\"date-picker-range__to\">\n <span *ngIf=\"labelTo\" class=\"date-picker-range__to__label\">{{ labelTo }}</span>\n <dr-date-picker [(ngModel)]=\"valueTo\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionTo\"\n [placeholder]=\"placeholderTo\"\n [min]=\"valueFrom\"\n [disabled]=\"_disabled || disabledTo\">\n </dr-date-picker>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoComponent {\n\n @Input() data: TooltipInfoContext;\n @Input() useDescriptionAsHTML: boolean;\n\n constructor() {\n }\n\n}\n","<div class=\"tooltip-info\">\n <i *ngIf=\"data?.icon else defaultIcon\" class=\"fa\" [class]=\"data.icon\" [style.fontSize.px]=\"14\"\n [style.margin.px]=\"12\" [style.color]=\"data?.iconColor || '#7B61FF'\"></i>\n <div class=\"tooltip-info-content-wrapper\">\n <div *ngIf=\"data?.title\" class=\"tooltip-info_header\">\n <span>{{data.title}}</span>\n </div>\n <div *ngIf=\"data?.description\" class=\"tooltip-info_description\"\n [class.tooltip-info_description-no-border]=\"!data.title\">\n <ng-container *ngIf=\"!data.title\"></ng-container>\n <span *ngIf=\"!useDescriptionAsHTML\">{{data.description}}</span>\n <div *ngIf=\"useDescriptionAsHTML\" [innerHTML]=\"data.description\"></div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultIcon>\n <ng-container *ngIf=\"!data.icon\">\n <div class=\"default-icon\"></div>\n </ng-container>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info-simple',\n templateUrl: './tooltip-info-simple.component.html',\n styleUrls: ['./tooltip-info-simple.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoSimpleComponent {\n\n @Input() context: TooltipInfoContext;\n\n constructor() {\n }\n\n}\n","<div class=\"tooltip-info-simple\">\n <div *ngIf=\"context?.title\" class=\"tooltip-info-simple__title\">{{context?.title}}</div>\n <div *ngIf=\"context?.description\" class=\"tooltip-info-simple__description\">{{context?.description}}</div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-no-body',\n templateUrl: './tooltip-no-body.component.html',\n styleUrls: ['./tooltip-no-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipNoBodyComponent implements OnInit {\n\n @Input() context: any;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"tooltip-bold\" [ngClass]=\"{'tooltip-bold--icon': context?.icon}\">\n <div class=\"tooltip-bold__title\">\n <i *ngIf=\"context?.icon\" [class]=\"context?.icon\" [style.color]=\"context?.iconColor || 'black'\"></i>\n {{ context.title }}\n </div>\n <div class=\"tooltip-bold-text\">\n {{ context.text }}\n </div>\n</div>","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-process-default',\n template: `\n <div class=\"container\" [innerHTML]=\"text\"></div>\n `,\n styles: [`\n .container {\n width: auto;\n max-width: 388px;\n text-align: start;\n font-size: 14px;\n line-height: 22px;\n padding: 10px 12px;\n color: #151B3F;\n background-color: #FFF;\n border-radius: 8px;\n box-shadow: 0px 4px 8px 1px rgba(0, 0, 0, 0.25);\n border: 1px solid #C3C4CE;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipProcessDefaultComponent {\n\n @Input() text: string;\n\n constructor() {\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class StepperComponent<T extends Step> {\n\n @Input() steps: T[];\n @Input() currentStep: T;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Input() mini = false;\n @Output() stepChange: EventEmitter<T> = new EventEmitter<T>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<HTMLElement>;\n\n selectStep(step: T): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: T): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed) return `${ (step?.completedTasks / step?.requiredTasks * 100) || 0 }%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","<div class=\"scroll-section\" *ngIf=\"stepper?.scrollLeft !== 0\" (click)=\"scrollLeft()\">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n<div #stepper\n class=\"stepper\"\n [class.stepper--disabled]=\"disabled\"\n [class.stepper--mini]=\"mini\">\n <ng-container *ngFor=\"let step of steps; let index = index; last as isLast; first as isFirst\">\n <div *ngIf=\"!step.hide\" class=\"step\" (click)=\"selectStep(step)\"\n [class.step-setup]=\"inlineLabels\">\n <div class=\"step-wrapper\" [drTooltip]=\"step.description && tooltip\"\n [drTooltipContext]=\"{ step: step }\"\n [drTooltipPosition]=\"'bottom'\">\n <div data-test=\"step_point\" class=\"step-point\" [class.active]=\"currentStep === step\" [class.completed]=\"step.completed\">\n <div *ngIf=\"step === currentStep;\" class=\"ellipse\"></div>\n <ng-container [ngSwitch]=\"step.completed\">\n <ng-template [ngSwitchCase]=\"true\">\n <div class=\"pointer blue\">\n <i class=\"dr-icon-approve\"></i>\n </div>\n </ng-template>\n <ng-template [ngSwitchCase]=\"false\">\n <div class=\"pointer\" [class.gray]=\"step !== currentStep\"\n [ngClass]=\"{'blue with-ellipse': step === currentStep}\">\n <div [hidden]=\"step === currentStep || hiddenIndex\" class=\"text\">{{index + 1}}</div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div data-test=\"step_label_name\" class=\"step-label\" [class.active]=\"currentStep === step\"\n [ngClass]=\"step.completed ? 'completed' : 'uncompleted'\">\n <span [hidden]=\"hiddenNames\">{{step.name}}</span>\n </div>\n <ng-container *ngIf=\"inlineLabels\" [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n <span *ngIf=\"step.showProgress\"\n data-test=\"step_progress\"\n class=\"step-progress\">\n {{(step.requiredTasks ? step.completedTasks : step.requiredTasks) + '/' + step.requiredTasks}}\n </span>\n </div>\n <ng-container *ngIf=\"!inlineLabels\" [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n </div>\n <div *ngIf=\"mini\" class=\"stepper--mini-connector\"></div>\n </ng-container>\n</div>\n<div (click)=\"scrollRight()\" class=\"scroll-section\"\n *ngIf=\"stepper?.scrollWidth > stepper?.clientWidth && roundWidth(stepper?.scrollLeft + stepper?.clientWidth) < stepper?.scrollWidth\">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n\n<ng-template #tooltip let-step=\"step\">\n <div class=\"step-tooltip\">\n <div class=\"step-tooltip_name\">{{step.name}}</div>\n <div class=\"step-tooltip_description\">{{step.description}}</div>\n </div>\n</ng-template>\n\n<ng-template #connector let-step=\"step\" let-isLast=\"isLast\" let-index=\"index\">\n <div class=\"step-connector\" [class.only-one-step]=\"steps.length === 1\"\n [class]=\"'step-connector--' + (!inlineLabels ? 'absolute' : 'inline')\"\n *ngIf=\"steps.length === 1 || !isLast\"\n [style.visibility]=\"withoutConnectors || steps[step.index + 1]?.hide ? 'hidden' : 'unset'\"\n [class.connector-grand]=\"!inlineLabels && (index === 0 || index === steps.length - 2)\">\n <div class=\"progress\" [style.width]=\"getWidth(step)\"></div>\n </div>\n</ng-template>\n","import { IFeedback } from \"./feedback\";\n\nexport const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport enum ChatRole {\n USER = 'user',\n ASSISTANT = 'assistant',\n}\n\nexport interface IChatMessageRef {\n id: string\n seq: number\n}\n\ninterface IChatNewMessage {\n kind: CHAT_MESSAGE_TYPE\n role: ChatRole\n body: string\n}\n\nexport interface IChatMessageBase extends IChatMessageRef {\n kind: string | CHAT_MESSAGE_TYPE;\n reply: boolean;\n role: ChatRole;\n avatarUrl?: string;\n user?: any;\n subjectId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatImageMessage & IChatDownloadFileMessage;\n\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatImageMessage,\n IChatDownloadFileMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n role: ChatRole;\n reply: boolean;\n text?: string;\n body?: any;\n url?: string;\n label?: string;\n parameters?: any;\n data?: any;\n avatarUrl?: string;\n user?: any;\n feedback?: IFeedback;\n subjectId?: string;\n\n constructor(obj: any) {\n this.id = obj?.id;\n this.subjectId = obj?.subjectId;\n this.feedback = obj?.feedback;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.role = obj?.role;\n this.reply = obj?.role !== ChatRole.USER;\n this.text = obj?.text || obj.body;\n this.url = obj?.url;\n this.label = obj?.label;\n this.body = obj?.body;\n this.parameters = obj?.parameters;\n //TODO fix me: remove staticFunc\n this.avatarUrl = obj?.avatarUrl ?\n obj.avatarUrl :\n !obj?.role || obj?.role === ChatRole.ASSISTANT ? (document as any).staticFunc('/genius-logo.webp') : '';\n\n this.user = obj?.user;\n }\n}\n","import { ChangeDetectionStrategy, Component, } from '@angular/core';\n\n@Component({\n selector: 'dr-dot-flashing',\n templateUrl: 'dr-dot-flashing.component.html',\n styleUrls: ['./dr-dot-flashing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDotFlashingComponent {\n\n constructor() {\n }\n}\n","<div class=\"dot-flashing\"></div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n\n _textareaInitialHeight = true;\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n @Output() abort = new EventEmitter<any>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${ res.src })`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage() {\n if (this.waitForReply) {\n return;\n }\n\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this._textareaInitialHeight = true;\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n\n abortMessage() {\n this.abort.emit();\n }\n\n onModelChange(value: string): void {\n this._textareaInitialHeight = false;\n this.inputChange.emit(value);\n }\n\n getTextAreaHeight(textAreaElement: HTMLTextAreaElement) {\n let height;\n if (this._textareaInitialHeight) {\n height = 45;\n } else {\n height = textAreaElement.scrollHeight;\n }\n return `height: ${ height }px;`;\n }\n}\n","<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keyup.enter)=\"sendMessage()\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <dr-dot-flashing *ngIf=\"waitForReply\" class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","export class DrAvatarService {\n public static avatarColors = [\n '#0061FF',\n '#20A452',\n '#19194C',\n '#FF4E00',\n '#B14EF2',\n '#578AFF',\n '#F13FA4',\n '#8693A2',\n '#00867E',\n ];\n\n public static getAvatarColorNumber(index: number): number {\n return index % this.avatarColors.length;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'drAvatar'\n})\nexport class DrAvatarPipe implements PipeTransform {\n\n transform(item: any, type: string = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DrAvatarService } from './services/dr-avatar.service';\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrAvatarComponent {\n\n @Input() set users(users: any[] | any) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = DrAvatarService.getAvatarColorNumber(index);\n }\n });\n }\n }\n\n @Input() warning = false;\n @Input() showUnassigned = false;\n @Input() drAvatarTooltipPosition = 'bottom';\n @Input() drAvatarTooltipClass: string;\n @Input() drAvatarSize: string;\n @Input() drAvatarIsClickable = true;\n\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\n\n constructor() {\n }\n\n getFirstUsers(): any[] {\n return this.parsedUsers.slice(0, 2);\n }\n\n getLastUsers(): any[] {\n if (this.parsedUsers.length > 2) {\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\n }\n return [];\n }\n\n public getAvatarColor(user: { [field: string]: any, colorNumber?: number }): string {\n return DrAvatarService.avatarColors[user.colorNumber] || DrAvatarService.avatarColors[0];\n }\n}\n","<div class=\"users-section\">\n <div *ngIf=\"!parsedUsers.length\"\n class=\"users-section__default\">\n </div>\n\n <div *ngFor=\"let user of getFirstUsers()\"\n class=\"users-section__user\"\n [class]=\"user.status\"\n [style.width]=\"drAvatarSize || null\"\n [style.height]=\"drAvatarSize || null\"\n [style.background-color]=\"getAvatarColor(user)\"\n [ngClass]=\"{\n 'users-section__default': showUnassigned && !user.email,\n 'users-section__user--clickable': drAvatarIsClickable\n }\"\n [drTooltip]=\"user | drAvatar\"\n [drTooltipClass]=\"drAvatarTooltipClass\"\n [drTooltipPosition]=\"drAvatarTooltipPosition\"\n (click)=\"drAvatarIsClickable && userClicked.emit()\">\n {{user | drAvatar: 'initials'}}\n </div>\n\n <div *ngIf=\"parsedUsers.length > 2\"\n class=\"users-section__user icon-2\"\n [drTooltip]=\"usersTemplate\"\n [drTooltipPosition]=\"'bottom'\">\n {{getLastUsers().length}}\n </div>\n</div>\n\n<ng-template #usersTemplate>\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\n <div class=\"users-section__user\"\n (click)=\"userClicked.emit()\"\n [class]=\"user.class\">\n {{user | drAvatar: 'initials'}}\n </div>\n <span class=\"username\">\n {{user | drAvatar}}\n </span>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","<div class=\"text\" *ngIf=\"message\">{{ message.text }}</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${ file.url })`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(protected cd: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","<div class=\"message-content-group\">\n <a *ngFor=\"let file of readyFiles\" [href]=\"file.url\" target=\"_blank\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle && file.icon\"></i>\n <div *ngIf=\"file.urlStyle\" [style.background-image]=\"file.urlStyle\"></div>\n </a>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * User info for avatar\n */\n @Input() user: any;\n\n @ContentChild('drChatMessageActions') drChatMessageActions: TemplateRef<any>;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {\n }\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${ type }'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${ type }'.`,\n );\n }\n\n return customMessageDirective;\n }\n\n applyMessageGroupClass (message: IChatMessage) {\n return message.role === 'assistant' && message.kind ==='text' ? 'messageGroup' : ''\n }\n}\n","<ng-container *ngIf=\"message.avatarUrl; else userAvatar\">\n <div class=\"avatar\" [style.background-image]=\"'url(' + message.avatarUrl + ')'\"></div>\n</ng-container>\n<ng-template #userAvatar>\n <dr-avatar *ngIf=\"message.user\" [users]=\"message.user\"></dr-avatar>\n</ng-template>\n<div class=\"message\" [class.message--custom]=\"customMessage\" [ngClass]=applyMessageGroupClass(message)>\n <ng-container [ngSwitch]=\"message.kind\">\n <dr-chat-message-text *ngSwitchCase=\"MESSAGE_TYPE.TEXT\" [message]=\"message\"></dr-chat-message-text>\n <dr-chat-message-file *ngSwitchCase=\"MESSAGE_TYPE.DOWNLOAD_FILE\" [message]=\"message\"></dr-chat-message-file>\n <ng-container *ngSwitchDefault>\n <ng-container [ngTemplateOutlet]=\"getTemplate()\" [ngTemplateOutletContext]=\"getTemplateContext()\"></ng-container>\n </ng-container>\n </ng-container>\n <div class=\"message__actions\" *ngIf=\"drChatMessageActions;\">\n <ng-container [ngTemplateOutlet]=\"drChatMessageActions\"></ng-container>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DoCheck, ElementRef, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output, ViewChild,\n} from '@angular/core';\nimport * as _ from 'lodash';\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-chat-suggestions',\n templateUrl: 'chat-suggestions.component.html',\n styleUrls: ['./chat-suggestions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatSuggestionsComponent implements OnInit, OnDestroy, AfterViewInit {\n\n _nonHiddenValues: string[] = [];\n visibleValues: string[] = [];\n isSuggestedMenuOpen = false;\n colsCount = 1;\n private destroy$ = new Subject<void>();\n\n @Input() values: string [] = [];\n @Input() fullScreen: boolean = false;\n @Input() buttonMode: boolean = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChild('suggestionsContainer', {static: false}) suggestionContainer: ElementRef;\n\n get hiddenValues(): string[] {\n return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];\n }\n set hiddenValues(values) {\n localStorage.setItem('aiChatSuggestions', JSON.stringify(values));\n }\n\n onResize$: Observable<ResizeObserverEntry[]>;\n\n colWidth = 300;\n colGap = 28;\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.filterValues();\n }\n\n ngAfterViewInit() {\n this.onResize$ = DrSharedUtils.fromResizeObserver(this.suggestionContainer?.nativeElement);\n this.onResize$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.recalculateColsCount();\n });\n this.recalculateColsCount();\n }\n\n onItemClick(item: string) {\n if (this.waitForReply) {\n return;\n }\n this.isSuggestedMenuOpen = false;\n this.suggestionSelect.emit(item);\n this.hiddenValues = [...this.hiddenValues, item];\n this.filterValues();\n }\n\n filterValues() {\n const hiddenValues = this.hiddenValues;\n this._nonHiddenValues = _.filter(this.values, val => !hiddenValues.includes(val));\n this.fillVisibleValues();\n }\n\n fillVisibleValues() {\n const maxItemsCount = this.fullScreen ? 6 : 3;\n const nonHiddenValues = _.clone(this._nonHiddenValues);\n this.visibleValues.length = 0;\n for (let i = 0; i < maxItemsCount; i++) {\n if (!nonHiddenValues.length) {\n break;\n }\n const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);\n const item = nonHiddenValues.splice(randomIndex, 1)[0];\n this.visibleValues.push(item);\n }\n this.cdr.markForCheck();\n }\n\n clearHidden() {\n localStorage.setItem('aiChatSuggestions', null);\n this.filterValues();\n }\n\n recalculateColsCount() {\n if (this.suggestionContainer?.nativeElement?.offsetWidth >= (this.colWidth * 3 + this.colGap * 2)) {\n this.colsCount = 3;\n } else if (this.suggestionContainer?.nativeElement?.offsetWidth > (this.colWidth * 2 + this.colGap)) {\n this.colsCount = 2;\n } else {\n this.colsCount = 1;\n }\n this.cdr.markForCheck();\n }\n\n toggleSuggestedMenu(): void {\n this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;\n if (this.isSuggestedMenuOpen) {\n this.fillVisibleValues();\n }\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"chat-suggestions\" #suggestionsContainer\n [ngClass]=\"{'chat-suggestions--three-cols': colsCount === 3,\n 'chat-suggestions--two-cols': colsCount === 2,\n 'chat-suggestions--one-col': colsCount === 1,\n 'chat-suggestions--button-mode': buttonMode }\">\n <ng-container *ngIf=\"buttonMode; else suggestionCards\">\n <div class=\"chat-suggestions__container\"\n [class.chat-suggestions__container--opened]=\"isSuggestedMenuOpen\"\n *ngIf=\"visibleValues.length\">\n <dr-button theme=\"secondary\" class=\"chat-suggestions__container__button\" (click)=\"toggleSuggestedMenu()\">\n Suggested chats\n </dr-button>\n <ng-container *ngTemplateOutlet=\"suggestionCards\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #suggestionCards>\n <div class=\"chat-suggestions__items\"\n [ngClass]=\"{'chat-suggestions__items--three-cols': colsCount === 3,\n 'chat-suggestions__items--two-cols': colsCount === 2,\n 'chat-suggestions__items--one-col': colsCount === 1 }\">\n <div *ngFor=\"let item of visibleValues\"\n class=\"chat-suggestions__items__item\" (click)=\"onItemClick(item)\">\n {{ item }}\n </div>\n </div>\n</ng-template>\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService],\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @Input() fullScreen: boolean;\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n }\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @Input() suggestions: string[] = [];\n @Input() reopen: boolean;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @ContentChild('drChatHeader') chatHeader: TemplateRef<unknown>;\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild(DrChatSuggestionsComponent) _chatSuggestions: DrChatSuggestionsComponent;\n\n public get messagesContainerWithScroll(): boolean {\n return (\n this.messagesContainer && this.messagesContainer.nativeElement.scrollHeight > this.messagesContainer.nativeElement.offsetHeight\n );\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n this.messages.changes.subscribe(messages => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n if (this.messagesContainer) {\n const scrollToOptions: any = {\n top: this.messagesContainer.nativeElement.scrollHeight,\n };\n\n if (!this.reopen) {\n scrollToOptions.behavior = 'smooth';\n }\n\n this.messagesContainer.nativeElement.scrollTo(scrollToOptions);\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n clearHiddenSuggestions() {\n if (this._chatSuggestions) {\n this._chatSuggestions.clearHidden();\n }\n }\n\n hideSuggestions(): void {\n if (this._chatSuggestions.isSuggestedMenuOpen) {\n this._chatSuggestions.toggleSuggestedMenu();\n }\n }\n}\n","<div class=\"chat\" [class.chat--in-full-screen]=\"fullScreen\">\n <div class=\"chat__sticky-top\">\n <ng-container *ngIf=\"chatHeader\" [ngTemplateOutlet]=\"chatHeader\"></ng-container>\n\n <div class=\"chat__alert\">\n <ng-content select=\"dr-chat-alert\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"!messages?.length\" class=\"chat__empty-state\">\n <span class=\"chat__empty-state__text\">{{ noMessagesPlaceholder }}</span>\n </div>\n\n <div *ngIf=\"messages?.length\" class=\"chat__messages\">\n <div #messagesContainer class=\"chat__messages__container\"\n [class.chat__messages__container--scroll]=\"messagesContainerWithScroll\">\n <ng-content select=\"dr-chat-message\"></ng-content>\n </div>\n </div>\n\n <dr-chat-suggestions *ngIf=\"suggestions?.length\"\n [values]=\"suggestions\"\n [fullScreen]=\"fullScreen\"\n [waitForReply]=\"waitForReply\"\n class=\"chat__suggestions\"\n [class.chat__suggestions--full-height]=\"fullScreen && !messages?.length\"\n [buttonMode]=\"!!messages?.length\"\n (suggestionSelect)=\"suggestionSelect.emit($event)\">\n </dr-chat-suggestions>\n\n <div class=\"form\">\n <ng-content select=\"dr-chat-form\"></ng-content>\n </div>\n</div>\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'dr-chat-alert',\n templateUrl: './dr-chat-alert.component.html',\n styleUrls: ['./dr-chat-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatAlertComponent {\n @Input() iconClass = 'dr-icon-info';\n @Output() close: EventEmitter<void> = new EventEmitter<void>();\n}\n","<i [class]=\"iconClass\"></i>\n<ng-content></ng-content>\n<dr-button (click)=\"close.emit()\"\n theme=\"icon\"\n icon=\"dr-icon-exit\"\n class=\"chat-alert-close-btn\"\n drTooltip=\"Close\">\n</dr-button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","<span class=\"toggle-title mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{toggleTitle}}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'toggle-on' : 'toggle-off'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\">\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"toggle-title ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{toggleTitle}}</span>\n","export enum BadgeStatus {\n INFO = 'info',\n ERROR = 'error',\n WARNING = 'warning',\n SUCCESS = 'success',\n REGULAR = 'regular',\n PROGRESS = 'progress',\n DOTTED = 'dotted',\n}\n","import {\n Component,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { BadgeStatus } from '../models/badgeStatus';\n\n@Component({\n templateUrl: 'dr-badge-status.component.html',\n selector: 'dr-badge-status',\n styleUrls: ['dr-badge-status.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrBadgeStatusComponent {\n\n @Input() theme: BadgeStatus = BadgeStatus.REGULAR;\n @Input() icon: string;\n @Input() label: string;\n @Input() tooltip: string;\n}\n","<div class=\"badge-status\" [drTooltip]=\"tooltip\"\n [ngClass]=\"'badge-status--' + theme\">\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i>\n <span *ngIf=\"label\">{{ label }}</span>\n</div>\n","export enum DrAlertTheme {\n SUCCESS = 'success',\n ERROR = 'error',\n BOLD_ERROR = 'bold-error',\n WARNING = 'warning',\n INFO = 'info',\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { DrAlertTheme } from './enums/dr-alert-theme.enum';\n\nconst ALERT_THEME_ICONS = {\n [DrAlertTheme.SUCCESS]: 'dr-icon-uploaded-success',\n [DrAlertTheme.BOLD_ERROR]: 'dr-icon-error',\n [DrAlertTheme.ERROR]: 'dr-icon-error',\n [DrAlertTheme.WARNING]: 'dr-icon-warning',\n [DrAlertTheme.INFO]: 'dr-icon-info',\n};\n\n@Component({\n selector: 'dr-alert',\n templateUrl: './dr-alert.component.html',\n styleUrls: ['./dr-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAlertComponent {\n @Input() theme: DrAlertTheme = DrAlertTheme.INFO;\n @Input() customIconClass: string;\n @Input() text: string;\n\n @HostBinding('class')\n get elementClass(): string {\n return `dr-alert dr-alert--${ this.theme }`;\n }\n\n public get themeIconClass(): string {\n return this.customIconClass || ALERT_THEME_ICONS[this.theme];\n }\n}\n","<div class=\"dr-alert__content-wrapper\">\n <ng-container *ngIf=\"!contentRef.innerHTML.trim()\">\n <i [class]=\"'dr-alert__icon ' + themeIconClass\"></i>\n <span class=\"dr-alert__text\">{{ text }}</span>\n </ng-container>\n <div class=\"dr-alert__custom-content\" #contentRef>\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-code-editor-hint-wrapper',\n template: ` <span [innerHTML]=\"content\" [drTooltip]=\"tooltip\"></span> `,\n})\nexport class CodeEditorHintWrapperComponent {\n content: string;\n tooltip: string;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n NgZone,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Editor, EditorChange, EditorFromTextArea, ScrollInfo } from 'codemirror';\nimport * as CodeMirror from 'codemirror'\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\n\n@Component({\n selector: 'dr-codemirror',\n template: `\n <textarea\n [name]=\"name\"\n class=\"dr-codemirror {{ className }}\"\n [class.dr-codemirror--focused]=\"isFocused\"\n autocomplete=\"off\"\n [autofocus]=\"autoFocus\"\n #ref\n >\n </textarea>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrCodemirrorComponent),\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrCodemirrorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor, DoCheck\n{\n @Input() className = '';\n @Input() name = 'codemirror';\n @Input() autoFocus = false;\n\n @Input()\n set options(value: { [key: string]: any }) {\n this._options = value;\n if (!this._differ && value) {\n this._differ = this._differs.find(value).create();\n }\n }\n @Input() preserveScrollPosition = false;\n @Output() cursorActivity = new EventEmitter<Editor>();\n @Output() focusChange = new EventEmitter<boolean>();\n @Output() scroll = new EventEmitter<ScrollInfo>();\n @Output() drop = new EventEmitter<[Editor, DragEvent]>();\n @Output() codeMirrorLoaded = new EventEmitter<DrCodemirrorComponent>();\n @ViewChild('ref') ref!: ElementRef<HTMLTextAreaElement>;\n value = '';\n disabled = false;\n isFocused = false;\n codeMirror?: EditorFromTextArea;\n\n private _codeMirror: any;\n private _differ?: KeyValueDiffer<string, any>;\n private _options: any;\n\n constructor(private _differs: KeyValueDiffers, private _ngZone: NgZone) {}\n\n get codeMirrorGlobal(): any {\n if (this._codeMirror) {\n return this._codeMirror;\n }\n\n this._codeMirror = CodeMirror;\n return this._codeMirror;\n }\n\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(async () => {\n const codeMirrorObj = await this.codeMirrorGlobal;\n const codeMirror = codeMirrorObj?.default ? codeMirrorObj.default : codeMirrorObj;\n this.codeMirror = codeMirror.fromTextArea(\n this.ref.nativeElement,\n this._options,\n ) as EditorFromTextArea;\n this.codeMirror.on('cursorActivity', cm => this._ngZone.run(() => this.cursorActive(cm)));\n this.codeMirror.on('scroll', this.scrollChanged.bind(this));\n this.codeMirror.on('blur', () => this._ngZone.run(() => this.focusChanged(false)));\n this.codeMirror.on('focus', () => this._ngZone.run(() => this.focusChanged(true)));\n this.codeMirror.on('change', (cm, change) =>\n this._ngZone.run(() => this.codemirrorValueChanged(cm, change)),\n );\n this.codeMirror.on('drop', (cm, e) => {\n this._ngZone.run(() => this.dropFiles(cm, e));\n });\n this.codeMirror.setValue(this.value);\n this.codeMirrorLoaded.emit(this);\n });\n }\n\n ngDoCheck() {\n if (!this._differ) {\n return;\n }\n // check options have not changed\n const changes = this._differ.diff(this._options);\n if (changes) {\n changes.forEachChangedItem(option =>\n this.setOptionIfChanged(option.key, option.currentValue),\n );\n changes.forEachAddedItem(option => this.setOptionIfChanged(option.key, option.currentValue));\n changes.forEachRemovedItem(option =>\n this.setOptionIfChanged(option.key, option.currentValue),\n );\n }\n }\n\n ngOnDestroy() {\n // is there a lighter-weight way to remove the cm instance?\n if (this.codeMirror) {\n this.codeMirror.toTextArea();\n }\n }\n\n codemirrorValueChanged(cm: Editor, change: EditorChange) {\n const cmVal = cm.getValue();\n if (this.value !== cmVal) {\n this.value = cmVal;\n this.onChange(this.value);\n }\n }\n\n setOptionIfChanged(optionName: string, newValue: any) {\n if (!this.codeMirror) {\n return;\n }\n\n // cast to any to handle strictly typed option names\n // could possibly import settings strings available in the future\n this.codeMirror.setOption(optionName as any, newValue);\n }\n\n focusChanged(focused: boolean) {\n this.onTouched();\n this.isFocused = focused;\n this.focusChange.emit(focused);\n }\n\n scrollChanged(cm: Editor) {\n this.scroll.emit(cm.getScrollInfo());\n }\n\n cursorActive(cm: Editor) {\n this.cursorActivity.emit(cm);\n }\n\n dropFiles(cm: Editor, e: DragEvent) {\n this.drop.emit([cm, e]);\n }\n\n writeValue(value: string) {\n if (value === null || value === undefined) {\n return;\n }\n if (!this.codeMirror) {\n this.value = value;\n return;\n }\n const cur = this.codeMirror.getValue();\n if (value !== cur && DrSharedUtils.normalizeLineEndings(cur) !== DrSharedUtils.normalizeLineEndings(value)) {\n this.value = value;\n if (this.preserveScrollPosition) {\n const prevScrollPosition = this.codeMirror.getScrollInfo();\n this.codeMirror.setValue(this.value);\n this.codeMirror.scrollTo(prevScrollPosition.left, prevScrollPosition.top);\n } else {\n this.codeMirror.setValue(this.value);\n }\n }\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.setOptionIfChanged('readOnly', this.disabled);\n }\n\n private onChange = (_: any) => {};\n\n private onTouched = () => {};\n}\n","import { Component, HostBinding, Input, Optional } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgModel } from '@angular/forms';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n})\nexport class DrErrorComponent {\n constructor(@Optional() private formGroupDirective: FormGroupDirective) {}\n\n public _control: AbstractControl | NgModel;\n @Input() set control(value: AbstractControl | NgModel) {\n if (value) {\n this._control = value;\n }\n }\n\n @Input() set controlName(value: string) {\n if (!value || typeof value !== 'string') return;\n\n if (!this.formGroupDirective) {\n throw new Error('You must provide a formGroupDirective to use this input');\n }\n\n this.control = this.formGroupDirective.control.get(value) as AbstractControl;\n }\n\n @Input() label = 'Field error';\n @Input() errorTooltipPosition = 'top';\n @Input() displayAsLabel = false;\n\n @Input() @HostBinding('class.no-icon') noIcon = false;\n\n get errorString() {\n if (this._control.hasError('required')) {\n return 'Field is required!';\n }\n\n return this._control.errors?.errorString || null;\n }\n\n get isWarning() {\n return this._control.errors?.isWarning;\n }\n}\n","<div *ngIf=\"_control.status === 'INVALID' && !_control.pristine\"\n [drTooltip]=\"displayAsLabel ? null : errorString\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.error-container--cursor-pointer]=\"!displayAsLabel\"\n [class.warning]=\"isWarning\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{ displayAsLabel ? errorString : label }}</span>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n forwardRef,\n Injector,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as CodeMirror from 'codemirror';\nimport { Hint, Hints } from 'codemirror';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { ICodeEditorHint, ICodeEditorMarker } from './models/code-editor-hint';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\nconst noop = () => {};\n\n@Component({\n selector: 'dr-code-editor',\n templateUrl: './dr-code-editor.component.html',\n styleUrls: ['./dr-code-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrCodeEditorComponent), multi: true }],\n})\nexport class DrCodeEditorComponent implements ControlValueAccessor {\n constructor(\n private cdr: ChangeDetectorRef,\n private cfr: ComponentFactoryResolver,\n private injector: Injector,\n ) {}\n\n public innerValue: any = '';\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n private existMarkers: any[];\n private highlightedHints: any[];\n private parenthesesMarkers = [];\n private parenthesisColors: string[] = [\n '#2F3E48',\n '#1f68cc',\n '#9480CD',\n '#4D9944',\n '#B03E84',\n '#B64900',\n '#267392',\n '#326AC7',\n ];\n private parenthesesMap = {\n '}': '{',\n ']': '[',\n ')': '(',\n '{': '}',\n '[': ']',\n '(': ')',\n };\n private doc: any;\n private _hints: ICodeEditorHint[] = [];\n\n private hintRefsStack = [];\n\n public codeMirrorOptions: any = {\n lineWrapping: true,\n matchBrackets: true,\n autoRefresh: true,\n lineNumbers: false,\n mode: 'javascript',\n extraKeys: { 'Ctrl-Space': 'autocomplete' },\n autoCloseBrackets: true,\n hintOptions: {\n container: window.document.body,\n completeSingle: false,\n },\n };\n public isFocused: boolean;\n @Input() private markers: ICodeEditorMarker[];\n @Input() public highlightHints = false;\n\n @Input() set hints(values: ICodeEditorHint[]) {\n if (values?.length) {\n this._hints = values;\n this.registerHints(values);\n }\n }\n\n @Input() control: FormControl | any;\n @ViewChild('codeEditor') private codeEditor: DrCodemirrorComponent;\n\n public get value(): string {\n return this.innerValue;\n }\n\n public set value(v: string) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n this.highlightCustomFunctionsInEditor();\n this.colorizeParentheses();\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n }\n }\n\n public writeValue(value: string): void {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n focusChanged(bool): void {\n this.isFocused = bool;\n }\n public afterCodeMirrorLoaded(): void {\n this.doc = this.codeEditor.codeMirror.getDoc();\n\n this.codeEditor.codeMirror.on('keyup', (cm, event) => {\n if (!this._hints.length) return;\n\n if (\n (!event.ctrlKey && event.keyCode >= 65 && event.keyCode <= 90) ||\n (event.keyCode >= 97 && event.keyCode <= 122) ||\n (event.keyCode >= 46 && event.keyCode <= 57) ||\n event.keyCode === 32\n ) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n });\n this.codeEditor.codeMirror.on('focus', (cm, event) => {\n if (!this._hints.length) return;\n\n setTimeout(() => {\n if (this.isFocused) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n }, 200);\n });\n\n setTimeout(() => {\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n });\n }\n\n private isClosedParenthesis(parenthesis: string): boolean {\n return ['}', ')', ']'].some((value: string) => value === parenthesis)\n }\n\n private colorizeParentheses(): void {\n const string = this.doc.getValue();\n const stack = [];\n const result = [];\n let line = 0;\n let ch = 0;\n this.parenthesesMarkers.forEach((marker) => marker.clear());\n this.parenthesesMarkers = [];\n\n for (let index = 0; index < string.length; index++) {\n const char = string.charAt(index);\n if (char === '\\n') {\n line++;\n ch = 0;\n continue;\n }\n if (this.parenthesesMap[char]) {\n const peek = stack ? stack[stack.length - 1] : null;\n\n if (!this.isClosedParenthesis(char)) {\n let colorIndex = (peek?.colorIndex + 1) || 0;\n colorIndex = colorIndex > this.parenthesisColors.length - 1 ? 0 : colorIndex;\n\n stack.push({ value: char, color: this.parenthesisColors[colorIndex], colorIndex });\n result[index] = { value: char, color: this.parenthesisColors[colorIndex], colorIndex };\n }\n if (stack?.length && peek?.value === this.parenthesesMap[char]) {\n result[index] = { value: char, color: peek.color, colorIndex: peek.colorIndex };\n stack.pop();\n }\n }\n\n if (result[index]) {\n this.parenthesesMarkers.push(\n this.doc.markText(\n {\n line,\n ch,\n },\n {\n line,\n ch: ch + 1,\n },\n {\n css: `color: ${result[index].color}`,\n },\n ),\n );\n }\n ch++;\n }\n }\n\n private highlightCustomFunctionsInEditor(): void {\n const markers = this.markers || [];\n const existMarkers = this.existMarkers || [];\n\n existMarkers.forEach((m) => m.clear());\n this.doc.eachLine((line) => {\n markers.forEach((marker) => {\n const searchStr = marker.name + '\\\\(';\n const matches = line.text.matchAll(new RegExp(searchStr, 'g'));\n for (const match of matches) {\n existMarkers.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index,\n },\n {\n line: line.lineNo(),\n ch: match.index + marker.name.length,\n },\n {\n className: 'marker',\n title: marker.title,\n },\n ),\n );\n }\n });\n });\n }\n\n public pasteText(text: string, goCharLeft?: boolean): void {\n this.doc.replaceSelection(text);\n this.doc.cm.focus();\n if (goCharLeft) {\n this.doc.cm.execCommand('goCharLeft');\n }\n }\n\n private registerHints(dictionary: ICodeEditorHint[] = []) {\n const hintRegexp = /[\\w$]|[ &'\"#%$@]/;\n CodeMirror.registerHelper('hint', 'dictionaryHint', (editor) => {\n const cursor = editor.getCursor();\n const currentLine = editor.getLine(cursor.line);\n\n let start = cursor.ch;\n let end = cursor.ch;\n while (end < currentLine.length && hintRegexp.test(currentLine.charAt(end))) ++end;\n while (start && hintRegexp.test(currentLine.charAt(start - 1))) --start;\n\n const currentWord = (start !== end && currentLine.slice(start, end)) || '';\n\n const filteredDictionary = (\n !currentWord\n ? dictionary\n : dictionary.filter((item) => item.value.toLowerCase().includes(currentWord.toLowerCase()))\n ).sort() || [];\n\n const hintsList: Hint[] = filteredDictionary.map((item: ICodeEditorHint) => {\n const displayText = item.value;\n let text = item.value;\n\n if (currentLine[start - 1] !== '[') {\n text = '[' + text;\n }\n if (currentLine[end] !== ']') {\n text += ']';\n }\n\n return {\n text,\n displayText,\n render: (element: HTMLLIElement, data: Hints, current: Hint) => {\n const startIndex = current.displayText.toLowerCase().indexOf(currentWord.toLowerCase());\n const stringToReplace = current.displayText.slice(startIndex, startIndex + currentWord.length);\n const hintHTML =\n `${item.icon} ` + current.displayText.replace(stringToReplace, `<b>${stringToReplace}</b>`);\n\n const componentFactory = this.cfr.resolveComponentFactory(CodeEditorHintWrapperComponent);\n const componentRef = componentFactory.create(this.injector);\n componentRef.instance.content = hintHTML;\n componentRef.instance.tooltip = item.hint;\n componentRef.changeDetectorRef.detectChanges();\n element.appendChild(componentRef.location.nativeElement);\n\n this.hintRefsStack.push(componentRef);\n },\n };\n });\n\n return {\n list: hintsList,\n from: CodeMirror.Pos(cursor.line, start),\n to: CodeMirror.Pos(cursor.line, end),\n };\n });\n\n // @ts-ignore\n CodeMirror.commands.autocomplete = (cm) => {\n this.destroyHints();\n\n // @ts-ignore\n CodeMirror.showHint(cm, CodeMirror.hint.dictionaryHint);\n };\n }\n\n private destroyHints() {\n this.hintRefsStack.forEach((ref) => ref.destroy());\n this.hintRefsStack = [];\n }\n\n private updateHighlightHints() {\n const hints = this._hints || [];\n const highlightedHints = this.highlightedHints || [];\n\n highlightedHints.forEach((m) => m.clear());\n\n this.doc.eachLine((line) => {\n const matches = line.text.matchAll(/(?:\\[).+?(?=\\])/gm);\n for (const match of matches) {\n const hint = hints.find((h) => h.value === match[0].replace('[', ''));\n if (hint) {\n highlightedHints.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index + 1,\n },\n {\n line: line.lineNo(),\n ch: match.index + 1 + hint.value.length,\n },\n {\n className: 'hint-variable',\n title: hint.value,\n },\n ),\n );\n }\n }\n });\n\n this.cdr.markForCheck();\n }\n}\n","<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\"\n >Start typing your formula here. We support (+,-,*,/). <br />\n For Example: [Feb-22] - [Jan-22]</span\n>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n","import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';\n\nexport enum Scenario {\n ACTUALS = 'Actuals',\n FORECAST = 'Forecast',\n BUDGET = 'Budget',\n NONE = 'None',\n}\n\nexport interface IScenarioTag extends ITag {\n scenarioData: IScenario;\n}\n\nexport interface IScenarioCommon {\n toggle: boolean;\n name: string;\n description: string;\n acceptableSubTags?: TagsConfigSubType[];\n turnOffDateTags?: boolean;\n}\n\nexport interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {\n name?: string;\n description?: string;\n hidden?: boolean;\n}\n\nexport interface IScenarioTagUi extends IScenarioCommon {\n selectedTagSubType: TagsConfigSubType;\n type: TagTypes;\n subTags?: IScenarioSubTag[];\n}\n\nexport interface IScenarioSubTag {\n name: string;\n subType: TagsConfigSubType;\n hidden?: boolean;\n}\n\nexport type TScenarioTagConfigData = { [key in TagsConfigSubType]?: IScenario };\nexport type TScenarioTagData<T> = { [key in Scenario]?: T };\nexport type TScenarioDataChanged = { scenario: Scenario; tags?: ITagForServer[]; tagsConfig?: ITag[] };\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';\nimport { reduce as _reduce, find as _find, merge as _merge } from 'lodash';\nimport { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\n\n@Component({\n selector: 'dr-scenario-tag-configuration',\n templateUrl: './dr-scenario-tag-configuration.component.html',\n styleUrls: ['./dr-scenario-tag-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrScenarioTagConfigurationComponent implements OnChanges {\n @Input() public tagsConfig: ITag[];\n @Input() public set currentTags(tags: ITagForServer[]) {\n this._currentTags = tags;\n this.currentTagsMap = _reduce(tags, (acc, curr) => {\n const tagId = _find(this.tagsConfig, { name: curr.name })?.id;\n if (isNaN(tagId)) return acc;\n\n acc[tagId] = curr;\n return acc;\n }, {});\n }\n\n @Input() public scenario: Scenario;\n @Input() public connectedTags: TConnectedTags = {};\n @Input() public dynamicTagValues: TDynamicTag = {};\n\n @Input() public lockedDates: string[] | number[] = [];\n @Input() public fiscalYearStartsFrom: number;\n @Input() public fiscalYearBack: boolean;\n @Input() public isDynamicAddEnabled: boolean;\n\n @Output() public scenarioTagDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public currentTagsMap: { [tagId: number]: ITagForServer } = {};\n\n private _currentTags: ITagForServer[] = [];\n private dynamicTagsToSave: ITagForServer[] = [];\n private tagsToSave: ITagForServer[] = [];\n\n public get currentTags(): ITagForServer[] {\n return this._currentTags;\n }\n\n public ngOnChanges(simpleChanges: SimpleChanges): void {\n this.currentTags = this.currentTags;\n }\n\n public onTagChange($event: ITagForServer): void {\n const savedTag = _find(this.tagsToSave, { id: $event.id });\n\n if (savedTag) {\n _merge(savedTag, $event);\n } else {\n this.tagsToSave.push($event);\n }\n\n this.onScenarioTagDataChanged();\n }\n\n public onDynamicTagsChange($event: ITagForServer[]): void {\n this.dynamicTagsToSave = $event;\n this.onScenarioTagDataChanged();\n }\n\n public onScenarioTagDataChanged(): void {\n const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];\n this.scenarioTagDataChanged.emit({\n scenario: this.scenario,\n tagsConfig: this.tagsConfig,\n tags,\n });\n }\n}\n","<div class=\"scenario-tag-configuration\"\n *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n","import { TagsConfigSubType } from '../../models/serverTags';\nimport { Scenario, TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';\n\nexport const allDateTags = {\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.DAY]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.WEEK]: {\n name: 'Date',\n toggle: false,\n }\n};\n\nexport function getScenarioTagDataConfig(isMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData> {\n return {\n [Scenario.ACTUALS]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.BUDGET]: {\n [TagsConfigSubType.BUDGET_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.YEAR],\n hidden: !isMultipleDimension,\n },\n [TagsConfigSubType.PLAN]: {\n toggle: false,\n turnOffDateTags: true,\n hidden: isMultipleDimension,\n },\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.FORECAST]: {\n [TagsConfigSubType.FORECAST_NEW]: {\n toggle: true,\n name: 'Date',\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.NONE]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: true,\n },\n },\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../../models/serverTags';\nimport { IScenario, IScenarioSubTag, IScenarioTag, IScenarioTagUi, Scenario } from '../interfaces/scenario';\nimport {\n cloneDeep as _cloneDeep,\n filter as _filter,\n find as _find,\n forEach as _forEach,\n orderBy as _orderBy,\n indexOf as _indexOf,\n reduce as _reduce,\n some as _some, map as _map,\n includes as _includes\n} from 'lodash';\nimport { getScenarioTagDataConfig } from '../consts/scenario-tags-config';\n\n@Injectable()\nexport class ScenarioService {\n private DEFAULT_FORECAST_DATE_TAG = 'Month';\n\n private wholeTagsConfig: ITag[];\n private currentTagsConfig: ITag[];\n private isMultipleDimension: boolean;\n\n public get scenarios(): Scenario[] {\n return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);\n }\n\n private get areExistingTagsConfig(): boolean {\n return !!this.currentTagsConfig;\n }\n\n public initScenarioTags(wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension: boolean): void {\n if (!wholeTagsConfig?.length) return;\n\n this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);\n this.currentTagsConfig = currentTagsConfig;\n this.isMultipleDimension = isMultipleDimension;\n }\n\n public getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[] {\n const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) =>\n _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));\n\n return this.sortScenarioTags(scenarioTagsConfig);\n }\n\n public getScenarioTagsByScenario(scenario: Scenario) {\n const scenarioTagsConfig: IScenarioTag[] = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);\n const scenarioTagsUi: IScenarioTagUi[] = [];\n\n _forEach(scenarioTagsConfig, (scenarioTag: IScenarioTag) => {\n const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });\n\n const tag: IScenarioTagUi = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateScenarioSubTags(tag, scenarioTag);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return;\n scenarioTagsUi.push(tag);\n });\n\n if (this.areExistingTagsConfig) {\n this.initExistingTagsConfig(scenario, scenarioTagsUi);\n }\n\n const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });\n if (isTagNotSupportingDates) {\n this.turnOffDateTag(scenarioTagsUi);\n }\n\n const tagWithSpecificDateTags: IScenarioTagUi = _find(scenarioTagsUi, (tag) => tag.toggle && !!tag.acceptableSubTags?.length);\n if (tagWithSpecificDateTags) {\n this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);\n }\n\n return this.sortScenarioTags(scenarioTagsUi);\n }\n\n public tagNotSupportingDatesHandler<T extends IScenarioTagUi>(tag: T, tagNotSupportingDates: T, dateTag: T): void {\n if (!tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n tagNotSupportingDates.toggle = false;\n }\n\n if (tag === tagNotSupportingDates) {\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n public tagAcceptableSubTagsHandler<T extends IScenarioTagUi>(tag: T, dateTag: T): void {\n if (!tag.acceptableSubTags?.length) return;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n\n public sortScenarioTags(scenarioTagsUi: any[]): any[] {\n return _orderBy(scenarioTagsUi, [\n (tag) => (tag.type === TagTypes.DATE ? 0 : 1),\n (tag) => (tag.name === 'File Status')\n ]);\n }\n\n public static sortedSubTags(tag: IScenarioTagUi): IScenarioSubTag[] {\n const SUB_TAGS_ORDER = [TagsConfigSubType.DAY, TagsConfigSubType.WEEK, TagsConfigSubType.MONTH, TagsConfigSubType.QUARTER, TagsConfigSubType.YEAR];\n return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));\n }\n\n private initExistingTagsConfig(scenario: Scenario, scenarioTagsUi: IScenarioTagUi[]) {\n _forEach(this.currentTagsConfig, (tagConfig) => {\n const tagSubType = tagConfig?.options?.sub_type;\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);\n if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {\n return;\n }\n\n const scenarioTagUi = tagConfig.type === TagTypes.DATE\n ? _find(scenarioTagsUi, { type: tagConfig.type })\n : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });\n\n if (scenarioTagUi) {\n scenarioTagUi.toggle = true;\n scenarioTagUi.selectedTagSubType = tagSubType;\n }\n });\n }\n\n private prepareScenarioTag(scenarioTagsConfig: IScenarioTag[], scenarioTag: IScenarioTag, scenario: Scenario, isDateTag: boolean): IScenarioTagUi {\n const toggleStatus = isDateTag\n ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)\n : scenarioTag.scenarioData.toggle;\n\n const selectedTagSubType = isDateTag\n ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)\n : scenarioTag.options.sub_type;\n\n const tag: IScenarioTagUi = {\n toggle: this.areExistingTagsConfig ? false : toggleStatus,\n name: scenarioTag.scenarioData.name || scenarioTag.name,\n description: scenarioTag.scenarioData.description || scenarioTag.description,\n type: scenarioTag.type,\n selectedTagSubType,\n };\n\n if (scenarioTag.scenarioData.turnOffDateTags) {\n tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;\n }\n\n if (scenarioTag.scenarioData.acceptableSubTags) {\n tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;\n }\n\n return tag;\n }\n\n private updateScenarioSubTags(tag: IScenarioTagUi, scenarioTag: IScenarioTag): void {\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n const tagSubType = scenarioTag.options.sub_type;\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,\n });\n }\n\n private turnOffDateTag(scenarioTags: IScenarioTagUi[]): void {\n const dateTag = _find(scenarioTags, { type: TagTypes.DATE });\n\n if (!dateTag) return;\n dateTag.toggle= false;\n }\n\n private hideNotAvailableTags(tagWithSpecificDateTags: IScenarioTagUi, scenarioTags: IScenarioTagUi[]): void {\n const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;\n if (!subTags.length) return;\n\n _forEach(scenarioTags, (tag) => {\n if (!tag.acceptableSubTags?.length) return;\n if (tag !== tagWithSpecificDateTags) {\n tag.toggle = false;\n }\n });\n\n _forEach(subTags, (subTag) => {\n subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);\n });\n }\n\n private getScenarioSelectedDateTag(scenario: Scenario, dateTags: IScenarioTag[]): TagsConfigSubType {\n const monthSubType = _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options?.sub_type;\n\n const scenarioSelectedDateTag = {\n [Scenario.ACTUALS]: () => monthSubType,\n [Scenario.BUDGET]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,\n [Scenario.FORECAST]: () => _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options?.sub_type,\n [Scenario.NONE]: () => monthSubType,\n }\n\n if (!scenarioSelectedDateTag[scenario]) return;\n return scenarioSelectedDateTag[scenario]();\n }\n\n private getScenarioTagsConfig(scenario: Scenario, tagsConfig: ITag[]): IScenarioTag[] {\n return _reduce(tagsConfig, (acc: IScenarioTag[], tagConfig: ITag) => {\n const tagSubType = tagConfig?.options?.sub_type;\n\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);\n const scenarioTagConfig: IScenario = scenarioTagDataConfig && scenarioTagDataConfig[scenario] ?\n scenarioTagDataConfig[scenario][tagSubType] : null;\n if (!scenarioTagConfig || scenarioTagConfig.hidden) return acc;\n\n const clonedTagConfig = _cloneDeep(tagConfig);\n const scenarioTag: IScenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };\n\n acc.push(scenarioTag);\n return acc;\n }, []);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../models/serverTags';\nimport { find as _find, reduce as _reduce, some as _some } from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\n\n@Injectable()\nexport class TagsConstructorService {\n private readonly tagsNotSupportingDatesTag = [TagsConfigSubType.PLAN];\n private readonly tagsAcceptableSubTags = {\n [TagsConfigSubType.BUDGET_CYCLE]: [TagsConfigSubType.YEAR],\n };\n\n public buildTags(tagsConfigToDisplay: ITag[], selectedTagsConfig: ITag[]): IScenarioTagUi[] {\n return _reduce(tagsConfigToDisplay, (acc, tagConfig: ITag) => {\n const isTagWithSubTags = tagConfig.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(acc, { type: tagConfig.type });\n\n const tag = tagWithSubTags || this.prepareTag(tagConfig, selectedTagsConfig, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateSubTags(tag, tagConfig, selectedTagsConfig);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return acc;\n\n acc.push(tag);\n return acc;\n }, []);\n }\n\n private updateSubTags(tag: IScenarioTagUi, tagConfig: ITag, selectedTagsConfig: ITag[]): void {\n const tagSubType = tagConfig.options.sub_type;\n if (tagSubType === TagsConfigSubType.FORECAST_NEW) return;\n\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n tag.name = 'Date';\n\n const enabledTagSubType = _find(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === tagSubType)?.options?.sub_type;\n tag.toggle = !!enabledTagSubType || tag.toggle;\n\n if (tag.toggle && enabledTagSubType) {\n tag.selectedTagSubType = tagSubType;\n }\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagConfig.name,\n });\n }\n\n private prepareTag(tagConfig: ITag, selectedTagsConfig: ITag[], isTagWithSubTags: boolean): IScenarioTagUi {\n const selectedTagSubType = isTagWithSubTags ? TagsConfigSubType.MONTH : tagConfig.options.sub_type;\n const toggleStatus = _some(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === selectedTagSubType);\n\n const tag: IScenarioTagUi = {\n toggle: toggleStatus,\n name: tagConfig.name,\n description: tagConfig.description,\n type: tagConfig.type,\n selectedTagSubType,\n }\n\n if (this.tagsNotSupportingDatesTag.includes(selectedTagSubType)) {\n tag.turnOffDateTags = true;\n }\n\n if (this.tagsAcceptableSubTags[selectedTagSubType]) {\n tag.acceptableSubTags = this.tagsAcceptableSubTags[selectedTagSubType];\n }\n\n return tag;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\nimport { ToggleButtonMode } from '../dr-inputs/dr-toggle-button/toggle-button-mode';\nimport { ITag } from '../models/serverTags';\nimport {\n reduce as _reduce,\n some as _some,\n filter as _filter,\n forEach as _forEach,\n} from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n@Component({\n selector: 'dr-tags-constructor',\n templateUrl: './dr-tags-constructor.component.html',\n styleUrls: ['./dr-tags-constructor.component.scss'],\n})\nexport class DrTagsConstructorComponent implements OnInit {\n public readonly toggleButtonMode = ToggleButtonMode;\n\n public get currentTags(): IScenarioTagUi[] {\n return this.scenarioTagsConfig || this.tagsUi;\n }\n\n public get isScenarioFlow(): boolean {\n return !!this.scenarioTagsConfig;\n }\n\n /*\n * Used only for scenario flow (dr-scenario-configuration tag)\n * (only this input necessary for scenario flow)\n * */\n @Input() scenarioTagsConfig: IScenarioTagUi[];\n\n /*\n * Used for display provided tagsConfig\n * (for scenario flow, use this input to get tagsConfig data on stateChange emit)\n * */\n @Input() tagsConfigToDisplay: ITag[] = [];\n\n /*\n * Used for toggle on provided tagsConfig\n * (not related to scenario flow)\n * */\n @Input() selectedTagsConfig: ITag[] = [];\n\n @Output() tagChange: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() tagToggle: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() stateChange: EventEmitter<ITag[]> = new EventEmitter<ITag[]>();\n\n private tagsUi = [];\n\n private get tagsWithSubTags(): IScenarioTagUi[] {\n return _reduce(this.tagsUi, (acc, curr: IScenarioTagUi) => {\n if (curr?.subTags?.length) {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n private get tagsNotSupportingDateTag(): IScenarioTagUi[] {\n return _reduce(this.tagsUi, (acc, curr: IScenarioTagUi) => {\n if (curr?.turnOffDateTags) {\n acc.push(curr);\n }\n\n return acc;\n }, []);\n }\n\n constructor(private scenarioService: ScenarioService,\n private tagsConstructor: TagsConstructorService) {\n }\n\n public ngOnInit(): void {\n if (!this.isScenarioFlow) {\n this.buildTags();\n }\n }\n\n public onSubTagChange(tag: IScenarioTagUi): void {\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagChange.emit(tagToEmit);\n }\n\n public onTagToggle(tag: IScenarioTagUi): void {\n if (!this.isScenarioFlow) {\n this.updateTagsState(tag);\n }\n\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagToggle.emit(tagToEmit);\n }\n\n public onStateChange(): void {\n const tagsConfig = this.getTagsConfig(this.currentTags);\n this.stateChange.emit(tagsConfig);\n }\n\n private buildTags(): void {\n this.tagsUi = this.tagsConstructor.buildTags(this.tagsConfigToDisplay, this.selectedTagsConfig);\n }\n\n private getTagsConfig(currentTags: IScenarioTagUi[]): ITag[] {\n return _filter(this.tagsConfigToDisplay, (tagConfig) =>\n _some(currentTags, (tag) => tag.toggle && tag.selectedTagSubType === tagConfig.options.sub_type));\n }\n\n private updateTagsState(tag: IScenarioTagUi): void {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagAcceptableSubTagsHandler(tag, tagWithSubTag));\n\n _forEach(this.tagsNotSupportingDateTag, (tagNotSupportingDate) => {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagNotSupportingDatesHandler(tag, tagNotSupportingDate, tagWithSubTag));\n });\n }\n}\n","<div class=\"tags-constructor\">\n <p class=\"tags-constructor__title--extra tags-constructor__tags__title\">Tags</p>\n <div class=\"tags-constructor__tag\" *ngFor=\"let tag of currentTags\">\n <div class=\"tags-constructor__tag__header\">\n <p class=\"tags-constructor__title\">{{ tag.name }}</p>\n <dr-toggle [(ngModel)]=\"tag.toggle\"\n (ngModelChange)=\"onTagToggle(tag)\"></dr-toggle>\n </div>\n <div class=\"tags-constructor__tag__description\">\n <p class=\"tags-constructor__text\">{{ tag.description }}</p>\n </div>\n <div *ngIf=\"tag.toggle\" class=\"tags-constructor__tag__body\">\n <div *ngIf=\"tag.subTags?.length\" class=\"tags-constructor__sub-tag\">\n <dr-toggle-button [(ngModel)]=\"tag.selectedTagSubType\"\n bindHidden=\"hidden\"\n bindLabel=\"name\"\n bindValue=\"subType\"\n [items]=\"tag.subTags\"\n [mode]=\"toggleButtonMode.DOTTED\"\n (ngModelChange)=\"onSubTagChange(tag)\"></dr-toggle-button>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ScenarioService } from '../../services/scenario.service';\nimport { ITag, TagTypes } from '../../../models/serverTags';\nimport { find as _find } from 'lodash';\n\n@Component({\n selector: 'dr-scenario-configuration',\n templateUrl: './dr-scenario-configuration.component.html',\n styleUrls: ['./dr-scenario-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScenarioService]\n})\nexport class DrScenarioConfigurationComponent implements OnInit {\n public scenarios: Scenario[];\n\n private _scenarioTags: IScenarioTagUi[] = [];\n private _selectedScenario: Scenario;\n private tagNotSupportingDates: IScenarioTagUi;\n\n @Input() public currentTagsConfig: ITag[];\n @Input() public wholeTagsConfig: ITag[] = [];\n @Input() public set selectedScenario(scenario: Scenario) {\n if (!Object.values(Scenario).includes(scenario)) {\n this._selectedScenario = Scenario.ACTUALS;\n return;\n }\n\n this._selectedScenario = scenario;\n }\n @Input() public isMultipleDimension: boolean = false;\n\n @Output() public scenarioDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public get selectedScenario(): Scenario {\n return this._selectedScenario || Scenario.ACTUALS;\n }\n\n public get scenarioTags(): IScenarioTagUi[] {\n return this._scenarioTags;\n }\n\n public set scenarioTags(tags: IScenarioTagUi[]) {\n this._scenarioTags = tags;\n this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });\n }\n\n public get dateTag(): IScenarioTagUi {\n return _find(this.scenarioTags, { type: TagTypes.DATE });\n }\n\n constructor(private scenarioService: ScenarioService) {\n }\n\n public ngOnInit(): void {\n this.scenarios = this.scenarioService.scenarios;\n this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension);\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);\n }\n\n public onScenarioChange(scenario: Scenario): void {\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);\n this.onScenarioDataChange();\n }\n\n public onScenarioTagToggle(tag: IScenarioTagUi): void {\n this.scenarioService.tagNotSupportingDatesHandler<IScenarioTagUi>(tag, this.tagNotSupportingDates, this.dateTag);\n this.scenarioService.tagAcceptableSubTagsHandler<IScenarioTagUi>(tag, this.dateTag);\n this.onScenarioDataChange();\n }\n\n public onScenarioDataChange(): void {\n this.scenarioDataChanged.emit({\n scenario: this.selectedScenario,\n tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),\n });\n }\n}\n","<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($event)\"></dr-tags-constructor>\n </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n updatePosition(): void {\n if (!this.overlayRef) return;\n this.overlayRef.updatePosition();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: any;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n freezeToContainerSelector?: string;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n noPadding?: boolean;\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [\n trigger('popover', POPUP_ANIMATION),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n\n @Output() popoverOpened: EventEmitter<void> = new EventEmitter<void>();\n\n _contentAsType: Type<T>;\n _contentAsTemplate: TemplateRef<any>;\n @Input() set content(value: TemplateRef<any> | Type<T>) {\n this.isContentTemplate = value instanceof TemplateRef;\n if (this.isContentTemplate) {\n this._contentAsTemplate = (value as TemplateRef<any>);\n } else {\n this._contentAsType = (value as Type<T>);\n }\n };\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n @Input() freezeToContainerSelector: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (!isTargetHost\n && !isTargetInPopover\n && !isTargetInDatepicker\n && !isTargetInSelect\n && !isTargetInDatepickerContent\n && !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {\n }\n\n ngOnInit(): void {\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this._contentAsType);\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.popoverOpened.emit();\n this.repositionToNewContainerAndFreeze();\n this.cdr.detectChanges();\n }\n\n /**\n * Removing popover element from cdk-overlay and attach to provided container after element is positioned\n * is required for specific case of preserving popover at same position on document while scroll (not fixed)\n *\n * TODO: implement more neat, transparent and Angular way solution: i.e. create another service (or extend existiong one)\n * without attaching component to cdk Overlay and instead positioning it to element passed in directive input parameter\n */\n private repositionToNewContainerAndFreeze(): void {\n const newContainer = !!this.freezeToContainerSelector && document.querySelector(this.freezeToContainerSelector);\n if (newContainer) {\n\n // waiting until element is positioned on overlay\n setTimeout(() => {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (!element.closest('.cdk-overlay-container')) return;\n\n const position = element.getBoundingClientRect();\n const newContainerPosition = newContainer.getBoundingClientRect();\n\n element.style.position = 'absolute';\n element.style.top = `${ newContainer.scrollTop + position.top - newContainerPosition.top }px`;\n element.style.left = `${ newContainerPosition.left + position.left }px`;\n\n newContainer.appendChild(element);\n });\n }\n }\n\n}\n","<div class=\"dr-popover\" [class]=\"class\" #popoverContainer>\n <ng-container *ngIf=\"isContentTemplate\">\n <ng-container *ngTemplateOutlet=\"_contentAsTemplate; context: contentContext\"></ng-container>\n </ng-container>\n</div>\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport {\n DEFAULT_CONFIG,\n DEFAULT_MODEL,\n getAlignmentDimension,\n IDrPopoverComponentModel,\n Point\n} from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {\n }\n\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<HTMLElement>,\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment, freezeToContainerSelector}: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${ popoverModel?.position }' position!`);\n\n const position = { ... POPUP_POSITIONS[popoverModel.position] };\n if (popoverModel.overlayConfig.noPadding) {\n position.offsetY = 0;\n position.offsetX = 0;\n }\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {} };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\n const injectionTokens: StaticProvider[] = [\n { provide: DrPopoverRef, useValue: popoverRef },\n ];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, DrPopoverConfig, IPopoverManualClosing } from '../models/popover';\nimport { Observable, Subscription } from 'rxjs';\n\n@Directive({\n selector: '[drPopover]',\n exportAs: 'drPopoverInstance'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: any = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: DrPopoverConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Input('drPopoverUpdateOnResize') resizeOnEvent: Observable<T>;\n\n @Input('drPopoverFreezeToContainerSelector') freezeToContainerSelector: string;\n\n // eslint-disable-next-line\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverOpened') popoverOpened = new EventEmitter<void>();\n\n // eslint-disable-next-line\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n private resizeSub: Subscription;\n\n public get isPopoverOpen(): boolean {\n return !!this.popoverRef;\n }\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {\n }\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n freezeToContainerSelector: this.freezeToContainerSelector\n });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n if (this.resizeSub) {\n this.resizeSub.unsubscribe();\n this.resizeSub = null;\n }\n\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n\n popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {\n this.popoverOpened.emit();\n });\n\n if (this.resizeOnEvent && !this.resizeSub && this.popoverRef) {\n this.resizeSub = this.resizeOnEvent.subscribe(() => {\n setTimeout(() => this.popoverRef.updatePosition());\n });\n }\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdownAction } from '../models/dropdown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrDropdownService {\n\n actionItem = new Subject<IDropdownAction<unknown>>();\n protected menuInView: ComponentRef<DrDropdownComponent>;\n\n constructor() {\n }\n\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\n this.menuInView = item;\n }\n\n destroy() {\n if (this.menuInView) {\n this.menuInView.destroy();\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ElPosition, IDropdownCoordinate } from '../models/dropdown';\n\n@Directive({\n selector: '[drDropdownPosition]',\n exportAs: 'dropdownPosition'\n})\nexport class DrDropdownPositionDirective implements OnInit {\n\n @Input() drDropdownPosition;\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\n\n widthMoreRight: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n setTimeout(this.calculatePosition.bind(this), 1);\n }\n\n calculatePosition() {\n let xDifference = 0;\n let defaultDelta = 10;\n let defaultPadding = 0;\n const originalPosition = this.position;\n\n if (this.position === 'child') {\n defaultDelta = 0;\n defaultPadding = 10;\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\n\n this.position = {\n x: this.el.nativeElement.offsetWidth,\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\n clientY: parentRect.y\n };\n }\n\n if (typeof this.position === 'string') {\n this.renderer.setStyle(this.el.nativeElement, 'top',\n this.position === 'bottom' ?\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\n this.drDropdownPosition.y + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left',\n this.position === 'right' ?\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\n this.drDropdownPosition.x + 'px');\n const menuHeight = this.el.nativeElement.offsetHeight;\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\n\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\n\n if (heightMoreWindowBottom) {\n this.position = 'top';\n }\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\n this.position = 'top-left';\n const translateX = `calc(-100% + ${ this.drDropdownPosition.width }px)`;\n const translateY = 'calc(-100% - 8px)';\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${ translateX }, ${ translateY })`);\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`\n );\n }\n const className = this.position === 'top' ? 'content-top'\n : this.position === 'top-left' ? 'content-top-left'\n : this.position === 'bottom' ? 'content-bottom'\n : this.position === 'bottom-left' ? 'content-bottom-left'\n : this.position === 'left' ? 'content-left'\n : this.position === 'left-center' ? 'content-left-center'\n : this.position === 'right' ? 'content-right'\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\n this.renderer.addClass(this.el.nativeElement, className);\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n } else {\n const defaultChildPadding = 3;\n const widthMoreWindowRight = originalPosition !== 'child'\n ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)\n : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;\n\n const widthMoreWindowBottom = originalPosition !== 'child'\n ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)\n : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;\n\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\n this.widthMoreRight = !(widthMoreWindowRight < 0);\n\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\n ? -this.position.x + -defaultChildPadding\n : this.position.x + defaultChildPadding + xDifference;\n\n if (spaceRightAmount <= 0 && originalPosition !== 'child') {\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\n }\n\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\n\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe'\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter(item => item.show ? item.show(item.data) : true);\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrDropdownComponent {\n\n @ViewChild('listMenu') viewMenu: HTMLElement;\n @ViewChild('menuContainer') menuContainer: HTMLElement;\n option: any;\n position: ElPosition | IDropdownCoordinate = 'left';\n drDropdownInHover: boolean;\n list: IDropdownItem<unknown>[];\n containerClass: string;\n public wasHovered = false;\n private firstInit: boolean;\n\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\n }\n\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\n if (data) {\n this.option = data.option;\n this.position = data.position;\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.list = data.list || [];\n this.list.forEach(item => {\n if (item.children?.length) {\n item.childOptions = {\n list: item.children,\n class: item?.childOptions?.class || '',\n position: 'child'\n };\n }\n });\n this.cdr.markForCheck();\n }\n }\n\n onMouseEnter(): void {\n this.wasHovered = true;\n }\n\n onMouseLeave(): void {\n if (this.drDropdownInHover) this.menuService.destroy();\n }\n\n onClickedOutside(): void {\n if (this.firstInit) {\n this.menuService.destroy();\n } else {\n this.firstInit = true;\n }\n }\n\n hide(): void {\n this.menuService.destroy();\n }\n\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;\n }\n\n tooltipPosition(widthMoreRight: boolean) {\n return widthMoreRight ? 'right' : 'left';\n }\n\n action(act: IDropdownItem<any>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });\n }\n this.hide();\n }\n }\n\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\n $event.stopPropagation();\n if (!this.disabled(actionIcon)) {\n actionIcon.action(data);\n this.hide();\n }\n }\n}\n\n","<div #menuContainer\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\"\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n #dropdownPosition=\"dropdownPosition\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\"\n [class.separate-line]=\"act.separateLine\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ElPosition, IDropdown, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Directive({\n selector: '[drDropdown]'\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n\n @Input() position: ElPosition = 'left';\n @Input() drDropdown: IDropdownItem<T>[];\n @Input() drDropdownClass: string;\n @Input() drDropdownInHover: boolean;\n @ViewChild(DrDropdownComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n\n private readonly mouseleaveTimeout = 200;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private service: DrDropdownService,\n private el: ElementRef,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n @HostListener('mouseenter') elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click') elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave') leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(_ => {\n if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\n this.closeDropdown(e);\n }\n\n private openDropdown(): void {\n const option = this.el.nativeElement.getBoundingClientRect();\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else {\n this.service.destroy();\n this.showMenu({\n option,\n drDropdownInHover: this.drDropdownInHover,\n position: this.position,\n list: this.drDropdown,\n class: this.drDropdownClass\n });\n }\n }\n\n private closeDropdown(e): void {\n\n if (!this.contentCmpRef) {\n return;\n }\n\n const clickTarget = e.target;\n const triggerElement = this.el.nativeElement;\n const dropdownElement = this.contentCmpRef.location.nativeElement;\n const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;\n const isClickDropdownContents = dropdownElement.contains(clickTarget);\n\n if (!isClickTriggerElement && !isClickDropdownContents) {\n const elems = this._document.querySelectorAll('dr-dropdown');\n setTimeout(() => elems.forEach(item => item.remove()), 100);\n }\n }\n\n private showMenu(options: IDropdown<T>) {\n const componentFactory: ComponentFactory<DrDropdownComponent> = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.service.addMenu = this.contentCmpRef;\n this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class DrTabComponent implements OnInit {\n @Input() label: string;\n @Input() icon: string;\n @Input() disabled: boolean;\n @Input() tooltip: string;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent {\n _disableAnimation = true;\n _selectedIndex = 0;\n @Input() theme: string = 'primary';\n @Input() set selectedTab(value) {\n this._selectedIndex = value || 0;\n\n /**\n * Hack to disable animation calculation in case the pre-selected tab is not at index 0.\n * Otherwise, the animation of redirecting to the pre-selected tab will conflict\n * with the animation of the tab at index 0.\n */\n if (this._selectedIndex) {\n this._disableAnimation = true;\n setTimeout(() => {\n this._disableAnimation = false;\n });\n }\n };\n @Input() withRadio: boolean;\n @Input() withIcon: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Input() hideTabs = false;\n @Input() noHeaderBorder = false;\n @Input() noTabLabelsPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor(protected cdr: ChangeDetectorRef) {\n }\n\n selectedIndexChange($event) {\n this._selectedIndex = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","<mat-tab-group disableRipple\n [ngClass]=\"theme\"\n [selectedIndex]=\"_selectedIndex\"\n (selectedIndexChange)=\"selectedIndexChange($event)\"\n [class.with-radio]=\"withRadio\"\n [class.vertical]=\"vertical\"\n [class.no-tab-labels-padding]=\"noTabLabelsPadding\"\n [class.no-body-padding]=\"noBodyPadding\"\n [class.no-tabs]=\"hideTabs\"\n [class.no-header-border]=\"noHeaderBorder\"\n [animationDuration]=\"vertical || _disableAnimation ? '0ms' : '500ms'\">\n <mat-tab *ngFor=\"let tab of tabsContentList; let index = index\" label=\"{{ tab.label }}\" [disabled]=\"tab.disabled\">\n <ng-container *ngIf=\"withRadio\">\n <ng-template mat-tab-label>\n <dr-radio-button [value]=\"index\"\n [(ngModel)]=\"_selectedIndex\">\n </dr-radio-button>\n {{ tab.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tab.tooltip && !withRadio && !withIcon\">\n <ng-template mat-tab-label>\n <label class=\"cursor-pointer\" [drTooltip]=\"tab.tooltip\">{{ tab.label }}</label>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"withIcon\">\n <ng-template mat-tab-label>\n <span class=\"icon-tab__wrapper\">\n <i [ngClass]=\"tab.icon\" class=\"cursor-pointer\"></i>\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n </mat-tab>\n</mat-tab-group>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\n }\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe(collapsed => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\n <ng-content></ng-content>\n <i class=\"dr-icon-arrow-down expansion-indicator\"\n [@expansionIndicator]=\"state\"\n *ngIf=\"!disabled\">\n </i>\n `,\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate(180deg)',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit, } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {\n }\n}\n","<div class=\"dr-layout\">\n <ng-content select=\"dr-layout-header\"></ng-content>\n <div class=\"dr-layout__container\">\n <div class=\"content\">\n <div class=\"columns\">\n <ng-content select=\"dr-layout-body\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-details-list',\n templateUrl: './dr-details-list.component.html',\n styleUrls: ['./dr-details-list.component.scss'],\n animations: [\n trigger('expansionIndicatorList', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ]\n})\n\nexport class DrDetailsListComponent implements OnDestroy {\n\n private destroy$ = new Subject<void>();\n public list: string[] = [];\n\n @Input() title = 'Show details';\n @Input() set items(val: string[] | Observable<string[]>) {\n if (!val) {\n return;\n }\n\n if (Array.isArray(val)) {\n this.list = val;\n } else {\n val.pipe(takeUntil(this.destroy$)).subscribe((res: string[]) => {\n this.list = res;\n });\n }\n };\n @Input() collapse = true;\n\n get state(): string {\n if (this.collapse) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor() {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"details\">\n <div class=\"details__header\" (click)=\"collapse = !collapse\">\n <i [class.dr-icon-arrow-right]=\"collapse\"\n [class.dr-icon-arrow-down]=\"!collapse\">\n </i>\n {{ title }}\n </div>\n <ul class=\"details__list\" [@expansionIndicatorList]=\"{ value: state }\">\n <li *ngFor=\"let item of list\">{{ item }}</li>\n </ul>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class')\n get elementClass(): SizeModal {\n return this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n }\n\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private dialogService: DialogService,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp) {\n }\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(this.dialogData.child);\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n enableAcceptButton() {\n this.dialogData.acceptButton.isDisabled = false;\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData.confirmFn().pipe(takeUntil(this.destroy$), catchError(error => this.dialogService.throwErr(error, this.saving$))).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","<div class=\"dialog-wrapper\"\n [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\"\n data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\"\n *ngIf=\"dialogData.subtitle\">{{ dialogData.subtitle }}</h1>\n </div>\n <div class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\">{{ dialogData.customButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\">{{ dialogData.cancelButton.label }}</dr-button>\n </span>\n <span *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\">{{ dialogData.acceptButton.label }}</dr-button>\n </span>\n </div>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { MatLegacyDialogConfig as MatDialogConfig } from '@angular/material/legacy-dialog';\n\ntype DialogConfig = Omit<MatDialogConfig, 'data'>;\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> extends DialogConfig {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n };\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n theme?: {\n themeSize?: SizeModal;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: TDialogFieldType;\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n datePickerFormat?: TimeframeOption;\n formGroupClass?: string;\n}\n\nexport type SizeModal =\n | 'small-modal'\n | 'small-modal-max-height'\n | 'medium-small-modal'\n | 'medium-modal'\n | 'medium-modal-max-height'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal'\n | 'xl-medium-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n isDisabled?: boolean;\n loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n SMALL_MAX_HEIGHT = 'small-modal-max-height',\n MEDIUM = 'medium-modal',\n MEDIUM_SMALL = 'medium-small-modal',\n MEDIUM_MAX_HEIGHT = 'medium-modal-max-height',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n X_MEDIUM = 'xl-medium-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n DATE_PICKER = 'date_picker',\n CHECKBOX = 'checkbox',\n}\n\nexport type TDialogFieldType = DIALOG_FIELD_TYPE;\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n readonly dialogFieldType = DIALOG_FIELD_TYPE;\n\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\n fieldsItemsLoading: Record<string, BehaviorSubject<boolean>> = {};\n\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n private dialogService: DialogService,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {\n }\n\n ngOnInit(): void {\n if (!this.dialogData.fields) this.dialogData.fields = [];\n\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n if (currentValue.items$) {\n this.fieldsItemsLoading[currentValue.name] = new BehaviorSubject<boolean>(true);\n currentValue.items$ = (currentValue.items$ as any).pipe(\n catchError((err) => {\n this.fieldsItemsLoading[currentValue.name].next(false);\n return throwError(() => err);\n }),\n tap(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n finalize(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n );\n }\n\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(currentValue.default || null, currentValue.validators || []);\n return Object.assign(accumulator, currentFormControl);\n }, {})\n );\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData.confirmFn(this.form.value).pipe(\n finalize(() => {\n this.isLoading = false\n this.saving$.next(false);\n }),\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n return this.dialogService.throwErr(err, this.saving$);\n }),\n ).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\"\n data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\">{{ field.label }}</label>\n <div class=\"input-group p-0\"\n [ngClass]=\"{ 'col-md-10': field.label && !field.isLabelFullWidth, 'col-md-12': !field.label || field.isLabelFullWidth }\">\n <dr-select *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close();\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\"\n class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}</button>\n </ng-template>\n </dr-select>\n <dr-input *ngIf=\"field.type === dialogFieldType.INPUT\" data-test=\"modalInput\" class=\"form-control\"\n [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label class=\"form-field-error-alert\" *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\"\n *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\">{{ dialogData.customButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\"\n [theme]=\"'secondary'\">{{ dialogData.cancelButton.label }}</dr-button>\n <dr-button *ngIf=\"dialogData.acceptButton\" data-test=\"modalAddBtn\" (click)=\"onAccept()\" [theme]=\"'primary'\"\n [isLoading]=\"isLoading\" [disabled]=\"form.invalid\">{{ dialogData.acceptButton.label }}</dr-button>\n </div>\n</div>\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(\n private dialog: MatDialog,\n ) {\n }\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = (DialogWrapperComponent as any);\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n enableAcceptButton(): void {\n this.wrapperComponent.componentInstance.enableAcceptButton();\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(componentType: ComponentType<WrapperType>, dialogData: DialogData<D>): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n\n throwErr(err: Error, load?: Subject<any> | BehaviorSubject<any>): Observable<any> {\n if (load) {\n load.next(false);\n }\n throw err;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TreeviewSelection } from './treeview-item';\n\n@Injectable()\nexport abstract class TreeviewI18n {\n abstract getText(selection: TreeviewSelection): string;\n abstract getAllCheckboxText(): string;\n abstract getFilterPlaceholder(): string;\n abstract getFilterNoItemsFoundText(): string;\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\n}\n\n@Injectable()\nexport class DefaultTreeviewI18n extends TreeviewI18n {\n getText(selection: TreeviewSelection): string {\n if (selection.uncheckedItems.length === 0) {\n if (selection.checkedItems.length > 0) {\n return this.getAllCheckboxText();\n } else {\n return '';\n }\n }\n\n switch (selection.checkedItems.length) {\n case 0:\n return 'Select options';\n case 1:\n return selection.checkedItems[0].text;\n default:\n return `${selection.checkedItems.length} options selected`;\n }\n }\n\n getAllCheckboxText(): string {\n return 'All';\n }\n\n getFilterPlaceholder(): string {\n return 'Filter';\n }\n\n getFilterNoItemsFoundText(): string {\n return 'No items found';\n }\n\n getTooltipCollapseExpandText(isCollapse: boolean): string {\n return isCollapse ? 'Expand' : 'Collapse';\n }\n}\n","import { concat, isNil, pull } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\nexport const TreeviewHelper = {\n findItem,\n findItemInList,\n findParent,\n removeItem,\n concatSelection\n};\n\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\n if (isNil(root)) {\n return undefined;\n }\n\n if (root.value === value) {\n return root;\n }\n\n if (root.children) {\n for (const child of root.children) {\n const foundItem = findItem(child, value);\n if (foundItem) {\n return foundItem;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\n if (isNil(list)) {\n return undefined;\n }\n\n for (const item of list) {\n const foundItem = findItem(item, value);\n if (foundItem) {\n return foundItem;\n }\n }\n\n return undefined;\n}\n\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\n if (isNil(root) || isNil(root.children)) {\n return undefined;\n }\n\n for (const child of root.children) {\n if (child === item) {\n return root;\n } else {\n const parent = findParent(child, item);\n if (parent) {\n return parent;\n }\n }\n }\n\n return undefined;\n}\n\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\n const parent = findParent(root, item);\n if (parent) {\n pull(parent.children, item);\n if (parent.children.length === 0) {\n parent.children = undefined;\n } else {\n parent.correctChecked();\n }\n return true;\n }\n\n return false;\n}\n\nfunction concatSelection(items: TreeviewItem[], checked: TreeviewItem[], unchecked: TreeviewItem[]): { [k: string]: TreeviewItem[] } {\n let checkedItems = [...checked];\n let uncheckedItems = [...unchecked];\n for (const item of items) {\n const selection = item.getSelection();\n checkedItems = concat(checkedItems, selection.checkedItems);\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\n }\n return {\n checked: checkedItems,\n unchecked: uncheckedItems\n };\n}\n","import { isBoolean, isNil, isString } from 'lodash';\nimport { TreeviewHelper } from '../helpers/treeview-helper';\n\nexport interface TreeviewSelection {\n checkedItems: TreeviewItem[];\n uncheckedItems: TreeviewItem[];\n}\n\nexport interface TreeItem {\n text: string;\n value: any;\n disabled?: boolean;\n checked?: boolean;\n collapsed?: boolean;\n children?: TreeItem[];\n}\n\nexport class TreeviewItem {\n private internalDisabled = false;\n internalChecked = true;\n private internalCollapsed = false;\n private internalChildren: TreeviewItem[];\n text: string;\n value: any;\n hidden?: boolean;\n\n constructor(item: TreeItem, autoCorrectChecked = false) {\n if (isNil(item)) {\n throw new Error('Item must be defined');\n }\n if (isString(item.text)) {\n this.text = item.text;\n } else {\n throw new Error('A text of item must be string object');\n }\n this.value = item.value;\n if (isBoolean(item.checked)) {\n this.checked = item.checked;\n }\n if (isBoolean(item.collapsed)) {\n this.collapsed = item.collapsed;\n }\n if (isBoolean(item.disabled)) {\n this.disabled = item.disabled;\n }\n if (!isNil(item.children) && item.children.length > 0) {\n this.children = item.children.map(child => {\n if (this.disabled === true) {\n child.disabled = true;\n }\n\n return new TreeviewItem(child);\n });\n }\n\n if (autoCorrectChecked) {\n this.correctChecked();\n }\n }\n\n get checked(): boolean {\n return this.internalChecked;\n }\n\n set checked(value: boolean) {\n if (!this.internalDisabled) {\n if (this.internalChecked !== value) {\n this.internalChecked = value;\n }\n }\n }\n\n get indeterminate(): boolean {\n return this.checked === undefined;\n }\n\n setCheckedRecursive(value: boolean): void {\n if (!this.internalDisabled) {\n this.internalChecked = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCheckedRecursive(value));\n }\n }\n }\n\n get disabled(): boolean {\n return this.internalDisabled;\n }\n\n set disabled(value: boolean) {\n if (this.internalDisabled !== value) {\n this.internalDisabled = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.disabled = value);\n }\n }\n }\n\n get collapsed(): boolean {\n return this.internalCollapsed;\n }\n\n set collapsed(value: boolean) {\n if (this.internalCollapsed !== value) {\n this.internalCollapsed = value;\n }\n }\n\n setCollapsedRecursive(value: boolean): void {\n this.internalCollapsed = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach(child => child.setCollapsedRecursive(value));\n }\n }\n\n get children(): TreeviewItem[] {\n return this.internalChildren;\n }\n\n set children(value: TreeviewItem[]) {\n if (this.internalChildren !== value) {\n if (!isNil(value) && value.length === 0) {\n throw new Error('Children must be not an empty array');\n }\n this.internalChildren = value;\n if (!isNil(this.internalChildren)) {\n let checked = null;\n this.internalChildren.forEach(child => {\n if (checked === null) {\n checked = child.checked;\n } else {\n if (child.checked !== checked) {\n checked = undefined;\n return;\n }\n }\n });\n this.internalChecked = checked;\n }\n }\n }\n\n getSelection(): TreeviewSelection {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (isNil(this.internalChildren)) {\n if (this.internalChecked) {\n checkedItems.push(this);\n } else {\n uncheckedItems.push(this);\n }\n } else {\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n return {\n checkedItems,\n uncheckedItems\n };\n }\n\n correctChecked(): void {\n this.internalChecked = this.getCorrectChecked();\n }\n\n private getCorrectChecked(): boolean {\n let checked: boolean = null;\n if (!isNil(this.internalChildren)) {\n for (const child of this.internalChildren) {\n child.internalChecked = child.getCorrectChecked();\n if (checked === null) {\n checked = child.internalChecked;\n } else if (checked !== child.internalChecked) {\n checked = undefined;\n break;\n }\n }\n } else {\n checked = this.checked;\n }\n\n return checked;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TreeviewConfig {\n hasAllCheckBox = true;\n hasFilter = false;\n hasCollapseExpand = false;\n decoupleChildFromParent = false;\n maxHeight = 500;\n\n get hasDivider(): boolean {\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\n }\n\n public static create(fields?: {\n hasAllCheckBox?: boolean,\n hasFilter?: boolean,\n hasCollapseExpand?: boolean,\n decoupleChildFromParent?: boolean\n maxHeight?: number,\n }): TreeviewConfig {\n const config = new TreeviewConfig();\n Object.assign(config, fields);\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\nimport { TreeviewComponent } from '../components/treeview/treeview.component';\n\n@Injectable()\nexport abstract class TreeviewEventParser {\n abstract getSelectedChange(component: TreeviewComponent): any[];\n}\n\n@Injectable()\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const checkedItems = component.selection.checkedItems;\n if (!isNil(checkedItems)) {\n return checkedItems.map(item => item.value);\n }\n\n return [];\n }\n}\n\nexport interface DownlineTreeviewItem {\n item: TreeviewItem;\n parent: DownlineTreeviewItem;\n}\n\n@Injectable()\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const items = component.items;\n if (!isNil(items)) {\n let result: DownlineTreeviewItem[] = [];\n items.forEach(item => {\n const links = this.getLinks(item, null);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n return [];\n }\n\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\n if (!isNil(item.children)) {\n const link = {\n item,\n parent\n };\n let result: DownlineTreeviewItem[] = [];\n item.children.forEach(child => {\n const links = this.getLinks(child, link);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n if (item.checked) {\n return [{\n item,\n parent\n }];\n }\n\n return null;\n }\n}\n\n@Injectable()\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\n private currentDownlines: DownlineTreeviewItem[] = [];\n private parser = new DownlineTreeviewEventParser();\n\n getSelectedChange(component: TreeviewComponent): any[] {\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\n if (this.currentDownlines.length === 0) {\n this.currentDownlines = newDownlines;\n } else {\n const intersectDownlines: DownlineTreeviewItem[] = [];\n this.currentDownlines.forEach(downline => {\n let foundIndex = -1;\n const length = newDownlines.length;\n for (let i = 0; i < length; i++) {\n if (downline.item.value === newDownlines[i].item.value) {\n foundIndex = i;\n break;\n }\n }\n\n if (foundIndex !== -1) {\n intersectDownlines.push(newDownlines[foundIndex]);\n newDownlines.splice(foundIndex, 1);\n }\n });\n\n this.currentDownlines = intersectDownlines.concat(newDownlines);\n }\n\n return this.currentDownlines;\n }\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\n\n@Component({\n selector: 'ngx-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss']\n})\nexport class TreeviewItemComponent {\n @Input() config: TreeviewConfig;\n @Input() template: TemplateRef<TreeviewItemTemplateContext>;\n @Input() item: TreeviewItem;\n @Output() checkedChange = new EventEmitter<boolean>();\n\n constructor(\n private defaultConfig: TreeviewConfig\n ) {\n this.config = this.defaultConfig;\n }\n\n onCollapseExpand = () => {\n this.item.collapsed = !this.item.collapsed;\n }\n\n onCheckedChange = () => {\n const checked = this.item.checked;\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\n this.item.children.forEach(child => child.setCheckedRecursive(checked));\n }\n this.checkedChange.emit(checked);\n }\n\n onChildCheckedChange(child: TreeviewItem, checked: boolean): void {\n if (!this.config.decoupleChildFromParent) {\n let itemChecked: boolean = null;\n for (const childItem of this.item.children) {\n if (itemChecked === null) {\n itemChecked = childItem.checked;\n } else if (itemChecked !== childItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n if (this.item.checked !== itemChecked) {\n this.item.checked = itemChecked;\n }\n\n }\n\n this.checkedChange.emit(checked);\n }\n}\n","<div *ngIf=\"item\" class=\"treeview-item\">\n <ng-template [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{item: item, onCollapseExpand: onCollapseExpand, onCheckedChange: onCheckedChange}\">\n </ng-template>\n <div *ngIf=\"!item.collapsed\">\n <ngx-treeview-item [config]=\"config\" *ngFor=\"let child of item.children\" [item]=\"child\" [template]=\"template\"\n (checkedChange)=\"onChildCheckedChange(child, $event)\">\n </ngx-treeview-item>\n </div>\n</div>\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, OnInit } from '@angular/core';\nimport { isNil, includes } from 'lodash';\nimport { TreeviewI18n } from '../../models/treeview-i18n';\nimport { TreeviewItem, TreeviewSelection } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewHeaderTemplateContext } from '../../models/treeview-header-template-context';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\nimport { TreeviewHelper } from '../../helpers/treeview-helper';\nimport { TreeviewEventParser } from '../../helpers/treeview-event-parser';\n\nclass FilterTreeviewItem extends TreeviewItem {\n private readonly refItem: TreeviewItem;\n constructor(item: TreeviewItem) {\n super({\n text: item.text,\n value: item.value,\n disabled: item.disabled,\n checked: item.checked,\n collapsed: item.collapsed,\n children: item.children\n });\n this.refItem = item;\n }\n\n updateRefChecked(): void {\n this.children.forEach(child => {\n if (child instanceof FilterTreeviewItem) {\n child.updateRefChecked();\n }\n });\n\n let refChecked = this.checked;\n if (refChecked) {\n for (const refChild of this.refItem.children) {\n if (!refChild.checked) {\n refChecked = false;\n break;\n }\n }\n }\n this.refItem.checked = refChecked;\n }\n}\n\n@Component({\n selector: 'ngx-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss']\n})\nexport class TreeviewComponent implements OnChanges, OnInit {\n @Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;\n @Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;\n @Input() items: TreeviewItem[];\n @Input() config: TreeviewConfig;\n @Output() selectedChange = new EventEmitter<any[]>();\n @Output() filterChange = new EventEmitter<string>();\n headerTemplateContext: TreeviewHeaderTemplateContext;\n allItem: TreeviewItem;\n filterText = '';\n filterItems: TreeviewItem[];\n selection: TreeviewSelection;\n\n constructor(\n public i18n: TreeviewI18n,\n private defaultConfig: TreeviewConfig,\n private eventParser: TreeviewEventParser\n ) {\n this.config = this.defaultConfig;\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\n }\n\n get hasFilterItems(): boolean {\n return !isNil(this.filterItems) && this.filterItems.length > 0;\n }\n\n get maxHeight(): string {\n return `${this.config.maxHeight}`;\n }\n\n ngOnInit(): void {\n this.createHeaderTemplateContext();\n this.generateSelection();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemsSimpleChange = changes.items;\n if (!isNil(itemsSimpleChange) && !isNil(this.items)) {\n this.updateFilterItems();\n this.updateCollapsedOfAll();\n this.raiseSelectedChange();\n }\n }\n\n onAllCollapseExpand(): void {\n this.allItem.collapsed = !this.allItem.collapsed;\n this.filterItems.forEach(item => item.setCollapsedRecursive(this.allItem.collapsed));\n }\n\n onFilterTextChange(text: string): void {\n this.filterText = text;\n this.filterChange.emit(text);\n this.updateFilterItems();\n }\n\n onAllCheckedChange(): void {\n const checked = this.allItem.checked;\n this.filterItems.forEach(item => {\n item.setCheckedRecursive(checked);\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n });\n\n this.raiseSelectedChange();\n }\n\n onItemCheckedChange(item: TreeviewItem, checked: boolean): void {\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n\n this.updateCheckedOfAll();\n this.raiseSelectedChange();\n }\n\n raiseSelectedChange(): void {\n this.generateSelection();\n const values = this.eventParser.getSelectedChange(this);\n setTimeout(() => {\n this.selectedChange.emit(values);\n });\n }\n\n private createHeaderTemplateContext(): void {\n this.headerTemplateContext = {\n config: this.config,\n item: this.allItem,\n onCheckedChange: () => this.onAllCheckedChange(),\n onCollapseExpand: () => this.onAllCollapseExpand(),\n onFilterTextChange: (text) => this.onFilterTextChange(text)\n };\n }\n\n private generateSelection(): void {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (!isNil(this.items)) {\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n this.selection = {\n checkedItems,\n uncheckedItems\n };\n }\n\n private updateFilterItems(): void {\n if (this.filterText !== '') {\n const filterItems: TreeviewItem[] = [];\n const filterText = this.filterText.toLowerCase();\n this.items.forEach(item => {\n const newItem = this.filterItem(item, filterText);\n if (!isNil(newItem)) {\n filterItems.push(newItem);\n }\n });\n this.filterItems = filterItems;\n } else {\n this.filterItems = this.items;\n }\n\n this.updateCheckedOfAll();\n }\n\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\n const isMatch = includes(item.text.toLowerCase(), filterText);\n if (isMatch) {\n return item;\n } else {\n if (!isNil(item.children)) {\n const children: TreeviewItem[] = [];\n item.children.forEach(child => {\n const newChild = this.filterItem(child, filterText);\n if (!isNil(newChild)) {\n children.push(newChild);\n }\n });\n if (children.length > 0) {\n const newItem = new FilterTreeviewItem(item);\n newItem.collapsed = false;\n newItem.children = children;\n return newItem;\n }\n }\n }\n\n return undefined;\n }\n\n private updateCheckedOfAll(): void {\n let itemChecked: boolean = null;\n for (const filterItem of this.filterItems) {\n if (itemChecked === null) {\n itemChecked = filterItem.checked;\n } else if (itemChecked !== filterItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n this.allItem.checked = itemChecked;\n }\n\n private updateCollapsedOfAll(): void {\n let hasItemExpanded = false;\n for (const filterItem of this.filterItems) {\n if (!filterItem.collapsed) {\n hasItemExpanded = true;\n break;\n }\n }\n\n this.allItem.collapsed = !hasItemExpanded;\n }\n}\n","<ng-template #defaultItemTemplate let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\">\n <div class=\"form-inline row-item\">\n <i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg *ngSwitchCase=\"true\" width=\"0.8rem\" height=\"0.8rem\" viewBox=\"0 0 16 16\" class=\"bi bi-caret-right-fill\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\" />\n </svg>\n <svg *ngSwitchCase=\"false\" width=\"0.8rem\" height=\"0.8rem\" viewBox=\"0 0 16 16\" class=\"bi bi-caret-down-fill\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg>\n </i>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"item.checked\" (ngModelChange)=\"onCheckedChange()\"\n [disabled]=\"item.disabled\" [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{item.text}}\n </label>\n </div>\n </div>\n</ng-template>\n<ng-template #defaultHeaderTemplate let-config=\"config\" let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\" let-onFilterTextChange=\"onFilterTextChange\">\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\n <div class=\"col-12\">\n <input class=\"form-control\" type=\"text\" [placeholder]=\"i18n.getFilterPlaceholder()\" [(ngModel)]=\"filterText\"\n (ngModelChange)=\"onFilterTextChange($event)\" />\n </div>\n </div>\n <div *ngIf=\"hasFilterItems\">\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row row-all\">\n <div class=\"col-12\">\n <div class=\"form-check form-check-inline\" *ngIf=\"config.hasAllCheckBox\">\n <input type=\"checkbox\" class=\"form-check-input\" [(ngModel)]=\"item.checked\" (ngModelChange)=\"onCheckedChange()\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{i18n.getAllCheckboxText()}}\n </label>\n </div>\n <label *ngIf=\"config.hasCollapseExpand\" class=\"float-right form-check-label\" (click)=\"onCollapseExpand()\">\n <i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg *ngSwitchCase=\"true\" width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-arrows-angle-expand\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\"\n d=\"M1.5 10.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path fill-rule=\"evenodd\"\n d=\"M6.354 9.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm8.5-8.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path fill-rule=\"evenodd\"\n d=\"M10.036 1.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 1 1-1 0V2h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n <svg *ngSwitchCase=\"false\" width=\"1em\" height=\"1em\" viewBox=\"0 0 16 16\" class=\"bi bi-arrows-angle-contract\"\n fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\"\n d=\"M9.5 2.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path fill-rule=\"evenodd\"\n d=\"M14.354 1.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 1 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm-7.5 7.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path fill-rule=\"evenodd\"\n d=\"M2.036 9.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V10h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n </i>\n </label>\n </div>\n </div>\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\"></div>\n </div>\n</ng-template>\n<div class=\"treeview-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate || defaultHeaderTemplate\"\n [ngTemplateOutletContext]=\"headerTemplateContext\">\n </ng-template>\n</div>\n<div [ngSwitch]=\"hasFilterItems\">\n <div *ngSwitchCase=\"true\" class=\"treeview-container\" [style.max-height.px]=\"maxHeight\">\n <ngx-treeview-item *ngFor=\"let item of filterItems\" [config]=\"config\" [item]=\"item\"\n [template]=\"itemTemplate || defaultItemTemplate\" (checkedChange)=\"onItemCheckedChange(item, $event)\">\n </ngx-treeview-item>\n </div>\n <div *ngSwitchCase=\"false\" class=\"treeview-text\">\n {{i18n.getFilterNoItemsFoundText()}}\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\n@Pipe({\n name: 'ngxTreeview'\n})\nexport class TreeviewPipe implements PipeTransform {\n transform(objects: any[], textField: string): TreeviewItem[] {\n if (isNil(objects)) {\n return undefined;\n }\n\n return objects.map(object => new TreeviewItem({ text: object[textField], value: object }));\n }\n}\n","export enum ToastrStatus {\n INFO = 'status-info',\n ERROR = 'status-danger',\n SUCCESS = 'status-success',\n WARNING = 'status-warning'\n}\n\nexport const ToastrStatusIcon = {\n [ToastrStatus.INFO]: 'dr-icon-noty-notification',\n [ToastrStatus.ERROR]: 'dr-icon-noty-error',\n [ToastrStatus.SUCCESS]: 'dr-icon-noty-success',\n [ToastrStatus.WARNING]: 'dr-icon-noty-warning',\n};\n\nexport type DefaultToastrData = {\n title: string;\n message: string;\n status: ToastrStatus;\n isHtmlBody: boolean;\n};\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\nimport { DefaultToastrData, ToastrStatus, ToastrStatusIcon } from '../../models/toastr';\n\n\n@Component({\n selector: 'dr-default-toastr',\n templateUrl: './default-toastr.component.html',\n styleUrls: ['./default-toastr.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultToastrComponent extends Toast implements OnInit {\n\n data: DefaultToastrData = {\n title: '',\n message: '',\n status: ToastrStatus.SUCCESS,\n isHtmlBody: false\n };\n icon = ToastrStatusIcon[this.data.status];\n\n @HostBinding('class') class = this.data.status;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage\n ) {\n super(toastrService, toastPackage);\n }\n\n ngOnInit(): void {\n this.class = this.data.status;\n this.icon = ToastrStatusIcon[this.data.status];\n }\n}\n","<div class=\"icon-container\">\n <i class=\"toastr-icon\" [ngClass]=\"icon\"></i>\n</div>\n\n<div class=\"content-container\">\n <span class=\"title\">\n {{data.title}}\n </span>\n\n <div class=\"message\" *ngIf=\"!data.isHtmlBody; else htmlBody\">\n {{data.message}}\n </div>\n\n <ng-template #htmlBody>\n <div class=\"message\" [innerHTML]=\"data.message\"></div>\n </ng-template>\n\n</div>\n\n<div class=\"icon-container\">\n <i class=\"dr-icon-exit\"></i>\n</div>\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({ selector: '[clickOutside]' })\nexport class ClickOutsideDirective implements OnInit, OnDestroy, OnChanges {\n @Input() attachOutsideOnClick: boolean = false;\n @Input() exclude: string = '';\n\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n private _nodesExcluded: Array<HTMLElement> = [];\n\n constructor(\n @Inject(DOCUMENT) private _document /*: HTMLDocument*/,\n private _el: ElementRef) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n }\n\n ngOnInit() {\n this._init();\n }\n\n ngOnDestroy() {\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.removeEventListener('click', this._initOnClickBody);\n }\n\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['attachOutsideOnClick'] || changes['exclude']) {\n this._init();\n }\n }\n\n private _init() {\n if (this.exclude) {\n this.exclude.split(',').forEach((selector) => {\n if (selector) {\n try {\n const node = this._document.querySelector(selector.trim());\n if (node) {\n this._nodesExcluded.push(node);\n }\n } catch (err) {\n if (window.console) {\n window.console.error('[ng2-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n });\n }\n\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.addEventListener('click', this._initOnClickBody);\n } else {\n this._initOnClickBody();\n }\n }\n\n /** @internal */\n private _initOnClickBody() {\n this._document.body.addEventListener('click', this._onClickBody);\n }\n\n /** @internal */\n private _onClickBody(e: Event) {\n if (!this._el.nativeElement.contains(e.target) && !this._shouldExclude(e.target)) {\n this.clickOutside.emit(e);\n\n if (this.attachOutsideOnClick) {\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n }\n }\n\n /** @internal */\n private _shouldExclude(target): boolean {\n for (let i = 0; i < this._nodesExcluded.length; i++) {\n if (this._nodesExcluded[i].contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n}\n","export enum FeedbackSentiment {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n};\n\nexport interface IFeedback {\n\tsubjectId: string;\n sentiment: FeedbackSentiment;\n\ttext?: string;\n tags?: Array<string>;\n}\n","export interface ICodeEditorHint {\n icon: ICodeEditorHintIcon;\n value: string;\n type?: string;\n hint?: string;\n}\n\nexport enum ICodeEditorHintIcon {\n VALUE = '#',\n CALCULATED_VALUE = '=',\n}\n\nexport interface ICodeEditorMarker {\n name: string;\n title: string;\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { ToastrService } from 'ngx-toastr';\nimport { ToastrStatus } from '../models/toastr';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrToastrService {\n\n constructor(private toastr: ToastrService) {\n }\n\n info(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.INFO, isHtmlBody, timeOut);\n }\n\n danger(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.ERROR, isHtmlBody, timeOut);\n }\n\n success(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.SUCCESS, isHtmlBody, timeOut);\n }\n\n warning(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.WARNING, isHtmlBody, timeOut);\n }\n\n private showToastr(message: string | SafeHtml, title: string, status: ToastrStatus, isHtmlBody?: boolean, timeOut: number = 5000): void {\n const toastr = this.toastr.show('', '', {\n positionClass: 'toastr-bottom-left',\n tapToDismiss: true,\n timeOut,\n });\n\n toastr.portal.instance.data = {\n title,\n message,\n status,\n isHtmlBody\n };\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipInfoSimpleComponent } from './components/tooltip-info-simple/tooltip-info-simple.component';\nimport { TooltipNoBodyComponent } from './components/tooltip-no-body/tooltip-no-body.component';\nimport { TooltipProcessDefaultComponent } from './components/tooltip-process-default/tooltip-process-default.component';\nimport { TooltipDefaultComponent } from './components/tooltip-default/tooltip-default.component';\n\nconst TOOLTIP_COMPONENTS = [\n TooltipDefaultComponent,\n TooltipInfoComponent,\n TooltipInfoSimpleComponent,\n TooltipNoBodyComponent,\n TooltipProcessDefaultComponent\n];\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n providers: [],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n})\n\nexport class DrTooltipModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [...components, ...directives],\n declarations: [...components, ...directives]\n})\n\nexport class DrSpinnerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\nimport { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { DrSpinnerModule } from '../dr-spinner/dr-spinner.module';\nimport { DrDatePickerRangeComponent } from './date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nimport { DrLinkComponent } from './dr-link/dr-link.component';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function() {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrDatePickerRangeComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe,\n DrSelectAddItemComponent,\n DrLinkComponent\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatNativeDateModule,\n MatDatepickerModule,\n DrTooltipModule,\n DrSpinnerModule,\n ],\n})\n\nexport class DrInputsModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent } from './any-tag.component';\nimport { DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport const components = [\n DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n NgSelectModule\n ],\n exports: components,\n declarations: components,\n})\n\nexport class DateTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListTagComponent } from './list-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrDynamicTagComponent } from './dr-dynamic-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DrDynamicTagComponent],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n ],\n exports: [DrDynamicTagComponent]\n})\nexport class DrDynamicTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\nimport { DrDynamicTagModule } from '../dr-dynamic-tag/dr-dynamic-tag.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule,\n DrDynamicTagModule\n ],\n exports: [DrTagComponent],\n providers: [],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n exports: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n imports: [\n MatTooltipModule,\n DrTooltipModule,\n CommonModule\n ]\n})\n\nexport class DrAvatarModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n providers: [],\n declarations: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n})\n\nexport class DrPopoverModule {\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-slider',\n templateUrl: './dr-slider.component.html',\n styleUrls: ['./dr-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrSliderComponent, multi: true }\n ],\n standalone: true,\n})\nexport class DrSliderComponent implements ControlValueAccessor {\n @Input() disabled: boolean;\n @Input() max: number = 100;\n @Input() min: number = 1;\n @Input() step: number = 1;\n @Input() rangeValue: number = 1;\n\n private onChange: (value: number) => void = () => {\n };\n private onTouched: () => void = () => {\n };\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: number): void {\n this.rangeValue = value;\n }\n\n setValue(event): void {\n this.writeValue(event.target.value);\n this.onChange(this.rangeValue);\n this.onTouched();\n }\n}\n","<input type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n [value]=\"rangeValue\"\n (change)=\"setValue($event)\"\n/>\n","export enum CROP_IMAGE_MODES {\n SQUARE = 'square',\n RECTANGLE = 'rectangle',\n}\n\nexport interface ICropImageData {\n file: File;\n coordinates: string;\n cropMode: CROP_IMAGE_MODES;\n}\n","import { Injectable } from '@angular/core';\nimport { CROP_IMAGE_MODES } from './dr-image-cropper.types';\n\n@Injectable()\nexport class DrImageCropperCanvasService {\n ctx: CanvasRenderingContext2D;\n\n private readonly ALPHA_FOR_SHADOW = 0.2;\n // this param means that a side of a white square is half of a side of a canvas\n private readonly CROP_AREA_PROPORTION = 2;\n private readonly RECTANGULAR_SHADOW_WIDTH = 30;\n private readonly RECTANGULAR_SHADOW_HEIGHT = 70;\n\n drawShape(canvasSize: number, cropMode: CROP_IMAGE_MODES, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n this.clearCanvas(canvasSize);\n this.drawImageByZoom(canvasSize, zoomLevel, htmlImageElement);\n this.drawShadow(cropMode, canvasSize);\n }\n\n getCoordinates(cropMode: CROP_IMAGE_MODES, canvasSize: number): string {\n return cropMode === CROP_IMAGE_MODES.SQUARE\n ? this.getCoordinatesForSquare(canvasSize)\n : this.getCoordinatesForRectangle(canvasSize);\n }\n\n private getCoordinatesForSquare(canvasSize: number): string {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n const bottomPosition = canvasSize - shadowLength;\n return [shadowLength, shadowLength, bottomPosition, bottomPosition].join(',');\n }\n\n private getCoordinatesForRectangle(canvasSize: number): string {\n return [\n this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT\n ].join(',');\n }\n\n private drawShadow(cropMode: CROP_IMAGE_MODES, canvasSize: number): void {\n this.ctx.globalAlpha = this.ALPHA_FOR_SHADOW;\n this.ctx.fillStyle = 'black';\n if (cropMode === CROP_IMAGE_MODES.SQUARE) {\n this.drawSquareShadow(canvasSize)\n } else if (cropMode === CROP_IMAGE_MODES.RECTANGLE) {\n this.drawRectangularShadow(canvasSize);\n }\n this.ctx.globalAlpha = 1;\n }\n\n private drawSquareShadow(canvasSize: number): void {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n this.ctx.fillRect(0, 0, shadowLength, canvasSize);\n this.ctx.fillRect(canvasSize - shadowLength, 0, shadowLength, canvasSize);\n this.ctx.fillRect(shadowLength, 0, 2 * shadowLength, shadowLength);\n this.ctx.fillRect(shadowLength, canvasSize - shadowLength, 2 * shadowLength, shadowLength);\n }\n\n private drawRectangularShadow(canvasSize: number): void {\n this.ctx.fillRect(0, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(canvasSize - this.RECTANGULAR_SHADOW_WIDTH, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n 0,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT\n );\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT\n );\n }\n\n private drawImageByZoom(canvasSize: number, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n const maxImageDimension = Math.max(htmlImageElement.width, htmlImageElement.height);\n const proportion = canvasSize / (this.CROP_AREA_PROPORTION * maxImageDimension);\n const suitableWidth = htmlImageElement.width * proportion * zoomLevel;\n const suitableHeight = htmlImageElement.height * proportion * zoomLevel;\n\n const rectX = (canvasSize - suitableWidth) / 2;\n const rectY = (canvasSize - suitableHeight) / 2;\n\n this.ctx.drawImage(htmlImageElement, rectX, rectY, suitableWidth, suitableHeight);\n }\n\n private clearCanvas(canvasSize: number): void {\n this.ctx.fillStyle = 'white';\n this.ctx.fillRect(0, 0, canvasSize, canvasSize);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DrSliderComponent } from '../dr-inputs/dr-slider/dr-slider.component';\nimport { CROP_IMAGE_MODES, ICropImageData } from './dr-image-cropper.types';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrImageCropperCanvasService } from './dr-image-cropper-canvas.service';\n\n@Component({\n selector: 'dr-image-cropper',\n templateUrl: './dr-image-cropper.component.html',\n styleUrls: ['./dr-image-cropper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, DrSliderComponent, DrInputsModule],\n standalone: true,\n providers: [DrImageCropperCanvasService]\n})\nexport class DrImageCropperComponent implements OnChanges, AfterViewInit {\n @Input({ required: true }) cropperSize: number;\n @Input({ required: true }) imageFile: File;\n @Input() maxZoom: number = 10;\n @Input() minZoom: number = 0.5;\n @Input() zoomStep: number = 0.1;\n @Input() zoomLevel: number = 1;\n\n @Output() cropChanged = new EventEmitter<ICropImageData>();\n @Output() clearClicked = new EventEmitter<void>();\n\n @ViewChild('imageCanvas', { static: true }) canvasElement: ElementRef<HTMLCanvasElement>;\n\n htmlImageElement: HTMLImageElement;\n cropMode: CROP_IMAGE_MODES = CROP_IMAGE_MODES.SQUARE;\n readonly CROP_IMAGE_MODES = CROP_IMAGE_MODES;\n\n constructor(private readonly canvasService: DrImageCropperCanvasService) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.imageFile && this.imageFile) {\n this.readImageFile();\n }\n }\n\n ngAfterViewInit(): void {\n this.canvasService.ctx = this.canvasElement.nativeElement.getContext('2d');\n }\n\n drawImage(newZoomEvent?): void {\n if (newZoomEvent !== undefined) {\n this.zoomLevel = newZoomEvent.target.value;\n }\n this.onCropModeUpdated();\n }\n\n onCropModeUpdated(cropMode?: CROP_IMAGE_MODES): void {\n if (cropMode) {\n this.cropMode = cropMode;\n }\n\n this.canvasService.drawShape(this.cropperSize, this.cropMode, this.zoomLevel, this.htmlImageElement);\n const coordinates = this.canvasService.getCoordinates(this.cropMode, this.cropperSize);\n this.canvasElement.nativeElement.toBlob((blob) => {\n const file = new File([blob], this.imageFile.name, { type: this.imageFile.type, lastModified: Date.now() });\n this.cropChanged.emit({ file, coordinates, cropMode: this.cropMode });\n }, this.imageFile.type);\n }\n\n private readImageFile(): void {\n const reader = new FileReader();\n reader.onload = () => {\n this.htmlImageElement = new Image();\n this.htmlImageElement.src = this.getImagesStringSrc(reader);\n this.htmlImageElement.onload = () => {\n this.canvasElement.nativeElement.width = this.canvasElement.nativeElement.height = this.cropperSize;\n this.drawImage();\n };\n };\n reader.readAsDataURL(this.imageFile);\n }\n\n private getImagesStringSrc(reader: FileReader): string {\n if (typeof reader.result === 'string') return reader.result;\n\n const decoder = new TextDecoder();\n return decoder.decode(reader.result);\n }\n}\n","<div class=\"crop-mode-btns-container\">\n <dr-button theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.SQUARE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.SQUARE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__square-icon\"></div>\n Square\n </div>\n </dr-button>\n <dr-button theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.RECTANGLE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.RECTANGLE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__rectangle-icon\"></div>\n Rectangle\n </div>\n </dr-button>\n</div>\n\n<div class=\"image-cropper\">\n <canvas #imageCanvas></canvas>\n</div>\n<dr-slider\n [(ngModel)]=\"zoomLevel\"\n [max]=\"maxZoom\"\n [min]=\"minZoom\"\n [step]=\"zoomStep\"\n [style.width]=\"cropperSize + 'px'\"\n class=\"image-crop-slider\"\n (input)=\"drawImage($event)\">\n</dr-slider>\n<dr-button [theme]=\"'ghost'\" (click)=\"clearClicked.emit()\" class=\"try-another-btn\">\n Try another image\n</dr-button>\n","import { NgModule } from '@angular/core';\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\nimport { DrDropdownDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule,\n ],\n declarations: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n exports: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n providers: [\n DrDropdownService,\n ],\n})\n\nexport class DrDropdownModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule,\n DrTooltipModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [\n DrLayoutComponent,\n DrLayoutHeaderComponent,\n DrLayoutBodyComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\n\nexport class DrLayoutModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DrTooltipModule\n ],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [\n DrErrorComponent\n ],\n})\n\nexport class DrErrorModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [StepperComponent]\n})\nexport class DrStepperModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDetailsListComponent } from './dr-details-list.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrDetailsListComponent],\n providers: [],\n declarations: [DrDetailsListComponent],\n})\n\nexport class DrDetailsListModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogModule as MatDialogModule, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDetailsListModule } from '../dr-details-list/dr-details-list.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule,\n DrDetailsListModule\n ],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n DialogService\n ]\n})\nexport class DrDialogModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\nimport { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';\nimport { DrChatAlertComponent } from './dr-chat-alert/dr-chat-alert.component';\n\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatSuggestionsComponent,\n DrDotFlashingComponent,\n DrChatAlertComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n DrAvatarModule,\n DrInputsModule,\n DrTooltipModule,\n ],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrTagsConstructorComponent } from './dr-tags-constructor.component';\nimport { FormsModule } from '@angular/forms';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n\n@NgModule({\n declarations: [DrTagsConstructorComponent],\n imports: [CommonModule, DrInputsModule, FormsModule],\n providers: [ScenarioService, TagsConstructorService],\n exports: [DrTagsConstructorComponent],\n})\nexport class DrTagsConstructorModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScenarioService } from './services/scenario.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\nimport { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';\nimport { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nimport { DrTagModule } from '../dr-tags/dr-tag.module';\nimport { DrTagsConstructorModule } from '../dr-tags-constructor/dr-tags-constructor.module';\n\n\nconst COMPONENTS = [\n DrScenarioConfigurationComponent,\n DrScenarioTagConfigurationComponent,\n]\n\n@NgModule({\n declarations: [...COMPONENTS],\n providers: [ScenarioService],\n imports: [\n CommonModule,\n DrInputsModule,\n FormsModule,\n DrTagModule,\n DrTagsConstructorModule,\n ],\n exports: [...COMPONENTS],\n})\nexport class DrScenarioModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrBadgeStatusComponent } from './dr-badge-status.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [DrBadgeStatusComponent],\n providers: [],\n declarations: [\n DrBadgeStatusComponent\n ],\n})\n\nexport class DrBadgeStatusModule {\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TreeviewComponent } from './components/treeview/treeview.component';\nimport { TreeviewItemComponent } from './components/treeview-item/treeview-item.component';\nimport { TreeviewPipe } from './pipes/treeview.pipe';\nimport { TreeviewConfig } from './models/treeview-config';\nimport { DefaultTreeviewEventParser, TreeviewEventParser } from './helpers/treeview-event-parser';\n\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule\n ],\n declarations: [\n TreeviewComponent,\n TreeviewItemComponent,\n TreeviewPipe\n ],\n exports: [\n TreeviewComponent,\n TreeviewPipe,\n ],\n providers: [],\n})\n\nexport class TreeviewModule {\n static forRoot(): ModuleWithProviders<TreeviewModule> {\n return {\n ngModule: TreeviewModule,\n providers: [\n TreeviewConfig,\n { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective]\n})\nexport class ClickOutsideModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAlertComponent } from './dr-alert.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [DrAlertComponent],\n providers: [],\n declarations: [\n DrAlertComponent\n ],\n})\n\nexport class DrAlertModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrToastrService } from './dr-toastr.service';\nimport { ToastrModule } from 'ngx-toastr';\nimport { DefaultToastrComponent } from './default-toastr/default-toastr.component';\n\n@NgModule({\n declarations: [\n DefaultToastrComponent\n ],\n imports: [\n CommonModule,\n ToastrModule.forRoot({\n toastComponent: DefaultToastrComponent\n })\n ],\n exports: [DefaultToastrComponent],\n providers: [DrToastrService],\n})\n\nexport class DrToastrModule {\n}\n","import 'codemirror/mode/javascript/javascript';\nimport 'codemirror/addon/edit/matchbrackets';\nimport 'codemirror/addon/hint/show-hint';\nimport '@codemirror/autocomplete';\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrCodeEditorComponent } from './dr-code-editor.component';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrErrorModule } from '../dr-error/dr-error.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DrTooltipModule,\n DrErrorModule\n ],\n exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n providers: [],\n declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n})\n\nexport class DrCodeEditorModule {\n}\n","/* components */\nexport * from './lib/date-tags/any-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-link/dr-link.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';export * from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nexport * from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport * from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport * from './lib/dr-inputs/dr-select-add-item/dr-select-add-item.component';\nexport * from './lib/dr-tooltip/components/tooltip-default/tooltip-default.component';\nexport * from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport * from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport * from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport * from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/dr-chat/chat.component';\nexport * from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport * from './lib/dr-chat/dr-chat-suggestions/chat-suggestions.component';\nexport * from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport * from './lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component';\nexport * from './lib/dr-chat/dr-chat-alert/dr-chat-alert.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\nexport * from './lib/dr-badge-status/dr-badge-status.component';\nexport * from './lib/dr-alert/dr-alert.component';\nexport * from './lib/dr-code-editor/dr-code-editor.component';\nexport * from './lib/dr-code-editor/components/dr-codemirror.component';\nexport * from './lib/dr-code-editor/components/code-editor-hint-wrapper.component';\n\nexport * from './lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nexport * from './lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component';\nexport * from './lib/dr-tags-constructor/dr-tags-constructor.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\nexport * from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport * from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\n\nexport * from './lib/dr-details-list/dr-details-list.component';\n\nexport * from './lib/dr-chat/chat.component';\n\nexport * from './lib/dr-treeview/components/treeview/treeview.component';\nexport * from './lib/dr-treeview/pipes/treeview.pipe';\nexport * from './lib/dr-treeview/models/treeview-item';\nexport * from './lib/dr-treeview/models/treeview-config';\nexport * from './lib/dr-treeview/models/treeview-i18n';\nexport * from './lib/dr-treeview/models/treeview-item-template-context';\nexport * from './lib/dr-treeview/helpers/treeview-event-parser';\nexport * from './lib/dr-treeview/helpers/treeview-helper';\n\nexport * from './lib/dr-toastr/default-toastr/default-toastr.component';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\nexport { TooltipTheme } from './lib/dr-tooltip/enums/tooltip-theme.enum';\nexport { Scenario, TScenarioDataChanged } from './lib/dr-scenario/interfaces/scenario';\nexport { ToggleButtonMode } from './lib/dr-inputs/dr-toggle-button/toggle-button-mode';\nexport { DrAlertTheme } from './lib/dr-alert/enums/dr-alert-theme.enum';\n\n/* interfaces & types */\nexport { TooltipInfoContext } from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\nexport * from './lib/directives/click-outside/click-outside.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer, IDynamicTag, TDynamicTagValue, TDynamicTag, TagTypes, TagsConfigSubType, TConnectedTags } from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport {\n ElPosition,\n IDropdown,\n IDropdownItem,\n IDropdownActionIcon,\n IDropdownCoordinate,\n IDropdownCallEvent,\n IDropdownAction\n} from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\nexport * from './lib/models/badgeStatus';\nexport * from './lib/models/feedback';\nexport * from './lib/models/toastr';\nexport * from './lib/models/datePickerRange';\nexport * from './lib/dr-code-editor/models/code-editor-hint';\n\n/* services */\nexport { ScenarioService } from './lib/dr-scenario/services/scenario.service';\nexport { TagsConstructorService } from './lib/dr-tags-constructor/tags-constructor.service';\nexport { DrAvatarService } from './lib/dr-avatar/services/dr-avatar.service';\nexport { DrToastrService } from './lib/dr-toastr/dr-toastr.service';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrSliderComponent } from './lib/dr-inputs/dr-slider/dr-slider.component';\nexport { DrImageCropperComponent } from './lib/image-cropper/dr-image-cropper.component';\nexport * from './lib/image-cropper/dr-image-cropper.types';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\nexport { DrDetailsListModule } from './lib/dr-details-list/dr-details-list.module';\nexport { DrScenarioModule } from './lib/dr-scenario/dr-scenario.module';\nexport { DrBadgeStatusModule } from './lib/dr-badge-status/dr-badge-status.module';\nexport { TreeviewModule } from './lib/dr-treeview/dr-tree-view.module';\nexport { ClickOutsideModule } from './lib/directives/click-outside/click-outside.module';\nexport { DrAlertModule } from './lib/dr-alert/dr-alert.module';\nexport { DrTagsConstructorModule } from './lib/dr-tags-constructor/dr-tags-constructor.module';\nexport { DrToastrModule } from './lib/dr-toastr/dr-toastr.module';\nexport { DrCodeEditorModule } from './lib/dr-code-editor/dr-code-editor.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.TooltipDefaultComponent","i1","i2","i4.DrSpinnerDirective","i3.DrDatePickerService","i4","i5","i6.DrTooltipDirective","i7.DrSelectComponent","i8.DrShowTimeframePipe","noop","i2.DrDatePickerService","i3","i5.DrDatePickerFormatDirective","i6","i2.DrDatePickerComponent","i2.DrSelectComponent","_find","i3.DrDatePickerComponent","i2.DayTagComponent","i3.WeekTagComponent","i4.MonthTagComponent","i5.QuarterTagComponent","i6.YearTagComponent","i7.ForecastTagComponent","i3.DrSelectComponent","i4.DrToggleButtonComponent","i3.DrModelDebounceChangeDirective","_reduce","i1.DrSelectComponent","i4.DrButtonComponent","i5.DrInputComponent","_isObject","_isNil","_map","_isNumber","i3.DrSelectAddItemComponent","_merge","_forEach","_some","i2.DateTagComponent","i3.ListTagComponent","i4.DrDynamicTagComponent","merge","i1.DrTooltipDirective","i7.DrButtonComponent","i2.DrTooltipDirective","i5.DrDotFlashingComponent","i3.DrAvatarPipe","i1.DrChatCustomMessageService","i3.DrAvatarComponent","i4.DrChatMessageTextComponent","i5.DrChatMessageFileComponent","i2.DrButtonComponent","i2.DrChatSuggestionsComponent","i1.DrButtonComponent","i3.DrTooltipDirective","i3.DrErrorComponent","i4.DrCodemirrorComponent","i2.DrTagComponent","_orderBy","_cloneDeep","_filter","_includes","_indexOf","i1.ScenarioService","i2.TagsConstructorService","i4.DrToggleComponent","i5.DrToggleButtonComponent","i5.DrTagsConstructorComponent","i1.DrPopoverRef","i1.DrPopoverService","i1.DrDropdownService","i4.DrDropdownPositionDirective","i5.DrDropdownItemShowPipe","i4.RadioButtonComponent","i5.DrTooltipDirective","i1.DrAccordionComponent","i1.DrAccordionItemComponent","MAT_DIALOG_DATA","i6.DrDetailsListComponent","i5.CheckboxComponent","i6.DrInputComponent","i8.DrDatePickerComponent","i9","i1.TreeviewConfig","i1.TreeviewI18n","i2.TreeviewConfig","i3.TreeviewEventParser","i6.TreeviewItemComponent","components","MatTooltipModule","i1.DrImageCropperCanvasService","i3.DrButtonComponent","MatDialogModule","MatDialogRef"],"mappings":"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"}