@datarailsshared/datarailsshared 1.3.49 → 1.3.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_datarailsshared.styles.css +3 -3
- package/assets/styles/_styles.scss +2 -2
- package/assets/styles/img/default-avatar.svg +5 -5
- package/bundles/datarailsshared-datarailsshared.umd.js +3984 -3995
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.3.51.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +9 -9
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +9 -9
- package/esm2015/lib/date-tags/date-tag.component.js +70 -70
- package/esm2015/lib/date-tags/date-tag.module.js +50 -50
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +81 -81
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +143 -143
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +87 -87
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +101 -101
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +124 -124
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +93 -93
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +57 -57
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +79 -79
- package/esm2015/lib/dr-accordion/accordion-item.component.js +123 -123
- package/esm2015/lib/dr-accordion/accordion.component.js +43 -43
- package/esm2015/lib/dr-accordion/accordion.module.js +23 -23
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +42 -42
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -26
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +15 -15
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -12
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +97 -97
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +110 -110
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +89 -89
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -34
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -24
- package/esm2015/lib/dr-inputs/button/button.component.js +80 -80
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +63 -63
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +47 -47
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +183 -186
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.service.js +41 -41
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +129 -129
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +185 -185
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +51 -51
- package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +31 -31
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +90 -90
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +64 -64
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +56 -56
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +64 -64
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +164 -164
- package/esm2015/lib/dr-popover/dr-popover-ref.js +20 -20
- package/esm2015/lib/dr-popover/dr-popover.component.js +77 -77
- package/esm2015/lib/dr-popover/dr-popover.directive.js +72 -72
- package/esm2015/lib/dr-popover/dr-popover.module.js +23 -23
- package/esm2015/lib/dr-popover/dr-popover.service.js +102 -102
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +29 -29
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +53 -53
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -18
- package/esm2015/lib/dr-tabs/dr-tab.component.js +23 -23
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +28 -28
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +30 -30
- package/esm2015/lib/dr-tags/dr-tag.component.js +54 -54
- package/esm2015/lib/dr-tags/dr-tag.module.js +22 -22
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +30 -30
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +102 -102
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +23 -23
- package/esm2015/lib/list-tags/list-tag.component.js +41 -41
- package/esm2015/lib/list-tags/list-tag.module.js +29 -29
- package/esm2015/lib/models/constants.js +97 -97
- package/esm2015/lib/models/datePicker.js +40 -40
- package/esm2015/lib/models/dropdown.js +2 -2
- package/esm2015/lib/models/popover.js +27 -27
- package/esm2015/lib/models/serverTags.js +2 -2
- package/esm2015/public-api.js +57 -57
- package/fesm2015/datarailsshared-datarailsshared.js +3365 -3368
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/date-tags/date-tag.component.d.ts +27 -27
- package/lib/date-tags/date-tag.module.d.ts +4 -4
- package/lib/date-tags/day-tag/day-tag.component.d.ts +12 -12
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +21 -21
- package/lib/date-tags/month-tag/month-tag.component.d.ts +14 -14
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +17 -17
- package/lib/date-tags/week-tag/week-tag.component.d.ts +19 -19
- package/lib/date-tags/year-tag/year-tag.component.d.ts +14 -14
- package/lib/dr-accordion/accordion-item-body.component.d.ts +11 -11
- package/lib/dr-accordion/accordion-item-header.component.d.ts +16 -16
- package/lib/dr-accordion/accordion-item.component.d.ts +53 -53
- package/lib/dr-accordion/accordion.component.d.ts +19 -19
- package/lib/dr-accordion/accordion.module.d.ts +2 -2
- package/lib/dr-avatar/dr-avatar.component.d.ts +10 -10
- package/lib/dr-avatar/dr-avatar.module.d.ts +2 -2
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +4 -4
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +5 -5
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +12 -12
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +26 -26
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +23 -23
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +2 -2
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +11 -11
- package/lib/dr-inputs/button/button.component.d.ts +21 -21
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +20 -20
- package/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.d.ts +10 -10
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +54 -54
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.service.d.ts +12 -12
- package/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +41 -41
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +58 -58
- package/lib/dr-inputs/dr-inputs.module.d.ts +2 -2
- package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +11 -11
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +38 -38
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +23 -23
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +19 -19
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +21 -21
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +39 -39
- package/lib/dr-popover/dr-popover-ref.d.ts +16 -16
- package/lib/dr-popover/dr-popover.component.d.ts +26 -26
- package/lib/dr-popover/dr-popover.directive.d.ts +26 -26
- package/lib/dr-popover/dr-popover.module.d.ts +2 -2
- package/lib/dr-popover/dr-popover.service.d.ts +17 -17
- package/lib/dr-spinner/dr-spinner.component.d.ts +10 -10
- package/lib/dr-spinner/dr-spinner.directive.d.ts +15 -15
- package/lib/dr-spinner/dr-spinner.module.d.ts +2 -2
- package/lib/dr-tabs/dr-tab.component.d.ts +8 -8
- package/lib/dr-tabs/dr-tabs.component.d.ts +11 -11
- package/lib/dr-tabs/dr-tabs.module.d.ts +2 -2
- package/lib/dr-tags/dr-tag.component.d.ts +15 -15
- package/lib/dr-tags/dr-tag.module.d.ts +2 -2
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +16 -16
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +23 -23
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +2 -2
- package/lib/list-tags/list-tag.component.d.ts +14 -14
- package/lib/list-tags/list-tag.module.d.ts +2 -2
- package/lib/models/constants.d.ts +87 -87
- package/lib/models/datePicker.d.ts +25 -25
- package/lib/models/dropdown.d.ts +48 -48
- package/lib/models/popover.d.ts +32 -32
- package/lib/models/serverTags.d.ts +28 -28
- package/package.json +1 -1
- package/public-api.d.ts +55 -55
- package/datarailsshared-datarailsshared-1.3.49.tgz +0 -0
|
@@ -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/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.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-inputs/dr-model-debounce-change.directive.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/dr-inputs/dr-inputs.module.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/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {IDateTag} from \"../models/serverTags\";\r\n// import {*} from \"\"\r\n@Component({\r\n templateUrl: \"date-tag.component.html\",\r\n selector: \"date-tag\",\r\n styleUrls: [\"date-tag.component.css\", \"../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DateTagComponent {\r\n @Input() name: string | undefined = undefined;\r\n @Input() lockedDate: any[] = [];\r\n @Input() defaultValue: number | undefined = undefined;\r\n @Input() dateTypeChosen: any = {};\r\n @Input() fiscalYearStartsFrom?: number;\r\n @Input() fiscalYearBack?: boolean;\r\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n changeSelectedDate(date) {\r\n setTimeout(() => {\r\n console.log(\"change date\", date);\r\n this.selectedDate.emit(date);\r\n }, 300);\r\n }\r\n}\r\n\r\n@Component({\r\n template: ``,\r\n selector: \"any-tag\"\r\n})\r\nexport class AnyTagComponent implements OnInit {\r\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\r\n @Input() name: string | undefined = undefined;\r\n @Input() defaultValue: number | undefined = undefined;\r\n dateObj = {date: undefined};\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.initDate();\r\n this.initName();\r\n this.chosenTagHandler(this.dateObj.date);\r\n }\r\n\r\n initDate() {}\r\n\r\n initName() {}\r\n\r\n changeInputHandler(event: Event) {\r\n const input: HTMLInputElement = <HTMLInputElement>event.target;\r\n this.chosenTagHandler(input.value);\r\n }\r\n\r\n chosenTagHandler(value) {\r\n // need implement in all tags\r\n }\r\n}\r\n","import {Component, Input} from \"@angular/core\";\r\nimport {Moment} from \"moment\";\r\nimport {IDateTag} from \"../../models/serverTags\";\r\nimport {AnyTagComponent} from \"../date-tag.component\";\r\nimport {MatSelectChange} from \"@angular/material/select\";\r\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\r\n// @ts-ignore\r\nconst moment = require(\"moment\");\r\n\r\n@Component({\r\n templateUrl: \"forecast-tag.component.html\",\r\n selector: \"forecast-tag\",\r\n})\r\n\r\nexport class ForecastTagComponent extends AnyTagComponent {\r\n @Input() fiscalYearStartsFrom?: number;\r\n @Input() fiscalYearBack?: boolean;\r\n @Input() lockedDate: any[] = [];\r\n forecastValue: number | undefined = undefined;\r\n\r\n forecastTags: any[] = [\r\n {\"value\": 0, \"label\": \"0+12\"},\r\n {\"value\": 1, \"label\": \"1+11\"},\r\n {\"value\": 2, \"label\": \"2+10\"},\r\n {\"value\": 3, \"label\": \"3+9\"},\r\n {\"value\": 4, \"label\": \"4+8\"},\r\n {\"value\": 5, \"label\": \"5+7\"},\r\n {\"value\": 6, \"label\": \"6+6\"},\r\n {\"value\": 7, \"label\": \"7+5\"},\r\n {\"value\": 8, \"label\": \"8+4\"},\r\n {\"value\": 9, \"label\": \"9+3\"},\r\n {\"value\": 10, \"label\": \"10+2\"},\r\n {\"value\": 11, \"label\": \"11+1\"}\r\n ];\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n initDate() {\r\n let dateVal = new Date();\r\n if (this.defaultValue) {\r\n dateVal = new Date(this.defaultValue * 1000);\r\n }\r\n let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\r\n let fiscal_year_back = this.fiscalYearBack || false;\r\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\r\n let fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\r\n\r\n console.log(\"test\", dateVal, fiscal_year_starts_from, this.forecastValue, fiscal_year);\r\n\r\n this.dateObj.date = moment(new Date(fiscal_year, 0, 1)).format(\"YYYY\");\r\n\r\n this.updateLockedDate();\r\n }\r\n\r\n updateLockedDate() {\r\n for (let forecastTag of this.forecastTags) {\r\n forecastTag.disable = false;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n const locked = moment.unix(timestamp);\r\n\r\n if (locked.month() - 1 === forecastTag.value && +locked.year() + 1 === +this.dateObj.date) {\r\n forecastTag.disable = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n initName() {\r\n if (!this.name) {\r\n this.name = \"Forecast\";\r\n }\r\n }\r\n\r\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\r\n let all_months = [];\r\n\r\n for (let i = fiscal_year_starts_from; i < 13; i++) {\r\n all_months.push(i);\r\n }\r\n\r\n for (let i = 1; i < fiscal_year_starts_from; i++) {\r\n all_months.push(i);\r\n }\r\n\r\n return all_months.indexOf(dateObj.getMonth() + 1) + 1;\r\n }\r\n\r\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\r\n let fiscal_year = dateObj.getFullYear();\r\n\r\n if (!fiscal_year_back) {\r\n if (dateObj.getMonth() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\r\n fiscal_year += 1;\r\n }\r\n } else {\r\n if (dateObj.getMonth() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\r\n fiscal_year -= 1;\r\n }\r\n }\r\n\r\n return fiscal_year;\r\n }\r\n\r\n getForecastLabelFromValue(value, fiscal_year_starts_from, fiscal_year_back) {\r\n let label = \"\";\r\n if (value) {\r\n let dateObj = new Date(value * 1000);\r\n\r\n let fiscal_month = this.getFiscalMonthFromDate(dateObj, fiscal_year_starts_from);\r\n let fiscal_year = this.getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back);\r\n\r\n label = (fiscal_month - 1) + \"+\" + (13 - fiscal_month) + \" (\" + fiscal_year + \")\";\r\n }\r\n return label;\r\n }\r\n\r\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\r\n this.chosenTagHandler();\r\n }\r\n\r\n changeYearInputHandler(event: Event) {\r\n this.updateLockedDate();\r\n this.chosenTagHandler();\r\n }\r\n\r\n chosenTagHandler() {\r\n let month = this.forecastValue;\r\n let year = Number.parseInt(this.dateObj.date);\r\n\r\n let timeStampVal = 0;\r\n let label = \"\";\r\n\r\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\r\n\r\n\r\n let date = new Date(year, month, 1, 12, 0, 0, 0);\r\n let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\r\n let fiscal_year_back = this.fiscalYearBack || false;\r\n if (fiscal_year_starts_from !== 1) {\r\n if (!fiscal_year_back)\r\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\r\n else\r\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\r\n }\r\n\r\n timeStampVal = date.getTime() / 1000;\r\n label = this.getForecastLabelFromValue(timeStampVal, fiscal_year_starts_from, fiscal_year_back);\r\n }\r\n\r\n const resultTag: IDateTag = {\r\n \"name\": this.name,\r\n \"value\": timeStampVal,\r\n \"label\": label,\r\n \"locked\": !this.dateFilter(timeStampVal)\r\n };\r\n\r\n this.dateChange.emit(resultTag);\r\n }\r\n\r\n dateFilter = (date) => {\r\n const forecastDate = moment.unix(date);\r\n let status = true;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n const locked = moment.unix(timestamp);\r\n\r\n return status = !(locked.month() === forecastDate.month() && locked.year() === forecastDate.year());\r\n });\r\n\r\n return status;\r\n }\r\n}\r\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output} from \"@angular/core\";\r\nimport {Moment} from \"moment\";\r\nimport {IDateTag} from \"../../models/serverTags\";\r\nimport {AnyTagComponent} from \"../date-tag.component\";\r\nimport {MatDatepicker} from \"@angular/material/datepicker\";\r\nimport {FormControl} from \"@angular/forms\";\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from \"@angular/material/core\";\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from \"@angular/material-moment-adapter\";\r\n// @ts-ignore\r\nconst moment = require(\"moment\");\r\n\r\nconst MONTH_FORMATS = {\r\n parse: {\r\n dateInput: \"DD-MM-YYYY\",\r\n },\r\n display: {\r\n dateInput: \"MMMM YYYY\",\r\n monthYearLabel: \"MMMM YYYY\",\r\n dateA11yLabel: \"LL\",\r\n monthYearA11yLabel: \"MMMM YYYY\"\r\n },\r\n};\r\n\r\n@Component({\r\n templateUrl: \"month-tag.component.html\",\r\n selector: \"month-tag\",\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS},\r\n ],\r\n})\r\n\r\nexport class MonthTagComponent extends AnyTagComponent {\r\n @Input() lockedDate: any[] = [];\r\n\r\n date = new FormControl(moment());\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n initDate() {\r\n if (this.defaultValue) {\r\n this.dateObj.date = moment(this.defaultValue * 1000).utc().format(\"YYYY-MM\");\r\n this.date = new FormControl(moment(this.defaultValue * 1000));\r\n } else {\r\n this.dateObj.date = moment(new Date()).format(\"YYYY-MM\");\r\n }\r\n }\r\n\r\n initName() {\r\n if (!this.name) {\r\n this.name = \"Month and Year\";\r\n }\r\n }\r\n\r\n chosenTagHandler(value) {\r\n const resultDate: Moment = moment.utc(value);\r\n resultDate.hour(12);\r\n const resultTag: IDateTag = {\r\n name: this.name,\r\n value: parseInt(resultDate.format(\"X\"), 10),\r\n label: resultDate.format(\"MMMM YYYY\"),\r\n locked: !this.dateFilter(value)\r\n };\r\n console.log(resultTag, value);\r\n this.dateChange.emit(resultTag);\r\n }\r\n\r\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>) {\r\n this.date.setValue(normalizedMonth);\r\n this.dateObj.date = this.date.value;\r\n\r\n this.chosenTagHandler(this.date.value);\r\n\r\n datepicker.close();\r\n }\r\n\r\n dateFilter = (date) => {\r\n const calendarDate = moment(date);\r\n let status = true;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n const lockDate = moment.unix(timestamp);\r\n\r\n return status = !(lockDate.year() === calendarDate.year() && lockDate.month() === calendarDate.month());\r\n });\r\n\r\n return status;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from \"@angular/core\";\r\nimport {IDateTag} from \"../../models/serverTags\";\r\nimport {Moment} from \"moment\";\r\nimport {AnyTagComponent} from \"../date-tag.component\";\r\nimport {MatSelectChange} from \"@angular/material/select\";\r\n// @ts-ignore\r\nconst moment = require(\"moment\");\r\n\r\n@Component({\r\n templateUrl: \"quarter-tag.component.html\",\r\n selector: \"quarter-tag\",\r\n})\r\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit {\r\n @Input() lockedDate: any[] = [];\r\n selectedValue = 0;\r\n quarters: any[] = [];\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.initName();\r\n this.quarters = this.getQuarterOptions();\r\n\r\n for (const quarter of this.quarters) {\r\n quarter.disable = false;\r\n\r\n if (quarter.isSelected) {\r\n this.selectedValue = quarter.value;\r\n this.chosenTagHandler(quarter.value);\r\n }\r\n\r\n this.dateFilter(quarter);\r\n }\r\n }\r\n\r\n initName() {\r\n if (!this.name) {\r\n this.name = \"Quarter\";\r\n }\r\n }\r\n\r\n changeSelectHandler(event: MatSelectChange) {\r\n this.chosenTagHandler(event.value);\r\n }\r\n\r\n chosenTagHandler(value) {\r\n const date = new Date(value * 1000);\r\n const resultDate: Moment = moment.utc(date);\r\n const resultTag: IDateTag = {\r\n name: this.name,\r\n value: parseInt(resultDate.format(\"X\"), 10),\r\n label: this.getQuarterLabel(resultDate.toString()),\r\n locked: !this.dateFilter(value)\r\n };\r\n this.dateChange.emit(resultTag);\r\n }\r\n\r\n getQuarterOptions() {\r\n const quartersBeforeToday = 8;\r\n const quartersAfterToday = 8;\r\n const dateNow = new Date();\r\n const dateNowUnix = this.getUTCTimestamp(dateNow);\r\n let defaultValue = dateNowUnix;\r\n let tempDate = new Date();\r\n if (this.defaultValue) {\r\n defaultValue = this.defaultValue * 1000;\r\n }\r\n\r\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\r\n afterDefault = Math.min(afterDefault, 100);\r\n let i, tempValue;\r\n const to_return: any[] = [];\r\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\r\n tempDate = new Date(defaultValue);\r\n tempDate.setDate(15);\r\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\r\n tempValue = this.getUTCTimestamp(tempDate);\r\n to_return.push({\r\n value: tempValue / 1000,\r\n label: this.getQuarterLabel(tempValue),\r\n isSelected: (i === 0),\r\n });\r\n }\r\n return to_return;\r\n }\r\n\r\n private getQuarterLabel(timeValue) {\r\n const date = new Date(timeValue);\r\n return \"Q\" + Math.floor((date.getMonth() / 3) + 1) + \" \" + date.getFullYear();\r\n }\r\n\r\n private getUTCTimestamp(date) {\r\n const month = Math.floor(date.getMonth() / 3) * 3;\r\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\r\n }\r\n\r\n dateFilter = (date) => {\r\n let status = true;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n const lockDate = moment.unix(timestamp);\r\n const quarterDate = moment.unix(date.value);\r\n\r\n if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {\r\n date.disable = true;\r\n status = false;\r\n }\r\n });\r\n\r\n return status;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from \"@angular/core\";\r\nimport {IDateTag} from \"../../models/serverTags\";\r\nimport {Moment} from \"moment\";\r\nimport {AnyTagComponent} from \"../date-tag.component\";\r\nimport {FormControl} from \"@angular/forms\";\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from \"@angular/material/core\";\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from \"@angular/material-moment-adapter\";\r\n// @ts-ignore\r\nconst moment = require(\"moment\");\r\n\r\nconst WEEK_FORMATS = {\r\n parse: {\r\n dateInput: \"WW-YYYY\",\r\n },\r\n display: {\r\n dateInput: \"[Week] WW, YYYY\",\r\n monthYearLabel: \"MMMM YYYY\",\r\n dateA11yLabel: \"LL\",\r\n monthYearA11yLabel: \"MMMM YYYY\"\r\n },\r\n};\r\n\r\n@Component({\r\n templateUrl: \"week-tag.component.html\",\r\n selector: \"week-tag\",\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS},\r\n ],\r\n})\r\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\r\n @Input() lockedDate: any[] = [];\r\n\r\n date = new FormControl(moment());\r\n selectedValue = \"\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.initName();\r\n\r\n const now = new Date();\r\n now.setHours(0, 0, 0, 0);\r\n\r\n const dateUnix = this.getUTCTimestamp(this.getMonday(now));\r\n let default_value_time = dateUnix;\r\n const one_day_in_seconds = 86400;\r\n if (this.defaultValue) {\r\n default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;\r\n }\r\n\r\n const default_date = new Date(default_value_time);\r\n const weekNumber = this.getWeekNumberByDate(default_date);\r\n const yearNumber = default_date.getFullYear();\r\n const dateStr = `${yearNumber}-W${weekNumber}`;\r\n this.dateObj.date = dateStr;\r\n this.selectedValue = dateStr;\r\n this.chosenTagHandler(default_date);\r\n }\r\n\r\n initName() {\r\n if (!this.name) {\r\n this.name = \"Week\";\r\n }\r\n }\r\n\r\n chosenDateHandler(normalizedDay) {\r\n const date = moment(normalizedDay).unix();\r\n this.chosenTagHandler(date);\r\n }\r\n\r\n dateFilter = (date) => {\r\n const calendarDate = moment(date);\r\n let status = true;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n const lockDate = moment.unix(timestamp);\r\n\r\n return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());\r\n });\r\n\r\n return status;\r\n }\r\n\r\n chosenTagHandler(value) {\r\n let date;\r\n console.log(\"chosenTag\", value);\r\n if (value > 1000000000000) {\r\n date = new Date(value);\r\n } else {\r\n date = new Date(value * 1000);\r\n }\r\n\r\n const resultDate: Moment = moment(date);\r\n const resultTag: IDateTag = {\r\n name: this.name,\r\n value: parseInt(resultDate.format(\"X\"), 10),\r\n label: this.getWeekLabel(date),\r\n locked: !this.dateFilter(value)\r\n };\r\n console.log(\"resultTag\", resultTag);\r\n this.dateChange.emit(resultTag);\r\n }\r\n\r\n private getWeekLabel(date) {\r\n return \"W\" + this.pad( moment(date).isoWeek(), 2) +\r\n \" \" + moment(date).year();\r\n }\r\n\r\n private getUTCTimestamp(date) {\r\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);\r\n }\r\n\r\n private getMonday(date) {\r\n const day = date.getDay() || 7;\r\n if (day !== 1) {\r\n date.setHours(-24 * (day - 1));\r\n }\r\n return date;\r\n }\r\n\r\n private getWeekNumberByDate(date: Date) {\r\n return this.pad(moment(date).isoWeek(), 2);\r\n }\r\n\r\n private pad(n, width, z = \"0\") {\r\n z = z || \"0\";\r\n n = n + \"\";\r\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\r\n }\r\n}\r\n","import {Component, Input, OnInit} from \"@angular/core\";\r\nimport {FormControl} from \"@angular/forms\";\r\nimport {MatDatepicker} from \"@angular/material/datepicker\";\r\nimport {Moment} from \"moment\";\r\nimport {IDateTag} from \"../../models/serverTags\";\r\nimport {AnyTagComponent} from \"../date-tag.component\";\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from \"@angular/material/core\";\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter} from \"@angular/material-moment-adapter\";\r\n// @ts-ignore\r\nconst moment = require(\"moment\");\r\n\r\nconst YEAR_FORMATS = {\r\n parse: {\r\n dateInput: \"YYYY\",\r\n },\r\n display: {\r\n dateInput: \"YYYY\",\r\n monthYearLabel: \"MMMM YYYY\",\r\n dateA11yLabel: \"LL\",\r\n monthYearA11yLabel: \"MMMM YYYY\"\r\n },\r\n};\r\n\r\n@Component({\r\n templateUrl: \"year-tag.component.html\",\r\n selector: \"year-tag\",\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS},\r\n ],\r\n})\r\n\r\nexport class YearTagComponent extends AnyTagComponent {\r\n @Input() lockedDate: any[] = [];\r\n\r\n date = new FormControl(moment());\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n initDate() {\r\n if (this.defaultValue) {\r\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format(\"YYYY\");\r\n this.date = new FormControl(moment(this.defaultValue * 1000));\r\n } else {\r\n this.dateObj.date = moment(new Date()).format(\"YYYY\");\r\n }\r\n }\r\n\r\n initName() {\r\n if (!this.name) {\r\n this.name = \"Year\";\r\n }\r\n }\r\n\r\n chosenTagHandler(value) {\r\n const date = new Date();\r\n const year = moment(value).year();\r\n date.setTime(0);\r\n date.setFullYear(year, 0, 1);\r\n const resultDate: Moment = moment.utc(date);\r\n resultDate.hour(12);\r\n const resultTag: IDateTag = {\r\n name: this.name,\r\n value: parseInt(resultDate.format(\"X\"), 10),\r\n label: resultDate.format(\"YYYY\"),\r\n locked: !this.dateFilter(value)\r\n };\r\n console.log(\"resultTag\", resultTag);\r\n this.dateChange.emit(resultTag);\r\n }\r\n\r\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<Moment>) {\r\n const ctrlValue = this.date.value;\r\n ctrlValue.year(normalizedYear.year());\r\n\r\n this.date.setValue(ctrlValue);\r\n this.dateObj.date = this.date.value;\r\n this.chosenTagHandler(this.date.value);\r\n\r\n datepicker.close();\r\n }\r\n\r\n dateFilter = (date) => {\r\n const calendarDateYear = moment(date).year();\r\n let status = true;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n const lockDate = moment.unix(timestamp);\r\n\r\n return status = !(lockDate.year() === calendarDateYear)\r\n });\r\n\r\n return status;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {IDateTag, IListTag, ITag, ITagForServer} from \"../models/serverTags\";\r\n\r\n@Component({\r\n templateUrl: \"dr-tag.component.html\",\r\n selector: \"dr-tag\",\r\n styleUrls: [\"dr-tag.component.scss\", \"../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class DrTagComponent implements OnInit {\r\n @Input() tagConfig: ITag;\r\n @Input() selectedTag: ITagForServer;\r\n @Input() lockedDate: any[];\r\n @Input() fiscalYearStartsFrom?: number;\r\n @Input() fiscalYearBack?: boolean;\r\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\r\n\r\n defaultValue: string | undefined;\r\n\r\n constructor() {\r\n this.selectedTag = {\r\n id: 0,\r\n value: undefined,\r\n name: \"\"\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\r\n this.defaultValue = this.tagConfig.options.default_value;\r\n }\r\n }\r\n\r\n onDateHandler(event: IDateTag) {\r\n let resultEvent: ITagForServer = {\r\n id: this.tagConfig.id,\r\n name: this.tagConfig.name,\r\n value: event.value,\r\n label: event.label,\r\n locked: event.locked\r\n };\r\n console.log(resultEvent);\r\n this.tagChange.emit(resultEvent);\r\n }\r\n\r\n onListHandler(event: IListTag) {\r\n let resultEvent: ITagForServer = {\r\n id: this.tagConfig.id,\r\n name: this.tagConfig.name,\r\n value: event.value\r\n };\r\n console.log(resultEvent);\r\n this.tagChange.emit(resultEvent);\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation} from \"@angular/core\";\r\nimport {IDateTag, IListTag} from \"../models/serverTags\";\r\nimport {Moment} from \"moment\";\r\nimport {MatSelectChange} from \"@angular/material/select\";\r\nimport {MatButtonToggleChange} from \"@angular/material/button-toggle\";\r\nimport * as momentImported from \"moment\"; const moment = momentImported;\r\n\r\n@Component({\r\n templateUrl: \"list-tag.component.html\",\r\n selector: \"list-tag\",\r\n styleUrls: [\"list-tag.component.scss\", \"../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ListTagComponent implements OnInit {\r\n @Input() values: string[];\r\n @Input() defaultValue: string = \"\";\r\n @Input() name: string;\r\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.chosenTagHandler(this.defaultValue);\r\n }\r\n\r\n changeInputHandler(event: MatSelectChange | MatButtonToggleChange) {\r\n this.chosenTagHandler(event.value);\r\n }\r\n\r\n chosenTagHandler(value) {\r\n console.log(value);\r\n if (value && value !== \"\") {\r\n const resultTag: IListTag = {\r\n name: this.name,\r\n value: value\r\n };\r\n this.tagChange.emit(resultTag);\r\n }\r\n }\r\n}\r\n","import {Component, Input} from \"@angular/core\";\r\nimport {IDateTag} from \"../../models/serverTags\";\r\nimport {Moment} from \"moment\";\r\nimport {AnyTagComponent} from \"../date-tag.component\";\r\nimport {MatDatepicker} from \"@angular/material/datepicker\";\r\nimport {FormControl} from \"@angular/forms\";\r\nimport {MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS} from \"@angular/material-moment-adapter\";\r\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from \"@angular/material/core\";\r\n// @ts-ignore\r\nconst moment = require(\"moment\");\r\n\r\nconst DAY_FORMATS = {\r\n parse: {\r\n dateInput: \"DD-MM-YYYY\",\r\n },\r\n display: {\r\n dateInput: \"DD.MM.YYYY\",\r\n monthYearLabel: \"MMMM YYYY\",\r\n dateA11yLabel: \"LL\",\r\n monthYearA11yLabel: \"MMMM YYYY\"\r\n },\r\n};\r\n\r\n@Component({\r\n templateUrl: \"day-tag.component.html\",\r\n selector: \"day-tag\",\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n {provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS},\r\n ],\r\n})\r\n\r\nexport class DayTagComponent extends AnyTagComponent {\r\n @Input() lockedDate: any[] = [];\r\n\r\n date = new FormControl(moment());\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n initDate() {\r\n const utcOffsetInMilliseconds = moment().utcOffset() * 60 * 1000;\r\n this.dateObj.date = moment(moment().valueOf() + utcOffsetInMilliseconds);\r\n if (this.defaultValue) {\r\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc();\r\n this.date.setValue(this.dateObj.date);\r\n }\r\n }\r\n\r\n initName() {\r\n if (!this.name) {\r\n this.name = \"Day\";\r\n }\r\n }\r\n\r\n chosenTagHandler(value) {\r\n const date = moment(value).unix();\r\n const resultTag: IDateTag = {\r\n name: this.name,\r\n value: date,\r\n label: moment.unix(date).format(\"MM/DD/YYYY\"),\r\n locked: !this.dateFilter(value)\r\n };\r\n console.log(\"resultTag\", resultTag);\r\n this.dateChange.emit(resultTag);\r\n }\r\n\r\n chosenDateHandler(normalizedDay) {\r\n this.chosenTagHandler(normalizedDay);\r\n }\r\n\r\n dateFilter = (date) => {\r\n const calendarDate = moment(date).unix();\r\n let status = true;\r\n\r\n this.lockedDate.forEach(timestamp => {\r\n return status = !(timestamp === calendarDate);\r\n });\r\n\r\n return status;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input, Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'dr-radio-button',\r\n templateUrl: './radio-button.component.html',\r\n styleUrls: ['./radio-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: RadioButtonComponent,\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent implements ControlValueAccessor {\r\n @Input() disabled: boolean;\r\n @Input() name: string;\r\n @Input('value') _value: any;\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n modelValue: any;\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n\r\n onChange: any = (onchanges => {});\r\n onTouched: any = () => {};\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n writeValue(value: any) {\r\n this.modelValue = value;\r\n this.cdr.markForCheck();\r\n }\r\n toggleChange(event) {\r\n if (event.target.checked) {\r\n this.modelValue = this.value;\r\n }\r\n }\r\n valueChanged(event) {\r\n this.onChange(this.modelValue);\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n _setName(name: string) {\r\n this.name = name;\r\n this.cdr.markForCheck();\r\n }\r\n _markForCheck() {\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","import {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n QueryList,\r\n PLATFORM_ID,\r\n Inject,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { from, fromEvent, merge, Subject } from 'rxjs';\r\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { RadioButtonComponent } from './radio-button.component';\r\nimport { DOCUMENT } from '@angular/common';\r\n@Component({\r\n selector: 'dr-radio-group',\r\n template: `\r\n <ng-content select=\"dr-radio-button\"></ng-content>`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n this._value = value;\r\n this.updateValues();\r\n }\r\n\r\n @Input()\r\n get name(): string {\r\n return this._name;\r\n }\r\n set name(name: string) {\r\n this._name = name;\r\n this.updateNames();\r\n }\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n set disabled(disabled: boolean) {\r\n this._disabled = !!disabled;\r\n this.updateDisabled();\r\n }\r\n\r\n constructor(\r\n protected hostElement: ElementRef<HTMLElement>,\r\n @Inject(PLATFORM_ID) protected platformId,\r\n @Inject(DOCUMENT) protected document,\r\n ) {}\r\n\r\n protected destroy$ = new Subject<void>();\r\n protected _value: any;\r\n protected _name: string;\r\n protected _disabled: boolean;\r\n\r\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\r\n\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n protected onChange = (value: any) => {};\r\n protected onTouched = () => {};\r\n\r\n ngAfterContentInit() {\r\n // In case option 'name' isn't set on dr-radio component,\r\n // we need to set it's name right away, so it won't overlap with options\r\n // without names from other radio groups. Otherwise they all would have\r\n // same name and will be considered as options from one group so only the\r\n // last option will stay selected.\r\n this.updateNames();\r\n\r\n this.radios.changes\r\n .pipe(\r\n startWith(this.radios),\r\n // 'changes' emit during change detection run and we can't update\r\n // option properties right of since they already was initialized.\r\n // Instead we schedule microtask to update radios after change detection\r\n // run is finished and trigger one more change detection run.\r\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\r\n takeUntil(this.destroy$),\r\n )\r\n .subscribe(() => this.updateAndSubscribeToRadios());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n protected updateAndSubscribeToRadios() {\r\n this.updateValueFromCheckedOption();\r\n this.updateNames();\r\n this.updateValues();\r\n this.updateDisabled();\r\n this.subscribeOnRadiosValueChange();\r\n this.subscribeOnRadiosBlur();\r\n }\r\n\r\n protected updateNames() {\r\n if (this.radios) {\r\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\r\n }\r\n }\r\n\r\n protected updateValues() {\r\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\r\n if (radio.value === this.value) {\r\n radio.modelValue = radio.value;\r\n }\r\n });\r\n }\r\n\r\n protected updateDisabled() {\r\n if (typeof this.disabled !== 'undefined') {\r\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\r\n }\r\n }\r\n\r\n protected subscribeOnRadiosValueChange() {\r\n if (!this.radios || !this.radios.length) {\r\n return;\r\n }\r\n\r\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange))\r\n .pipe(\r\n takeUntil(\r\n merge(\r\n this.radios.changes,\r\n this.destroy$,\r\n ),\r\n ),\r\n )\r\n .subscribe((value: any) => {\r\n this.writeValue(value);\r\n this.propagateValue(value);\r\n });\r\n }\r\n\r\n protected propagateValue(value: any) {\r\n this.valueChange.emit(value);\r\n this.onChange(value);\r\n }\r\n\r\n protected subscribeOnRadiosBlur() {\r\n const hasNoRadios = !this.radios || !this.radios.length;\r\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\r\n return;\r\n }\r\n\r\n const hostElement = this.hostElement.nativeElement;\r\n fromEvent<Event>(hostElement, 'focusin')\r\n .pipe(\r\n filter(event => hostElement.contains(event.target as Node)),\r\n switchMap(() => merge(\r\n fromEvent<Event>(this.document, 'focusin'),\r\n fromEvent<Event>(this.document, 'click'),\r\n )),\r\n filter(event => !hostElement.contains(event.target as Node)),\r\n takeUntil(\r\n merge(\r\n this.radios.changes,\r\n this.destroy$,\r\n ),\r\n ),\r\n )\r\n .subscribe(() => this.onTouched());\r\n }\r\n\r\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\r\n if (this.radios) {\r\n this.radios.forEach((radio) => {\r\n updateFn(radio);\r\n radio._markForCheck();\r\n });\r\n }\r\n }\r\n\r\n protected updateValueFromCheckedOption() {\r\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\r\n const isValueMissing = this.value === undefined || this.value === null;\r\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\r\n this.value = checkedRadio.value;\r\n }\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'dr-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss'],\r\n providers: [\r\n {provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true}\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CheckboxComponent implements ControlValueAccessor {\r\n @Input() checkedStatus: boolean;\r\n @Input() disabled = false;\r\n @Input() icon: 'cross' | '' = '';\r\n @Input()\r\n get indeterminate(): boolean {\r\n return this._indeterminate;\r\n }\r\n set indeterminate(value: boolean) {\r\n this._indeterminate = !!value;\r\n this.cdr.markForCheck();\r\n }\r\n private _indeterminate: boolean = false;\r\n @Output() checkedChange = new EventEmitter();\r\n\r\n onChange: (value: boolean) => void = () => {};\r\n onTouched: () => void = () => {};\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n writeValue(value: boolean) {\r\n this.checkedStatus = value;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n setValue(event) {\r\n const input = (event.target as HTMLInputElement);\r\n this.checkedStatus = input.checked;\r\n this.checkedChange.emit(this.checkedStatus);\r\n this.onChange(this.checkedStatus);\r\n this.indeterminate = input.indeterminate;\r\n this.onTouched();\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n ElementRef,\r\n forwardRef, HostBinding, AfterViewInit, Renderer2, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { noop } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'dr-input',\r\n templateUrl: './dr-input.component.html',\r\n styleUrls: ['./dr-input.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DrInputComponent),\r\n multi: true\r\n }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\r\n _clearable = false;\r\n @Input() set disabled(value) {\r\n this.setDisabledState(value);\r\n }\r\n @Input() set buttonOptions(value) {\r\n if (value) {\r\n this._buttonOptions = {...this._buttonOptions, ... value};\r\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\r\n this._elementClass.push('with-button');\r\n }\r\n }\r\n if (this._buttonOptions.showOnFocus) {\r\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\r\n this._buttonOptions.focusSet = true;\r\n this.cdr.markForCheck();\r\n });\r\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\r\n if (event.target.parentNode !== this.elementRef.nativeElement) {\r\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\r\n this.onButtonClicked(event);\r\n }\r\n }\r\n });\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n @Input() type: string = 'string';\r\n @Input() name: string;\r\n @Input() placeholder: string = '';\r\n @Input() readonly = false;\r\n @Input() set clearable(val) {\r\n this._clearable = !!val;\r\n if (this._clearable) {\r\n this._elementClass.push('clearable');\r\n } else {\r\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n @Input() min: number | string;\r\n @Input() max: number | string;\r\n @Input() minLength: number;\r\n @Input() maxlength: number;\r\n @Input() step;\r\n @Output() blur = new EventEmitter();\r\n @Output() ngModelDebounceChange = new EventEmitter();\r\n\r\n @HostBinding('class')\r\n get elementClass(): string {\r\n return this._elementClass.join(' ');\r\n }\r\n\r\n innerValue = null;\r\n _disabled = null;\r\n _elementClass: string[] = [];\r\n _buttonOptions = {\r\n show: false,\r\n showOnFocus: false,\r\n focusSet: false,\r\n checkFocusOut: (target: any, element: any) => true,\r\n text: 'Save'\r\n };\r\n listenFunc: Function;\r\n globalListenFunc: Function;\r\n\r\n\r\n @Output() searchHandler = new EventEmitter<any>();\r\n @Output() buttonHandler = new EventEmitter<any>();\r\n\r\n @ContentChild('prefix', {static: false}) prefixIcon: ElementRef;\r\n @ContentChild('suffix', {static: false}) suffixIcon: ElementRef;\r\n\r\n @HostBinding('tabindex') tabindex = -1;\r\n onChangeCallback: (_: any) => void = noop;\r\n onTouchedCallback: () => void = noop;\r\n onChange: (value: any) => void = () => {};\r\n onTouched: () => void = () => {};\r\n set(val: string) {\r\n this._elementClass = val.split(' ');\r\n }\r\n\r\n public get value(): string | number {\r\n return this.innerValue;\r\n }\r\n public set value(v: string | number) {\r\n if (v !== this.innerValue) {\r\n this.innerValue = v;\r\n this.onChangeCallback(v);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n\r\n constructor(private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private cdr: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.clearable) {\r\n this._elementClass.push('clearable');\r\n }\r\n if (this.prefixIcon) {\r\n this._elementClass.push('with-prefix');\r\n }\r\n if (this.suffixIcon) {\r\n this._elementClass.push('with-suffix');\r\n }\r\n if (this.type === 'search') {\r\n this._elementClass.push('search-type');\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n writeValue(value: number | string) {\r\n if (value !== this.innerValue) {\r\n this.innerValue = value;\r\n this.updateChanges();\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n updateChanges() {\r\n this.onChange(this.value);\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n if (isDisabled) {\r\n this._elementClass.push('disabled');\r\n } else {\r\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\r\n }\r\n this._disabled = isDisabled;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n onSearchClicked($event: any) {\r\n this.searchHandler.emit($event);\r\n }\r\n\r\n onButtonClicked($event: any) {\r\n this.buttonHandler.emit($event);\r\n this._buttonOptions.focusSet = false;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.listenFunc) {\r\n this.listenFunc();\r\n this.globalListenFunc();\r\n }\r\n }\r\n\r\n onClear($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.value = null;\r\n }\r\n}\r\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ElementRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nconst SELECT_HOST_ATTRIBUTES = [\r\n 'no-left-border',\r\n 'no-left-border-radius',\r\n 'no-right-border',\r\n 'no-right-border-radius',\r\n];\r\n\r\n@Component({\r\n selector: 'dr-select',\r\n templateUrl: './dr-select.component.html',\r\n styleUrls: ['./dr-select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: DrSelectComponent,\r\n multi: true\r\n }]\r\n})\r\nexport class DrSelectComponent implements ControlValueAccessor {\r\n\r\n @Input() className: string;\r\n @Input() items: Array<any> = [];\r\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\r\n @Input() appendTo = 'body';\r\n @Input() bindLabel: string;\r\n @Input() bindValue: string;\r\n @Input() clearable: boolean;\r\n @Input() searchable: boolean;\r\n @Input() searchFn: (term: string, item: any) => boolean;\r\n @Input() multiple: boolean;\r\n @Input() hideSelected: boolean;\r\n @Input() placeholder: string;\r\n @Input() loading: boolean;\r\n @Input() readonly: boolean;\r\n @Input() disabled = false;\r\n @Input() optionWithDescription = false;\r\n @Input() id: string;\r\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\r\n @Input() selectedItem: any;\r\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\r\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\r\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\r\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\r\n\r\n constructor(private elementRef: ElementRef<HTMLElement>) {\r\n for (const attr of SELECT_HOST_ATTRIBUTES) {\r\n if (this.hasHostAttributes(attr)) {\r\n (this.getHostElement()).classList.add(attr);\r\n }\r\n }\r\n }\r\n\r\n onChange: (value: boolean) => void = () => {};\r\n onTouched: () => void = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.selectedItem = value;\r\n this.onChange(this.selectedItem);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n\r\n if (fn && this.selectedItem) {\r\n this.onChange(this.selectedItem);\r\n }\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n private getHostElement(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n\r\n private hasHostAttributes(...attributes: string[]): boolean {\r\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dr-avatar',\r\n templateUrl: 'dr-avatar.component.html',\r\n styleUrls: ['dr-avatar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrAvatarComponent {\r\n @Input() set users(users: any[] | object) {\r\n if (users) {\r\n this.parsedUsers = Array.isArray(users) ? users : [users];\r\n this.parsedUsers.forEach((user, index) => {\r\n if (!user.colorNumber) {\r\n user.colorNumber = index % 5;\r\n }\r\n });\r\n }\r\n }\r\n @Input() warning: boolean = false;\r\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\r\n parsedUsers: any[] = [];\r\n constructor() {\r\n }\r\n\r\n getFirstUsers(): any[] {\r\n return this.parsedUsers.slice(0, 2);\r\n }\r\n\r\n getLastUsers(): any[] {\r\n if (this.parsedUsers.length > 2) {\r\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\r\n }\r\n return [];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'drAvatar'\r\n})\r\nexport class DrAvatarPipe implements PipeTransform {\r\n\r\n transform(item: any, type: string = 'full'): string {\r\n if (type === 'initials') {\r\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : item.email[0]).toUpperCase();\r\n }\r\n\r\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\r\n }\r\n}\r\n","import { animate, style, transition } from '@angular/animations';\r\n\r\nexport const POPUP_POSITIONS = {\r\n top: {\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -8\r\n },\r\n 'top-left': {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetY: -8\r\n },\r\n 'top-right': {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n offsetY: -8\r\n },\r\n bottom: {\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 7\r\n },\r\n 'bottom-left': {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetY: 7\r\n },\r\n 'bottom-right': {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetY: 7\r\n },\r\n left: {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetX: -8\r\n },\r\n 'left-top': {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetX: -8\r\n },\r\n 'left-bottom': {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n offsetX: -8\r\n },\r\n right: {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetX: 8\r\n },\r\n 'right-top': {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n offsetX: 8\r\n },\r\n 'right-bottom': {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n offsetX: 8\r\n }\r\n};\r\n\r\nexport const POPUP_ANIMATION = [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate(150, style({ opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n animate(150, style({ opacity: 0 })),\r\n ]),\r\n];\r\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\r\nimport { trigger } from '@angular/animations';\r\nimport { POPUP_ANIMATION } from '../models/constants';\r\n\r\ntype TooltipOptions = {\r\n withoutContainerStyles?: boolean;\r\n withoutArrow?: boolean;\r\n};\r\n\r\n@Component({\r\n selector: 'dr-tooltip',\r\n templateUrl: './dr-tooltip.component.html',\r\n styleUrls: ['./dr-tooltip.component.scss'],\r\n animations: [\r\n trigger('tooltip', POPUP_ANIMATION),\r\n ],\r\n})\r\nexport class TooltipComponent implements OnInit {\r\n\r\n @Input() content;\r\n @Input() contentContext;\r\n @Input() position;\r\n @Input() options: TooltipOptions;\r\n @Input() class: string;\r\n isContentTemplate = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.isContentTemplate = this.content instanceof TemplateRef;\r\n }\r\n\r\n}\r\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { TooltipComponent } from './dr-tooltip.component';\r\nimport { POPUP_POSITIONS } from '../models/constants';\r\n\r\n@Directive({\r\n selector: '[drTooltip]'\r\n})\r\nexport class DrTooltipDirective implements OnDestroy {\r\n\r\n @Input('drTooltip')\r\n content: any;\r\n @Input('drTooltipContext')\r\n contentContext = {};\r\n @Input('drTooltipPosition')\r\n position = 'top';\r\n @Input('drTooltipClass')\r\n class = '';\r\n @Input()\r\n set drTooltipOptions(options: any) {\r\n if (options?.indent) {\r\n const position = POPUP_POSITIONS[this.position];\r\n if (position.offsetY) {\r\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\r\n }\r\n if (position.offsetX) {\r\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\r\n }\r\n }\r\n this.options = options;\r\n }\r\n\r\n @Input('drTooltipShow')\r\n set showTooltip(value: boolean) {\r\n this.manualHandling = true;\r\n if (value) {\r\n this.renderTooltip();\r\n } else {\r\n this.destroyTooltip();\r\n }\r\n }\r\n\r\n private overlayRef: OverlayRef;\r\n\r\n private options;\r\n private manualHandling: boolean;\r\n\r\n constructor(private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private elementRef: ElementRef) { }\r\n\r\n ngOnDestroy(): void {\r\n if (!this.overlayRef) return null;\r\n\r\n if (this.overlayRef.hasAttached()) {\r\n this.hide();\r\n }\r\n // TODO: Temporary solution. line 162 doesn't stop function execution\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n if (this.manualHandling) return;\r\n\r\n this.renderTooltip();\r\n }\r\n\r\n @HostListener('mouseleave')\r\n hide() {\r\n if (this.manualHandling) return;\r\n\r\n this.destroyTooltip();\r\n }\r\n\r\n private createOverlay(): void {\r\n const positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(this.elementRef)\r\n .withPositions([POPUP_POSITIONS[this.position]]);\r\n\r\n this.overlayRef = this.overlay.create({ positionStrategy });\r\n }\r\n\r\n private renderTooltip(): void {\r\n this.createOverlay();\r\n if (!this.overlayRef?.hasAttached() && this.content) {\r\n const tooltipRef: ComponentRef<TooltipComponent> = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\r\n tooltipRef.instance.content = this.content;\r\n tooltipRef.instance.contentContext = this.contentContext;\r\n tooltipRef.instance.position = this.position;\r\n tooltipRef.instance.options = this.options;\r\n tooltipRef.instance.class = this.class + ' ' + this.position;\r\n }\r\n }\r\n\r\n private destroyTooltip(): void {\r\n if (this.overlayRef) {\r\n this.overlayRef.dispose();\r\n }\r\n this.overlayRef = null;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n HostBinding,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'dr-toggle',\r\n templateUrl: './dr-toggle.component.html',\r\n styleUrls: ['./dr-toggle.component.scss'],\r\n providers: [\r\n {provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true}\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\r\n _disabled = false;\r\n _elementClass: string[] = [];\r\n\r\n @Input()\r\n toggleTitle: any;\r\n @Input()\r\n toggleTitleRight: boolean;\r\n @Input()\r\n successType: boolean;\r\n @Input()\r\n checkedStatus: boolean;\r\n @Input() set disabled(value: boolean) {\r\n this.setDisabledState(value);\r\n }\r\n @Output() checkedChange = new EventEmitter();\r\n\r\n @HostBinding('class') get elementClass(): string {return this._elementClass.join(' ');}\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.toggleTitleRight) {\r\n this._elementClass.push('toggle-label-alignment');\r\n }\r\n }\r\n\r\n onChange: (value: boolean) => void = () => {};\r\n onTouched: () => void = () => {};\r\n\r\n writeValue(value: boolean) {\r\n this.checkedStatus = value;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n setValue() {\r\n this.checkedStatus = !this.checkedStatus;\r\n this.onChange(this.checkedStatus);\r\n this.checkedChange.emit(this.checkedStatus);\r\n this.onTouched();\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component, forwardRef,\r\n Input,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'dr-toggle-button',\r\n templateUrl: './dr-toggle-button.component.html',\r\n styleUrls: ['./dr-toggle-button.component.scss'],\r\n providers: [\r\n {provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true}\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n\r\n\r\nexport class DrToggleButtonComponent implements ControlValueAccessor {\r\n _disabled = false;\r\n\r\n @Input() items: string[] | any[];\r\n @Input() bindLabel: string | null = null;\r\n @Input() bindValue: string | null = null;\r\n @Input() selectedValue: boolean;\r\n @Input() set disabled(value: boolean) {\r\n this.setDisabledState(value);\r\n }\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n onChange: (value: boolean) => void = () => {};\r\n onTouched: () => void = () => {};\r\n\r\n writeValue(value: any) {\r\n this.selectedValue = value;\r\n this.cdr.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n setValue(item) {\r\n this.selectedValue = item[this.bindValue] || item;\r\n this.onChange(this.selectedValue);\r\n this.onTouched();\r\n this.cdr.markForCheck();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\nexport class ISpinnerOptions extends DOMRect {\r\n size: 'small' | 'medium' | 'big' | 'giant';\r\n}\r\n\r\n@Component({\r\n selector: 'dr-spinner',\r\n templateUrl: './dr-spinner.component.html',\r\n styleUrls: ['./dr-spinner.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrSpinnerComponent implements OnInit {\r\n\r\n height = '10rem';\r\n private _options: ISpinnerOptions;\r\n set options(data: ISpinnerOptions) {\r\n if (data) {\r\n this._options = data;\r\n\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.height = this._options.size === 'small'\r\n ? '5rem' : this._options.size === 'medium'\r\n ? '10rem' : this._options.size === 'big'\r\n ? '15rem' : this._options.size === 'giant'\r\n ? '20rem' : this.height;\r\n }\r\n}\r\n","import {\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { DrSpinnerComponent } from './dr-spinner.component';\r\n\r\n@Directive({\r\n selector: '[drSpinner]'\r\n})\r\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\r\n\r\n @ViewChild(DrSpinnerComponent, {static: true, read: ViewContainerRef}) contentCmpRef;\r\n @Input() drSpinner;\r\n @Input() drSpinnerSize: 'small' | 'medium' | 'big' | 'giant';\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private el: ElementRef,\r\n private rdr: Renderer2,\r\n @Inject(DOCUMENT) private _document: any) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const show = changes.drSpinner.currentValue;\r\n const options = this.el.nativeElement.getBoundingClientRect();\r\n if (this.contentCmpRef && !show) {\r\n this.contentCmpRef.destroy();\r\n this.contentCmpRef = null;\r\n } else if (this.drSpinner) {\r\n this.showSpinner({...options, size: this.drSpinnerSize});\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.contentCmpRef) {\r\n this.contentCmpRef.destroy();\r\n }\r\n }\r\n\r\n private showSpinner(options) {\r\n let componentFactory: ComponentFactory<DrSpinnerComponent>;\r\n componentFactory = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\r\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\r\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\r\n this.contentCmpRef.instance.options = options;\r\n }\r\n}\r\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\r\ntype ButtonType = 'primary' | 'secondary' | 'danger' | 'primary-icon' |\r\n 'secondary-icon' | 'icon' | 'ghost' | 'link-btn' | 'text-link' | 'simple-text' |\r\n 'split-primary-first' | 'split-primary-last' | 'split-secondary-first' | 'split-secondary-last' | 'dropdown';\r\n\r\n@Component({\r\n selector: 'dr-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.scss']\r\n})\r\nexport class DrButtonComponent {\r\n\r\n _disabled = null;\r\n _isLoading = false;\r\n _elementClass: string[] = [];\r\n\r\n @Input() title: string;\r\n @Input() theme: ButtonType = 'primary';\r\n @Input() icon: string;\r\n @Input() iconAfterLabel: string;\r\n @Input() isBold: boolean = false;\r\n @Input() iconColor: string;\r\n @Input() set disabled(value) {\r\n if (value) {\r\n this._elementClass.push('disabled');\r\n } else {\r\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\r\n }\r\n this._disabled = value;\r\n }\r\n @Input() set isLoading(value) {\r\n if (value) {\r\n this._elementClass.push('loading');\r\n } else {\r\n this._elementClass = this._elementClass.filter(item => item !== 'loading');\r\n }\r\n this._isLoading = !!value;\r\n }\r\n @Output() click = new EventEmitter();\r\n\r\n @HostBinding('class')\r\n get elementClass(): string {\r\n return this._elementClass.join(' ');\r\n }\r\n set(val: string) {\r\n this._elementClass = val.split(' ');\r\n }\r\n\r\n constructor() { }\r\n\r\n public onClick($event) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.click.emit($event);\r\n }\r\n}\r\n// Examples:\r\n/*\r\n<dr-button [icon]=\"'dr-icon-arrow-down'\">hello</dr-button>\r\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'primary-icon'\"></dr-button>\r\n<dr-button [icon]=\"'dr-icon-refresh'\" [isDisabled]=\"true\" [theme]=\"'primary-icon'\"></dr-button>\r\n<dr-button [theme]=\"'secondary'\" [icon]=\"'dr-icon-excel'\" [iconColor]=\"'#03A678'\"></dr-button>\r\n\r\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary-icon'\"></dr-button>\r\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'secondary-icon'\"></dr-button>\r\n\r\n<dr-button [icon]=\"'dr-icon-share'\" [theme]=\"'icon'\"></dr-button>\r\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'icon'\"></dr-button>\r\n\r\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\">Primary</dr-button>\r\n<dr-button [isDisabled]=\"false\" >Primary</dr-button>\r\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary'\">Secondary</dr-button>\r\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'ghost'\">Ghost</dr-button>\r\n<dr-button [isDisabled]=\"false\" [theme]=\"'text-link'\">Text Link</dr-button>\r\n*/\r\n","export const MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';\r\nexport const DATE_INPUT_FORMAT = 'YYYY/MM/DD';\r\nexport const YEAR_FORMAT = 'yyyy';\r\nexport const MONTH_YEAR_FORMAT = 'MM/yyyy';\r\nexport const QUARTER_FORMAT = 'Q/yyyy';\r\n\r\nexport interface DateParse { dateInput: string; }\r\n\r\nexport type DateDisplay = DateParse & {\r\n monthYearLabel?: string,\r\n dateA11yLabel?: string,\r\n monthYearA11yLabel?: string,\r\n quarterYearA11yLabel?: string,\r\n yearLabel?: string,\r\n quarterYearLabel?: string\r\n};\r\nexport class CustomDateFormat {\r\n private _parse: DateParse = {\r\n dateInput: DATE_INPUT_FORMAT\r\n };\r\n private _display: DateDisplay = {\r\n dateInput: DATE_INPUT_FORMAT,\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMM YYYY',\r\n quarterYearLabel: 'Q/YYYY',\r\n yearLabel: 'YYYY'\r\n };\r\n\r\n set parse(parse: DateParse) {\r\n this._parse = Object.assign({}, this._parse, parse);\r\n }\r\n\r\n get parse(): DateParse {\r\n return this._parse;\r\n }\r\n\r\n set display(display: DateDisplay) {\r\n this._display = Object.assign({}, this._display, display);\r\n }\r\n\r\n get display(): DateDisplay {\r\n return this._display;\r\n }\r\n\r\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\r\n this.parse = parse;\r\n if (!display) {\r\n display = parse;\r\n }\r\n this.display = display;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatDatepicker } from \"@angular/material/datepicker\";\r\nimport { Moment } from \"moment\";\r\nimport { Subject, BehaviorSubject } from \"rxjs\";\r\nimport { MAT_DEFAULT_DATE_FORMAT } from \"../../models/datePicker\";\r\n\r\nconst moment = require('moment');\r\n\r\nexport type TimeframeOption = 'day' | 'quarter' | 'month' | 'year';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DrDatePickerService {\r\n timeframe: TimeframeOption = 'day';\r\n format = new BehaviorSubject<string>(MAT_DEFAULT_DATE_FORMAT); \r\n updatedQuater = new Subject<Moment>(); \r\n calendarInstance: MatDatepicker<any>;\r\n\r\n getQuarterDisplay(value, format){\r\n return 'Q' + moment(value).quarter() + format.charAt(1) + moment(value).year();\r\n }\r\n \r\n setTimeframe(format) {\r\n const lowerCaseFormat = format.toLowerCase();\r\n switch (true) {\r\n case lowerCaseFormat.includes('q'):\r\n this.timeframe = 'quarter';\r\n break;\r\n case lowerCaseFormat.includes('d'):\r\n this.timeframe = 'day';\r\n break;\r\n case lowerCaseFormat.includes('m'):\r\n this.timeframe = 'month';\r\n break;\r\n case lowerCaseFormat.includes('y'):\r\n this.timeframe = 'year';\r\n break;\r\n default:\r\n this.timeframe = 'day';\r\n }\r\n }\r\n}","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\r\nimport { DateAdapter, MAT_DATE_FORMATS} from '@angular/material/core';\r\nimport { CustomDateFormat, MAT_DEFAULT_DATE_FORMAT, MONTH_YEAR_FORMAT, QUARTER_FORMAT, YEAR_FORMAT } from \"../../../models/datePicker\";\r\nimport { DrDatePickerService } from \"../dr-date-picker.service\";\r\n\r\nconst moment = require('moment');\r\n\r\nexport interface ITimeframeOption {\r\n title: string,\r\n value: MatCalendarView,\r\n format: string,\r\n periodLabel: () => string\r\n}\r\n\r\n@Component({\r\n selector: 'dr-date-picker_custom-header.component',\r\n templateUrl: 'dr-date-picker_custom-header.component.html',\r\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n \r\n })\r\n\r\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy {\r\n private _destroyed = new Subject<void>();\r\n quarters = [1, 2, 3, 4];\r\n selectedQuarter = 1;\r\n timeframeOptions: ITimeframeOption[] = [{\r\n title: 'Day',\r\n value: 'month',\r\n format: MAT_DEFAULT_DATE_FORMAT,\r\n periodLabel: () => this._dateAdapter\r\n .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)\r\n .toLocaleUpperCase()\r\n },{\r\n title: 'Month',\r\n value: 'year',\r\n format: MONTH_YEAR_FORMAT,\r\n periodLabel: () => String(moment(this._calendar.activeDate).year())\r\n },{\r\n title: 'Quarter',\r\n value: <MatCalendarView> 'none',\r\n format: QUARTER_FORMAT,\r\n periodLabel: () => String(moment(this._calendar.activeDate).year())\r\n },{\r\n title: 'Year',\r\n value: 'multi-year',\r\n format: YEAR_FORMAT,\r\n periodLabel: () => {\r\n const currentYear = moment(this._calendar.activeDate).year();\r\n const startPeriod = Math.floor(currentYear/24)*24;\r\n return startPeriod + '-' + (startPeriod + 23);\r\n }\r\n }]\r\n\r\n pagingSetup = {\r\n 'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\r\n 'none': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\r\n 'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\r\n 'multi-year': (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\r\n }\r\n \r\n selectedTimeframe: MatCalendarView = 'month';\r\n timeframeSelection = false;\r\n periodMonthLabel = '';\r\n periodYearLabel = '';\r\n constructor(\r\n private _calendar: MatCalendar<Moment>,\r\n private _dateAdapter: DateAdapter<Moment>,\r\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\r\n private cdr: ChangeDetectorRef,\r\n private datePickerService: DrDatePickerService) {\r\n _calendar.stateChanges\r\n .pipe(takeUntil(this._destroyed))\r\n .subscribe(() => cdr.markForCheck());\r\n this.datePickerService.format\r\n .pipe(take(1))\r\n .subscribe( value => {\r\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format == value)[0].value;\r\n })\r\n }\r\n\r\n ngOnDestroy() {\r\n this._destroyed.next();\r\n this._destroyed.complete();\r\n }\r\n\r\n setPeriodLabels(currentTimeframeOption) {\r\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\r\n if (this.selectedTimeframe === 'month') {\r\n this.periodMonthLabel = fullPeriodLabel.slice(0,3);\r\n this.periodYearLabel = fullPeriodLabel.slice(4);\r\n } else {\r\n this.periodMonthLabel = '';\r\n this.periodYearLabel = fullPeriodLabel;\r\n }\r\n }\r\n \r\n setTimeframe() {\r\n this.timeframeSelection = false;\r\n this._calendar.currentView = this.selectedTimeframe;\r\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\r\n this.setPeriodLabels(chosenTimeframeOption);\r\n this.datePickerService.format.next(chosenTimeframeOption.format); \r\n this.datePickerService.setTimeframe(chosenTimeframeOption.format);\r\n if (this.selectedTimeframe == <MatCalendarView>'none') {\r\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\r\n }\r\n }\r\n\r\n get currentViewIsQuater() {\r\n return !['month', 'year', 'multi-year'].includes(this._calendar.currentView);\r\n }\r\n \r\n switchViewOnClickOnPeriodLabel(view: 'year' | 'multi-year') {\r\n this._calendar.currentView = view;\r\n }\r\n\r\n onSelectQuater(quarterNumber: number) {\r\n const monthsInQuarter = 3;\r\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\r\n\r\n const unadaptedDate = this._dateAdapter.addCalendarMonths(this._calendar.activeDate,\r\n monthsInQuarter * (quarterNumber - this.selectedQuarter));\r\n this._calendar.activeDate = unadaptedDate;\r\n this.datePickerService.updatedQuater.next(moment(unadaptedDate));\r\n this.datePickerService.calendarInstance.close();\r\n }\r\n\r\n pagingClicked(forward) {\r\n this.pagingSetup[this.selectedTimeframe] && this.pagingSetup[this.selectedTimeframe](forward);\r\n }\r\n\r\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\r\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward? amount: - amount);\r\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\r\n this.setPeriodLabels(chosenTimeframeOption);\r\n }\r\n }","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n ChangeDetectorRef, ViewChild, AfterViewInit, OnDestroy, Output, EventEmitter\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { MAT_DEFAULT_DATE_FORMAT, MONTH_YEAR_FORMAT, QUARTER_FORMAT, YEAR_FORMAT } from '../../models/datePicker';\r\nimport { Moment } from 'moment';\r\nimport { DrDatePickerCustomHeaderComponent } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { DrDatePickerService } from './dr-date-picker.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nconst moment = require('moment');\r\n\r\nconst noop = () => {};\r\n\r\n@Component({\r\n selector: 'dr-date-picker',\r\n templateUrl: './dr-date-picker.component.html',\r\n styleUrls: ['./dr-date-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true }\r\n ],\r\n\r\n})\r\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\r\n private _destroyed = new Subject<void> ();\r\n readonly = true;\r\n @Input() _format = MAT_DEFAULT_DATE_FORMAT;\r\n customHeader = DrDatePickerCustomHeaderComponent;\r\n @Output() onChangeFormat = new EventEmitter<string> ();\r\n @Input() set format(value) {\r\n if (value) {\r\n value = this.normalizeValue(value);\r\n this._format = value;\r\n this.datePickerService.format.next(value);\r\n this.datePickerService.setTimeframe(value);\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n @Input() timeframeSelection: boolean = false;\r\n @Input() takeEndOfPeriod: boolean = false;\r\n @Input() placeholder: string = 'Select';\r\n @Input() min: Date = null;\r\n @Input() max: Date = null;\r\n @ViewChild('datePicker') public dp;\r\n\r\n ngAfterViewInit(): void {\r\n this.datePickerService.calendarInstance = this.dp;\r\n if (this._format === MAT_DEFAULT_DATE_FORMAT) {\r\n return;\r\n }\r\n setTimeout(() => {\r\n const popupInstance = this.dp._popupComponentRef.instance;\r\n const calenderInstance = popupInstance._calendar._calendarHeaderPortal._attachedHost._attachedRef.instance;\r\n calenderInstance.currentPeriodClicked = function () {\r\n this.calendarViewSetup[this.datePickerService.timeframe] && this.calendarViewSetup[this.datePickerService.timeframe](this.calendar);\r\n };\r\n }, 1000);\r\n }\r\n\r\n calendarViewSetup = {\r\n 'year': (calendar) => calendar.currentView = 'multi-year',\r\n 'month': (calendar) => calendar.currentView = 'year',\r\n 'quarter': (calendar) => calendar.currentView = 'none',\r\n 'day': (calendar) => calendar.currentView = 'month'\r\n }\r\n\r\n pagingSetup = {\r\n 'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\r\n 'quarter': (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),\r\n 'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\r\n 'day': (forward) => this.pagingDateChange('addCalendarDays', 1, forward)\r\n }\r\n\r\n private innerValue: any = null;\r\n private onTouchedCallback: () => void = noop;\r\n private onChangeCallback: (_: any) => void = noop;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private _dateAdapter: DateAdapter<any>,\r\n private datePickerService: DrDatePickerService\r\n ) { \r\n datePickerService.format\r\n .pipe(takeUntil(this._destroyed))\r\n .subscribe((value) => {\r\n this._format = value;\r\n this.onChangeFormat.emit(this.normalizeValue(value));\r\n cdr.markForCheck()\r\n });\r\n\r\n datePickerService.updatedQuater\r\n .pipe(takeUntil(this._destroyed))\r\n .subscribe((value) => {\r\n this.tryToNormalaizeTimeframe(value, 'quarter')\r\n this.writeValue(value);\r\n this.onChangeCallback(value);\r\n });\r\n }\r\n\r\n tryToNormalaizeTimeframe(normalizedRef: Moment, timeframe: moment.unitOfTime.StartOf) {\r\n if (this.takeEndOfPeriod) {\r\n normalizedRef.endOf(timeframe);\r\n }\r\n }\r\n\r\n public get value(): number {\r\n return this.innerValue;\r\n }\r\n\r\n public set value(v: number) {\r\n if (v !== this.innerValue) {\r\n this.innerValue = v;\r\n this.onChangeCallback(v);\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n public writeValue(value: any): void {\r\n if (value !== this.innerValue) {\r\n if (value && typeof value === 'number') {\r\n this.innerValue = moment.unix(value);\r\n } else {\r\n this.innerValue = value;\r\n }\r\n this.tryToNormalaizeTimeframe(this.innerValue, this.datePickerService.timeframe)\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n get quarterDisplay() {\r\n return this.datePickerService.getQuarterDisplay(this.value, this._format);\r\n }\r\n\r\n normalizeValue(value) {\r\n if (value.includes('d')) {\r\n value = value.replace(/d/g, 'D');\r\n } else if (value.includes('D')) {\r\n value = value.replace(/D/g, 'd');\r\n }\r\n return value;\r\n }\r\n\r\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<any>) {\r\n if (this.datePickerService.timeframe == 'month') {\r\n this.tryToNormalaizeTimeframe(normalizedMonth, 'month');\r\n this.writeValue(normalizedMonth);\r\n this.onChangeCallback(normalizedMonth);\r\n datepicker.close();\r\n }\r\n }\r\n\r\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<any>) {\r\n if (this.datePickerService.timeframe == 'year') {\r\n this.tryToNormalaizeTimeframe(normalizedYear, 'year');\r\n this.writeValue(normalizedYear);\r\n this.onChangeCallback(normalizedYear);\r\n datepicker.close();\r\n } else if (['quarter', 'day'].includes(this.datePickerService.timeframe)) {\r\n this.writeValue(normalizedYear);\r\n datepicker.close();\r\n }\r\n }\r\n \r\n pagingClicked(forward) {\r\n this.pagingSetup[this.datePickerService.timeframe] && this.pagingSetup[this.datePickerService.timeframe](forward);\r\n this.datePickerService.calendarInstance.close();\r\n }\r\n\r\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\r\n const newValue = this._dateAdapter[actionCall](this.innerValue, forward? amount: - amount);\r\n this.writeValue(newValue);\r\n this.onChangeCallback(newValue);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._destroyed.next();\r\n this._destroyed.complete();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Inject,\r\n Input,\r\n Optional\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../models/datePicker';\r\n\r\n@Directive({\r\n selector: '[drDatePickerFormat]',\r\n providers: [\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter\r\n },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useClass: CustomDateFormat\r\n }\r\n ]\r\n})\r\nexport class DrDatePickerFormatDirective {\r\n @Input() public configDateParse: DateParse;\r\n @Input() public configDateDisplay: DateDisplay;\r\n\r\n @Input('drDatePickerFormat')\r\n set datePickerFormat(format: string) {\r\n if (this.configDateParse) {\r\n this.matDateFormat.updateDateFormat(\r\n this.configDateParse,\r\n this.configDateDisplay\r\n );\r\n } else {\r\n this.matDateFormat.updateDateFormat({dateInput: format});\r\n }\r\n const value = this.ngControl.value;\r\n this.ngControl.valueAccessor?.writeValue(value);\r\n }\r\n\r\n constructor(\r\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\r\n @Optional() private ngControl: NgControl\r\n ) {\r\n }\r\n}\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentRef } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { DrPopoverComponent } from './dr-popover.component';\r\n\r\nexport class DrPopoverRef<T = any> {\r\n\r\n componentRef: ComponentRef<DrPopoverComponent<T>>;\r\n\r\n protected onClose$: Subject<any> = new Subject();\r\n // FIXME: this decision was made because of the incompatible rxjs version\r\n /**\r\n * Correct type is @type {Observable<any>}\r\n */\r\n readonly onClose: any = this.onClose$.asObservable();\r\n\r\n readonly onBackdropClick: Observable<MouseEvent>;\r\n\r\n constructor(private overlayRef: OverlayRef) {\r\n this.onBackdropClick = this.overlayRef.backdropClick();\r\n }\r\n\r\n close(res?: any): void {\r\n this.overlayRef.detach();\r\n this.overlayRef.dispose();\r\n this.onClose$.next(res);\r\n this.onClose$.complete();\r\n }\r\n}\r\n","import { POPUP_POSITIONS } from './constants';\r\nimport { ElPosition } from './dropdown';\r\nimport { ElementRef } from '@angular/core';\r\nimport { OverlayConfig } from '@angular/cdk/overlay';\r\n\r\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\r\n\r\nexport interface Point {\r\n readonly x: number;\r\n readonly y: number;\r\n}\r\n\r\nexport interface IPopoverManualClosing {\r\n enabled: boolean;\r\n}\r\n\r\nexport interface IDrPopoverComponentModel {\r\n hostRef: ElementRef | HTMLElement | Point;\r\n position?: ElPosition;\r\n contentContext?: any;\r\n class?: string;\r\n overlayConfig?: DrPopoverConfig;\r\n manualClosing?: IPopoverManualClosing;\r\n targetElement?: HTMLElement;\r\n alignment?: DrPopoverAlignment;\r\n}\r\n\r\nexport interface DrPopoverConfig extends OverlayConfig {\r\n closeOnBackdropClick?: boolean;\r\n}\r\n\r\nexport type DrPopoverAlignment = 'host';\r\n\r\nexport enum DrPopoverAlignmentDimension {\r\n Width = 'width',\r\n Height = 'height',\r\n}\r\n\r\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\r\n hasBackdrop: false,\r\n closeOnBackdropClick: false,\r\n backdropClass: 'dr-popover-transparent-backdrop',\r\n};\r\n\r\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\r\n position: 'bottom',\r\n class: '',\r\n overlayConfig: {},\r\n manualClosing: { enabled: false },\r\n};\r\n\r\nexport function getAlignmentDimension(position: string): DrPopoverAlignmentDimension {\r\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\r\n if (position?.includes('left') || position?.includes('right')) {\r\n return DrPopoverAlignmentDimension.Height;\r\n }\r\n return DrPopoverAlignmentDimension.Width;\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n TemplateRef,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n HostBinding,\r\n} from '@angular/core';\r\nimport { trigger } from '@angular/animations';\r\nimport { POPUP_ANIMATION } from '../models/constants';\r\nimport { DrPopoverRef } from './dr-popover-ref';\r\nimport { IPopoverManualClosing, Point, DrPopoverAlignment, getAlignmentDimension } from '../models/popover';\r\n\r\n@Component({\r\n selector: 'dr-popover',\r\n templateUrl: './dr-popover.component.html',\r\n styleUrls: ['./dr-popover.component.scss'],\r\n animations: [\r\n trigger('popover', POPUP_ANIMATION),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DrPopoverComponent<T> implements OnInit {\r\n\r\n @Input() content: TemplateRef<any> | Type<T>;\r\n @Input() contentContext: any;\r\n @Input() class = '';\r\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\r\n @Input() manualClosing: IPopoverManualClosing;\r\n @Input() alignment: DrPopoverAlignment;\r\n @Input() position: string;\r\n\r\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\r\n isContentTemplate = false;\r\n componentRef: ComponentRef<T>;\r\n\r\n @HostBinding('style.width') width: string;\r\n @HostBinding('style.height') height: string;\r\n\r\n @HostBinding('@popover') public popover = true;\r\n\r\n @HostListener('document:mouseup', ['$event'])\r\n clickOutside(e): void {\r\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\r\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\r\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\r\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\r\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\r\n\r\n if (!isTargetHost\r\n && !isTargetInPopover\r\n && !isTargetInDatepicker\r\n && !isTargetInSelect\r\n && !isTargetInDatepickerContent\r\n && !this.manualClosing.enabled\r\n ) {\r\n this.popoverRef.close();\r\n }\r\n }\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private elementRef: ElementRef,\r\n private popoverRef: DrPopoverRef<T>,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.isContentTemplate = this.content instanceof TemplateRef;\r\n\r\n if (!this.isContentTemplate) {\r\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\r\n Object.assign(this.componentRef.instance, this.contentContext);\r\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\r\n }\r\n if (this.alignment === 'host') {\r\n this[getAlignmentDimension(this.position)] = '100%';\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n\r\n}\r\n","import { first } from 'rxjs/operators';\r\nimport { DrPopoverRef } from './dr-popover-ref';\r\nimport { DrPopoverComponent } from './dr-popover.component';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { Injectable, Injector, StaticProvider, TemplateRef, Type, ElementRef } from '@angular/core';\r\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\r\nimport { POPUP_POSITIONS } from '../models/constants';\r\nimport { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension, IDrPopoverComponentModel, Point } from '../models/popover';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DrPopoverService {\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private overlayPositionBuilder: OverlayPositionBuilder,\r\n private injector: Injector,\r\n ) { }\r\n\r\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\r\n if (!content) return;\r\n\r\n const model = { ...DEFAULT_MODEL, ...popoverModel };\r\n\r\n const overlayRef = this.createOverlay(model);\r\n\r\n const popoverRef = new DrPopoverRef<T>(overlayRef);\r\n\r\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\r\n\r\n this.registerListeners(model, overlayRef, popoverRef);\r\n\r\n return popoverRef;\r\n }\r\n\r\n private attachOverlayContainer<T>(\r\n content: Type<T> | TemplateRef<HTMLElement>,\r\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment }: IDrPopoverComponentModel,\r\n overlayRef: OverlayRef,\r\n popoverRef: DrPopoverRef<T>\r\n ): void {\r\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\r\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\r\n\r\n popoverRef.componentRef = contentRef;\r\n\r\n contentRef.instance.content = content;\r\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\r\n contentRef.instance.class = elementClass + ' ' + position;\r\n contentRef.instance.manualClosing = manualClosing;\r\n contentRef.instance.hostRef = hostRef;\r\n contentRef.instance.alignment = alignment;\r\n contentRef.instance.position = position;\r\n }\r\n\r\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\r\n const overlayConfig = this.getOverlayConfig(popoverModel);\r\n return this.overlay.create(overlayConfig);\r\n }\r\n\r\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\r\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${popoverModel?.position}' position!`);\r\n\r\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {}};\r\n const hostElement = this.getHostElement(popoverModel.hostRef);\r\n\r\n const positionStrategy = this.overlayPositionBuilder\r\n .flexibleConnectedTo(popoverModel.hostRef)\r\n .withPositions([POPUP_POSITIONS[popoverModel.position]]);\r\n\r\n const overlayConfig = new OverlayConfig({\r\n scrollStrategy: this.overlay.scrollStrategies.noop(),\r\n positionStrategy,\r\n ...config,\r\n });\r\n\r\n if (popoverModel.alignment === 'host' && hostElement) {\r\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\r\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\r\n }\r\n\r\n return overlayConfig;\r\n }\r\n\r\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\r\n const injectionTokens: StaticProvider[] = [\r\n { provide: DrPopoverRef, useValue: popoverRef },\r\n ];\r\n\r\n return Injector.create({ providers: injectionTokens, parent: this.injector });\r\n }\r\n\r\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\r\n const config = popoverModel.overlayConfig || {};\r\n const targetElement = popoverModel.targetElement;\r\n const hostElement = this.getHostElement(popoverModel.hostRef);\r\n\r\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\r\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\r\n }\r\n\r\n if (targetElement) {\r\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\r\n }\r\n\r\n if (popoverModel.alignment === 'host' && hostElement) {\r\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\r\n const resizeObserver = new ResizeObserver(entries => {\r\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\r\n });\r\n resizeObserver.observe(hostElement);\r\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\r\n }\r\n }\r\n\r\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\r\n if (!hostRef || (<Point>hostRef).x) return null;\r\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\r\n return <HTMLElement>hostRef;\r\n }\r\n\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n TemplateRef,\r\n Type,\r\n} from '@angular/core';\r\nimport { OverlayConfig } from '@angular/cdk/overlay';\r\nimport { first } from 'rxjs/operators';\r\nimport { ElPosition } from './../models/dropdown';\r\nimport { DrPopoverRef } from './dr-popover-ref';\r\nimport { DrPopoverService } from './dr-popover.service';\r\nimport { IPopoverManualClosing, DrPopoverAlignment } from '../models/popover';\r\n\r\n@Directive({\r\n selector: '[drPopover]'\r\n})\r\nexport class DrPopoverDirective<T> implements OnDestroy {\r\n\r\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\r\n\r\n @Input('drPopoverContext') contentContext: Object = {};\r\n\r\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\r\n\r\n @Input('drPopoverClass') class: string = '';\r\n\r\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\r\n\r\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\r\n\r\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\r\n\r\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\r\n\r\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\r\n\r\n private popoverRef: DrPopoverRef<T>;\r\n\r\n constructor(private elementRef: ElementRef,\r\n private drPopoverService: DrPopoverService,\r\n ) { }\r\n\r\n @HostListener('click')\r\n togglePopover(): void {\r\n if (this.popoverRef) {\r\n this.closePopover();\r\n } else {\r\n this.renderPopover();\r\n this.showStateChange.emit({ isShown: !!this.popoverRef });\r\n }\r\n }\r\n\r\n closePopover(res?: any): void {\r\n if (this.popoverRef) {\r\n this.popoverRef.close(res);\r\n this.popoverRef = null;\r\n }\r\n }\r\n\r\n private renderPopover(): void {\r\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\r\n hostRef: this.elementRef,\r\n overlayConfig: this.overlayConfig,\r\n class: this.class,\r\n manualClosing: this.manualClosing,\r\n position: this.position,\r\n contentContext: this.contentContext,\r\n alignment: this.alignment,\r\n });\r\n\r\n popoverRef.onClose.pipe(first()).subscribe((res) => {\r\n this.closePopover();\r\n this.popoverClose.emit(res);\r\n this.showStateChange.emit({ isShown: !!this.popoverRef });\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.closePopover();\r\n }\r\n}\r\n","import { ComponentRef, Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { DrDropdownComponent } from './dr-dropdown.component';\r\nimport { IDropdownAction } from '../models/dropdown';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DrDropdownService {\r\n\r\n actionItem = new Subject<IDropdownAction<unknown>>();\r\n protected menuInView: ComponentRef<DrDropdownComponent>;\r\n\r\n constructor() {\r\n }\r\n\r\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\r\n this.menuInView = item;\r\n }\r\n\r\n destroy() {\r\n if (this.menuInView) {\r\n this.menuInView.destroy();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\r\nimport { IDropdownItem, ElPosition, IDropdownActionIcon, IDropdown, IDropdownCoordinate } from '../models/dropdown';\r\nimport { DrDropdownService } from './dr-dropdown.service';\r\n\r\n@Component({\r\n selector: 'dr-dropdown',\r\n templateUrl: './dr-dropdown.component.html',\r\n styleUrls: ['./dr-dropdown.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrDropdownComponent {\r\n\r\n @ViewChild('listMenu') viewMenu: HTMLElement;\r\n @ViewChild('menuContainer') menuContainer: HTMLElement;\r\n option: any;\r\n position: ElPosition | IDropdownCoordinate = 'left';\r\n drDropdownInHover: boolean;\r\n list: IDropdownItem<unknown>[];\r\n containerClass: string;\r\n private firstInit: boolean;\r\n\r\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\r\n }\r\n\r\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\r\n if (data) {\r\n this.option = data.option;\r\n this.position = data.position;\r\n this.drDropdownInHover = data.drDropdownInHover;\r\n this.containerClass = data.class;\r\n this.list = data.list || [];\r\n this.list.forEach(item => {\r\n if (item.children?.length) {\r\n item.childOptions = {\r\n list: item.children,\r\n class: item?.childOptions?.class || '',\r\n position: 'child'\r\n };\r\n }\r\n });\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n onMouseLeave(): void {\r\n if (this.drDropdownInHover) this.menuService.destroy();\r\n }\r\n\r\n onClickedOutside(): void {\r\n if (this.firstInit) {\r\n this.menuService.destroy();\r\n } else {\r\n this.firstInit = true;\r\n }\r\n }\r\n\r\n hide(): void {\r\n this.menuService.destroy();\r\n }\r\n\r\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\r\n if (!act.disabled) {\r\n return false;\r\n }\r\n if (typeof act.disabled === 'boolean') {\r\n return act.disabled;\r\n } else {\r\n return act.disabled(act.data);\r\n }\r\n }\r\n\r\n selected(act: IDropdownItem<unknown>): boolean {\r\n if (!act.selected) {\r\n return false;\r\n }\r\n if (typeof act.selected === 'boolean') {\r\n return act.selected;\r\n } else {\r\n return act.selected(act.data);\r\n }\r\n }\r\n\r\n tooltipToShow(act: IDropdownItem<unknown>): string {\r\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\r\n return act.toolTip;\r\n }\r\n\r\n tooltipPosition(widthMoreRight: boolean) {\r\n return widthMoreRight ? 'right' : 'left';\r\n }\r\n\r\n action(act: IDropdownItem<any>) {\r\n if (!this.disabled(act)) {\r\n if (act.action) {\r\n act.action(act.data);\r\n } else {\r\n this.menuService.actionItem.next({event: act.event || act.title || 'default', data: act.data});\r\n }\r\n this.hide();\r\n }\r\n }\r\n\r\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\r\n $event.stopPropagation();\r\n if (!this.disabled(actionIcon)) {\r\n actionIcon.action(data);\r\n this.hide();\r\n }\r\n }\r\n}\r\n\r\n","import {\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n HostListener,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { IDropdownItem, ElPosition, IDropdown } from '../models/dropdown';\r\nimport { DrDropdownComponent } from './dr-dropdown.component';\r\nimport { DrDropdownService } from './dr-dropdown.service';\r\n\r\n@Directive({\r\n selector: '[drDropdown]'\r\n})\r\nexport class DrDropdownDirective<T> implements OnDestroy {\r\n\r\n @Input() position: ElPosition = 'left';\r\n @Input() drDropdown: IDropdownItem<T>[];\r\n @Input() drDropdownClass: string;\r\n @Input() drDropdownInHover: boolean;\r\n @ViewChild(DrDropdownComponent, {static: true, read: ViewContainerRef}) contentCmpRef;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private viewContainerRef: ViewContainerRef,\r\n private service: DrDropdownService,\r\n private el: ElementRef,\r\n @Inject(DOCUMENT) private _document: any) {\r\n }\r\n\r\n @HostListener('mouseenter') elementHover() {\r\n if (!this.drDropdownInHover) return;\r\n this.openDropdown();\r\n }\r\n\r\n @HostListener('click') elementClick() {\r\n this.openDropdown();\r\n }\r\n\r\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\r\n this.closeDropdown(e);\r\n }\r\n\r\n private openDropdown(): void {\r\n const option = this.el.nativeElement.getBoundingClientRect();\r\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\r\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\r\n this.contentCmpRef.destroy();\r\n this.contentCmpRef = null;\r\n } else {\r\n this.service.destroy();\r\n this.showMenu({\r\n option,\r\n drDropdownInHover: this.drDropdownInHover,\r\n position: this.position,\r\n list: this.drDropdown,\r\n class: this.drDropdownClass\r\n });\r\n }\r\n }\r\n\r\n private closeDropdown(e): void {\r\n const menuItem = e.target.classList;\r\n if (menuItem.contains('dr-dropdown__container__item') || menuItem.contains('dr-dropdown__container__item__text')) {\r\n return;\r\n }\r\n const elems = this._document.querySelectorAll('dr-dropdown');\r\n if (!e.target.contains(this.el.nativeElement) && this.contentCmpRef || elems.length && !e.target.contains(this.el.nativeElement)) {\r\n setTimeout(() => elems.forEach(item => item.remove()), 100);\r\n }\r\n }\r\n\r\n private showMenu(options: IDropdown<T>) {\r\n let componentFactory: ComponentFactory<DrDropdownComponent>;\r\n componentFactory = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\r\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\r\n this.service.addMenu = this.contentCmpRef;\r\n this._document.querySelector('nb-layout').appendChild(this.contentCmpRef.location.nativeElement);\r\n this.contentCmpRef.instance.options = options;\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.contentCmpRef) {\r\n this.contentCmpRef.destroy();\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { IDropdownCoordinate, ElPosition } from '../models/dropdown';\r\n\r\n@Directive({\r\n selector: '[drDropdownPosition]',\r\n exportAs: 'dropdownPosition'\r\n})\r\nexport class DrDropdownPositionDirective implements OnInit {\r\n\r\n @Input() drDropdownPosition;\r\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\r\n\r\n widthMoreRight: boolean;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit(): void {\r\n setTimeout(this.calculatePosition.bind(this), 1);\r\n }\r\n\r\n calculatePosition() {\r\n let xDifference = 0;\r\n let defaultDelta = 10;\r\n let defaultPadding = 0;\r\n\r\n if (this.position === 'child') {\r\n defaultDelta = 0;\r\n defaultPadding = 10;\r\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\r\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\r\n\r\n this.position = {\r\n x: this.el.nativeElement.offsetWidth,\r\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\r\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\r\n clientY: parentRect.y\r\n };\r\n }\r\n\r\n if (typeof this.position === 'string') {\r\n this.renderer.setStyle(this.el.nativeElement, 'top',\r\n this.position === 'bottom' ?\r\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\r\n this.drDropdownPosition.y + 'px');\r\n this.renderer.setStyle(this.el.nativeElement, 'left',\r\n this.position === 'right' ?\r\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\r\n this.drDropdownPosition.x + 'px');\r\n const menuHeight = this.el.nativeElement.offsetHeight;\r\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\r\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\r\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\r\n\r\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\r\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\r\n\r\n if (heightMoreWindowBottom) {\r\n this.position = 'top';\r\n }\r\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\r\n this.position = 'top-left';\r\n this.renderer.setStyle(this.el.nativeElement, 'transform',\r\n 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');\r\n }\r\n if (heightMoreWindowTop && heightMoreWindowBottom) {\r\n this.position = 'left-center';\r\n }\r\n if (this.position === 'bottom-left') {\r\n this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`);\r\n }\r\n const className = this.position === 'top' ? 'content-top'\r\n : this.position === 'top-left' ? 'content-top-left'\r\n : this.position === 'bottom' ? 'content-bottom'\r\n : this.position === 'bottom-left' ? 'content-bottom-left'\r\n : this.position === 'left' ? 'content-left'\r\n : this.position === 'left-center' ? 'content-left-center'\r\n : this.position === 'right' ? 'content-right'\r\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\r\n this.renderer.addClass(this.el.nativeElement, className);\r\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\r\n } else {\r\n const defaultChildPadding = 3;\r\n const widthMoreWindowRight = window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding);\r\n const widthMoreWindowBottom = window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding);\r\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\r\n this.widthMoreRight = !(widthMoreWindowRight < 0);\r\n\r\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\r\n ? -this.position.x + -defaultChildPadding\r\n : this.position.x + defaultChildPadding + xDifference;\r\n\r\n if (spaceRightAmount <= 0) {\r\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\r\n }\r\n\r\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\r\n\r\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\r\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\r\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IDropdownItem } from '../models/dropdown';\r\n\r\n@Pipe({\r\n name: 'drDropdownItemShowPipe'\r\n})\r\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\r\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\r\n return arr.filter(item => item.show ? item.show(item.data) : true);\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dr-tab',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `\r\n})\r\nexport class DrTabComponent implements OnInit {\r\n @Input() label: String;\r\n @Input() disabled: boolean;\r\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\r\n\r\n constructor() { }\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ContentChildren,\r\n QueryList,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { DrTabComponent } from './dr-tab.component';\r\n\r\n@Component({\r\n selector: 'dr-tabs',\r\n templateUrl: './dr-tabs.component.html',\r\n styleUrls: ['./dr-tabs.component.scss'],\r\n})\r\nexport class DrTabsComponent {\r\n\r\n @Input() selectedTab: number = 0;\r\n @Input() withRadio: boolean;\r\n @Input() vertical: boolean;\r\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\r\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\r\n\r\n constructor() { }\r\n\r\n selectedIndexChange($event) {\r\n this.selectedTab = $event;\r\n this.selectedTabChange.emit($event);\r\n }\r\n\r\n}\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'dr-accordion',\r\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\r\n styleUrls: ['./accordion.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DrAccordionComponent {\r\n static ngAcceptInputType_multi: any;\r\n openCloseItems = new Subject<boolean>();\r\n\r\n /**\r\n * Allow multiple items to be expanded at the same time.\r\n */\r\n @Input('multi')\r\n get multi(): boolean {\r\n return this.multiValue;\r\n }\r\n set multi(val: boolean) {\r\n this.multiValue = !!val;\r\n }\r\n\r\n private multiValue = false;\r\n\r\n /**\r\n * Opens all enabled accordion items.\r\n */\r\n openAll() {\r\n if (this.multi) {\r\n this.openCloseItems.next(false);\r\n }\r\n }\r\n\r\n /**\r\n * Closes all enabled accordion items.\r\n */\r\n closeAll() {\r\n this.openCloseItems.next(true);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n SimpleChanges,\r\n HostBinding,\r\n Host,\r\n OnInit,\r\n OnChanges,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DrAccordionComponent } from './accordion.component';\r\n\r\n@Component({\r\n selector: 'dr-accordion-item',\r\n styleUrls: ['./accordion-item.component.scss'],\r\n template: `\r\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\r\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n /**\r\n * Item is collapse (`true` by default)\r\n * @type {boolean}\r\n */\r\n @Input('collapsed')\r\n @HostBinding('class.collapsed')\r\n get collapsed(): boolean {\r\n return this.collapsedValue;\r\n }\r\n set collapsed(val: boolean) {\r\n this.collapsedValue = !!val;\r\n this.collapsedChange.emit(this.collapsedValue);\r\n this.invalidate();\r\n }\r\n static ngAcceptInputType_collapsed: any;\r\n\r\n /**\r\n * Item is expanded (`false` by default)\r\n */\r\n @Input('expanded')\r\n @HostBinding('class.expanded')\r\n get expanded(): boolean {\r\n return !this.collapsed;\r\n }\r\n set expanded(val: boolean) {\r\n this.collapsedValue = !val;\r\n }\r\n static ngAcceptInputType_expanded: any;\r\n\r\n /**\r\n * Item is disabled and cannot be opened.\r\n * @type {boolean}\r\n */\r\n @Input('disabled')\r\n @HostBinding('class.disabled')\r\n get disabled(): boolean {\r\n return this.disabledValue;\r\n }\r\n set disabled(val: boolean) {\r\n this.disabledValue = !!val;\r\n this.invalidate();\r\n }\r\n static ngAcceptInputType_disabled: any;\r\n\r\n /**\r\n * Emits whenever the expanded state of the accordion changes.\r\n * Primarily used to facilitate two-way binding.\r\n */\r\n @Output() collapsedChange = new EventEmitter<boolean>();\r\n\r\n accordionItemInvalidate = new Subject<boolean>();\r\n\r\n private collapsedValue = true;\r\n private disabledValue = false;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\r\n }\r\n\r\n /**\r\n * Open/close the item\r\n */\r\n toggle() {\r\n if (!this.disabled) {\r\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\r\n const willSet = !this.collapsed;\r\n\r\n if (!this.accordion.multi) {\r\n this.accordion.openCloseItems.next(true);\r\n }\r\n this.collapsed = willSet;\r\n }\r\n }\r\n\r\n /**\r\n * Open the item.\r\n */\r\n open() {\r\n if (!this.disabled) {\r\n this.collapsed = false;\r\n }\r\n }\r\n\r\n /**\r\n * Collapse the item.\r\n */\r\n close() {\r\n if (!this.disabled) {\r\n this.collapsed = true;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.accordion.openCloseItems\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(collapsed => {\r\n if (!this.disabled) {\r\n this.collapsed = collapsed;\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.accordionItemInvalidate.next(true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n this.accordionItemInvalidate.complete();\r\n }\r\n\r\n private invalidate() {\r\n this.accordionItemInvalidate.next(true);\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Host,\r\n HostBinding,\r\n HostListener,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { DrAccordionItemComponent } from './accordion-item.component';\r\n\r\n@Component({\r\n selector: 'dr-accordion-item-header',\r\n styleUrls: ['./accordion-item-header.component.scss'],\r\n template: `\r\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\r\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\r\n <ng-content></ng-content>\r\n <i class=\"dr-icon-arrow-down expansion-indicator\"\r\n [@expansionIndicator]=\"state\"\r\n *ngIf=\"!disabled\">\r\n </i>\r\n `,\r\n animations: [\r\n trigger('expansionIndicator', [\r\n state(\r\n 'expanded',\r\n style({\r\n transform: 'rotate(180deg)',\r\n }),\r\n ),\r\n transition('collapsed => expanded', animate('100ms ease-in')),\r\n transition('expanded => collapsed', animate('100ms ease-out')),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n\r\n @HostBinding('class.accordion-item-header-collapsed')\r\n get isCollapsed(): boolean {\r\n return this.accordionItem.collapsed;\r\n }\r\n\r\n @HostBinding('class.accordion-item-header-expanded')\r\n @HostBinding('attr.aria-expanded')\r\n get expanded(): boolean {\r\n return !this.accordionItem.collapsed;\r\n }\r\n\r\n @HostBinding('attr.tabindex')\r\n get tabbable(): string {\r\n return this.accordionItem.disabled ? '-1' : '0';\r\n }\r\n\r\n @HostBinding('attr.aria-disabled')\r\n get disabled(): boolean {\r\n return this.accordionItem.disabled;\r\n }\r\n\r\n @HostListener('click')\r\n @HostListener('keydown.space')\r\n @HostListener('keydown.enter')\r\n toggle() {\r\n this.accordionItem.toggle();\r\n }\r\n\r\n get state(): string {\r\n if (this.isCollapsed) {\r\n return 'collapsed';\r\n }\r\n return 'expanded';\r\n }\r\n\r\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.accordionItem.accordionItemInvalidate\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => this.cd.markForCheck());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Host,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { DrAccordionItemComponent } from './accordion-item.component';\r\n\r\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\r\n state(\r\n 'collapsed',\r\n style({\r\n overflow: 'hidden',\r\n visibility: 'hidden',\r\n height: 0,\r\n }),\r\n ),\r\n state(\r\n 'expanded',\r\n style({\r\n overflow: 'hidden',\r\n visibility: 'visible',\r\n }),\r\n ),\r\n transition('collapsed => expanded', animate('100ms ease-in')),\r\n transition('expanded => collapsed', animate('100ms ease-out')),\r\n]);\r\n\r\n@Component({\r\n selector: 'dr-accordion-item-body',\r\n template: `\r\n <div [@accordionItemBody]=\"{ value: state }\">\r\n <div class=\"item-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./accordion-item-body.component.scss'],\r\n animations: [accordionItemBodyTrigger],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {}\r\n\r\n get state(): string {\r\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\r\n }\r\n\r\n ngOnInit() {\r\n this.accordionItem.accordionItemInvalidate\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => this.cd.markForCheck());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { NgModel } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[ngModelDebounceChange]'\r\n})\r\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\r\n private subscription: Subscription;\r\n\r\n @Input() debounce: number = 200;\r\n @Output() ngModelDebounceChange = new EventEmitter<any>();\r\n\r\n constructor(private ngModel: NgModel) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.ngModel.control.valueChanges\r\n .pipe(skip(1), debounceTime(this.debounce), distinctUntilChanged())\r\n .subscribe(value => this.ngModelDebounceChange.emit(value));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { AnyTagComponent, DateTagComponent } from \"./date-tag.component\";\r\nimport { DayTagComponent } from \"./day-tag/day-tag.component\";\r\nimport { WeekTagComponent } from \"./week-tag/week-tag.component\";\r\nimport { MonthTagComponent } from \"./month-tag/month-tag.component\";\r\nimport { QuarterTagComponent } from \"./quarter-tag/quarter-tag.component\";\r\nimport { YearTagComponent } from \"./year-tag/year-tag.component\";\r\nimport { ForecastTagComponent } from \"./forecast-tag/forecast-tag.component\";\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from \"@angular/material-moment-adapter\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatNativeDateModule } from \"@angular/material/core\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\n\r\nexport const components = [DateTagComponent,\r\n DayTagComponent,\r\n WeekTagComponent,\r\n MonthTagComponent,\r\n QuarterTagComponent,\r\n AnyTagComponent,\r\n YearTagComponent,\r\n ForecastTagComponent];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatNativeDateModule,\r\n MatDatepickerModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatMomentDateModule,\r\n MatSelectModule\r\n ],\r\n exports: components,\r\n providers: [\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\r\n ],\r\n declarations: components,\r\n})\r\n\r\nexport class DateTagModule { };\r\n","import {NgModule} from \"@angular/core\";\r\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport {MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule} from \"@angular/material-moment-adapter\";\r\nimport {ListTagComponent} from \"./list-tag.component\";\r\nimport {MatFormFieldModule} from \"@angular/material/form-field\";\r\nimport {MatSelectModule} from \"@angular/material/select\";\r\nimport {MatButtonToggleModule} from \"@angular/material/button-toggle\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatMomentDateModule,\r\n MatSelectModule,\r\n MatButtonToggleModule,\r\n ],\r\n exports: [ListTagComponent],\r\n providers: [],\r\n declarations: [\r\n ListTagComponent\r\n ],\r\n})\r\n\r\nexport class ListTagModule {}\r\n","import {NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {DrTagComponent} from \"./dr-tag.component\";\r\nimport {ListTagModule} from \"../list-tags/list-tag.module\";\r\nimport { DateTagModule } from \"../date-tags/date-tag.module\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n DateTagModule,\r\n ListTagModule\r\n ],\r\n exports: [DrTagComponent],\r\n providers: [\r\n ],\r\n declarations: [\r\n DrTagComponent\r\n ],\r\n})\r\n\r\nexport class DrTagModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\nimport { DrInputComponent } from './dr-input/dr-input.component';\r\nimport { DrSelectComponent } from './dr-select/dr-select.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\r\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\r\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\r\nimport { DrButtonComponent } from './button/button.component';\r\n\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DrDatePickerComponent } from './dr-date-picker/dr-date-picker.component';\r\nimport { DrDatePickerFormatDirective } from './dr-date-picker/dr-date-picker-format.directive';\r\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\r\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\r\nimport { DrDatePickerCustomHeaderComponent } from './dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\r\nimport { DrDatePickerService } from './dr-date-picker/dr-date-picker.service';\r\n\r\nconst components = [\r\n DrButtonComponent,\r\n RadioButtonComponent,\r\n RadioGroupComponent,\r\n CheckboxComponent,\r\n DrInputComponent,\r\n DrSelectComponent,\r\n DrToggleComponent,\r\n DrToggleButtonComponent,\r\n DrDatePickerComponent,\r\n DrDatePickerFormatDirective,\r\n DrDatePickerCustomHeaderComponent,\r\n DrModelDebounceChangeDirective\r\n];\r\n\r\n@NgModule({\r\n declarations: components,\r\n exports: components,\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n NgSelectModule,\r\n MatDatepickerModule\r\n ],\r\n providers: [\r\n DrDatePickerService\r\n ]\r\n})\r\n\r\nexport class DrInputsModule {\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { DrTooltipDirective } from \"./dr-tooltip.directive\";\r\nimport { TooltipComponent } from \"./dr-tooltip.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n TooltipComponent,\r\n DrTooltipDirective,\r\n ],\r\n providers: [],\r\n declarations: [\r\n TooltipComponent,\r\n DrTooltipDirective,\r\n ],\r\n})\r\n\r\nexport class DrTooltipModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { DrAvatarComponent } from './dr-avatar.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DrAvatarPipe } from './dr-avatar.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n DrAvatarComponent,\r\n DrAvatarPipe\r\n ],\r\n exports: [\r\n DrAvatarComponent,\r\n DrAvatarPipe\r\n ],\r\n imports: [\r\n MatTooltipModule,\r\n DrTooltipModule,\r\n CommonModule\r\n ]\r\n})\r\n\r\nexport class DrAvatarModule {\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { DrSpinnerComponent } from './dr-spinner.component';\r\nimport { DrSpinnerDirective } from './dr-spinner.directive';\r\n\r\nconst components = [DrSpinnerComponent];\r\nconst directives = [DrSpinnerDirective];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [...components, ...directives],\r\n declarations: [...components, ...directives]\r\n})\r\n\r\nexport class DrSpinnerModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { DrPopoverDirective } from './dr-popover.directive';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DrPopoverComponent } from './dr-popover.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n exports: [\r\n DrPopoverDirective,\r\n DrPopoverComponent,\r\n ],\r\n providers: [],\r\n declarations: [\r\n DrPopoverDirective,\r\n DrPopoverComponent,\r\n ],\r\n})\r\n\r\nexport class DrPopoverModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\r\nimport { DrDropdownDirective } from './dr-dropdown.directive';\r\nimport { DrDropdownComponent } from './dr-dropdown.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\r\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\r\nimport { DrDropdownService } from './dr-dropdown.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n DrTooltipModule,\r\n ],\r\n declarations: [\r\n DrDropdownDirective,\r\n DrDropdownPositionDirective,\r\n DrDropdownComponent,\r\n DrDropdownItemShowPipe,\r\n ],\r\n exports: [\r\n DrDropdownDirective,\r\n DrDropdownPositionDirective,\r\n DrDropdownComponent,\r\n DrDropdownItemShowPipe,\r\n ],\r\n providers: [\r\n DrDropdownService,\r\n ],\r\n})\r\n\r\nexport class DrDropdownModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DrTabsComponent } from './dr-tabs.component';\r\nimport { DrTabComponent } from './dr-tab.component';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatTabsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DrInputsModule\r\n ],\r\n exports: [\r\n DrTabsComponent,\r\n DrTabComponent\r\n ],\r\n providers: [],\r\n declarations: [\r\n DrTabsComponent,\r\n DrTabComponent\r\n ],\r\n})\r\n\r\nexport class DrTabsModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DrAccordionComponent } from './accordion.component';\r\nimport { DrAccordionItemComponent } from './accordion-item.component';\r\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\r\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\r\n\r\nconst DR_ACCORDION_COMPONENTS = [\r\n DrAccordionComponent,\r\n DrAccordionItemComponent,\r\n DrAccordionItemHeaderComponent,\r\n DrAccordionItemBodyComponent,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [...DR_ACCORDION_COMPONENTS],\r\n declarations: [...DR_ACCORDION_COMPONENTS],\r\n providers: [],\r\n})\r\nexport class DrAccordionModule {}\r\n","/* components */\r\nexport * from './lib/date-tags/date-tag.component';\r\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\r\nexport * from './lib/date-tags/month-tag/month-tag.component';\r\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\r\nexport * from './lib/date-tags/week-tag/week-tag.component';\r\nexport * from './lib/date-tags/year-tag/year-tag.component';\r\nexport * from './lib/dr-tags/dr-tag.component';\r\nexport * from './lib/list-tags/list-tag.component';\r\nexport * from './lib/date-tags/day-tag/day-tag.component';\r\nexport * from './lib/date-tags/date-tag.component';\r\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\r\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\r\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\r\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\r\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\r\nexport * from './lib/dr-avatar/dr-avatar.component';\r\nexport * from './lib/dr-avatar/dr-avatar.pipe';\r\nexport * from './lib/dr-tooltip/dr-tooltip.component';\r\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\r\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\r\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\r\nexport * from './lib/dr-spinner/dr-spinner.component';\r\nexport * from './lib/dr-spinner/dr-spinner.directive';\r\nexport * from './lib/dr-inputs/button/button.component';\r\n\r\nexport * from './lib/dr-inputs/dr-date-picker/dr-date-picker.component';\r\nexport * from './lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive';\r\nexport * from './lib/dr-popover/dr-popover.directive';\r\nexport * from './lib/dr-popover/dr-popover.component';\r\nexport * from './lib/dr-popover/dr-popover.service';\r\n\r\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\r\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\r\nexport * from './lib/dr-dropdown/dr-dropdown.component';\r\nexport * from './lib/dr-dropdown/dr-dropdown.service';\r\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\r\nexport * from './lib/dr-tabs/dr-tabs.component';\r\nexport * from './lib/dr-tabs/dr-tab.component';\r\n\r\nexport * from './lib/dr-accordion/accordion.component';\r\nexport * from './lib/dr-accordion/accordion-item.component';\r\nexport * from './lib/dr-accordion/accordion-item-header.component';\r\nexport * from './lib/dr-accordion/accordion-item-body.component';\r\n\r\n/* directives */\r\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\r\n\r\n/* models */\r\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer } from './lib/models/serverTags';\r\nexport {\r\n ElPosition,\r\n IDropdown,\r\n IDropdownItem,\r\n IDropdownActionIcon,\r\n IDropdownCoordinate,\r\n IDropdownCallEvent,\r\n IDropdownAction\r\n} from './lib/models/dropdown';\r\nexport {\r\n DrPopoverRef,\r\n IDrPopoverComponentModel,\r\n Point,\r\n DrPopoverConfig,\r\n IPopoverManualClosing,\r\n DrPopoverAlignment,\r\n DrPopoverAlignmentDimension,\r\n} from './lib/models/popover';\r\n\r\n/* modules */\r\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\r\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\r\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\r\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\r\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\r\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\r\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\r\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\r\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\r\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\r\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\r\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 {DrDatePickerService as ɵc} from './lib/dr-inputs/dr-date-picker/dr-date-picker.service';\nexport {DrDatePickerCustomHeaderComponent as ɵe} from './lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {CustomDateFormat as ɵd} from './lib/models/datePicker';"],"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/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.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-inputs/dr-model-debounce-change.directive.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/dr-inputs/dr-inputs.module.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/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() disabled: boolean;\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\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 = v;\n this.onChangeCallback(v);\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 } 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() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Output() change: 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\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 @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 return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : item.email[0]).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, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\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 constructor() { }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\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';\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 @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\n private options;\n private manualHandling: boolean;\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\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling) return;\n\n this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.manualHandling) return;\n\n this.destroyTooltip();\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 const tooltipRef: ComponentRef<TooltipComponent> = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n tooltipRef.instance.content = this.content;\n tooltipRef.instance.contentContext = this.contentContext;\n tooltipRef.instance.position = this.position;\n tooltipRef.instance.options = this.options;\n tooltipRef.instance.class = this.class + ' ' + this.position;\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\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, OnInit } from '@angular/core';\n\nexport class ISpinnerOptions extends DOMRect {\n size: 'small' | 'medium' | 'big' | 'giant';\n}\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 implements OnInit {\n\n height = '10rem';\n private _options: ISpinnerOptions;\n set options(data: ISpinnerOptions) {\n if (data) {\n this._options = data;\n\n }\n }\n\n ngOnInit() {\n this.height = this._options.size === 'small'\n ? '5rem' : this._options.size === 'medium'\n ? '10rem' : this._options.size === 'big'\n ? '15rem' : this._options.size === 'giant'\n ? '20rem' : this.height;\n }\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';\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: 'small' | 'medium' | 'big' | 'giant';\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, size: this.drSpinnerSize});\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' | '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","export const MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy';\nexport const DATE_INPUT_FORMAT = 'YYYY/MM/DD';\nexport const YEAR_FORMAT = 'yyyy';\nexport const MONTH_YEAR_FORMAT = 'MM/yyyy';\nexport const QUARTER_FORMAT = 'Q/yyyy';\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: DATE_INPUT_FORMAT\n };\n private _display: DateDisplay = {\n dateInput: 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","import { Injectable } from \"@angular/core\";\nimport { MatDatepicker } from \"@angular/material/datepicker\";\nimport { Moment } from \"moment\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { MAT_DEFAULT_DATE_FORMAT } from \"../../models/datePicker\";\n\nconst moment = require('moment');\n\nexport type TimeframeOption = 'day' | 'quarter' | 'month' | 'year';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrDatePickerService {\n timeframe: TimeframeOption = 'day';\n format = new BehaviorSubject<string>(MAT_DEFAULT_DATE_FORMAT); \n updatedQuater = new Subject<Moment>(); \n calendarInstance: MatDatepicker<any>;\n\n getQuarterDisplay(value, format){\n return 'Q' + moment(value).quarter() + format.charAt(1) + moment(value).year();\n }\n \n setTimeframe(format) {\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n this.timeframe = 'quarter';\n break;\n case lowerCaseFormat.includes('d'):\n this.timeframe = 'day';\n break;\n case lowerCaseFormat.includes('m'):\n this.timeframe = 'month';\n break;\n case lowerCaseFormat.includes('y'):\n this.timeframe = 'year';\n break;\n default:\n this.timeframe = 'day';\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 { CustomDateFormat, MAT_DEFAULT_DATE_FORMAT, MONTH_YEAR_FORMAT, QUARTER_FORMAT, YEAR_FORMAT } from \"../../../models/datePicker\";\nimport { DrDatePickerService } from \"../dr-date-picker.service\";\n\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n title: string,\n value: MatCalendarView,\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 })\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 title: 'Day',\n value: 'month',\n format: MAT_DEFAULT_DATE_FORMAT,\n periodLabel: () => this._dateAdapter\n .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)\n .toLocaleUpperCase()\n },{\n title: 'Month',\n value: 'year',\n format: MONTH_YEAR_FORMAT,\n periodLabel: () => String(moment(this._calendar.activeDate).year())\n },{\n title: 'Quarter',\n value: <MatCalendarView> 'none',\n format: QUARTER_FORMAT,\n periodLabel: () => String(moment(this._calendar.activeDate).year())\n },{\n title: 'Year',\n value: 'multi-year',\n format: YEAR_FORMAT,\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 'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n 'none': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n 'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n 'multi-year': (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n }\n \n selectedTimeframe: MatCalendarView = 'month';\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\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 private datePickerService: DrDatePickerService) {\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format\n .pipe(take(1))\n .subscribe( value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format == value)[0].value;\n this.setPeriodLabels();\n });\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\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 === 'month') {\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;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.format.next(chosenTimeframeOption.format); \n this.datePickerService.setTimeframe(chosenTimeframeOption.format);\n if (this.selectedTimeframe == <MatCalendarView>'none') {\n this.selectedQuarter = moment(this._calendar.activeDate).quarter();\n }\n }\n\n get currentViewIsQuater() {\n return !['month', 'year', 'multi-year'].includes(this._calendar.currentView);\n }\n \n switchViewOnClickOnPeriodLabel(view: 'year' | 'multi-year') {\n this._calendar.currentView = view;\n }\n\n onSelectQuater(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.updatedQuater.next(moment(unadaptedDate));\n this.datePickerService.calendarInstance.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 }","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n ChangeDetectorRef, ViewChild, AfterViewInit, OnDestroy, Output, EventEmitter\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { MAT_DEFAULT_DATE_FORMAT, MONTH_YEAR_FORMAT, QUARTER_FORMAT, YEAR_FORMAT } from '../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DrDatePickerCustomHeaderComponent } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from './dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst moment = require('moment');\n\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 ],\n\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n private _destroyed = new Subject<void> ();\n readonly = true;\n @Input() _format = MAT_DEFAULT_DATE_FORMAT;\n customHeader = DrDatePickerCustomHeaderComponent;\n @Output() onChangeFormat = new EventEmitter<string> ();\n @Input() set format(value) {\n if (value) {\n value = this.normalizeValue(value);\n this._format = value;\n this.datePickerService.format.next(value);\n this.datePickerService.setTimeframe(value);\n this.cdr.markForCheck();\n }\n }\n @Input() timeframeSelection: boolean = false;\n @Input() takeEndOfPeriod: boolean = false;\n @Input() placeholder: string = 'Select';\n @Input() min: Date = null;\n @Input() max: Date = null;\n @ViewChild('datePicker') public dp;\n\n ngAfterViewInit(): void {\n this.datePickerService.calendarInstance = this.dp;\n if (this._format === MAT_DEFAULT_DATE_FORMAT) {\n return;\n }\n setTimeout(() => {\n const popupInstance = this.dp._popupComponentRef.instance;\n const calenderInstance = popupInstance._calendar._calendarHeaderPortal._attachedHost._attachedRef.instance;\n calenderInstance.currentPeriodClicked = function () {\n this.calendarViewSetup[this.datePickerService.timeframe] && this.calendarViewSetup[this.datePickerService.timeframe](this.calendar);\n };\n }, 1000);\n }\n\n calendarViewSetup = {\n 'year': (calendar) => calendar.currentView = 'multi-year',\n 'month': (calendar) => calendar.currentView = 'year',\n 'quarter': (calendar) => calendar.currentView = 'none',\n 'day': (calendar) => calendar.currentView = 'month'\n }\n\n pagingSetup = {\n 'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n 'quarter': (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),\n 'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n 'day': (forward) => this.pagingDateChange('addCalendarDays', 1, forward)\n }\n\n private innerValue: any = null;\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private _dateAdapter: DateAdapter<any>,\n private datePickerService: DrDatePickerService\n ) { \n datePickerService.format\n .pipe(takeUntil(this._destroyed))\n .subscribe((value) => {\n this._format = value;\n this.onChangeFormat.emit(this.normalizeValue(value));\n cdr.markForCheck()\n });\n\n datePickerService.updatedQuater\n .pipe(takeUntil(this._destroyed))\n .subscribe((value) => {\n this.tryToNormalaizeTimeframe(value, 'quarter')\n this.writeValue(value);\n this.onChangeCallback(value);\n });\n }\n\n tryToNormalaizeTimeframe(normalizedRef: Moment, timeframe: moment.unitOfTime.StartOf) {\n if (this.takeEndOfPeriod) {\n normalizedRef.endOf(timeframe);\n }\n normalizedRef.set('hour', 12);\n }\n\n public get value(): number {\n return this.innerValue;\n }\n\n public set value(v: number) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n public writeValue(value: any): void {\n if (value !== this.innerValue) {\n if (value && typeof value === 'number') {\n this.innerValue = moment.unix(value);\n } else {\n this.innerValue = value;\n }\n this.tryToNormalaizeTimeframe(this.innerValue, this.datePickerService.timeframe)\n this.cdr.markForCheck();\n }\n }\n\n get quarterDisplay() {\n return this.datePickerService.getQuarterDisplay(this.value, this._format);\n }\n\n normalizeValue(value) {\n if (value.includes('d')) {\n value = value.replace(/d/g, 'D');\n } else if (value.includes('D')) {\n value = value.replace(/D/g, 'd');\n }\n return value;\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<any>) {\n if (this.datePickerService.timeframe === 'month') {\n this.tryToNormalaizeTimeframe(normalizedMonth, 'month');\n this.writeValue(normalizedMonth);\n this.onChangeCallback(normalizedMonth);\n datepicker.close();\n }\n }\n\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<any>) {\n if (this.datePickerService.timeframe === 'year') {\n this.tryToNormalaizeTimeframe(normalizedYear, 'year');\n this.writeValue(normalizedYear);\n this.onChangeCallback(normalizedYear);\n datepicker.close();\n }\n }\n \n pagingClicked(forward) {\n this.pagingSetup[this.datePickerService.timeframe] && this.pagingSetup[this.datePickerService.timeframe](forward);\n this.datePickerService.calendarInstance.close();\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n const newValue = this._dateAdapter[actionCall](this.innerValue, forward? amount: - amount);\n this.writeValue(newValue);\n this.onChangeCallback(newValue);\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\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 { 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 @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.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 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 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 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('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 const menuItem = e.target.classList;\n if (menuItem.contains('dr-dropdown__container__item') || menuItem.contains('dr-dropdown__container__item__text')) {\n return;\n }\n const elems = this._document.querySelectorAll('dr-dropdown');\n if (!e.target.contains(this.el.nativeElement) && this.contentCmpRef || elems.length && !e.target.contains(this.el.nativeElement)) {\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('nb-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\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 = window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding);\n const widthMoreWindowBottom = window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding);\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) {\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 @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 { 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","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 { 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 { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerFormatDirective } from './dr-date-picker/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 './dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrDatePickerService } from './dr-date-picker/dr-date-picker.service';\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrModelDebounceChangeDirective\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatDatepickerModule\n ],\n providers: [\n DrDatePickerService\n ]\n})\n\nexport class DrInputsModule {\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\";\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ],\n providers: [],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\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","/* 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-inputs/dr-date-picker/dr-date-picker.component';\nexport * from './lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive';\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\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\n\n/* models */\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer } from './lib/models/serverTags';\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';\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';\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 {DrDatePickerService as ɵc} from './lib/dr-inputs/dr-date-picker/dr-date-picker.service';\nexport {DrDatePickerCustomHeaderComponent as ɵe} from './lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {CustomDateFormat as ɵd} from './lib/models/datePicker';"],"names":["moment","noop","components"],"mappings":"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"}
|