{"version":3,"sources":["src/app/shared/components/date-range/date-range.component.ts","src/app/shared/components/date-range/date-range.component.html"],"sourcesContent":["import { NgbDate, NgbCalendar, NgbDateStruct, NgbDatepicker, NgbDateParserFormatter, NgbDateAdapter, NgbDatepickerNavigateEvent } from '@ng-bootstrap/ng-bootstrap'\nimport { Component, EventEmitter, Injectable, Input, Output, inject } from '@angular/core'\n\n\n@Injectable()\nexport class USDateAdapter extends NgbDateAdapter {\n\treadonly DELIMITER = '/'\n\n\tfromModel(value: string | null): NgbDateStruct | null {\n\t\tif (value) {\n\t\t\tconst date = value.split(this.DELIMITER)\n\t\t\treturn {\n\t\t\t\tday: parseInt(date[1], 10),\n\t\t\t\tmonth: parseInt(date[0], 10),\n\t\t\t\tyear: parseInt(date[2], 10),\n\t\t\t}\n\t\t}\n\t\treturn null\n\t}\n\n\ttoModel(date: NgbDateStruct | null): string | null {\n\t\treturn date ? date.month + this.DELIMITER + date.day + this.DELIMITER + date.year : null\n\t}\n}\n\n@Injectable()\nexport class USDateParserFormatter extends NgbDateParserFormatter {\n\treadonly DELIMITER = '/'\n\n\tparse(value: string): NgbDateStruct | null {\n\t\tif (value) {\n\t\t\tconst date = value.split(this.DELIMITER)\n\t\t\tconst year = parseInt(date[2], 10)\n\n\t\t\tif (year > 1900) {\n\t\t\t\treturn {\n\t\t\t\t\tday: parseInt(date[1], 10),\n\t\t\t\t\tmonth: parseInt(date[0], 10),\n\t\t\t\t\tyear,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null\n\t}\n\n\tformat(date: NgbDateStruct | null): string {\n\t\treturn date ? date.month + this.DELIMITER + date.day + this.DELIMITER + date.year : ''\n\t}\n}\n\n@Component({\n selector: 'date-range',\n templateUrl: './date-range.component.html',\n styleUrls: ['./date-range.component.scss'],\n imports: [NgbDatepicker],\n providers: [\n { provide: NgbDateAdapter, useClass: USDateAdapter },\n { provide: NgbDateParserFormatter, useClass: USDateParserFormatter },\n ]\n})\nexport class DateRangeComponent {\n\n\tcalendar = inject(NgbCalendar)\n\tformatter = inject(NgbDateParserFormatter)\n\n\n\t@Input() set minDate(minDate: Date) {\n\t\tthis.fromDate = this.dateToNgbDate(minDate)\n\t}\n\t@Output() minDateChange = new EventEmitter()\n\n\t@Input() set maxDate(maxDate: Date) {\n\t\tthis.toDate = this.dateToNgbDate(maxDate)\n\t}\n\t@Output() maxDateChange = new EventEmitter()\n\n\tstartDate: NgbDate\n\thoveredDate: NgbDate | null = null\n\tfromDate: NgbDate | null = null\n\ttoDate: NgbDate | null = null\n\n\tconstructor() {\n\t\tconst today = this.calendar.getToday()\n\t\tthis.startDate = this.calendar.getPrev(today, 'm', 1)\n\t\tthis.fromDate = today\n\t\tthis.toDate = today\n\t}\n\n\tonDateSelection(date: NgbDate) {\n\t\tif (!this.fromDate && !this.toDate) {\n\t\t\tthis.fromDate = date\n\t\t\tthis.minDateChange.emit(this.NgbDateToDate(date))\n\t\t} else if (this.fromDate && !this.toDate && date.after(this.fromDate)) {\n\t\t\tthis.toDate = date\n\t\t\tthis.maxDateChange.emit(this.NgbDateToDate(date))\n\t\t} else {\n\t\t\tthis.toDate = null\n\t\t\tthis.fromDate = date\n\t\t\tthis.minDateChange.emit(this.NgbDateToDate(date))\n\t\t}\n\t}\n\n\tonFromNavigateEvent(event: NgbDatepickerNavigateEvent) {\n\t\tif (event.current) {\n\t\t\tthis.fromDate = new NgbDate(event.next.year, event.next.month, this.fromDate!.day)\n\t\t\tthis.minDateChange.emit(this.NgbDateToDate(this.fromDate))\n\t\t}\n\t}\n\n\tonToNavigateEvent(event: NgbDatepickerNavigateEvent) {\n\t\tif (event.current) {\n\t\t\tthis.toDate = new NgbDate(event.next.year, event.next.month, this.toDate!.day)\n\t\t\tthis.maxDateChange.emit(this.NgbDateToDate(this.toDate))\n\t\t}\n\t}\n\n\tisHovered(date: NgbDate) {\n\t\treturn (\n\t\t\tthis.fromDate && !this.toDate && this.hoveredDate && date.after(this.fromDate) && date.before(this.hoveredDate)\n\t\t)\n\t}\n\n\tisInside(date: NgbDate) {\n\t\treturn this.toDate && date.after(this.fromDate) && date.before(this.toDate)\n\t}\n\n\tisRange(date: NgbDate) {\n\t\treturn (\n\t\t\tdate.equals(this.fromDate) ||\n\t\t\t(this.toDate && date.equals(this.toDate)) ||\n\t\t\tthis.isInside(date) ||\n\t\t\tthis.isHovered(date)\n\t\t)\n\t}\n\n\tdateToNgbDate(d: Date): NgbDate {\n\t\treturn new NgbDate(d.getFullYear(), d.getMonth() + 1, d.getDate())\n\t}\n\n\tNgbDateToDate(d: NgbDate): Date {\n\t\treturn new Date(d.year, d.month - 1, d.day)\n\t}\n\n\tvalidateInput(currentValue: NgbDate | null, input: string, emitter: EventEmitter): NgbDate | null {\n\t\tconst parsed = this.formatter.parse(input)\n\t\tconst parsedDate = NgbDate.from(parsed)\n\t\tif (parsed && this.calendar.isValid(parsedDate)) {\n\t\t\temitter.emit(this.NgbDateToDate(parsedDate!))\n\t\t\treturn parsedDate\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n}\n","
\n\t
\n\t\t\n\t\t\n\t
\n\t
\n\t\t\n\t\t\n\t
\n
\n
\n\t
\n\t\t
\n\t\t\t\n\t\t
\n\t
\n\t
\n\t\t
\n\t\t\t\n\t\t
\n\t
\n
\n\n\n\t\n\t\t{{ date.day }}\n\t\n"],"names":["ɵɵelementStart","ɵɵlistener","date_r5","ɵɵrestoreView","_r4","$implicit","ctx_r5","ɵɵnextContext","ɵɵresetView","hoveredDate","ɵɵtext","ɵɵelementEnd","ɵɵclassProp","focused_r7","isRange","isHovered","isInside","ɵɵadvance","ɵɵtextInterpolate1","day","USDateAdapter","NgbDateAdapter","DELIMITER","fromModel","value","date","split","parseInt","month","year","toModel","__ngFactoryType__","factory","ɵfac","USDateParserFormatter","NgbDateParserFormatter","parse","format","DateRangeComponent","calendar","inject","NgbCalendar","formatter","minDate","fromDate","dateToNgbDate","minDateChange","EventEmitter","maxDate","toDate","maxDateChange","startDate","constructor","today","getToday","getPrev","onDateSelection","emit","NgbDateToDate","after","onFromNavigateEvent","event","current","NgbDate","next","onToNavigateEvent","before","equals","d","getFullYear","getMonth","getDate","Date","validateInput","currentValue","input","emitter","parsed","parsedDate","from","isValid","selectors","inputs","outputs","features","ɵɵProvidersFeature","provide","useClass","decls","vars","consts","template","rf","ctx","$event","i0","_r1","dpFromDate_r2","ɵɵreference","dpToDate_r3","ɵɵtemplate","DateRangeComponent_ng_template_16_Template","ɵɵtemplateRefExtractor","ɵɵproperty","t_r8","NgbDatepicker","styles"],"mappings":"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","debug_id":"ceb86bed-e148-5ef4-a10b-8108e131af95"}