@lucca-front/ng 21.0.2 → 21.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lucca-front-ng-app-layout.mjs +2 -2
- package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-button.mjs +21 -0
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +38 -12
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-chip.mjs +32 -2
- package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-clear.mjs +17 -2
- package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-comment.mjs +20 -18
- package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-container.mjs +5 -7
- package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +0 -2
- package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +2 -2
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +3 -4
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +4 -4
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +4 -4
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +2 -2
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-divider.mjs +10 -1
- package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +16 -0
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +12 -0
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +3 -3
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-footer.mjs +3 -0
- package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-header.mjs +3 -0
- package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form.mjs +2 -2
- package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +2 -3
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +14 -13
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-gauge.mjs +28 -5
- package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-grid.mjs +3 -3
- package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-highlight-data.mjs +31 -26
- package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +3 -0
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-icon.mjs +15 -0
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +12 -0
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +15 -0
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs +17 -5
- package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs +36 -7
- package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-main-layout.mjs +8 -2
- package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs +18 -10
- package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +7 -4
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-new-badge.mjs +3 -0
- package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +10 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +5 -5
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-page-header.mjs +9 -0
- package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-pagination.mjs +24 -0
- package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs +6 -0
- package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +18 -8
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-progress-bar.mjs +12 -5
- package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-read-more.mjs +16 -1
- package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-resource-card.mjs +6 -6
- package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-scroll-box.mjs +5 -2
- package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +9 -3
- package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-segmented-control.mjs +16 -1
- package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +6 -3
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +63 -12
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sortable-list.mjs +24 -0
- package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-status-badge.mjs +12 -0
- package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +6 -0
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-time.mjs +4 -4
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs +30 -0
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/cdk/_overlay.scss +5 -0
- package/src/definitions/option/_option-item.scss +1 -0
- package/types/lucca-front-ng-breadcrumbs.d.ts +1 -1
- package/types/lucca-front-ng-button.d.ts +21 -0
- package/types/lucca-front-ng-callout.d.ts +32 -2
- package/types/lucca-front-ng-chip.d.ts +32 -2
- package/types/lucca-front-ng-clear.d.ts +20 -5
- package/types/lucca-front-ng-comment.d.ts +19 -11
- package/types/lucca-front-ng-container.d.ts +4 -4
- package/types/lucca-front-ng-divider.d.ts +10 -0
- package/types/lucca-front-ng-empty-state.d.ts +16 -0
- package/types/lucca-front-ng-fancy-box.d.ts +12 -0
- package/types/lucca-front-ng-footer.d.ts +3 -0
- package/types/lucca-front-ng-form-header.d.ts +3 -0
- package/types/lucca-front-ng-forms.d.ts +3 -2
- package/types/lucca-front-ng-gauge.d.ts +25 -0
- package/types/lucca-front-ng-grid.d.ts +1 -1
- package/types/lucca-front-ng-highlight-data.d.ts +36 -15
- package/types/lucca-front-ng-horizontal-navigation.d.ts +3 -0
- package/types/lucca-front-ng-icon.d.ts +15 -0
- package/types/lucca-front-ng-inline-message.d.ts +12 -0
- package/types/lucca-front-ng-link.d.ts +15 -0
- package/types/lucca-front-ng-listbox.d.ts +16 -4
- package/types/lucca-front-ng-listing.d.ts +33 -2
- package/types/lucca-front-ng-main-layout.d.ts +6 -0
- package/types/lucca-front-ng-mobile-push.d.ts +7 -0
- package/types/lucca-front-ng-new-badge.d.ts +3 -0
- package/types/lucca-front-ng-numeric-badge.d.ts +9 -0
- package/types/lucca-front-ng-page-header.d.ts +9 -0
- package/types/lucca-front-ng-pagination.d.ts +24 -0
- package/types/lucca-front-ng-plg-push.d.ts +6 -0
- package/types/lucca-front-ng-popover2.d.ts +5 -3
- package/types/lucca-front-ng-progress-bar.d.ts +9 -0
- package/types/lucca-front-ng-read-more.d.ts +16 -1
- package/types/lucca-front-ng-resource-card.d.ts +6 -0
- package/types/lucca-front-ng-scroll-box.d.ts +4 -1
- package/types/lucca-front-ng-segmented-control-tabs.d.ts +7 -1
- package/types/lucca-front-ng-segmented-control.d.ts +16 -1
- package/types/lucca-front-ng-skeleton.d.ts +61 -6
- package/types/lucca-front-ng-sortable-list.d.ts +24 -0
- package/types/lucca-front-ng-status-badge.d.ts +12 -0
- package/types/lucca-front-ng-tag.d.ts +6 -0
- package/types/lucca-front-ng-vertical-navigation.d.ts +30 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-time.mjs","sources":["../../../packages/ng/time/core/base-picker.component.ts","../../../packages/ng/time/core/duration.utils.ts","../../../packages/ng/time/core/math.utils.ts","../../../packages/ng/time/core/repeat-on-hold.directive.ts","../../../packages/ng/time/core/time-picker-part.component.ts","../../../packages/ng/time/core/time-picker-part.component.html","../../../packages/ng/time/duration-picker/duration-picker.model.ts","../../../packages/ng/time/duration-picker/translations.ts","../../../packages/ng/time/duration-picker/duration-picker.translate.ts","../../../packages/ng/time/duration-picker/duration-picker.component.ts","../../../packages/ng/time/duration-picker/duration-picker.component.html","../../../packages/ng/time/core/date.utils.ts","../../../packages/ng/time/time-picker/time-picker.model.ts","../../../packages/ng/time/time-picker/translations.ts","../../../packages/ng/time/time-picker/time-picker.translate.ts","../../../packages/ng/time/time-picker/time-picker.component.ts","../../../packages/ng/time/time-picker/time-picker.component.html","../../../packages/ng/time/lucca-front-ng-time.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model, viewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ISO8601Duration, ISO8601Time } from './date-primitives';\nimport { TimePickerPartComponent } from './time-picker-part.component';\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: '',\n})\nexport abstract class BasePickerComponent implements ControlValueAccessor {\n\tonChange: (value: ISO8601Time | ISO8601Duration) => void;\n\tonTouched: () => void;\n\n\tstep = input<ISO8601Duration>(null);\n\n\tdisabled = model(false);\n\n\tsize = input<'S' | 'M'>();\n\n\thoursPart = viewChild<TimePickerPartComponent>('hoursPart');\n\n\tminutesPart = viewChild<TimePickerPartComponent>('minutesPart');\n\n\tprotected hoursIncrement = computed(() => this.getHoursIncrement());\n\tprotected minutesIncrement = computed(() => this.getMinutesIncrement());\n\n\tregisterOnChange(fn: () => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tabstract writeValue(value: ISO8601Time | ISO8601Duration): void;\n\n\tabstract getHoursIncrement(): number;\n\n\tabstract getMinutesIncrement(): number;\n\n\tprotected focusPart(type: 'hours' | 'minutes') {\n\t\tthis.onTouched?.();\n\t\tif (type === 'hours') {\n\t\t\tif (this.hoursIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.hoursPart()?.focus();\n\t\t}\n\t\tif (type === 'minutes') {\n\t\t\tif (this.minutesIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.minutesPart()?.focus();\n\t\t}\n\t}\n}\n","import { isNotNil } from '@lucca-front/ng/core';\nimport { Duration } from 'date-fns';\nimport { ISO8601Duration } from './date-primitives';\n\nexport type NonNullableDateFnsDuration = {\n\tyears: number;\n\tmonths: number;\n\tdays: number;\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n};\n\ntype DateFnsDuration = Duration;\n\nconst ISO8601DurationRegExp =\n\t/^(?<sign>-)?P(?:(?<years>-?\\d+)Y)?(?:(?<months>-?\\d+)M)?(?:(?<weeks>-?\\d+)W)?(?:(?<days>-?\\d+)D)?(?:T(?:(?<hours>-?\\d+)H)?(?:(?<minutes>-?\\d+)M)?(?:(?<seconds>-?\\d+(?:\\.\\d+)?)S)?)?$/;\n\n// TODO memoize\nexport const isoDurationToDateFnsDuration = (isoDuration: ISO8601Duration): NonNullableDateFnsDuration => {\n\tconst matches = ISO8601DurationRegExp.exec(isoDuration);\n\n\tconst groups = matches?.groups;\n\n\tif (!groups) {\n\t\tthrow new Error(`Invalid ISO 8601 duration: ${isoDuration}`);\n\t}\n\n\tconst withSign = groups['sign'] === '-' ? -1 : 1;\n\n\tconst result: NonNullableDateFnsDuration = {\n\t\tyears: groups['years'] ? Number(groups['years']) : 0,\n\t\tmonths: groups['months'] ? Number(groups['months']) : 0,\n\t\tdays: groups['days'] ? Number(groups['days']) : 0,\n\t\thours: groups['hours'] ? Number(groups['hours']) : 0,\n\t\tminutes: groups['minutes'] ? Number(groups['minutes']) : 0,\n\t\tseconds: groups['seconds'] ? Number(groups['seconds']) : 0,\n\t};\n\n\tresult.years *= withSign;\n\tresult.months *= withSign;\n\tresult.days *= withSign;\n\tresult.hours *= withSign;\n\tresult.minutes *= withSign;\n\tresult.seconds *= withSign;\n\n\treturn result;\n};\n\nexport function isISO8601Duration(value: string): value is ISO8601Duration {\n\treturn ISO8601DurationRegExp.test(value);\n}\n\nexport const dateFnsDurationToSeconds = (durationFns: DateFnsDuration): number => {\n\tconst { years, months } = durationFns;\n\tlet { days, hours, minutes, seconds } = durationFns;\n\n\tif ((isNotNil(years) && years !== 0) || (isNotNil(months) && months !== 0)) {\n\t\tthrow new Error('years and months are not supported');\n\t}\n\n\tdays = days || 0;\n\thours = hours || 0;\n\tminutes = minutes || 0;\n\tseconds = seconds || 0;\n\n\treturn days * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nexport const isoDurationToSeconds = (duration: ISO8601Duration): number => {\n\tconst durationFns = isoDurationToDateFnsDuration(duration);\n\n\treturn dateFnsDurationToSeconds(durationFns);\n};\n\nexport const getHoursPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor(isoDurationToSeconds(duration) / 3600);\n};\n\nexport const getMinutesPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor((isoDurationToSeconds(duration) % 3600) / 60);\n};\n\nexport const createDurationFromHoursAndMinutes = (hours: number, minutes: number): ISO8601Duration => {\n\treturn `PT${hours}H${minutes}M`;\n};\n","export const roundToNearest = (value: number, step: number) => Math.round(value / step) * step;\n\nexport const floorToNearest = (value: number, step: number) => Math.floor(value / step) * step;\n\nexport const ceilToNearest = (value: number, step: number) => Math.ceil(value / step) * step;\n\n/**\n * Returns the value of n circularized between 0 and max.\n * Given n = 0 and max = 10, returns 0.\n * Given n = 10 and max = 10, returns 10.\n * Given n = 11 and max = 10, returns 1.\n * Given n = -1 and max = 10, returns 9.\n */\nexport const circularize = (n: number, max: number) => {\n\tif (n % max === 0) {\n\t\treturn n === 0 ? 0 : max;\n\t}\n\treturn ((n % max) + max) % max;\n};\n","import { Directive, ElementRef, OnDestroy, OnInit, output } from '@angular/core';\n\nconst INITIAL_INTERVAL = 500;\n\n@Directive({\n\tselector: '[luRepeatOnHold]',\n})\nexport class RepeatOnHoldDirective implements OnDestroy, OnInit {\n\thold = output<void>();\n\n\tonMouseDown = () => {\n\t\tif (this.startTime !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hold.emit();\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\twindow.addEventListener('mouseup', this.onWindowMouseUp);\n\t};\n\n\tonWindowMouseUp = () => {\n\t\tthis.cancelAnimationFrame();\n\t};\n\n\tconstructor(private elementRef: ElementRef<HTMLElement>) {}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.addEventListener('mousedown', this.onMouseDown);\n\t}\n\n\tinterval = INITIAL_INTERVAL;\n\tstartTime: number | undefined = undefined;\n\tpreviousTime: number | undefined = undefined;\n\tanimationFrameId: number | undefined = undefined;\n\n\tprivate cancelAnimationFrame(): void {\n\t\tif (this.animationFrameId) {\n\t\t\tthis.previousTime = undefined;\n\t\t\tthis.interval = INITIAL_INTERVAL;\n\t\t\tthis.startTime = undefined;\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\n\t\t\tthis.animationFrameId = undefined;\n\t\t}\n\t}\n\n\tprivate animationFrameHandler = (time: number): void => {\n\t\tif (this.startTime === undefined) {\n\t\t\tthis.startTime = time;\n\t\t}\n\n\t\tif (this.previousTime === undefined) {\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.previousTime > this.interval) {\n\t\t\tthis.hold.emit();\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.startTime > 1000) {\n\t\t\tthis.interval = 200;\n\t\t}\n\n\t\tif (time - this.startTime > 2000) {\n\t\t\tthis.interval = 50;\n\t\t}\n\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\t};\n\n\tngOnDestroy(): void {\n\t\tthis.elementRef.nativeElement.removeEventListener('mousedown', this.onMouseDown);\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\tthis.cancelAnimationFrame();\n\t}\n}\n","import { DecimalPipe, formatNumber } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Inject, LOCALE_ID, ModelSignal, ViewChild, booleanAttribute, computed, input, model, numberAttribute, output } from '@angular/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { PickerControlDirection } from './misc.utils';\nimport { RepeatOnHoldDirective } from './repeat-on-hold.directive';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-time-picker-part',\n\timports: [RepeatOnHoldDirective, DecimalPipe, InputDirective],\n\ttemplateUrl: './time-picker-part.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimePickerPartComponent {\n\tlabel = input('');\n\n\tdecimalConf = input('2.0-0');\n\n\tvalue: ModelSignal<number | '––'> = model('––');\n\n\tdisplay = input<number | '––'>();\n\n\tmax = input(0, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tdisplayArrows = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tisReadonly = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\thideValue = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tdisabled = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tfocused = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprevRequest = output<void>();\n\tnextRequest = output<void>();\n\tinputControlClick = output<PickerControlDirection>();\n\ttouched = output<void>();\n\n\t@ViewChild('timePickerInput') timePickerInput?: ElementRef<HTMLInputElement>;\n\n\tvalueLabel = computed(() => {\n\t\tif (this.hideValue()) {\n\t\t\treturn ' ';\n\t\t}\n\t\tif (this.display() !== undefined) {\n\t\t\treturn this.display();\n\t\t}\n\t\tconst value = this.value();\n\t\tif (value === '––') {\n\t\t\treturn value;\n\t\t}\n\t\treturn formatNumber(value, this.locale, this.decimalConf());\n\t});\n\n\tprotected inputId = `time-picker-part-${nextId++}`;\n\n\tconstructor(@Inject(LOCALE_ID) private locale: string) {}\n\n\tarrowKeyPressed(event: KeyboardEvent, isUpArrow: boolean): void {\n\t\tevent.preventDefault();\n\t\tthis.inputControlClick.emit(isUpArrow ? 'up' : 'down');\n\t}\n\n\tkeysInputHandler(event: Event): void {\n\t\tevent.preventDefault();\n\n\t\tif (!(event.target instanceof HTMLInputElement) || !(event instanceof InputEvent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.data && /\\D+/.test(event.data)) {\n\t\t\tevent.target.value = String(this.value());\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = event.target.value;\n\n\t\tlet val = value.slice(-2) || '00';\n\n\t\tif (this.max() && Number(val) * 10 > this.max()) {\n\t\t\tthis.moveRequest(event, 'next');\n\t\t}\n\n\t\tif (this.max() && Number(val) > this.max()) {\n\t\t\tval = value.slice(-1);\n\t\t}\n\n\t\tevent.target.value = val;\n\t\tthis.value.set(Number(val));\n\t}\n\n\tclearField(event: Event): void {\n\t\tif (event instanceof KeyboardEvent) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tthis.value.set(0);\n\t}\n\n\tclickHandler(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t}\n\n\tup(): void {\n\t\tthis.inputControlClick.emit('up');\n\t}\n\n\tdown(): void {\n\t\tthis.inputControlClick.emit('down');\n\t}\n\n\tkeydownHandler(event: KeyboardEvent): void {\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tthis.moveRequest(event, 'prev');\n\t\t\t\tbreak;\n\t\t\tcase 'H':\n\t\t\tcase 'h':\n\t\t\tcase ':':\n\t\t\tcase 'ArrowRight':\n\t\t\t\tthis.moveRequest(event, 'next');\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\tcase 'Backspace':\n\t\t\t\tthis.clearField(event);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tthis.arrowKeyPressed(event, true);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.arrowKeyPressed(event, false);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tmoveRequest(event: Event, direction: 'prev' | 'next'): void {\n\t\tevent.preventDefault();\n\n\t\tif (direction === 'prev') {\n\t\t\tthis.prevRequest.emit();\n\t\t} else {\n\t\t\tthis.nextRequest.emit();\n\t\t}\n\t}\n\n\tfocus(): void {\n\t\tif (this.timePickerInput) {\n\t\t\tthis.timePickerInput.nativeElement.focus();\n\t\t}\n\t}\n}\n","<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel pr-u-mask\" [attr.id]=\"inputId + '-label'\" [attr.for]=\"inputId + '-input'\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\t[attr.id]=\"inputId + '-input'\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\t[attr.aria-labelledby]=\"inputId + '-label'\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t</button>\n\t\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t</button>\n\t}\n</div>\n","import { ISO8601Duration } from '../core/date-primitives';\n\nexport type DurationChangeEvent = {\n\tpreviousValue: ISO8601Duration | null;\n\tvalue: ISO8601Duration;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: 'Std.',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DURATION_PICKER_TRANSLATIONS = new InjectionToken('LuDurationPickerTranslations', {\n\tfactory: () => luDurationPickerTranslations,\n});\n\nexport type DurationPickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luDurationPickerTranslations: LuTranslation<DurationPickerTranslations> = Translations;\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model, output, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl, isNil, isNotNil } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Duration } from '../core/date-primitives';\nimport { createDurationFromHoursAndMinutes, getHoursPartFromDuration, getMinutesPartFromDuration, isISO8601Duration, isoDurationToDateFnsDuration, isoDurationToSeconds } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\n\nimport { PickerControlDirection } from '../core/misc.utils';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_TIME_DECIMAL_PIPE_FORMAT, DurationChangeEvent } from './duration-picker.model';\nimport { LU_DURATION_PICKER_TRANSLATIONS } from './duration-picker.translate';\n\n@Component({\n\tselector: 'lu-duration-picker',\n\timports: [TimePickerPartComponent, NgClass],\n\ttemplateUrl: './duration-picker.component.html',\n\tstyleUrl: './duration-picker.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => DurationPickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class DurationPickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_DURATION_PICKER_TRANSLATIONS);\n\n\tvalue = model<ISO8601Duration>('PT0S');\n\treadonly max = input<ISO8601Duration>('PT99H');\n\n\treadonly displayArrows = input(false, { transform: booleanAttribute });\n\n\treadonly label = input<string>();\n\n\treadonly hideZeroValue = input(false, { transform: booleanAttribute });\n\n\treadonly durationChange = output<DurationChangeEvent>();\n\n\tprotected readonly hours = computed(() => getHoursPartFromDuration(this.value()));\n\tprotected readonly minutes = computed(() => getMinutesPartFromDuration(this.value()));\n\tprotected readonly shouldHideValue = computed(() => this.hideZeroValue() && this.hours() === 0 && this.minutes() === 0);\n\n\tprotected readonly pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected readonly fieldsetSuffixClasses = computed(() => {\n\t\treturn {\n\t\t\t'timePicker-fieldset-groupSeparator': true,\n\t\t\t'pr-u-visibilityHidden': this.shouldHideValue(),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\twriteValue(value: ISO8601Duration): void {\n\t\tthis.value.set(value || 'PT0S');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\tlet value: ISO8601Duration;\n\t\t\t// If it's an iso duration, handle as-is\n\t\t\tif (isISO8601Duration(pastedValue)) {\n\t\t\t\tvalue = pastedValue;\n\t\t\t}\n\t\t\tif (/\\d?\\dh\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split('h');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (/\\d?\\d:\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split(':');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tthis.durationChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: DurationChangeEvent): void {\n\t\tlet hoursPart = getHoursPartFromDuration(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromDuration(protoEvent.value);\n\n\t\tif (hoursPart < 0) {\n\t\t\thoursPart = getHoursPartFromDuration(this.max());\n\t\t\tif (isoDurationToSeconds(createDurationFromHoursAndMinutes(hoursPart, minutesPart)) > isoDurationToSeconds(this.max())) {\n\t\t\t\t// If current value with minutes is > max, decrement hours again\n\t\t\t\thoursPart--;\n\t\t\t}\n\t\t} else if (hoursPart > getHoursPartFromDuration(this.max())) {\n\t\t\thoursPart = 0;\n\t\t}\n\n\t\tconst max = isoDurationToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createDurationFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.durationChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? 'PT0S';\n\t\tconst hoursPart = getHoursPartFromDuration(val);\n\t\tconst minutesPart = getMinutesPartFromDuration(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createDurationFromHoursAndMinutes(modifiedVal, minutesPart) : createDurationFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n}\n","<div [class]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend>\n\t\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t\t</legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" [class]=\"fieldsetSuffixClasses()\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutes()\"\n\t\t\t[max]=\"59\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t</fieldset>\n</div>\n","import { ISO8601Time } from './date-primitives';\n\nexport const castToIsoTime = (str: string) => str as ISO8601Time;\n\nexport const convertStringToIsoTime = (time: string): ISO8601Time => {\n\tif (/^\\d{1,2}:\\d{2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(time);\n\t}\n\n\tif (/^\\d{1,2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(`${time}:00`);\n\t}\n\n\tif (/^\\d{1,2}h\\d{2}$/.test(time)) {\n\t\treturn convertStringToIsoTime(time.replace('h', ':'));\n\t}\n\n\tthrow new Error(`Invalid time format: ${time}`);\n};\n\nexport const createIsoTimeFromHoursAndMinutes = (hours: number, minutes: number, seconds: number = 0): ISO8601Time => {\n\tconst hoursStr = hours.toString().padStart(2, '0');\n\tconst minutesStr = minutes.toString().padStart(2, '0');\n\tconst secondsStr = seconds.toString().padStart(2, '0');\n\n\treturn `${hoursStr}:${minutesStr}:${secondsStr}`;\n};\n\nexport const isoTimeToSeconds = (time: ISO8601Time): number => {\n\treturn getHoursPartFromIsoTime(time) * 3600 + getMinutesPartFromIsoTime(time) * 60 + getSecondsPartFromIsoTime(time);\n};\n\nexport const getHoursPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[0]) || 0;\n\nexport const getMinutesPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[1]) || 0;\nexport const getSecondsPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[2]) || 0;\n\nexport const getHoursDisplayPartFromIsoTime = (time: ISO8601Time, ampm = false): number | '––' => {\n\tconst hours = time.split(':')[0];\n\tif (hours === '––') {\n\t\treturn hours;\n\t}\n\tif (ampm) {\n\t\t// Most consistent impl is to create a date and ask date-fns\n\t\treturn formatAMPM(Number(hours)).hours;\n\t}\n\treturn Number(hours);\n};\n\nexport const formatAMPM = (inputHours: number): { hours: number; suffix: 'AM' | 'PM' } => {\n\tlet hours = inputHours;\n\tconst suffix = hours >= 12 ? 'PM' : 'AM';\n\thours = hours % 12;\n\thours = hours ? hours : 12; // 0 should be 12\n\treturn {\n\t\thours,\n\t\tsuffix,\n\t};\n};\n\nexport const getMinutesDisplayPartFromIsoTime = (time: ISO8601Time): number | '––' => {\n\tconst minutes = time.split(':')[1];\n\tif (minutes === '––') {\n\t\treturn minutes;\n\t}\n\treturn Number(minutes);\n};\n","import { ISO8601Time } from '../core/date-primitives';\n\nexport type TimeChangeEvent = {\n\tpreviousValue: ISO8601Time | null;\n\tvalue: ISO8601Time;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\nexport const DEFAULT_MIN_TIME: ISO8601Time = '--:--:--';\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TIME_PICKER_TRANSLATIONS = new InjectionToken('LuTimePickerTranslations', {\n\tfactory: () => luTimePickerTranslations,\n});\n\nexport type TimePickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luTimePickerTranslations: LuTranslation<TimePickerTranslations> = Translations;\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, inject, input, LOCALE_ID, model, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl, isNil, isNotNil } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Time } from '../core/date-primitives';\nimport {\n\tconvertStringToIsoTime,\n\tcreateIsoTimeFromHoursAndMinutes,\n\tformatAMPM,\n\tgetHoursDisplayPartFromIsoTime,\n\tgetHoursPartFromIsoTime,\n\tgetMinutesDisplayPartFromIsoTime,\n\tgetMinutesPartFromIsoTime,\n\tisoTimeToSeconds,\n} from '../core/date.utils';\nimport { isoDurationToDateFnsDuration } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\nimport { PickerControlDirection } from '../core/misc.utils';\nimport { RepeatOnHoldDirective } from '../core/repeat-on-hold.directive';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_MIN_TIME, DEFAULT_TIME_DECIMAL_PIPE_FORMAT, TimeChangeEvent } from './time-picker.model';\nimport { LU_TIME_PICKER_TRANSLATIONS } from './time-picker.translate';\n\nconst MAX_TIME = '23:59:59';\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-time-picker',\n\timports: [TimePickerPartComponent, NgClass, FormsModule, RepeatOnHoldDirective],\n\ttemplateUrl: './time-picker.component.html',\n\tstyleUrl: './time-picker.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => TimePickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class TimePickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_TIME_PICKER_TRANSLATIONS);\n\tprotected localeId = inject(LOCALE_ID);\n\n\treadonly idSuffix = nextId++;\n\n\treadonly anteMeridiemRef = viewChild<ElementRef<HTMLInputElement>>('anteMeridiemRef');\n\n\treadonly postMeridiemRef = viewChild<ElementRef<HTMLInputElement>>('postMeridiemRef');\n\n\tvalue = model<ISO8601Time>('--:--:--');\n\treadonly max = input<ISO8601Time>(MAX_TIME);\n\n\treadonly displayArrows = input(false, { transform: booleanAttribute });\n\n\treadonly forceMeridiemDisplay = input<boolean | null>(null);\n\n\treadonly enableMeridiemDisplay = computed(() => {\n\t\tif (this.forceMeridiemDisplay() !== null) {\n\t\t\treturn this.forceMeridiemDisplay();\n\t\t}\n\t\t// We can't ask the API if time should include meridiem so the easiest was to just make it format a static date.\n\t\treturn Intl.DateTimeFormat(this.localeId, {\n\t\t\ttimeStyle: 'short',\n\t\t\tdateStyle: 'short',\n\t\t})\n\t\t\t.format(new Date('1/1/1 17:00:00'))\n\t\t\t.includes('PM');\n\t});\n\n\treadonly label = input<string>();\n\n\treadonly timeChange = output<TimeChangeEvent>();\n\n\tprotected readonly hoursDisplay = computed(() => getHoursDisplayPartFromIsoTime(this.value(), this.enableMeridiemDisplay()));\n\tprotected readonly minutesDisplay = computed(() => getMinutesDisplayPartFromIsoTime(this.value()));\n\n\tprotected readonly hours = computed(() => getHoursPartFromIsoTime(this.value()));\n\tprotected readonly minutes = computed(() => getMinutesPartFromIsoTime(this.value()));\n\tprotected readonly pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\tprotected readonly maxHours = computed(() => {\n\t\tif (this.enableMeridiemDisplay()) {\n\t\t\treturn 12;\n\t\t}\n\t\treturn getHoursPartFromIsoTime(this.max() ?? '23:59:59');\n\t});\n\n\tprotected readonly ampmDisplay = computed(() => {\n\t\treturn formatAMPM(this.hours()).suffix;\n\t});\n\n\tprotected override focusPart(type: 'hours' | 'minutes' | 'meridiem') {\n\t\tif (type === 'meridiem') {\n\t\t\tconst elementToFocus = this.ampmDisplay() === 'AM' ? this.anteMeridiemRef()?.nativeElement : this.postMeridiemRef()?.nativeElement;\n\t\t\telementToFocus?.focus();\n\t\t} else {\n\t\t\tsuper.focusPart(type);\n\t\t}\n\t}\n\n\twriteValue(value: ISO8601Time): void {\n\t\tthis.value.set(value || '––:––:––');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\ttry {\n\t\t\t\tconst value = convertStringToIsoTime(pastedValue);\n\t\t\t\tthis.timeChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: TimeChangeEvent): void {\n\t\tconst hoursPart = getHoursPartFromIsoTime(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(protoEvent.value);\n\n\t\tconst max = isoTimeToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createIsoTimeFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.timeChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? DEFAULT_MIN_TIME;\n\t\tconst hoursPart = getHoursPartFromIsoTime(val);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createIsoTimeFromHoursAndMinutes(modifiedVal, minutesPart) : createIsoTimeFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n\n\tswitchMeridiem(newValue: 'AM' | 'PM') {\n\t\tlet hours = getHoursPartFromIsoTime(this.value());\n\t\tconst minutes = getMinutesPartFromIsoTime(this.value());\n\t\tif (newValue === 'PM') {\n\t\t\thours = circularize(hours + 12, 23);\n\t\t} else {\n\t\t\thours = circularize(hours - 12, 23);\n\t\t}\n\t\tthis.setTime({\n\t\t\tsource: 'input',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(hours, minutes),\n\t\t});\n\t}\n}\n","<div [class]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend>\n\t\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t\t</legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[display]=\"hoursDisplay()\"\n\t\t\t[max]=\"maxHours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" class=\"timePicker-fieldset-groupSeparator\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutesDisplay()\"\n\t\t\t[max]=\"59\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(nextRequest)=\"focusPart('meridiem')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t\t@if (enableMeridiemDisplay()) {\n\t\t\t<div\n\t\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t\t>\n\t\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); focusPart('minutes')\"\n\t\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); focusPart('minutes')\"\n\t\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t@if (displayArrows()) {\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","DEFAULT_TIME_DECIMAL_PIPE_FORMAT","Translations"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-time.mjs","sources":["../../../packages/ng/time/core/base-picker.component.ts","../../../packages/ng/time/core/duration.utils.ts","../../../packages/ng/time/core/math.utils.ts","../../../packages/ng/time/core/repeat-on-hold.directive.ts","../../../packages/ng/time/core/time-picker-part.component.ts","../../../packages/ng/time/core/time-picker-part.component.html","../../../packages/ng/time/duration-picker/duration-picker.model.ts","../../../packages/ng/time/duration-picker/translations.ts","../../../packages/ng/time/duration-picker/duration-picker.translate.ts","../../../packages/ng/time/duration-picker/duration-picker.component.ts","../../../packages/ng/time/duration-picker/duration-picker.component.html","../../../packages/ng/time/core/date.utils.ts","../../../packages/ng/time/time-picker/time-picker.model.ts","../../../packages/ng/time/time-picker/translations.ts","../../../packages/ng/time/time-picker/time-picker.translate.ts","../../../packages/ng/time/time-picker/time-picker.component.ts","../../../packages/ng/time/time-picker/time-picker.component.html","../../../packages/ng/time/lucca-front-ng-time.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model, viewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ISO8601Duration, ISO8601Time } from './date-primitives';\nimport { TimePickerPartComponent } from './time-picker-part.component';\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: '',\n})\nexport abstract class BasePickerComponent implements ControlValueAccessor {\n\tonChange: (value: ISO8601Time | ISO8601Duration) => void;\n\tonTouched: () => void;\n\n\tstep = input<ISO8601Duration>(null);\n\n\tdisabled = model(false);\n\n\tsize = input<'S' | 'M'>();\n\n\thoursPart = viewChild<TimePickerPartComponent>('hoursPart');\n\n\tminutesPart = viewChild<TimePickerPartComponent>('minutesPart');\n\n\tprotected hoursIncrement = computed(() => this.getHoursIncrement());\n\tprotected minutesIncrement = computed(() => this.getMinutesIncrement());\n\n\tregisterOnChange(fn: () => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tabstract writeValue(value: ISO8601Time | ISO8601Duration): void;\n\n\tabstract getHoursIncrement(): number;\n\n\tabstract getMinutesIncrement(): number;\n\n\tprotected focusPart(type: 'hours' | 'minutes') {\n\t\tthis.onTouched?.();\n\t\tif (type === 'hours') {\n\t\t\tif (this.hoursIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.hoursPart()?.focus();\n\t\t}\n\t\tif (type === 'minutes') {\n\t\t\tif (this.minutesIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.minutesPart()?.focus();\n\t\t}\n\t}\n}\n","import { isNotNil } from '@lucca-front/ng/core';\nimport { Duration } from 'date-fns';\nimport { ISO8601Duration } from './date-primitives';\n\nexport type NonNullableDateFnsDuration = {\n\tyears: number;\n\tmonths: number;\n\tdays: number;\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n};\n\ntype DateFnsDuration = Duration;\n\nconst ISO8601DurationRegExp =\n\t/^(?<sign>-)?P(?:(?<years>-?\\d+)Y)?(?:(?<months>-?\\d+)M)?(?:(?<weeks>-?\\d+)W)?(?:(?<days>-?\\d+)D)?(?:T(?:(?<hours>-?\\d+)H)?(?:(?<minutes>-?\\d+)M)?(?:(?<seconds>-?\\d+(?:\\.\\d+)?)S)?)?$/;\n\n// TODO memoize\nexport const isoDurationToDateFnsDuration = (isoDuration: ISO8601Duration): NonNullableDateFnsDuration => {\n\tconst matches = ISO8601DurationRegExp.exec(isoDuration);\n\n\tconst groups = matches?.groups;\n\n\tif (!groups) {\n\t\tthrow new Error(`Invalid ISO 8601 duration: ${isoDuration}`);\n\t}\n\n\tconst withSign = groups['sign'] === '-' ? -1 : 1;\n\n\tconst result: NonNullableDateFnsDuration = {\n\t\tyears: groups['years'] ? Number(groups['years']) : 0,\n\t\tmonths: groups['months'] ? Number(groups['months']) : 0,\n\t\tdays: groups['days'] ? Number(groups['days']) : 0,\n\t\thours: groups['hours'] ? Number(groups['hours']) : 0,\n\t\tminutes: groups['minutes'] ? Number(groups['minutes']) : 0,\n\t\tseconds: groups['seconds'] ? Number(groups['seconds']) : 0,\n\t};\n\n\tresult.years *= withSign;\n\tresult.months *= withSign;\n\tresult.days *= withSign;\n\tresult.hours *= withSign;\n\tresult.minutes *= withSign;\n\tresult.seconds *= withSign;\n\n\treturn result;\n};\n\nexport function isISO8601Duration(value: string): value is ISO8601Duration {\n\treturn ISO8601DurationRegExp.test(value);\n}\n\nexport const dateFnsDurationToSeconds = (durationFns: DateFnsDuration): number => {\n\tconst { years, months } = durationFns;\n\tlet { days, hours, minutes, seconds } = durationFns;\n\n\tif ((isNotNil(years) && years !== 0) || (isNotNil(months) && months !== 0)) {\n\t\tthrow new Error('years and months are not supported');\n\t}\n\n\tdays = days || 0;\n\thours = hours || 0;\n\tminutes = minutes || 0;\n\tseconds = seconds || 0;\n\n\treturn days * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nexport const isoDurationToSeconds = (duration: ISO8601Duration): number => {\n\tconst durationFns = isoDurationToDateFnsDuration(duration);\n\n\treturn dateFnsDurationToSeconds(durationFns);\n};\n\nexport const getHoursPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor(isoDurationToSeconds(duration) / 3600);\n};\n\nexport const getMinutesPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor((isoDurationToSeconds(duration) % 3600) / 60);\n};\n\nexport const createDurationFromHoursAndMinutes = (hours: number, minutes: number): ISO8601Duration => {\n\treturn `PT${hours}H${minutes}M`;\n};\n","export const roundToNearest = (value: number, step: number) => Math.round(value / step) * step;\n\nexport const floorToNearest = (value: number, step: number) => Math.floor(value / step) * step;\n\nexport const ceilToNearest = (value: number, step: number) => Math.ceil(value / step) * step;\n\n/**\n * Returns the value of n circularized between 0 and max.\n * Given n = 0 and max = 10, returns 0.\n * Given n = 10 and max = 10, returns 10.\n * Given n = 11 and max = 10, returns 1.\n * Given n = -1 and max = 10, returns 9.\n */\nexport const circularize = (n: number, max: number) => {\n\tif (n % max === 0) {\n\t\treturn n === 0 ? 0 : max;\n\t}\n\treturn ((n % max) + max) % max;\n};\n","import { Directive, ElementRef, OnDestroy, OnInit, output } from '@angular/core';\n\nconst INITIAL_INTERVAL = 500;\n\n@Directive({\n\tselector: '[luRepeatOnHold]',\n})\nexport class RepeatOnHoldDirective implements OnDestroy, OnInit {\n\thold = output<void>();\n\n\tonMouseDown = () => {\n\t\tif (this.startTime !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hold.emit();\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\twindow.addEventListener('mouseup', this.onWindowMouseUp);\n\t};\n\n\tonWindowMouseUp = () => {\n\t\tthis.cancelAnimationFrame();\n\t};\n\n\tconstructor(private elementRef: ElementRef<HTMLElement>) {}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.addEventListener('mousedown', this.onMouseDown);\n\t}\n\n\tinterval = INITIAL_INTERVAL;\n\tstartTime: number | undefined = undefined;\n\tpreviousTime: number | undefined = undefined;\n\tanimationFrameId: number | undefined = undefined;\n\n\tprivate cancelAnimationFrame(): void {\n\t\tif (this.animationFrameId) {\n\t\t\tthis.previousTime = undefined;\n\t\t\tthis.interval = INITIAL_INTERVAL;\n\t\t\tthis.startTime = undefined;\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\n\t\t\tthis.animationFrameId = undefined;\n\t\t}\n\t}\n\n\tprivate animationFrameHandler = (time: number): void => {\n\t\tif (this.startTime === undefined) {\n\t\t\tthis.startTime = time;\n\t\t}\n\n\t\tif (this.previousTime === undefined) {\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.previousTime > this.interval) {\n\t\t\tthis.hold.emit();\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.startTime > 1000) {\n\t\t\tthis.interval = 200;\n\t\t}\n\n\t\tif (time - this.startTime > 2000) {\n\t\t\tthis.interval = 50;\n\t\t}\n\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\t};\n\n\tngOnDestroy(): void {\n\t\tthis.elementRef.nativeElement.removeEventListener('mousedown', this.onMouseDown);\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\tthis.cancelAnimationFrame();\n\t}\n}\n","import { formatNumber } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Inject, LOCALE_ID, ModelSignal, ViewChild, booleanAttribute, computed, input, model, numberAttribute, output } from '@angular/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { PickerControlDirection } from './misc.utils';\nimport { RepeatOnHoldDirective } from './repeat-on-hold.directive';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-time-picker-part',\n\timports: [RepeatOnHoldDirective, InputDirective],\n\ttemplateUrl: './time-picker-part.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimePickerPartComponent {\n\tlabel = input('');\n\n\tdecimalConf = input('2.0-0');\n\n\tvalue: ModelSignal<number | '––'> = model('––');\n\n\tdisplay = input<number | '––'>();\n\n\tmax = input(0, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tdisplayArrows = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tisReadonly = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\thideValue = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tdisabled = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tfocused = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tprevRequest = output<void>();\n\tnextRequest = output<void>();\n\tinputControlClick = output<PickerControlDirection>();\n\ttouched = output<void>();\n\n\t@ViewChild('timePickerInput') timePickerInput?: ElementRef<HTMLInputElement>;\n\n\tvalueLabel = computed(() => {\n\t\tif (this.hideValue()) {\n\t\t\treturn ' ';\n\t\t}\n\t\tif (this.display() !== undefined) {\n\t\t\treturn this.display();\n\t\t}\n\t\tconst value = this.value();\n\t\tif (value === '––') {\n\t\t\treturn value;\n\t\t}\n\t\treturn formatNumber(value, this.locale, this.decimalConf());\n\t});\n\n\tprotected inputId = `time-picker-part-${nextId++}`;\n\n\tconstructor(@Inject(LOCALE_ID) private locale: string) {}\n\n\tarrowKeyPressed(event: KeyboardEvent, isUpArrow: boolean): void {\n\t\tevent.preventDefault();\n\t\tthis.inputControlClick.emit(isUpArrow ? 'up' : 'down');\n\t}\n\n\tkeysInputHandler(event: Event): void {\n\t\tevent.preventDefault();\n\n\t\tif (!(event.target instanceof HTMLInputElement) || !(event instanceof InputEvent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.data && /\\D+/.test(event.data)) {\n\t\t\tevent.target.value = String(this.value());\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = event.target.value;\n\n\t\tlet val = value.slice(-2) || '00';\n\n\t\tif (this.max() && Number(val) * 10 > this.max()) {\n\t\t\tthis.moveRequest(event, 'next');\n\t\t}\n\n\t\tif (this.max() && Number(val) > this.max()) {\n\t\t\tval = value.slice(-1);\n\t\t}\n\n\t\tevent.target.value = val;\n\t\tthis.value.set(Number(val));\n\t}\n\n\tclearField(event: Event): void {\n\t\tif (event instanceof KeyboardEvent) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tthis.value.set(0);\n\t}\n\n\tclickHandler(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t}\n\n\tup(): void {\n\t\tthis.inputControlClick.emit('up');\n\t}\n\n\tdown(): void {\n\t\tthis.inputControlClick.emit('down');\n\t}\n\n\tkeydownHandler(event: KeyboardEvent): void {\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tthis.moveRequest(event, 'prev');\n\t\t\t\tbreak;\n\t\t\tcase 'H':\n\t\t\tcase 'h':\n\t\t\tcase ':':\n\t\t\tcase 'ArrowRight':\n\t\t\t\tthis.moveRequest(event, 'next');\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\tcase 'Backspace':\n\t\t\t\tthis.clearField(event);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tthis.arrowKeyPressed(event, true);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.arrowKeyPressed(event, false);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tmoveRequest(event: Event, direction: 'prev' | 'next'): void {\n\t\tevent.preventDefault();\n\n\t\tif (direction === 'prev') {\n\t\t\tthis.prevRequest.emit();\n\t\t} else {\n\t\t\tthis.nextRequest.emit();\n\t\t}\n\t}\n\n\tfocus(): void {\n\t\tif (this.timePickerInput) {\n\t\t\tthis.timePickerInput.nativeElement.focus();\n\t\t}\n\t}\n}\n","<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel pr-u-mask\" [attr.id]=\"inputId + '-label'\" [attr.for]=\"inputId + '-input'\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\t[attr.id]=\"inputId + '-input'\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\t[attr.aria-labelledby]=\"inputId + '-label'\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t</button>\n\t\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t</button>\n\t}\n</div>\n","import { ISO8601Duration } from '../core/date-primitives';\n\nexport type DurationChangeEvent = {\n\tpreviousValue: ISO8601Duration | null;\n\tvalue: ISO8601Duration;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: 'Std.',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DURATION_PICKER_TRANSLATIONS = new InjectionToken('LuDurationPickerTranslations', {\n\tfactory: () => luDurationPickerTranslations,\n});\n\nexport type DurationPickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luDurationPickerTranslations: LuTranslation<DurationPickerTranslations> = Translations;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, input, model, output, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl, isNil, isNotNil } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Duration } from '../core/date-primitives';\nimport { createDurationFromHoursAndMinutes, getHoursPartFromDuration, getMinutesPartFromDuration, isISO8601Duration, isoDurationToDateFnsDuration, isoDurationToSeconds } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\n\nimport { PickerControlDirection } from '../core/misc.utils';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_TIME_DECIMAL_PIPE_FORMAT, DurationChangeEvent } from './duration-picker.model';\nimport { LU_DURATION_PICKER_TRANSLATIONS } from './duration-picker.translate';\n\n@Component({\n\tselector: 'lu-duration-picker',\n\timports: [TimePickerPartComponent],\n\ttemplateUrl: './duration-picker.component.html',\n\tstyleUrl: './duration-picker.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => DurationPickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class DurationPickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_DURATION_PICKER_TRANSLATIONS);\n\n\tvalue = model<ISO8601Duration>('PT0S');\n\treadonly max = input<ISO8601Duration>('PT99H');\n\n\treadonly displayArrows = input(false, { transform: booleanAttribute });\n\n\treadonly label = input<string>();\n\n\treadonly hideZeroValue = input(false, { transform: booleanAttribute });\n\n\treadonly durationChange = output<DurationChangeEvent>();\n\n\tprotected readonly hours = computed(() => getHoursPartFromDuration(this.value()));\n\tprotected readonly minutes = computed(() => getMinutesPartFromDuration(this.value()));\n\tprotected readonly shouldHideValue = computed(() => this.hideZeroValue() && this.hours() === 0 && this.minutes() === 0);\n\n\tprotected readonly pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected readonly fieldsetSuffixClasses = computed(() => {\n\t\treturn {\n\t\t\t'timePicker-fieldset-groupSeparator': true,\n\t\t\t'pr-u-visibilityHidden': this.shouldHideValue(),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\twriteValue(value: ISO8601Duration): void {\n\t\tthis.value.set(value || 'PT0S');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\tlet value: ISO8601Duration;\n\t\t\t// If it's an iso duration, handle as-is\n\t\t\tif (isISO8601Duration(pastedValue)) {\n\t\t\t\tvalue = pastedValue;\n\t\t\t}\n\t\t\tif (/\\d?\\dh\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split('h');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (/\\d?\\d:\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split(':');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tthis.durationChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: DurationChangeEvent): void {\n\t\tlet hoursPart = getHoursPartFromDuration(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromDuration(protoEvent.value);\n\n\t\tif (hoursPart < 0) {\n\t\t\thoursPart = getHoursPartFromDuration(this.max());\n\t\t\tif (isoDurationToSeconds(createDurationFromHoursAndMinutes(hoursPart, minutesPart)) > isoDurationToSeconds(this.max())) {\n\t\t\t\t// If current value with minutes is > max, decrement hours again\n\t\t\t\thoursPart--;\n\t\t\t}\n\t\t} else if (hoursPart > getHoursPartFromDuration(this.max())) {\n\t\t\thoursPart = 0;\n\t\t}\n\n\t\tconst max = isoDurationToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createDurationFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.durationChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? 'PT0S';\n\t\tconst hoursPart = getHoursPartFromDuration(val);\n\t\tconst minutesPart = getMinutesPartFromDuration(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createDurationFromHoursAndMinutes(modifiedVal, minutesPart) : createDurationFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n}\n","<div [class]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend>\n\t\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t\t</legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" [class]=\"fieldsetSuffixClasses()\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutes()\"\n\t\t\t[max]=\"59\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t</fieldset>\n</div>\n","import { ISO8601Time } from './date-primitives';\n\nexport const castToIsoTime = (str: string) => str as ISO8601Time;\n\nexport const convertStringToIsoTime = (time: string): ISO8601Time => {\n\tif (/^\\d{1,2}:\\d{2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(time);\n\t}\n\n\tif (/^\\d{1,2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(`${time}:00`);\n\t}\n\n\tif (/^\\d{1,2}h\\d{2}$/.test(time)) {\n\t\treturn convertStringToIsoTime(time.replace('h', ':'));\n\t}\n\n\tthrow new Error(`Invalid time format: ${time}`);\n};\n\nexport const createIsoTimeFromHoursAndMinutes = (hours: number, minutes: number, seconds: number = 0): ISO8601Time => {\n\tconst hoursStr = hours.toString().padStart(2, '0');\n\tconst minutesStr = minutes.toString().padStart(2, '0');\n\tconst secondsStr = seconds.toString().padStart(2, '0');\n\n\treturn `${hoursStr}:${minutesStr}:${secondsStr}`;\n};\n\nexport const isoTimeToSeconds = (time: ISO8601Time): number => {\n\treturn getHoursPartFromIsoTime(time) * 3600 + getMinutesPartFromIsoTime(time) * 60 + getSecondsPartFromIsoTime(time);\n};\n\nexport const getHoursPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[0]) || 0;\n\nexport const getMinutesPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[1]) || 0;\nexport const getSecondsPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[2]) || 0;\n\nexport const getHoursDisplayPartFromIsoTime = (time: ISO8601Time, ampm = false): number | '––' => {\n\tconst hours = time.split(':')[0];\n\tif (hours === '––') {\n\t\treturn hours;\n\t}\n\tif (ampm) {\n\t\t// Most consistent impl is to create a date and ask date-fns\n\t\treturn formatAMPM(Number(hours)).hours;\n\t}\n\treturn Number(hours);\n};\n\nexport const formatAMPM = (inputHours: number): { hours: number; suffix: 'AM' | 'PM' } => {\n\tlet hours = inputHours;\n\tconst suffix = hours >= 12 ? 'PM' : 'AM';\n\thours = hours % 12;\n\thours = hours ? hours : 12; // 0 should be 12\n\treturn {\n\t\thours,\n\t\tsuffix,\n\t};\n};\n\nexport const getMinutesDisplayPartFromIsoTime = (time: ISO8601Time): number | '––' => {\n\tconst minutes = time.split(':')[1];\n\tif (minutes === '––') {\n\t\treturn minutes;\n\t}\n\treturn Number(minutes);\n};\n","import { ISO8601Time } from '../core/date-primitives';\n\nexport type TimeChangeEvent = {\n\tpreviousValue: ISO8601Time | null;\n\tvalue: ISO8601Time;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\nexport const DEFAULT_MIN_TIME: ISO8601Time = '--:--:--';\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TIME_PICKER_TRANSLATIONS = new InjectionToken('LuTimePickerTranslations', {\n\tfactory: () => luTimePickerTranslations,\n});\n\nexport type TimePickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luTimePickerTranslations: LuTranslation<TimePickerTranslations> = Translations;\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, inject, input, LOCALE_ID, model, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl, isNil, isNotNil } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Time } from '../core/date-primitives';\nimport {\n\tconvertStringToIsoTime,\n\tcreateIsoTimeFromHoursAndMinutes,\n\tformatAMPM,\n\tgetHoursDisplayPartFromIsoTime,\n\tgetHoursPartFromIsoTime,\n\tgetMinutesDisplayPartFromIsoTime,\n\tgetMinutesPartFromIsoTime,\n\tisoTimeToSeconds,\n} from '../core/date.utils';\nimport { isoDurationToDateFnsDuration } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\nimport { PickerControlDirection } from '../core/misc.utils';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_MIN_TIME, DEFAULT_TIME_DECIMAL_PIPE_FORMAT, TimeChangeEvent } from './time-picker.model';\nimport { LU_TIME_PICKER_TRANSLATIONS } from './time-picker.translate';\n\nconst MAX_TIME = '23:59:59';\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-time-picker',\n\timports: [TimePickerPartComponent, FormsModule],\n\ttemplateUrl: './time-picker.component.html',\n\tstyleUrl: './time-picker.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => TimePickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class TimePickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_TIME_PICKER_TRANSLATIONS);\n\tprotected localeId = inject(LOCALE_ID);\n\n\treadonly idSuffix = nextId++;\n\n\treadonly anteMeridiemRef = viewChild<ElementRef<HTMLInputElement>>('anteMeridiemRef');\n\n\treadonly postMeridiemRef = viewChild<ElementRef<HTMLInputElement>>('postMeridiemRef');\n\n\tvalue = model<ISO8601Time>('--:--:--');\n\treadonly max = input<ISO8601Time>(MAX_TIME);\n\n\treadonly displayArrows = input(false, { transform: booleanAttribute });\n\n\treadonly forceMeridiemDisplay = input<boolean | null>(null);\n\n\treadonly enableMeridiemDisplay = computed(() => {\n\t\tif (this.forceMeridiemDisplay() !== null) {\n\t\t\treturn this.forceMeridiemDisplay();\n\t\t}\n\t\t// We can't ask the API if time should include meridiem so the easiest was to just make it format a static date.\n\t\treturn Intl.DateTimeFormat(this.localeId, {\n\t\t\ttimeStyle: 'short',\n\t\t\tdateStyle: 'short',\n\t\t})\n\t\t\t.format(new Date('1/1/1 17:00:00'))\n\t\t\t.includes('PM');\n\t});\n\n\treadonly label = input<string>();\n\n\treadonly timeChange = output<TimeChangeEvent>();\n\n\tprotected readonly hoursDisplay = computed(() => getHoursDisplayPartFromIsoTime(this.value(), this.enableMeridiemDisplay()));\n\tprotected readonly minutesDisplay = computed(() => getMinutesDisplayPartFromIsoTime(this.value()));\n\n\tprotected readonly hours = computed(() => getHoursPartFromIsoTime(this.value()));\n\tprotected readonly minutes = computed(() => getMinutesPartFromIsoTime(this.value()));\n\tprotected readonly pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\tprotected readonly maxHours = computed(() => {\n\t\tif (this.enableMeridiemDisplay()) {\n\t\t\treturn 12;\n\t\t}\n\t\treturn getHoursPartFromIsoTime(this.max() ?? '23:59:59');\n\t});\n\n\tprotected readonly ampmDisplay = computed(() => {\n\t\treturn formatAMPM(this.hours()).suffix;\n\t});\n\n\tprotected override focusPart(type: 'hours' | 'minutes' | 'meridiem') {\n\t\tif (type === 'meridiem') {\n\t\t\tconst elementToFocus = this.ampmDisplay() === 'AM' ? this.anteMeridiemRef()?.nativeElement : this.postMeridiemRef()?.nativeElement;\n\t\t\telementToFocus?.focus();\n\t\t} else {\n\t\t\tsuper.focusPart(type);\n\t\t}\n\t}\n\n\twriteValue(value: ISO8601Time): void {\n\t\tthis.value.set(value || '––:––:––');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\ttry {\n\t\t\t\tconst value = convertStringToIsoTime(pastedValue);\n\t\t\t\tthis.timeChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: TimeChangeEvent): void {\n\t\tconst hoursPart = getHoursPartFromIsoTime(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(protoEvent.value);\n\n\t\tconst max = isoTimeToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createIsoTimeFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.timeChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? DEFAULT_MIN_TIME;\n\t\tconst hoursPart = getHoursPartFromIsoTime(val);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createIsoTimeFromHoursAndMinutes(modifiedVal, minutesPart) : createIsoTimeFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n\n\tswitchMeridiem(newValue: 'AM' | 'PM') {\n\t\tlet hours = getHoursPartFromIsoTime(this.value());\n\t\tconst minutes = getMinutesPartFromIsoTime(this.value());\n\t\tif (newValue === 'PM') {\n\t\t\thours = circularize(hours + 12, 23);\n\t\t} else {\n\t\t\thours = circularize(hours - 12, 23);\n\t\t}\n\t\tthis.setTime({\n\t\t\tsource: 'input',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(hours, minutes),\n\t\t});\n\t}\n}\n","<div [class]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend>\n\t\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t\t</legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[display]=\"hoursDisplay()\"\n\t\t\t[max]=\"maxHours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" class=\"timePicker-fieldset-groupSeparator\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutesDisplay()\"\n\t\t\t[max]=\"59\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(nextRequest)=\"focusPart('meridiem')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t\t@if (enableMeridiemDisplay()) {\n\t\t\t<div\n\t\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t\t>\n\t\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); focusPart('minutes')\"\n\t\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t\t<input\n\t\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); focusPart('minutes')\"\n\t\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t@if (displayArrows()) {\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","DEFAULT_TIME_DECIMAL_PIPE_FORMAT","Translations"],"mappings":"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"}
|
|
@@ -5,7 +5,13 @@ import { PortalDirective } from '@lucca-front/ng/core';
|
|
|
5
5
|
|
|
6
6
|
class VerticalNavigationLinkComponent {
|
|
7
7
|
constructor() {
|
|
8
|
+
/**
|
|
9
|
+
* adds an icon to the vertical navigation link
|
|
10
|
+
*/
|
|
8
11
|
this.icon = input(null, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
12
|
+
/**
|
|
13
|
+
* Disabled the vertical navigation link
|
|
14
|
+
*/
|
|
9
15
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
10
16
|
}
|
|
11
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: VerticalNavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -22,8 +28,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
22
28
|
|
|
23
29
|
class VerticalNavigationGroupComponent {
|
|
24
30
|
constructor() {
|
|
31
|
+
/**
|
|
32
|
+
* Changes the text displayed by the vertical navigation group
|
|
33
|
+
*/
|
|
25
34
|
this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
35
|
+
/**
|
|
36
|
+
* Adds an icon to the vertical navigation group
|
|
37
|
+
*/
|
|
26
38
|
this.icon = input(null, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
39
|
+
/**
|
|
40
|
+
* Disabled the vertical navigation group
|
|
41
|
+
*/
|
|
27
42
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
28
43
|
this.expanded = model(true, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
|
|
29
44
|
}
|
|
@@ -44,7 +59,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
44
59
|
|
|
45
60
|
class VerticalNavigationComponent {
|
|
46
61
|
constructor() {
|
|
62
|
+
/**
|
|
63
|
+
* Changes the heading title displayed by the vertical navigation
|
|
64
|
+
*/
|
|
47
65
|
this.heading = input.required(...(ngDevMode ? [{ debugName: "heading" }] : []));
|
|
66
|
+
/**
|
|
67
|
+
* Defines aria level for heading title
|
|
68
|
+
*/
|
|
48
69
|
this.level = input(3, ...(ngDevMode ? [{ debugName: "level" }] : []));
|
|
49
70
|
this.verticalNavigationGroup = contentChildren(VerticalNavigationGroupComponent, { ...(ngDevMode ? { debugName: "verticalNavigationGroup" } : {}), descendants: true });
|
|
50
71
|
this.verticalNavigationLinks = contentChildren(VerticalNavigationLinkComponent, { ...(ngDevMode ? { debugName: "verticalNavigationLinks" } : {}), descendants: true });
|
|
@@ -63,8 +84,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
63
84
|
|
|
64
85
|
class VerticalNavigationItemComponent {
|
|
65
86
|
constructor() {
|
|
87
|
+
/**
|
|
88
|
+
* Changes the text displayed by the vertical navigation item
|
|
89
|
+
*/
|
|
66
90
|
this.label = input(null, ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
91
|
+
/**
|
|
92
|
+
* Adds an icon to the vertical navigation item
|
|
93
|
+
*/
|
|
67
94
|
this.icon = input(null, ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
95
|
+
/**
|
|
96
|
+
* Disabled the vertical navigation item
|
|
97
|
+
*/
|
|
68
98
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
69
99
|
this.expanded = model(true, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
|
|
70
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-vertical-navigation.mjs","sources":["../../../packages/ng/vertical-navigation/link/vertical-navigation-link.component.ts","../../../packages/ng/vertical-navigation/link/vertical-navigation-link.component.html","../../../packages/ng/vertical-navigation/group/vertical-navigation-group.component.ts","../../../packages/ng/vertical-navigation/group/vertical-navigation-group.component.html","../../../packages/ng/vertical-navigation/vertical-navigation.component.ts","../../../packages/ng/vertical-navigation/vertical-navigation.component.html","../../../packages/ng/vertical-navigation/item/vertical-navigation-item.component.ts","../../../packages/ng/vertical-navigation/item/vertical-navigation-item.component.html","../../../packages/ng/vertical-navigation/lucca-front-ng-vertical-navigation.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'span[luVerticalNavigationLink], a[luVerticalNavigationLink]',\n\ttemplateUrl: './vertical-navigation-link.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent],\n\thost: {\n\t\tclass: 'verticalNavigation-list-item-link',\n\t\t'[attr.role]': 'disabled() ? \"presentation\" : null',\n\t\t'[attr.tabindex]': 'disabled() ? -1 : null',\n\t},\n})\nexport class VerticalNavigationLinkComponent {\n\treadonly icon = input<LuccaIcon | null>(null);\n\treadonly disabled = input(false, { transform: booleanAttribute });\n}\n","@if (icon()) {\n\t<lu-icon class=\"verticalNavigation-list-item-link-icon\" [icon]=\"icon()\" />\n}\n<ng-content />\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, model, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\tselector: 'lu-vertical-navigation-group',\n\ttemplateUrl: './vertical-navigation-group.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, PortalDirective],\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'verticalNavigation-list-item',\n\t\t'[class.is-disabled]': 'disabled()',\n\t},\n})\nexport class VerticalNavigationGroupComponent {\n\treadonly label = input.required<PortalContent>();\n\treadonly icon = input<LuccaIcon | null>(null);\n\treadonly disabled = input(false, { transform: booleanAttribute });\n\n\treadonly expanded = model(true);\n\n\ttoggleExpanded() {\n\t\tthis.expanded.set(!this.expanded());\n\t}\n}\n","<button\n\ttype=\"button\"\n\tclass=\"verticalNavigation-list-item-link\"\n\t[attr.aria-expanded]=\"expanded()\"\n\t(click)=\"toggleExpanded()\"\n\t[disabled]=\"disabled()\"\n>\n\t@if (icon()) {\n\t\t<lu-icon class=\"verticalNavigation-list-item-link-icon\" [icon]=\"icon()\" />\n\t}\n\t<ng-container *luPortal=\"label()\" /><span\n\t\taria-hidden=\"true\"\n\t\tclass=\"lucca-icon icon-arrowChevronBottom verticalNavigation-list-item-link-arrow\"\n\t></span>\n</button>\n<ul class=\"verticalNavigation-list mod-child\">\n\t<ng-content />\n</ul>\n","import { ChangeDetectionStrategy, Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { VerticalNavigationGroupComponent } from './group/vertical-navigation-group.component';\nimport { VerticalNavigationLinkComponent } from './link/vertical-navigation-link.component';\n\n@Component({\n\tselector: 'lu-vertical-navigation',\n\ttemplateUrl: './vertical-navigation.component.html',\n\tstyleUrl: './vertical-navigation.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [PortalDirective],\n\thost: {\n\t\tclass: 'verticalNavigation',\n\t\t'[class.mod-iconless]': 'isIconless()',\n\t},\n})\nexport class VerticalNavigationComponent {\n\treadonly heading = input.required<PortalContent>();\n\treadonly level = input<number>(3);\n\n\treadonly verticalNavigationGroup = contentChildren(VerticalNavigationGroupComponent, { descendants: true });\n\treadonly verticalNavigationLinks = contentChildren(VerticalNavigationLinkComponent, { descendants: true });\n\n\treadonly isIconless = computed(\n\t\t() => !this.verticalNavigationGroup().filter((verticalGroup) => verticalGroup?.icon()).length || !this.verticalNavigationLinks().filter((verticalLink) => verticalLink?.icon()).length,\n\t);\n}\n","<div role=\"heading\" [attr.aria-level]=\"level()\" class=\"verticalNavigation-sectionTitle\">\n\t<ng-container *luPortal=\"heading()\" />\n</div>\n<ul class=\"verticalNavigation-list\">\n\t<ng-content />\n</ul>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, model, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\n\n@Component({\n\tselector: 'lu-vertical-navigation-item',\n\ttemplateUrl: './vertical-navigation-item.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'verticalNavigation-list-item',\n\t\t'[class.is-disabled]': 'disabled()',\n\t},\n})\nexport class VerticalNavigationItemComponent {\n\treadonly label = input<string | null>(null);\n\treadonly icon = input<LuccaIcon | null>(null);\n\treadonly disabled = input(false, { transform: booleanAttribute });\n\n\treadonly expanded = model(true);\n\n\ttoggleExpanded() {\n\t\tthis.expanded.set(!this.expanded());\n\t}\n}\n","<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-vertical-navigation.mjs","sources":["../../../packages/ng/vertical-navigation/link/vertical-navigation-link.component.ts","../../../packages/ng/vertical-navigation/link/vertical-navigation-link.component.html","../../../packages/ng/vertical-navigation/group/vertical-navigation-group.component.ts","../../../packages/ng/vertical-navigation/group/vertical-navigation-group.component.html","../../../packages/ng/vertical-navigation/vertical-navigation.component.ts","../../../packages/ng/vertical-navigation/vertical-navigation.component.html","../../../packages/ng/vertical-navigation/item/vertical-navigation-item.component.ts","../../../packages/ng/vertical-navigation/item/vertical-navigation-item.component.html","../../../packages/ng/vertical-navigation/lucca-front-ng-vertical-navigation.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'span[luVerticalNavigationLink], a[luVerticalNavigationLink]',\n\ttemplateUrl: './vertical-navigation-link.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent],\n\thost: {\n\t\tclass: 'verticalNavigation-list-item-link',\n\t\t'[attr.role]': 'disabled() ? \"presentation\" : null',\n\t\t'[attr.tabindex]': 'disabled() ? -1 : null',\n\t},\n})\nexport class VerticalNavigationLinkComponent {\n\t/**\n\t * adds an icon to the vertical navigation link\n\t */\n\treadonly icon = input<LuccaIcon | null>(null);\n\n\t/**\n\t * Disabled the vertical navigation link\n\t */\n\treadonly disabled = input(false, { transform: booleanAttribute });\n}\n","@if (icon()) {\n\t<lu-icon class=\"verticalNavigation-list-item-link-icon\" [icon]=\"icon()\" />\n}\n<ng-content />\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, model, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\n\n@Component({\n\tselector: 'lu-vertical-navigation-group',\n\ttemplateUrl: './vertical-navigation-group.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, PortalDirective],\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'verticalNavigation-list-item',\n\t\t'[class.is-disabled]': 'disabled()',\n\t},\n})\nexport class VerticalNavigationGroupComponent {\n\t/**\n\t * Changes the text displayed by the vertical navigation group\n\t */\n\treadonly label = input.required<PortalContent>();\n\n\t/**\n\t * Adds an icon to the vertical navigation group\n\t */\n\treadonly icon = input<LuccaIcon | null>(null);\n\n\t/**\n\t * Disabled the vertical navigation group\n\t */\n\treadonly disabled = input(false, { transform: booleanAttribute });\n\n\treadonly expanded = model(true);\n\n\ttoggleExpanded() {\n\t\tthis.expanded.set(!this.expanded());\n\t}\n}\n","<button\n\ttype=\"button\"\n\tclass=\"verticalNavigation-list-item-link\"\n\t[attr.aria-expanded]=\"expanded()\"\n\t(click)=\"toggleExpanded()\"\n\t[disabled]=\"disabled()\"\n>\n\t@if (icon()) {\n\t\t<lu-icon class=\"verticalNavigation-list-item-link-icon\" [icon]=\"icon()\" />\n\t}\n\t<ng-container *luPortal=\"label()\" /><span\n\t\taria-hidden=\"true\"\n\t\tclass=\"lucca-icon icon-arrowChevronBottom verticalNavigation-list-item-link-arrow\"\n\t></span>\n</button>\n<ul class=\"verticalNavigation-list mod-child\">\n\t<ng-content />\n</ul>\n","import { ChangeDetectionStrategy, Component, computed, contentChildren, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { VerticalNavigationGroupComponent } from './group/vertical-navigation-group.component';\nimport { VerticalNavigationLinkComponent } from './link/vertical-navigation-link.component';\n\n@Component({\n\tselector: 'lu-vertical-navigation',\n\ttemplateUrl: './vertical-navigation.component.html',\n\tstyleUrl: './vertical-navigation.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [PortalDirective],\n\thost: {\n\t\tclass: 'verticalNavigation',\n\t\t'[class.mod-iconless]': 'isIconless()',\n\t},\n})\nexport class VerticalNavigationComponent {\n\t/**\n\t * Changes the heading title displayed by the vertical navigation\n\t */\n\treadonly heading = input.required<PortalContent>();\n\n\t/**\n\t * Defines aria level for heading title\n\t */\n\treadonly level = input<number>(3);\n\n\treadonly verticalNavigationGroup = contentChildren(VerticalNavigationGroupComponent, { descendants: true });\n\treadonly verticalNavigationLinks = contentChildren(VerticalNavigationLinkComponent, { descendants: true });\n\n\treadonly isIconless = computed(\n\t\t() => !this.verticalNavigationGroup().filter((verticalGroup) => verticalGroup?.icon()).length || !this.verticalNavigationLinks().filter((verticalLink) => verticalLink?.icon()).length,\n\t);\n}\n","<div role=\"heading\" [attr.aria-level]=\"level()\" class=\"verticalNavigation-sectionTitle\">\n\t<ng-container *luPortal=\"heading()\" />\n</div>\n<ul class=\"verticalNavigation-list\">\n\t<ng-content />\n</ul>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, model, ViewEncapsulation } from '@angular/core';\nimport { LuccaIcon } from '@lucca-front/icons';\n\n@Component({\n\tselector: 'lu-vertical-navigation-item',\n\ttemplateUrl: './vertical-navigation-item.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'verticalNavigation-list-item',\n\t\t'[class.is-disabled]': 'disabled()',\n\t},\n})\nexport class VerticalNavigationItemComponent {\n\t/**\n\t * Changes the text displayed by the vertical navigation item\n\t */\n\treadonly label = input<string | null>(null);\n\n\t/**\n\t * Adds an icon to the vertical navigation item\n\t */\n\treadonly icon = input<LuccaIcon | null>(null);\n\n\t/**\n\t * Disabled the vertical navigation item\n\t */\n\treadonly disabled = input(false, { transform: booleanAttribute });\n\n\treadonly expanded = model(true);\n\n\ttoggleExpanded() {\n\t\tthis.expanded.set(!this.expanded());\n\t}\n}\n","<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucca-front/ng",
|
|
3
|
-
"version": "21.0.
|
|
3
|
+
"version": "21.0.3",
|
|
4
4
|
"description": "A library of icons made by the team @Lucca",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"@angular/core": "^21.0.0",
|
|
28
28
|
"@angular/cdk": "^21.0.0",
|
|
29
29
|
"@angular/animations": "^21.0.0",
|
|
30
|
-
"@lucca-front/icons": "21.0.
|
|
31
|
-
"@lucca-front/scss": "21.0.
|
|
30
|
+
"@lucca-front/icons": "21.0.3",
|
|
31
|
+
"@lucca-front/scss": "21.0.3",
|
|
32
32
|
"isomorphic-dompurify": "^2.17.0",
|
|
33
33
|
"date-fns": "^3.6.0",
|
|
34
34
|
"ngx-mask": "^20.0.3",
|
|
@@ -33,12 +33,17 @@
|
|
|
33
33
|
|
|
34
34
|
> * {
|
|
35
35
|
flex-grow: 1;
|
|
36
|
+
min-inline-size: 0;
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
&.mod-optionPicker {
|
|
39
40
|
min-inline-size: 13rem;
|
|
40
41
|
max-inline-size: 30rem;
|
|
41
42
|
}
|
|
43
|
+
|
|
44
|
+
&:has(> lu-select-panel) {
|
|
45
|
+
max-inline-size: 35rem !important;
|
|
46
|
+
}
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
.cdk-overlay-backdrop {
|
|
@@ -12,7 +12,7 @@ interface LuBreadcrumbsLabel {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
declare class BreadcrumbsComponent {
|
|
15
|
-
intl: LuBreadcrumbsLabel;
|
|
15
|
+
readonly intl: LuBreadcrumbsLabel;
|
|
16
16
|
readonly disableCompact: i0.InputSignalWithTransform<boolean, unknown>;
|
|
17
17
|
readonly links: i0.Signal<readonly BreadcrumbsLinkDirective[]>;
|
|
18
18
|
readonly isCompact: i0.Signal<boolean>;
|