@datarailsshared/datarailsshared 1.4.91 → 1.4.92

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.js","sources":["../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../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/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/models/spinnerOptions.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../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.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.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.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-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../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-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/models/datePicker.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-tags/dr-tag.module.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/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/dr-date-picker.component.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/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../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.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {IDateTag} from \"../models/serverTags\";\n// import {*} from \"\"\n@Component({\n templateUrl: \"date-tag.component.html\",\n selector: \"date-tag\",\n styleUrls: [\"date-tag.component.css\", \"../../../../../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() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n\n constructor() {\n }\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log(\"change date\", date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\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 dateObj = {date: undefined};\n\n constructor() {\n }\n\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\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\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","import {Component, Input} from \"@angular/core\";\nimport {Moment} from \"moment\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatSelectChange} from \"@angular/material/select\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\n// @ts-ignore\nconst moment = require(\"moment\");\n\n@Component({\n templateUrl: \"forecast-tag.component.html\",\n selector: \"forecast-tag\",\n})\n\nexport class ForecastTagComponent extends AnyTagComponent {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n forecastValue: number | undefined = undefined;\n\n forecastTags: any[] = [\n {\"value\": 0, \"label\": \"0+12\"},\n {\"value\": 1, \"label\": \"1+11\"},\n {\"value\": 2, \"label\": \"2+10\"},\n {\"value\": 3, \"label\": \"3+9\"},\n {\"value\": 4, \"label\": \"4+8\"},\n {\"value\": 5, \"label\": \"5+7\"},\n {\"value\": 6, \"label\": \"6+6\"},\n {\"value\": 7, \"label\": \"7+5\"},\n {\"value\": 8, \"label\": \"8+4\"},\n {\"value\": 9, \"label\": \"9+3\"},\n {\"value\": 10, \"label\": \"10+2\"},\n {\"value\": 11, \"label\": \"11+1\"}\n ];\n\n constructor() {\n super();\n }\n\n initDate() {\n let dateVal = new Date();\n if (this.defaultValue) {\n dateVal = new Date(this.defaultValue * 1000);\n }\n let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n let fiscal_year_back = this.fiscalYearBack || false;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n let fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\n\n console.log(\"test\", dateVal, fiscal_year_starts_from, this.forecastValue, fiscal_year);\n\n this.dateObj.date = moment(new Date(fiscal_year, 0, 1)).format(\"YYYY\");\n\n this.updateLockedDate();\n }\n\n updateLockedDate() {\n for (let forecastTag of this.forecastTags) {\n forecastTag.disable = false;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n if (locked.month() - 1 === forecastTag.value && +locked.year() + 1 === +this.dateObj.date) {\n forecastTag.disable = true;\n }\n });\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Forecast\";\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n let 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.getMonth() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.getFullYear();\n\n if (!fiscal_year_back) {\n if (dateObj.getMonth() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.getMonth() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n getForecastLabelFromValue(value, fiscal_year_starts_from, fiscal_year_back) {\n let label = \"\";\n if (value) {\n let dateObj = new Date(value * 1000);\n\n let fiscal_month = this.getFiscalMonthFromDate(dateObj, fiscal_year_starts_from);\n let fiscal_year = this.getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back);\n\n label = (fiscal_month - 1) + \"+\" + (13 - fiscal_month) + \" (\" + fiscal_year + \")\";\n }\n return label;\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 let month = this.forecastValue;\n let year = Number.parseInt(this.dateObj.date);\n\n let timeStampVal = 0;\n let label = \"\";\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n\n\n let date = new Date(year, month, 1, 12, 0, 0, 0);\n let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n let fiscal_year_back = this.fiscalYearBack || false;\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 timeStampVal = date.getTime() / 1000;\n label = this.getForecastLabelFromValue(timeStampVal, fiscal_year_starts_from, fiscal_year_back);\n }\n\n const resultTag: IDateTag = {\n \"name\": this.name,\n \"value\": timeStampVal,\n \"label\": label,\n \"locked\": !this.dateFilter(timeStampVal)\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter = (date) => {\n const forecastDate = moment.unix(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n return status = !(locked.month() === forecastDate.month() && locked.year() === forecastDate.year());\n });\n\n return status;\n }\n}\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\nimport {Moment} from \"moment\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatDatepicker} from \"@angular/material/datepicker\";\nimport {FormControl} from \"@angular/forms\";\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// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(this.defaultValue * 1000).utc().format(\"YYYY-MM\");\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format(\"YYYY-MM\");\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Month and Year\";\n }\n }\n\n chosenTagHandler(value) {\n const resultDate: Moment = moment.utc(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: resultDate.format(\"MMMM YYYY\"),\n locked: !this.dateFilter(value)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>) {\n this.date.setValue(normalizedMonth);\n this.dateObj.date = this.date.value;\n\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDate.year() && lockDate.month() === calendarDate.month());\n });\n\n return status;\n }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatSelectChange} from \"@angular/material/select\";\n// @ts-ignore\nconst moment = require(\"moment\");\n\n@Component({\n templateUrl: \"quarter-tag.component.html\",\n selector: \"quarter-tag\",\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit {\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n quarter.disable = false;\n\n if (quarter.isSelected) {\n this.selectedValue = quarter.value;\n this.chosenTagHandler(quarter.value);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Quarter\";\n }\n }\n\n changeSelectHandler(event: MatSelectChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n const date = new Date(value * 1000);\n const resultDate: Moment = moment.utc(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(value)\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, 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 });\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 = (date) => {\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n const quarterDate = moment.unix(date.value);\n\n if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {\n date.disable = true;\n status = false;\n }\n });\n\n return status;\n }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {FormControl} from \"@angular/forms\";\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// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n selectedValue = \"\";\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n\n const dateUnix = this.getUTCTimestamp(this.getMonday(now));\n let default_value_time = dateUnix;\n const one_day_in_seconds = 86400;\n if (this.defaultValue) {\n default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;\n }\n\n const default_date = new Date(default_value_time);\n const weekNumber = this.getWeekNumberByDate(default_date);\n const yearNumber = default_date.getFullYear();\n const dateStr = `${yearNumber}-W${weekNumber}`;\n this.dateObj.date = dateStr;\n this.selectedValue = dateStr;\n this.chosenTagHandler(default_date);\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Week\";\n }\n }\n\n chosenDateHandler(normalizedDay) {\n const date = moment(normalizedDay).unix();\n this.chosenTagHandler(date);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());\n });\n\n return status;\n }\n\n chosenTagHandler(value) {\n let date;\n console.log(\"chosenTag\", value);\n if (value > 1000000000000) {\n date = new Date(value);\n } else {\n date = new Date(value * 1000);\n }\n\n const resultDate: Moment = moment(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: this.getWeekLabel(date),\n locked: !this.dateFilter(value)\n };\n console.log(\"resultTag\", resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(date) {\n return \"W\" + this.pad( moment(date).isoWeek(), 2) +\n \" \" + moment(date).year();\n }\n\n private getUTCTimestamp(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);\n }\n\n private getMonday(date) {\n const day = date.getDay() || 7;\n if (day !== 1) {\n date.setHours(-24 * (day - 1));\n }\n return date;\n }\n\n private getWeekNumberByDate(date: Date) {\n return this.pad(moment(date).isoWeek(), 2);\n }\n\n private pad(n, width, z = \"0\") {\n z = z || \"0\";\n n = n + \"\";\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {FormControl} from \"@angular/forms\";\nimport {MatDatepicker} from \"@angular/material/datepicker\";\nimport {Moment} from \"moment\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {AnyTagComponent} from \"../date-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// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format(\"YYYY\");\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format(\"YYYY\");\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Year\";\n }\n }\n\n chosenTagHandler(value) {\n const date = new Date();\n const year = moment(value).year();\n date.setTime(0);\n date.setFullYear(year, 0, 1);\n const resultDate: Moment = moment.utc(date);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: resultDate.format(\"YYYY\"),\n locked: !this.dateFilter(value)\n };\n console.log(\"resultTag\", resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<Moment>) {\n const ctrlValue = this.date.value;\n ctrlValue.year(normalizedYear.year());\n\n this.date.setValue(ctrlValue);\n this.dateObj.date = this.date.value;\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDateYear = moment(date).year();\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDateYear)\n });\n\n return status;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {IDateTag, IListTag, ITag, ITagForServer} from \"../models/serverTags\";\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 {\n @Input() tagConfig: ITag;\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n\n defaultValue: string | undefined;\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: \"\"\n };\n }\n\n ngOnInit() {\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 let resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n let 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}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {IDateTag, IListTag} from \"../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {MatSelectChange} from \"@angular/material/select\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\nimport * as momentImported from \"moment\"; const moment = momentImported;\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: string = \"\";\n @Input() name: string;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n changeInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== \"\") {\n const resultTag: IListTag = {\n name: this.name,\n value: value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import {Component, Input} from \"@angular/core\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatDatepicker} from \"@angular/material/datepicker\";\nimport {FormControl} from \"@angular/forms\";\nimport {MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS} from \"@angular/material-moment-adapter\";\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from \"@angular/material/core\";\n// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n const utcOffsetInMilliseconds = moment().utcOffset() * 60 * 1000;\n this.dateObj.date = moment(moment().valueOf() + utcOffsetInMilliseconds);\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc();\n this.date.setValue(this.dateObj.date);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Day\";\n }\n }\n\n chosenTagHandler(value) {\n const date = moment(value).unix();\n const resultTag: IDateTag = {\n name: this.name,\n value: date,\n label: moment.unix(date).format(\"MM/DD/YYYY\"),\n locked: !this.dateFilter(value)\n };\n console.log(\"resultTag\", resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenDateHandler(normalizedDay) {\n this.chosenTagHandler(normalizedDay);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date).unix();\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n return status = !(timestamp === calendarDate);\n });\n\n return status;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input, Output,\n} 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 @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n private _disabled: boolean = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {});\n onTouched: any = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\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 _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n PLATFORM_ID,\n Inject,\n ElementRef,\n} from '@angular/core';\nimport { 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';\nimport { DOCUMENT } from '@angular/common';\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 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 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 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 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 protected onTouched = () => {};\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\n .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 )\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 if (radio.value === this.value) {\n radio.modelValue = radio.value;\n }\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))\n .pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\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')\n .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 )\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 ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\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 {\n @Input() checkedStatus: boolean;\n @Input() disabled = false;\n @Input() icon: 'cross' | '' = '';\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n private _indeterminate: boolean = false;\n @Output() checkedChange = new EventEmitter();\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\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 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","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n ElementRef,\n forwardRef, HostBinding, AfterViewInit, Renderer2, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef,\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 _clearable = false;\n @Input() set disabled(value) {\n this.setDisabledState(value);\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 @Input() type: string = 'string';\n @Input() name: string;\n @Input() placeholder: string = '';\n @Input() readonly = false;\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 @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Output() blur = new EventEmitter();\n @Output() ngModelDebounceChange = 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: Function;\n globalListenFunc: Function;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\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 onTouched: () => void = () => {};\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\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\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.clearable) {\n this._elementClass.push('clearable');\n }\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n if (this.type === 'search') {\n this._elementClass.push('search-type');\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($event: any) {\n this.searchHandler.emit($event);\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 $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n}\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ElementRef, HostBinding } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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\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\n @Input() className: string;\n @Input() items: 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() 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() set textView(val: boolean) {\n this.asTextView = val;\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\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: boolean = 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 onTouched: () => void = () => {};\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 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\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 @Input() set users(users: any[] | object) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = index % 5;\n }\n });\n }\n }\n @Input() warning: boolean = false;\n @Input() showUnassigned: boolean = false;\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\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","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 { animate, style, transition } from '@angular/animations';\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","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\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 isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() { }\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","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnInit, 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';\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 @Input('drTooltipPosition')\n position = 'top';\n @Input('drTooltipClass')\n class = '';\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = POPUP_POSITIONS[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 }\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\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) { }\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 this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\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\n .flexibleConnectedTo(this.elementRef)\n .withPositions([POPUP_POSITIONS[this.position]]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n this.createOverlay();\n if (!this.overlayRef?.hasAttached() && this.content) {\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\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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n HostBinding,\n AfterViewInit\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 @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {return this._elementClass.join(' ');}\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\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 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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, forwardRef,\n Input,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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() selectedValue: boolean;\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\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 setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n this.selectedValue = item[this.bindValue] || item;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\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","export enum SpinnerType {\n LOGO = 'logo',\n CIRCLE = 'circle',\n}\n\nexport enum SpinnerSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n GIANT = 'giant',\n}\n\nexport interface ISpinnerOptions extends DOMRect {\n spinnerType?: SpinnerType,\n spinnerSize?: SpinnerSize,\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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 = SpinnerSize.MEDIUM;\n @Input() drSpinnerType: SpinnerType = SpinnerType.LOGO;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n @Inject(DOCUMENT) private _document: any) {\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});\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n let componentFactory: ComponentFactory<DrSpinnerComponent>;\n componentFactory = 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 { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\ntype ButtonType = 'primary' | 'secondary' | 'danger' | 'primary-icon' |\n 'secondary-icon' | 'icon' | 'primary-square' | 'ghost' | 'link-btn' | 'text-link' | 'simple-text' |\n 'split-primary-first' | 'split-primary-last' | 'split-secondary-first' | 'split-secondary-last' | 'dropdown';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n _disabled = null;\n _isLoading = false;\n _elementClass: string[] = [];\n\n @Input() title: string;\n @Input() theme: ButtonType = 'primary';\n @Input() icon: string;\n @Input() iconAfterLabel: string;\n @Input() isBold: boolean = false;\n @Input() iconColor: string;\n @Input() set disabled(value) {\n if (value) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = value;\n }\n @Input() set isLoading(value) {\n if (value) {\n this._elementClass.push('loading');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'loading');\n }\n this._isLoading = !!value;\n }\n @Output() click = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n constructor() { }\n\n public onClick($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n// Examples:\n/*\n<dr-button [icon]=\"'dr-icon-arrow-down'\">hello</dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [isDisabled]=\"true\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [theme]=\"'secondary'\" [icon]=\"'dr-icon-excel'\" [iconColor]=\"'#03A678'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'secondary-icon'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-share'\" [theme]=\"'icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'icon'\"></dr-button>\n\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\">Primary</dr-button>\n<dr-button [isDisabled]=\"false\" >Primary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary'\">Secondary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'ghost'\">Ghost</dr-button>\n<dr-button [isDisabled]=\"false\" [theme]=\"'text-link'\">Text Link</dr-button>\n*/\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Subject, Observable } 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 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}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: 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 function 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 ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n HostListener,\n Input,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n OnInit,\n ChangeDetectionStrategy,\n HostBinding,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { IPopoverManualClosing, Point, DrPopoverAlignment, getAlignmentDimension } 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 @Input() content: TemplateRef<any> | Type<T>;\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\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 componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) { }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\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.cdr.detectChanges();\n }\n\n}\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 { Injectable, Injector, StaticProvider, TemplateRef, Type, ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension, IDrPopoverComponentModel, Point } 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 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 }: 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 }\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 config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {}};\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(popoverModel.hostRef)\n .withPositions([POPUP_POSITIONS[popoverModel.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 { OverlayConfig } from '@angular/cdk/overlay';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { IPopoverManualClosing, DrPopoverAlignment } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: Object = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class: string = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\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 });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\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 { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { IDropdownItem, ElPosition, IDropdownActionIcon, IDropdown, IDropdownCoordinate } 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: boolean = 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.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","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 { IDropdownItem, ElPosition, IDropdown } 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 let componentFactory: ComponentFactory<DrDropdownComponent>;\n componentFactory = 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 { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { IDropdownCoordinate, ElPosition } 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 let 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 this.renderer.setStyle(this.el.nativeElement, 'transform',\n 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`);\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 { Component, OnInit, Input, ViewChild, TemplateRef } 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() disabled: boolean;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() { }\n ngOnInit() {\n }\n\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n Input,\n EventEmitter,\n Output,\n} 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\n @Input() selectedTab: number = 0;\n @Input() withRadio: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor() { }\n\n selectedIndexChange($event) {\n this.selectedTab = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","import { Component, ChangeDetectionStrategy, 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 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 Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n SimpleChanges,\n HostBinding,\n Host,\n OnInit,\n OnChanges,\n OnDestroy,\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 * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\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 set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\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\n .pipe(takeUntil(this.destroy$))\n .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 Component,\n ChangeDetectionStrategy,\n Host,\n HostBinding,\n HostListener,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { trigger, state, style, animate, transition } 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\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Host,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { trigger, state, style, animate, transition } 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 get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate\n .pipe(takeUntil(this.destroy$))\n .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","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","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","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DrErrorComponent implements OnDestroy {\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n private destroyed$ = new Subject<void> ();\n public _control: FormControl;\n @Input() set control(value: FormControl) {\n if (value) {\n this._control = value;\n this.cdr.markForCheck();\n this._control.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n }\n @Input() label = 'Field error';\n\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 ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Component,\n Inject,\n ViewChild,\n ViewContainerRef,\n ComponentFactoryResolver,\n ComponentFactory,\n AfterViewInit,\n HostBinding,\n ChangeDetectorRef, OnDestroy\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/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') class: SizeModal = this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\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 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","import { Component, OnInit, Inject, HostBinding, OnDestroy } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DataProp } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } 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 @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\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) {\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\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\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)\n .pipe(\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 )\n .subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\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","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, ConfirmDialogData, 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 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","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 { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> {\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 };\n panelClass?: string | string[];\n disableClose?: boolean;\n maxWidth?: number | string;\n maxHeight?: number | string;\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}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\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: 'input' | 'select';\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}\n\nexport type SizeModal = 'small-modal' | 'medium-modal' | 'medium-large-modal' | 'large-modal' | 'xl-modal' | 'xl-custom-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 loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n MEDIUM = 'medium-modal',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-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}\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, 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\n @Input() debounce: number = 200;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges\n .pipe(skip(1), debounceTime(this.debounce), distinctUntilChanged())\n .subscribe(value => this.ngModelDebounceChange.emit(value));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\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 { dateInput: string; }\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string,\n dateA11yLabel?: string,\n monthYearA11yLabel?: string,\n quarterYearA11yLabel?: string,\n yearLabel?: string,\n quarterYearLabel?: string\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 type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n","import { NgModule } from \"@angular/core\";\nimport { AnyTagComponent, 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 { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from \"@angular/material-moment-adapter\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatNativeDateModule } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatSelectModule } from \"@angular/material/select\";\n\nexport const components = [DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n MatNativeDateModule,\n MatDatepickerModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatMomentDateModule,\n MatSelectModule\n ],\n exports: components,\n providers: [\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n ],\n declarations: components,\n})\n\nexport class DateTagModule { };\n","import {NgModule} from \"@angular/core\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule} from \"@angular/material-moment-adapter\";\nimport {ListTagComponent} from \"./list-tag.component\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {MatSelectModule} from \"@angular/material/select\";\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatMomentDateModule,\n MatSelectModule,\n MatButtonToggleModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {}\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\";\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule\n ],\n exports: [DrTagComponent],\n providers: [\n ],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {}\n","import { TimeframeOption } from '../models/datePicker';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\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","import { Injectable } from \"@angular/core\";\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { IDatePickerFormatConfig, DateFromats, TTimeframeOption, TimeframeOption } from \"../../../models/datePicker\";\nimport { DrSharedUtils } from \"../../../utils/dr-shared-utils\";\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 datePickerInstance: MatDatepicker<any>;\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 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","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { take, takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS} from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, TCalendarView, TimeframeOption } from \"../../../models/datePicker\";\nimport { DrDatePickerService } from \"../services/dr-date-picker.service\";\n\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption,\n title: string,\n value: TCalendarView,\n format: string,\n periodLabel: () => string\n}\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 {\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\n .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)\n .toLocaleUpperCase()\n },{\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter\n .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)\n .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).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._calendar.activeDate).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._calendar.activeDate).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\n public readonly calendarView = CalendarView;\n\n constructor(\n private _calendar: MatCalendar<Moment>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$\n .pipe(takeUntil(this._destroyed))\n .subscribe( value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format == value)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\n }\n });\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.calendarInstance = _calendar;\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.slice(0,3);\n this.periodYearLabel = fullPeriodLabel.slice(4);\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe() {\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 = moment(this._calendar.activeDate).quarter();\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 const monthsInQuarter = 3;\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\n\n const unadaptedDate = this._dateAdapter.addCalendarMonths(this._calendar.activeDate,\n monthsInQuarter * (quarterNumber - this.selectedQuarter));\n this._calendar.activeDate = unadaptedDate;\n this.datePickerService.updatedQuarter$.next(moment(unadaptedDate));\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n this.pagingSetup[this._calendar.currentView] && this.pagingSetup[this._calendar.currentView](forward);\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","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, ViewChild } 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';\n\nconst moment = require('moment');\nconst noop = () => {};\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: DrDatePickerService }\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\n @Input() set format(value) {\n this.datePickerService.updateTimeframeAndFormat(value);\n }\n @Input() set min(minDate: number) {\n this._min = moment.unix(minDate).utc();\n }\n @Input() set max(maxDate: number) {\n this._max = moment.unix(maxDate).utc();\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: string = 'Select';\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$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\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 /**\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 this.innerValue.startOf(timeframe);\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n this.innerValue.endOf(timeframe);\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n this.innerValue.startOf(timeframe);\n const endOfPeriod = this.innerValue.clone().endOf(timeframe);\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 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 this.innerValue = value ? moment.unix(value).utc() : value;\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 public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Set inner value from Moment and propagate\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 * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { 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 { IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { takeUntil } from 'rxjs/operators';\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: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n @Input() set dateFormatConfig (value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n @Input() canSelectTimeframe = true;\n @Input() set availableTimeframes (value: TimeframeOption[]){\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n}\n\n @Output() onChangeFormat = new EventEmitter<string>();\n\n public readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.pagingDateChange('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.pagingDateChange('addCalendarDays', 7, forward)\n }\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + this.value.format(formatCached);\n \n }\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$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n }\n\n pagingClicked(forward: boolean): void {\n this.pagingSetup[this.datePickerService.timeframe] && this.pagingSetup[this.datePickerService.timeframe](forward);\n this.datePicker.close();\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n const newValue = this.dateAdapter[actionCall](this.innerValue, forward ? amount : -amount);\n this.setValueFromMoment(newValue);\n }\n}\n","import {\n Directive,\n Inject,\n Input,\n Optional\n} 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 { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { ITimeframeOption } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\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}","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 { DrDatePickerService } from './date-pickers/services/dr-date-picker.service';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\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 DrModelDebounceChangeDirective,\n DrShowTimeframePipe\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatDatepickerModule\n ]\n})\n\nexport class DrInputsModule {\n\n}\n","import { Component, ChangeDetectionStrategy, 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\n constructor() {\n }\n\n}\n","import { Component, ChangeDetectionStrategy, 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","import { Component, OnInit, ChangeDetectionStrategy, Input } 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","import { Component, ChangeDetectionStrategy, 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 { 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';\n\nconst TOOLTIP_COMPONENTS = [\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","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatTooltipModule } from '@angular/material/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 { 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","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","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","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';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {}\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","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","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","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild\n} 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 {\n\n @Input() steps: Step[];\n @Input() currentStep: Step;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Output() stepChange: EventEmitter<Step> = new EventEmitter<Step>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<any>;\n\n constructor() {\n }\n\n selectStep(step: Step): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: Step): 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","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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/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';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule\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","/* components */\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-select/dr-select.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';\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';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.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';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer } 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';\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 { 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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {components as ɵa} from './lib/date-tags/date-tag.module';\nexport {DialogModalWrapperComponent as ɵo} from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nexport {DialogWrapperComponent as ɵn} from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport {DrDatePickerFormatDirective as ɵf} from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport {DrDatePickerWithTimeframeComponent as ɵe} from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport {DrDatePickerComponent as ɵc} from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport {DrDatePickerCustomHeaderComponent as ɵg} from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {DrShowTimeframePipe as ɵh} from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport {DrDatePickerService as ɵd} from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';\nexport {TooltipInfoSimpleComponent as ɵj} from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport {TooltipInfoComponent as ɵi} from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport {TooltipNoBodyComponent as ɵk} from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport {TooltipProcessDefaultComponent as ɵl} from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {StepperComponent as ɵm} from './lib/stepper/stepper.component';"],"names":["moment","noop","components"],"mappings":"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"}
1
+ {"version":3,"file":"datarailsshared-datarailsshared.js","sources":["../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../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/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/models/spinnerOptions.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../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.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.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.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-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../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-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/models/datePicker.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-tags/dr-tag.module.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/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/dr-date-picker.component.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/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../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.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {IDateTag} from \"../models/serverTags\";\n// import {*} from \"\"\n@Component({\n templateUrl: \"date-tag.component.html\",\n selector: \"date-tag\",\n styleUrls: [\"date-tag.component.css\", \"../../../../../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() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n\n constructor() {\n }\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log(\"change date\", date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\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 dateObj = {date: undefined};\n\n constructor() {\n }\n\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\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\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","import {Component, Input} from \"@angular/core\";\nimport {Moment} from \"moment\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatSelectChange} from \"@angular/material/select\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\n// @ts-ignore\nconst moment = require(\"moment\");\n\n@Component({\n templateUrl: \"forecast-tag.component.html\",\n selector: \"forecast-tag\",\n})\n\nexport class ForecastTagComponent extends AnyTagComponent {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n forecastValue: number | undefined = undefined;\n\n forecastTags: any[] = [\n {\"value\": 0, \"label\": \"0+12\"},\n {\"value\": 1, \"label\": \"1+11\"},\n {\"value\": 2, \"label\": \"2+10\"},\n {\"value\": 3, \"label\": \"3+9\"},\n {\"value\": 4, \"label\": \"4+8\"},\n {\"value\": 5, \"label\": \"5+7\"},\n {\"value\": 6, \"label\": \"6+6\"},\n {\"value\": 7, \"label\": \"7+5\"},\n {\"value\": 8, \"label\": \"8+4\"},\n {\"value\": 9, \"label\": \"9+3\"},\n {\"value\": 10, \"label\": \"10+2\"},\n {\"value\": 11, \"label\": \"11+1\"}\n ];\n\n constructor() {\n super();\n }\n\n initDate() {\n let dateVal = new Date();\n if (this.defaultValue) {\n dateVal = new Date(this.defaultValue * 1000);\n }\n let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n let fiscal_year_back = this.fiscalYearBack || false;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n let fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\n\n console.log(\"test\", dateVal, fiscal_year_starts_from, this.forecastValue, fiscal_year);\n\n this.dateObj.date = moment(new Date(fiscal_year, 0, 1)).format(\"YYYY\");\n\n this.updateLockedDate();\n }\n\n updateLockedDate() {\n for (let forecastTag of this.forecastTags) {\n forecastTag.disable = false;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n if (locked.month() - 1 === forecastTag.value && +locked.year() + 1 === +this.dateObj.date) {\n forecastTag.disable = true;\n }\n });\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Forecast\";\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n let 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.getMonth() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.getFullYear();\n\n if (!fiscal_year_back) {\n if (dateObj.getMonth() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.getMonth() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n getForecastLabelFromValue(value, fiscal_year_starts_from, fiscal_year_back) {\n let label = \"\";\n if (value) {\n let dateObj = new Date(value * 1000);\n\n let fiscal_month = this.getFiscalMonthFromDate(dateObj, fiscal_year_starts_from);\n let fiscal_year = this.getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back);\n\n label = (fiscal_month - 1) + \"+\" + (13 - fiscal_month) + \" (\" + fiscal_year + \")\";\n }\n return label;\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 let month = this.forecastValue;\n let year = Number.parseInt(this.dateObj.date);\n\n let timeStampVal = 0;\n let label = \"\";\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n\n\n let date = new Date(year, month, 1, 12, 0, 0, 0);\n let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n let fiscal_year_back = this.fiscalYearBack || false;\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 timeStampVal = date.getTime() / 1000;\n label = this.getForecastLabelFromValue(timeStampVal, fiscal_year_starts_from, fiscal_year_back);\n }\n\n const resultTag: IDateTag = {\n \"name\": this.name,\n \"value\": timeStampVal,\n \"label\": label,\n \"locked\": !this.dateFilter(timeStampVal)\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter = (date) => {\n const forecastDate = moment.unix(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n return status = !(locked.month() === forecastDate.month() && locked.year() === forecastDate.year());\n });\n\n return status;\n }\n}\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\nimport {Moment} from \"moment\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatDatepicker} from \"@angular/material/datepicker\";\nimport {FormControl} from \"@angular/forms\";\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// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(this.defaultValue * 1000).utc().format(\"YYYY-MM\");\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format(\"YYYY-MM\");\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Month and Year\";\n }\n }\n\n chosenTagHandler(value) {\n const resultDate: Moment = moment.utc(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: resultDate.format(\"MMMM YYYY\"),\n locked: !this.dateFilter(value)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>) {\n this.date.setValue(normalizedMonth);\n this.dateObj.date = this.date.value;\n\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDate.year() && lockDate.month() === calendarDate.month());\n });\n\n return status;\n }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatSelectChange} from \"@angular/material/select\";\n// @ts-ignore\nconst moment = require(\"moment\");\n\n@Component({\n templateUrl: \"quarter-tag.component.html\",\n selector: \"quarter-tag\",\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit {\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n quarter.disable = false;\n\n if (quarter.isSelected) {\n this.selectedValue = quarter.value;\n this.chosenTagHandler(quarter.value);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Quarter\";\n }\n }\n\n changeSelectHandler(event: MatSelectChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n const date = new Date(value * 1000);\n const resultDate: Moment = moment.utc(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(value)\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, 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 });\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 = (date) => {\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n const quarterDate = moment.unix(date.value);\n\n if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {\n date.disable = true;\n status = false;\n }\n });\n\n return status;\n }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {FormControl} from \"@angular/forms\";\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// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n selectedValue = \"\";\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n\n const dateUnix = this.getUTCTimestamp(this.getMonday(now));\n let default_value_time = dateUnix;\n const one_day_in_seconds = 86400;\n if (this.defaultValue) {\n default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;\n }\n\n const default_date = new Date(default_value_time);\n const weekNumber = this.getWeekNumberByDate(default_date);\n const yearNumber = default_date.getFullYear();\n const dateStr = `${yearNumber}-W${weekNumber}`;\n this.dateObj.date = dateStr;\n this.selectedValue = dateStr;\n this.chosenTagHandler(default_date);\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Week\";\n }\n }\n\n chosenDateHandler(normalizedDay) {\n const date = moment(normalizedDay).unix();\n this.chosenTagHandler(date);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());\n });\n\n return status;\n }\n\n chosenTagHandler(value) {\n let date;\n console.log(\"chosenTag\", value);\n if (value > 1000000000000) {\n date = new Date(value);\n } else {\n date = new Date(value * 1000);\n }\n\n const resultDate: Moment = moment(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: this.getWeekLabel(date),\n locked: !this.dateFilter(value)\n };\n console.log(\"resultTag\", resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(date) {\n return \"W\" + this.pad( moment(date).isoWeek(), 2) +\n \" \" + moment(date).year();\n }\n\n private getUTCTimestamp(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);\n }\n\n private getMonday(date) {\n const day = date.getDay() || 7;\n if (day !== 1) {\n date.setHours(-24 * (day - 1));\n }\n return date;\n }\n\n private getWeekNumberByDate(date: Date) {\n return this.pad(moment(date).isoWeek(), 2);\n }\n\n private pad(n, width, z = \"0\") {\n z = z || \"0\";\n n = n + \"\";\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n}\n","import {Component, Input, OnInit} from \"@angular/core\";\nimport {FormControl} from \"@angular/forms\";\nimport {MatDatepicker} from \"@angular/material/datepicker\";\nimport {Moment} from \"moment\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {AnyTagComponent} from \"../date-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// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format(\"YYYY\");\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format(\"YYYY\");\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Year\";\n }\n }\n\n chosenTagHandler(value) {\n const date = new Date();\n const year = moment(value).year();\n date.setTime(0);\n date.setFullYear(year, 0, 1);\n const resultDate: Moment = moment.utc(date);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format(\"X\"), 10),\n label: resultDate.format(\"YYYY\"),\n locked: !this.dateFilter(value)\n };\n console.log(\"resultTag\", resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<Moment>) {\n const ctrlValue = this.date.value;\n ctrlValue.year(normalizedYear.year());\n\n this.date.setValue(ctrlValue);\n this.dateObj.date = this.date.value;\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDateYear = moment(date).year();\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDateYear)\n });\n\n return status;\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {IDateTag, IListTag, ITag, ITagForServer} from \"../models/serverTags\";\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 {\n @Input() tagConfig: ITag;\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n\n defaultValue: string | undefined;\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: \"\"\n };\n }\n\n ngOnInit() {\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 let resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n let 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}\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\nimport {IDateTag, IListTag} from \"../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {MatSelectChange} from \"@angular/material/select\";\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\nimport * as momentImported from \"moment\"; const moment = momentImported;\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: string = \"\";\n @Input() name: string;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n changeInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== \"\") {\n const resultTag: IListTag = {\n name: this.name,\n value: value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import {Component, Input} from \"@angular/core\";\nimport {IDateTag} from \"../../models/serverTags\";\nimport {Moment} from \"moment\";\nimport {AnyTagComponent} from \"../date-tag.component\";\nimport {MatDatepicker} from \"@angular/material/datepicker\";\nimport {FormControl} from \"@angular/forms\";\nimport {MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS} from \"@angular/material-moment-adapter\";\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from \"@angular/material/core\";\n// @ts-ignore\nconst moment = require(\"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 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 @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n const utcOffsetInMilliseconds = moment().utcOffset() * 60 * 1000;\n this.dateObj.date = moment(moment().valueOf() + utcOffsetInMilliseconds);\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc();\n this.date.setValue(this.dateObj.date);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = \"Day\";\n }\n }\n\n chosenTagHandler(value) {\n const date = moment(value).unix();\n const resultTag: IDateTag = {\n name: this.name,\n value: date,\n label: moment.unix(date).format(\"MM/DD/YYYY\"),\n locked: !this.dateFilter(value)\n };\n console.log(\"resultTag\", resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenDateHandler(normalizedDay) {\n this.chosenTagHandler(normalizedDay);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date).unix();\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n return status = !(timestamp === calendarDate);\n });\n\n return status;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input, Output,\n} 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 @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n private _disabled: boolean = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {});\n onTouched: any = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\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 _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n PLATFORM_ID,\n Inject,\n ElementRef,\n} from '@angular/core';\nimport { 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';\nimport { DOCUMENT } from '@angular/common';\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 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 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 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 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 protected onTouched = () => {};\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\n .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 )\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))\n .pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\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')\n .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 )\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 ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\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 {\n @Input() checkedStatus: boolean;\n @Input() disabled = false;\n @Input() icon: 'cross' | '' = '';\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n private _indeterminate: boolean = false;\n @Output() checkedChange = new EventEmitter();\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\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 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","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChild,\n ElementRef,\n forwardRef, HostBinding, AfterViewInit, Renderer2, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef,\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 _clearable = false;\n @Input() set disabled(value) {\n this.setDisabledState(value);\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 @Input() type: string = 'string';\n @Input() name: string;\n @Input() placeholder: string = '';\n @Input() readonly = false;\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 @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Output() blur = new EventEmitter();\n @Output() ngModelDebounceChange = 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: Function;\n globalListenFunc: Function;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\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 onTouched: () => void = () => {};\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\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\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.clearable) {\n this._elementClass.push('clearable');\n }\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n if (this.type === 'search') {\n this._elementClass.push('search-type');\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($event: any) {\n this.searchHandler.emit($event);\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 $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n}\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ElementRef, HostBinding } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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\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\n @Input() className: string;\n @Input() items: 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() 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() set textView(val: boolean) {\n this.asTextView = val;\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\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: boolean = 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 onTouched: () => void = () => {};\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 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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\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 @Input() set users(users: any[] | object) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = index % 5;\n }\n });\n }\n }\n @Input() warning: boolean = false;\n @Input() showUnassigned: boolean = false;\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\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","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 { animate, style, transition } from '@angular/animations';\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","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\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 isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() { }\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","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnInit, 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';\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 @Input('drTooltipPosition')\n position = 'top';\n @Input('drTooltipClass')\n class = '';\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = POPUP_POSITIONS[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 }\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\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) { }\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 this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\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\n .flexibleConnectedTo(this.elementRef)\n .withPositions([POPUP_POSITIONS[this.position]]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n this.createOverlay();\n if (!this.overlayRef?.hasAttached() && this.content) {\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\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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n HostBinding,\n AfterViewInit\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 @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {return this._elementClass.join(' ');}\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\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 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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, forwardRef,\n Input,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\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() selectedValue: boolean;\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\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 setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n this.selectedValue = item[this.bindValue] || item;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\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","export enum SpinnerType {\n LOGO = 'logo',\n CIRCLE = 'circle',\n}\n\nexport enum SpinnerSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n GIANT = 'giant',\n}\n\nexport interface ISpinnerOptions extends DOMRect {\n spinnerType?: SpinnerType,\n spinnerSize?: SpinnerSize,\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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 = SpinnerSize.MEDIUM;\n @Input() drSpinnerType: SpinnerType = SpinnerType.LOGO;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n @Inject(DOCUMENT) private _document: any) {\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});\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n let componentFactory: ComponentFactory<DrSpinnerComponent>;\n componentFactory = 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 { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\ntype ButtonType = 'primary' | 'secondary' | 'danger' | 'primary-icon' |\n 'secondary-icon' | 'icon' | 'primary-square' | 'ghost' | 'link-btn' | 'text-link' | 'simple-text' |\n 'split-primary-first' | 'split-primary-last' | 'split-secondary-first' | 'split-secondary-last' | 'dropdown';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n _disabled = null;\n _isLoading = false;\n _elementClass: string[] = [];\n\n @Input() title: string;\n @Input() theme: ButtonType = 'primary';\n @Input() icon: string;\n @Input() iconAfterLabel: string;\n @Input() isBold: boolean = false;\n @Input() iconColor: string;\n @Input() set disabled(value) {\n if (value) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = value;\n }\n @Input() set isLoading(value) {\n if (value) {\n this._elementClass.push('loading');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'loading');\n }\n this._isLoading = !!value;\n }\n @Output() click = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n constructor() { }\n\n public onClick($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n// Examples:\n/*\n<dr-button [icon]=\"'dr-icon-arrow-down'\">hello</dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [isDisabled]=\"true\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [theme]=\"'secondary'\" [icon]=\"'dr-icon-excel'\" [iconColor]=\"'#03A678'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'secondary-icon'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-share'\" [theme]=\"'icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'icon'\"></dr-button>\n\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\">Primary</dr-button>\n<dr-button [isDisabled]=\"false\" >Primary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary'\">Secondary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'ghost'\">Ghost</dr-button>\n<dr-button [isDisabled]=\"false\" [theme]=\"'text-link'\">Text Link</dr-button>\n*/\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Subject, Observable } 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 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}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: 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 function 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 ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n HostListener,\n Input,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n OnInit,\n ChangeDetectionStrategy,\n HostBinding,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { IPopoverManualClosing, Point, DrPopoverAlignment, getAlignmentDimension } 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 @Input() content: TemplateRef<any> | Type<T>;\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\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 componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) { }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\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.cdr.detectChanges();\n }\n\n}\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 { Injectable, Injector, StaticProvider, TemplateRef, Type, ElementRef } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension, IDrPopoverComponentModel, Point } 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 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 }: 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 }\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 config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {}};\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(popoverModel.hostRef)\n .withPositions([POPUP_POSITIONS[popoverModel.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 { OverlayConfig } from '@angular/cdk/overlay';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { IPopoverManualClosing, DrPopoverAlignment } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: Object = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class: string = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\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 });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\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 { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { IDropdownItem, ElPosition, IDropdownActionIcon, IDropdown, IDropdownCoordinate } 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: boolean = 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.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","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 { IDropdownItem, ElPosition, IDropdown } 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 let componentFactory: ComponentFactory<DrDropdownComponent>;\n componentFactory = 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 { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { IDropdownCoordinate, ElPosition } 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 let 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 this.renderer.setStyle(this.el.nativeElement, 'transform',\n 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`);\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 { Component, OnInit, Input, ViewChild, TemplateRef } 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() disabled: boolean;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() { }\n ngOnInit() {\n }\n\n}\n","import {\n Component,\n ContentChildren,\n QueryList,\n Input,\n EventEmitter,\n Output,\n} 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\n @Input() selectedTab: number = 0;\n @Input() withRadio: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor() { }\n\n selectedIndexChange($event) {\n this.selectedTab = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","import { Component, ChangeDetectionStrategy, 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 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 Component,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Input,\n Output,\n EventEmitter,\n SimpleChanges,\n HostBinding,\n Host,\n OnInit,\n OnChanges,\n OnDestroy,\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 * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\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 set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\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\n .pipe(takeUntil(this.destroy$))\n .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 Component,\n ChangeDetectionStrategy,\n Host,\n HostBinding,\n HostListener,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { trigger, state, style, animate, transition } 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\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Host,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { trigger, state, style, animate, transition } 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 get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate\n .pipe(takeUntil(this.destroy$))\n .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","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","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","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DrErrorComponent implements OnDestroy {\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n private destroyed$ = new Subject<void> ();\n public _control: FormControl;\n @Input() set control(value: FormControl) {\n if (value) {\n this._control = value;\n this.cdr.markForCheck();\n this._control.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n }\n @Input() label = 'Field error';\n\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 ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n Component,\n Inject,\n ViewChild,\n ViewContainerRef,\n ComponentFactoryResolver,\n ComponentFactory,\n AfterViewInit,\n HostBinding,\n ChangeDetectorRef, OnDestroy\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/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') class: SizeModal = this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\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 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","import { Component, OnInit, Inject, HostBinding, OnDestroy } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DataProp } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } 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 @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\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) {\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\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\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)\n .pipe(\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 )\n .subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\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","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, ConfirmDialogData, 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 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","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 { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> {\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 };\n panelClass?: string | string[];\n disableClose?: boolean;\n maxWidth?: number | string;\n maxHeight?: number | string;\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}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\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: 'input' | 'select';\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}\n\nexport type SizeModal = 'small-modal' | 'medium-modal' | 'medium-large-modal' | 'large-modal' | 'xl-modal' | 'xl-custom-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 loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n MEDIUM = 'medium-modal',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-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}\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, 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\n @Input() debounce: number = 200;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges\n .pipe(skip(1), debounceTime(this.debounce), distinctUntilChanged())\n .subscribe(value => this.ngModelDebounceChange.emit(value));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\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 { dateInput: string; }\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string,\n dateA11yLabel?: string,\n monthYearA11yLabel?: string,\n quarterYearA11yLabel?: string,\n yearLabel?: string,\n quarterYearLabel?: string\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 type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n","import { NgModule } from \"@angular/core\";\nimport { AnyTagComponent, 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 { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from \"@angular/material-moment-adapter\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatNativeDateModule } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatSelectModule } from \"@angular/material/select\";\n\nexport const components = [DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n MatNativeDateModule,\n MatDatepickerModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatMomentDateModule,\n MatSelectModule\n ],\n exports: components,\n providers: [\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n ],\n declarations: components,\n})\n\nexport class DateTagModule { };\n","import {NgModule} from \"@angular/core\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule} from \"@angular/material-moment-adapter\";\nimport {ListTagComponent} from \"./list-tag.component\";\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\nimport {MatSelectModule} from \"@angular/material/select\";\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatMomentDateModule,\n MatSelectModule,\n MatButtonToggleModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {}\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\";\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule\n ],\n exports: [DrTagComponent],\n providers: [\n ],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {}\n","import { TimeframeOption } from '../models/datePicker';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\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","import { Injectable } from \"@angular/core\";\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { IDatePickerFormatConfig, DateFromats, TTimeframeOption, TimeframeOption } from \"../../../models/datePicker\";\nimport { DrSharedUtils } from \"../../../utils/dr-shared-utils\";\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 datePickerInstance: MatDatepicker<any>;\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 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","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { take, takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS} from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, TCalendarView, TimeframeOption } from \"../../../models/datePicker\";\nimport { DrDatePickerService } from \"../services/dr-date-picker.service\";\n\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption,\n title: string,\n value: TCalendarView,\n format: string,\n periodLabel: () => string\n}\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 {\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\n .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)\n .toLocaleUpperCase()\n },{\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter\n .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)\n .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).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._calendar.activeDate).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._calendar.activeDate).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\n public readonly calendarView = CalendarView;\n\n constructor(\n private _calendar: MatCalendar<Moment>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$\n .pipe(takeUntil(this._destroyed))\n .subscribe( value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format == value)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\n }\n });\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.calendarInstance = _calendar;\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.slice(0,3);\n this.periodYearLabel = fullPeriodLabel.slice(4);\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe() {\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 = moment(this._calendar.activeDate).quarter();\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 const monthsInQuarter = 3;\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\n\n const unadaptedDate = this._dateAdapter.addCalendarMonths(this._calendar.activeDate,\n monthsInQuarter * (quarterNumber - this.selectedQuarter));\n this._calendar.activeDate = unadaptedDate;\n this.datePickerService.updatedQuarter$.next(moment(unadaptedDate));\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n this.pagingSetup[this._calendar.currentView] && this.pagingSetup[this._calendar.currentView](forward);\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","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, ViewChild } 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';\n\nconst moment = require('moment');\nconst noop = () => {};\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: DrDatePickerService }\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\n @Input() set format(value) {\n this.datePickerService.updateTimeframeAndFormat(value);\n }\n @Input() set min(minDate: number) {\n this._min = moment.unix(minDate).utc();\n }\n @Input() set max(maxDate: number) {\n this._max = moment.unix(maxDate).utc();\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: string = 'Select';\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$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\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 /**\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 this.innerValue.startOf(timeframe);\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n this.innerValue.endOf(timeframe);\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n this.innerValue.startOf(timeframe);\n const endOfPeriod = this.innerValue.clone().endOf(timeframe);\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 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 this.innerValue = value ? moment.unix(value).utc() : value;\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 public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Set inner value from Moment and propagate\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 * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { 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 { IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { takeUntil } from 'rxjs/operators';\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: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n @Input() set dateFormatConfig (value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n @Input() canSelectTimeframe = true;\n @Input() set availableTimeframes (value: TimeframeOption[]){\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n}\n\n @Output() onChangeFormat = new EventEmitter<string>();\n\n public readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.pagingDateChange('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.pagingDateChange('addCalendarDays', 7, forward)\n }\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + this.value.format(formatCached);\n \n }\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$\n .pipe(takeUntil(this.destroyed$))\n .subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n }\n\n pagingClicked(forward: boolean): void {\n this.pagingSetup[this.datePickerService.timeframe] && this.pagingSetup[this.datePickerService.timeframe](forward);\n this.datePicker.close();\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n const newValue = this.dateAdapter[actionCall](this.innerValue, forward ? amount : -amount);\n this.setValueFromMoment(newValue);\n }\n}\n","import {\n Directive,\n Inject,\n Input,\n Optional\n} 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 { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { ITimeframeOption } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\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}","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 { DrDatePickerService } from './date-pickers/services/dr-date-picker.service';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\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 DrModelDebounceChangeDirective,\n DrShowTimeframePipe\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatDatepickerModule\n ]\n})\n\nexport class DrInputsModule {\n\n}\n","import { Component, ChangeDetectionStrategy, 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\n constructor() {\n }\n\n}\n","import { Component, ChangeDetectionStrategy, 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","import { Component, OnInit, ChangeDetectionStrategy, Input } 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","import { Component, ChangeDetectionStrategy, 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 { 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';\n\nconst TOOLTIP_COMPONENTS = [\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","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatTooltipModule } from '@angular/material/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 { 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","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","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","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';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {}\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","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","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","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild\n} 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 {\n\n @Input() steps: Step[];\n @Input() currentStep: Step;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Output() stepChange: EventEmitter<Step> = new EventEmitter<Step>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<any>;\n\n constructor() {\n }\n\n selectStep(step: Step): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: Step): 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","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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/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';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule\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","/* components */\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-select/dr-select.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';\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';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.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';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer } 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';\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 { 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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {components as ɵa} from './lib/date-tags/date-tag.module';\nexport {DialogModalWrapperComponent as ɵo} from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nexport {DialogWrapperComponent as ɵn} from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport {DrDatePickerFormatDirective as ɵf} from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport {DrDatePickerWithTimeframeComponent as ɵe} from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport {DrDatePickerComponent as ɵc} from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport {DrDatePickerCustomHeaderComponent as ɵg} from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {DrShowTimeframePipe as ɵh} from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport {DrDatePickerService as ɵd} from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';\nexport {TooltipInfoSimpleComponent as ɵj} from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport {TooltipInfoComponent as ɵi} from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport {TooltipNoBodyComponent as ɵk} from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport {TooltipProcessDefaultComponent as ɵl} from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {StepperComponent as ɵm} from './lib/stepper/stepper.component';"],"names":["moment","noop","components"],"mappings":"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"}