@lucca-front/ng 18.2.0 → 18.2.2
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/esm2022/date/input/date-input.directive.mjs +3 -3
- package/esm2022/date/select/date-select-input.component.mjs +3 -3
- package/esm2022/dialog/dialog/dialog.component.mjs +2 -2
- package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +2 -2
- package/esm2022/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/form-field/form-field.component.mjs +3 -3
- package/esm2022/forms/multilanguage-input/multilanguage-input.component.mjs +2 -2
- package/esm2022/forms/phone-number-input/phone-number-input.component.mjs +95 -36
- package/esm2022/forms/phone-number-input/validators.mjs +8 -16
- package/esm2022/multi-select/input/select-input.component.mjs +3 -3
- package/esm2022/popover2/content/popover-content/popover-content.component.mjs +3 -3
- package/esm2022/popover2/popover.directive.mjs +9 -2
- package/esm2022/popup-employee/card/panel/user-popover-panel.component.mjs +3 -3
- package/esm2022/simple-select/input/select-input.component.mjs +3 -3
- package/esm2022/skeleton/skeleton-field/skeleton-field.component.mjs +2 -2
- package/esm2022/tag/tag.component.mjs +3 -3
- package/esm2022/toast/toasts.component.mjs +3 -3
- package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +29 -19
- package/fesm2022/lucca-front-ng-date.mjs +4 -4
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +6 -6
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +100 -49
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +2 -2
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +10 -3
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popup-employee.mjs +2 -2
- package/fesm2022/lucca-front-ng-popup-employee.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +2 -2
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +2 -2
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +2 -2
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +2 -2
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +28 -18
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/forms/phone-number-input/phone-number-input.component.d.ts +23 -7
- package/forms/phone-number-input/validators.d.ts +3 -3
- package/package.json +15 -15
- package/popover2/popover.directive.d.ts +2 -1
- package/tooltip/trigger/tooltip-trigger.directive.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-date.mjs","sources":["../../../packages/ng/date/adapter/date-adapter.pipe.ts","../../../packages/ng/date/adapter/date-adapter.module.ts","../../../packages/ng/date/calendar/calendar-item.class.ts","../../../packages/ng/date/calendar/calendar-item.factory.ts","../../../packages/ng/date/calendar/calendar-input.component.ts","../../../packages/ng/date/calendar/calendar-input.component.html","../../../packages/ng/date/calendar/calendar-input.module.ts","../../../packages/ng/date/input/translations.ts","../../../packages/ng/date/input/date-input.translate.ts","../../../packages/ng/date/input/date-input.directive.ts","../../../packages/ng/date/input/date-input.module.ts","../../../packages/ng/date/picker/date-picker.component.ts","../../../packages/ng/date/picker/date-picker.component.html","../../../packages/ng/date/picker/date-picker.module.ts","../../../packages/ng/date/select/translations.ts","../../../packages/ng/date/select/date-select-input.translate.ts","../../../packages/ng/date/select/date-select-input.component.ts","../../../packages/ng/date/select/date-select-input.component.html","../../../packages/ng/date/select/date-select-input.module.ts","../../../packages/ng/date/date.module.ts","../../../packages/ng/date/humanize/humanize.formatter.ts","../../../packages/ng/date/humanize/humanize.model.ts","../../../packages/ng/date/humanize/humanize.utils.ts","../../../packages/ng/date/humanize/humanize.pipe.ts","../../../packages/ng/date/lucca-front-ng-date.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\n\n@Pipe({\n\tname: 'luDate',\n\tpure: true,\n\tstandalone: true,\n})\nexport class LuDateAdapterPipe<D> implements PipeTransform {\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\n\ttransform(d: D, format = 'mediumDate'): string {\n\t\tif (d && this._adapter.isValid(d)) {\n\t\t\treturn this._adapter.format(d, format);\n\t\t}\n\t\treturn '';\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { LuDateAdapterPipe } from './date-adapter.pipe';\n\n@NgModule({\n\timports: [LuDateAdapterPipe],\n\texports: [LuDateAdapterPipe],\n})\nexport class LuDateAdapterModule {}\n","import { ELuDateGranularity, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ICalendarItem } from './calendar-item.interface';\n\nexport abstract class ACalendarItem<D> implements ICalendarItem<D> {\n\tget id() {\n\t\treturn `${this.granularity}-${this.date.toString()}`;\n\t}\n\tdate: D;\n\tmods: string[] = [];\n\tisDisabled = false;\n\tlabel: string;\n\treadonly granularity: LuDateGranularity;\n}\nexport class DayItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.day;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\nexport class MonthItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.month;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\nexport class YearItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.year;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\nexport class DecadeItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.decade;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\nimport { DayItem, DecadeItem, MonthItem, YearItem } from './calendar-item.class';\n\n@Injectable()\nexport class LuCalendarItemFactory<D> {\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\n\tforgeDay(d: D, format = 'd'): DayItem<D> {\n\t\tconst date = this._adapter.clone(d);\n\t\treturn new DayItem(date, this._adapter.format(date, format));\n\t}\n\tforgeMonth(d: D, format = 'MMM'): MonthItem<D> {\n\t\tconst year = this._adapter.getYear(d);\n\t\tconst month = this._adapter.getMonth(d);\n\t\tconst monthStart = this._adapter.forge(year, month, 1);\n\t\treturn new MonthItem(monthStart, this._adapter.format(monthStart, format));\n\t}\n\tforgeYear(d: D, format = 'y'): YearItem<D> {\n\t\tconst year = this._adapter.getYear(d);\n\t\tconst yearStart = this._adapter.forge(year, 1, 1);\n\t\treturn new YearItem(yearStart, this._adapter.format(yearStart, format));\n\t}\n\tforgeDecade(d: D, format = 'y'): DecadeItem<D> {\n\t\tconst year = this._adapter.getYear(d);\n\t\tconst decadeStart = this._adapter.forge(10 * Math.floor(year / 10), 1, 1);\n\t\tconst decadeEnd = this._adapter.forge(10 * Math.floor(year / 10) + 9, 1, 1);\n\t\tconst label = `${this._adapter.format(decadeStart, format)} - ${this._adapter.format(decadeEnd, format)}`;\n\t\treturn new DecadeItem(decadeStart, label);\n\t}\n}\n","import { CommonModule, FormStyle, getLocaleDayNames, getLocaleFirstDayOfWeek, TranslationWidth } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Inject, Input, LOCALE_ID, OnInit, Renderer2 } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuInput } from '@lucca-front/ng/input';\nimport { LuCalendarItemFactory } from './calendar-item.factory';\nimport { ICalendarItem } from './calendar-item.interface';\n\n@Component({\n\tselector: 'lu-calendar',\n\ttemplateUrl: './calendar-input.component.html',\n\tstyleUrls: ['./calendar-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [FormsModule, CommonModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuCalendarInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: LuCalendarInputComponent,\n\t\t\tmulti: true,\n\t\t},\n\t\tLuCalendarItemFactory,\n\t],\n})\nexport class LuCalendarInputComponent<D> extends ALuInput<D> implements ControlValueAccessor, OnInit, Validator {\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\t@Input() startOn: D = this._adapter.forgeToday();\n\n\tviewGranularity: LuDateGranularity;\n\theader: ICalendarItem<D>;\n\titems: ICalendarItem<D>[] = [];\n\tget mod() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\treturn 'mod-yearlyView';\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\treturn 'mod-monthlyView';\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\treturn 'mod-dailyView';\n\t\t}\n\t}\n\n\t// daily view\n\tlabels: string[] = [];\n\tconstructor(\n\t\t_changeDetectorRef: ChangeDetectorRef,\n\t\t_elementRef: ElementRef<HTMLElement>,\n\t\t_renderer: Renderer2,\n\t\t@Inject(LOCALE_ID) private _locale: string,\n\t\tprivate _factory: LuCalendarItemFactory<D>,\n\t\tprivate _adapter: ALuDateAdapter<D>,\n\t) {\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\n\t}\n\tngOnInit() {\n\t\tthis.viewGranularity = this.granularity;\n\t\tthis.initDayLabels();\n\t}\n\toverride writeValue(value?: D) {\n\t\tconst date = value && this._adapter.isValid(value) ? this._adapter.clone(value) : this.startOn;\n\t\tthis.header = this._factory.forgeMonth(date);\n\t\tsuper.writeValue(value);\n\t}\n\tinitDayLabels() {\n\t\tthis.labels = [...getLocaleDayNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated)];\n\t\tif (getLocaleFirstDayOfWeek(this._locale) === 1) {\n\t\t\tthis.labels.push(this.labels.shift());\n\t\t}\n\t}\n\tprotected render() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.renderYearlyView();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.renderMonthlyView();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.renderDailyView();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprotected renderDailyView(month: D = this.header.date) {\n\t\tthis.items = [];\n\t\tconst start = this._adapter.forge(this._adapter.getYear(month), this._adapter.getMonth(month), 1);\n\t\tlet index = 0;\n\t\tconst isFirstDayOfWeek = this._adapter.getDay(start) === getLocaleFirstDayOfWeek(this._locale);\n\t\tthis.header = this._factory.forgeMonth(month, 'MMMM y');\n\t\tif (!isFirstDayOfWeek) {\n\t\t\tconst offset = (this._adapter.getDay(start) - getLocaleFirstDayOfWeek(this._locale) + 7) % 7;\n\t\t\tindex = -1 * offset;\n\t\t}\n\t\t// TODO\n\t\tlet isFDOW = false;\n\t\tlet isNextMonth = false;\n\t\tdo {\n\t\t\tconst d = this._adapter.add(start, index++, ELuDateGranularity.day);\n\t\t\tconst day = this._factory.forgeDay(d);\n\t\t\tisNextMonth = this._adapter.compare(d, month, ELuDateGranularity.month) > 0;\n\t\t\tisFDOW = this._adapter.getDay(d) === getLocaleFirstDayOfWeek(this._locale);\n\t\t\tthis.items.push(day);\n\t\t} while (!isFDOW || !isNextMonth);\n\t\tthis.applyDailyMods();\n\t}\n\n\tprotected renderMonthlyView(year: D = this.header.date) {\n\t\tthis.header = this._factory.forgeYear(year);\n\t\tthis.items = [...Array(12).keys()].map((i) => {\n\t\t\tconst d = this._adapter.forge(this._adapter.getYear(year), i + 1, 1);\n\t\t\treturn this._factory.forgeMonth(d);\n\t\t});\n\t\tthis.applyMonthlyMods();\n\t}\n\n\tprotected renderYearlyView(decade: D = this.header.date) {\n\t\tconst year = Math.floor(this._adapter.getYear(decade) / 10) * 10;\n\t\tconst d = this._adapter.forge(year, 1, 1);\n\t\tthis.header = this._factory.forgeDecade(d);\n\t\tthis.items = [...Array(10).keys()].map((i) => {\n\t\t\tconst y = this._adapter.forge(year + i, 1, 1);\n\t\t\treturn this._factory.forgeYear(y);\n\t\t});\n\t\tthis.applyYearlyMods();\n\t}\n\n\tprotected applyDailyMods() {\n\t\tconst month = this.header.date;\n\t\tconst today = this._adapter.forgeToday();\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\n\t\tthis.items.forEach((item) => {\n\t\t\tconst day = item.date;\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) < 0) {\n\t\t\t\titem.mods.push('is-previousMonth');\n\t\t\t}\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) > 0) {\n\t\t\t\titem.mods.push('is-nextMonth');\n\t\t\t}\n\t\t\tif (this._adapter.compare(day, today, ELuDateGranularity.day) === 0) {\n\t\t\t\titem.mods.push('is-today');\n\t\t\t}\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(day, this.value, ELuDateGranularity.day) === 0) {\n\t\t\t\titem.mods.push('is-active');\n\t\t\t}\n\t\t\tif (min && this._adapter.compare(day, min, ELuDateGranularity.day) < 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t\tif (max && this._adapter.compare(day, max, ELuDateGranularity.day) > 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected applyMonthlyMods() {\n\t\tconst today = this._adapter.forgeToday();\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\n\t\tthis.items.forEach((item) => {\n\t\t\tconst month = item.date;\n\t\t\tif (this._adapter.compare(month, today, ELuDateGranularity.month) === 0) {\n\t\t\t\titem.mods.push('is-today');\n\t\t\t}\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(month, this.value, ELuDateGranularity.month) === 0) {\n\t\t\t\titem.mods.push('is-active');\n\t\t\t}\n\t\t\tif (min && this._adapter.compare(month, min, ELuDateGranularity.month) < 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t\tif (max && this._adapter.compare(month, max, ELuDateGranularity.month) > 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected applyYearlyMods() {\n\t\tconst today = this._adapter.forgeToday();\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\n\t\tthis.items.forEach((item) => {\n\t\t\tconst year = item.date;\n\t\t\tif (this._adapter.compare(year, today, ELuDateGranularity.year) === 0) {\n\t\t\t\titem.mods.push('is-today');\n\t\t\t}\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(year, this.value, ELuDateGranularity.year) === 0) {\n\t\t\t\titem.mods.push('is-active');\n\t\t\t}\n\t\t\tif (min && this._adapter.compare(year, min, ELuDateGranularity.year) < 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t\tif (max && this._adapter.compare(year, max, ELuDateGranularity.year) > 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tselect(item: ICalendarItem<D>) {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.selectYear(item);\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.selectMonth(item);\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.selectDay(item);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprotected selectDay(item: ICalendarItem<D>) {\n\t\tconst year = this._adapter.getYear(item.date);\n\t\tconst month = this._adapter.getMonth(item.date);\n\t\tconst d = this._adapter.forge(year, month, 1);\n\t\tthis.header = this._factory.forgeMonth(d);\n\t\tthis.setValue(item.date);\n\t}\n\n\tprotected selectMonth(item: ICalendarItem<D>) {\n\t\tif (this.granularity === ELuDateGranularity.month) {\n\t\t\tthis.setValue(item.date);\n\t\t} else {\n\t\t\tthis.header = item;\n\t\t\tthis.viewGranularity = ELuDateGranularity.day;\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tprotected selectYear(item: ICalendarItem<D>) {\n\t\tif (this.granularity === ELuDateGranularity.year) {\n\t\t\tthis.setValue(item.date);\n\t\t} else {\n\t\t\tthis.header = item;\n\t\t\tthis.viewGranularity = ELuDateGranularity.month;\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tprevious() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.previousDecade();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.previousYear();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.previousMonth();\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.render();\n\t}\n\n\tnext() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.nextDecade();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.nextYear();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.nextMonth();\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.render();\n\t}\n\n\ttrackBy(_idx, item: ICalendarItem<D>) {\n\t\treturn item.id;\n\t}\n\n\tincreaseGranularity() {\n\t\tif (this.header.granularity !== ELuDateGranularity.decade) {\n\t\t\tthis.viewGranularity = this.header.granularity;\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tprotected nextMonth() {\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.month);\n\t\tthis.header = this._factory.forgeMonth(d);\n\t}\n\n\tprotected nextYear() {\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.year);\n\t\tthis.header = this._factory.forgeYear(d);\n\t}\n\n\tprotected nextDecade() {\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.decade);\n\t\tthis.header = this._factory.forgeDecade(d);\n\t}\n\n\tprotected previousMonth() {\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.month);\n\t\tthis.header = this._factory.forgeMonth(d);\n\t}\n\n\tprotected previousYear() {\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.year);\n\t\tthis.header = this._factory.forgeYear(d);\n\t}\n\n\tprotected previousDecade() {\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.decade);\n\t\tthis.header = this._factory.forgeDecade(d);\n\t}\n\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\tconst d = control.value as D;\n\t\tif (!d) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._adapter.isValid(d)) {\n\t\t\treturn { date: true };\n\t\t}\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\n","<section class=\"calendar\">\n\t<header class=\"calendar-header\">\n\t\t<button type=\"button\" class=\"button mod-onlyIcon mod-text mod-S\" (click)=\"previous()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronLeft\"></span>\n\t\t\t<span class=\"u-mask\">Previous</span>\n\t\t</button>\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\n\t\t<button type=\"button\" class=\"button mod-onlyIcon mod-text mod-S\" (click)=\"next()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronRight\"></span>\n\t\t\t<span class=\"u-mask\">Next</span>\n\t\t</button>\n\t</header>\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\n\t</section>\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\n\t\t\tclass=\"calendar-grid-item\"\n\t\t\t[ngClass]=\"item.mods\"\n\t\t\t[disabled]=\"item.isDisabled\"\n\t\t\t(click)=\"select(item)\"\n\t\t>\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\n\t\t</button>\n\t</section>\n</section>\n","import { NgModule } from '@angular/core';\nimport { LuCalendarInputComponent } from './calendar-input.component';\n\n@NgModule({\n\timports: [LuCalendarInputComponent],\n\texports: [LuCalendarInputComponent],\n})\nexport class LuCalendarInputModule {}\n","export const Translations = {\n\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tde: {\n\t\tplaceholderDay: 'TT/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tfr: {\n\t\tplaceholderDay: 'JJ/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DATE_INPUT_TRANSLATIONS = new InjectionToken('LuDateInputtranslations', {\n\tfactory: () => luDateInputTranslations,\n});\n\nexport interface ILuDateInputLabel {\n\tplaceholderDay: string;\n\tplaceholderMonth: string;\n\tplaceholderYear: string;\n}\n\nexport const luDateInputTranslations: LuTranslation<ILuDateInputLabel> = Translations;\n","import { ChangeDetectorRef, Directive, ElementRef, forwardRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, getIntl, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuInput } from '@lucca-front/ng/input';\nimport { LU_DATE_INPUT_TRANSLATIONS } from './date-input.translate';\n\n@Directive({\n\tselector: 'input[luDateInput]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuDateInputDirective),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: LuDateInputDirective,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class LuDateInputDirective<D> extends ALuInput<D, HTMLInputElement> implements Validator, OnInit {\n\tprivate _focused = false;\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\n\t@Input() override set placeholder(p: string) {\n\t\tthis._elementRef.nativeElement.placeholder = p;\n\t}\n\tprivate _intl = getIntl(LU_DATE_INPUT_TRANSLATIONS);\n\tconstructor(\n\t\t_changeDetectorRef: ChangeDetectorRef,\n\t\t_elementRef: ElementRef<HTMLInputElement>,\n\t\t_renderer: Renderer2,\n\t\tprivate _adapter: ALuDateAdapter<D>,\n\t) {\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\n\t}\n\tngOnInit() {\n\t\tswitch (this.granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.placeholder = this._intl.placeholderYear;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.placeholder = this._intl.placeholderMonth;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.placeholder = this._intl.placeholderDay;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tprotected render() {\n\t\tif (this._focused) {\n\t\t\treturn;\n\t\t}\n\t\tlet format: string;\n\t\tswitch (this.granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tformat = 'Y';\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tformat = 'MM/Y';\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tformat = 'shortDate';\n\t\t\t\tbreak;\n\t\t}\n\t\tconst text = this.value && this._adapter.isValid(this.value) ? this._adapter.format(this.value, format) : '';\n\t\tthis._elementRef.nativeElement.value = text;\n\t}\n\t@HostListener('input', ['$event'])\n\tonInput(event) {\n\t\t// FIXME\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tconst text = event.target.value as string;\n\t\tconst value = this.parse(text);\n\t\tthis.setValue(value);\n\t}\n\tprivate parse(text: string): D {\n\t\tconst date = this._adapter.parse(text, this.granularity);\n\t\treturn date;\n\t}\n\t@HostListener('focus')\n\tonFocus() {\n\t\tthis._focused = true;\n\t}\n\t@HostListener('blur')\n\tonBlur() {\n\t\tthis._focused = false;\n\t\tthis.render();\n\t}\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\tconst d = control.value as D;\n\t\tif (!d) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._adapter.isValid(d)) {\n\t\t\treturn { date: true };\n\t\t}\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { LuDateInputDirective } from './date-input.directive';\n\n@NgModule({\n\timports: [LuDateInputDirective],\n\texports: [LuDateInputDirective],\n})\nexport class LuDateInputModule {}\n","//FIXME\n/* eslint-disable @angular-eslint/no-output-on-prefix */\n/* eslint-disable @angular-eslint/no-output-native */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuPickerPanel } from '@lucca-front/ng/picker';\nimport { luTransformPopover } from '@lucca-front/ng/popover';\nimport { LuCalendarInputComponent } from '../calendar';\nimport { LuDateInputDirective } from '../input';\n\n@Component({\n\tselector: 'lu-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\texportAs: 'LuDatePicker',\n\tanimations: [luTransformPopover],\n\tstandalone: true,\n\timports: [FormsModule, CommonModule, LuCalendarInputComponent, LuDateInputDirective, A11yModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: ALuPickerPanel,\n\t\t\tuseExisting: forwardRef(() => LuDatePickerComponent),\n\t\t},\n\t],\n})\nexport class LuDatePickerComponent<D = Date> extends ALuPickerPanel<D> {\n\t_value: D;\n\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\t@Input() startOn: D = this._adapter.forgeToday();\n\n\t@Output() override close = new EventEmitter<void>();\n\t@Output() override open = new EventEmitter<void>();\n\t@Output() override hovered = new EventEmitter<boolean>();\n\t@Output() override onSelectValue = new EventEmitter<D>();\n\n\t@ViewChild(TemplateRef, { static: true })\n\tset vcTemplateRef(tr: TemplateRef<unknown>) {\n\t\tthis.templateRef = tr;\n\t}\n\n\tconstructor(private _adapter: ALuDateAdapter<D>) {\n\t\tsuper();\n\t}\n\t_emitOpenEvent(): void {\n\t\tthis.open.emit();\n\t}\n\t_emitCloseEvent(): void {\n\t\tthis.close.emit();\n\t}\n\t_emitHoveredEvent(h: boolean): void {\n\t\tthis.hovered.emit(h);\n\t}\n\t_emitSelectValue(val: D) {\n\t\tthis.onSelectValue.emit(val);\n\t}\n\tsetValue(value: D) {\n\t\tthis._value = value;\n\t}\n\t_onCalendar(val: D) {\n\t\tthis._value = val;\n\t\tthis._emitSelectValue(val);\n\t\t// if (!this.multiple) {\n\t\tthis._emitCloseEvent();\n\t\t// }\n\t}\n\t_onInput(val: D) {\n\t\tthis._value = val;\n\t\tthis._emitSelectValue(val);\n\t}\n\t_onEnter() {\n\t\tthis._emitCloseEvent();\n\t}\n\toverride _handleKeydown(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis._emitCloseEvent();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\tthis._emitCloseEvent();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// ngAfterViewInit() {\n\t// \tthis._dateInput.nativeElement.focus();\n\t// }\n}\n","<ng-template>\n\t<div\n\t\tclass=\"lu-picker-panel lu-date-picker-panel\"\n\t\trole=\"dialog\"\n\t\t[ngClass]=\"panelClassesMap\"\n\t\t(click)=\"onClick()\"\n\t\t(mouseover)=\"onMouseOver()\"\n\t\t(mouseleave)=\"onMouseLeave()\"\n\t\t(mousedown)=\"onMouseDown()\"\n\t>\n\t\t<div class=\"lu-picker-content\" [ngClass]=\"contentClassesMap\" cdkTrapFocus=\"false\" cdkTrapFocusAutoCapture=\"true\">\n\t\t\t<label class=\"textfield lu-picker-textfield\">\n\t\t\t\t<input\n\t\t\t\t\tluDateInput\n\t\t\t\t\tclass=\"textfield-input\"\n\t\t\t\t\t[ngModel]=\"_value\"\n\t\t\t\t\t(ngModelChange)=\"_onInput($event)\"\n\t\t\t\t\t(keydown.enter)=\"_onEnter()\"\n\t\t\t\t\t[min]=\"min\"\n\t\t\t\t\t[max]=\"max\"\n\t\t\t\t\t[granularity]=\"granularity\"\n\t\t\t\t/>\n\t\t\t</label>\n\t\t\t<lu-calendar\n\t\t\t\t[ngModel]=\"_value\"\n\t\t\t\t(ngModelChange)=\"_onCalendar($event)\"\n\t\t\t\t[min]=\"min\"\n\t\t\t\t[max]=\"max\"\n\t\t\t\t[granularity]=\"granularity\"\n\t\t\t\t[startOn]=\"startOn\"\n\t\t\t></lu-calendar>\n\t\t</div>\n\t</div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { LuDatePickerComponent } from './date-picker.component';\n\n@NgModule({\n\timports: [LuDatePickerComponent],\n\texports: [LuDatePickerComponent],\n})\nexport class LuDatePickerModule {}\n","export const Translations = {\n\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tde: {\n\t\tplaceholderDay: 'TT/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tfr: {\n\t\tplaceholderDay: 'JJ/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DATE_SELECT_INPUT_TRANSLATIONS = new InjectionToken('LuDateSelectInputtranslations', {\n\tfactory: () => luDateSelectInputTranslations,\n});\n\nexport interface ILuDateSelectInputLabel {\n\tplaceholderDay: string;\n\tplaceholderMonth: string;\n\tplaceholderYear: string;\n}\n\nexport const luDateSelectInputTranslations: LuTranslation<ILuDateSelectInputLabel> = Translations;\n","import { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewContainerRef, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity, getIntl } from '@lucca-front/ng/core';\nimport { LuInputClearerComponent, LuInputDirective, LuInputDisplayerDirective } from '@lucca-front/ng/input';\nimport { ILuInputWithPicker } from '@lucca-front/ng/picker';\nimport { ALuSelectInputComponent } from '@lucca-front/ng/select';\nimport { LuDateAdapterPipe } from '../adapter';\nimport { LuDatePickerComponent } from '../picker';\nimport { LU_DATE_SELECT_INPUT_TRANSLATIONS } from './date-select-input.translate';\n\n@Component({\n\tselector: 'lu-date-select',\n\ttemplateUrl: './date-select-input.component.html',\n\tstyleUrls: ['./date-select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [LuDateAdapterPipe, LuDatePickerComponent, LuInputDirective, OverlayModule, LuInputClearerComponent, LuInputDisplayerDirective],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuDateSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: LuDateSelectInputComponent,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class LuDateSelectInputComponent<D> extends ALuSelectInputComponent<D> implements ControlValueAccessor, ILuInputWithPicker<D>, AfterViewInit, Validator {\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\t@Input('placeholder') override set inputPlaceholder(p: string) {\n\t\tthis._placeholder = p;\n\t}\n\t@Input() hideClearer = false;\n\tprotected _startOn: D = this._adapter.forgeToday();\n\t@Input() set startOn(s: D) {\n\t\tthis._startOn = s ?? this._adapter.forgeToday();\n\t}\n\tget startOn(): D {\n\t\treturn this._startOn;\n\t}\n\n\tget format(): string {\n\t\tswitch (this.granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\treturn 'Y';\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\treturn 'MM/Y';\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\treturn 'shortDate';\n\t\t}\n\t}\n\tprivate _intl = getIntl(LU_DATE_SELECT_INPUT_TRANSLATIONS);\n\tconstructor(\n\t\tprotected override _changeDetectorRef: ChangeDetectorRef,\n\t\tprotected override _overlay: Overlay,\n\t\tprotected override _elementRef: ElementRef<HTMLElement>,\n\t\tprotected override _viewContainerRef: ViewContainerRef,\n\t\tprotected override _renderer: Renderer2,\n\t\tprivate _adapter: ALuDateAdapter<D>,\n\t) {\n\t\tsuper(_changeDetectorRef, _overlay, _elementRef, _viewContainerRef, _renderer);\n\t\tthis.overlapInput = true;\n\t}\n\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\tconst d = control.value as D;\n\t\tif (!d) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._adapter.isValid(d)) {\n\t\t\treturn { date: true };\n\t\t}\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\n<div class=\"lu-select-value\">\n\t<div class=\"lu-select-display-wrapper notranslate\">\n\t\t<ng-container #display></ng-container>\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<lu-input-clearer [class.u-displayNone]=\"hideClearer\" [attr.aria-hidden]=\"hideClearer\"></lu-input-clearer>\n</div>\n<ng-template luDisplayer let-value> {{ value | luDate: format }} </ng-template>\n<lu-date-picker [min]=\"min\" [max]=\"max\" [granularity]=\"granularity\" [startOn]=\"startOn\"></lu-date-picker>\n","import { NgModule } from '@angular/core';\nimport { LuDateSelectInputComponent } from './date-select-input.component';\n\n@NgModule({\n\timports: [LuDateSelectInputComponent],\n\texports: [LuDateSelectInputComponent],\n})\nexport class LuDateSelectInputModule {}\n","import { NgModule } from '@angular/core';\nimport { LuDateAdapterPipe } from './adapter/index';\nimport { LuCalendarInputComponent } from './calendar/index';\nimport { LuDateInputDirective } from './input/index';\nimport { LuDatePickerComponent } from './picker/index';\nimport { LuDateSelectInputComponent } from './select/index';\n\n@NgModule({\n\timports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\n\texports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\n})\nexport class LuDateModule {}\n","import { Injectable, LOCALE_ID, inject } from '@angular/core';\nimport { LuRelativeTime } from './humanize.model';\n\n@Injectable()\nexport class LuHumanizeDateFormatter {\n\t#intlRelativeTimeFormat = new Intl.RelativeTimeFormat(inject(LOCALE_ID));\n\n\tformat(relativeTime: LuRelativeTime): string {\n\t\treturn this.#intlRelativeTimeFormat.format(relativeTime.value, relativeTime.unit);\n\t}\n}\n","export const luRelativeTimeFormatUnit = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'] as const;\nexport type LuRelativeTimeFormatUnit = (typeof luRelativeTimeFormatUnit)[number];\n\nexport interface LuRelativeTime {\n\t/**\n\t * The relevant unit for the relative time.\n\t */\n\tunit: LuRelativeTimeFormatUnit;\n\t/**\n\t * The integer value of the relative time.\n\t * Negative values are used for past dates.\n\t */\n\tvalue: number;\n}\n","import { differenceInDays, differenceInHours, differenceInMinutes, differenceInMonths, differenceInSeconds, differenceInWeeks, differenceInYears } from 'date-fns';\nimport { Observable } from 'rxjs';\nimport { LuRelativeTime, LuRelativeTimeFormatUnit, luRelativeTimeFormatUnit } from './humanize.model';\n\nconst getDifferenceByUnit: Record<LuRelativeTimeFormatUnit, (date: number | Date, reference: number | Date) => number> = {\n\tsecond: differenceInSeconds,\n\tminute: differenceInMinutes,\n\thour: differenceInHours,\n\tday: differenceInDays,\n\tweek: differenceInWeeks,\n\tmonth: differenceInMonths,\n\tyear: differenceInYears,\n};\n\nexport function getRelativeTime(date: number | Date, reference: number | Date, allowedUnits: readonly LuRelativeTimeFormatUnit[] = luRelativeTimeFormatUnit): LuRelativeTime {\n\tif (!allowedUnits.length) {\n\t\tthrow new Error('[getRelativeTime] Pass at least one unit');\n\t}\n\n\tfor (let i = 0; i < allowedUnits.length; i++) {\n\t\tconst unit = allowedUnits[i];\n\t\tconst isLastUnit = i === allowedUnits.length - 1;\n\n\t\tif (isLastUnit) {\n\t\t\treturn { unit, value: getDifferenceByUnit[unit](date, reference) };\n\t\t}\n\n\t\tconst nextUnit = allowedUnits[i + 1];\n\t\tconst diff = getDifferenceByUnit[nextUnit](date, reference);\n\n\t\tif (Math.abs(diff) < 1) {\n\t\t\treturn { unit, value: getDifferenceByUnit[unit](date, reference) };\n\t\t}\n\t}\n\n\t// Should never happen as the for loop should always return\n\tthrow new Error('[getRelativeTime] No unit found for the given date');\n}\n\nconst nextRelativeTimeTickInMsByUnit: Record<LuRelativeTimeFormatUnit, number> = {\n\tsecond: 1_000,\n\tminute: 60_000,\n\thour: 60 * 60_000,\n\tday: 24 * 60 * 60_000,\n\tweek: 24 * 60 * 60_000,\n\tmonth: 24 * 60 * 60_000,\n\tyear: 24 * 60 * 60_000,\n};\n\nconst previousRelativeTimeUnitByUnit: Record<LuRelativeTimeFormatUnit, LuRelativeTimeFormatUnit | null> = {\n\tsecond: null,\n\tminute: 'second',\n\thour: 'minute',\n\tday: 'hour',\n\tweek: 'day',\n\tmonth: 'week',\n\tyear: 'month',\n};\n\nexport function relativeTimeTimer(date: Date | number, allowedUnits?: readonly LuRelativeTimeFormatUnit[]): Observable<LuRelativeTime> {\n\treturn new Observable<LuRelativeTime>((subscriber) => {\n\t\tlet timeoutId: ReturnType<typeof setTimeout> | null = null;\n\t\tconst dateAsNumber = typeof date === 'number' ? date : date.getTime();\n\n\t\tfunction next() {\n\t\t\tconst now = Date.now();\n\t\t\tconst relativeTime = getRelativeTime(date, now, allowedUnits);\n\t\t\tsubscriber.next(relativeTime);\n\n\t\t\tconst unit =\n\t\t\t\trelativeTime.value === 1 && relativeTime.unit !== 'second'\n\t\t\t\t\t? // We a future date come closer, we need to switch to the previous unit\n\t\t\t\t\t\t// For example, if we are at 1 minutes, we should switch to second to avoid displaying '1 minute' during '1 minute' (we want to wait one second to display '59 seconds')\n\t\t\t\t\t\tpreviousRelativeTimeUnitByUnit[relativeTime.unit]\n\t\t\t\t\t: relativeTime.unit;\n\n\t\t\tconst delta = now - dateAsNumber;\n\t\t\tconst nextTick = nextRelativeTimeTickInMsByUnit[unit];\n\n\t\t\t// setTimeout is not an exact science, so we need to adjust the next tick to avoid drift over time\n\t\t\tconst shift = Math.abs(delta) % nextTick;\n\t\t\tconst nextWait = relativeTime.value !== 1 ? nextTick - shift : 1000;\n\n\t\t\ttimeoutId = setTimeout(next, nextWait);\n\t\t}\n\n\t\t// Trigger the recursive loop\n\t\tnext();\n\n\t\treturn () => {\n\t\t\tif (timeoutId) {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t}\n\t\t};\n\t});\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { LuHumanizeDateFormatter } from './humanize.formatter';\nimport { LuRelativeTimeFormatUnit } from './humanize.model';\nimport { relativeTimeTimer } from './humanize.utils';\n\n@Pipe({\n\tname: 'luHumanizeDate',\n\tstandalone: true,\n})\nexport class LuHumanizeDatePipe implements PipeTransform {\n\t#formatter = inject(LuHumanizeDateFormatter, { optional: true }) ?? new LuHumanizeDateFormatter();\n\n\ttransform(value: Date | string | number, allowedUnits?: readonly LuRelativeTimeFormatUnit[]): Observable<string> {\n\t\treturn relativeTimeTimer(new Date(value), allowedUnits).pipe(map((relativeTime) => this.#formatter.format(relativeTime)));\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LuCalendarItemFactory","i2","Translations","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-date.mjs","sources":["../../../packages/ng/date/adapter/date-adapter.pipe.ts","../../../packages/ng/date/adapter/date-adapter.module.ts","../../../packages/ng/date/calendar/calendar-item.class.ts","../../../packages/ng/date/calendar/calendar-item.factory.ts","../../../packages/ng/date/calendar/calendar-input.component.ts","../../../packages/ng/date/calendar/calendar-input.component.html","../../../packages/ng/date/calendar/calendar-input.module.ts","../../../packages/ng/date/input/translations.ts","../../../packages/ng/date/input/date-input.translate.ts","../../../packages/ng/date/input/date-input.directive.ts","../../../packages/ng/date/input/date-input.module.ts","../../../packages/ng/date/picker/date-picker.component.ts","../../../packages/ng/date/picker/date-picker.component.html","../../../packages/ng/date/picker/date-picker.module.ts","../../../packages/ng/date/select/translations.ts","../../../packages/ng/date/select/date-select-input.translate.ts","../../../packages/ng/date/select/date-select-input.component.ts","../../../packages/ng/date/select/date-select-input.component.html","../../../packages/ng/date/select/date-select-input.module.ts","../../../packages/ng/date/date.module.ts","../../../packages/ng/date/humanize/humanize.formatter.ts","../../../packages/ng/date/humanize/humanize.model.ts","../../../packages/ng/date/humanize/humanize.utils.ts","../../../packages/ng/date/humanize/humanize.pipe.ts","../../../packages/ng/date/lucca-front-ng-date.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\n\n@Pipe({\n\tname: 'luDate',\n\tpure: true,\n\tstandalone: true,\n})\nexport class LuDateAdapterPipe<D> implements PipeTransform {\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\n\ttransform(d: D, format = 'mediumDate'): string {\n\t\tif (d && this._adapter.isValid(d)) {\n\t\t\treturn this._adapter.format(d, format);\n\t\t}\n\t\treturn '';\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { LuDateAdapterPipe } from './date-adapter.pipe';\n\n@NgModule({\n\timports: [LuDateAdapterPipe],\n\texports: [LuDateAdapterPipe],\n})\nexport class LuDateAdapterModule {}\n","import { ELuDateGranularity, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ICalendarItem } from './calendar-item.interface';\n\nexport abstract class ACalendarItem<D> implements ICalendarItem<D> {\n\tget id() {\n\t\treturn `${this.granularity}-${this.date.toString()}`;\n\t}\n\tdate: D;\n\tmods: string[] = [];\n\tisDisabled = false;\n\tlabel: string;\n\treadonly granularity: LuDateGranularity;\n}\nexport class DayItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.day;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\nexport class MonthItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.month;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\nexport class YearItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.year;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\nexport class DecadeItem<D> extends ACalendarItem<D> implements ICalendarItem<D> {\n\toverride readonly granularity = ELuDateGranularity.decade;\n\tconstructor(\n\t\tpublic override date: D,\n\t\tpublic override label: string,\n\t) {\n\t\tsuper();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { ALuDateAdapter } from '@lucca-front/ng/core';\nimport { DayItem, DecadeItem, MonthItem, YearItem } from './calendar-item.class';\n\n@Injectable()\nexport class LuCalendarItemFactory<D> {\n\tconstructor(private _adapter: ALuDateAdapter<D>) {}\n\tforgeDay(d: D, format = 'd'): DayItem<D> {\n\t\tconst date = this._adapter.clone(d);\n\t\treturn new DayItem(date, this._adapter.format(date, format));\n\t}\n\tforgeMonth(d: D, format = 'MMM'): MonthItem<D> {\n\t\tconst year = this._adapter.getYear(d);\n\t\tconst month = this._adapter.getMonth(d);\n\t\tconst monthStart = this._adapter.forge(year, month, 1);\n\t\treturn new MonthItem(monthStart, this._adapter.format(monthStart, format));\n\t}\n\tforgeYear(d: D, format = 'y'): YearItem<D> {\n\t\tconst year = this._adapter.getYear(d);\n\t\tconst yearStart = this._adapter.forge(year, 1, 1);\n\t\treturn new YearItem(yearStart, this._adapter.format(yearStart, format));\n\t}\n\tforgeDecade(d: D, format = 'y'): DecadeItem<D> {\n\t\tconst year = this._adapter.getYear(d);\n\t\tconst decadeStart = this._adapter.forge(10 * Math.floor(year / 10), 1, 1);\n\t\tconst decadeEnd = this._adapter.forge(10 * Math.floor(year / 10) + 9, 1, 1);\n\t\tconst label = `${this._adapter.format(decadeStart, format)} - ${this._adapter.format(decadeEnd, format)}`;\n\t\treturn new DecadeItem(decadeStart, label);\n\t}\n}\n","import { CommonModule, FormStyle, getLocaleDayNames, getLocaleFirstDayOfWeek, TranslationWidth } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Inject, Input, LOCALE_ID, OnInit, Renderer2 } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuInput } from '@lucca-front/ng/input';\nimport { LuCalendarItemFactory } from './calendar-item.factory';\nimport { ICalendarItem } from './calendar-item.interface';\n\n@Component({\n\tselector: 'lu-calendar',\n\ttemplateUrl: './calendar-input.component.html',\n\tstyleUrls: ['./calendar-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [FormsModule, CommonModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuCalendarInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: LuCalendarInputComponent,\n\t\t\tmulti: true,\n\t\t},\n\t\tLuCalendarItemFactory,\n\t],\n})\nexport class LuCalendarInputComponent<D> extends ALuInput<D> implements ControlValueAccessor, OnInit, Validator {\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\t@Input() startOn: D = this._adapter.forgeToday();\n\n\tviewGranularity: LuDateGranularity;\n\theader: ICalendarItem<D>;\n\titems: ICalendarItem<D>[] = [];\n\tget mod() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\treturn 'mod-yearlyView';\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\treturn 'mod-monthlyView';\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\treturn 'mod-dailyView';\n\t\t}\n\t}\n\n\t// daily view\n\tlabels: string[] = [];\n\tconstructor(\n\t\t_changeDetectorRef: ChangeDetectorRef,\n\t\t_elementRef: ElementRef<HTMLElement>,\n\t\t_renderer: Renderer2,\n\t\t@Inject(LOCALE_ID) private _locale: string,\n\t\tprivate _factory: LuCalendarItemFactory<D>,\n\t\tprivate _adapter: ALuDateAdapter<D>,\n\t) {\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\n\t}\n\tngOnInit() {\n\t\tthis.viewGranularity = this.granularity;\n\t\tthis.initDayLabels();\n\t}\n\toverride writeValue(value?: D) {\n\t\tconst date = value && this._adapter.isValid(value) ? this._adapter.clone(value) : this.startOn;\n\t\tthis.header = this._factory.forgeMonth(date);\n\t\tsuper.writeValue(value);\n\t}\n\tinitDayLabels() {\n\t\tthis.labels = [...getLocaleDayNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated)];\n\t\tif (getLocaleFirstDayOfWeek(this._locale) === 1) {\n\t\t\tthis.labels.push(this.labels.shift());\n\t\t}\n\t}\n\tprotected render() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.renderYearlyView();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.renderMonthlyView();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.renderDailyView();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprotected renderDailyView(month: D = this.header.date) {\n\t\tthis.items = [];\n\t\tconst start = this._adapter.forge(this._adapter.getYear(month), this._adapter.getMonth(month), 1);\n\t\tlet index = 0;\n\t\tconst isFirstDayOfWeek = this._adapter.getDay(start) === getLocaleFirstDayOfWeek(this._locale);\n\t\tthis.header = this._factory.forgeMonth(month, 'MMMM y');\n\t\tif (!isFirstDayOfWeek) {\n\t\t\tconst offset = (this._adapter.getDay(start) - getLocaleFirstDayOfWeek(this._locale) + 7) % 7;\n\t\t\tindex = -1 * offset;\n\t\t}\n\t\t// TODO\n\t\tlet isFDOW = false;\n\t\tlet isNextMonth = false;\n\t\tdo {\n\t\t\tconst d = this._adapter.add(start, index++, ELuDateGranularity.day);\n\t\t\tconst day = this._factory.forgeDay(d);\n\t\t\tisNextMonth = this._adapter.compare(d, month, ELuDateGranularity.month) > 0;\n\t\t\tisFDOW = this._adapter.getDay(d) === getLocaleFirstDayOfWeek(this._locale);\n\t\t\tthis.items.push(day);\n\t\t} while (!isFDOW || !isNextMonth);\n\t\tthis.applyDailyMods();\n\t}\n\n\tprotected renderMonthlyView(year: D = this.header.date) {\n\t\tthis.header = this._factory.forgeYear(year);\n\t\tthis.items = [...Array(12).keys()].map((i) => {\n\t\t\tconst d = this._adapter.forge(this._adapter.getYear(year), i + 1, 1);\n\t\t\treturn this._factory.forgeMonth(d);\n\t\t});\n\t\tthis.applyMonthlyMods();\n\t}\n\n\tprotected renderYearlyView(decade: D = this.header.date) {\n\t\tconst year = Math.floor(this._adapter.getYear(decade) / 10) * 10;\n\t\tconst d = this._adapter.forge(year, 1, 1);\n\t\tthis.header = this._factory.forgeDecade(d);\n\t\tthis.items = [...Array(10).keys()].map((i) => {\n\t\t\tconst y = this._adapter.forge(year + i, 1, 1);\n\t\t\treturn this._factory.forgeYear(y);\n\t\t});\n\t\tthis.applyYearlyMods();\n\t}\n\n\tprotected applyDailyMods() {\n\t\tconst month = this.header.date;\n\t\tconst today = this._adapter.forgeToday();\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\n\t\tthis.items.forEach((item) => {\n\t\t\tconst day = item.date;\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) < 0) {\n\t\t\t\titem.mods.push('is-previousMonth');\n\t\t\t}\n\t\t\tif (this._adapter.compare(day, month, ELuDateGranularity.month) > 0) {\n\t\t\t\titem.mods.push('is-nextMonth');\n\t\t\t}\n\t\t\tif (this._adapter.compare(day, today, ELuDateGranularity.day) === 0) {\n\t\t\t\titem.mods.push('is-today');\n\t\t\t}\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(day, this.value, ELuDateGranularity.day) === 0) {\n\t\t\t\titem.mods.push('is-active');\n\t\t\t}\n\t\t\tif (min && this._adapter.compare(day, min, ELuDateGranularity.day) < 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t\tif (max && this._adapter.compare(day, max, ELuDateGranularity.day) > 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected applyMonthlyMods() {\n\t\tconst today = this._adapter.forgeToday();\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\n\t\tthis.items.forEach((item) => {\n\t\t\tconst month = item.date;\n\t\t\tif (this._adapter.compare(month, today, ELuDateGranularity.month) === 0) {\n\t\t\t\titem.mods.push('is-today');\n\t\t\t}\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(month, this.value, ELuDateGranularity.month) === 0) {\n\t\t\t\titem.mods.push('is-active');\n\t\t\t}\n\t\t\tif (min && this._adapter.compare(month, min, ELuDateGranularity.month) < 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t\tif (max && this._adapter.compare(month, max, ELuDateGranularity.month) > 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected applyYearlyMods() {\n\t\tconst today = this._adapter.forgeToday();\n\t\tconst min = this.min && this._adapter.isValid(this.min) ? this.min : undefined;\n\t\tconst max = this.max && this._adapter.isValid(this.max) ? this.max : undefined;\n\t\tthis.items.forEach((item) => {\n\t\t\tconst year = item.date;\n\t\t\tif (this._adapter.compare(year, today, ELuDateGranularity.year) === 0) {\n\t\t\t\titem.mods.push('is-today');\n\t\t\t}\n\t\t\tif (this.value && this._adapter.isValid(this.value) && this._adapter.compare(year, this.value, ELuDateGranularity.year) === 0) {\n\t\t\t\titem.mods.push('is-active');\n\t\t\t}\n\t\t\tif (min && this._adapter.compare(year, min, ELuDateGranularity.year) < 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t\tif (max && this._adapter.compare(year, max, ELuDateGranularity.year) > 0) {\n\t\t\t\titem.isDisabled = true;\n\t\t\t}\n\t\t});\n\t}\n\n\tselect(item: ICalendarItem<D>) {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.selectYear(item);\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.selectMonth(item);\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.selectDay(item);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tprotected selectDay(item: ICalendarItem<D>) {\n\t\tconst year = this._adapter.getYear(item.date);\n\t\tconst month = this._adapter.getMonth(item.date);\n\t\tconst d = this._adapter.forge(year, month, 1);\n\t\tthis.header = this._factory.forgeMonth(d);\n\t\tthis.setValue(item.date);\n\t}\n\n\tprotected selectMonth(item: ICalendarItem<D>) {\n\t\tif (this.granularity === ELuDateGranularity.month) {\n\t\t\tthis.setValue(item.date);\n\t\t} else {\n\t\t\tthis.header = item;\n\t\t\tthis.viewGranularity = ELuDateGranularity.day;\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tprotected selectYear(item: ICalendarItem<D>) {\n\t\tif (this.granularity === ELuDateGranularity.year) {\n\t\t\tthis.setValue(item.date);\n\t\t} else {\n\t\t\tthis.header = item;\n\t\t\tthis.viewGranularity = ELuDateGranularity.month;\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tprevious() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.previousDecade();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.previousYear();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.previousMonth();\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.render();\n\t}\n\n\tnext() {\n\t\tswitch (this.viewGranularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.nextDecade();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.nextYear();\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.nextMonth();\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.render();\n\t}\n\n\ttrackBy(_idx, item: ICalendarItem<D>) {\n\t\treturn item.id;\n\t}\n\n\tincreaseGranularity() {\n\t\tif (this.header.granularity !== ELuDateGranularity.decade) {\n\t\t\tthis.viewGranularity = this.header.granularity;\n\t\t\tthis.render();\n\t\t}\n\t}\n\n\tprotected nextMonth() {\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.month);\n\t\tthis.header = this._factory.forgeMonth(d);\n\t}\n\n\tprotected nextYear() {\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.year);\n\t\tthis.header = this._factory.forgeYear(d);\n\t}\n\n\tprotected nextDecade() {\n\t\tconst d = this._adapter.add(this.header.date, 1, ELuDateGranularity.decade);\n\t\tthis.header = this._factory.forgeDecade(d);\n\t}\n\n\tprotected previousMonth() {\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.month);\n\t\tthis.header = this._factory.forgeMonth(d);\n\t}\n\n\tprotected previousYear() {\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.year);\n\t\tthis.header = this._factory.forgeYear(d);\n\t}\n\n\tprotected previousDecade() {\n\t\tconst d = this._adapter.add(this.header.date, -1, ELuDateGranularity.decade);\n\t\tthis.header = this._factory.forgeDecade(d);\n\t}\n\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\tconst d = control.value as D;\n\t\tif (!d) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._adapter.isValid(d)) {\n\t\t\treturn { date: true };\n\t\t}\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\n","<section class=\"calendar\">\n\t<header class=\"calendar-header\">\n\t\t<button type=\"button\" class=\"button mod-onlyIcon mod-text mod-S\" (click)=\"previous()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronLeft\"></span>\n\t\t\t<span class=\"u-mask\">Previous</span>\n\t\t</button>\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\n\t\t<button type=\"button\" class=\"button mod-onlyIcon mod-text mod-S\" (click)=\"next()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronRight\"></span>\n\t\t\t<span class=\"u-mask\">Next</span>\n\t\t</button>\n\t</header>\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\n\t</section>\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\n\t\t\tclass=\"calendar-grid-item\"\n\t\t\t[ngClass]=\"item.mods\"\n\t\t\t[disabled]=\"item.isDisabled\"\n\t\t\t(click)=\"select(item)\"\n\t\t>\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\n\t\t</button>\n\t</section>\n</section>\n","import { NgModule } from '@angular/core';\nimport { LuCalendarInputComponent } from './calendar-input.component';\n\n@NgModule({\n\timports: [LuCalendarInputComponent],\n\texports: [LuCalendarInputComponent],\n})\nexport class LuCalendarInputModule {}\n","export const Translations = {\n\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tde: {\n\t\tplaceholderDay: 'TT/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tfr: {\n\t\tplaceholderDay: 'JJ/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DATE_INPUT_TRANSLATIONS = new InjectionToken('LuDateInputtranslations', {\n\tfactory: () => luDateInputTranslations,\n});\n\nexport interface ILuDateInputLabel {\n\tplaceholderDay: string;\n\tplaceholderMonth: string;\n\tplaceholderYear: string;\n}\n\nexport const luDateInputTranslations: LuTranslation<ILuDateInputLabel> = Translations;\n","import { ChangeDetectorRef, Directive, ElementRef, forwardRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, getIntl, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuInput } from '@lucca-front/ng/input';\nimport { LU_DATE_INPUT_TRANSLATIONS } from './date-input.translate';\n\n@Directive({\n\tselector: 'input[luDateInput]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuDateInputDirective),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: LuDateInputDirective,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class LuDateInputDirective<D> extends ALuInput<D, HTMLInputElement> implements Validator, OnInit {\n\tprivate _focused = false;\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\n\t@Input() override set placeholder(p: string) {\n\t\tthis._elementRef.nativeElement.placeholder = p;\n\t}\n\tprivate _intl = getIntl(LU_DATE_INPUT_TRANSLATIONS);\n\tconstructor(\n\t\t_changeDetectorRef: ChangeDetectorRef,\n\t\t_elementRef: ElementRef<HTMLInputElement>,\n\t\t_renderer: Renderer2,\n\t\tprivate _adapter: ALuDateAdapter<D>,\n\t) {\n\t\tsuper(_changeDetectorRef, _elementRef, _renderer);\n\t}\n\tngOnInit() {\n\t\tswitch (this.granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tthis.placeholder = this._intl.placeholderYear;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tthis.placeholder = this._intl.placeholderMonth;\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tthis.placeholder = this._intl.placeholderDay;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tprotected render() {\n\t\tif (this._focused) {\n\t\t\treturn;\n\t\t}\n\t\tlet format: string;\n\t\tswitch (this.granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\tformat = 'y';\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\tformat = 'MM/y';\n\t\t\t\tbreak;\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\tformat = 'shortDate';\n\t\t\t\tbreak;\n\t\t}\n\t\tconst text = this.value && this._adapter.isValid(this.value) ? this._adapter.format(this.value, format) : '';\n\t\tthis._elementRef.nativeElement.value = text;\n\t}\n\t@HostListener('input', ['$event'])\n\tonInput(event) {\n\t\t// FIXME\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tconst text = event.target.value as string;\n\t\tconst value = this.parse(text);\n\t\tthis.setValue(value);\n\t}\n\tprivate parse(text: string): D {\n\t\tconst date = this._adapter.parse(text, this.granularity);\n\t\treturn date;\n\t}\n\t@HostListener('focus')\n\tonFocus() {\n\t\tthis._focused = true;\n\t}\n\t@HostListener('blur')\n\tonBlur() {\n\t\tthis._focused = false;\n\t\tthis.render();\n\t}\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\tconst d = control.value as D;\n\t\tif (!d) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._adapter.isValid(d)) {\n\t\t\treturn { date: true };\n\t\t}\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { LuDateInputDirective } from './date-input.directive';\n\n@NgModule({\n\timports: [LuDateInputDirective],\n\texports: [LuDateInputDirective],\n})\nexport class LuDateInputModule {}\n","//FIXME\n/* eslint-disable @angular-eslint/no-output-on-prefix */\n/* eslint-disable @angular-eslint/no-output-native */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuPickerPanel } from '@lucca-front/ng/picker';\nimport { luTransformPopover } from '@lucca-front/ng/popover';\nimport { LuCalendarInputComponent } from '../calendar';\nimport { LuDateInputDirective } from '../input';\n\n@Component({\n\tselector: 'lu-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\texportAs: 'LuDatePicker',\n\tanimations: [luTransformPopover],\n\tstandalone: true,\n\timports: [FormsModule, CommonModule, LuCalendarInputComponent, LuDateInputDirective, A11yModule],\n\tproviders: [\n\t\t{\n\t\t\tprovide: ALuPickerPanel,\n\t\t\tuseExisting: forwardRef(() => LuDatePickerComponent),\n\t\t},\n\t],\n})\nexport class LuDatePickerComponent<D = Date> extends ALuPickerPanel<D> {\n\t_value: D;\n\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\t@Input() startOn: D = this._adapter.forgeToday();\n\n\t@Output() override close = new EventEmitter<void>();\n\t@Output() override open = new EventEmitter<void>();\n\t@Output() override hovered = new EventEmitter<boolean>();\n\t@Output() override onSelectValue = new EventEmitter<D>();\n\n\t@ViewChild(TemplateRef, { static: true })\n\tset vcTemplateRef(tr: TemplateRef<unknown>) {\n\t\tthis.templateRef = tr;\n\t}\n\n\tconstructor(private _adapter: ALuDateAdapter<D>) {\n\t\tsuper();\n\t}\n\t_emitOpenEvent(): void {\n\t\tthis.open.emit();\n\t}\n\t_emitCloseEvent(): void {\n\t\tthis.close.emit();\n\t}\n\t_emitHoveredEvent(h: boolean): void {\n\t\tthis.hovered.emit(h);\n\t}\n\t_emitSelectValue(val: D) {\n\t\tthis.onSelectValue.emit(val);\n\t}\n\tsetValue(value: D) {\n\t\tthis._value = value;\n\t}\n\t_onCalendar(val: D) {\n\t\tthis._value = val;\n\t\tthis._emitSelectValue(val);\n\t\t// if (!this.multiple) {\n\t\tthis._emitCloseEvent();\n\t\t// }\n\t}\n\t_onInput(val: D) {\n\t\tthis._value = val;\n\t\tthis._emitSelectValue(val);\n\t}\n\t_onEnter() {\n\t\tthis._emitCloseEvent();\n\t}\n\toverride _handleKeydown(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tthis._emitCloseEvent();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\tthis._emitCloseEvent();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// ngAfterViewInit() {\n\t// \tthis._dateInput.nativeElement.focus();\n\t// }\n}\n","<ng-template>\n\t<div\n\t\tclass=\"lu-picker-panel lu-date-picker-panel\"\n\t\trole=\"dialog\"\n\t\t[ngClass]=\"panelClassesMap\"\n\t\t(click)=\"onClick()\"\n\t\t(mouseover)=\"onMouseOver()\"\n\t\t(mouseleave)=\"onMouseLeave()\"\n\t\t(mousedown)=\"onMouseDown()\"\n\t>\n\t\t<div class=\"lu-picker-content\" [ngClass]=\"contentClassesMap\" cdkTrapFocus=\"false\" cdkTrapFocusAutoCapture=\"true\">\n\t\t\t<label class=\"textfield lu-picker-textfield\">\n\t\t\t\t<input\n\t\t\t\t\tluDateInput\n\t\t\t\t\tclass=\"textfield-input\"\n\t\t\t\t\t[ngModel]=\"_value\"\n\t\t\t\t\t(ngModelChange)=\"_onInput($event)\"\n\t\t\t\t\t(keydown.enter)=\"_onEnter()\"\n\t\t\t\t\t[min]=\"min\"\n\t\t\t\t\t[max]=\"max\"\n\t\t\t\t\t[granularity]=\"granularity\"\n\t\t\t\t/>\n\t\t\t</label>\n\t\t\t<lu-calendar\n\t\t\t\t[ngModel]=\"_value\"\n\t\t\t\t(ngModelChange)=\"_onCalendar($event)\"\n\t\t\t\t[min]=\"min\"\n\t\t\t\t[max]=\"max\"\n\t\t\t\t[granularity]=\"granularity\"\n\t\t\t\t[startOn]=\"startOn\"\n\t\t\t></lu-calendar>\n\t\t</div>\n\t</div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { LuDatePickerComponent } from './date-picker.component';\n\n@NgModule({\n\timports: [LuDatePickerComponent],\n\texports: [LuDatePickerComponent],\n})\nexport class LuDatePickerModule {}\n","export const Translations = {\n\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tde: {\n\t\tplaceholderDay: 'TT/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tfr: {\n\t\tplaceholderDay: 'JJ/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DATE_SELECT_INPUT_TRANSLATIONS = new InjectionToken('LuDateSelectInputtranslations', {\n\tfactory: () => luDateSelectInputTranslations,\n});\n\nexport interface ILuDateSelectInputLabel {\n\tplaceholderDay: string;\n\tplaceholderMonth: string;\n\tplaceholderYear: string;\n}\n\nexport const luDateSelectInputTranslations: LuTranslation<ILuDateSelectInputLabel> = Translations;\n","import { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewContainerRef, forwardRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity, getIntl } from '@lucca-front/ng/core';\nimport { LuInputClearerComponent, LuInputDirective, LuInputDisplayerDirective } from '@lucca-front/ng/input';\nimport { ILuInputWithPicker } from '@lucca-front/ng/picker';\nimport { ALuSelectInputComponent } from '@lucca-front/ng/select';\nimport { LuDateAdapterPipe } from '../adapter';\nimport { LuDatePickerComponent } from '../picker';\nimport { LU_DATE_SELECT_INPUT_TRANSLATIONS } from './date-select-input.translate';\n\n@Component({\n\tselector: 'lu-date-select',\n\ttemplateUrl: './date-select-input.component.html',\n\tstyleUrls: ['./date-select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [LuDateAdapterPipe, LuDatePickerComponent, LuInputDirective, OverlayModule, LuInputClearerComponent, LuInputDisplayerDirective],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuDateSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: LuDateSelectInputComponent,\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class LuDateSelectInputComponent<D> extends ALuSelectInputComponent<D> implements ControlValueAccessor, ILuInputWithPicker<D>, AfterViewInit, Validator {\n\t@Input() min?: D;\n\t@Input() max?: D;\n\t@Input() granularity: LuDateGranularity = ELuDateGranularity.day;\n\t@Input('placeholder') override set inputPlaceholder(p: string) {\n\t\tthis._placeholder = p;\n\t}\n\t@Input() hideClearer = false;\n\tprotected _startOn: D = this._adapter.forgeToday();\n\t@Input() set startOn(s: D) {\n\t\tthis._startOn = s ?? this._adapter.forgeToday();\n\t}\n\tget startOn(): D {\n\t\treturn this._startOn;\n\t}\n\n\tget format(): string {\n\t\tswitch (this.granularity) {\n\t\t\tcase ELuDateGranularity.year:\n\t\t\t\treturn 'y';\n\t\t\tcase ELuDateGranularity.month:\n\t\t\t\treturn 'MM/y';\n\t\t\tcase ELuDateGranularity.day:\n\t\t\tdefault:\n\t\t\t\treturn 'shortDate';\n\t\t}\n\t}\n\tprivate _intl = getIntl(LU_DATE_SELECT_INPUT_TRANSLATIONS);\n\tconstructor(\n\t\tprotected override _changeDetectorRef: ChangeDetectorRef,\n\t\tprotected override _overlay: Overlay,\n\t\tprotected override _elementRef: ElementRef<HTMLElement>,\n\t\tprotected override _viewContainerRef: ViewContainerRef,\n\t\tprotected override _renderer: Renderer2,\n\t\tprivate _adapter: ALuDateAdapter<D>,\n\t) {\n\t\tsuper(_changeDetectorRef, _overlay, _elementRef, _viewContainerRef, _renderer);\n\t\tthis.overlapInput = true;\n\t}\n\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\tconst d = control.value as D;\n\t\tif (!d) {\n\t\t\treturn null;\n\t\t}\n\t\tif (!this._adapter.isValid(d)) {\n\t\t\treturn { date: true };\n\t\t}\n\t\tif (!!this.min && this._adapter.isValid(this.min) && this._adapter.compare(this.min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tif (!!this.max && this._adapter.isValid(this.max) && this._adapter.compare(this.max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\n<div class=\"lu-select-value\">\n\t<div class=\"lu-select-display-wrapper notranslate\">\n\t\t<ng-container #display></ng-container>\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<lu-input-clearer [class.u-displayNone]=\"hideClearer\" [attr.aria-hidden]=\"hideClearer\"></lu-input-clearer>\n</div>\n<ng-template luDisplayer let-value> {{ value | luDate: format }} </ng-template>\n<lu-date-picker [min]=\"min\" [max]=\"max\" [granularity]=\"granularity\" [startOn]=\"startOn\"></lu-date-picker>\n","import { NgModule } from '@angular/core';\nimport { LuDateSelectInputComponent } from './date-select-input.component';\n\n@NgModule({\n\timports: [LuDateSelectInputComponent],\n\texports: [LuDateSelectInputComponent],\n})\nexport class LuDateSelectInputModule {}\n","import { NgModule } from '@angular/core';\nimport { LuDateAdapterPipe } from './adapter/index';\nimport { LuCalendarInputComponent } from './calendar/index';\nimport { LuDateInputDirective } from './input/index';\nimport { LuDatePickerComponent } from './picker/index';\nimport { LuDateSelectInputComponent } from './select/index';\n\n@NgModule({\n\timports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\n\texports: [LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent],\n})\nexport class LuDateModule {}\n","import { Injectable, LOCALE_ID, inject } from '@angular/core';\nimport { LuRelativeTime } from './humanize.model';\n\n@Injectable()\nexport class LuHumanizeDateFormatter {\n\t#intlRelativeTimeFormat = new Intl.RelativeTimeFormat(inject(LOCALE_ID));\n\n\tformat(relativeTime: LuRelativeTime): string {\n\t\treturn this.#intlRelativeTimeFormat.format(relativeTime.value, relativeTime.unit);\n\t}\n}\n","export const luRelativeTimeFormatUnit = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'] as const;\nexport type LuRelativeTimeFormatUnit = (typeof luRelativeTimeFormatUnit)[number];\n\nexport interface LuRelativeTime {\n\t/**\n\t * The relevant unit for the relative time.\n\t */\n\tunit: LuRelativeTimeFormatUnit;\n\t/**\n\t * The integer value of the relative time.\n\t * Negative values are used for past dates.\n\t */\n\tvalue: number;\n}\n","import { differenceInDays, differenceInHours, differenceInMinutes, differenceInMonths, differenceInSeconds, differenceInWeeks, differenceInYears } from 'date-fns';\nimport { Observable } from 'rxjs';\nimport { LuRelativeTime, LuRelativeTimeFormatUnit, luRelativeTimeFormatUnit } from './humanize.model';\n\nconst getDifferenceByUnit: Record<LuRelativeTimeFormatUnit, (date: number | Date, reference: number | Date) => number> = {\n\tsecond: differenceInSeconds,\n\tminute: differenceInMinutes,\n\thour: differenceInHours,\n\tday: differenceInDays,\n\tweek: differenceInWeeks,\n\tmonth: differenceInMonths,\n\tyear: differenceInYears,\n};\n\nexport function getRelativeTime(date: number | Date, reference: number | Date, allowedUnits: readonly LuRelativeTimeFormatUnit[] = luRelativeTimeFormatUnit): LuRelativeTime {\n\tif (!allowedUnits.length) {\n\t\tthrow new Error('[getRelativeTime] Pass at least one unit');\n\t}\n\n\tfor (let i = 0; i < allowedUnits.length; i++) {\n\t\tconst unit = allowedUnits[i];\n\t\tconst isLastUnit = i === allowedUnits.length - 1;\n\n\t\tif (isLastUnit) {\n\t\t\treturn { unit, value: getDifferenceByUnit[unit](date, reference) };\n\t\t}\n\n\t\tconst nextUnit = allowedUnits[i + 1];\n\t\tconst diff = getDifferenceByUnit[nextUnit](date, reference);\n\n\t\tif (Math.abs(diff) < 1) {\n\t\t\treturn { unit, value: getDifferenceByUnit[unit](date, reference) };\n\t\t}\n\t}\n\n\t// Should never happen as the for loop should always return\n\tthrow new Error('[getRelativeTime] No unit found for the given date');\n}\n\nconst nextRelativeTimeTickInMsByUnit: Record<LuRelativeTimeFormatUnit, number> = {\n\tsecond: 1_000,\n\tminute: 60_000,\n\thour: 60 * 60_000,\n\tday: 24 * 60 * 60_000,\n\tweek: 24 * 60 * 60_000,\n\tmonth: 24 * 60 * 60_000,\n\tyear: 24 * 60 * 60_000,\n};\n\nconst previousRelativeTimeUnitByUnit: Record<LuRelativeTimeFormatUnit, LuRelativeTimeFormatUnit | null> = {\n\tsecond: null,\n\tminute: 'second',\n\thour: 'minute',\n\tday: 'hour',\n\tweek: 'day',\n\tmonth: 'week',\n\tyear: 'month',\n};\n\nexport function relativeTimeTimer(date: Date | number, allowedUnits?: readonly LuRelativeTimeFormatUnit[]): Observable<LuRelativeTime> {\n\treturn new Observable<LuRelativeTime>((subscriber) => {\n\t\tlet timeoutId: ReturnType<typeof setTimeout> | null = null;\n\t\tconst dateAsNumber = typeof date === 'number' ? date : date.getTime();\n\n\t\tfunction next() {\n\t\t\tconst now = Date.now();\n\t\t\tconst relativeTime = getRelativeTime(date, now, allowedUnits);\n\t\t\tsubscriber.next(relativeTime);\n\n\t\t\tconst unit =\n\t\t\t\trelativeTime.value === 1 && relativeTime.unit !== 'second'\n\t\t\t\t\t? // We a future date come closer, we need to switch to the previous unit\n\t\t\t\t\t\t// For example, if we are at 1 minutes, we should switch to second to avoid displaying '1 minute' during '1 minute' (we want to wait one second to display '59 seconds')\n\t\t\t\t\t\tpreviousRelativeTimeUnitByUnit[relativeTime.unit]\n\t\t\t\t\t: relativeTime.unit;\n\n\t\t\tconst delta = now - dateAsNumber;\n\t\t\tconst nextTick = nextRelativeTimeTickInMsByUnit[unit];\n\n\t\t\t// setTimeout is not an exact science, so we need to adjust the next tick to avoid drift over time\n\t\t\tconst shift = Math.abs(delta) % nextTick;\n\t\t\tconst nextWait = relativeTime.value !== 1 ? nextTick - shift : 1000;\n\n\t\t\ttimeoutId = setTimeout(next, nextWait);\n\t\t}\n\n\t\t// Trigger the recursive loop\n\t\tnext();\n\n\t\treturn () => {\n\t\t\tif (timeoutId) {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t}\n\t\t};\n\t});\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { LuHumanizeDateFormatter } from './humanize.formatter';\nimport { LuRelativeTimeFormatUnit } from './humanize.model';\nimport { relativeTimeTimer } from './humanize.utils';\n\n@Pipe({\n\tname: 'luHumanizeDate',\n\tstandalone: true,\n})\nexport class LuHumanizeDatePipe implements PipeTransform {\n\t#formatter = inject(LuHumanizeDateFormatter, { optional: true }) ?? new LuHumanizeDateFormatter();\n\n\ttransform(value: Date | string | number, allowedUnits?: readonly LuRelativeTimeFormatUnit[]): Observable<string> {\n\t\treturn relativeTimeTimer(new Date(value), allowedUnits).pipe(map((relativeTime) => this.#formatter.format(relativeTime)));\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LuCalendarItemFactory","i2","Translations","i1"],"mappings":"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"}
|