pdm-ui-kit 1.3.0 → 1.4.0
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/calendar/date-picker.component.d.ts +2 -1
- package/esm2020/calendar/date-picker.component.mjs +15 -5
- package/esm2020/src/calendar/date-picker.component.mjs +15 -5
- package/fesm2015/pdm-ui-kit-src-calendar.mjs +14 -4
- package/fesm2015/pdm-ui-kit-src-calendar.mjs.map +1 -1
- package/fesm2015/pdm-ui-kit.mjs +14 -4
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit-src-calendar.mjs +14 -4
- package/fesm2020/pdm-ui-kit-src-calendar.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit.mjs +14 -4
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/package.json +1 -1
- package/src/calendar/date-picker.component.d.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdm-ui-kit-src-calendar.mjs","sources":["../../../src/calendar/calendar.component.ts","../../../src/calendar/calendar.component.html","../../../src/calendar/date-picker.component.ts","../../../src/calendar/date-picker.component.html","../../../src/calendar/calendar.module.ts","../../../src/calendar/pdm-ui-kit-src-calendar.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tEventEmitter,\n\tinject,\n\tInput,\n\tOutput,\n} from \"@angular/core\";\n\nexport type PdmCalendarVariant = \"single\" | \"range\";\n\nexport interface PdmCalendarRange {\n\tstart: Date | null;\n\tend: Date | null;\n}\n\ninterface PdmCalendarCell {\n\tdate: Date;\n\tlabel: number;\n\tmuted: boolean;\n\tdisabled: boolean;\n\tselected: boolean;\n\tinRange: boolean;\n\trangeFill: boolean;\n\trangeLeftCap: boolean;\n\trangeRightCap: boolean;\n}\n\ninterface PdmCalendarMonthView {\n\tdate: Date;\n\ttitle: string;\n\ttitleStyle: \"dropdowns\" | \"plain\";\n\tdropdownMonth?: string;\n\tdropdownYear?: string;\n\tshowPrevButton: boolean;\n\tshowNextButton: boolean;\n\tweeks: readonly (readonly PdmCalendarCell[])[];\n}\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\n\n@Component({\n\tselector: \"pdm-calendar\",\n\ttemplateUrl: \"./calendar.component.html\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmCalendarComponent {\n\tprivate _value: Date | null = null;\n\tprivate _rangeValue: PdmCalendarRange | null = null;\n\tprivate _month: Date | null = null;\n\n\tprivate readonly cdr = inject(ChangeDetectorRef);\n\n\t@Input() variant: PdmCalendarVariant | string = \"single\";\n\t@Input() className = \"\";\n\t@Input() disabledDates: Date[] = [];\n\t@Input() minDate: Date | null = null;\n\t@Input() maxDate: Date | null = null;\n\t@Input() minYear: number | null = null;\n\t@Input() maxYear: number | null = null;\n\t@Input() isDateDisabled: ((date: Date) => boolean) | null = null;\n\t@Input() allowSameDayRange = true;\n\t@Input() readonly = false;\n\n\t@Output() valueChange = new EventEmitter<Date | null>();\n\t@Output() rangeValueChange = new EventEmitter<PdmCalendarRange | null>();\n\t@Output() monthChange = new EventEmitter<Date>();\n\t@Output() dateClick = new EventEmitter<Date>();\n\t@Output() disabledDateClick = new EventEmitter<Date>();\n\n\t@Input()\n\tset value(value: Date | null) {\n\t\tthis._value = this.normalizeDate(value);\n\t}\n\tget value(): Date | null {\n\t\treturn this._value;\n\t}\n\n\t@Input()\n\tset rangeValue(value: PdmCalendarRange | null) {\n\t\tthis._rangeValue = value\n\t\t\t? {\n\t\t\t\t\tstart: this.normalizeDate(value.start),\n\t\t\t\t\tend: this.normalizeDate(value.end),\n\t\t\t\t}\n\t\t\t: null;\n\t}\n\tget rangeValue(): PdmCalendarRange | null {\n\t\treturn this._rangeValue;\n\t}\n\n\t@Input()\n\tset month(value: Date | null) {\n\t\tthis._month = value ? this.startOfMonth(value) : null;\n\t}\n\tget month(): Date | null {\n\t\treturn this._month;\n\t}\n\n\treadonly weekdays = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\treadonly monthOptions = [\n\t\t{ value: 0, label: \"Jan\" },\n\t\t{ value: 1, label: \"Feb\" },\n\t\t{ value: 2, label: \"Mar\" },\n\t\t{ value: 3, label: \"Apr\" },\n\t\t{ value: 4, label: \"May\" },\n\t\t{ value: 5, label: \"Jun\" },\n\t\t{ value: 6, label: \"Jul\" },\n\t\t{ value: 7, label: \"Aug\" },\n\t\t{ value: 8, label: \"Sep\" },\n\t\t{ value: 9, label: \"Oct\" },\n\t\t{ value: 10, label: \"Nov\" },\n\t\t{ value: 11, label: \"Dec\" },\n\t] as const;\n\n\tget resolvedVariant(): PdmCalendarVariant {\n\t\treturn this.variant === \"range\" ? \"range\" : \"single\";\n\t}\n\n\tget visibleMonths(): readonly PdmCalendarMonthView[] {\n\t\tconst baseMonth = this.getAnchorMonth();\n\n\t\tif (this.resolvedVariant === \"single\") {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tdate: baseMonth,\n\t\t\t\t\ttitle: this.formatMonthYear(baseMonth),\n\t\t\t\t\ttitleStyle: \"dropdowns\",\n\t\t\t\t\tdropdownMonth: this.formatMonthShort(baseMonth),\n\t\t\t\t\tdropdownYear: String(baseMonth.getFullYear()),\n\t\t\t\t\tshowPrevButton: true,\n\t\t\t\t\tshowNextButton: true,\n\t\t\t\t\tweeks: this.buildMonthWeeks(baseMonth, false),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tconst nextMonth = this.addMonths(baseMonth, 1);\n\t\treturn [\n\t\t\t{\n\t\t\t\tdate: baseMonth,\n\t\t\t\ttitle: this.formatMonthYear(baseMonth),\n\t\t\t\ttitleStyle: \"plain\",\n\t\t\t\tshowPrevButton: true,\n\t\t\t\tshowNextButton: false,\n\t\t\t\tweeks: this.buildMonthWeeks(baseMonth, true),\n\t\t\t},\n\t\t\t{\n\t\t\t\tdate: nextMonth,\n\t\t\t\ttitle: this.formatMonthYear(nextMonth),\n\t\t\t\ttitleStyle: \"plain\",\n\t\t\t\tshowPrevButton: false,\n\t\t\t\tshowNextButton: true,\n\t\t\t\tweeks: this.buildMonthWeeks(nextMonth, true),\n\t\t\t},\n\t\t];\n\t}\n\n\tget singleHeaderMonth(): number {\n\t\treturn this.getAnchorMonth().getMonth();\n\t}\n\n\tget singleHeaderYear(): number {\n\t\treturn this.getAnchorMonth().getFullYear();\n\t}\n\n\tget yearOptions(): readonly number[] {\n\t\tconst baseYear = new Date().getFullYear();\n\t\tconst selectedYear = this.singleHeaderYear;\n\t\tlet minYear =\n\t\t\tthis.minYear ??\n\t\t\t(this.minDate ? this.minDate.getFullYear() : baseYear - 100);\n\t\tlet maxYear =\n\t\t\tthis.maxYear ??\n\t\t\t(this.maxDate ? this.maxDate.getFullYear() : baseYear + 10);\n\t\tconst years: number[] = [];\n\n\t\tif (selectedYear < minYear) {\n\t\t\tminYear = selectedYear;\n\t\t}\n\n\t\tif (selectedYear > maxYear) {\n\t\t\tmaxYear = selectedYear;\n\t\t}\n\n\t\tif (minYear > maxYear) {\n\t\t\tconst nextMin = maxYear;\n\t\t\tmaxYear = minYear;\n\t\t\tminYear = nextMin;\n\t\t}\n\n\t\tfor (let year = minYear; year <= maxYear; year += 1) {\n\t\t\tyears.push(year);\n\t\t}\n\n\t\treturn years;\n\t}\n\n\tget rootClasses(): string[] {\n\t\treturn [\n\t\t\t\"border-border bg-background relative rounded-[10px] border border-solid p-3 shadow-sm\",\n\t\t\tthis.resolvedVariant === \"range\"\n\t\t\t\t? \"inline-flex items-start justify-center gap-4 shrink-0 grow-0 basis-auto\"\n\t\t\t\t: \"inline-flex flex-col gap-4 shrink-0 grow-0 basis-auto\",\n\t\t\tthis.className,\n\t\t];\n\t}\n\n\tget rootStyle(): Record<string, string> {\n\t\tconst width = this.resolvedVariant === \"range\" ? \"488px\" : \"250px\";\n\n\t\treturn {\n\t\t\twidth,\n\t\t\tminWidth: width,\n\t\t\tmaxWidth: width,\n\t\t\tminHeight: \"293px\",\n\t\t\tflex: \"0 0 auto\",\n\t\t\talignSelf: \"flex-start\",\n\t\t};\n\t}\n\n\tmonthPanelClasses(_index: number): string[] {\n\t\treturn [\n\t\t\t\"flex flex-col items-start\",\n\t\t\tthis.resolvedVariant === \"range\" ? \"w-[224px] gap-4\" : \"w-full gap-0\",\n\t\t];\n\t}\n\n\theaderClasses(month: PdmCalendarMonthView): string[] {\n\t\treturn [\n\t\t\t\"flex w-full items-center justify-between\",\n\t\t\tmonth.titleStyle === \"dropdowns\" ? \"\" : \"mb-4\",\n\t\t];\n\t}\n\n\tnavButtonClasses(): string[] {\n\t\treturn [\n\t\t\t\"flex h-8 w-8 appearance-none box-border items-center justify-center rounded-md border-0 bg-transparent p-0 text-foreground\",\n\t\t\t\"disabled:pointer-events-none disabled:opacity-40\",\n\t\t];\n\t}\n\n\tnavPlaceholderClasses(): string[] {\n\t\treturn [\"h-7 w-7 shrink-0\"];\n\t}\n\n\tdropdownWrapClasses(): string[] {\n\t\treturn [\"flex w-40 items-center justify-center gap-2\"];\n\t}\n\n\tdropdownClasses(widthClass: string): string[] {\n\t\treturn [\"flex h-8 items-center justify-center gap-1 px-1\", widthClass];\n\t}\n\n\tdropdownSelectClasses(): string[] {\n\t\treturn [\n\t\t\t\"text-foreground h-full bg-transparent text-sm font-medium leading-5\",\n\t\t\t\"appearance-none box-border border-0 outline-none ring-0 focus:outline-none focus:ring-0 text-center cursor-pointer\",\n\t\t];\n\t}\n\n\tget dropdownSelectStyle(): Record<string, string> {\n\t\treturn {\n\t\t\tappearance: \"none\",\n\t\t\tWebkitAppearance: \"none\",\n\t\t\tMozAppearance: \"none\",\n\t\t\tbackground: \"transparent\",\n\t\t\tborder: \"0\",\n\t\t\tboxShadow: \"none\",\n\t\t\toutline: \"0\",\n\t\t\tpadding: \"0\",\n\t\t\tmargin: \"0\",\n\t\t};\n\t}\n\n\tcalendarGridWrapClasses(): string[] {\n\t\treturn [\"flex w-full flex-col items-start\"];\n\t}\n\n\tweekdayRowClasses(): string[] {\n\t\treturn [\"flex w-full items-center\"];\n\t}\n\n\tweekdayCellClasses(): string[] {\n\t\treturn [\n\t\t\t\"text-muted-foreground flex h-[21px] w-8 items-center justify-center rounded-md text-xs leading-4\",\n\t\t];\n\t}\n\n\tweekRowClasses(): string[] {\n\t\treturn [\"flex w-full items-start pt-2\"];\n\t}\n\n\tdayCellClasses(cell: PdmCalendarCell): string[] {\n\t\treturn [\n\t\t\t\"relative flex h-8 w-8 shrink-0 items-center justify-center\",\n\t\t\tcell.rangeFill ? \"bg-accent\" : \"\",\n\t\t\tcell.rangeLeftCap ? \"rounded-l-md\" : \"\",\n\t\t\tcell.rangeRightCap ? \"rounded-r-md\" : \"\",\n\t\t];\n\t}\n\n\tdayButtonClasses(cell: PdmCalendarCell): string[] {\n\t\treturn [\n\t\t\t\"relative z-10 flex h-8 w-8 appearance-none box-border items-center justify-center rounded-md border-0 p-0 text-sm leading-5\",\n\t\t\tcell.selected\n\t\t\t\t? \"bg-primary text-primary-foreground\"\n\t\t\t\t: cell.rangeFill\n\t\t\t\t\t? \"bg-transparent text-accent-foreground\"\n\t\t\t\t\t: \"bg-transparent text-foreground\",\n\t\t\tcell.muted && !cell.rangeFill ? \"opacity-50\" : \"\",\n\t\t\tcell.disabled ? \"cursor-not-allowed opacity-40\" : \"\",\n\t\t\t!cell.disabled && !this.readonly && !cell.selected\n\t\t\t\t? \"hover:bg-accent/70\"\n\t\t\t\t: \"\",\n\t\t];\n\t}\n\n\tdayLabelClasses(_cell: PdmCalendarCell): string[] {\n\t\treturn [\"font-normal\"];\n\t}\n\n\ttrackByIndex = (index: number): number => {\n\t\treturn index;\n\t};\n\n\ttrackByDate = (_index: number, cell: PdmCalendarCell): string => {\n\t\treturn this.dateKey(cell.date);\n\t};\n\n\tgoToPreviousMonth(): void {\n\t\tthis.setAnchorMonth(this.addMonths(this.getAnchorMonth(), -1));\n\t}\n\n\tgoToNextMonth(): void {\n\t\tthis.setAnchorMonth(this.addMonths(this.getAnchorMonth(), 1));\n\t}\n\n\tonSingleMonthChange(monthValue: string): void {\n\t\tconst month = Number(monthValue);\n\t\tif (Number.isNaN(month) || month < 0 || month > 11) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst anchor = this.getAnchorMonth();\n\t\tthis.setAnchorMonth(new Date(anchor.getFullYear(), month, 1));\n\t}\n\n\tonSingleYearChange(yearValue: string): void {\n\t\tconst year = Number(yearValue);\n\t\tif (Number.isNaN(year)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst anchor = this.getAnchorMonth();\n\t\tthis.setAnchorMonth(new Date(year, anchor.getMonth(), 1));\n\t}\n\n\tonDatePressed(cell: PdmCalendarCell): void {\n\t\tconst date = this.cloneDate(cell.date);\n\n\t\tif (cell.disabled) {\n\t\t\tthis.disabledDateClick.emit(date);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dateClick.emit(date);\n\n\t\tif (this.resolvedVariant === \"single\") {\n\t\t\tthis._value = date;\n\t\t\tthis.valueChange.emit(this.cloneDate(date));\n\t\t\tthis.syncVisibleMonthToDate(date);\n\t\t\tthis.cdr.markForCheck();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.handleRangeSelection(date);\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tprivate handleRangeSelection(date: Date): void {\n\t\tconst current = this._rangeValue;\n\t\tconst currentStart = current?.start ? this.cloneDate(current.start) : null;\n\t\tconst currentEnd = current?.end ? this.cloneDate(current.end) : null;\n\n\t\tif (!currentStart || (currentStart && currentEnd)) {\n\t\t\tthis._rangeValue = { start: date, end: null };\n\t\t\tthis.rangeValueChange.emit({ start: this.cloneDate(date), end: null });\n\t\t\tthis.syncVisibleMonthToDate(date);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isSameDay(currentStart, date) && !this.allowSameDayRange) {\n\t\t\tthis._rangeValue = { start: date, end: null };\n\t\t\tthis.rangeValueChange.emit({ start: this.cloneDate(date), end: null });\n\t\t\treturn;\n\t\t}\n\n\t\tconst start =\n\t\t\tthis.compareDate(date, currentStart) < 0 ? date : currentStart;\n\t\tconst end = this.compareDate(date, currentStart) < 0 ? currentStart : date;\n\n\t\tif (this.rangeContainsBlockedDate(start, end)) {\n\t\t\tthis.disabledDateClick.emit(this.cloneDate(date));\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeValue = { start, end };\n\t\tthis.rangeValueChange.emit({\n\t\t\tstart: this.cloneDate(start),\n\t\t\tend: this.cloneDate(end),\n\t\t});\n\t\tthis.syncVisibleMonthToDate(start);\n\t}\n\n\tprivate buildMonthWeeks(\n\t\tmonth: Date,\n\t\tincludeRange: boolean,\n\t): readonly (readonly PdmCalendarCell[])[] {\n\t\tconst firstOfMonth = this.startOfMonth(month);\n\t\tconst start = this.startOfWeek(firstOfMonth);\n\t\tconst end = this.endOfWeek(this.endOfMonth(firstOfMonth));\n\t\tconst weeks: PdmCalendarCell[][] = [];\n\n\t\tlet cursor = this.cloneDate(start);\n\t\twhile (this.compareDate(cursor, end) <= 0) {\n\t\t\tconst row: PdmCalendarCell[] = [];\n\n\t\t\tfor (let col = 0; col < 7; col += 1) {\n\t\t\t\trow.push(this.buildCell(cursor, month, includeRange));\n\t\t\t\tcursor = this.addDays(cursor, 1);\n\t\t\t}\n\n\t\t\tweeks.push(row);\n\t\t}\n\n\t\tfor (const row of weeks) {\n\t\t\tfor (let col = 0; col < row.length; col += 1) {\n\t\t\t\tconst cell = row[col];\n\t\t\t\tif (!cell.inRange) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst leftInRow = col > 0 ? row[col - 1].inRange : false;\n\t\t\t\tconst rightInRow = col < row.length - 1 ? row[col + 1].inRange : false;\n\n\t\t\t\tcell.rangeLeftCap = !leftInRow;\n\t\t\t\tcell.rangeRightCap = !rightInRow;\n\t\t\t}\n\t\t}\n\n\t\treturn weeks;\n\t}\n\n\tprivate buildCell(\n\t\tdate: Date,\n\t\tvisibleMonth: Date,\n\t\tincludeRange: boolean,\n\t): PdmCalendarCell {\n\t\tconst normalized = this.cloneDate(date);\n\t\tconst inCurrentMonth =\n\t\t\tnormalized.getMonth() === visibleMonth.getMonth() &&\n\t\t\tnormalized.getFullYear() === visibleMonth.getFullYear();\n\t\tconst disabled = this.isBlocked(normalized);\n\n\t\tconst selectedSingle =\n\t\t\tthis.resolvedVariant === \"single\" &&\n\t\t\t!!this._value &&\n\t\t\tthis.isSameDay(normalized, this._value);\n\t\tconst rangeStart =\n\t\t\tincludeRange &&\n\t\t\t!!this._rangeValue?.start &&\n\t\t\tthis.isSameDay(normalized, this._rangeValue.start);\n\t\tconst rangeEnd =\n\t\t\tincludeRange &&\n\t\t\t!!this._rangeValue?.end &&\n\t\t\tthis.isSameDay(normalized, this._rangeValue.end);\n\t\tconst inRange =\n\t\t\tincludeRange &&\n\t\t\t!!this._rangeValue?.start &&\n\t\t\t!!this._rangeValue?.end &&\n\t\t\tthis.compareDate(normalized, this._rangeValue.start) >= 0 &&\n\t\t\tthis.compareDate(normalized, this._rangeValue.end) <= 0;\n\n\t\treturn {\n\t\t\tdate: normalized,\n\t\t\tlabel: normalized.getDate(),\n\t\t\tmuted: !inCurrentMonth,\n\t\t\tdisabled,\n\t\t\tselected: selectedSingle || rangeStart || rangeEnd,\n\t\t\tinRange,\n\t\t\trangeFill: inRange,\n\t\t\trangeLeftCap: false,\n\t\t\trangeRightCap: false,\n\t\t};\n\t}\n\n\tprivate getAnchorMonth(): Date {\n\t\tlet candidate: Date | null = null;\n\n\t\tif (this._month) {\n\t\t\tcandidate = this.cloneDate(this._month);\n\t\t} else if (this.resolvedVariant === \"single\" && this._value) {\n\t\t\tcandidate = this.startOfMonth(this._value);\n\t\t} else if (this.resolvedVariant === \"range\" && this._rangeValue?.start) {\n\t\t\tcandidate = this.startOfMonth(this._rangeValue.start);\n\t\t} else {\n\t\t\tcandidate = this.startOfMonth(new Date());\n\t\t}\n\n\t\tif (!this.isValidDate(candidate)) {\n\t\t\treturn this.startOfMonth(new Date());\n\t\t}\n\n\t\treturn candidate;\n\t}\n\n\tprivate setAnchorMonth(month: Date): void {\n\t\tconst normalized = this.startOfMonth(month);\n\t\tif (!this.isValidDate(normalized)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._month = normalized;\n\t\tthis.monthChange.emit(this.cloneDate(this._month));\n\t}\n\n\tprivate syncVisibleMonthToDate(date: Date): void {\n\t\tconst nextMonth = this.startOfMonth(date);\n\t\tif (!this._month || !this.isSameMonth(this._month, nextMonth)) {\n\t\t\tthis._month = nextMonth;\n\t\t\tthis.monthChange.emit(this.cloneDate(nextMonth));\n\t\t}\n\t}\n\n\tprivate isBlocked(date: Date): boolean {\n\t\tif (this.minDate && this.compareDate(date, this.minDate) < 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.maxDate && this.compareDate(date, this.maxDate) > 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst blockedSet = new Set(\n\t\t\t(this.disabledDates || []).map((item) => this.dateKey(item)),\n\t\t);\n\t\tif (blockedSet.has(this.dateKey(date))) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!this.isDateDisabled?.(this.cloneDate(date));\n\t}\n\n\tprivate rangeContainsBlockedDate(start: Date, end: Date): boolean {\n\t\tlet cursor = this.cloneDate(start);\n\n\t\twhile (this.compareDate(cursor, end) <= 0) {\n\t\t\tif (this.isBlocked(cursor)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcursor = this.addDays(cursor, 1);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate normalizeDate(value: Date | null | undefined): Date | null {\n\t\tif (!(value instanceof Date) || Number.isNaN(value.getTime())) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new Date(value.getFullYear(), value.getMonth(), value.getDate());\n\t}\n\n\tprivate cloneDate(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n\n\tprivate isValidDate(date: Date | null | undefined): date is Date {\n\t\treturn !!date && date instanceof Date && !Number.isNaN(date.getTime());\n\t}\n\n\tprivate startOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), 1);\n\t}\n\n\tprivate endOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\n\t}\n\n\tprivate startOfWeek(date: Date): Date {\n\t\treturn this.addDays(date, -date.getDay());\n\t}\n\n\tprivate endOfWeek(date: Date): Date {\n\t\treturn this.addDays(date, 6 - date.getDay());\n\t}\n\n\tprivate addMonths(date: Date, months: number): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + months, 1);\n\t}\n\n\tprivate addDays(date: Date, days: number): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate() + days);\n\t}\n\n\tprivate compareDate(a: Date, b: Date): number {\n\t\treturn this.dateValue(a) - this.dateValue(b);\n\t}\n\n\tprivate dateValue(date: Date): number {\n\t\treturn (\n\t\t\tDate.UTC(date.getFullYear(), date.getMonth(), date.getDate()) / DAY_MS\n\t\t);\n\t}\n\n\tprivate isSameDay(a: Date, b: Date): boolean {\n\t\treturn this.compareDate(a, b) === 0;\n\t}\n\n\tprivate isSameMonth(a: Date, b: Date): boolean {\n\t\treturn a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\t}\n\n\tprivate dateKey(date: Date): string {\n\t\tconst y = date.getFullYear();\n\t\tconst m = String(date.getMonth() + 1).padStart(2, \"0\");\n\t\tconst d = String(date.getDate()).padStart(2, \"0\");\n\t\treturn `${y}-${m}-${d}`;\n\t}\n\n\tprivate formatMonthShort(date: Date): string {\n\t\treturn date.toLocaleString(\"en-US\", { month: \"short\" });\n\t}\n\n\tprivate formatMonthYear(date: Date): string {\n\t\treturn date.toLocaleString(\"en-US\", { month: \"long\", year: \"numeric\" });\n\t}\n}\n","<div [ngClass]=\"rootClasses\" [ngStyle]=\"rootStyle\">\n <div *ngFor=\"let month of visibleMonths; let monthIndex = index; trackBy: trackByIndex\" [ngClass]=\"monthPanelClasses(monthIndex)\">\n <div [ngClass]=\"headerClasses(month)\">\n <button\n *ngIf=\"month.showPrevButton; else prevPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Previous month\"\n (click)=\"goToPreviousMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m15 18-6-6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #prevPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n\n <ng-container *ngIf=\"month.titleStyle === 'dropdowns'; else plainTitle\">\n <div [ngClass]=\"dropdownWrapClasses()\">\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[72px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderMonth\"\n aria-label=\"Month\"\n (change)=\"onSingleMonthChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let monthOption of monthOptions\"\n [value]=\"monthOption.value\"\n [selected]=\"monthOption.value === singleHeaderMonth\"\n >\n {{ monthOption.label }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[82px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderYear\"\n aria-label=\"Year\"\n (change)=\"onSingleYearChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let year of yearOptions\"\n [value]=\"year\"\n [selected]=\"year === singleHeaderYear\"\n >\n {{ year }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-template #plainTitle>\n <div class=\"flex min-w-0 flex-1 items-center justify-center\">\n <p class=\"m-0 text-foreground text-center text-sm font-medium leading-5\">\n {{ month.title }}\n </p>\n </div>\n </ng-template>\n\n <button\n *ngIf=\"month.showNextButton; else nextPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Next month\"\n (click)=\"goToNextMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m9 18 6-6-6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #nextPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n </div>\n\n <div [ngClass]=\"calendarGridWrapClasses()\">\n <div [ngClass]=\"weekdayRowClasses()\">\n <div *ngFor=\"let day of weekdays; trackBy: trackByIndex\" [ngClass]=\"weekdayCellClasses()\">\n <span>{{ day }}</span>\n </div>\n </div>\n\n <div *ngFor=\"let week of month.weeks; trackBy: trackByIndex\" [ngClass]=\"weekRowClasses()\">\n <div *ngFor=\"let cell of week; trackBy: trackByDate\" [ngClass]=\"dayCellClasses(cell)\">\n <button\n type=\"button\"\n [ngClass]=\"dayButtonClasses(cell)\"\n [disabled]=\"readonly\"\n [attr.aria-selected]=\"cell.selected\"\n [attr.aria-disabled]=\"cell.disabled || readonly\"\n [attr.title]=\"cell.date | date : 'yyyy-MM-dd'\"\n (click)=\"onDatePressed(cell)\"\n >\n <span [ngClass]=\"dayLabelClasses(cell)\">{{ cell.label }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOnDestroy,\n\tOutput,\n\tViewChild,\n\tViewContainerRef,\n} from \"@angular/core\";\nimport { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { Subscription } from \"rxjs\";\nimport { format as formatDateFns } from \"date-fns\";\nimport type {\n\tPdmCalendarRange,\n\tPdmCalendarVariant,\n} from \"./calendar.component\";\nimport { PdmOverlayOptions } from \"pdm-ui-kit/src/overlay\";\nimport { createFlexiblePositionStrategy } from \"pdm-ui-kit/src/overlay\";\nimport {\n\tmergeOverlayPanelClass,\n\tOVERLAY_BASE_Z_INDEX,\n} from \"pdm-ui-kit/src/overlay\";\n\nlet nextDatePickerId = 0;\n\n@Component({\n\tselector: \"pdm-date-picker\",\n\ttemplateUrl: \"./date-picker.component.html\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmDatePickerComponent implements OnDestroy {\n\tprivate _value: Date | null = null;\n\tprivate _rangeValue: PdmCalendarRange | null = null;\n\tprivate _open = false;\n\n\tprivate readonly instanceId = `pdm-date-picker-${++nextDatePickerId}`;\n\tprivate triggerFocused = false;\n\n\tprivate overlayRef: OverlayRef | null = null;\n\tprivate backdropSub: Subscription | null = null;\n\n\t@ViewChild(\"triggerEl\") private triggerRef?: ElementRef<HTMLElement>;\n\t@ViewChild(\"panelTemplate\") private panelTemplateRef!: any;\n\n\tconstructor(\n\t\tprivate readonly cdr: ChangeDetectorRef,\n\t\tprivate readonly overlay: Overlay,\n\t\tprivate readonly viewContainerRef: ViewContainerRef,\n\t) {}\n\n\t@Input() id = \"\";\n\t@Input() variant: PdmCalendarVariant | string = \"single\";\n\t@Input() label = \"\";\n\t@Input() labelClassName = \"\";\n\t@Input() className = \"\";\n\t@Input() triggerClassName = \"\";\n\t/**\n\t * Additional CSS classes applied to the overlay panel.\n\t * Backward-compatible: mapped to `overlayOptions.panelClass` when `overlayOptions` is not set.\n\t * When both are supplied, `overlayOptions.panelClass` takes precedence.\n\t */\n\t@Input() panelClassName = \"\";\n\t/**\n\t * Optional CDK OverlayConfig overrides.\n\t * Shallow-merged on top of component defaults — consumer always wins.\n\t * Providing `positionStrategy` or `scrollStrategy` replaces the component default entirely.\n\t */\n\t@Input() overlayOptions?: PdmOverlayOptions;\n\t@Input() placeholder = \"Pick a date\";\n\t@Input() rangePlaceholder = \"Pick a date range\";\n\t@Input() format = \"MMM d, yyyy\";\n\t@Input() disabled = false;\n\t@Input() readonly = false;\n\t@Input() required = false;\n\t@Input() invalid = false;\n\t@Input() allowSameDayRange = true;\n\t@Input() closeOnSelect = true;\n\t@Input() minDate: Date | null = null;\n\t@Input() maxDate: Date | null = null;\n\t@Input() minYear: number | null = null;\n\t@Input() maxYear: number | null = null;\n\t@Input() disabledDates: Date[] = [];\n\t@Input() isDateDisabled: ((date: Date) => boolean) | null = null;\n\n\t@Output() valueChange = new EventEmitter<Date | null>();\n\t@Output() rangeValueChange = new EventEmitter<PdmCalendarRange | null>();\n\t@Output() openChange = new EventEmitter<boolean>();\n\t@Output() monthChange = new EventEmitter<Date>();\n\n\t@Input()\n\tset open(value: boolean) {\n\t\tif (this._open === !!value) return;\n\t\tif (value) {\n\t\t\tthis.openPanel();\n\t\t} else {\n\t\t\tthis.closePanel();\n\t\t}\n\t}\n\tget open(): boolean {\n\t\treturn this._open;\n\t}\n\n\t@Input()\n\tset value(value: Date | null) {\n\t\tthis._value = this.normalizeDate(value);\n\t\tthis.cdr.markForCheck();\n\t}\n\tget value(): Date | null {\n\t\treturn this._value;\n\t}\n\n\t@Input()\n\tset rangeValue(value: PdmCalendarRange | null) {\n\t\tthis._rangeValue = value\n\t\t\t? {\n\t\t\t\t\tstart: this.normalizeDate(value.start),\n\t\t\t\t\tend: this.normalizeDate(value.end),\n\t\t\t\t}\n\t\t\t: null;\n\t\tthis.cdr.markForCheck();\n\t}\n\tget rangeValue(): PdmCalendarRange | null {\n\t\treturn this._rangeValue;\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroyOverlay();\n\t}\n\n\tget resolvedVariant(): PdmCalendarVariant {\n\t\treturn this.variant === \"range\" ? \"range\" : \"single\";\n\t}\n\n\tget triggerId(): string {\n\t\treturn this.id || `${this.instanceId}-trigger`;\n\t}\n\n\tget panelId(): string {\n\t\treturn `${this.id || this.instanceId}-panel`;\n\t}\n\n\tget hasSingleValue(): boolean {\n\t\treturn this.resolvedVariant === \"single\" && !!this._value;\n\t}\n\n\tget hasRangeValue(): boolean {\n\t\treturn this.resolvedVariant === \"range\" && !!this._rangeValue?.start;\n\t}\n\n\tget displayText(): string {\n\t\tif (this.resolvedVariant === \"single\") {\n\t\t\treturn this._value ? this.formatDate(this._value) : this.placeholder;\n\t\t}\n\n\t\tconst start = this._rangeValue?.start ?? null;\n\t\tconst end = this._rangeValue?.end ?? null;\n\n\t\tif (!start) {\n\t\t\treturn this.rangePlaceholder;\n\t\t}\n\n\t\tif (!end) {\n\t\t\treturn `${this.formatDate(start)} -`;\n\t\t}\n\n\t\treturn `${this.formatDate(start)} - ${this.formatDate(end)}`;\n\t}\n\n\tget textClasses(): string[] {\n\t\tconst hasValue =\n\t\t\tthis.resolvedVariant === \"single\"\n\t\t\t\t? this.hasSingleValue\n\t\t\t\t: this.hasRangeValue;\n\t\treturn [\n\t\t\t\"min-w-0 flex-1 truncate text-left text-sm leading-5\",\n\t\t\thasValue ? \"text-foreground\" : \"text-muted-foreground\",\n\t\t];\n\t}\n\n\tget rootClasses(): string[] {\n\t\treturn [\n\t\t\t\"grid gap-2\",\n\t\t\tthis.resolvedVariant === \"range\" ? \"w-[280px]\" : \"w-[197px]\",\n\t\t\tthis.className,\n\t\t];\n\t}\n\n\tget triggerClasses(): string[] {\n\t\tconst focusStyle = this._open || this.triggerFocused;\n\n\t\treturn [\n\t\t\t\"border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive relative flex w-full appearance-none box-border items-center gap-2 overflow-hidden rounded-lg border border-solid bg-background px-3 py-[7.5px] text-left text-sm shadow-sm outline-none transition-colors\",\n\t\t\t\"min-h-[36px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\tfocusStyle ? \"border-ring ring-2 ring-ring/50\" : \"\",\n\t\t\tthis.invalid ? \"border-destructive ring-destructive/20\" : \"\",\n\t\t\tthis.triggerClassName,\n\t\t];\n\t}\n\n\ttoggleOpen(): void {\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setOpen(!this._open);\n\t}\n\n\tonTriggerFocus(): void {\n\t\tthis.triggerFocused = true;\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tonTriggerBlur(): void {\n\t\tthis.triggerFocused = false;\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tonCalendarValueChange(value: Date | null): void {\n\t\tthis._value = this.normalizeDate(value);\n\t\tthis.valueChange.emit(this._value ? this.cloneDate(this._value) : null);\n\n\t\tif (this.closeOnSelect && this._value) {\n\t\t\tthis.setOpen(false);\n\t\t} else {\n\t\t\tthis.cdr.markForCheck();\n\t\t}\n\t}\n\n\tonCalendarRangeValueChange(value: PdmCalendarRange | null): void {\n\t\tthis._rangeValue = value\n\t\t\t? {\n\t\t\t\t\tstart: this.normalizeDate(value.start),\n\t\t\t\t\tend: this.normalizeDate(value.end),\n\t\t\t\t}\n\t\t\t: null;\n\n\t\tthis.rangeValueChange.emit(\n\t\t\tthis._rangeValue\n\t\t\t\t? {\n\t\t\t\t\t\tstart: this._rangeValue.start\n\t\t\t\t\t\t\t? this.cloneDate(this._rangeValue.start)\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tend: this._rangeValue.end\n\t\t\t\t\t\t\t? this.cloneDate(this._rangeValue.end)\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t);\n\n\t\tif (\n\t\t\tthis.closeOnSelect &&\n\t\t\tthis._rangeValue?.start &&\n\t\t\tthis._rangeValue?.end\n\t\t) {\n\t\t\tthis.setOpen(false);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tonCalendarMonthChange(month: Date): void {\n\t\tthis.monthChange.emit(this.cloneDate(month));\n\t}\n\n\t@HostListener(\"document:keydown.escape\")\n\tonEscape(): void {\n\t\tif (this._open) {\n\t\t\tthis.setOpen(false);\n\t\t}\n\t}\n\n\tprivate setOpen(nextOpen: boolean): void {\n\t\tif (this._open === nextOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (nextOpen) {\n\t\t\tthis.openPanel();\n\t\t} else {\n\t\t\tthis.closePanel();\n\t\t}\n\t}\n\n\tprivate openPanel(): void {\n\t\tif (this.overlayRef) return;\n\n\t\tconst triggerEl = this.triggerRef?.nativeElement;\n\t\tif (!triggerEl) return;\n\n\t\tthis._open = true;\n\t\tthis.openChange.emit(true);\n\t\tthis.cdr.markForCheck();\n\n\t\tconst positionStrategy = createFlexiblePositionStrategy(\n\t\t\tthis.overlay,\n\t\t\ttriggerEl,\n\t\t\t8,\n\t\t);\n\n\t\t// CRITICAL: Use mergeOverlayPanelClass to ensure z-index is never lost.\n\t\t// Consumer classes are appended AFTER base z-index.\n\t\tconst zIndexEnforced = mergeOverlayPanelClass(\n\t\t\tOVERLAY_BASE_Z_INDEX,\n\t\t\tthis.panelClassName,\n\t\t);\n\n\t\t// Resolve panelClass: overlayOptions.panelClass wins; otherwise use z-index enforced.\n\t\tconst resolvedPanelClass = this.overlayOptions?.panelClass\n\t\t\t? mergeOverlayPanelClass(\n\t\t\t\t\tOVERLAY_BASE_Z_INDEX,\n\t\t\t\t\tthis.overlayOptions.panelClass,\n\t\t\t\t)\n\t\t\t: zIndexEnforced;\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t\t// Consumer overrides are spread first.\n\t\t\t...this.overlayOptions,\n\t\t\t// panelClass always enforced last to preserve z-index.\n\t\t\tpanelClass: resolvedPanelClass,\n\t\t});\n\n\t\tconst portal = new TemplatePortal(\n\t\t\tthis.panelTemplateRef,\n\t\t\tthis.viewContainerRef,\n\t\t);\n\t\tthis.overlayRef.attach(portal);\n\n\t\tthis.backdropSub = this.overlayRef\n\t\t\t.outsidePointerEvents()\n\t\t\t.subscribe((event) => {\n\t\t\t\tconst target = event.target as Node;\n\t\t\t\tif (!triggerEl.contains(target)) {\n\t\t\t\t\tthis.closePanel();\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tprivate closePanel(): void {\n\t\tif (!this.overlayRef && !this._open) return;\n\n\t\tthis._open = false;\n\t\tthis.openChange.emit(false);\n\t\tthis.destroyOverlay();\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tprivate destroyOverlay(): void {\n\t\tif (this.backdropSub) {\n\t\t\tthis.backdropSub.unsubscribe();\n\t\t\tthis.backdropSub = null;\n\t\t}\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = null;\n\t\t}\n\t}\n\n\tprivate formatDate(date: Date): string {\n\t\ttry {\n\t\t\treturn formatDateFns(date, this.format || \"MMM d, yyyy\");\n\t\t} catch {\n\t\t\treturn formatDateFns(date, \"MMM d, yyyy\");\n\t\t}\n\t}\n\n\tprivate normalizeDate(value: Date | null | undefined): Date | null {\n\t\tif (!(value instanceof Date) || Number.isNaN(value.getTime())) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new Date(value.getFullYear(), value.getMonth(), value.getDate());\n\t}\n\n\tprivate cloneDate(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n}\n","<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PdmLabelModule } from \"pdm-ui-kit/src/label\";\nimport { PdmCalendarComponent } from \"./calendar.component\";\nimport { PdmDatePickerComponent } from \"./date-picker.component\";\n\nconst COMPONENTS = [PdmCalendarComponent, PdmDatePickerComponent];\n\n@NgModule({\n\timports: [CommonModule, OverlayModule, PdmLabelModule],\n\tdeclarations: COMPONENTS,\n\texports: COMPONENTS,\n})\nexport class PdmCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["formatDateFns","i1","i2","i4.PdmCalendarComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pdm-ui-kit-src-calendar.mjs","sources":["../../../src/calendar/calendar.component.ts","../../../src/calendar/calendar.component.html","../../../src/calendar/date-picker.component.ts","../../../src/calendar/date-picker.component.html","../../../src/calendar/calendar.module.ts","../../../src/calendar/pdm-ui-kit-src-calendar.ts"],"sourcesContent":["import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tEventEmitter,\n\tinject,\n\tInput,\n\tOutput,\n} from \"@angular/core\";\n\nexport type PdmCalendarVariant = \"single\" | \"range\";\n\nexport interface PdmCalendarRange {\n\tstart: Date | null;\n\tend: Date | null;\n}\n\ninterface PdmCalendarCell {\n\tdate: Date;\n\tlabel: number;\n\tmuted: boolean;\n\tdisabled: boolean;\n\tselected: boolean;\n\tinRange: boolean;\n\trangeFill: boolean;\n\trangeLeftCap: boolean;\n\trangeRightCap: boolean;\n}\n\ninterface PdmCalendarMonthView {\n\tdate: Date;\n\ttitle: string;\n\ttitleStyle: \"dropdowns\" | \"plain\";\n\tdropdownMonth?: string;\n\tdropdownYear?: string;\n\tshowPrevButton: boolean;\n\tshowNextButton: boolean;\n\tweeks: readonly (readonly PdmCalendarCell[])[];\n}\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\n\n@Component({\n\tselector: \"pdm-calendar\",\n\ttemplateUrl: \"./calendar.component.html\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmCalendarComponent {\n\tprivate _value: Date | null = null;\n\tprivate _rangeValue: PdmCalendarRange | null = null;\n\tprivate _month: Date | null = null;\n\n\tprivate readonly cdr = inject(ChangeDetectorRef);\n\n\t@Input() variant: PdmCalendarVariant | string = \"single\";\n\t@Input() className = \"\";\n\t@Input() disabledDates: Date[] = [];\n\t@Input() minDate: Date | null = null;\n\t@Input() maxDate: Date | null = null;\n\t@Input() minYear: number | null = null;\n\t@Input() maxYear: number | null = null;\n\t@Input() isDateDisabled: ((date: Date) => boolean) | null = null;\n\t@Input() allowSameDayRange = true;\n\t@Input() readonly = false;\n\n\t@Output() valueChange = new EventEmitter<Date | null>();\n\t@Output() rangeValueChange = new EventEmitter<PdmCalendarRange | null>();\n\t@Output() monthChange = new EventEmitter<Date>();\n\t@Output() dateClick = new EventEmitter<Date>();\n\t@Output() disabledDateClick = new EventEmitter<Date>();\n\n\t@Input()\n\tset value(value: Date | null) {\n\t\tthis._value = this.normalizeDate(value);\n\t}\n\tget value(): Date | null {\n\t\treturn this._value;\n\t}\n\n\t@Input()\n\tset rangeValue(value: PdmCalendarRange | null) {\n\t\tthis._rangeValue = value\n\t\t\t? {\n\t\t\t\t\tstart: this.normalizeDate(value.start),\n\t\t\t\t\tend: this.normalizeDate(value.end),\n\t\t\t\t}\n\t\t\t: null;\n\t}\n\tget rangeValue(): PdmCalendarRange | null {\n\t\treturn this._rangeValue;\n\t}\n\n\t@Input()\n\tset month(value: Date | null) {\n\t\tthis._month = value ? this.startOfMonth(value) : null;\n\t}\n\tget month(): Date | null {\n\t\treturn this._month;\n\t}\n\n\treadonly weekdays = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] as const;\n\treadonly monthOptions = [\n\t\t{ value: 0, label: \"Jan\" },\n\t\t{ value: 1, label: \"Feb\" },\n\t\t{ value: 2, label: \"Mar\" },\n\t\t{ value: 3, label: \"Apr\" },\n\t\t{ value: 4, label: \"May\" },\n\t\t{ value: 5, label: \"Jun\" },\n\t\t{ value: 6, label: \"Jul\" },\n\t\t{ value: 7, label: \"Aug\" },\n\t\t{ value: 8, label: \"Sep\" },\n\t\t{ value: 9, label: \"Oct\" },\n\t\t{ value: 10, label: \"Nov\" },\n\t\t{ value: 11, label: \"Dec\" },\n\t] as const;\n\n\tget resolvedVariant(): PdmCalendarVariant {\n\t\treturn this.variant === \"range\" ? \"range\" : \"single\";\n\t}\n\n\tget visibleMonths(): readonly PdmCalendarMonthView[] {\n\t\tconst baseMonth = this.getAnchorMonth();\n\n\t\tif (this.resolvedVariant === \"single\") {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tdate: baseMonth,\n\t\t\t\t\ttitle: this.formatMonthYear(baseMonth),\n\t\t\t\t\ttitleStyle: \"dropdowns\",\n\t\t\t\t\tdropdownMonth: this.formatMonthShort(baseMonth),\n\t\t\t\t\tdropdownYear: String(baseMonth.getFullYear()),\n\t\t\t\t\tshowPrevButton: true,\n\t\t\t\t\tshowNextButton: true,\n\t\t\t\t\tweeks: this.buildMonthWeeks(baseMonth, false),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tconst nextMonth = this.addMonths(baseMonth, 1);\n\t\treturn [\n\t\t\t{\n\t\t\t\tdate: baseMonth,\n\t\t\t\ttitle: this.formatMonthYear(baseMonth),\n\t\t\t\ttitleStyle: \"plain\",\n\t\t\t\tshowPrevButton: true,\n\t\t\t\tshowNextButton: false,\n\t\t\t\tweeks: this.buildMonthWeeks(baseMonth, true),\n\t\t\t},\n\t\t\t{\n\t\t\t\tdate: nextMonth,\n\t\t\t\ttitle: this.formatMonthYear(nextMonth),\n\t\t\t\ttitleStyle: \"plain\",\n\t\t\t\tshowPrevButton: false,\n\t\t\t\tshowNextButton: true,\n\t\t\t\tweeks: this.buildMonthWeeks(nextMonth, true),\n\t\t\t},\n\t\t];\n\t}\n\n\tget singleHeaderMonth(): number {\n\t\treturn this.getAnchorMonth().getMonth();\n\t}\n\n\tget singleHeaderYear(): number {\n\t\treturn this.getAnchorMonth().getFullYear();\n\t}\n\n\tget yearOptions(): readonly number[] {\n\t\tconst baseYear = new Date().getFullYear();\n\t\tconst selectedYear = this.singleHeaderYear;\n\t\tlet minYear =\n\t\t\tthis.minYear ??\n\t\t\t(this.minDate ? this.minDate.getFullYear() : baseYear - 100);\n\t\tlet maxYear =\n\t\t\tthis.maxYear ??\n\t\t\t(this.maxDate ? this.maxDate.getFullYear() : baseYear + 10);\n\t\tconst years: number[] = [];\n\n\t\tif (selectedYear < minYear) {\n\t\t\tminYear = selectedYear;\n\t\t}\n\n\t\tif (selectedYear > maxYear) {\n\t\t\tmaxYear = selectedYear;\n\t\t}\n\n\t\tif (minYear > maxYear) {\n\t\t\tconst nextMin = maxYear;\n\t\t\tmaxYear = minYear;\n\t\t\tminYear = nextMin;\n\t\t}\n\n\t\tfor (let year = minYear; year <= maxYear; year += 1) {\n\t\t\tyears.push(year);\n\t\t}\n\n\t\treturn years;\n\t}\n\n\tget rootClasses(): string[] {\n\t\treturn [\n\t\t\t\"border-border bg-background relative rounded-[10px] border border-solid p-3 shadow-sm\",\n\t\t\tthis.resolvedVariant === \"range\"\n\t\t\t\t? \"inline-flex items-start justify-center gap-4 shrink-0 grow-0 basis-auto\"\n\t\t\t\t: \"inline-flex flex-col gap-4 shrink-0 grow-0 basis-auto\",\n\t\t\tthis.className,\n\t\t];\n\t}\n\n\tget rootStyle(): Record<string, string> {\n\t\tconst width = this.resolvedVariant === \"range\" ? \"488px\" : \"250px\";\n\n\t\treturn {\n\t\t\twidth,\n\t\t\tminWidth: width,\n\t\t\tmaxWidth: width,\n\t\t\tminHeight: \"293px\",\n\t\t\tflex: \"0 0 auto\",\n\t\t\talignSelf: \"flex-start\",\n\t\t};\n\t}\n\n\tmonthPanelClasses(_index: number): string[] {\n\t\treturn [\n\t\t\t\"flex flex-col items-start\",\n\t\t\tthis.resolvedVariant === \"range\" ? \"w-[224px] gap-4\" : \"w-full gap-0\",\n\t\t];\n\t}\n\n\theaderClasses(month: PdmCalendarMonthView): string[] {\n\t\treturn [\n\t\t\t\"flex w-full items-center justify-between\",\n\t\t\tmonth.titleStyle === \"dropdowns\" ? \"\" : \"mb-4\",\n\t\t];\n\t}\n\n\tnavButtonClasses(): string[] {\n\t\treturn [\n\t\t\t\"flex h-8 w-8 appearance-none box-border items-center justify-center rounded-md border-0 bg-transparent p-0 text-foreground\",\n\t\t\t\"disabled:pointer-events-none disabled:opacity-40\",\n\t\t];\n\t}\n\n\tnavPlaceholderClasses(): string[] {\n\t\treturn [\"h-7 w-7 shrink-0\"];\n\t}\n\n\tdropdownWrapClasses(): string[] {\n\t\treturn [\"flex w-40 items-center justify-center gap-2\"];\n\t}\n\n\tdropdownClasses(widthClass: string): string[] {\n\t\treturn [\"flex h-8 items-center justify-center gap-1 px-1\", widthClass];\n\t}\n\n\tdropdownSelectClasses(): string[] {\n\t\treturn [\n\t\t\t\"text-foreground h-full bg-transparent text-sm font-medium leading-5\",\n\t\t\t\"appearance-none box-border border-0 outline-none ring-0 focus:outline-none focus:ring-0 text-center cursor-pointer\",\n\t\t];\n\t}\n\n\tget dropdownSelectStyle(): Record<string, string> {\n\t\treturn {\n\t\t\tappearance: \"none\",\n\t\t\tWebkitAppearance: \"none\",\n\t\t\tMozAppearance: \"none\",\n\t\t\tbackground: \"transparent\",\n\t\t\tborder: \"0\",\n\t\t\tboxShadow: \"none\",\n\t\t\toutline: \"0\",\n\t\t\tpadding: \"0\",\n\t\t\tmargin: \"0\",\n\t\t};\n\t}\n\n\tcalendarGridWrapClasses(): string[] {\n\t\treturn [\"flex w-full flex-col items-start\"];\n\t}\n\n\tweekdayRowClasses(): string[] {\n\t\treturn [\"flex w-full items-center\"];\n\t}\n\n\tweekdayCellClasses(): string[] {\n\t\treturn [\n\t\t\t\"text-muted-foreground flex h-[21px] w-8 items-center justify-center rounded-md text-xs leading-4\",\n\t\t];\n\t}\n\n\tweekRowClasses(): string[] {\n\t\treturn [\"flex w-full items-start pt-2\"];\n\t}\n\n\tdayCellClasses(cell: PdmCalendarCell): string[] {\n\t\treturn [\n\t\t\t\"relative flex h-8 w-8 shrink-0 items-center justify-center\",\n\t\t\tcell.rangeFill ? \"bg-accent\" : \"\",\n\t\t\tcell.rangeLeftCap ? \"rounded-l-md\" : \"\",\n\t\t\tcell.rangeRightCap ? \"rounded-r-md\" : \"\",\n\t\t];\n\t}\n\n\tdayButtonClasses(cell: PdmCalendarCell): string[] {\n\t\treturn [\n\t\t\t\"relative z-10 flex h-8 w-8 appearance-none box-border items-center justify-center rounded-md border-0 p-0 text-sm leading-5\",\n\t\t\tcell.selected\n\t\t\t\t? \"bg-primary text-primary-foreground\"\n\t\t\t\t: cell.rangeFill\n\t\t\t\t\t? \"bg-transparent text-accent-foreground\"\n\t\t\t\t\t: \"bg-transparent text-foreground\",\n\t\t\tcell.muted && !cell.rangeFill ? \"opacity-50\" : \"\",\n\t\t\tcell.disabled ? \"cursor-not-allowed opacity-40\" : \"\",\n\t\t\t!cell.disabled && !this.readonly && !cell.selected\n\t\t\t\t? \"hover:bg-accent/70\"\n\t\t\t\t: \"\",\n\t\t];\n\t}\n\n\tdayLabelClasses(_cell: PdmCalendarCell): string[] {\n\t\treturn [\"font-normal\"];\n\t}\n\n\ttrackByIndex = (index: number): number => {\n\t\treturn index;\n\t};\n\n\ttrackByDate = (_index: number, cell: PdmCalendarCell): string => {\n\t\treturn this.dateKey(cell.date);\n\t};\n\n\tgoToPreviousMonth(): void {\n\t\tthis.setAnchorMonth(this.addMonths(this.getAnchorMonth(), -1));\n\t}\n\n\tgoToNextMonth(): void {\n\t\tthis.setAnchorMonth(this.addMonths(this.getAnchorMonth(), 1));\n\t}\n\n\tonSingleMonthChange(monthValue: string): void {\n\t\tconst month = Number(monthValue);\n\t\tif (Number.isNaN(month) || month < 0 || month > 11) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst anchor = this.getAnchorMonth();\n\t\tthis.setAnchorMonth(new Date(anchor.getFullYear(), month, 1));\n\t}\n\n\tonSingleYearChange(yearValue: string): void {\n\t\tconst year = Number(yearValue);\n\t\tif (Number.isNaN(year)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst anchor = this.getAnchorMonth();\n\t\tthis.setAnchorMonth(new Date(year, anchor.getMonth(), 1));\n\t}\n\n\tonDatePressed(cell: PdmCalendarCell): void {\n\t\tconst date = this.cloneDate(cell.date);\n\n\t\tif (cell.disabled) {\n\t\t\tthis.disabledDateClick.emit(date);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dateClick.emit(date);\n\n\t\tif (this.resolvedVariant === \"single\") {\n\t\t\tthis._value = date;\n\t\t\tthis.valueChange.emit(this.cloneDate(date));\n\t\t\tthis.syncVisibleMonthToDate(date);\n\t\t\tthis.cdr.markForCheck();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.handleRangeSelection(date);\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tprivate handleRangeSelection(date: Date): void {\n\t\tconst current = this._rangeValue;\n\t\tconst currentStart = current?.start ? this.cloneDate(current.start) : null;\n\t\tconst currentEnd = current?.end ? this.cloneDate(current.end) : null;\n\n\t\tif (!currentStart || (currentStart && currentEnd)) {\n\t\t\tthis._rangeValue = { start: date, end: null };\n\t\t\tthis.rangeValueChange.emit({ start: this.cloneDate(date), end: null });\n\t\t\tthis.syncVisibleMonthToDate(date);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isSameDay(currentStart, date) && !this.allowSameDayRange) {\n\t\t\tthis._rangeValue = { start: date, end: null };\n\t\t\tthis.rangeValueChange.emit({ start: this.cloneDate(date), end: null });\n\t\t\treturn;\n\t\t}\n\n\t\tconst start =\n\t\t\tthis.compareDate(date, currentStart) < 0 ? date : currentStart;\n\t\tconst end = this.compareDate(date, currentStart) < 0 ? currentStart : date;\n\n\t\tif (this.rangeContainsBlockedDate(start, end)) {\n\t\t\tthis.disabledDateClick.emit(this.cloneDate(date));\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeValue = { start, end };\n\t\tthis.rangeValueChange.emit({\n\t\t\tstart: this.cloneDate(start),\n\t\t\tend: this.cloneDate(end),\n\t\t});\n\t\tthis.syncVisibleMonthToDate(start);\n\t}\n\n\tprivate buildMonthWeeks(\n\t\tmonth: Date,\n\t\tincludeRange: boolean,\n\t): readonly (readonly PdmCalendarCell[])[] {\n\t\tconst firstOfMonth = this.startOfMonth(month);\n\t\tconst start = this.startOfWeek(firstOfMonth);\n\t\tconst end = this.endOfWeek(this.endOfMonth(firstOfMonth));\n\t\tconst weeks: PdmCalendarCell[][] = [];\n\n\t\tlet cursor = this.cloneDate(start);\n\t\twhile (this.compareDate(cursor, end) <= 0) {\n\t\t\tconst row: PdmCalendarCell[] = [];\n\n\t\t\tfor (let col = 0; col < 7; col += 1) {\n\t\t\t\trow.push(this.buildCell(cursor, month, includeRange));\n\t\t\t\tcursor = this.addDays(cursor, 1);\n\t\t\t}\n\n\t\t\tweeks.push(row);\n\t\t}\n\n\t\tfor (const row of weeks) {\n\t\t\tfor (let col = 0; col < row.length; col += 1) {\n\t\t\t\tconst cell = row[col];\n\t\t\t\tif (!cell.inRange) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst leftInRow = col > 0 ? row[col - 1].inRange : false;\n\t\t\t\tconst rightInRow = col < row.length - 1 ? row[col + 1].inRange : false;\n\n\t\t\t\tcell.rangeLeftCap = !leftInRow;\n\t\t\t\tcell.rangeRightCap = !rightInRow;\n\t\t\t}\n\t\t}\n\n\t\treturn weeks;\n\t}\n\n\tprivate buildCell(\n\t\tdate: Date,\n\t\tvisibleMonth: Date,\n\t\tincludeRange: boolean,\n\t): PdmCalendarCell {\n\t\tconst normalized = this.cloneDate(date);\n\t\tconst inCurrentMonth =\n\t\t\tnormalized.getMonth() === visibleMonth.getMonth() &&\n\t\t\tnormalized.getFullYear() === visibleMonth.getFullYear();\n\t\tconst disabled = this.isBlocked(normalized);\n\n\t\tconst selectedSingle =\n\t\t\tthis.resolvedVariant === \"single\" &&\n\t\t\t!!this._value &&\n\t\t\tthis.isSameDay(normalized, this._value);\n\t\tconst rangeStart =\n\t\t\tincludeRange &&\n\t\t\t!!this._rangeValue?.start &&\n\t\t\tthis.isSameDay(normalized, this._rangeValue.start);\n\t\tconst rangeEnd =\n\t\t\tincludeRange &&\n\t\t\t!!this._rangeValue?.end &&\n\t\t\tthis.isSameDay(normalized, this._rangeValue.end);\n\t\tconst inRange =\n\t\t\tincludeRange &&\n\t\t\t!!this._rangeValue?.start &&\n\t\t\t!!this._rangeValue?.end &&\n\t\t\tthis.compareDate(normalized, this._rangeValue.start) >= 0 &&\n\t\t\tthis.compareDate(normalized, this._rangeValue.end) <= 0;\n\n\t\treturn {\n\t\t\tdate: normalized,\n\t\t\tlabel: normalized.getDate(),\n\t\t\tmuted: !inCurrentMonth,\n\t\t\tdisabled,\n\t\t\tselected: selectedSingle || rangeStart || rangeEnd,\n\t\t\tinRange,\n\t\t\trangeFill: inRange,\n\t\t\trangeLeftCap: false,\n\t\t\trangeRightCap: false,\n\t\t};\n\t}\n\n\tprivate getAnchorMonth(): Date {\n\t\tlet candidate: Date | null = null;\n\n\t\tif (this._month) {\n\t\t\tcandidate = this.cloneDate(this._month);\n\t\t} else if (this.resolvedVariant === \"single\" && this._value) {\n\t\t\tcandidate = this.startOfMonth(this._value);\n\t\t} else if (this.resolvedVariant === \"range\" && this._rangeValue?.start) {\n\t\t\tcandidate = this.startOfMonth(this._rangeValue.start);\n\t\t} else {\n\t\t\tcandidate = this.startOfMonth(new Date());\n\t\t}\n\n\t\tif (!this.isValidDate(candidate)) {\n\t\t\treturn this.startOfMonth(new Date());\n\t\t}\n\n\t\treturn candidate;\n\t}\n\n\tprivate setAnchorMonth(month: Date): void {\n\t\tconst normalized = this.startOfMonth(month);\n\t\tif (!this.isValidDate(normalized)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._month = normalized;\n\t\tthis.monthChange.emit(this.cloneDate(this._month));\n\t}\n\n\tprivate syncVisibleMonthToDate(date: Date): void {\n\t\tconst nextMonth = this.startOfMonth(date);\n\t\tif (!this._month || !this.isSameMonth(this._month, nextMonth)) {\n\t\t\tthis._month = nextMonth;\n\t\t\tthis.monthChange.emit(this.cloneDate(nextMonth));\n\t\t}\n\t}\n\n\tprivate isBlocked(date: Date): boolean {\n\t\tif (this.minDate && this.compareDate(date, this.minDate) < 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.maxDate && this.compareDate(date, this.maxDate) > 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst blockedSet = new Set(\n\t\t\t(this.disabledDates || []).map((item) => this.dateKey(item)),\n\t\t);\n\t\tif (blockedSet.has(this.dateKey(date))) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!this.isDateDisabled?.(this.cloneDate(date));\n\t}\n\n\tprivate rangeContainsBlockedDate(start: Date, end: Date): boolean {\n\t\tlet cursor = this.cloneDate(start);\n\n\t\twhile (this.compareDate(cursor, end) <= 0) {\n\t\t\tif (this.isBlocked(cursor)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcursor = this.addDays(cursor, 1);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate normalizeDate(value: Date | null | undefined): Date | null {\n\t\tif (!(value instanceof Date) || Number.isNaN(value.getTime())) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new Date(value.getFullYear(), value.getMonth(), value.getDate());\n\t}\n\n\tprivate cloneDate(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n\n\tprivate isValidDate(date: Date | null | undefined): date is Date {\n\t\treturn !!date && date instanceof Date && !Number.isNaN(date.getTime());\n\t}\n\n\tprivate startOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), 1);\n\t}\n\n\tprivate endOfMonth(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + 1, 0);\n\t}\n\n\tprivate startOfWeek(date: Date): Date {\n\t\treturn this.addDays(date, -date.getDay());\n\t}\n\n\tprivate endOfWeek(date: Date): Date {\n\t\treturn this.addDays(date, 6 - date.getDay());\n\t}\n\n\tprivate addMonths(date: Date, months: number): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth() + months, 1);\n\t}\n\n\tprivate addDays(date: Date, days: number): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate() + days);\n\t}\n\n\tprivate compareDate(a: Date, b: Date): number {\n\t\treturn this.dateValue(a) - this.dateValue(b);\n\t}\n\n\tprivate dateValue(date: Date): number {\n\t\treturn (\n\t\t\tDate.UTC(date.getFullYear(), date.getMonth(), date.getDate()) / DAY_MS\n\t\t);\n\t}\n\n\tprivate isSameDay(a: Date, b: Date): boolean {\n\t\treturn this.compareDate(a, b) === 0;\n\t}\n\n\tprivate isSameMonth(a: Date, b: Date): boolean {\n\t\treturn a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\t}\n\n\tprivate dateKey(date: Date): string {\n\t\tconst y = date.getFullYear();\n\t\tconst m = String(date.getMonth() + 1).padStart(2, \"0\");\n\t\tconst d = String(date.getDate()).padStart(2, \"0\");\n\t\treturn `${y}-${m}-${d}`;\n\t}\n\n\tprivate formatMonthShort(date: Date): string {\n\t\treturn date.toLocaleString(\"en-US\", { month: \"short\" });\n\t}\n\n\tprivate formatMonthYear(date: Date): string {\n\t\treturn date.toLocaleString(\"en-US\", { month: \"long\", year: \"numeric\" });\n\t}\n}\n","<div [ngClass]=\"rootClasses\" [ngStyle]=\"rootStyle\">\n <div *ngFor=\"let month of visibleMonths; let monthIndex = index; trackBy: trackByIndex\" [ngClass]=\"monthPanelClasses(monthIndex)\">\n <div [ngClass]=\"headerClasses(month)\">\n <button\n *ngIf=\"month.showPrevButton; else prevPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Previous month\"\n (click)=\"goToPreviousMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m15 18-6-6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #prevPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n\n <ng-container *ngIf=\"month.titleStyle === 'dropdowns'; else plainTitle\">\n <div [ngClass]=\"dropdownWrapClasses()\">\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[72px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderMonth\"\n aria-label=\"Month\"\n (change)=\"onSingleMonthChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let monthOption of monthOptions\"\n [value]=\"monthOption.value\"\n [selected]=\"monthOption.value === singleHeaderMonth\"\n >\n {{ monthOption.label }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n <div [ngClass]=\"dropdownClasses('w-16 sm:w-[82px]')\">\n <select\n [ngClass]=\"dropdownSelectClasses()\"\n [ngStyle]=\"dropdownSelectStyle\"\n [value]=\"singleHeaderYear\"\n aria-label=\"Year\"\n (change)=\"onSingleYearChange($any($event.target).value)\"\n >\n <option\n *ngFor=\"let year of yearOptions\"\n [value]=\"year\"\n [selected]=\"year === singleHeaderYear\"\n >\n {{ year }}\n </option>\n </select>\n <svg viewBox=\"0 0 24 24\" class=\"h-3 w-3 text-foreground\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m6 9 6 6 6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-template #plainTitle>\n <div class=\"flex min-w-0 flex-1 items-center justify-center\">\n <p class=\"m-0 text-foreground text-center text-sm font-medium leading-5\">\n {{ month.title }}\n </p>\n </div>\n </ng-template>\n\n <button\n *ngIf=\"month.showNextButton; else nextPlaceholder\"\n type=\"button\"\n [ngClass]=\"navButtonClasses()\"\n aria-label=\"Next month\"\n (click)=\"goToNextMonth()\"\n [disabled]=\"readonly\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"m9 18 6-6-6-6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </button>\n <ng-template #nextPlaceholder>\n <div [ngClass]=\"navPlaceholderClasses()\" aria-hidden=\"true\"></div>\n </ng-template>\n </div>\n\n <div [ngClass]=\"calendarGridWrapClasses()\">\n <div [ngClass]=\"weekdayRowClasses()\">\n <div *ngFor=\"let day of weekdays; trackBy: trackByIndex\" [ngClass]=\"weekdayCellClasses()\">\n <span>{{ day }}</span>\n </div>\n </div>\n\n <div *ngFor=\"let week of month.weeks; trackBy: trackByIndex\" [ngClass]=\"weekRowClasses()\">\n <div *ngFor=\"let cell of week; trackBy: trackByDate\" [ngClass]=\"dayCellClasses(cell)\">\n <button\n type=\"button\"\n [ngClass]=\"dayButtonClasses(cell)\"\n [disabled]=\"readonly\"\n [attr.aria-selected]=\"cell.selected\"\n [attr.aria-disabled]=\"cell.disabled || readonly\"\n [attr.title]=\"cell.date | date : 'yyyy-MM-dd'\"\n (click)=\"onDatePressed(cell)\"\n >\n <span [ngClass]=\"dayLabelClasses(cell)\">{{ cell.label }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOnDestroy,\n\tOutput,\n\tViewChild,\n\tViewContainerRef,\n} from \"@angular/core\";\nimport { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { Subscription } from \"rxjs\";\nimport { format as formatDateFns } from \"date-fns\";\nimport type {\n\tPdmCalendarRange,\n\tPdmCalendarVariant,\n} from \"./calendar.component\";\nimport { PdmOverlayOptions } from \"pdm-ui-kit/src/overlay\";\nimport { createFlexiblePositionStrategy } from \"pdm-ui-kit/src/overlay\";\nimport {\n\tmergeOverlayPanelClass,\n\tOVERLAY_BASE_Z_INDEX,\n} from \"pdm-ui-kit/src/overlay\";\n\nlet nextDatePickerId = 0;\n\n@Component({\n\tselector: \"pdm-date-picker\",\n\ttemplateUrl: \"./date-picker.component.html\",\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PdmDatePickerComponent implements OnDestroy {\n\tprivate _value: Date | null = null;\n\tprivate _rangeValue: PdmCalendarRange | null = null;\n\tprivate _open = false;\n\n\tprivate readonly instanceId = `pdm-date-picker-${++nextDatePickerId}`;\n\tprivate triggerFocused = false;\n\n\tprivate overlayRef: OverlayRef | null = null;\n\tprivate backdropSub: Subscription | null = null;\n\n\t@ViewChild(\"triggerEl\") private triggerRef?: ElementRef<HTMLElement>;\n\t@ViewChild(\"panelTemplate\") private panelTemplateRef!: any;\n\n\tconstructor(\n\t\tprivate readonly cdr: ChangeDetectorRef,\n\t\tprivate readonly overlay: Overlay,\n\t\tprivate readonly viewContainerRef: ViewContainerRef,\n\t) {}\n\n\t@Input() id = \"\";\n\t@Input() variant: PdmCalendarVariant | string = \"single\";\n\t@Input() label = \"\";\n\t@Input() labelClassName = \"\";\n\t@Input() className = \"\";\n\t@Input() triggerClassName = \"\";\n\t@Input() iconOnly = false;\n\t/**\n\t * Additional CSS classes applied to the overlay panel.\n\t * Backward-compatible: mapped to `overlayOptions.panelClass` when `overlayOptions` is not set.\n\t * When both are supplied, `overlayOptions.panelClass` takes precedence.\n\t */\n\t@Input() panelClassName = \"\";\n\t/**\n\t * Optional CDK OverlayConfig overrides.\n\t * Shallow-merged on top of component defaults — consumer always wins.\n\t * Providing `positionStrategy` or `scrollStrategy` replaces the component default entirely.\n\t */\n\t@Input() overlayOptions?: PdmOverlayOptions;\n\t@Input() placeholder = \"Pick a date\";\n\t@Input() rangePlaceholder = \"Pick a date range\";\n\t@Input() format = \"MMM d, yyyy\";\n\t@Input() disabled = false;\n\t@Input() readonly = false;\n\t@Input() required = false;\n\t@Input() invalid = false;\n\t@Input() allowSameDayRange = true;\n\t@Input() closeOnSelect = true;\n\t@Input() minDate: Date | null = null;\n\t@Input() maxDate: Date | null = null;\n\t@Input() minYear: number | null = null;\n\t@Input() maxYear: number | null = null;\n\t@Input() disabledDates: Date[] = [];\n\t@Input() isDateDisabled: ((date: Date) => boolean) | null = null;\n\n\t@Output() valueChange = new EventEmitter<Date | null>();\n\t@Output() rangeValueChange = new EventEmitter<PdmCalendarRange | null>();\n\t@Output() openChange = new EventEmitter<boolean>();\n\t@Output() monthChange = new EventEmitter<Date>();\n\n\t@Input()\n\tset open(value: boolean) {\n\t\tif (this._open === !!value) return;\n\t\tif (value) {\n\t\t\tthis.openPanel();\n\t\t} else {\n\t\t\tthis.closePanel();\n\t\t}\n\t}\n\tget open(): boolean {\n\t\treturn this._open;\n\t}\n\n\t@Input()\n\tset value(value: Date | null) {\n\t\tthis._value = this.normalizeDate(value);\n\t\tthis.cdr.markForCheck();\n\t}\n\tget value(): Date | null {\n\t\treturn this._value;\n\t}\n\n\t@Input()\n\tset rangeValue(value: PdmCalendarRange | null) {\n\t\tthis._rangeValue = value\n\t\t\t? {\n\t\t\t\t\tstart: this.normalizeDate(value.start),\n\t\t\t\t\tend: this.normalizeDate(value.end),\n\t\t\t\t}\n\t\t\t: null;\n\t\tthis.cdr.markForCheck();\n\t}\n\tget rangeValue(): PdmCalendarRange | null {\n\t\treturn this._rangeValue;\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroyOverlay();\n\t}\n\n\tget resolvedVariant(): PdmCalendarVariant {\n\t\treturn this.variant === \"range\" ? \"range\" : \"single\";\n\t}\n\n\tget triggerId(): string {\n\t\treturn this.id || `${this.instanceId}-trigger`;\n\t}\n\n\tget panelId(): string {\n\t\treturn `${this.id || this.instanceId}-panel`;\n\t}\n\n\tget hasSingleValue(): boolean {\n\t\treturn this.resolvedVariant === \"single\" && !!this._value;\n\t}\n\n\tget hasRangeValue(): boolean {\n\t\treturn this.resolvedVariant === \"range\" && !!this._rangeValue?.start;\n\t}\n\n\tget displayText(): string {\n\t\tif (this.resolvedVariant === \"single\") {\n\t\t\treturn this._value ? this.formatDate(this._value) : this.placeholder;\n\t\t}\n\n\t\tconst start = this._rangeValue?.start ?? null;\n\t\tconst end = this._rangeValue?.end ?? null;\n\n\t\tif (!start) {\n\t\t\treturn this.rangePlaceholder;\n\t\t}\n\n\t\tif (!end) {\n\t\t\treturn `${this.formatDate(start)} -`;\n\t\t}\n\n\t\treturn `${this.formatDate(start)} - ${this.formatDate(end)}`;\n\t}\n\n\tget textClasses(): string[] {\n\t\tconst hasValue =\n\t\t\tthis.resolvedVariant === \"single\"\n\t\t\t\t? this.hasSingleValue\n\t\t\t\t: this.hasRangeValue;\n\t\treturn [\n\t\t\t\"min-w-0 flex-1 truncate text-left text-sm leading-5\",\n\t\t\thasValue ? \"text-foreground\" : \"text-muted-foreground\",\n\t\t];\n\t}\n\n\tget rootClasses(): string[] {\n\t\treturn [\n\t\t\t\"grid gap-2\",\n\t\t\tthis.iconOnly\n\t\t\t\t? \"inline-grid w-auto\"\n\t\t\t\t: this.resolvedVariant === \"range\"\n\t\t\t\t\t? \"w-[280px]\"\n\t\t\t\t\t: \"w-[197px]\",\n\t\t\tthis.className,\n\t\t];\n\t}\n\n\tget triggerClasses(): string[] {\n\t\tconst focusStyle = this._open || this.triggerFocused;\n\n\t\treturn [\n\t\t\t\"border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive relative flex appearance-none box-border items-center overflow-hidden rounded-lg border border-solid bg-background text-sm shadow-sm outline-none transition-colors\",\n\t\t\t\"min-h-[36px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\tthis.iconOnly\n\t\t\t\t? \"size-9 justify-center p-0\"\n\t\t\t\t: \"w-full gap-2 px-3 py-[7.5px] text-left\",\n\t\t\tfocusStyle ? \"border-ring ring-2 ring-ring/50\" : \"\",\n\t\t\tthis.invalid ? \"border-destructive ring-destructive/20\" : \"\",\n\t\t\tthis.triggerClassName,\n\t\t];\n\t}\n\n\ttoggleOpen(): void {\n\t\tif (this.disabled || this.readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setOpen(!this._open);\n\t}\n\n\tonTriggerFocus(): void {\n\t\tthis.triggerFocused = true;\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tonTriggerBlur(): void {\n\t\tthis.triggerFocused = false;\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tonCalendarValueChange(value: Date | null): void {\n\t\tthis._value = this.normalizeDate(value);\n\t\tthis.valueChange.emit(this._value ? this.cloneDate(this._value) : null);\n\n\t\tif (this.closeOnSelect && this._value) {\n\t\t\tthis.setOpen(false);\n\t\t} else {\n\t\t\tthis.cdr.markForCheck();\n\t\t}\n\t}\n\n\tonCalendarRangeValueChange(value: PdmCalendarRange | null): void {\n\t\tthis._rangeValue = value\n\t\t\t? {\n\t\t\t\t\tstart: this.normalizeDate(value.start),\n\t\t\t\t\tend: this.normalizeDate(value.end),\n\t\t\t\t}\n\t\t\t: null;\n\n\t\tthis.rangeValueChange.emit(\n\t\t\tthis._rangeValue\n\t\t\t\t? {\n\t\t\t\t\t\tstart: this._rangeValue.start\n\t\t\t\t\t\t\t? this.cloneDate(this._rangeValue.start)\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\tend: this._rangeValue.end\n\t\t\t\t\t\t\t? this.cloneDate(this._rangeValue.end)\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t);\n\n\t\tif (\n\t\t\tthis.closeOnSelect &&\n\t\t\tthis._rangeValue?.start &&\n\t\t\tthis._rangeValue?.end\n\t\t) {\n\t\t\tthis.setOpen(false);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tonCalendarMonthChange(month: Date): void {\n\t\tthis.monthChange.emit(this.cloneDate(month));\n\t}\n\n\t@HostListener(\"document:keydown.escape\")\n\tonEscape(): void {\n\t\tif (this._open) {\n\t\t\tthis.setOpen(false);\n\t\t}\n\t}\n\n\tprivate setOpen(nextOpen: boolean): void {\n\t\tif (this._open === nextOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (nextOpen) {\n\t\t\tthis.openPanel();\n\t\t} else {\n\t\t\tthis.closePanel();\n\t\t}\n\t}\n\n\tprivate openPanel(): void {\n\t\tif (this.overlayRef) return;\n\n\t\tconst triggerEl = this.triggerRef?.nativeElement;\n\t\tif (!triggerEl) return;\n\n\t\tthis._open = true;\n\t\tthis.openChange.emit(true);\n\t\tthis.cdr.markForCheck();\n\n\t\tconst positionStrategy = createFlexiblePositionStrategy(\n\t\t\tthis.overlay,\n\t\t\ttriggerEl,\n\t\t\t8,\n\t\t);\n\n\t\t// CRITICAL: Use mergeOverlayPanelClass to ensure z-index is never lost.\n\t\t// Consumer classes are appended AFTER base z-index.\n\t\tconst zIndexEnforced = mergeOverlayPanelClass(\n\t\t\tOVERLAY_BASE_Z_INDEX,\n\t\t\tthis.panelClassName,\n\t\t);\n\n\t\t// Resolve panelClass: overlayOptions.panelClass wins; otherwise use z-index enforced.\n\t\tconst resolvedPanelClass = this.overlayOptions?.panelClass\n\t\t\t? mergeOverlayPanelClass(\n\t\t\t\t\tOVERLAY_BASE_Z_INDEX,\n\t\t\t\t\tthis.overlayOptions.panelClass,\n\t\t\t\t)\n\t\t\t: zIndexEnforced;\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy,\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t\t// Consumer overrides are spread first.\n\t\t\t...this.overlayOptions,\n\t\t\t// panelClass always enforced last to preserve z-index.\n\t\t\tpanelClass: resolvedPanelClass,\n\t\t});\n\n\t\tconst portal = new TemplatePortal(\n\t\t\tthis.panelTemplateRef,\n\t\t\tthis.viewContainerRef,\n\t\t);\n\t\tthis.overlayRef.attach(portal);\n\n\t\tthis.backdropSub = this.overlayRef\n\t\t\t.outsidePointerEvents()\n\t\t\t.subscribe((event) => {\n\t\t\t\tconst target = event.target as Node;\n\t\t\t\tif (!triggerEl.contains(target)) {\n\t\t\t\t\tthis.closePanel();\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tprivate closePanel(): void {\n\t\tif (!this.overlayRef && !this._open) return;\n\n\t\tthis._open = false;\n\t\tthis.openChange.emit(false);\n\t\tthis.destroyOverlay();\n\t\tthis.cdr.markForCheck();\n\t}\n\n\tprivate destroyOverlay(): void {\n\t\tif (this.backdropSub) {\n\t\t\tthis.backdropSub.unsubscribe();\n\t\t\tthis.backdropSub = null;\n\t\t}\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = null;\n\t\t}\n\t}\n\n\tprivate formatDate(date: Date): string {\n\t\ttry {\n\t\t\treturn formatDateFns(date, this.format || \"MMM d, yyyy\");\n\t\t} catch {\n\t\t\treturn formatDateFns(date, \"MMM d, yyyy\");\n\t\t}\n\t}\n\n\tprivate normalizeDate(value: Date | null | undefined): Date | null {\n\t\tif (!(value instanceof Date) || Number.isNaN(value.getTime())) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn new Date(value.getFullYear(), value.getMonth(), value.getDate());\n\t}\n\n\tprivate cloneDate(date: Date): Date {\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\t}\n}\n","<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"iconOnly ? displayText : null\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span *ngIf=\"!iconOnly\" [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PdmLabelModule } from \"pdm-ui-kit/src/label\";\nimport { PdmCalendarComponent } from \"./calendar.component\";\nimport { PdmDatePickerComponent } from \"./date-picker.component\";\n\nconst COMPONENTS = [PdmCalendarComponent, PdmDatePickerComponent];\n\n@NgModule({\n\timports: [CommonModule, OverlayModule, PdmLabelModule],\n\tdeclarations: COMPONENTS,\n\texports: COMPONENTS,\n})\nexport class PdmCalendarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["formatDateFns","i1","i2","i4.PdmCalendarComponent"],"mappings":"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"}
|
package/fesm2015/pdm-ui-kit.mjs
CHANGED
|
@@ -1387,6 +1387,7 @@ class PdmDatePickerComponent {
|
|
|
1387
1387
|
this.labelClassName = "";
|
|
1388
1388
|
this.className = "";
|
|
1389
1389
|
this.triggerClassName = "";
|
|
1390
|
+
this.iconOnly = false;
|
|
1390
1391
|
/**
|
|
1391
1392
|
* Additional CSS classes applied to the overlay panel.
|
|
1392
1393
|
* Backward-compatible: mapped to `overlayOptions.panelClass` when `overlayOptions` is not set.
|
|
@@ -1491,15 +1492,22 @@ class PdmDatePickerComponent {
|
|
|
1491
1492
|
get rootClasses() {
|
|
1492
1493
|
return [
|
|
1493
1494
|
"grid gap-2",
|
|
1494
|
-
this.
|
|
1495
|
+
this.iconOnly
|
|
1496
|
+
? "inline-grid w-auto"
|
|
1497
|
+
: this.resolvedVariant === "range"
|
|
1498
|
+
? "w-[280px]"
|
|
1499
|
+
: "w-[197px]",
|
|
1495
1500
|
this.className,
|
|
1496
1501
|
];
|
|
1497
1502
|
}
|
|
1498
1503
|
get triggerClasses() {
|
|
1499
1504
|
const focusStyle = this._open || this.triggerFocused;
|
|
1500
1505
|
return [
|
|
1501
|
-
"border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive relative flex
|
|
1506
|
+
"border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive relative flex appearance-none box-border items-center overflow-hidden rounded-lg border border-solid bg-background text-sm shadow-sm outline-none transition-colors",
|
|
1502
1507
|
"min-h-[36px] disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
1508
|
+
this.iconOnly
|
|
1509
|
+
? "size-9 justify-center p-0"
|
|
1510
|
+
: "w-full gap-2 px-3 py-[7.5px] text-left",
|
|
1503
1511
|
focusStyle ? "border-ring ring-2 ring-ring/50" : "",
|
|
1504
1512
|
this.invalid ? "border-destructive ring-destructive/20" : "",
|
|
1505
1513
|
this.triggerClassName,
|
|
@@ -1644,10 +1652,10 @@ class PdmDatePickerComponent {
|
|
|
1644
1652
|
}
|
|
1645
1653
|
}
|
|
1646
1654
|
PdmDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1647
|
-
PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { id: "id", variant: "variant", label: "label", labelClassName: "labelClassName", className: "className", triggerClassName: "triggerClassName", panelClassName: "panelClassName", overlayOptions: "overlayOptions", placeholder: "placeholder", rangePlaceholder: "rangePlaceholder", format: "format", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", allowSameDayRange: "allowSameDayRange", closeOnSelect: "closeOnSelect", minDate: "minDate", maxDate: "maxDate", minYear: "minYear", maxYear: "maxYear", disabledDates: "disabledDates", isDateDisabled: "isDateDisabled", open: "open", value: "value", rangeValue: "rangeValue" }, outputs: { valueChange: "valueChange", rangeValueChange: "rangeValueChange", openChange: "openChange", monthChange: "monthChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmLabelComponent, selector: "pdm-label", inputs: ["forId", "required", "className"] }, { kind: "component", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: ["variant", "className", "disabledDates", "minDate", "maxDate", "minYear", "maxYear", "isDateDisabled", "allowSameDayRange", "readonly", "value", "rangeValue", "month"], outputs: ["valueChange", "rangeValueChange", "monthChange", "dateClick", "disabledDateClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1655
|
+
PdmDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDatePickerComponent, selector: "pdm-date-picker", inputs: { id: "id", variant: "variant", label: "label", labelClassName: "labelClassName", className: "className", triggerClassName: "triggerClassName", iconOnly: "iconOnly", panelClassName: "panelClassName", overlayOptions: "overlayOptions", placeholder: "placeholder", rangePlaceholder: "rangePlaceholder", format: "format", disabled: "disabled", readonly: "readonly", required: "required", invalid: "invalid", allowSameDayRange: "allowSameDayRange", closeOnSelect: "closeOnSelect", minDate: "minDate", maxDate: "maxDate", minYear: "minYear", maxYear: "maxYear", disabledDates: "disabledDates", isDateDisabled: "isDateDisabled", open: "open", value: "value", rangeValue: "rangeValue" }, outputs: { valueChange: "valueChange", rangeValueChange: "rangeValueChange", openChange: "openChange", monthChange: "monthChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"iconOnly ? displayText : null\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span *ngIf=\"!iconOnly\" [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmLabelComponent, selector: "pdm-label", inputs: ["forId", "required", "className"] }, { kind: "component", type: PdmCalendarComponent, selector: "pdm-calendar", inputs: ["variant", "className", "disabledDates", "minDate", "maxDate", "minYear", "maxYear", "isDateDisabled", "allowSameDayRange", "readonly", "value", "rangeValue", "month"], outputs: ["valueChange", "rangeValueChange", "monthChange", "dateClick", "disabledDateClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1648
1656
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDatePickerComponent, decorators: [{
|
|
1649
1657
|
type: Component,
|
|
1650
|
-
args: [{ selector: "pdm-date-picker", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n" }]
|
|
1658
|
+
args: [{ selector: "pdm-date-picker", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"rootClasses\">\n <pdm-label *ngIf=\"label\" [forId]=\"triggerId\" [required]=\"required\" [className]=\"labelClassName\">\n {{ label }}\n </pdm-label>\n\n <button\n #triggerEl\n type=\"button\"\n [id]=\"triggerId\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-label]=\"iconOnly ? displayText : null\"\n [ngClass]=\"triggerClasses\"\n [attr.title]=\"displayText\"\n (click)=\"toggleOpen()\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur()\"\n >\n <span class=\"flex h-5 w-5 shrink-0 items-center justify-center p-0.5 text-muted-foreground\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\n <path d=\"M8 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <path d=\"M16 2v4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n <rect x=\"3\" y=\"4.5\" width=\"18\" height=\"16.5\" rx=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></rect>\n <path d=\"M3 9.5h18\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n </svg>\n </span>\n\n <span *ngIf=\"!iconOnly\" [ngClass]=\"textClasses\">{{ displayText }}</span>\n </button>\n</div>\n\n<ng-template #panelTemplate>\n <div [id]=\"panelId\" role=\"dialog\" [attr.aria-labelledby]=\"label ? triggerId : null\">\n <pdm-calendar\n [variant]=\"resolvedVariant\"\n [value]=\"value\"\n [rangeValue]=\"rangeValue\"\n [readonly]=\"readonly\"\n [allowSameDayRange]=\"allowSameDayRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [disabledDates]=\"disabledDates\"\n [isDateDisabled]=\"isDateDisabled\"\n (valueChange)=\"onCalendarValueChange($event)\"\n (rangeValueChange)=\"onCalendarRangeValueChange($event)\"\n (monthChange)=\"onCalendarMonthChange($event)\"\n ></pdm-calendar>\n </div>\n</ng-template>\n" }]
|
|
1651
1659
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { triggerRef: [{
|
|
1652
1660
|
type: ViewChild,
|
|
1653
1661
|
args: ["triggerEl"]
|
|
@@ -1666,6 +1674,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1666
1674
|
type: Input
|
|
1667
1675
|
}], triggerClassName: [{
|
|
1668
1676
|
type: Input
|
|
1677
|
+
}], iconOnly: [{
|
|
1678
|
+
type: Input
|
|
1669
1679
|
}], panelClassName: [{
|
|
1670
1680
|
type: Input
|
|
1671
1681
|
}], overlayOptions: [{
|