@lucca-front/ng 22.0.3 → 22.0.4

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.
Files changed (32) hide show
  1. package/fesm2022/lucca-front-ng-core-select-api.mjs +33 -3
  2. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  4. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  6. package/fesm2022/lucca-front-ng-core-select-legal-units.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  8. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-core-select.mjs +9 -3
  10. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-date.mjs +1 -3
  12. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +14 -12
  14. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-multi-select.mjs +4 -4
  16. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-option.mjs +5 -1
  18. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-picker.mjs.map +1 -1
  20. package/fesm2022/lucca-front-ng-scroll-box.mjs +8 -4
  21. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  22. package/fesm2022/lucca-front-ng-select.mjs +1 -1
  23. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  24. package/fesm2022/lucca-front-ng-simple-select.mjs +10 -7
  25. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  26. package/package.json +4 -4
  27. package/types/lucca-front-ng-core-select-api.d.ts +19 -1
  28. package/types/lucca-front-ng-core-select.d.ts +12 -0
  29. package/types/lucca-front-ng-option.d.ts +8 -8
  30. package/types/lucca-front-ng-picker.d.ts +2 -2
  31. package/types/lucca-front-ng-select.d.ts +6 -6
  32. package/types/lucca-front-ng-simple-select.d.ts +1 -1
@@ -616,9 +616,7 @@ class LuDateInputDirective extends ALuInput {
616
616
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
617
617
  const text = event.target.value;
618
618
  const value = this.parse(text);
619
- if (isNotNil(value)) {
620
- this.setValue(value);
621
- }
619
+ this.setValue(value ?? null);
622
620
  }
623
621
  parse(text) {
624
622
  return this._adapter.parse(text, this.granularity());
@@ -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/translations.ts","../../../packages/ng/date/calendar/calendar-input.translate.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/input/translations.ts","../../../packages/ng/date/input/date-input.translate.ts","../../../packages/ng/date/input/date-input.directive.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/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/select/translations.ts","../../../packages/ng/date/select/date-select-input.translate.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})\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/**\n * @deprecated use `LuDateAdapterPipe` instead\n */\n@NgModule({\n\timports: [LuDateAdapterPipe],\n\texports: [LuDateAdapterPipe],\n})\nexport class LuDateAdapterModule {}\n","export const Translations = {\n\ten: {\n\t\tprevious: 'Previous',\n\t\tnext: 'Next',\n\t},\n\tde: {\n\t\tprevious: 'Abbrechen',\n\t\tnext: 'Weiter',\n\t},\n\tfr: {\n\t\tprevious: 'Précédent',\n\t\tnext: 'Suivant',\n\t},\n\tit: {\n\t\tprevious: 'Precedente',\n\t\tnext: 'Seguente',\n\t},\n\tnl: {\n\t\tprevious: 'Vorige',\n\t\tnext: 'Volgende',\n\t},\n\t'nl-BE': {\n\t\tprevious: '',\n\t\tnext: '',\n\t},\n\tes: {\n\t\tprevious: 'Anterior',\n\t\tnext: 'Siguiente',\n\t},\n\tpt: {\n\t\tprevious: 'Anterior',\n\t\tnext: 'Seguinte',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CALENDARINPUT_TRANSLATIONS = new InjectionToken('LuCalendarInputTranslations', {\n\tfactory: () => luCalendarInputTranslations,\n});\n\nexport interface LuCalendarInputLabel {\n\tprevious: string;\n\tnext: string;\n}\n\nexport const luCalendarInputTranslations: LuTranslation<LuCalendarInputLabel> = Translations;\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}-${String(this.date)}`;\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 { 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, intlInputOptions, isNotNil, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuInput } from '@lucca-front/ng/input';\nimport { LU_CALENDARINPUT_TRANSLATIONS } from './calendar-input.translate';\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\tstyleUrl: './calendar-input.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [FormsModule],\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\treadonly intl = input(...intlInputOptions(LU_CALENDARINPUT_TRANSLATIONS));\n\n\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly startOn = input<D>();\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 startOn = this.startOn() ?? this._adapter.forgeToday();\n\t\tconst date = value && this._adapter.isValid(value) ? this._adapter.clone(value) : 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\tconst firstLabel = this.labels.shift();\n\t\t\tif (firstLabel !== undefined) {\n\t\t\t\tthis.labels.push(firstLabel);\n\t\t\t}\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 minSignal = this.min();\n\t\tconst maxSignal = this.max();\n\n\t\tconst min = isNotNil(minSignal) && this._adapter.isValid(minSignal) ? minSignal : undefined;\n\t\tconst max = isNotNil(maxSignal) && this._adapter.isValid(maxSignal) ? maxSignal : undefined;\n\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 minSignal = this.min();\n\t\tconst maxSignal = this.max();\n\n\t\tconst min = isNotNil(minSignal) && this._adapter.isValid(minSignal) ? minSignal : undefined;\n\t\tconst max = isNotNil(maxSignal) && this._adapter.isValid(maxSignal) ? maxSignal : undefined;\n\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 minSignal = this.min();\n\t\tconst maxSignal = this.max();\n\n\t\tconst min = isNotNil(minSignal) && this._adapter.isValid(minSignal) ? minSignal : undefined;\n\t\tconst max = maxSignal && this._adapter.isValid(maxSignal) ? maxSignal : undefined;\n\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\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\tconst min = this.min();\n\t\tif (!!min && this._adapter.isValid(min) && this._adapter.compare(min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tconst max = this.max();\n\t\tif (!!max && this._adapter.isValid(max) && this._adapter.compare(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-ghost mod-S\" (click)=\"previous()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronLeft\"></span>\n\t\t\t<span class=\"pr-u-mask\">{{ intl().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-ghost mod-S\" (click)=\"next()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronRight\"></span>\n\t\t\t<span class=\"pr-u-mask\">{{ intl().next }}</span>\n\t\t</button>\n\t</header>\n\t<section class=\"calendar-labels\" [class]=\"mod\">\n\t\t@for (label of labels; track label) {\n\t\t\t<div class=\"calendar-labels-item\">{{ label }}</div>\n\t\t}\n\t</section>\n\t<section class=\"calendar-grid\" [class]=\"mod\">\n\t\t@for (item of items; track item.id) {\n\t\t\t<button type=\"button\" class=\"calendar-grid-item\" [class]=\"item.mods\" [disabled]=\"item.isDisabled\" (click)=\"select(item)\">\n\t\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\n\t\t\t</button>\n\t\t}\n\t</section>\n</section>\n","export const Translations = {\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\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\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tpl: {\n\t\tplaceholderDay: 'DD/MM/RRRR',\n\t\tplaceholderMonth: 'MM/RRRR',\n\t\tplaceholderYear: 'RRRR',\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, input, Renderer2 } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, intlInputOptions, isNotNil, LuDateGranularity, ɵeffectWithDeps } 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\thost: {\n\t\t'(input)': 'onInput($event)',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t},\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 {\n\tprivate _focused = false;\n\n\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly placeHolderInput = input<string>('', { alias: 'placeholder' });\n\n\toverride set placeholder(p: string) {\n\t\tthis._elementRef.nativeElement.placeholder = p;\n\t}\n\n\tpublic readonly intl = input(...intlInputOptions(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\tɵeffectWithDeps([this.placeHolderInput, this.granularity, this.intl], (placeHolderInput, granularity, intl) => {\n\t\t\tif (placeHolderInput) {\n\t\t\t\tthis._elementRef.nativeElement.placeholder = placeHolderInput;\n\t\t\t} else {\n\t\t\t\tswitch (granularity) {\n\t\t\t\t\tcase ELuDateGranularity.year:\n\t\t\t\t\t\tthis._elementRef.nativeElement.placeholder = intl.placeholderYear;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ELuDateGranularity.month:\n\t\t\t\t\t\tthis._elementRef.nativeElement.placeholder = intl.placeholderMonth;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ELuDateGranularity.day:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis._elementRef.nativeElement.placeholder = intl.placeholderDay;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\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\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\tif (isNotNil(value)) {\n\t\t\tthis.setValue(value);\n\t\t}\n\t}\n\n\tprivate parse(text: string): D | undefined {\n\t\treturn this._adapter.parse(text, this.granularity());\n\t}\n\n\tonFocus() {\n\t\tthis._focused = true;\n\t}\n\n\tonBlur() {\n\t\tthis._focused = false;\n\t\tthis.render();\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\tconst min = this.min();\n\t\tif (!!min && this._adapter.isValid(min) && this._adapter.compare(min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tconst max = this.max();\n\t\tif (!!max && this._adapter.isValid(max) && this._adapter.compare(max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\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 { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, input, TemplateRef, viewChild } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity, ɵeffectWithDeps } 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\timports: [FormsModule, 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\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly startOn = input<D>();\n\n\toverride close = new EventEmitter<void>();\n\toverride open = new EventEmitter<void>();\n\toverride hovered = new EventEmitter<boolean>();\n\toverride onSelectValue = new EventEmitter<D>();\n\n\tprotected readonly closeOutput = outputFromObservable(this.close, { alias: 'close' });\n\tprotected readonly openOutput = outputFromObservable(this.open, { alias: 'open' });\n\tprotected readonly hoveredOutput = outputFromObservable(this.hovered, { alias: 'hovered' });\n\tprotected readonly onSelectValueOutput = outputFromObservable(this.onSelectValue, { alias: 'onSelectValue' });\n\n\tprivate readonly vcTemplateRef = viewChild.required<TemplateRef<unknown>>(TemplateRef);\n\n\tconstructor(private _adapter: ALuDateAdapter<D>) {\n\t\tsuper();\n\n\t\tɵeffectWithDeps([this.vcTemplateRef], (vcTemplateRef) => {\n\t\t\tthis.templateRef = vcTemplateRef;\n\t\t});\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}\n","<ng-template>\n\t<div\n\t\tclass=\"lu-picker-panel lu-date-picker-panel\"\n\t\trole=\"dialog\"\n\t\t[class]=\"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\" [class]=\"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[ngModelOptions]=\"{ standalone: true }\"\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[ngModelOptions]=\"{ standalone: true }\"\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/>\n\t\t</div>\n\t</div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { LuDatePickerComponent } from './date-picker.component';\n\n/**\n * @deprecated use `LuDatePickerComponent` instead\n */\n@NgModule({\n\timports: [LuDatePickerComponent],\n\texports: [LuDatePickerComponent],\n})\nexport class LuDatePickerModule {}\n","import { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, input, Renderer2, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { ALuDateAdapter, ELuDateGranularity, luBooleanAttribute, LuDateGranularity, syncInputSignal } from '@lucca-front/ng/core';\nimport { 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';\n\n@Component({\n\tselector: 'lu-date-select',\n\ttemplateUrl: './date-select-input.component.html',\n\tstyleUrl: './date-select-input.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuDateAdapterPipe, LuDatePickerComponent, OverlayModule, ClearComponent, 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\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly hideClearer = input(false, { transform: luBooleanAttribute });\n\n\treadonly startOn = input<D>();\n\n\tprotected _startOn: D = this._adapter.forgeToday();\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\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.pickerOverlapRef.set(true);\n\n\t\tsyncInputSignal(this.startOn, (s) => {\n\t\t\tthis._startOn = s ?? this._adapter.forgeToday();\n\t\t});\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\tconst min = this.min();\n\t\tif (!!min && this._adapter.isValid(min) && this._adapter.compare(min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tconst max = this.max();\n\t\tif (!!max && this._adapter.isValid(max) && this._adapter.compare(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 />\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<lu-clear [attr.hidden]=\"hideClearer() ? 'hidden' : null\" />\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()\" />\n","import { NgModule } from '@angular/core';\nimport { LuDateSelectInputComponent } from './date-select-input.component';\n\n/**\n * @deprecated use `LuDateSelectInputComponent` instead\n */\n@NgModule({\n\timports: [LuDateSelectInputComponent],\n\texports: [LuDateSelectInputComponent],\n})\nexport class LuDateSelectInputModule {}\n","export const Translations = {\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\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\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tpl: {\n\t\tplaceholderDay: 'DD/MM/RRRR',\n\t\tplaceholderMonth: 'MM/RRRR',\n\t\tplaceholderYear: 'RRRR',\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 { 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/**\n * @deprecated use `LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent` instead\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 = {\n\tsecond: differenceInSeconds,\n\tminute: differenceInMinutes,\n\thour: differenceInHours,\n\tday: differenceInDays,\n\tweek: differenceInWeeks,\n\tmonth: differenceInMonths,\n\tyear: differenceInYears,\n} as const satisfies Record<LuRelativeTimeFormatUnit, (date: number | Date, reference: number | Date) => number>;\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 = {\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} as const satisfies Record<LuRelativeTimeFormatUnit, number>;\n\nconst previousRelativeTimeUnitByUnit = {\n\tsecond: null,\n\tminute: 'second',\n\thour: 'minute',\n\tday: 'hour',\n\tweek: 'day',\n\tmonth: 'week',\n\tyear: 'month',\n} as const satisfies Record<LuRelativeTimeFormatUnit, LuRelativeTimeFormatUnit | null>;\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})\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":["Translations","i1.LuCalendarItemFactory","i2","ɵeffectWithDeps","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/translations.ts","../../../packages/ng/date/calendar/calendar-input.translate.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/input/translations.ts","../../../packages/ng/date/input/date-input.translate.ts","../../../packages/ng/date/input/date-input.directive.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/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/select/translations.ts","../../../packages/ng/date/select/date-select-input.translate.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})\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/**\n * @deprecated use `LuDateAdapterPipe` instead\n */\n@NgModule({\n\timports: [LuDateAdapterPipe],\n\texports: [LuDateAdapterPipe],\n})\nexport class LuDateAdapterModule {}\n","export const Translations = {\n\ten: {\n\t\tprevious: 'Previous',\n\t\tnext: 'Next',\n\t},\n\tde: {\n\t\tprevious: 'Abbrechen',\n\t\tnext: 'Weiter',\n\t},\n\tfr: {\n\t\tprevious: 'Précédent',\n\t\tnext: 'Suivant',\n\t},\n\tit: {\n\t\tprevious: 'Precedente',\n\t\tnext: 'Seguente',\n\t},\n\tnl: {\n\t\tprevious: 'Vorige',\n\t\tnext: 'Volgende',\n\t},\n\t'nl-BE': {\n\t\tprevious: '',\n\t\tnext: '',\n\t},\n\tes: {\n\t\tprevious: 'Anterior',\n\t\tnext: 'Siguiente',\n\t},\n\tpt: {\n\t\tprevious: 'Anterior',\n\t\tnext: 'Seguinte',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CALENDARINPUT_TRANSLATIONS = new InjectionToken('LuCalendarInputTranslations', {\n\tfactory: () => luCalendarInputTranslations,\n});\n\nexport interface LuCalendarInputLabel {\n\tprevious: string;\n\tnext: string;\n}\n\nexport const luCalendarInputTranslations: LuTranslation<LuCalendarInputLabel> = Translations;\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}-${String(this.date)}`;\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 { 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, intlInputOptions, isNotNil, LuDateGranularity } from '@lucca-front/ng/core';\nimport { ALuInput } from '@lucca-front/ng/input';\nimport { LU_CALENDARINPUT_TRANSLATIONS } from './calendar-input.translate';\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\tstyleUrl: './calendar-input.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [FormsModule],\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\treadonly intl = input(...intlInputOptions(LU_CALENDARINPUT_TRANSLATIONS));\n\n\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly startOn = input<D>();\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 startOn = this.startOn() ?? this._adapter.forgeToday();\n\t\tconst date = value && this._adapter.isValid(value) ? this._adapter.clone(value) : 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\tconst firstLabel = this.labels.shift();\n\t\t\tif (firstLabel !== undefined) {\n\t\t\t\tthis.labels.push(firstLabel);\n\t\t\t}\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 minSignal = this.min();\n\t\tconst maxSignal = this.max();\n\n\t\tconst min = isNotNil(minSignal) && this._adapter.isValid(minSignal) ? minSignal : undefined;\n\t\tconst max = isNotNil(maxSignal) && this._adapter.isValid(maxSignal) ? maxSignal : undefined;\n\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 minSignal = this.min();\n\t\tconst maxSignal = this.max();\n\n\t\tconst min = isNotNil(minSignal) && this._adapter.isValid(minSignal) ? minSignal : undefined;\n\t\tconst max = isNotNil(maxSignal) && this._adapter.isValid(maxSignal) ? maxSignal : undefined;\n\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 minSignal = this.min();\n\t\tconst maxSignal = this.max();\n\n\t\tconst min = isNotNil(minSignal) && this._adapter.isValid(minSignal) ? minSignal : undefined;\n\t\tconst max = maxSignal && this._adapter.isValid(maxSignal) ? maxSignal : undefined;\n\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\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\tconst min = this.min();\n\t\tif (!!min && this._adapter.isValid(min) && this._adapter.compare(min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tconst max = this.max();\n\t\tif (!!max && this._adapter.isValid(max) && this._adapter.compare(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-ghost mod-S\" (click)=\"previous()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronLeft\"></span>\n\t\t\t<span class=\"pr-u-mask\">{{ intl().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-ghost mod-S\" (click)=\"next()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-arrowChevronRight\"></span>\n\t\t\t<span class=\"pr-u-mask\">{{ intl().next }}</span>\n\t\t</button>\n\t</header>\n\t<section class=\"calendar-labels\" [class]=\"mod\">\n\t\t@for (label of labels; track label) {\n\t\t\t<div class=\"calendar-labels-item\">{{ label }}</div>\n\t\t}\n\t</section>\n\t<section class=\"calendar-grid\" [class]=\"mod\">\n\t\t@for (item of items; track item.id) {\n\t\t\t<button type=\"button\" class=\"calendar-grid-item\" [class]=\"item.mods\" [disabled]=\"item.isDisabled\" (click)=\"select(item)\">\n\t\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\n\t\t\t</button>\n\t\t}\n\t</section>\n</section>\n","export const Translations = {\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\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\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tpl: {\n\t\tplaceholderDay: 'DD/MM/RRRR',\n\t\tplaceholderMonth: 'MM/RRRR',\n\t\tplaceholderYear: 'RRRR',\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, input, Renderer2 } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, intlInputOptions, LuDateGranularity, ɵeffectWithDeps } 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\thost: {\n\t\t'(input)': 'onInput($event)',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t},\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 {\n\tprivate _focused = false;\n\n\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly placeHolderInput = input<string>('', { alias: 'placeholder' });\n\n\toverride set placeholder(p: string) {\n\t\tthis._elementRef.nativeElement.placeholder = p;\n\t}\n\n\tpublic readonly intl = input(...intlInputOptions(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\tɵeffectWithDeps([this.placeHolderInput, this.granularity, this.intl], (placeHolderInput, granularity, intl) => {\n\t\t\tif (placeHolderInput) {\n\t\t\t\tthis._elementRef.nativeElement.placeholder = placeHolderInput;\n\t\t\t} else {\n\t\t\t\tswitch (granularity) {\n\t\t\t\t\tcase ELuDateGranularity.year:\n\t\t\t\t\t\tthis._elementRef.nativeElement.placeholder = intl.placeholderYear;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ELuDateGranularity.month:\n\t\t\t\t\t\tthis._elementRef.nativeElement.placeholder = intl.placeholderMonth;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ELuDateGranularity.day:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis._elementRef.nativeElement.placeholder = intl.placeholderDay;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\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\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 ?? null);\n\t}\n\n\tprivate parse(text: string): D | undefined {\n\t\treturn this._adapter.parse(text, this.granularity());\n\t}\n\n\tonFocus() {\n\t\tthis._focused = true;\n\t}\n\n\tonBlur() {\n\t\tthis._focused = false;\n\t\tthis.render();\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\tconst min = this.min();\n\t\tif (!!min && this._adapter.isValid(min) && this._adapter.compare(min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tconst max = this.max();\n\t\tif (!!max && this._adapter.isValid(max) && this._adapter.compare(max, d, ELuDateGranularity.day) < 0) {\n\t\t\treturn { max: true };\n\t\t}\n\t\treturn null;\n\t}\n}\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 { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, input, TemplateRef, viewChild } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { ALuDateAdapter, ELuDateGranularity, LuDateGranularity, ɵeffectWithDeps } 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\timports: [FormsModule, 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\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly startOn = input<D>();\n\n\toverride close = new EventEmitter<void>();\n\toverride open = new EventEmitter<void>();\n\toverride hovered = new EventEmitter<boolean>();\n\toverride onSelectValue = new EventEmitter<D>();\n\n\tprotected readonly closeOutput = outputFromObservable(this.close, { alias: 'close' });\n\tprotected readonly openOutput = outputFromObservable(this.open, { alias: 'open' });\n\tprotected readonly hoveredOutput = outputFromObservable(this.hovered, { alias: 'hovered' });\n\tprotected readonly onSelectValueOutput = outputFromObservable(this.onSelectValue, { alias: 'onSelectValue' });\n\n\tprivate readonly vcTemplateRef = viewChild.required<TemplateRef<unknown>>(TemplateRef);\n\n\tconstructor(private _adapter: ALuDateAdapter<D>) {\n\t\tsuper();\n\n\t\tɵeffectWithDeps([this.vcTemplateRef], (vcTemplateRef) => {\n\t\t\tthis.templateRef = vcTemplateRef;\n\t\t});\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}\n","<ng-template>\n\t<div\n\t\tclass=\"lu-picker-panel lu-date-picker-panel\"\n\t\trole=\"dialog\"\n\t\t[class]=\"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\" [class]=\"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[ngModelOptions]=\"{ standalone: true }\"\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[ngModelOptions]=\"{ standalone: true }\"\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/>\n\t\t</div>\n\t</div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { LuDatePickerComponent } from './date-picker.component';\n\n/**\n * @deprecated use `LuDatePickerComponent` instead\n */\n@NgModule({\n\timports: [LuDatePickerComponent],\n\texports: [LuDatePickerComponent],\n})\nexport class LuDatePickerModule {}\n","import { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, input, Renderer2, ViewContainerRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { ALuDateAdapter, ELuDateGranularity, luBooleanAttribute, LuDateGranularity, syncInputSignal } from '@lucca-front/ng/core';\nimport { 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';\n\n@Component({\n\tselector: 'lu-date-select',\n\ttemplateUrl: './date-select-input.component.html',\n\tstyleUrl: './date-select-input.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuDateAdapterPipe, LuDatePickerComponent, OverlayModule, ClearComponent, 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\treadonly min = input<D>();\n\n\treadonly max = input<D>();\n\n\treadonly granularity = input<LuDateGranularity>(ELuDateGranularity.day);\n\n\treadonly hideClearer = input(false, { transform: luBooleanAttribute });\n\n\treadonly startOn = input<D>();\n\n\tprotected _startOn: D = this._adapter.forgeToday();\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\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.pickerOverlapRef.set(true);\n\n\t\tsyncInputSignal(this.startOn, (s) => {\n\t\t\tthis._startOn = s ?? this._adapter.forgeToday();\n\t\t});\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\tconst min = this.min();\n\t\tif (!!min && this._adapter.isValid(min) && this._adapter.compare(min, d, ELuDateGranularity.day) > 0) {\n\t\t\treturn { min: true };\n\t\t}\n\t\tconst max = this.max();\n\t\tif (!!max && this._adapter.isValid(max) && this._adapter.compare(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 />\n\t</div>\n</div>\n<div class=\"lu-select-suffix\">\n\t<lu-clear [attr.hidden]=\"hideClearer() ? 'hidden' : null\" />\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()\" />\n","import { NgModule } from '@angular/core';\nimport { LuDateSelectInputComponent } from './date-select-input.component';\n\n/**\n * @deprecated use `LuDateSelectInputComponent` instead\n */\n@NgModule({\n\timports: [LuDateSelectInputComponent],\n\texports: [LuDateSelectInputComponent],\n})\nexport class LuDateSelectInputModule {}\n","export const Translations = {\n\tpt: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\tes: {\n\t\tplaceholderDay: 'DD/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\n\t},\n\t'nl-BE': {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tnl: {\n\t\tplaceholderDay: 'DD/MM/JJJJ',\n\t\tplaceholderMonth: 'MM/JJJJ',\n\t\tplaceholderYear: 'JJJJ',\n\t},\n\tit: {\n\t\tplaceholderDay: 'GG/MM/AAAA',\n\t\tplaceholderMonth: 'MM/AAAA',\n\t\tplaceholderYear: 'AAAA',\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\ten: {\n\t\tplaceholderDay: 'DD/MM/YYYY',\n\t\tplaceholderMonth: 'MM/YYYY',\n\t\tplaceholderYear: 'YYYY',\n\t},\n\tpl: {\n\t\tplaceholderDay: 'DD/MM/RRRR',\n\t\tplaceholderMonth: 'MM/RRRR',\n\t\tplaceholderYear: 'RRRR',\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 { 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/**\n * @deprecated use `LuCalendarInputComponent, LuDatePickerComponent, LuDateInputDirective, LuDateAdapterPipe, LuDateSelectInputComponent` instead\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 = {\n\tsecond: differenceInSeconds,\n\tminute: differenceInMinutes,\n\thour: differenceInHours,\n\tday: differenceInDays,\n\tweek: differenceInWeeks,\n\tmonth: differenceInMonths,\n\tyear: differenceInYears,\n} as const satisfies Record<LuRelativeTimeFormatUnit, (date: number | Date, reference: number | Date) => number>;\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 = {\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} as const satisfies Record<LuRelativeTimeFormatUnit, number>;\n\nconst previousRelativeTimeUnitByUnit = {\n\tsecond: null,\n\tminute: 'second',\n\thour: 'minute',\n\tday: 'hour',\n\tweek: 'day',\n\tmonth: 'week',\n\tyear: 'month',\n} as const satisfies Record<LuRelativeTimeFormatUnit, LuRelativeTimeFormatUnit | null>;\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})\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":["Translations","i1.LuCalendarItemFactory","i2","ɵeffectWithDeps","i1"],"mappings":"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"}
@@ -181,19 +181,21 @@ class PhoneNumberInputComponent {
181
181
  updateModel() {
182
182
  const displayedNumber = this.displayedNumber();
183
183
  const countryCode = this.countryCode();
184
- if (displayedNumber) {
185
- try {
186
- const { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);
187
- if (country && country !== countryCode) {
188
- this.countryCodeSelected.set(country);
189
- this.countryChange.emit(country);
190
- }
191
- this.#onChange?.(number);
192
- return;
193
- }
194
- catch {
195
- this.#onChange?.(displayedNumber);
184
+ if (!displayedNumber) {
185
+ // the field has been emptied, the control has to be emptied too
186
+ this.#onChange?.('');
187
+ return;
188
+ }
189
+ try {
190
+ const { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);
191
+ if (country && country !== countryCode) {
192
+ this.countryCodeSelected.set(country);
193
+ this.countryChange.emit(country);
196
194
  }
195
+ this.#onChange?.(number);
196
+ }
197
+ catch {
198
+ this.#onChange?.(displayedNumber);
197
199
  }
198
200
  }
199
201
  touched() {
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms-phone-number-input.mjs","sources":["../../../packages/ng/forms/phone-number-input/formatter.ts","../../../packages/ng/forms/phone-number-input/phone-number-format.pipe.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.type.ts","../../../packages/ng/forms/phone-number-input/validators.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.html","../../../packages/ng/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.ts"],"sourcesContent":["import { E164Number, NumberFormat } from './types';\nimport { parsePhoneNumber } from 'libphonenumber-js';\n\nexport class PhoneNumberFormatter {\n\tstatic format(phoneNumber: E164Number, format: NumberFormat = 'NATIONAL'): string {\n\t\treturn parsePhoneNumber(phoneNumber).format(format);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PhoneNumberFormatter } from './formatter';\nimport { E164Number, NumberFormat } from './types';\n\n@Pipe({\n\tname: 'luPhoneNumberFormat',\n})\nexport class PhoneNumberFormatPipe implements PipeTransform {\n\ttransform(value: E164Number, format: NumberFormat = 'NATIONAL'): unknown {\n\t\treturn PhoneNumberFormatter.format(value, format);\n\t}\n}\n","/**\n * Available PhoneNumberInputComponent Autocomplete values\n */\n\nexport const PHONE_NUMBER_INPUT_AUTOCOMPLETE = ['off', 'tel'] as const;\nexport type PhoneNumberInputAutocomplete = (typeof PHONE_NUMBER_INPUT_AUTOCOMPLETE)[number];\n","import { AbstractControl } from '@angular/forms';\nimport { validatePhoneNumberLength, isValidPhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport class PhoneNumberValidators {\n\tstatic validPhoneNumber(control: AbstractControl<string>, countryCode?: CountryCode) {\n\t\tif (control.value) {\n\t\t\tconst reason = validatePhoneNumberLength(control.value, countryCode);\n\t\t\tif (reason) {\n\t\t\t\treturn { validPhoneNumber: reason };\n\t\t\t}\n\t\t\tif (!isValidPhoneNumber(control.value, countryCode)) {\n\t\t\t\treturn { validPhoneNumber: 'INVALID' };\n\t\t\t}\n\t\t}\n\t\t// Else, everything is fine !\n\t\treturn null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, LOCALE_ID, output, signal, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { LuDisplayerDirective, LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective, ɵPresentationDisplayDefaultDirective } from '@lucca-front/ng/form-field';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { type CountryCallingCode, formatIncompletePhoneNumber, getCountries, getCountryCallingCode, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\nimport { PhoneNumberInputAutocomplete } from './phone-number-input.type';\nimport { CountryCode } from './types';\nimport { PhoneNumberValidators } from './validators';\n\ninterface PrefixEntry {\n\tcountry: CountryCode;\n\tprefix: CountryCallingCode;\n\tname: string;\n}\n\ntype ParsePhoneNumberResult = {\n\tnumber: string;\n\tcountry?: CountryCode;\n\tnationalNumber?: string;\n\tisValid: boolean;\n};\n\nfunction tryParsePhoneNumber(phoneNumber: string, countryCode?: CountryCode): ParsePhoneNumberResult {\n\ttry {\n\t\tconst parsedNumber = parsePhoneNumber(phoneNumber, countryCode);\n\t\treturn {\n\t\t\tcountry: parsedNumber.country,\n\t\t\tnumber: parsedNumber.number,\n\t\t\tnationalNumber: parsedNumber.formatNational(),\n\t\t\tisValid: parsedNumber.isValid(),\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tnumber: phoneNumber,\n\t\t\tnationalNumber: phoneNumber,\n\t\t\tisValid: false,\n\t\t};\n\t}\n}\n\n@Component({\n\tselector: 'lu-phone-number-input',\n\timports: [LuSimpleSelectInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, ɵPresentationDisplayDefaultDirective],\n\ttemplateUrl: './phone-number-input.component.html',\n\tstyleUrl: './phone-number-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly label = input<string>();\n\n\treadonly autocomplete = input<PhoneNumberInputAutocomplete>();\n\n\t/**\n\t * Which countries should be shown? Defaults to empty array which means all of them.\n\t *\n\t * You can use CountryCode to make sure it's properly typed on your end, string is also accepted\n\t */\n\treadonly allowedCountries = input<ReadonlyArray<CountryCode | string>>([]);\n\n\treadonly noAutoPlaceholder = input(false, { transform: luBooleanAttribute });\n\n\treadonly defaultCountryCode = input<CountryCode>(undefined, { alias: 'country' });\n\n\treadonly countryChange = output<CountryCode>();\n\n\treadonly currentValue = signal<string>('');\n\n\t#onChange?: (value: string) => void;\n\n\t#onTouched?: () => void;\n\n\tdisabled = false;\n\n\t#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });\n\n\tprefixEntries = getCountries()\n\t\t.map((country) => ({\n\t\t\tcountry,\n\t\t\tprefix: getCountryCallingCode(country),\n\t\t\tname: this.#displayNames.of(country),\n\t\t}))\n\t\t.sort((a, b) => (a.name && b.name ? a.name.localeCompare(b.name) : 0));\n\n\treadonly #prefixEntries = computed(() => {\n\t\tconst whitelist = this.allowedCountries();\n\t\tif (whitelist.length === 0) {\n\t\t\treturn this.prefixEntries;\n\t\t}\n\t\treturn this.prefixEntries.filter((e) => whitelist.includes(e.country));\n\t});\n\n\treadonly query = signal('');\n\n\tprotected readonly prefixesDisplay = computed(() => {\n\t\tconst query = this.query();\n\t\tif (query === '') {\n\t\t\treturn this.#prefixEntries();\n\t\t}\n\t\treturn this.#prefixEntries().filter((entry) => {\n\t\t\treturn entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name?.toLowerCase().includes(query.toLowerCase());\n\t\t});\n\t});\n\n\treadonly countryCodeSelected = signal<CountryCode | undefined>(undefined);\n\n\treadonly countryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());\n\n\treadonly placeholder = computed(() => {\n\t\tconst countryCode = this.countryCode();\n\t\tconst exampleNumber = this.noAutoPlaceholder() === false && countryCode ? getExampleNumber(countryCode, examples) : undefined;\n\t\treturn exampleNumber?.formatNational() ?? '';\n\t});\n\n\treadonly displayedNumber = signal<string | undefined>(undefined);\n\n\treadonly prefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));\n\n\tprotected getPrefixKey = (prefix: PrefixEntry) => prefix?.country;\n\n\tprotected prefixComparator = (a: PrefixEntry, b: PrefixEntry) => this.getPrefixKey(a) === this.getPrefixKey(b);\n\n\twriteValue(value: string): void {\n\t\ttry {\n\t\t\tif (value) {\n\t\t\t\tconst { country, number, nationalNumber } = tryParsePhoneNumber(value, this.countryCode());\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tif (value !== number) {\n\t\t\t\t\tthis.#onChange?.(number);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.displayedNumber.set(undefined);\n\t\t\t}\n\t\t} catch {\n\t\t\tthis.displayedNumber.set(value);\n\t\t}\n\t\tthis.currentValue.set(value);\n\t\tthis.formatNationalNumber();\n\t}\n\n\tregisterOnChange(fn: (value: string) => void): void {\n\t\tthis.#onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.#onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tupdatePrefix(prefixEntry: PrefixEntry) {\n\t\tthis.countryCodeSelected.set(prefixEntry.country);\n\t\tthis.countryChange.emit(prefixEntry.country);\n\t\tthis.touched();\n\t\tthis.updateModel();\n\t\tthis.formatNationalNumber();\n\t}\n\n\tupdateNumber(number: string) {\n\t\tthis.displayedNumber.set(number);\n\t\tthis.updateModel();\n\t}\n\n\tupdateModel(): void {\n\t\tconst displayedNumber = this.displayedNumber();\n\t\tconst countryCode = this.countryCode();\n\n\t\tif (displayedNumber) {\n\t\t\ttry {\n\t\t\t\tconst { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\t\tif (country && country !== countryCode) {\n\t\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\t\tthis.countryChange.emit(country);\n\t\t\t\t}\n\t\t\t\tthis.#onChange?.(number);\n\t\t\t\treturn;\n\t\t\t} catch {\n\t\t\t\tthis.#onChange?.(displayedNumber);\n\t\t\t}\n\t\t}\n\t}\n\n\ttouched(): void {\n\t\tthis.#onTouched?.();\n\t}\n\n\tformatNationalNumber(): void {\n\t\tconst countryCode = this.countryCode();\n\t\tconst displayedNumber = this.displayedNumber();\n\n\t\tif (displayedNumber) {\n\t\t\ttry {\n\t\t\t\tconst { isValid, nationalNumber } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\t\tif (isValid) {\n\t\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\t} else if (countryCode) {\n\t\t\t\t\tthis.displayedNumber.set(formatIncompletePhoneNumber(displayedNumber, countryCode));\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl<string, string>): ValidationErrors | null {\n\t\treturn PhoneNumberValidators.validPhoneNumber(control, this.countryCode());\n\t}\n}\n","<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\tignorePresentation\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n\n<ng-container *luPresentationDisplayDefault>\n\t@if (currentValue()) {\n\t\t<a class=\"presentation-definition-link\" href=\"tel:{{ currentValue() }}\">{{ currentValue() }}</a>\n\t} @else {\n\t\t<span aria-hidden=\"true\" data-content-before=\"–\"></span>\n\t}\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵPresentationDisplayDefaultDirective"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-forms-phone-number-input.mjs","sources":["../../../packages/ng/forms/phone-number-input/formatter.ts","../../../packages/ng/forms/phone-number-input/phone-number-format.pipe.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.type.ts","../../../packages/ng/forms/phone-number-input/validators.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.html","../../../packages/ng/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.ts"],"sourcesContent":["import { E164Number, NumberFormat } from './types';\nimport { parsePhoneNumber } from 'libphonenumber-js';\n\nexport class PhoneNumberFormatter {\n\tstatic format(phoneNumber: E164Number, format: NumberFormat = 'NATIONAL'): string {\n\t\treturn parsePhoneNumber(phoneNumber).format(format);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PhoneNumberFormatter } from './formatter';\nimport { E164Number, NumberFormat } from './types';\n\n@Pipe({\n\tname: 'luPhoneNumberFormat',\n})\nexport class PhoneNumberFormatPipe implements PipeTransform {\n\ttransform(value: E164Number, format: NumberFormat = 'NATIONAL'): unknown {\n\t\treturn PhoneNumberFormatter.format(value, format);\n\t}\n}\n","/**\n * Available PhoneNumberInputComponent Autocomplete values\n */\n\nexport const PHONE_NUMBER_INPUT_AUTOCOMPLETE = ['off', 'tel'] as const;\nexport type PhoneNumberInputAutocomplete = (typeof PHONE_NUMBER_INPUT_AUTOCOMPLETE)[number];\n","import { AbstractControl } from '@angular/forms';\nimport { validatePhoneNumberLength, isValidPhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport class PhoneNumberValidators {\n\tstatic validPhoneNumber(control: AbstractControl<string>, countryCode?: CountryCode) {\n\t\tif (control.value) {\n\t\t\tconst reason = validatePhoneNumberLength(control.value, countryCode);\n\t\t\tif (reason) {\n\t\t\t\treturn { validPhoneNumber: reason };\n\t\t\t}\n\t\t\tif (!isValidPhoneNumber(control.value, countryCode)) {\n\t\t\t\treturn { validPhoneNumber: 'INVALID' };\n\t\t\t}\n\t\t}\n\t\t// Else, everything is fine !\n\t\treturn null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, LOCALE_ID, output, signal, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { LuDisplayerDirective, LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective, ɵPresentationDisplayDefaultDirective } from '@lucca-front/ng/form-field';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { type CountryCallingCode, formatIncompletePhoneNumber, getCountries, getCountryCallingCode, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\nimport { PhoneNumberInputAutocomplete } from './phone-number-input.type';\nimport { CountryCode } from './types';\nimport { PhoneNumberValidators } from './validators';\n\ninterface PrefixEntry {\n\tcountry: CountryCode;\n\tprefix: CountryCallingCode;\n\tname: string;\n}\n\ntype ParsePhoneNumberResult = {\n\tnumber: string;\n\tcountry?: CountryCode;\n\tnationalNumber?: string;\n\tisValid: boolean;\n};\n\nfunction tryParsePhoneNumber(phoneNumber: string, countryCode?: CountryCode): ParsePhoneNumberResult {\n\ttry {\n\t\tconst parsedNumber = parsePhoneNumber(phoneNumber, countryCode);\n\t\treturn {\n\t\t\tcountry: parsedNumber.country,\n\t\t\tnumber: parsedNumber.number,\n\t\t\tnationalNumber: parsedNumber.formatNational(),\n\t\t\tisValid: parsedNumber.isValid(),\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tnumber: phoneNumber,\n\t\t\tnationalNumber: phoneNumber,\n\t\t\tisValid: false,\n\t\t};\n\t}\n}\n\n@Component({\n\tselector: 'lu-phone-number-input',\n\timports: [LuSimpleSelectInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, ɵPresentationDisplayDefaultDirective],\n\ttemplateUrl: './phone-number-input.component.html',\n\tstyleUrl: './phone-number-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly label = input<string>();\n\n\treadonly autocomplete = input<PhoneNumberInputAutocomplete>();\n\n\t/**\n\t * Which countries should be shown? Defaults to empty array which means all of them.\n\t *\n\t * You can use CountryCode to make sure it's properly typed on your end, string is also accepted\n\t */\n\treadonly allowedCountries = input<ReadonlyArray<CountryCode | string>>([]);\n\n\treadonly noAutoPlaceholder = input(false, { transform: luBooleanAttribute });\n\n\treadonly defaultCountryCode = input<CountryCode>(undefined, { alias: 'country' });\n\n\treadonly countryChange = output<CountryCode>();\n\n\treadonly currentValue = signal<string>('');\n\n\t#onChange?: (value: string) => void;\n\n\t#onTouched?: () => void;\n\n\tdisabled = false;\n\n\t#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });\n\n\tprefixEntries = getCountries()\n\t\t.map((country) => ({\n\t\t\tcountry,\n\t\t\tprefix: getCountryCallingCode(country),\n\t\t\tname: this.#displayNames.of(country),\n\t\t}))\n\t\t.sort((a, b) => (a.name && b.name ? a.name.localeCompare(b.name) : 0));\n\n\treadonly #prefixEntries = computed(() => {\n\t\tconst whitelist = this.allowedCountries();\n\t\tif (whitelist.length === 0) {\n\t\t\treturn this.prefixEntries;\n\t\t}\n\t\treturn this.prefixEntries.filter((e) => whitelist.includes(e.country));\n\t});\n\n\treadonly query = signal('');\n\n\tprotected readonly prefixesDisplay = computed(() => {\n\t\tconst query = this.query();\n\t\tif (query === '') {\n\t\t\treturn this.#prefixEntries();\n\t\t}\n\t\treturn this.#prefixEntries().filter((entry) => {\n\t\t\treturn entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name?.toLowerCase().includes(query.toLowerCase());\n\t\t});\n\t});\n\n\treadonly countryCodeSelected = signal<CountryCode | undefined>(undefined);\n\n\treadonly countryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());\n\n\treadonly placeholder = computed(() => {\n\t\tconst countryCode = this.countryCode();\n\t\tconst exampleNumber = this.noAutoPlaceholder() === false && countryCode ? getExampleNumber(countryCode, examples) : undefined;\n\t\treturn exampleNumber?.formatNational() ?? '';\n\t});\n\n\treadonly displayedNumber = signal<string | undefined>(undefined);\n\n\treadonly prefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));\n\n\tprotected getPrefixKey = (prefix: PrefixEntry) => prefix?.country;\n\n\tprotected prefixComparator = (a: PrefixEntry, b: PrefixEntry) => this.getPrefixKey(a) === this.getPrefixKey(b);\n\n\twriteValue(value: string): void {\n\t\ttry {\n\t\t\tif (value) {\n\t\t\t\tconst { country, number, nationalNumber } = tryParsePhoneNumber(value, this.countryCode());\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tif (value !== number) {\n\t\t\t\t\tthis.#onChange?.(number);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.displayedNumber.set(undefined);\n\t\t\t}\n\t\t} catch {\n\t\t\tthis.displayedNumber.set(value);\n\t\t}\n\t\tthis.currentValue.set(value);\n\t\tthis.formatNationalNumber();\n\t}\n\n\tregisterOnChange(fn: (value: string) => void): void {\n\t\tthis.#onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.#onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tupdatePrefix(prefixEntry: PrefixEntry) {\n\t\tthis.countryCodeSelected.set(prefixEntry.country);\n\t\tthis.countryChange.emit(prefixEntry.country);\n\t\tthis.touched();\n\t\tthis.updateModel();\n\t\tthis.formatNationalNumber();\n\t}\n\n\tupdateNumber(number: string) {\n\t\tthis.displayedNumber.set(number);\n\t\tthis.updateModel();\n\t}\n\n\tupdateModel(): void {\n\t\tconst displayedNumber = this.displayedNumber();\n\t\tconst countryCode = this.countryCode();\n\n\t\tif (!displayedNumber) {\n\t\t\t// the field has been emptied, the control has to be emptied too\n\t\t\tthis.#onChange?.('');\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (country && country !== countryCode) {\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tthis.countryChange.emit(country);\n\t\t\t}\n\t\t\tthis.#onChange?.(number);\n\t\t} catch {\n\t\t\tthis.#onChange?.(displayedNumber);\n\t\t}\n\t}\n\n\ttouched(): void {\n\t\tthis.#onTouched?.();\n\t}\n\n\tformatNationalNumber(): void {\n\t\tconst countryCode = this.countryCode();\n\t\tconst displayedNumber = this.displayedNumber();\n\n\t\tif (displayedNumber) {\n\t\t\ttry {\n\t\t\t\tconst { isValid, nationalNumber } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\t\tif (isValid) {\n\t\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\t} else if (countryCode) {\n\t\t\t\t\tthis.displayedNumber.set(formatIncompletePhoneNumber(displayedNumber, countryCode));\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl<string, string>): ValidationErrors | null {\n\t\treturn PhoneNumberValidators.validPhoneNumber(control, this.countryCode());\n\t}\n}\n","<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\tignorePresentation\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n\n<ng-container *luPresentationDisplayDefault>\n\t@if (currentValue()) {\n\t\t<a class=\"presentation-definition-link\" href=\"tel:{{ currentValue() }}\">{{ currentValue() }}</a>\n\t} @else {\n\t\t<span aria-hidden=\"true\" data-content-before=\"–\"></span>\n\t}\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵPresentationDisplayDefaultDirective"],"mappings":"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"}