@datarailsshared/datarailsshared 1.3.37 → 1.3.40
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/bundles/datarailsshared-datarailsshared.umd.js +13 -5
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.3.40.tgz +0 -0
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +8 -4
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +8 -4
- package/fesm2015/datarailsshared-datarailsshared.js +14 -6
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +2 -0
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.3.37.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.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/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;\r\n @Input() max;\r\n @Input() step;\r\n @Output() blur = 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() 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() 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;\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\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};\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 };\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 {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n ChangeDetectorRef, ViewChild, AfterViewInit\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, YEAR_FORMAT } from '../../models/datePicker';\r\nimport { Moment } from 'moment';\r\nimport * as moment from '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 {\r\n readonly = true;\r\n _lastView = 'month';\r\n _format = MAT_DEFAULT_DATE_FORMAT;\r\n\r\n @Input() set lastView(view: 'year' | 'month' | 'multi-year') {\r\n switch (view) {\r\n case 'year':\r\n this._lastView = 'multi-year';\r\n this._format = YEAR_FORMAT;\r\n break;\r\n case 'month':\r\n this._lastView = 'year';\r\n this._format = MONTH_YEAR_FORMAT;\r\n break;\r\n default:\r\n this._lastView = 'month';\r\n this._format = MAT_DEFAULT_DATE_FORMAT;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n @Input() set format(value) {\r\n if (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 this._format = value;\r\n this.cdr.markForCheck();\r\n }\r\n }\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 if (this._lastView === 'month') {\r\n return;\r\n }\r\n const lastView = this._lastView;\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 if (lastView === 'multi-year') {\r\n this.calendar.currentView = 'multi-year';\r\n } else if (lastView === 'year') {\r\n this.calendar.currentView = this.calendar.currentView == 'year' ? 'multi-year' : 'year';\r\n }\r\n };\r\n }, 1000);\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 ) { }\r\n\r\n public get value(): number {\r\n return this.innerValue;\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.cdr.markForCheck();\r\n }\r\n }\r\n\r\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<any>) {\r\n if (this._lastView === 'year') {\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._lastView === 'multi-year') {\r\n this.writeValue(normalizedYear);\r\n this.onChangeCallback(normalizedYear);\r\n datepicker.close();\r\n }\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 this.widthMoreRight = !(widthMoreWindowRight < 0);\r\n\r\n const calculatedHorizantallyPos = widthMoreWindowRight < 0\r\n ? -this.position.x + -defaultChildPadding\r\n : this.position.x + defaultChildPadding + xDifference;\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 { 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\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];\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})\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/* 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 {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {CustomDateFormat as ɵc} 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.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/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;\r\n @Input() max;\r\n @Input() step;\r\n @Output() blur = 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() 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\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};\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 };\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 {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n ChangeDetectorRef, ViewChild, AfterViewInit\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, YEAR_FORMAT } from '../../models/datePicker';\r\nimport { Moment } from 'moment';\r\nimport * as moment from '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 {\r\n readonly = true;\r\n _lastView = 'month';\r\n _format = MAT_DEFAULT_DATE_FORMAT;\r\n\r\n @Input() set lastView(view: 'year' | 'month' | 'multi-year') {\r\n switch (view) {\r\n case 'year':\r\n this._lastView = 'multi-year';\r\n this._format = YEAR_FORMAT;\r\n break;\r\n case 'month':\r\n this._lastView = 'year';\r\n this._format = MONTH_YEAR_FORMAT;\r\n break;\r\n default:\r\n this._lastView = 'month';\r\n this._format = MAT_DEFAULT_DATE_FORMAT;\r\n }\r\n this.cdr.markForCheck();\r\n }\r\n @Input() set format(value) {\r\n if (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 this._format = value;\r\n this.cdr.markForCheck();\r\n }\r\n }\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 if (this._lastView === 'month') {\r\n return;\r\n }\r\n const lastView = this._lastView;\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 if (lastView === 'multi-year') {\r\n this.calendar.currentView = 'multi-year';\r\n } else if (lastView === 'year') {\r\n this.calendar.currentView = this.calendar.currentView == 'year' ? 'multi-year' : 'year';\r\n }\r\n };\r\n }, 1000);\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 ) { }\r\n\r\n public get value(): number {\r\n return this.innerValue;\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.cdr.markForCheck();\r\n }\r\n }\r\n\r\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<any>) {\r\n if (this._lastView === 'year') {\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._lastView === 'multi-year') {\r\n this.writeValue(normalizedYear);\r\n this.onChangeCallback(normalizedYear);\r\n datepicker.close();\r\n }\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 { 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\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];\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})\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/* 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 {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {CustomDateFormat as ɵc} from './lib/models/datePicker';"],"names":["moment","noop","components"],"mappings":"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"}
|