@lucca-front/ng 18.3.6-rc.2 → 18.3.6-rc.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.
@@ -125,11 +125,11 @@ export class TimePickerPartComponent {
125
125
  }
126
126
  }
127
127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerPartComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: TimePickerPartComponent, isStandalone: true, selector: "lu-time-picker-part", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decimalConf: { classPropertyName: "decimalConf", publicName: "decimalConf", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, hideValue: { classPropertyName: "hideValue", publicName: "hideValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", prevRequest: "prevRequest", nextRequest: "nextRequest", inputControlClick: "inputControlClick", touched: "touched" }, viewQueries: [{ propertyName: "timePickerInput", first: true, predicate: ["timePickerInput"], descendants: true }], ngImport: i0, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" 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\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n", dependencies: [{ kind: "directive", type: RepeatOnHoldDirective, selector: "[luRepeatOnHold]", outputs: ["hold"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: TimePickerPartComponent, isStandalone: true, selector: "lu-time-picker-part", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decimalConf: { classPropertyName: "decimalConf", publicName: "decimalConf", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, hideValue: { classPropertyName: "hideValue", publicName: "hideValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", prevRequest: "prevRequest", nextRequest: "nextRequest", inputControlClick: "inputControlClick", touched: "touched" }, viewQueries: [{ propertyName: "timePickerInput", first: true, predicate: ["timePickerInput"], descendants: true }], ngImport: i0, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel 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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n", dependencies: [{ kind: "directive", type: RepeatOnHoldDirective, selector: "[luRepeatOnHold]", outputs: ["hold"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
129
129
  }
130
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerPartComponent, decorators: [{
131
131
  type: Component,
132
- args: [{ selector: 'lu-time-picker-part', standalone: true, imports: [RepeatOnHoldDirective, DecimalPipe, InputDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" 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\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n" }]
132
+ args: [{ selector: 'lu-time-picker-part', standalone: true, imports: [RepeatOnHoldDirective, DecimalPipe, InputDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel 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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n" }]
133
133
  }], ctorParameters: () => [{ type: undefined, decorators: [{
134
134
  type: Inject,
135
135
  args: [LOCALE_ID]
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
145
145
  type: ViewChild,
146
146
  args: ['timePickerInput']
147
147
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90aW1lL2NvcmUvdGltZS1waWNrZXItcGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90aW1lL2NvcmUvdGltZS1waWNrZXItcGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUVULE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUNMLGVBQWUsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRW5FLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVNmLE1BQU0sT0FBTyx1QkFBdUI7SUF3RG5DLFlBQXVDLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdkRyRCxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdCLFVBQUssR0FBK0IsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhELFlBQU8sR0FBRyxLQUFLLEVBQWlCLENBQUM7UUFFakMsUUFBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxTQUFTLEVBQUUsZUFBZTtTQUMxQixDQUFDLENBQUM7UUFFSCxrQkFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVB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QUFNO2dCQUV1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBmb3JtYXROdW1iZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3QsXG5cdExPQ0FMRV9JRCxcblx0TW9kZWxTaWduYWwsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG5cdG1vZGVsLFxuXHRudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBQaWNrZXJDb250cm9sRGlyZWN0aW9uIH0gZnJvbSAnLi9taXNjLnV0aWxzJztcbmltcG9ydCB7IFJlcGVhdE9uSG9sZERpcmVjdGl2ZSB9IGZyb20gJy4vcmVwZWF0LW9uLWhvbGQuZGlyZWN0aXZlJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2x1LXRpbWUtcGlja2VyLXBhcnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbUmVwZWF0T25Ib2xkRGlyZWN0aXZlLCBEZWNpbWFsUGlwZSwgSW5wdXREaXJlY3RpdmVdLFxuXHR0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItcGFydC5jb21wb25lbnQuaHRtbCcsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyUGFydENvbXBvbmVudCB7XG5cdGxhYmVsID0gaW5wdXQoJycpO1xuXG5cdGRlY2ltYWxDb25mID0gaW5wdXQoJzIuMC0wJyk7XG5cblx0dmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8ICfigJPigJMnPiA9IG1vZGVsKCfigJPigJMnKTtcblxuXHRkaXNwbGF5ID0gaW5wdXQ8bnVtYmVyIHwgJ+KAk+KAkyc+KCk7XG5cblx0bWF4ID0gaW5wdXQoMCwge1xuXHRcdHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuXHR9KTtcblxuXHRkaXNwbGF5QXJyb3dzID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdGlzUmVhZG9ubHkgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcblx0fSk7XG5cblx0aGlkZVZhbHVlID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdGZvY3VzZWQgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcblx0fSk7XG5cblx0QE91dHB1dCgpIHByZXZSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHRAT3V0cHV0KCkgbmV4dFJlcXVlc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cdEBPdXRwdXQoKSBpbnB1dENvbnRyb2xDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UGlja2VyQ29udHJvbERpcmVjdGlvbj4oKTtcblx0QE91dHB1dCgpIHRvdWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0QFZpZXdDaGlsZCgndGltZVBpY2tlcklucHV0JykgdGltZVBpY2tlcklucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuXHR2YWx1ZUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGlmICh0aGlzLmhpZGVWYWx1ZSgpKSB7XG5cdFx0XHRyZXR1cm4gJyAgJztcblx0XHR9XG5cdFx0aWYgKHRoaXMuZGlzcGxheSgpICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc3BsYXkoKTtcblx0XHR9XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG5cdFx0aWYgKHZhbHVlID09PSAn4oCT4oCTJykge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZm9ybWF0TnVtYmVyKHZhbHVlLCB0aGlzLmxvY2FsZSwgdGhpcy5kZWNpbWFsQ29uZigpKTtcblx0fSk7XG5cblx0cHJvdGVjdGVkIGlucHV0SWQgPSBgdGltZS1waWNrZXItcGFydC0ke25leHRJZCsrfWA7XG5cblx0Y29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcpIHt9XG5cblx0YXJyb3dLZXlQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpc1VwQXJyb3c6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHRoaXMuaW5wdXRDb250cm9sQ2xpY2suZW1pdChpc1VwQXJyb3cgPyAndXAnIDogJ2Rvd24nKTtcblx0fVxuXG5cdGtleXNJbnB1dEhhbmRsZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGlmICghKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHx8ICEoZXZlbnQgaW5zdGFuY2VvZiBJbnB1dEV2ZW50KSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmIChldmVudC5kYXRhICYmIC9cXEQrLy50ZXN0KGV2ZW50LmRhdGEpKSB7XG5cdFx0XHRldmVudC50YXJnZXQudmFsdWUgPSBTdHJpbmcodGhpcy52YWx1ZSgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcblxuXHRcdGxldCB2YWwgPSB2YWx1ZS5zbGljZSgtMikgfHwgJzAwJztcblxuXHRcdGlmICh0aGlzLm1heCgpICYmIE51bWJlcih2YWwpICogMTAgPiB0aGlzLm1heCgpKSB7XG5cdFx0XHR0aGlzLm1vdmVSZXF1ZXN0KGV2ZW50LCAnbmV4dCcpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm1heCgpICYmIE51bWJlcih2YWwpID4gdGhpcy5tYXgoKSkge1xuXHRcdFx0dmFsID0gdmFsdWUuc2xpY2UoLTEpO1xuXHRcdH1cblxuXHRcdGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbDtcblx0XHR0aGlzLnZhbHVlLnNldChOdW1iZXIodmFsKSk7XG5cdH1cblxuXHRjbGVhckZpZWxkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXHRcdGlmIChldmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXG5cdFx0dGhpcy52YWx1ZS5zZXQoMCk7XG5cdH1cblxuXHRjbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHR9XG5cblx0dXAoKTogdm9pZCB7XG5cdFx0dGhpcy5pbnB1dENvbnRyb2xDbGljay5lbWl0KCd1cCcpO1xuXHR9XG5cblx0ZG93bigpOiB2b2lkIHtcblx0XHR0aGlzLmlucHV0Q29udHJvbENsaWNrLmVtaXQoJ2Rvd24nKTtcblx0fVxuXG5cdGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0c3dpdGNoIChldmVudC5rZXkpIHtcblx0XHRcdGNhc2UgJ0Fycm93TGVmdCc6XG5cdFx0XHRcdHRoaXMubW92ZVJlcXVlc3QoZXZlbnQsICdwcmV2Jyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnSCc6XG5cdFx0XHRjYXNlICdoJzpcblx0XHRcdGNhc2UgJzonOlxuXHRcdFx0Y2FzZSAnQXJyb3dSaWdodCc6XG5cdFx0XHRcdHRoaXMubW92ZVJlcXVlc3QoZXZlbnQsICduZXh0Jyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnRGVsZXRlJzpcblx0XHRcdGNhc2UgJ0JhY2tzcGFjZSc6XG5cdFx0XHRcdHRoaXMuY2xlYXJGaWVsZChldmVudCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQXJyb3dVcCc6XG5cdFx0XHRcdHRoaXMuYXJyb3dLZXlQcmVzc2VkKGV2ZW50LCB0cnVlKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd0Rvd24nOlxuXHRcdFx0XHR0aGlzLmFycm93S2V5UHJlc3NlZChldmVudCwgZmFsc2UpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRtb3ZlUmVxdWVzdChldmVudDogRXZlbnQsIGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnKTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGlmIChkaXJlY3Rpb24gPT09ICdwcmV2Jykge1xuXHRcdFx0dGhpcy5wcmV2UmVxdWVzdC5lbWl0KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubmV4dFJlcXVlc3QuZW1pdCgpO1xuXHRcdH1cblx0fVxuXG5cdGZvY3VzKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnRpbWVQaWNrZXJJbnB1dCkge1xuXHRcdFx0dGhpcy50aW1lUGlja2VySW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdH1cblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtdGV4dGZpZWxkXCI+XG5cdDxsYWJlbCBjbGFzcz1cImZvcm1MYWJlbCB1LW1hc2tcIiBpZD1cInt7aW5wdXRJZH19LWxhYmVsXCIgZm9yPVwie3tpbnB1dElkfX0taW5wdXRcIj57eyBsYWJlbCgpIH19PC9sYWJlbD5cblx0PGRpdiBjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtdGV4dGZpZWxkXCI+XG5cdFx0PGlucHV0XG5cdFx0XHQjdGltZVBpY2tlcklucHV0XG5cdFx0XHR0eXBlPVwidGV4dFwiXG5cdFx0XHRsdUlucHV0XG5cdFx0XHRsdUlucHV0U3RhbmRhbG9uZVxuXHRcdFx0aW5wdXRtb2RlPVwibnVtZXJpY1wiXG5cdFx0XHRpZD1cInt7aW5wdXRJZH19LWlucHV0XCJcblx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1ncm91cC10ZXh0ZmllbGQtaW5wdXRcIlxuXHRcdFx0YXR0ci5hcmlhLWxhYmVsbGVkYnk9XCJ7e2lucHV0SWR9fS1sYWJlbFwiXG5cdFx0XHRhdXRvY29tcGxldGU9XCJvZmZcIlxuXHRcdFx0W3ZhbHVlXT1cImhpZGVWYWx1ZSgpID8gbnVsbCA6IHZhbHVlKClcIlxuXHRcdFx0KGlucHV0KT1cImtleXNJbnB1dEhhbmRsZXIoJGV2ZW50KVwiXG5cdFx0XHQoY2xpY2spPVwiY2xpY2tIYW5kbGVyKCRldmVudClcIlxuXHRcdFx0KGtleWRvd24pPVwia2V5ZG93bkhhbmRsZXIoJGV2ZW50KVwiXG5cdFx0XHQoYmx1cik9XCJ0b3VjaGVkLmVtaXQoKVwiXG5cdFx0XHQoZm9jdXMpPVwidGltZVBpY2tlcklucHV0LnNlbGVjdCgpXCJcblx0XHQvPlxuXHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1ncm91cC10ZXh0ZmllbGQtZGlzcGxheVwiPnt7IHZhbHVlTGFiZWwoKSB9fTwvc3Bhbj5cblx0PC9kaXY+XG5cdEBpZiAoZGlzcGxheUFycm93cygpKSB7XG5cdDxidXR0b24gY2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwLXN0ZXBwZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGx1UmVwZWF0T25Ib2xkIChob2xkKT1cInVwKClcIj5cblx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb24gaWNvbi1ub3J0aEFycm93XCI+PC9zcGFuPlxuXHQ8L2J1dHRvbj5cblx0PGJ1dHRvbiBjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtc3RlcHBlclwiIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgbHVSZXBlYXRPbkhvbGQgKGhvbGQpPVwiZG93bigpXCI+XG5cdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsdWNjYS1pY29uIGljb24tc291dGhBcnJvd1wiPjwvc3Bhbj5cblx0PC9idXR0b24+XG5cdH1cbjwvZGl2PlxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90aW1lL2NvcmUvdGltZS1waWNrZXItcGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90aW1lL2NvcmUvdGltZS1waWNrZXItcGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUVULE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixLQUFLLEVBQ0wsS0FBSyxFQUNMLGVBQWUsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRW5FLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQVNmLE1BQU0sT0FBTyx1QkFBdUI7SUF3RG5DLFlBQXVDLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdkRyRCxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdCLFVBQUssR0FBK0IsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhELFlBQU8sR0FBRyxLQUFLLEVBQWlCLENBQUM7UUFFakMsUUFBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxTQUFTLEVBQUUsZUFBZTtTQUMxQixDQUFDLENBQUM7UUFFSCxrQkFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVB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QUFNO2dCQUV1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBmb3JtYXROdW1iZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3QsXG5cdExPQ0FMRV9JRCxcblx0TW9kZWxTaWduYWwsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG5cdG1vZGVsLFxuXHRudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXREaXJlY3RpdmUgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBQaWNrZXJDb250cm9sRGlyZWN0aW9uIH0gZnJvbSAnLi9taXNjLnV0aWxzJztcbmltcG9ydCB7IFJlcGVhdE9uSG9sZERpcmVjdGl2ZSB9IGZyb20gJy4vcmVwZWF0LW9uLWhvbGQuZGlyZWN0aXZlJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2x1LXRpbWUtcGlja2VyLXBhcnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbUmVwZWF0T25Ib2xkRGlyZWN0aXZlLCBEZWNpbWFsUGlwZSwgSW5wdXREaXJlY3RpdmVdLFxuXHR0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItcGFydC5jb21wb25lbnQuaHRtbCcsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUaW1lUGlja2VyUGFydENvbXBvbmVudCB7XG5cdGxhYmVsID0gaW5wdXQoJycpO1xuXG5cdGRlY2ltYWxDb25mID0gaW5wdXQoJzIuMC0wJyk7XG5cblx0dmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8ICfigJPigJMnPiA9IG1vZGVsKCfigJPigJMnKTtcblxuXHRkaXNwbGF5ID0gaW5wdXQ8bnVtYmVyIHwgJ+KAk+KAkyc+KCk7XG5cblx0bWF4ID0gaW5wdXQoMCwge1xuXHRcdHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuXHR9KTtcblxuXHRkaXNwbGF5QXJyb3dzID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdGlzUmVhZG9ubHkgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcblx0fSk7XG5cblx0aGlkZVZhbHVlID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG5cdH0pO1xuXG5cdGZvY3VzZWQgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcblx0fSk7XG5cblx0QE91dHB1dCgpIHByZXZSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHRAT3V0cHV0KCkgbmV4dFJlcXVlc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cdEBPdXRwdXQoKSBpbnB1dENvbnRyb2xDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8UGlja2VyQ29udHJvbERpcmVjdGlvbj4oKTtcblx0QE91dHB1dCgpIHRvdWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0QFZpZXdDaGlsZCgndGltZVBpY2tlcklucHV0JykgdGltZVBpY2tlcklucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuXHR2YWx1ZUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGlmICh0aGlzLmhpZGVWYWx1ZSgpKSB7XG5cdFx0XHRyZXR1cm4gJyAgJztcblx0XHR9XG5cdFx0aWYgKHRoaXMuZGlzcGxheSgpICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiB0aGlzLmRpc3BsYXkoKTtcblx0XHR9XG5cdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG5cdFx0aWYgKHZhbHVlID09PSAn4oCT4oCTJykge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZm9ybWF0TnVtYmVyKHZhbHVlLCB0aGlzLmxvY2FsZSwgdGhpcy5kZWNpbWFsQ29uZigpKTtcblx0fSk7XG5cblx0cHJvdGVjdGVkIGlucHV0SWQgPSBgdGltZS1waWNrZXItcGFydC0ke25leHRJZCsrfWA7XG5cblx0Y29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcpIHt9XG5cblx0YXJyb3dLZXlQcmVzc2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpc1VwQXJyb3c6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHRoaXMuaW5wdXRDb250cm9sQ2xpY2suZW1pdChpc1VwQXJyb3cgPyAndXAnIDogJ2Rvd24nKTtcblx0fVxuXG5cdGtleXNJbnB1dEhhbmRsZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGlmICghKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHx8ICEoZXZlbnQgaW5zdGFuY2VvZiBJbnB1dEV2ZW50KSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmIChldmVudC5kYXRhICYmIC9cXEQrLy50ZXN0KGV2ZW50LmRhdGEpKSB7XG5cdFx0XHRldmVudC50YXJnZXQudmFsdWUgPSBTdHJpbmcodGhpcy52YWx1ZSgpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcblxuXHRcdGxldCB2YWwgPSB2YWx1ZS5zbGljZSgtMikgfHwgJzAwJztcblxuXHRcdGlmICh0aGlzLm1heCgpICYmIE51bWJlcih2YWwpICogMTAgPiB0aGlzLm1heCgpKSB7XG5cdFx0XHR0aGlzLm1vdmVSZXF1ZXN0KGV2ZW50LCAnbmV4dCcpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm1heCgpICYmIE51bWJlcih2YWwpID4gdGhpcy5tYXgoKSkge1xuXHRcdFx0dmFsID0gdmFsdWUuc2xpY2UoLTEpO1xuXHRcdH1cblxuXHRcdGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbDtcblx0XHR0aGlzLnZhbHVlLnNldChOdW1iZXIodmFsKSk7XG5cdH1cblxuXHRjbGVhckZpZWxkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXHRcdGlmIChldmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXG5cdFx0dGhpcy52YWx1ZS5zZXQoMCk7XG5cdH1cblxuXHRjbGlja0hhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHR9XG5cblx0dXAoKTogdm9pZCB7XG5cdFx0dGhpcy5pbnB1dENvbnRyb2xDbGljay5lbWl0KCd1cCcpO1xuXHR9XG5cblx0ZG93bigpOiB2b2lkIHtcblx0XHR0aGlzLmlucHV0Q29udHJvbENsaWNrLmVtaXQoJ2Rvd24nKTtcblx0fVxuXG5cdGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0c3dpdGNoIChldmVudC5rZXkpIHtcblx0XHRcdGNhc2UgJ0Fycm93TGVmdCc6XG5cdFx0XHRcdHRoaXMubW92ZVJlcXVlc3QoZXZlbnQsICdwcmV2Jyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnSCc6XG5cdFx0XHRjYXNlICdoJzpcblx0XHRcdGNhc2UgJzonOlxuXHRcdFx0Y2FzZSAnQXJyb3dSaWdodCc6XG5cdFx0XHRcdHRoaXMubW92ZVJlcXVlc3QoZXZlbnQsICduZXh0Jyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnRGVsZXRlJzpcblx0XHRcdGNhc2UgJ0JhY2tzcGFjZSc6XG5cdFx0XHRcdHRoaXMuY2xlYXJGaWVsZChldmVudCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnQXJyb3dVcCc6XG5cdFx0XHRcdHRoaXMuYXJyb3dLZXlQcmVzc2VkKGV2ZW50LCB0cnVlKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdBcnJvd0Rvd24nOlxuXHRcdFx0XHR0aGlzLmFycm93S2V5UHJlc3NlZChldmVudCwgZmFsc2UpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRtb3ZlUmVxdWVzdChldmVudDogRXZlbnQsIGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnKTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuXHRcdGlmIChkaXJlY3Rpb24gPT09ICdwcmV2Jykge1xuXHRcdFx0dGhpcy5wcmV2UmVxdWVzdC5lbWl0KCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubmV4dFJlcXVlc3QuZW1pdCgpO1xuXHRcdH1cblx0fVxuXG5cdGZvY3VzKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnRpbWVQaWNrZXJJbnB1dCkge1xuXHRcdFx0dGhpcy50aW1lUGlja2VySW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdH1cblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtdGV4dGZpZWxkXCI+XG5cdDxsYWJlbCBjbGFzcz1cImZvcm1MYWJlbCB1LW1hc2tcIiBbYXR0ci5pZF09XCJpbnB1dElkICsgJy1sYWJlbCdcIiBbYXR0ci5mb3JdPVwiaW5wdXRJZCArICctaW5wdXQnXCI+e3sgbGFiZWwoKSB9fTwvbGFiZWw+XG5cdDxkaXYgY2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwLXRleHRmaWVsZFwiPlxuXHRcdDxpbnB1dFxuXHRcdFx0I3RpbWVQaWNrZXJJbnB1dFxuXHRcdFx0dHlwZT1cInRleHRcIlxuXHRcdFx0bHVJbnB1dFxuXHRcdFx0bHVJbnB1dFN0YW5kYWxvbmVcblx0XHRcdGlucHV0bW9kZT1cIm51bWVyaWNcIlxuXHRcdFx0W2F0dHIuaWRdPVwiaW5wdXRJZCArICctaW5wdXQnXCJcblx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1ncm91cC10ZXh0ZmllbGQtaW5wdXRcIlxuXHRcdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlucHV0SWQgKyAnLWxhYmVsJ1wiXG5cdFx0XHRhdXRvY29tcGxldGU9XCJvZmZcIlxuXHRcdFx0W3ZhbHVlXT1cImhpZGVWYWx1ZSgpID8gbnVsbCA6IHZhbHVlKClcIlxuXHRcdFx0KGlucHV0KT1cImtleXNJbnB1dEhhbmRsZXIoJGV2ZW50KVwiXG5cdFx0XHQoY2xpY2spPVwiY2xpY2tIYW5kbGVyKCRldmVudClcIlxuXHRcdFx0KGtleWRvd24pPVwia2V5ZG93bkhhbmRsZXIoJGV2ZW50KVwiXG5cdFx0XHQoYmx1cik9XCJ0b3VjaGVkLmVtaXQoKVwiXG5cdFx0XHQoZm9jdXMpPVwidGltZVBpY2tlcklucHV0LnNlbGVjdCgpXCJcblx0XHQvPlxuXHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1ncm91cC10ZXh0ZmllbGQtZGlzcGxheVwiPnt7IHZhbHVlTGFiZWwoKSB9fTwvc3Bhbj5cblx0PC9kaXY+XG5cdEBpZiAoZGlzcGxheUFycm93cygpKSB7XG5cdDxidXR0b24gY2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwLXN0ZXBwZXJcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGx1UmVwZWF0T25Ib2xkIChob2xkKT1cInVwKClcIj5cblx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb24gaWNvbi1ub3J0aEFycm93XCI+PC9zcGFuPlxuXHQ8L2J1dHRvbj5cblx0PGJ1dHRvbiBjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtc3RlcHBlclwiIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgbHVSZXBlYXRPbkhvbGQgKGhvbGQpPVwiZG93bigpXCI+XG5cdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsdWNjYS1pY29uIGljb24tc291dGhBcnJvd1wiPjwvc3Bhbj5cblx0PC9idXR0b24+XG5cdH1cbjwvZGl2PlxuIl19
@@ -209,7 +209,7 @@ export class TimePickerComponent extends BasePickerComponent {
209
209
  useExisting: forwardRef(() => TimePickerComponent),
210
210
  multi: true,
211
211
  },
212
- ], viewQueries: [{ propertyName: "anteMeridiemRef", first: true, predicate: ["anteMeridiemRef"], descendants: true }, { propertyName: "postMeridiemRef", first: true, predicate: ["postMeridiemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"], dependencies: [{ kind: "component", type: TimePickerPartComponent, selector: "lu-time-picker-part", inputs: ["label", "decimalConf", "value", "display", "max", "displayArrows", "isReadonly", "hideValue", "disabled", "focused"], outputs: ["valueChange", "prevRequest", "nextRequest", "inputControlClick", "touched"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
212
+ ], viewQueries: [{ propertyName: "anteMeridiemRef", first: true, predicate: ["anteMeridiemRef"], descendants: true }, { propertyName: "postMeridiemRef", first: true, predicate: ["postMeridiemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"], dependencies: [{ kind: "component", type: TimePickerPartComponent, selector: "lu-time-picker-part", inputs: ["label", "decimalConf", "value", "display", "max", "displayArrows", "isReadonly", "hideValue", "disabled", "focused"], outputs: ["valueChange", "prevRequest", "nextRequest", "inputControlClick", "touched"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
213
213
  }
214
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerComponent, decorators: [{
215
215
  type: Component,
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
219
219
  useExisting: forwardRef(() => TimePickerComponent),
220
220
  multi: true,
221
221
  },
222
- ], template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"] }]
222
+ ], template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"] }]
223
223
  }], propDecorators: { anteMeridiemRef: [{
224
224
  type: ViewChild,
225
225
  args: ['anteMeridiemRef']
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
229
229
  }], label: [{
230
230
  type: Input
231
231
  }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvdGltZS90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90aW1lL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JNLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEUsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFDaEMsVUFBVSxFQUNWLDhCQUE4QixFQUM5Qix1QkFBdUIsRUFDdkIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQTBCLE1BQU0sb0JBQW9CLENBQUM7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QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQXVCbkIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0LCBJbnB1dCwgaW5wdXQsIExPQ0FMRV9JRCwgbW9kZWwsIG91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0SW50bCB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlJztcbmltcG9ydCB7IEJhc2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJU084NjAxVGltZSB9IGZyb20gJy4uL2NvcmUvZGF0ZS1wcmltaXRpdmVzJztcbmltcG9ydCB7XG5cdGNvbnZlcnRTdHJpbmdUb0lzb1RpbWUsXG5cdGNyZWF0ZUlzb1RpbWVGcm9tSG91cnNBbmRNaW51dGVzLFxuXHRmb3JtYXRBTVBNLFxuXHRnZXRIb3Vyc0Rpc3BsYXlQYXJ0RnJvbUlzb1RpbWUsXG5cdGdldEhvdXJzUGFydEZyb21Jc29UaW1lLFxuXHRnZXRNaW51dGVzRGlzcGxheVBhcnRGcm9tSXNvVGltZSxcblx0Z2V0TWludXRlc1BhcnRGcm9tSXNvVGltZSxcblx0aXNvVGltZVRvU2Vjb25kcyxcbn0gZnJvbSAnLi4vY29yZS9kYXRlLnV0aWxzJztcbmltcG9ydCB7IGlzb0R1cmF0aW9uVG9EYXRlRm5zRHVyYXRpb24gfSBmcm9tICcuLi9jb3JlL2R1cmF0aW9uLnV0aWxzJztcbmltcG9ydCB7IGNlaWxUb05lYXJlc3QsIGNpcmN1bGFyaXplLCBmbG9vclRvTmVhcmVzdCwgcm91bmRUb05lYXJlc3QgfSBmcm9tICcuLi9jb3JlL21hdGgudXRpbHMnO1xuaW1wb3J0IHsgaXNOaWwsIGlzTm90TmlsLCBQaWNrZXJDb250cm9sRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29yZS9taXNjLnV0aWxzJztcbmltcG9ydCB7IFJlcGVhdE9uSG9sZERpcmVjdGl2ZSB9IGZyb20gJy4uL2NvcmUvcmVwZWF0LW9uLWhvbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVQaWNrZXJQYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS90aW1lLXBpY2tlci1wYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBERUZBVUxUX01JTl9USU1FLCBERUZBVUxUX1RJTUVfREVDSU1BTF9QSVBFX0ZPUk1BVCwgVGltZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBMVV9USU1FX1BJQ0tFUl9UUkFOU0xBVElPTlMgfSBmcm9tICcuL3RpbWUtcGlja2VyLnRyYW5zbGF0ZSc7XG5cbmNvbnN0IE1BWF9USU1FID0gJzIzOjU5OjU5JztcbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsdS10aW1lLXBpY2tlcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtUaW1lUGlja2VyUGFydENvbXBvbmVudCwgTmdDbGFzcywgRm9ybXNNb2R1bGUsIFJlcGVhdE9uSG9sZERpcmVjdGl2ZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRpbWVQaWNrZXJDb21wb25lbnQpLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VQaWNrZXJDb21wb25lbnQge1xuXHRwcm90ZWN0ZWQgaW50bCA9IGdldEludGwoTFVfVElNRV9QSUNLRVJfVFJBTlNMQVRJT05TKTtcblx0cHJvdGVjdGVkIGxvY2FsZUlkID0gaW5qZWN0KExPQ0FMRV9JRCk7XG5cblx0aWRTdWZmaXggPSBuZXh0SWQrKztcblxuXHRAVmlld0NoaWxkKCdhbnRlTWVyaWRpZW1SZWYnKVxuXHRhbnRlTWVyaWRpZW1SZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cblx0QFZpZXdDaGlsZCgncG9zdE1lcmlkaWVtUmVmJylcblx0cG9zdE1lcmlkaWVtUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG5cdHZhbHVlID0gbW9kZWw8SVNPODYwMVRpbWU+KCctLTotLTotLScpO1xuXHRtYXggPSBpbnB1dDxJU084NjAxVGltZT4oTUFYX1RJTUUpO1xuXG5cdGRpc3BsYXlBcnJvd3MgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cblx0Zm9yY2VNZXJpZGllbURpc3BsYXkgPSBpbnB1dDxib29sZWFuIHwgbnVsbD4obnVsbCk7XG5cblx0ZW5hYmxlTWVyaWRpZW1EaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGlmICh0aGlzLmZvcmNlTWVyaWRpZW1EaXNwbGF5KCkgIT09IG51bGwpIHtcblx0XHRcdHJldHVybiB0aGlzLmZvcmNlTWVyaWRpZW1EaXNwbGF5KCk7XG5cdFx0fVxuXHRcdC8vIFdlIGNhbid0IGFzayB0aGUgQVBJIGlmIHRpbWUgc2hvdWxkIGluY2x1ZGUgbWVyaWRpZW0gc28gdGhlIGVhc2llc3Qgd2FzIHRvIGp1c3QgbWFrZSBpdCBmb3JtYXQgYSBzdGF0aWMgZGF0ZS5cblx0XHRyZXR1cm4gSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZUlkLCB7XG5cdFx0XHR0aW1lU3R5bGU6ICdzaG9ydCcsXG5cdFx0XHRkYXRlU3R5bGU6ICdzaG9ydCcsXG5cdFx0fSlcblx0XHRcdC5mb3JtYXQobmV3IERhdGUoJzEvMS8xIDE3OjAwOjAwJykpXG5cdFx0XHQuaW5jbHVkZXMoJ1BNJyk7XG5cdH0pO1xuXG5cdEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cblx0dGltZUNoYW5nZSA9IG91dHB1dDxUaW1lQ2hhbmdlRXZlbnQ+KCk7XG5cblx0cHJvdGVjdGVkIGhvdXJzRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IGdldEhvdXJzRGlzcGxheVBhcnRGcm9tSXNvVGltZSh0aGlzLnZhbHVlKCksIHRoaXMuZW5hYmxlTWVyaWRpZW1EaXNwbGF5KCkpKTtcblx0cHJvdGVjdGVkIG1pbnV0ZXNEaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4gZ2V0TWludXRlc0Rpc3BsYXlQYXJ0RnJvbUlzb1RpbWUodGhpcy52YWx1ZSgpKSk7XG5cblx0cHJvdGVjdGVkIGhvdXJzID0gY29tcHV0ZWQoKCkgPT4gZ2V0SG91cnNQYXJ0RnJvbUlzb1RpbWUodGhpcy52YWx1ZSgpKSk7XG5cdHByb3RlY3RlZCBtaW51dGVzID0gY29tcHV0ZWQoKCkgPT4gZ2V0TWludXRlc1BhcnRGcm9tSXNvVGltZSh0aGlzLnZhbHVlKCkpKTtcblx0cHJvdGVjdGVkIHBpY2tlckNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRpbWVQaWNrZXI6IHRydWUsXG5cdFx0XHQnbW9kLXN0ZXBwZXInOiB0aGlzLmRpc3BsYXlBcnJvd3MoKSxcblx0XHRcdCdtb2Qtc3RlcHBlckhvdmVyJzogdGhpcy5kaXNwbGF5QXJyb3dzKCksXG5cdFx0XHRbYG1vZC0ke3RoaXMuc2l6ZSgpfWBdOiBCb29sZWFuKHRoaXMuc2l6ZSgpKSxcblx0XHR9O1xuXHR9KTtcblx0cHJvdGVjdGVkIHNlcGFyYXRvciA9IHRoaXMuaW50bC50aW1lUGlja2VyVGltZVNlcGFyYXRvcjtcblxuXHRwcm90ZWN0ZWQgaG91cnNEZWNpbWFsQ29uZiA9IERFRkFVTFRfVElNRV9ERUNJTUFMX1BJUEVfRk9STUFUO1xuXG5cdHByb3RlY3RlZCBtYXhIb3VycyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5lbmFibGVNZXJpZGllbURpc3BsYXkoKSkge1xuXHRcdFx0cmV0dXJuIDEyO1xuXHRcdH1cblx0XHRyZXR1cm4gZ2V0SG91cnNQYXJ0RnJvbUlzb1RpbWUodGhpcy5tYXgoKSA/PyAnMjM6NTk6NTknKTtcblx0fSk7XG5cblx0cHJvdGVjdGVkIGFtcG1EaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdHJldHVybiBmb3JtYXRBTVBNKHRoaXMuaG91cnMoKSkuc3VmZml4O1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgZm9jdXNQYXJ0KHR5cGU6ICdob3VycycgfCAnbWludXRlcycgfCAnbWVyaWRpZW0nKSB7XG5cdFx0aWYgKHR5cGUgPT09ICdtZXJpZGllbScpIHtcblx0XHRcdHRoaXMuYW1wbURpc3BsYXkoKSA9PT0gJ0FNJyA/IHRoaXMuYW50ZU1lcmlkaWVtUmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpIDogdGhpcy5wb3N0TWVyaWRpZW1SZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN1cGVyLmZvY3VzUGFydCh0eXBlKTtcblx0XHR9XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBJU084NjAxVGltZSk6IHZvaWQge1xuXHRcdHRoaXMudmFsdWUuc2V0KHZhbHVlIHx8ICfigJPigJM64oCT4oCTOuKAk+KAkycpO1xuXHR9XG5cblx0c2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGhvdXJzSW5wdXRIYW5kbGVyKHZhbHVlOiBudW1iZXIgfCAn4oCT4oCTJyk6IHZvaWQge1xuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRwcmV2aW91c1ZhbHVlOiB0aGlzLnZhbHVlKCksXG5cdFx0XHQvLyBNb3N0bHkgZm9yIGNvbXBpbGVyIGJlY2F1c2Ugd2UgbmV2ZXIgc2V0IHRoZSB0aW1lIHRvIOKAk+KAkyB3aXRoIGlucHV0IGhhbmRsZXJcblx0XHRcdHZhbHVlOiBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcygrdmFsdWUsIHRoaXMubWludXRlcygpKSxcblx0XHRcdHNvdXJjZTogJ2lucHV0Jyxcblx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCBtaW51dGVzSW5wdXRIYW5kbGVyKHZhbHVlOiBudW1iZXIgfCAn4oCT4oCTJyk6IHZvaWQge1xuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRwcmV2aW91c1ZhbHVlOiB0aGlzLnZhbHVlKCksXG5cdFx0XHQvLyBNb3N0bHkgZm9yIGNvbXBpbGVyIGJlY2F1c2Ugd2UgbmV2ZXIgc2V0IHRoZSB0aW1lIHRvIOKAk+KAkyB3aXRoIGlucHV0IGhhbmRsZXJcblx0XHRcdHZhbHVlOiBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcyh0aGlzLmhvdXJzKCksICt2YWx1ZSksXG5cdFx0XHRzb3VyY2U6ICdpbnB1dCcsXG5cdFx0fSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgY29weUhhbmRsZXIoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHQvLyB3cml0ZSB2YWx1ZSB0byBjbGlwYm9hcmRcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcblx0XHRpZiAoaXNOb3ROaWwodmFsdWUpKSB7XG5cdFx0XHRldmVudC5jbGlwYm9hcmREYXRhPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBwYXN0ZUhhbmRsZXIoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRjb25zdCBwYXN0ZWRWYWx1ZSA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKTtcblx0XHRpZiAoaXNOb3ROaWwocGFzdGVkVmFsdWUpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGNvbnZlcnRTdHJpbmdUb0lzb1RpbWUocGFzdGVkVmFsdWUpO1xuXHRcdFx0XHR0aGlzLnRpbWVDaGFuZ2UuZW1pdCh7XG5cdFx0XHRcdFx0cHJldmlvdXNWYWx1ZTogdGhpcy52YWx1ZSgpLFxuXHRcdFx0XHRcdHNvdXJjZTogJ3Bhc3RlJyxcblx0XHRcdFx0XHR2YWx1ZSxcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcblx0XHRcdFx0dGhpcy5vbkNoYW5nZT8uKHZhbHVlKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0Ly8gZG8gbm90aGluZ1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG92ZXJyaWRlIGdldEhvdXJzSW5jcmVtZW50KCk6IG51bWJlciB7XG5cdFx0Y29uc3Qgc3RlcCA9IHRoaXMuc3RlcCgpO1xuXHRcdGlmIChpc05pbChzdGVwKSkge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXG5cdFx0Y29uc3QgeyBob3VycyB9ID0gaXNvRHVyYXRpb25Ub0RhdGVGbnNEdXJhdGlvbihzdGVwKTtcblxuXHRcdGlmIChob3VycyA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIDI0ICUgaG91cnMgPT09IDAgPyBob3VycyA6IDE7XG5cdH1cblxuXHRvdmVycmlkZSBnZXRNaW51dGVzSW5jcmVtZW50KCk6IG51bWJlciB8IG51bGwge1xuXHRcdGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXAoKTtcblx0XHRpZiAoaXNOaWwoc3RlcCkpIHtcblx0XHRcdHJldHVybiAxO1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgbWludXRlcyB9ID0gaXNvRHVyYXRpb25Ub0RhdGVGbnNEdXJhdGlvbihzdGVwKTtcblxuXHRcdGlmIChtaW51dGVzID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gNjAgJSBtaW51dGVzID09PSAwID8gbWludXRlcyA6IDE7XG5cdH1cblxuXHRwcml2YXRlIHNldFRpbWUocHJvdG9FdmVudDogVGltZUNoYW5nZUV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgaG91cnNQYXJ0ID0gZ2V0SG91cnNQYXJ0RnJvbUlzb1RpbWUocHJvdG9FdmVudC52YWx1ZSk7XG5cdFx0Y29uc3QgbWludXRlc1BhcnQgPSBnZXRNaW51dGVzUGFydEZyb21Jc29UaW1lKHByb3RvRXZlbnQudmFsdWUpO1xuXG5cdFx0Y29uc3QgbWF4ID0gaXNvVGltZVRvU2Vjb25kcyh0aGlzLm1heCgpKTtcblxuXHRcdGNvbnN0IGNhbmRpZGF0ZVRpbWVBc1NlY29uZHMgPSBob3Vyc1BhcnQgKiAzNjAwICsgbWludXRlc1BhcnQgKiA2MDtcblxuXHRcdGNvbnN0IHNlY29uZHMgPSByb3VuZFRvTmVhcmVzdChjaXJjdWxhcml6ZShjYW5kaWRhdGVUaW1lQXNTZWNvbmRzLCBtYXgpLCA2MCk7XG5cblx0XHRjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApO1xuXHRcdGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKChzZWNvbmRzICUgMzYwMCkgLyA2MCk7XG5cblx0XHRjb25zdCByZXN1bHQgPSBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcyhob3VycywgbWludXRlcyk7XG5cblx0XHR0aGlzLnZhbHVlLnNldChyZXN1bHQpO1xuXHRcdHRoaXMub25DaGFuZ2U/LihyZXN1bHQpO1xuXHRcdHRoaXMudGltZUNoYW5nZS5lbWl0KHtcblx0XHRcdC4uLnByb3RvRXZlbnQsXG5cdFx0XHR2YWx1ZTogcmVzdWx0LFxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGlucHV0Q29udHJvbENsaWNrSGFuZGxlcihwYXJ0OiAnaG91cnMnIHwgJ21pbnV0ZXMnLCBkaXJlY3Rpb246IFBpY2tlckNvbnRyb2xEaXJlY3Rpb24pOiB2b2lkIHtcblx0XHRjb25zdCB2YWwgPSB0aGlzLnZhbHVlKCkgPz8gREVGQVVMVF9NSU5fVElNRTtcblx0XHRjb25zdCBob3Vyc1BhcnQgPSBnZXRIb3Vyc1BhcnRGcm9tSXNvVGltZSh2YWwpO1xuXHRcdGNvbnN0IG1pbnV0ZXNQYXJ0ID0gZ2V0TWludXRlc1BhcnRGcm9tSXNvVGltZSh2YWwpO1xuXG5cdFx0Y29uc3Qgc2VsZWN0ZWRQYXJ0ID0gcGFydCA9PT0gJ2hvdXJzJyA/IGhvdXJzUGFydCA6IG1pbnV0ZXNQYXJ0O1xuXHRcdGNvbnN0IHNlbGVjdGVkSW5jcmVtZW50ID0gcGFydCA9PT0gJ2hvdXJzJyA/IHRoaXMuaG91cnNJbmNyZW1lbnQoKSA6IHRoaXMubWludXRlc0luY3JlbWVudCgpO1xuXHRcdGxldCBtb2RpZmllZFZhbDogbnVtYmVyO1xuXG5cdFx0aWYgKHNlbGVjdGVkSW5jcmVtZW50ID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykge1xuXHRcdFx0bW9kaWZpZWRWYWwgPSBmbG9vclRvTmVhcmVzdChzZWxlY3RlZFBhcnQgKyBzZWxlY3RlZEluY3JlbWVudCwgc2VsZWN0ZWRJbmNyZW1lbnQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtb2RpZmllZFZhbCA9IGNlaWxUb05lYXJlc3Qoc2VsZWN0ZWRQYXJ0IC0gc2VsZWN0ZWRJbmNyZW1lbnQsIHNlbGVjdGVkSW5jcmVtZW50KTtcblx0XHR9XG5cblx0XHRjb25zdCBuZXdUaW1lID0gcGFydCA9PT0gJ2hvdXJzJyA/IGNyZWF0ZUlzb1RpbWVGcm9tSG91cnNBbmRNaW51dGVzKG1vZGlmaWVkVmFsLCBtaW51dGVzUGFydCkgOiBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcyhob3Vyc1BhcnQsIG1vZGlmaWVkVmFsKTtcblxuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRzb3VyY2U6ICdjb250cm9sJyxcblx0XHRcdHByZXZpb3VzVmFsdWU6IHRoaXMudmFsdWUoKSxcblx0XHRcdHZhbHVlOiBuZXdUaW1lLFxuXHRcdFx0cGFydCxcblx0XHRcdGRpcmVjdGlvbixcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBmb2N1cygpIHtcblx0XHRpZiAoaXNOb3ROaWwodGhpcy5ob3Vyc1BhcnQpKSB7XG5cdFx0XHR0aGlzLmZvY3VzUGFydCgnaG91cnMnKTtcblx0XHR9XG5cdH1cblxuXHRzd2l0Y2hNZXJpZGllbShuZXdWYWx1ZTogJ0FNJyB8ICdQTScpIHtcblx0XHRsZXQgaG91cnMgPSBnZXRIb3Vyc1BhcnRGcm9tSXNvVGltZSh0aGlzLnZhbHVlKCkpO1xuXHRcdGNvbnN0IG1pbnV0ZXMgPSBnZXRNaW51dGVzUGFydEZyb21Jc29UaW1lKHRoaXMudmFsdWUoKSk7XG5cdFx0aWYgKG5ld1ZhbHVlID09PSAnUE0nKSB7XG5cdFx0XHRob3VycyA9IGNpcmN1bGFyaXplKGhvdXJzICsgMTIsIDIzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aG91cnMgPSBjaXJjdWxhcml6ZShob3VycyAtIDEyLCAyMyk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRzb3VyY2U6ICdpbnB1dCcsXG5cdFx0XHRwcmV2aW91c1ZhbHVlOiB0aGlzLnZhbHVlKCksXG5cdFx0XHR2YWx1ZTogY3JlYXRlSXNvVGltZUZyb21Ib3Vyc0FuZE1pbnV0ZXMoaG91cnMsIG1pbnV0ZXMpLFxuXHRcdH0pO1xuXHR9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInBpY2tlckNsYXNzZXMoKVwiIChjb3B5KT1cImNvcHlIYW5kbGVyKCRldmVudClcIiAocGFzdGUpPVwicGFzdGVIYW5kbGVyKCRldmVudClcIj5cblx0PGZpZWxkc2V0IGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCI+XG5cdFx0PGxlZ2VuZD48c3BhbiBjbGFzcz1cInUtbWFza1wiPnt7IGxhYmVsIH19PC9zcGFuPjwvbGVnZW5kPlxuXHRcdDxsdS10aW1lLXBpY2tlci1wYXJ0XG5cdFx0XHQjaG91cnNQYXJ0XG5cdFx0XHRjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXBcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuXHRcdFx0W2xhYmVsXT1cImludGwudGltZVBpY2tlckhvdXJzXCJcblx0XHRcdFt2YWx1ZV09XCJob3VycygpXCJcblx0XHRcdFtkaXNwbGF5XT1cImhvdXJzRGlzcGxheSgpXCJcblx0XHRcdFttYXhdPVwibWF4SG91cnMoKVwiXG5cdFx0XHRbZGVjaW1hbENvbmZdPVwiaG91cnNEZWNpbWFsQ29uZlwiXG5cdFx0XHRbZGlzcGxheUFycm93c109XCJkaXNwbGF5QXJyb3dzKClcIlxuXHRcdFx0KHRvdWNoZWQpPVwib25Ub3VjaGVkPy4oKVwiXG5cdFx0XHQodmFsdWVDaGFuZ2UpPVwiaG91cnNJbnB1dEhhbmRsZXIoJGV2ZW50KVwiXG5cdFx0XHQobmV4dFJlcXVlc3QpPVwiZm9jdXNQYXJ0KCdtaW51dGVzJylcIlxuXHRcdFx0KGlucHV0Q29udHJvbENsaWNrKT1cImlucHV0Q29udHJvbENsaWNrSGFuZGxlcignaG91cnMnLCAkZXZlbnQpXCJcblx0XHQvPlxuXHRcdDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwU2VwYXJhdG9yXCI+e3sgc2VwYXJhdG9yIH19PC9kaXY+XG5cdFx0PGx1LXRpbWUtcGlja2VyLXBhcnRcblx0XHRcdCNtaW51dGVzUGFydFxuXHRcdFx0Y2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwXCJcblx0XHRcdFtsYWJlbF09XCJpbnRsLnRpbWVQaWNrZXJNaW51dGVzXCJcblx0XHRcdFt2YWx1ZV09XCJtaW51dGVzRGlzcGxheSgpXCJcblx0XHRcdFttYXhdPVwiNTlcIlxuXHRcdFx0W2Rpc3BsYXlBcnJvd3NdPVwiZGlzcGxheUFycm93cygpXCJcblx0XHRcdCh0b3VjaGVkKT1cIm9uVG91Y2hlZD8uKClcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgIW1pbnV0ZXNJbmNyZW1lbnQoKVwiXG5cdFx0XHQodmFsdWVDaGFuZ2UpPVwibWludXRlc0lucHV0SGFuZGxlcigkZXZlbnQpXCJcblx0XHRcdChwcmV2UmVxdWVzdCk9XCJmb2N1c1BhcnQoJ2hvdXJzJylcIlxuXHRcdFx0KG5leHRSZXF1ZXN0KT1cImZvY3VzUGFydCgnbWVyaWRpZW0nKVwiXG5cdFx0XHQoaW5wdXRDb250cm9sQ2xpY2spPVwiaW5wdXRDb250cm9sQ2xpY2tIYW5kbGVyKCdtaW51dGVzJywgJGV2ZW50KVwiXG5cdFx0Lz5cblx0XHRAaWYgKGVuYWJsZU1lcmlkaWVtRGlzcGxheSgpKSB7XG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LW1lcmlkaWVtXCJcblx0XHRcdChjb3B5KT1cImNvcHlIYW5kbGVyKCRldmVudClcIlxuXHRcdFx0KHBhc3RlKT1cInBhc3RlSGFuZGxlcigkZXZlbnQpXCJcblx0XHRcdChrZXlkb3duLkEpPVwiYW50ZU1lcmlkaWVtUmVmLmNsaWNrKClcIlxuXHRcdFx0KGtleWRvd24uUCk9XCJwb3N0TWVyaWRpZW1SZWYuY2xpY2soKVwiXG5cdFx0XHQoa2V5ZG93bi5zaGlmdC5BKT1cImFudGVNZXJpZGllbVJlZi5jbGljaygpXCJcblx0XHRcdChrZXlkb3duLnNoaWZ0LlApPVwicG9zdE1lcmlkaWVtUmVmLmNsaWNrKClcIlxuXHRcdFx0KGNsaWNrKT1cImFtcG1EaXNwbGF5KCkgPT09ICdBTScgPyBhbnRlTWVyaWRpZW1SZWYuZm9jdXMoKSA6IHBvc3RNZXJpZGllbVJlZi5mb2N1cygpXCJcblx0XHQ+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1hbnRlXCI+XG5cdFx0XHRcdDxsYWJlbCBbYXR0ci5mb3JdPVwiJ2FudGVNZXJpZGllbS0nICsgaWRTdWZmaXhcIj5BTTwvbGFiZWw+XG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdCNhbnRlTWVyaWRpZW1SZWZcblx0XHRcdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0XHRcdFthdHRyLm5hbWVdPVwiJ21lcmlkaWVtLScgKyBpZFN1ZmZpeFwiXG5cdFx0XHRcdFx0W2F0dHIuaWRdPVwiJ2FudGVNZXJpZGllbS0nICsgaWRTdWZmaXhcIlxuXHRcdFx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1hbnRlLWlucHV0XCJcblx0XHRcdFx0XHR2YWx1ZT1cIkFNXCJcblx0XHRcdFx0XHRbbmdNb2RlbF09XCJhbXBtRGlzcGxheSgpXCJcblx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJzd2l0Y2hNZXJpZGllbSgkZXZlbnQpXCJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcblx0XHRcdFx0XHQoa2V5ZG93bi5hcnJvd2xlZnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Zm9jdXNQYXJ0KCdtaW51dGVzJylcIlxuXHRcdFx0XHRcdChrZXlkb3duLmFycm93cmlnaHQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1wb3N0XCI+XG5cdFx0XHRcdDxsYWJlbCBbYXR0ci5mb3JdPVwiJ3Bvc3RNZXJpZGllbS0nICsgaWRTdWZmaXhcIj5QTTwvbGFiZWw+XG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdCNwb3N0TWVyaWRpZW1SZWZcblx0XHRcdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0XHRcdFthdHRyLm5hbWVdPVwiJ21lcmlkaWVtLScgKyBpZFN1ZmZpeFwiXG5cdFx0XHRcdFx0W2F0dHIuaWRdPVwiJ3Bvc3RNZXJpZGllbS0nICsgaWRTdWZmaXhcIlxuXHRcdFx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1wb3N0LWlucHV0XCJcblx0XHRcdFx0XHR2YWx1ZT1cIlBNXCJcblx0XHRcdFx0XHRbbmdNb2RlbF09XCJhbXBtRGlzcGxheSgpXCJcblx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJzd2l0Y2hNZXJpZGllbSgkZXZlbnQpXCJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcblx0XHRcdFx0XHQoa2V5ZG93bi5hcnJvd2xlZnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Zm9jdXNQYXJ0KCdtaW51dGVzJylcIlxuXHRcdFx0XHRcdChrZXlkb3duLmFycm93cmlnaHQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHRAaWYgKGRpc3BsYXlBcnJvd3MoKSkge1xuXHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtc3RlcHBlclwiXG5cdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCJcblx0XHRcdFx0KGNsaWNrKT1cInN3aXRjaE1lcmlkaWVtKGFtcG1EaXNwbGF5KCkgPT09ICdBTScgPyAnUE0nIDogJ0FNJylcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb24gaWNvbi1ub3J0aEFycm93XCI+PC9zcGFuPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1ncm91cC1zdGVwcGVyXCJcblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdHRhYmluZGV4PVwiLTFcIlxuXHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHQoY2xpY2spPVwic3dpdGNoTWVyaWRpZW0oYW1wbURpc3BsYXkoKSA9PT0gJ0FNJyA/ICdQTScgOiAnQU0nKVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwibHVjY2EtaWNvbiBpY29uLXNvdXRoQXJyb3dcIj48L3NwYW4+XG5cdFx0XHQ8L2J1dHRvbj5cblx0XHRcdH1cblx0XHQ8L2Rpdj5cblx0XHR9XG5cdDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvdGltZS90aW1lLXBpY2tlci90aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy90aW1lL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JNLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEUsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFDaEMsVUFBVSxFQUNWLDhCQUE4QixFQUM5Qix1QkFBdUIsRUFDdkIsZ0NBQWdDLEVBQ2hDLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQTBCLE1BQU0sb0JBQW9CLENBQUM7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QixlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCO2dCQXVCbkIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0LCBJbnB1dCwgaW5wdXQsIExPQ0FMRV9JRCwgbW9kZWwsIG91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0SW50bCB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlJztcbmltcG9ydCB7IEJhc2VQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJU084NjAxVGltZSB9IGZyb20gJy4uL2NvcmUvZGF0ZS1wcmltaXRpdmVzJztcbmltcG9ydCB7XG5cdGNvbnZlcnRTdHJpbmdUb0lzb1RpbWUsXG5cdGNyZWF0ZUlzb1RpbWVGcm9tSG91cnNBbmRNaW51dGVzLFxuXHRmb3JtYXRBTVBNLFxuXHRnZXRIb3Vyc0Rpc3BsYXlQYXJ0RnJvbUlzb1RpbWUsXG5cdGdldEhvdXJzUGFydEZyb21Jc29UaW1lLFxuXHRnZXRNaW51dGVzRGlzcGxheVBhcnRGcm9tSXNvVGltZSxcblx0Z2V0TWludXRlc1BhcnRGcm9tSXNvVGltZSxcblx0aXNvVGltZVRvU2Vjb25kcyxcbn0gZnJvbSAnLi4vY29yZS9kYXRlLnV0aWxzJztcbmltcG9ydCB7IGlzb0R1cmF0aW9uVG9EYXRlRm5zRHVyYXRpb24gfSBmcm9tICcuLi9jb3JlL2R1cmF0aW9uLnV0aWxzJztcbmltcG9ydCB7IGNlaWxUb05lYXJlc3QsIGNpcmN1bGFyaXplLCBmbG9vclRvTmVhcmVzdCwgcm91bmRUb05lYXJlc3QgfSBmcm9tICcuLi9jb3JlL21hdGgudXRpbHMnO1xuaW1wb3J0IHsgaXNOaWwsIGlzTm90TmlsLCBQaWNrZXJDb250cm9sRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29yZS9taXNjLnV0aWxzJztcbmltcG9ydCB7IFJlcGVhdE9uSG9sZERpcmVjdGl2ZSB9IGZyb20gJy4uL2NvcmUvcmVwZWF0LW9uLWhvbGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRpbWVQaWNrZXJQYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS90aW1lLXBpY2tlci1wYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBERUZBVUxUX01JTl9USU1FLCBERUZBVUxUX1RJTUVfREVDSU1BTF9QSVBFX0ZPUk1BVCwgVGltZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi90aW1lLXBpY2tlci5tb2RlbCc7XG5pbXBvcnQgeyBMVV9USU1FX1BJQ0tFUl9UUkFOU0xBVElPTlMgfSBmcm9tICcuL3RpbWUtcGlja2VyLnRyYW5zbGF0ZSc7XG5cbmNvbnN0IE1BWF9USU1FID0gJzIzOjU5OjU5JztcbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsdS10aW1lLXBpY2tlcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtUaW1lUGlja2VyUGFydENvbXBvbmVudCwgTmdDbGFzcywgRm9ybXNNb2R1bGUsIFJlcGVhdE9uSG9sZERpcmVjdGl2ZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi90aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRpbWVQaWNrZXJDb21wb25lbnQpLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgVGltZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VQaWNrZXJDb21wb25lbnQge1xuXHRwcm90ZWN0ZWQgaW50bCA9IGdldEludGwoTFVfVElNRV9QSUNLRVJfVFJBTlNMQVRJT05TKTtcblx0cHJvdGVjdGVkIGxvY2FsZUlkID0gaW5qZWN0KExPQ0FMRV9JRCk7XG5cblx0aWRTdWZmaXggPSBuZXh0SWQrKztcblxuXHRAVmlld0NoaWxkKCdhbnRlTWVyaWRpZW1SZWYnKVxuXHRhbnRlTWVyaWRpZW1SZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cblx0QFZpZXdDaGlsZCgncG9zdE1lcmlkaWVtUmVmJylcblx0cG9zdE1lcmlkaWVtUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG5cdHZhbHVlID0gbW9kZWw8SVNPODYwMVRpbWU+KCctLTotLTotLScpO1xuXHRtYXggPSBpbnB1dDxJU084NjAxVGltZT4oTUFYX1RJTUUpO1xuXG5cdGRpc3BsYXlBcnJvd3MgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cblx0Zm9yY2VNZXJpZGllbURpc3BsYXkgPSBpbnB1dDxib29sZWFuIHwgbnVsbD4obnVsbCk7XG5cblx0ZW5hYmxlTWVyaWRpZW1EaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGlmICh0aGlzLmZvcmNlTWVyaWRpZW1EaXNwbGF5KCkgIT09IG51bGwpIHtcblx0XHRcdHJldHVybiB0aGlzLmZvcmNlTWVyaWRpZW1EaXNwbGF5KCk7XG5cdFx0fVxuXHRcdC8vIFdlIGNhbid0IGFzayB0aGUgQVBJIGlmIHRpbWUgc2hvdWxkIGluY2x1ZGUgbWVyaWRpZW0gc28gdGhlIGVhc2llc3Qgd2FzIHRvIGp1c3QgbWFrZSBpdCBmb3JtYXQgYSBzdGF0aWMgZGF0ZS5cblx0XHRyZXR1cm4gSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZUlkLCB7XG5cdFx0XHR0aW1lU3R5bGU6ICdzaG9ydCcsXG5cdFx0XHRkYXRlU3R5bGU6ICdzaG9ydCcsXG5cdFx0fSlcblx0XHRcdC5mb3JtYXQobmV3IERhdGUoJzEvMS8xIDE3OjAwOjAwJykpXG5cdFx0XHQuaW5jbHVkZXMoJ1BNJyk7XG5cdH0pO1xuXG5cdEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cblx0dGltZUNoYW5nZSA9IG91dHB1dDxUaW1lQ2hhbmdlRXZlbnQ+KCk7XG5cblx0cHJvdGVjdGVkIGhvdXJzRGlzcGxheSA9IGNvbXB1dGVkKCgpID0+IGdldEhvdXJzRGlzcGxheVBhcnRGcm9tSXNvVGltZSh0aGlzLnZhbHVlKCksIHRoaXMuZW5hYmxlTWVyaWRpZW1EaXNwbGF5KCkpKTtcblx0cHJvdGVjdGVkIG1pbnV0ZXNEaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4gZ2V0TWludXRlc0Rpc3BsYXlQYXJ0RnJvbUlzb1RpbWUodGhpcy52YWx1ZSgpKSk7XG5cblx0cHJvdGVjdGVkIGhvdXJzID0gY29tcHV0ZWQoKCkgPT4gZ2V0SG91cnNQYXJ0RnJvbUlzb1RpbWUodGhpcy52YWx1ZSgpKSk7XG5cdHByb3RlY3RlZCBtaW51dGVzID0gY29tcHV0ZWQoKCkgPT4gZ2V0TWludXRlc1BhcnRGcm9tSXNvVGltZSh0aGlzLnZhbHVlKCkpKTtcblx0cHJvdGVjdGVkIHBpY2tlckNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRpbWVQaWNrZXI6IHRydWUsXG5cdFx0XHQnbW9kLXN0ZXBwZXInOiB0aGlzLmRpc3BsYXlBcnJvd3MoKSxcblx0XHRcdCdtb2Qtc3RlcHBlckhvdmVyJzogdGhpcy5kaXNwbGF5QXJyb3dzKCksXG5cdFx0XHRbYG1vZC0ke3RoaXMuc2l6ZSgpfWBdOiBCb29sZWFuKHRoaXMuc2l6ZSgpKSxcblx0XHR9O1xuXHR9KTtcblx0cHJvdGVjdGVkIHNlcGFyYXRvciA9IHRoaXMuaW50bC50aW1lUGlja2VyVGltZVNlcGFyYXRvcjtcblxuXHRwcm90ZWN0ZWQgaG91cnNEZWNpbWFsQ29uZiA9IERFRkFVTFRfVElNRV9ERUNJTUFMX1BJUEVfRk9STUFUO1xuXG5cdHByb3RlY3RlZCBtYXhIb3VycyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5lbmFibGVNZXJpZGllbURpc3BsYXkoKSkge1xuXHRcdFx0cmV0dXJuIDEyO1xuXHRcdH1cblx0XHRyZXR1cm4gZ2V0SG91cnNQYXJ0RnJvbUlzb1RpbWUodGhpcy5tYXgoKSA/PyAnMjM6NTk6NTknKTtcblx0fSk7XG5cblx0cHJvdGVjdGVkIGFtcG1EaXNwbGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdHJldHVybiBmb3JtYXRBTVBNKHRoaXMuaG91cnMoKSkuc3VmZml4O1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgZm9jdXNQYXJ0KHR5cGU6ICdob3VycycgfCAnbWludXRlcycgfCAnbWVyaWRpZW0nKSB7XG5cdFx0aWYgKHR5cGUgPT09ICdtZXJpZGllbScpIHtcblx0XHRcdHRoaXMuYW1wbURpc3BsYXkoKSA9PT0gJ0FNJyA/IHRoaXMuYW50ZU1lcmlkaWVtUmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpIDogdGhpcy5wb3N0TWVyaWRpZW1SZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN1cGVyLmZvY3VzUGFydCh0eXBlKTtcblx0XHR9XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBJU084NjAxVGltZSk6IHZvaWQge1xuXHRcdHRoaXMudmFsdWUuc2V0KHZhbHVlIHx8ICfigJPigJM64oCT4oCTOuKAk+KAkycpO1xuXHR9XG5cblx0c2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGhvdXJzSW5wdXRIYW5kbGVyKHZhbHVlOiBudW1iZXIgfCAn4oCT4oCTJyk6IHZvaWQge1xuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRwcmV2aW91c1ZhbHVlOiB0aGlzLnZhbHVlKCksXG5cdFx0XHQvLyBNb3N0bHkgZm9yIGNvbXBpbGVyIGJlY2F1c2Ugd2UgbmV2ZXIgc2V0IHRoZSB0aW1lIHRvIOKAk+KAkyB3aXRoIGlucHV0IGhhbmRsZXJcblx0XHRcdHZhbHVlOiBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcygrdmFsdWUsIHRoaXMubWludXRlcygpKSxcblx0XHRcdHNvdXJjZTogJ2lucHV0Jyxcblx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCBtaW51dGVzSW5wdXRIYW5kbGVyKHZhbHVlOiBudW1iZXIgfCAn4oCT4oCTJyk6IHZvaWQge1xuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRwcmV2aW91c1ZhbHVlOiB0aGlzLnZhbHVlKCksXG5cdFx0XHQvLyBNb3N0bHkgZm9yIGNvbXBpbGVyIGJlY2F1c2Ugd2UgbmV2ZXIgc2V0IHRoZSB0aW1lIHRvIOKAk+KAkyB3aXRoIGlucHV0IGhhbmRsZXJcblx0XHRcdHZhbHVlOiBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcyh0aGlzLmhvdXJzKCksICt2YWx1ZSksXG5cdFx0XHRzb3VyY2U6ICdpbnB1dCcsXG5cdFx0fSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgY29weUhhbmRsZXIoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHQvLyB3cml0ZSB2YWx1ZSB0byBjbGlwYm9hcmRcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcblx0XHRpZiAoaXNOb3ROaWwodmFsdWUpKSB7XG5cdFx0XHRldmVudC5jbGlwYm9hcmREYXRhPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgdmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBwYXN0ZUhhbmRsZXIoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRjb25zdCBwYXN0ZWRWYWx1ZSA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKTtcblx0XHRpZiAoaXNOb3ROaWwocGFzdGVkVmFsdWUpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IGNvbnZlcnRTdHJpbmdUb0lzb1RpbWUocGFzdGVkVmFsdWUpO1xuXHRcdFx0XHR0aGlzLnRpbWVDaGFuZ2UuZW1pdCh7XG5cdFx0XHRcdFx0cHJldmlvdXNWYWx1ZTogdGhpcy52YWx1ZSgpLFxuXHRcdFx0XHRcdHNvdXJjZTogJ3Bhc3RlJyxcblx0XHRcdFx0XHR2YWx1ZSxcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcblx0XHRcdFx0dGhpcy5vbkNoYW5nZT8uKHZhbHVlKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0Ly8gZG8gbm90aGluZ1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG92ZXJyaWRlIGdldEhvdXJzSW5jcmVtZW50KCk6IG51bWJlciB7XG5cdFx0Y29uc3Qgc3RlcCA9IHRoaXMuc3RlcCgpO1xuXHRcdGlmIChpc05pbChzdGVwKSkge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXG5cdFx0Y29uc3QgeyBob3VycyB9ID0gaXNvRHVyYXRpb25Ub0RhdGVGbnNEdXJhdGlvbihzdGVwKTtcblxuXHRcdGlmIChob3VycyA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIDE7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIDI0ICUgaG91cnMgPT09IDAgPyBob3VycyA6IDE7XG5cdH1cblxuXHRvdmVycmlkZSBnZXRNaW51dGVzSW5jcmVtZW50KCk6IG51bWJlciB8IG51bGwge1xuXHRcdGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXAoKTtcblx0XHRpZiAoaXNOaWwoc3RlcCkpIHtcblx0XHRcdHJldHVybiAxO1xuXHRcdH1cblxuXHRcdGNvbnN0IHsgbWludXRlcyB9ID0gaXNvRHVyYXRpb25Ub0RhdGVGbnNEdXJhdGlvbihzdGVwKTtcblxuXHRcdGlmIChtaW51dGVzID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gNjAgJSBtaW51dGVzID09PSAwID8gbWludXRlcyA6IDE7XG5cdH1cblxuXHRwcml2YXRlIHNldFRpbWUocHJvdG9FdmVudDogVGltZUNoYW5nZUV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgaG91cnNQYXJ0ID0gZ2V0SG91cnNQYXJ0RnJvbUlzb1RpbWUocHJvdG9FdmVudC52YWx1ZSk7XG5cdFx0Y29uc3QgbWludXRlc1BhcnQgPSBnZXRNaW51dGVzUGFydEZyb21Jc29UaW1lKHByb3RvRXZlbnQudmFsdWUpO1xuXG5cdFx0Y29uc3QgbWF4ID0gaXNvVGltZVRvU2Vjb25kcyh0aGlzLm1heCgpKTtcblxuXHRcdGNvbnN0IGNhbmRpZGF0ZVRpbWVBc1NlY29uZHMgPSBob3Vyc1BhcnQgKiAzNjAwICsgbWludXRlc1BhcnQgKiA2MDtcblxuXHRcdGNvbnN0IHNlY29uZHMgPSByb3VuZFRvTmVhcmVzdChjaXJjdWxhcml6ZShjYW5kaWRhdGVUaW1lQXNTZWNvbmRzLCBtYXgpLCA2MCk7XG5cblx0XHRjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApO1xuXHRcdGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKChzZWNvbmRzICUgMzYwMCkgLyA2MCk7XG5cblx0XHRjb25zdCByZXN1bHQgPSBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcyhob3VycywgbWludXRlcyk7XG5cblx0XHR0aGlzLnZhbHVlLnNldChyZXN1bHQpO1xuXHRcdHRoaXMub25DaGFuZ2U/LihyZXN1bHQpO1xuXHRcdHRoaXMudGltZUNoYW5nZS5lbWl0KHtcblx0XHRcdC4uLnByb3RvRXZlbnQsXG5cdFx0XHR2YWx1ZTogcmVzdWx0LFxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGlucHV0Q29udHJvbENsaWNrSGFuZGxlcihwYXJ0OiAnaG91cnMnIHwgJ21pbnV0ZXMnLCBkaXJlY3Rpb246IFBpY2tlckNvbnRyb2xEaXJlY3Rpb24pOiB2b2lkIHtcblx0XHRjb25zdCB2YWwgPSB0aGlzLnZhbHVlKCkgPz8gREVGQVVMVF9NSU5fVElNRTtcblx0XHRjb25zdCBob3Vyc1BhcnQgPSBnZXRIb3Vyc1BhcnRGcm9tSXNvVGltZSh2YWwpO1xuXHRcdGNvbnN0IG1pbnV0ZXNQYXJ0ID0gZ2V0TWludXRlc1BhcnRGcm9tSXNvVGltZSh2YWwpO1xuXG5cdFx0Y29uc3Qgc2VsZWN0ZWRQYXJ0ID0gcGFydCA9PT0gJ2hvdXJzJyA/IGhvdXJzUGFydCA6IG1pbnV0ZXNQYXJ0O1xuXHRcdGNvbnN0IHNlbGVjdGVkSW5jcmVtZW50ID0gcGFydCA9PT0gJ2hvdXJzJyA/IHRoaXMuaG91cnNJbmNyZW1lbnQoKSA6IHRoaXMubWludXRlc0luY3JlbWVudCgpO1xuXHRcdGxldCBtb2RpZmllZFZhbDogbnVtYmVyO1xuXG5cdFx0aWYgKHNlbGVjdGVkSW5jcmVtZW50ID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKGRpcmVjdGlvbiA9PT0gJ3VwJykge1xuXHRcdFx0bW9kaWZpZWRWYWwgPSBmbG9vclRvTmVhcmVzdChzZWxlY3RlZFBhcnQgKyBzZWxlY3RlZEluY3JlbWVudCwgc2VsZWN0ZWRJbmNyZW1lbnQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtb2RpZmllZFZhbCA9IGNlaWxUb05lYXJlc3Qoc2VsZWN0ZWRQYXJ0IC0gc2VsZWN0ZWRJbmNyZW1lbnQsIHNlbGVjdGVkSW5jcmVtZW50KTtcblx0XHR9XG5cblx0XHRjb25zdCBuZXdUaW1lID0gcGFydCA9PT0gJ2hvdXJzJyA/IGNyZWF0ZUlzb1RpbWVGcm9tSG91cnNBbmRNaW51dGVzKG1vZGlmaWVkVmFsLCBtaW51dGVzUGFydCkgOiBjcmVhdGVJc29UaW1lRnJvbUhvdXJzQW5kTWludXRlcyhob3Vyc1BhcnQsIG1vZGlmaWVkVmFsKTtcblxuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRzb3VyY2U6ICdjb250cm9sJyxcblx0XHRcdHByZXZpb3VzVmFsdWU6IHRoaXMudmFsdWUoKSxcblx0XHRcdHZhbHVlOiBuZXdUaW1lLFxuXHRcdFx0cGFydCxcblx0XHRcdGRpcmVjdGlvbixcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBmb2N1cygpIHtcblx0XHRpZiAoaXNOb3ROaWwodGhpcy5ob3Vyc1BhcnQpKSB7XG5cdFx0XHR0aGlzLmZvY3VzUGFydCgnaG91cnMnKTtcblx0XHR9XG5cdH1cblxuXHRzd2l0Y2hNZXJpZGllbShuZXdWYWx1ZTogJ0FNJyB8ICdQTScpIHtcblx0XHRsZXQgaG91cnMgPSBnZXRIb3Vyc1BhcnRGcm9tSXNvVGltZSh0aGlzLnZhbHVlKCkpO1xuXHRcdGNvbnN0IG1pbnV0ZXMgPSBnZXRNaW51dGVzUGFydEZyb21Jc29UaW1lKHRoaXMudmFsdWUoKSk7XG5cdFx0aWYgKG5ld1ZhbHVlID09PSAnUE0nKSB7XG5cdFx0XHRob3VycyA9IGNpcmN1bGFyaXplKGhvdXJzICsgMTIsIDIzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aG91cnMgPSBjaXJjdWxhcml6ZShob3VycyAtIDEyLCAyMyk7XG5cdFx0fVxuXHRcdHRoaXMuc2V0VGltZSh7XG5cdFx0XHRzb3VyY2U6ICdpbnB1dCcsXG5cdFx0XHRwcmV2aW91c1ZhbHVlOiB0aGlzLnZhbHVlKCksXG5cdFx0XHR2YWx1ZTogY3JlYXRlSXNvVGltZUZyb21Ib3Vyc0FuZE1pbnV0ZXMoaG91cnMsIG1pbnV0ZXMpLFxuXHRcdH0pO1xuXHR9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInBpY2tlckNsYXNzZXMoKVwiIChjb3B5KT1cImNvcHlIYW5kbGVyKCRldmVudClcIiAocGFzdGUpPVwicGFzdGVIYW5kbGVyKCRldmVudClcIj5cblx0PGZpZWxkc2V0IGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCI+XG5cdFx0PGxlZ2VuZD48c3BhbiBjbGFzcz1cInUtbWFza1wiPnt7IGxhYmVsIH19PC9zcGFuPjwvbGVnZW5kPlxuXHRcdDxsdS10aW1lLXBpY2tlci1wYXJ0XG5cdFx0XHQjaG91cnNQYXJ0XG5cdFx0XHRjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXBcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuXHRcdFx0W2xhYmVsXT1cImludGwudGltZVBpY2tlckhvdXJzXCJcblx0XHRcdFt2YWx1ZV09XCJob3VycygpXCJcblx0XHRcdFtkaXNwbGF5XT1cImhvdXJzRGlzcGxheSgpXCJcblx0XHRcdFttYXhdPVwibWF4SG91cnMoKVwiXG5cdFx0XHRbZGVjaW1hbENvbmZdPVwiaG91cnNEZWNpbWFsQ29uZlwiXG5cdFx0XHRbZGlzcGxheUFycm93c109XCJkaXNwbGF5QXJyb3dzKClcIlxuXHRcdFx0KHRvdWNoZWQpPVwib25Ub3VjaGVkPy4oKVwiXG5cdFx0XHQodmFsdWVDaGFuZ2UpPVwiaG91cnNJbnB1dEhhbmRsZXIoJGV2ZW50KVwiXG5cdFx0XHQobmV4dFJlcXVlc3QpPVwiZm9jdXNQYXJ0KCdtaW51dGVzJylcIlxuXHRcdFx0KGlucHV0Q29udHJvbENsaWNrKT1cImlucHV0Q29udHJvbENsaWNrSGFuZGxlcignaG91cnMnLCAkZXZlbnQpXCJcblx0XHQvPlxuXHRcdDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwU2VwYXJhdG9yXCI+e3sgc2VwYXJhdG9yIH19PC9kaXY+XG5cdFx0PGx1LXRpbWUtcGlja2VyLXBhcnRcblx0XHRcdCNtaW51dGVzUGFydFxuXHRcdFx0Y2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LWdyb3VwXCJcblx0XHRcdFtsYWJlbF09XCJpbnRsLnRpbWVQaWNrZXJNaW51dGVzXCJcblx0XHRcdFt2YWx1ZV09XCJtaW51dGVzRGlzcGxheSgpXCJcblx0XHRcdFttYXhdPVwiNTlcIlxuXHRcdFx0W2Rpc3BsYXlBcnJvd3NdPVwiZGlzcGxheUFycm93cygpXCJcblx0XHRcdCh0b3VjaGVkKT1cIm9uVG91Y2hlZD8uKClcIlxuXHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgIW1pbnV0ZXNJbmNyZW1lbnQoKVwiXG5cdFx0XHQodmFsdWVDaGFuZ2UpPVwibWludXRlc0lucHV0SGFuZGxlcigkZXZlbnQpXCJcblx0XHRcdChwcmV2UmVxdWVzdCk9XCJmb2N1c1BhcnQoJ2hvdXJzJylcIlxuXHRcdFx0KG5leHRSZXF1ZXN0KT1cImZvY3VzUGFydCgnbWVyaWRpZW0nKVwiXG5cdFx0XHQoaW5wdXRDb250cm9sQ2xpY2spPVwiaW5wdXRDb250cm9sQ2xpY2tIYW5kbGVyKCdtaW51dGVzJywgJGV2ZW50KVwiXG5cdFx0Lz5cblx0XHRAaWYgKGVuYWJsZU1lcmlkaWVtRGlzcGxheSgpKSB7XG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3M9XCJ0aW1lUGlja2VyLWZpZWxkc2V0LW1lcmlkaWVtXCJcblx0XHRcdChjb3B5KT1cImNvcHlIYW5kbGVyKCRldmVudClcIlxuXHRcdFx0KHBhc3RlKT1cInBhc3RlSGFuZGxlcigkZXZlbnQpXCJcblx0XHRcdChrZXlkb3duLkEpPVwiYW50ZU1lcmlkaWVtUmVmLmNsaWNrKClcIlxuXHRcdFx0KGtleWRvd24uUCk9XCJwb3N0TWVyaWRpZW1SZWYuY2xpY2soKVwiXG5cdFx0XHQoa2V5ZG93bi5zaGlmdC5BKT1cImFudGVNZXJpZGllbVJlZi5jbGljaygpXCJcblx0XHRcdChrZXlkb3duLnNoaWZ0LlApPVwicG9zdE1lcmlkaWVtUmVmLmNsaWNrKClcIlxuXHRcdFx0KGNsaWNrKT1cImFtcG1EaXNwbGF5KCkgPT09ICdBTScgPyBhbnRlTWVyaWRpZW1SZWYuZm9jdXMoKSA6IHBvc3RNZXJpZGllbVJlZi5mb2N1cygpXCJcblx0XHQ+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1hbnRlXCI+XG5cdFx0XHRcdDxsYWJlbCBbYXR0ci5mb3JdPVwiJ2FudGVNZXJpZGllbS0nICsgaWRTdWZmaXhcIj5BTTwvbGFiZWw+XG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdCNhbnRlTWVyaWRpZW1SZWZcblx0XHRcdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0XHRcdFthdHRyLm5hbWVdPVwiJ21lcmlkaWVtLScgKyBpZFN1ZmZpeFwiXG5cdFx0XHRcdFx0W25hbWVdPVwiJ21lcmlkaWVtLScgKyBpZFN1ZmZpeFwiXG5cdFx0XHRcdFx0W2F0dHIuaWRdPVwiJ2FudGVNZXJpZGllbS0nICsgaWRTdWZmaXhcIlxuXHRcdFx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1hbnRlLWlucHV0XCJcblx0XHRcdFx0XHR2YWx1ZT1cIkFNXCJcblx0XHRcdFx0XHRbbmdNb2RlbF09XCJhbXBtRGlzcGxheSgpXCJcblx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJzd2l0Y2hNZXJpZGllbSgkZXZlbnQpXCJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcblx0XHRcdFx0XHQoa2V5ZG93bi5hcnJvd2xlZnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Zm9jdXNQYXJ0KCdtaW51dGVzJylcIlxuXHRcdFx0XHRcdChrZXlkb3duLmFycm93cmlnaHQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1wb3N0XCI+XG5cdFx0XHRcdDxsYWJlbCBbYXR0ci5mb3JdPVwiJ3Bvc3RNZXJpZGllbS0nICsgaWRTdWZmaXhcIj5QTTwvbGFiZWw+XG5cdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdCNwb3N0TWVyaWRpZW1SZWZcblx0XHRcdFx0XHR0eXBlPVwicmFkaW9cIlxuXHRcdFx0XHRcdFthdHRyLm5hbWVdPVwiJ21lcmlkaWVtLScgKyBpZFN1ZmZpeFwiXG5cdFx0XHRcdFx0W25hbWVdPVwiJ21lcmlkaWVtLScgKyBpZFN1ZmZpeFwiXG5cdFx0XHRcdFx0W2F0dHIuaWRdPVwiJ3Bvc3RNZXJpZGllbS0nICsgaWRTdWZmaXhcIlxuXHRcdFx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1tZXJpZGllbS1wb3N0LWlucHV0XCJcblx0XHRcdFx0XHR2YWx1ZT1cIlBNXCJcblx0XHRcdFx0XHRbbmdNb2RlbF09XCJhbXBtRGlzcGxheSgpXCJcblx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJzd2l0Y2hNZXJpZGllbSgkZXZlbnQpXCJcblx0XHRcdFx0XHQoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcblx0XHRcdFx0XHQoa2V5ZG93bi5hcnJvd2xlZnQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Zm9jdXNQYXJ0KCdtaW51dGVzJylcIlxuXHRcdFx0XHRcdChrZXlkb3duLmFycm93cmlnaHQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHRAaWYgKGRpc3BsYXlBcnJvd3MoKSkge1xuXHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRjbGFzcz1cInRpbWVQaWNrZXItZmllbGRzZXQtZ3JvdXAtc3RlcHBlclwiXG5cdFx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCJcblx0XHRcdFx0KGNsaWNrKT1cInN3aXRjaE1lcmlkaWVtKGFtcG1EaXNwbGF5KCkgPT09ICdBTScgPyAnUE0nIDogJ0FNJylcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb24gaWNvbi1ub3J0aEFycm93XCI+PC9zcGFuPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdGNsYXNzPVwidGltZVBpY2tlci1maWVsZHNldC1ncm91cC1zdGVwcGVyXCJcblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdHRhYmluZGV4PVwiLTFcIlxuXHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHQoY2xpY2spPVwic3dpdGNoTWVyaWRpZW0oYW1wbURpc3BsYXkoKSA9PT0gJ0FNJyA/ICdQTScgOiAnQU0nKVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwibHVjY2EtaWNvbiBpY29uLXNvdXRoQXJyb3dcIj48L3NwYW4+XG5cdFx0XHQ8L2J1dHRvbj5cblx0XHRcdH1cblx0XHQ8L2Rpdj5cblx0XHR9XG5cdDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
@@ -318,11 +318,11 @@ class TimePickerPartComponent {
318
318
  }
319
319
  }
320
320
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerPartComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: TimePickerPartComponent, isStandalone: true, selector: "lu-time-picker-part", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decimalConf: { classPropertyName: "decimalConf", publicName: "decimalConf", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, hideValue: { classPropertyName: "hideValue", publicName: "hideValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", prevRequest: "prevRequest", nextRequest: "nextRequest", inputControlClick: "inputControlClick", touched: "touched" }, viewQueries: [{ propertyName: "timePickerInput", first: true, predicate: ["timePickerInput"], descendants: true }], ngImport: i0, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" 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\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n", dependencies: [{ kind: "directive", type: RepeatOnHoldDirective, selector: "[luRepeatOnHold]", outputs: ["hold"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: TimePickerPartComponent, isStandalone: true, selector: "lu-time-picker-part", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decimalConf: { classPropertyName: "decimalConf", publicName: "decimalConf", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, hideValue: { classPropertyName: "hideValue", publicName: "hideValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", prevRequest: "prevRequest", nextRequest: "nextRequest", inputControlClick: "inputControlClick", touched: "touched" }, viewQueries: [{ propertyName: "timePickerInput", first: true, predicate: ["timePickerInput"], descendants: true }], ngImport: i0, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel 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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n", dependencies: [{ kind: "directive", type: RepeatOnHoldDirective, selector: "[luRepeatOnHold]", outputs: ["hold"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
322
322
  }
323
323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerPartComponent, decorators: [{
324
324
  type: Component,
325
- args: [{ selector: 'lu-time-picker-part', standalone: true, imports: [RepeatOnHoldDirective, DecimalPipe, InputDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" 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\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n" }]
325
+ args: [{ selector: 'lu-time-picker-part', standalone: true, imports: [RepeatOnHoldDirective, DecimalPipe, InputDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel 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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n" }]
326
326
  }], ctorParameters: () => [{ type: undefined, decorators: [{
327
327
  type: Inject,
328
328
  args: [LOCALE_ID]
@@ -875,7 +875,7 @@ class TimePickerComponent extends BasePickerComponent {
875
875
  useExisting: forwardRef(() => TimePickerComponent),
876
876
  multi: true,
877
877
  },
878
- ], viewQueries: [{ propertyName: "anteMeridiemRef", first: true, predicate: ["anteMeridiemRef"], descendants: true }, { propertyName: "postMeridiemRef", first: true, predicate: ["postMeridiemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"], dependencies: [{ kind: "component", type: TimePickerPartComponent, selector: "lu-time-picker-part", inputs: ["label", "decimalConf", "value", "display", "max", "displayArrows", "isReadonly", "hideValue", "disabled", "focused"], outputs: ["valueChange", "prevRequest", "nextRequest", "inputControlClick", "touched"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
878
+ ], viewQueries: [{ propertyName: "anteMeridiemRef", first: true, predicate: ["anteMeridiemRef"], descendants: true }, { propertyName: "postMeridiemRef", first: true, predicate: ["postMeridiemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"], dependencies: [{ kind: "component", type: TimePickerPartComponent, selector: "lu-time-picker-part", inputs: ["label", "decimalConf", "value", "display", "max", "displayArrows", "isReadonly", "hideValue", "disabled", "focused"], outputs: ["valueChange", "prevRequest", "nextRequest", "inputControlClick", "touched"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
879
879
  }
880
880
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerComponent, decorators: [{
881
881
  type: Component,
@@ -885,7 +885,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
885
885
  useExisting: forwardRef(() => TimePickerComponent),
886
886
  multi: true,
887
887
  },
888
- ], template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"] }]
888
+ ], template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-ante-input:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(.timePicker-fieldset-meridiem-post-input:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"] }]
889
889
  }], propDecorators: { anteMeridiemRef: [{
890
890
  type: ViewChild,
891
891
  args: ['anteMeridiemRef']
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-time.mjs","sources":["../../../packages/ng/time/core/base-picker.component.ts","../../../packages/ng/time/core/misc.utils.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 { 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\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\t@ViewChild('hoursPart')\n\thoursPart?: TimePickerPartComponent;\n\n\t@ViewChild('minutesPart')\n\tminutesPart?: TimePickerPartComponent;\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","export const isNil = <T>(value: T | null | undefined): value is null | undefined => typeof value === 'undefined' || value === null;\n\nexport const isNotNil = <T>(value: T): value is NonNullable<T> => !isNil(value);\n\nexport type PickerControlDirection = 'up' | 'down';\n","import { Duration } from 'date-fns';\nimport { ISO8601Duration } from './date-primitives';\nimport { isNotNil } from './misc.utils';\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, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\n\nconst INITIAL_INTERVAL = 500;\n\n@Directive({\n\tselector: '[luRepeatOnHold]',\n\tstandalone: true,\n})\nexport class RepeatOnHoldDirective implements OnDestroy, OnInit {\n\t@Output() hold = new EventEmitter<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 {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInject,\n\tLOCALE_ID,\n\tModelSignal,\n\tOutput,\n\tViewChild,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n} 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\tstandalone: true,\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\t@Output() prevRequest = new EventEmitter<void>();\n\t@Output() nextRequest = new EventEmitter<void>();\n\t@Output() inputControlClick = new EventEmitter<PickerControlDirection>();\n\t@Output() touched = new EventEmitter<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 u-mask\" id=\"{{inputId}}-label\" 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\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\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\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\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\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\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, input, model, output, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } 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';\nimport { isNil, isNotNil, 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\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass],\n\ttemplateUrl: './duration-picker.component.html',\n\tstyleUrls: ['./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\tmax = input<ISO8601Duration>('PT99H');\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\t@Input() label: string;\n\n\thideZeroValue = input(false, { transform: booleanAttribute });\n\n\tdurationChange = output<DurationChangeEvent>();\n\n\tprotected hours = computed(() => getHoursPartFromDuration(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromDuration(this.value()));\n\tprotected shouldHideValue = computed(() => this.hideZeroValue() && this.hours() === 0 && this.minutes() === 0);\n\n\tprotected 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 fieldsetSuffixClasses = computed(() => {\n\t\treturn {\n\t\t\t'timePicker-fieldset-groupSeparator': true,\n\t\t\t'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 [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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\" [ngClass]=\"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\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\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\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\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, input, LOCALE_ID, model, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } 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 { isNil, isNotNil, 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\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass, FormsModule, RepeatOnHoldDirective],\n\ttemplateUrl: './time-picker.component.html',\n\tstyleUrls: ['./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\tidSuffix = nextId++;\n\n\t@ViewChild('anteMeridiemRef')\n\tanteMeridiemRef: ElementRef<HTMLInputElement>;\n\n\t@ViewChild('postMeridiemRef')\n\tpostMeridiemRef: ElementRef<HTMLInputElement>;\n\n\tvalue = model<ISO8601Time>('--:--:--');\n\tmax = input<ISO8601Time>(MAX_TIME);\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\tforceMeridiemDisplay = input<boolean | null>(null);\n\n\tenableMeridiemDisplay = 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\t@Input() label: string;\n\n\ttimeChange = output<TimeChangeEvent>();\n\n\tprotected hoursDisplay = computed(() => getHoursDisplayPartFromIsoTime(this.value(), this.enableMeridiemDisplay()));\n\tprotected minutesDisplay = computed(() => getMinutesDisplayPartFromIsoTime(this.value()));\n\n\tprotected hours = computed(() => getHoursPartFromIsoTime(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromIsoTime(this.value()));\n\tprotected 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 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 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\tthis.ampmDisplay() === 'AM' ? this.anteMeridiemRef?.nativeElement?.focus() : this.postMeridiemRef?.nativeElement?.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 (e) {\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 [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\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/misc.utils.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 { 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\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\t@ViewChild('hoursPart')\n\thoursPart?: TimePickerPartComponent;\n\n\t@ViewChild('minutesPart')\n\tminutesPart?: TimePickerPartComponent;\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","export const isNil = <T>(value: T | null | undefined): value is null | undefined => typeof value === 'undefined' || value === null;\n\nexport const isNotNil = <T>(value: T): value is NonNullable<T> => !isNil(value);\n\nexport type PickerControlDirection = 'up' | 'down';\n","import { Duration } from 'date-fns';\nimport { ISO8601Duration } from './date-primitives';\nimport { isNotNil } from './misc.utils';\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, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\n\nconst INITIAL_INTERVAL = 500;\n\n@Directive({\n\tselector: '[luRepeatOnHold]',\n\tstandalone: true,\n})\nexport class RepeatOnHoldDirective implements OnDestroy, OnInit {\n\t@Output() hold = new EventEmitter<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 {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInject,\n\tLOCALE_ID,\n\tModelSignal,\n\tOutput,\n\tViewChild,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n} 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\tstandalone: true,\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\t@Output() prevRequest = new EventEmitter<void>();\n\t@Output() nextRequest = new EventEmitter<void>();\n\t@Output() inputControlClick = new EventEmitter<PickerControlDirection>();\n\t@Output() touched = new EventEmitter<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 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<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\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\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\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\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\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, input, model, output, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } 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';\nimport { isNil, isNotNil, 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\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass],\n\ttemplateUrl: './duration-picker.component.html',\n\tstyleUrls: ['./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\tmax = input<ISO8601Duration>('PT99H');\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\t@Input() label: string;\n\n\thideZeroValue = input(false, { transform: booleanAttribute });\n\n\tdurationChange = output<DurationChangeEvent>();\n\n\tprotected hours = computed(() => getHoursPartFromDuration(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromDuration(this.value()));\n\tprotected shouldHideValue = computed(() => this.hideZeroValue() && this.hours() === 0 && this.minutes() === 0);\n\n\tprotected 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 fieldsetSuffixClasses = computed(() => {\n\t\treturn {\n\t\t\t'timePicker-fieldset-groupSeparator': true,\n\t\t\t'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 [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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\" [ngClass]=\"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\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\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\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\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, input, LOCALE_ID, model, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } 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 { isNil, isNotNil, 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\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass, FormsModule, RepeatOnHoldDirective],\n\ttemplateUrl: './time-picker.component.html',\n\tstyleUrls: ['./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\tidSuffix = nextId++;\n\n\t@ViewChild('anteMeridiemRef')\n\tanteMeridiemRef: ElementRef<HTMLInputElement>;\n\n\t@ViewChild('postMeridiemRef')\n\tpostMeridiemRef: ElementRef<HTMLInputElement>;\n\n\tvalue = model<ISO8601Time>('--:--:--');\n\tmax = input<ISO8601Time>(MAX_TIME);\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\tforceMeridiemDisplay = input<boolean | null>(null);\n\n\tenableMeridiemDisplay = 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\t@Input() label: string;\n\n\ttimeChange = output<TimeChangeEvent>();\n\n\tprotected hoursDisplay = computed(() => getHoursDisplayPartFromIsoTime(this.value(), this.enableMeridiemDisplay()));\n\tprotected minutesDisplay = computed(() => getMinutesDisplayPartFromIsoTime(this.value()));\n\n\tprotected hours = computed(() => getHoursPartFromIsoTime(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromIsoTime(this.value()));\n\tprotected 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 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 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\tthis.ampmDisplay() === 'AM' ? this.anteMeridiemRef?.nativeElement?.focus() : this.postMeridiemRef?.nativeElement?.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 (e) {\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 [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></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<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label [attr.for]=\"'anteMeridiem-' + idSuffix\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'anteMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-ante-input\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label [attr.for]=\"'postMeridiem-' + idSuffix\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t[attr.name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[name]=\"'meridiem-' + idSuffix\"\n\t\t\t\t\t[attr.id]=\"'postMeridiem-' + idSuffix\"\n\t\t\t\t\tclass=\"timePicker-fieldset-meridiem-post-input\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\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":";;;;;;;;MAQsB,mBAAmB,CAAA;AAHzC,IAAA,WAAA,GAAA;AAOC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAkB,IAAI,CAAC,CAAC;AAEpC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAA,IAAA,GAAG,KAAK,EAAa,CAAC;QAQhB,IAAc,CAAA,cAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC1D,IAAgB,CAAA,gBAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAiCxE,KAAA;AA/BA,IAAA,gBAAgB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACnB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACpB;AAQS,IAAA,SAAS,CAAC,IAAyB,EAAA;AAC5C,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC;AACnB,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACrB,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE;gBAChC,OAAO;aACP;AAED,YAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;SACxB;AACD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE;gBAClC,OAAO;aACP;AAED,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;SAC1B;KACD;8GAjDoB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ypBAF9B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAES,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,EAAE;AACZ,iBAAA,CAAA;8BAYA,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,WAAW,CAAA;gBAItB,WAAW,EAAA,CAAA;sBADV,SAAS;uBAAC,aAAa,CAAA;;;ACrBlB,MAAM,KAAK,GAAG,CAAI,KAA2B,KAAgC,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,CAAC;AAE5H,MAAM,QAAQ,GAAG,CAAI,KAAQ,KAA8B,CAAC,KAAK,CAAC,KAAK,CAAC;;ACa/E,MAAM,qBAAqB,GAC1B,uLAAuL,CAAC;AAEzL;AACO,MAAM,4BAA4B,GAAG,CAAC,WAA4B,KAAgC;IACxG,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAExD,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAE/B,IAAI,CAAC,MAAM,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,WAAW,CAAA,CAAE,CAAC,CAAC;KAC7D;AAED,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAEjD,IAAA,MAAM,MAAM,GAA+B;AAC1C,QAAA,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;AACpD,QAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;AACvD,QAAA,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AACjD,QAAA,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;AACpD,QAAA,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;AAC1D,QAAA,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;KAC1D,CAAC;AAEF,IAAA,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;AACzB,IAAA,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;AAC1B,IAAA,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;AACxB,IAAA,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;AACzB,IAAA,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;AAC3B,IAAA,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC;AAE3B,IAAA,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEI,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC9C,IAAA,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAEM,MAAM,wBAAwB,GAAG,CAAC,WAA4B,KAAY;AAChF,IAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IACtC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAEpD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;AAC3E,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;AACjB,IAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;AACnB,IAAA,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;AACvB,IAAA,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;AAEvB,IAAA,OAAO,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC;AACvE,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAC,QAAyB,KAAY;AACzE,IAAA,MAAM,WAAW,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;AAE3D,IAAA,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEK,MAAM,wBAAwB,GAAG,CAAC,QAAyB,KAAY;IAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEK,MAAM,0BAA0B,GAAG,CAAC,QAAyB,KAAY;AAC/E,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AAEK,MAAM,iCAAiC,GAAG,CAAC,KAAa,EAAE,OAAe,KAAqB;AACpG,IAAA,OAAO,CAAK,EAAA,EAAA,KAAK,CAAI,CAAA,EAAA,OAAO,GAAG,CAAC;AACjC,CAAC;;ACrFM,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,IAAY,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAExF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,IAAY,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAExF,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,IAAY,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAE7F;;;;;;AAMG;AACI,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,GAAW,KAAI;AACrD,IAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KACzB;IACD,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC;AAChC,CAAC;;AChBD,MAAM,gBAAgB,GAAG,GAAG,CAAC;MAMhB,qBAAqB,CAAA;AAmBjC,IAAA,WAAA,CAAoB,UAAmC,EAAA;QAAnC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;AAlB7C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;QAE1C,IAAW,CAAA,WAAA,GAAG,MAAK;AAClB,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBACjC,OAAO;aACP;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAEjF,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC1D,SAAC,CAAC;QAEF,IAAe,CAAA,eAAA,GAAG,MAAK;YACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAC,CAAC;QAQF,IAAQ,CAAA,QAAA,GAAG,gBAAgB,CAAC;QAC5B,IAAS,CAAA,SAAA,GAAuB,SAAS,CAAC;QAC1C,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;QAC7C,IAAgB,CAAA,gBAAA,GAAuB,SAAS,CAAC;AAYzC,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,IAAY,KAAU;AACtD,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACtB;AAED,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AACpC,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aACzB;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7C,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACjB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aACzB;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE;AACjC,gBAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;aACpB;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE;AACjC,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACnB;YAED,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAClF,SAAC,CAAC;KA5CyD;IAE3D,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9E;IAOO,oBAAoB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,YAAA,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SAClC;KACD;IA2BD,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjF,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC5B;8GArEW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;+EAEU,IAAI,EAAA,CAAA;sBAAb,MAAM;;;ACYR,IAAIA,QAAM,GAAG,CAAC,CAAC;MASF,uBAAuB,CAAA;AAwDnC,IAAA,WAAA,CAAuC,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAvDrD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAElB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAE7B,QAAA,IAAA,CAAA,KAAK,GAA+B,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAO,CAAA,OAAA,GAAG,KAAK,EAAiB,CAAC;AAEjC,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE;AACd,YAAA,SAAS,EAAE,eAAe;AAC1B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE;AAC5B,YAAA,SAAS,EAAE,gBAAgB;AAC3B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE;AACzB,YAAA,SAAS,EAAE,gBAAgB;AAC3B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE;AACxB,YAAA,SAAS,EAAE,gBAAgB;AAC3B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE;AACvB,YAAA,SAAS,EAAE,gBAAgB;AAC3B,SAAA,CAAC,CAAC;AAEH,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE;AACtB,YAAA,SAAS,EAAE,gBAAgB;AAC3B,SAAA,CAAC,CAAC;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;AACvC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAA0B,CAAC;AAC/D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AAI7C,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC1B,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACrB,gBAAA,OAAO,IAAI,CAAC;aACZ;AACD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE;AACjC,gBAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;aACtB;AACD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3B,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AACnB,gBAAA,OAAO,KAAK,CAAC;aACb;AACD,YAAA,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;AAEO,QAAA,IAAA,CAAA,OAAO,GAAG,CAAA,iBAAA,EAAoBA,QAAM,EAAE,EAAE,CAAC;KAEM;IAEzD,eAAe,CAAC,KAAoB,EAAE,SAAkB,EAAA;QACvD,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;KACvD;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAA;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,IAAI,EAAE,KAAK,CAAC,MAAM,YAAY,gBAAgB,CAAC,IAAI,EAAE,KAAK,YAAY,UAAU,CAAC,EAAE;YAClF,OAAO;SACP;AAED,QAAA,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACzC,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,OAAO;SACP;AAED,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAEjC,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAElC,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;AAChD,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAChC;AAED,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;YAC3C,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB;AAED,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5B;AAED,IAAA,UAAU,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,KAAK,YAAY,aAAa,EAAE;YACnC,KAAK,CAAC,cAAc,EAAE,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAClB;AAED,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,EAAE,GAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;IAED,IAAI,GAAA;AACH,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpC;AAED,IAAA,cAAc,CAAC,KAAoB,EAAA;AAClC,QAAA,QAAQ,KAAK,CAAC,GAAG;AAChB,YAAA,KAAK,WAAW;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAChC,MAAM;AACP,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,YAAY;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAChC,MAAM;AACP,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,WAAW;AACf,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACvB,MAAM;AACP,YAAA,KAAK,SAAS;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM;AACP,YAAA,KAAK,WAAW;AACf,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACnC,MAAM;SACP;KACD;IAED,WAAW,CAAC,KAAY,EAAE,SAA0B,EAAA;QACnD,KAAK,CAAC,cAAc,EAAE,CAAC;AAEvB,QAAA,IAAI,SAAS,KAAK,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACxB;aAAM;AACN,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACxB;KACD;IAED,KAAK,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC3C;KACD;AArJW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAwDf,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAxDjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EC9BpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,m5CA+BA,EDLW,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,gFAAe,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAIhD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACnB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,qBAAqB,EAAE,WAAW,EAAE,cAAc,CAAC,EAE5C,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,m5CAAA,EAAA,CAAA;;0BA0DlC,MAAM;2BAAC,SAAS,CAAA;yCAvBnB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEuB,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB,CAAA;;;AExDtB,MAAMC,kCAAgC,GAAG,OAAO;;ACZhD,MAAMC,cAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,uBAAuB,EAAE,MAAM;AAC/B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;CACD;;MCrCY,+BAA+B,GAAG,IAAI,cAAc,CAAC,8BAA8B,EAAE;AACjG,IAAA,OAAO,EAAE,MAAM,4BAA4B;AAC3C,CAAA,EAAE;AAQI,MAAM,4BAA4B,GAA8CA;;ACejF,MAAO,uBAAwB,SAAQ,mBAAmB,CAAA;AAhBhE,IAAA,WAAA,GAAA;;AAiBW,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE1D,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAkB,MAAM,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAkB,OAAO,CAAC,CAAC;QAEtC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAI9D,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE9D,IAAc,CAAA,cAAA,GAAG,MAAM,EAAuB,CAAC;AAErC,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnE,IAAe,CAAA,eAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAErG,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;YACvC,OAAO;AACN,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACnC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE;AACxC,gBAAA,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC5C,CAAC;AACH,SAAC,CAAC,CAAC;AACO,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;YAC/C,OAAO;AACN,gBAAA,oCAAoC,EAAE,IAAI;AAC1C,gBAAA,oBAAoB,EAAE,IAAI,CAAC,eAAe,EAAE;aAC5C,CAAC;AACH,SAAC,CAAC,CAAC;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAE9C,IAAgB,CAAA,gBAAA,GAAGD,kCAAgC,CAAC;AAkK9D,KAAA;AAhKA,IAAA,UAAU,CAAC,KAAsB,EAAA;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;KAChC;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC9B;AAES,IAAA,iBAAiB,CAAC,KAAoB,EAAA;QAC/C,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;YAC3B,KAAK,EAAE,iCAAiC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAChE,YAAA,MAAM,EAAE,OAAO;AACf,SAAA,CAAC,CAAC;KACH;AAES,IAAA,mBAAmB,CAAC,KAAoB,EAAA;QACjD,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;YAC3B,KAAK,EAAE,iCAAiC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAC9D,YAAA,MAAM,EAAE,OAAO;AACf,SAAA,CAAC,CAAC;KACH;AAES,IAAA,WAAW,CAAC,KAAqB,EAAA;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;;AAEvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3B,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SAClD;KACD;AAES,IAAA,YAAY,CAAC,KAAqB,EAAA;QAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC1B,YAAA,IAAI,KAAsB,CAAC;;AAE3B,YAAA,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE;gBACnC,KAAK,GAAG,WAAW,CAAC;aACpB;AACD,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACnC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,gBAAA,KAAK,GAAG,iCAAiC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAChE;AACD,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBACnC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,gBAAA,KAAK,GAAG,iCAAiC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAChE;YACD,IAAI,KAAK,EAAE;AACV,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACxB,oBAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,oBAAA,MAAM,EAAE,OAAO;oBACf,KAAK;AACL,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;aACvB;SACD;KACD;IAEQ,iBAAiB,GAAA;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACT;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAErD,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACT;AAED,QAAA,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KACpC;IAEQ,mBAAmB,GAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACT;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAEvD,QAAA,IAAI,OAAO,KAAK,CAAC,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;SACZ;AAED,QAAA,OAAO,EAAE,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACxC;AAEO,IAAA,OAAO,CAAC,UAA+B,EAAA;QAC9C,IAAI,SAAS,GAAG,wBAAwB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,0BAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEjE,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;YAClB,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,YAAA,IAAI,oBAAoB,CAAC,iCAAiC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;;AAEvH,gBAAA,SAAS,EAAE,CAAC;aACZ;SACD;aAAM,IAAI,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE;YAC5D,SAAS,GAAG,CAAC,CAAC;SACd;QAED,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAE7C,MAAM,sBAAsB,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,EAAE,CAAC;AAEnE,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,iCAAiC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEjE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACxB,YAAA,GAAG,UAAU;AACb,YAAA,KAAK,EAAE,MAAM;AACb,SAAA,CAAC,CAAC;KACH;IAES,wBAAwB,CAAC,IAAyB,EAAE,SAAiC,EAAA;QAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC;AACnC,QAAA,MAAM,SAAS,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAChD,QAAA,MAAM,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;AAEpD,QAAA,MAAM,YAAY,GAAG,IAAI,KAAK,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAChE,QAAA,MAAM,iBAAiB,GAAG,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7F,QAAA,IAAI,WAAmB,CAAC;AAExB,QAAA,IAAI,iBAAiB,KAAK,IAAI,EAAE;YAC/B,OAAO;SACP;AAED,QAAA,IAAI,SAAS,KAAK,IAAI,EAAE;YACvB,WAAW,GAAG,cAAc,CAAC,YAAY,GAAG,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;SAClF;aAAM;YACN,WAAW,GAAG,aAAa,CAAC,YAAY,GAAG,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;SACjF;QAED,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,GAAG,iCAAiC,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,iCAAiC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAE3J,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,KAAK,EAAE,OAAO;YACd,IAAI;YACJ,SAAS;AACT,SAAA,CAAC,CAAC;KACH;IAEM,KAAK,GAAA;AACX,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACxB;KACD;8GAnMW,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EARxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACtD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BF,8zCAgCA,EAAA,MAAA,EAAA,CAAA,6oLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBW,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAa9B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhBnC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,OAAA,EACP,CAAC,uBAAuB,EAAE,OAAO,CAAC,EAG1B,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC;AACtD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA,EAAA,QAAA,EAAA,8zCAAA,EAAA,MAAA,EAAA,CAAA,6oLAAA,CAAA,EAAA,CAAA;8BAUQ,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEnCA,MAAM,aAAa,GAAG,CAAC,GAAW,KAAK,GAAkB,CAAC;AAE1D,MAAM,sBAAsB,GAAG,CAAC,IAAY,KAAiB;AACnE,IAAA,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACvC,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;KAC3B;AAED,IAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACjC,QAAA,OAAO,aAAa,CAAC,CAAA,EAAG,IAAI,CAAA,GAAA,CAAK,CAAC,CAAC;KACnC;AAED,IAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;KACtD;AAED,IAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAA,CAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEK,MAAM,gCAAgC,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,OAAA,GAAkB,CAAC,KAAiB;AACpH,IAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEvD,IAAA,OAAO,GAAG,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;AAClD,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAiB,KAAY;AAC7D,IAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACtH,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAiB,KAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE/F,MAAM,yBAAyB,GAAG,CAAC,IAAiB,KAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjG,MAAM,yBAAyB,GAAG,CAAC,IAAiB,KAAa,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEjG,MAAM,8BAA8B,GAAG,CAAC,IAAiB,EAAE,IAAI,GAAG,KAAK,KAAmB;IAChG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,IAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AACnB,QAAA,OAAO,KAAK,CAAC;KACb;IACD,IAAI,IAAI,EAAE;;QAET,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;KACvC;AACD,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,UAAkB,KAA4C;IACxF,IAAI,KAAK,GAAG,UAAU,CAAC;AACvB,IAAA,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACzC,IAAA,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;AACnB,IAAA,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAC3B,OAAO;QACN,KAAK;QACL,MAAM;KACN,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,gCAAgC,GAAG,CAAC,IAAiB,KAAmB;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,IAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACrB,QAAA,OAAO,OAAO,CAAC;KACf;AACD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;;ACvDM,MAAM,gBAAgB,GAAgB,UAAU,CAAC;AAEjD,MAAM,gCAAgC,GAAG,OAAO;;ACbhD,MAAM,YAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,SAAS;AAC1B,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,QAAQ;AACzB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,KAAK;AACtB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,QAAQ;AAC3B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,eAAe,EAAE,MAAM;AACvB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,eAAe,EAAE,OAAO;AACxB,QAAA,uBAAuB,EAAE,GAAG;AAC5B,QAAA,iBAAiB,EAAE,SAAS;AAC5B,KAAA;CACD;;MCrCY,2BAA2B,GAAG,IAAI,cAAc,CAAC,0BAA0B,EAAE;AACzF,IAAA,OAAO,EAAE,MAAM,wBAAwB;AACvC,CAAA,EAAE;AAQI,MAAM,wBAAwB,GAA0C;;ACU/E,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;AAkBT,MAAO,mBAAoB,SAAQ,mBAAmB,CAAA;AAhB5D,IAAA,WAAA,GAAA;;AAiBW,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAE,CAAC;AAQpB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAc,UAAU,CAAC,CAAC;AACvC,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAc,QAAQ,CAAC,CAAC;QAEnC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAE9D,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAiB,IAAI,CAAC,CAAC;AAEnD,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;AACzC,gBAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;aACnC;;AAED,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;AACzC,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,SAAS,EAAE,OAAO;aAClB,CAAC;AACA,iBAAA,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAClC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClB,SAAC,CAAC,CAAC;QAIH,IAAU,CAAA,UAAA,GAAG,MAAM,EAAmB,CAAC;AAE7B,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAC1G,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,gCAAgC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEhF,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;YACvC,OAAO;AACN,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACnC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE;AACxC,gBAAA,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC5C,CAAC;AACH,SAAC,CAAC,CAAC;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAE9C,IAAgB,CAAA,gBAAA,GAAG,gCAAgC,CAAC;AAEpD,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACjC,gBAAA,OAAO,EAAE,CAAC;aACV;YACD,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,CAAC;AAC1D,SAAC,CAAC,CAAC;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACrC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;AACxC,SAAC,CAAC,CAAC;AAuKH,KAAA;AArKmB,IAAA,SAAS,CAAC,IAAsC,EAAA;AAClE,QAAA,IAAI,IAAI,KAAK,UAAU,EAAE;YACxB,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SAC1H;aAAM;AACN,YAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACtB;KACD;AAED,IAAA,UAAU,CAAC,KAAkB,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;KACpC;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC9B;AAES,IAAA,iBAAiB,CAAC,KAAoB,EAAA;QAC/C,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;;YAE3B,KAAK,EAAE,gCAAgC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/D,YAAA,MAAM,EAAE,OAAO;AACf,SAAA,CAAC,CAAC;KACH;AAES,IAAA,mBAAmB,CAAC,KAAoB,EAAA;QACjD,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;;YAE3B,KAAK,EAAE,gCAAgC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAC7D,YAAA,MAAM,EAAE,OAAO;AACf,SAAA,CAAC,CAAC;KACH;AAES,IAAA,WAAW,CAAC,KAAqB,EAAA;QAC1C,KAAK,CAAC,cAAc,EAAE,CAAC;;AAEvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3B,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACpB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SAClD;KACD;AAES,IAAA,YAAY,CAAC,KAAqB,EAAA;QAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;AAC/D,QAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC1B,YAAA,IAAI;AACH,gBAAA,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpB,oBAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,oBAAA,MAAM,EAAE,OAAO;oBACf,KAAK;AACL,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;;aAEX;SACD;KACD;IAEQ,iBAAiB,GAAA;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACT;QAED,MAAM,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAErD,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACT;AAED,QAAA,OAAO,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KACpC;IAEQ,mBAAmB,GAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC;SACT;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAEvD,QAAA,IAAI,OAAO,KAAK,CAAC,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;SACZ;AAED,QAAA,OAAO,EAAE,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACxC;AAEO,IAAA,OAAO,CAAC,UAA2B,EAAA;QAC1C,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,yBAAyB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAEzC,MAAM,sBAAsB,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,EAAE,CAAC;AAEnE,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,sBAAsB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAE7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,gCAAgC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEhE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACpB,YAAA,GAAG,UAAU;AACb,YAAA,KAAK,EAAE,MAAM;AACb,SAAA,CAAC,CAAC;KACH;IAES,wBAAwB,CAAC,IAAyB,EAAE,SAAiC,EAAA;QAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,gBAAgB,CAAC;AAC7C,QAAA,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAA,MAAM,WAAW,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;AAEnD,QAAA,MAAM,YAAY,GAAG,IAAI,KAAK,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAChE,QAAA,MAAM,iBAAiB,GAAG,IAAI,KAAK,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7F,QAAA,IAAI,WAAmB,CAAC;AAExB,QAAA,IAAI,iBAAiB,KAAK,IAAI,EAAE;YAC/B,OAAO;SACP;AAED,QAAA,IAAI,SAAS,KAAK,IAAI,EAAE;YACvB,WAAW,GAAG,cAAc,CAAC,YAAY,GAAG,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;SAClF;aAAM;YACN,WAAW,GAAG,aAAa,CAAC,YAAY,GAAG,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;SACjF;QAED,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,GAAG,gCAAgC,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,gCAAgC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEzJ,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,KAAK,EAAE,OAAO;YACd,IAAI;YACJ,SAAS;AACT,SAAA,CAAC,CAAC;KACH;IAEM,KAAK,GAAA;AACX,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACxB;KACD;AAED,IAAA,cAAc,CAAC,QAAqB,EAAA;QACnC,IAAI,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;YACtB,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SACpC;aAAM;YACN,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,OAAO,CAAC;AACZ,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE;AAC3B,YAAA,KAAK,EAAE,gCAAgC,CAAC,KAAK,EAAE,OAAO,CAAC;AACvD,SAAA,CAAC,CAAC;KACH;8GApOW,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EARpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzCF,khIAsGA,EDxEW,MAAA,EAAA,CAAA,yoLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,EAAE,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,mFAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAa3C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAhB/B,SAAS;+BACC,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA,CAAC,uBAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAAA,eAAA,EAG9D,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA,EAAA,QAAA,EAAA,khIAAA,EAAA,MAAA,EAAA,CAAA,yoLAAA,CAAA,EAAA,CAAA;8BASD,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,iBAAiB,CAAA;gBAI5B,eAAe,EAAA,CAAA;sBADd,SAAS;uBAAC,iBAAiB,CAAA;gBAuBnB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AE3EP;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/ng",
3
- "version": "18.3.6-rc.2",
3
+ "version": "18.3.6-rc.3",
4
4
  "description": "A library of icons made by the team @Lucca",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,8 +26,8 @@
26
26
  "@angular/common": "^18.0.0",
27
27
  "@angular/core": "^18.0.0",
28
28
  "@angular/cdk": "^18.0.0",
29
- "@lucca-front/icons": "18.3.6-rc.2",
30
- "@lucca-front/scss": "18.3.6-rc.2",
29
+ "@lucca-front/icons": "18.3.6-rc.3",
30
+ "@lucca-front/scss": "18.3.6-rc.3",
31
31
  "isomorphic-dompurify": "^2.17.0",
32
32
  "date-fns": "^3.6.0",
33
33
  "rxjs": "^7.8.0"
@@ -53,11 +53,23 @@
53
53
  "esm": "./esm2022/a11y/lucca-front-ng-a11y.mjs",
54
54
  "default": "./fesm2022/lucca-front-ng-a11y.mjs"
55
55
  },
56
- "./button": {
57
- "types": "./button/index.d.ts",
58
- "esm2022": "./esm2022/button/lucca-front-ng-button.mjs",
59
- "esm": "./esm2022/button/lucca-front-ng-button.mjs",
60
- "default": "./fesm2022/lucca-front-ng-button.mjs"
56
+ "./animations": {
57
+ "types": "./animations/index.d.ts",
58
+ "esm2022": "./esm2022/animations/lucca-front-ng-animations.mjs",
59
+ "esm": "./esm2022/animations/lucca-front-ng-animations.mjs",
60
+ "default": "./fesm2022/lucca-front-ng-animations.mjs"
61
+ },
62
+ "./api": {
63
+ "types": "./api/index.d.ts",
64
+ "esm2022": "./esm2022/api/lucca-front-ng-api.mjs",
65
+ "esm": "./esm2022/api/lucca-front-ng-api.mjs",
66
+ "default": "./fesm2022/lucca-front-ng-api.mjs"
67
+ },
68
+ "./core": {
69
+ "types": "./core/index.d.ts",
70
+ "esm2022": "./esm2022/core/lucca-front-ng-core.mjs",
71
+ "esm": "./esm2022/core/lucca-front-ng-core.mjs",
72
+ "default": "./fesm2022/lucca-front-ng-core.mjs"
61
73
  },
62
74
  "./callout": {
63
75
  "types": "./callout/index.d.ts",
@@ -65,23 +77,17 @@
65
77
  "esm": "./esm2022/callout/lucca-front-ng-callout.mjs",
66
78
  "default": "./fesm2022/lucca-front-ng-callout.mjs"
67
79
  },
68
- "./animations": {
69
- "types": "./animations/index.d.ts",
70
- "esm2022": "./esm2022/animations/lucca-front-ng-animations.mjs",
71
- "esm": "./esm2022/animations/lucca-front-ng-animations.mjs",
72
- "default": "./fesm2022/lucca-front-ng-animations.mjs"
73
- },
74
80
  "./comment": {
75
81
  "types": "./comment/index.d.ts",
76
82
  "esm2022": "./esm2022/comment/lucca-front-ng-comment.mjs",
77
83
  "esm": "./esm2022/comment/lucca-front-ng-comment.mjs",
78
84
  "default": "./fesm2022/lucca-front-ng-comment.mjs"
79
85
  },
80
- "./core": {
81
- "types": "./core/index.d.ts",
82
- "esm2022": "./esm2022/core/lucca-front-ng-core.mjs",
83
- "esm": "./esm2022/core/lucca-front-ng-core.mjs",
84
- "default": "./fesm2022/lucca-front-ng-core.mjs"
86
+ "./button": {
87
+ "types": "./button/index.d.ts",
88
+ "esm2022": "./esm2022/button/lucca-front-ng-button.mjs",
89
+ "esm": "./esm2022/button/lucca-front-ng-button.mjs",
90
+ "default": "./fesm2022/lucca-front-ng-button.mjs"
85
91
  },
86
92
  "./core-select": {
87
93
  "types": "./core-select/index.d.ts",
@@ -89,12 +95,6 @@
89
95
  "esm": "./esm2022/core-select/lucca-front-ng-core-select.mjs",
90
96
  "default": "./fesm2022/lucca-front-ng-core-select.mjs"
91
97
  },
92
- "./api": {
93
- "types": "./api/index.d.ts",
94
- "esm2022": "./esm2022/api/lucca-front-ng-api.mjs",
95
- "esm": "./esm2022/api/lucca-front-ng-api.mjs",
96
- "default": "./fesm2022/lucca-front-ng-api.mjs"
97
- },
98
98
  "./date": {
99
99
  "types": "./date/index.d.ts",
100
100
  "esm2022": "./esm2022/date/lucca-front-ng-date.mjs",
@@ -119,18 +119,18 @@
119
119
  "esm": "./esm2022/dialog/lucca-front-ng-dialog.mjs",
120
120
  "default": "./fesm2022/lucca-front-ng-dialog.mjs"
121
121
  },
122
- "./dropdown": {
123
- "types": "./dropdown/index.d.ts",
124
- "esm2022": "./esm2022/dropdown/lucca-front-ng-dropdown.mjs",
125
- "esm": "./esm2022/dropdown/lucca-front-ng-dropdown.mjs",
126
- "default": "./fesm2022/lucca-front-ng-dropdown.mjs"
127
- },
128
122
  "./empty-state": {
129
123
  "types": "./empty-state/index.d.ts",
130
124
  "esm2022": "./esm2022/empty-state/lucca-front-ng-empty-state.mjs",
131
125
  "esm": "./esm2022/empty-state/lucca-front-ng-empty-state.mjs",
132
126
  "default": "./fesm2022/lucca-front-ng-empty-state.mjs"
133
127
  },
128
+ "./dropdown": {
129
+ "types": "./dropdown/index.d.ts",
130
+ "esm2022": "./esm2022/dropdown/lucca-front-ng-dropdown.mjs",
131
+ "esm": "./esm2022/dropdown/lucca-front-ng-dropdown.mjs",
132
+ "default": "./fesm2022/lucca-front-ng-dropdown.mjs"
133
+ },
134
134
  "./establishment": {
135
135
  "types": "./establishment/index.d.ts",
136
136
  "esm2022": "./esm2022/establishment/lucca-front-ng-establishment.mjs",
@@ -155,12 +155,6 @@
155
155
  "esm": "./esm2022/forms/lucca-front-ng-forms.mjs",
156
156
  "default": "./fesm2022/lucca-front-ng-forms.mjs"
157
157
  },
158
- "./icon": {
159
- "types": "./icon/index.d.ts",
160
- "esm2022": "./esm2022/icon/lucca-front-ng-icon.mjs",
161
- "esm": "./esm2022/icon/lucca-front-ng-icon.mjs",
162
- "default": "./fesm2022/lucca-front-ng-icon.mjs"
163
- },
164
158
  "./inline-message": {
165
159
  "types": "./inline-message/index.d.ts",
166
160
  "esm2022": "./esm2022/inline-message/lucca-front-ng-inline-message.mjs",
@@ -173,11 +167,11 @@
173
167
  "esm": "./esm2022/input/lucca-front-ng-input.mjs",
174
168
  "default": "./fesm2022/lucca-front-ng-input.mjs"
175
169
  },
176
- "./modal": {
177
- "types": "./modal/index.d.ts",
178
- "esm2022": "./esm2022/modal/lucca-front-ng-modal.mjs",
179
- "esm": "./esm2022/modal/lucca-front-ng-modal.mjs",
180
- "default": "./fesm2022/lucca-front-ng-modal.mjs"
170
+ "./icon": {
171
+ "types": "./icon/index.d.ts",
172
+ "esm2022": "./esm2022/icon/lucca-front-ng-icon.mjs",
173
+ "esm": "./esm2022/icon/lucca-front-ng-icon.mjs",
174
+ "default": "./fesm2022/lucca-front-ng-icon.mjs"
181
175
  },
182
176
  "./multi-select": {
183
177
  "types": "./multi-select/index.d.ts",
@@ -185,6 +179,12 @@
185
179
  "esm": "./esm2022/multi-select/lucca-front-ng-multi-select.mjs",
186
180
  "default": "./fesm2022/lucca-front-ng-multi-select.mjs"
187
181
  },
182
+ "./modal": {
183
+ "types": "./modal/index.d.ts",
184
+ "esm2022": "./esm2022/modal/lucca-front-ng-modal.mjs",
185
+ "esm": "./esm2022/modal/lucca-front-ng-modal.mjs",
186
+ "default": "./fesm2022/lucca-front-ng-modal.mjs"
187
+ },
188
188
  "./new-badge": {
189
189
  "types": "./new-badge/index.d.ts",
190
190
  "esm2022": "./esm2022/new-badge/lucca-front-ng-new-badge.mjs",
@@ -215,18 +215,18 @@
215
215
  "esm": "./esm2022/option/lucca-front-ng-option.mjs",
216
216
  "default": "./fesm2022/lucca-front-ng-option.mjs"
217
217
  },
218
- "./plg-push": {
219
- "types": "./plg-push/index.d.ts",
220
- "esm2022": "./esm2022/plg-push/lucca-front-ng-plg-push.mjs",
221
- "esm": "./esm2022/plg-push/lucca-front-ng-plg-push.mjs",
222
- "default": "./fesm2022/lucca-front-ng-plg-push.mjs"
223
- },
224
218
  "./picker": {
225
219
  "types": "./picker/index.d.ts",
226
220
  "esm2022": "./esm2022/picker/lucca-front-ng-picker.mjs",
227
221
  "esm": "./esm2022/picker/lucca-front-ng-picker.mjs",
228
222
  "default": "./fesm2022/lucca-front-ng-picker.mjs"
229
223
  },
224
+ "./plg-push": {
225
+ "types": "./plg-push/index.d.ts",
226
+ "esm2022": "./esm2022/plg-push/lucca-front-ng-plg-push.mjs",
227
+ "esm": "./esm2022/plg-push/lucca-front-ng-plg-push.mjs",
228
+ "default": "./fesm2022/lucca-front-ng-plg-push.mjs"
229
+ },
230
230
  "./popover": {
231
231
  "types": "./popover/index.d.ts",
232
232
  "esm2022": "./esm2022/popover/lucca-front-ng-popover.mjs",
@@ -245,6 +245,12 @@
245
245
  "esm": "./esm2022/popup/lucca-front-ng-popup.mjs",
246
246
  "default": "./fesm2022/lucca-front-ng-popup.mjs"
247
247
  },
248
+ "./popup-employee": {
249
+ "types": "./popup-employee/index.d.ts",
250
+ "esm2022": "./esm2022/popup-employee/lucca-front-ng-popup-employee.mjs",
251
+ "esm": "./esm2022/popup-employee/lucca-front-ng-popup-employee.mjs",
252
+ "default": "./fesm2022/lucca-front-ng-popup-employee.mjs"
253
+ },
248
254
  "./qualification": {
249
255
  "types": "./qualification/index.d.ts",
250
256
  "esm2022": "./esm2022/qualification/lucca-front-ng-qualification.mjs",
@@ -257,12 +263,6 @@
257
263
  "esm": "./esm2022/safe-content/lucca-front-ng-safe-content.mjs",
258
264
  "default": "./fesm2022/lucca-front-ng-safe-content.mjs"
259
265
  },
260
- "./popup-employee": {
261
- "types": "./popup-employee/index.d.ts",
262
- "esm2022": "./esm2022/popup-employee/lucca-front-ng-popup-employee.mjs",
263
- "esm": "./esm2022/popup-employee/lucca-front-ng-popup-employee.mjs",
264
- "default": "./fesm2022/lucca-front-ng-popup-employee.mjs"
265
- },
266
266
  "./scroll": {
267
267
  "types": "./scroll/index.d.ts",
268
268
  "esm2022": "./esm2022/scroll/lucca-front-ng-scroll.mjs",