@tzslot/angular 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -544,6 +544,8 @@ class DateTimeField {
|
|
|
544
544
|
* Counted on the zone's clocks, so a day is 23 or 25 hours when they change.
|
|
545
545
|
*/
|
|
546
546
|
this.shift = input(false, ...(ngDevMode ? [{ debugName: "shift" }] : /* istanbul ignore next */ []));
|
|
547
|
+
/** Whether the step sits between the arrows, to be read and pressed. */
|
|
548
|
+
this.showStep = input(true, ...(ngDevMode ? [{ debugName: "showStep" }] : /* istanbul ignore next */ []));
|
|
547
549
|
this.stepMinutes = input(30, ...(ngDevMode ? [{ debugName: "stepMinutes" }] : /* istanbul ignore next */ []));
|
|
548
550
|
/** With timeLayout 'select': minutes between the options. Every minute by default. */
|
|
549
551
|
this.minuteStep = input(1, ...(ngDevMode ? [{ debugName: "minuteStep" }] : /* istanbul ignore next */ []));
|
|
@@ -598,6 +600,7 @@ class DateTimeField {
|
|
|
598
600
|
timeLayout: this.timeLayout(),
|
|
599
601
|
snapMinutes: this.snapMinutes(),
|
|
600
602
|
shift: this.shift(),
|
|
603
|
+
showStep: this.showStep(),
|
|
601
604
|
stepMinutes: this.stepMinutes(),
|
|
602
605
|
minuteStep: this.minuteStep(),
|
|
603
606
|
minTime: this.minTime(),
|
|
@@ -686,7 +689,7 @@ class DateTimeField {
|
|
|
686
689
|
this.formDisabled.set(isDisabled);
|
|
687
690
|
}
|
|
688
691
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: DateTimeField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
689
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.23", type: DateTimeField, isStandalone: true, selector: "tz-datetime-field", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isDateDisabled: { classPropertyName: "isDateDisabled", publicName: "isDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, timeLayout: { classPropertyName: "timeLayout", publicName: "timeLayout", isSignal: true, isRequired: false, transformFunction: null }, snapMinutes: { classPropertyName: "snapMinutes", publicName: "snapMinutes", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, stepMinutes: { classPropertyName: "stepMinutes", publicName: "stepMinutes", isSignal: true, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null }, minTime: { classPropertyName: "minTime", publicName: "minTime", isSignal: true, isRequired: false, transformFunction: null }, maxTime: { classPropertyName: "maxTime", publicName: "maxTime", isSignal: true, isRequired: false, transformFunction: null }, isSlotDisabled: { classPropertyName: "isSlotDisabled", publicName: "isSlotDisabled", isSignal: true, isRequired: false, transformFunction: null }, hour12: { classPropertyName: "hour12", publicName: "hour12", isSignal: true, isRequired: false, transformFunction: null }, defaultTime: { classPropertyName: "defaultTime", publicName: "defaultTime", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, dateStyle: { classPropertyName: "dateStyle", publicName: "dateStyle", isSignal: true, isRequired: false, transformFunction: null }, timeStyle: { classPropertyName: "timeStyle", publicName: "timeStyle", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null }, today: { classPropertyName: "today", publicName: "today", isSignal: true, isRequired: false, transformFunction: null }, renderCell: { classPropertyName: "renderCell", publicName: "renderCell", isSignal: true, isRequired: false, transformFunction: null }, weekNumbers: { classPropertyName: "weekNumbers", publicName: "weekNumbers", isSignal: true, isRequired: false, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: false, transformFunction: null }, valueAs: { classPropertyName: "valueAs", publicName: "valueAs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", opened: "opened", closed: "closed" }, providers: [
|
|
692
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.23", type: DateTimeField, isStandalone: true, selector: "tz-datetime-field", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isDateDisabled: { classPropertyName: "isDateDisabled", publicName: "isDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, timeLayout: { classPropertyName: "timeLayout", publicName: "timeLayout", isSignal: true, isRequired: false, transformFunction: null }, snapMinutes: { classPropertyName: "snapMinutes", publicName: "snapMinutes", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, showStep: { classPropertyName: "showStep", publicName: "showStep", isSignal: true, isRequired: false, transformFunction: null }, stepMinutes: { classPropertyName: "stepMinutes", publicName: "stepMinutes", isSignal: true, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null }, minTime: { classPropertyName: "minTime", publicName: "minTime", isSignal: true, isRequired: false, transformFunction: null }, maxTime: { classPropertyName: "maxTime", publicName: "maxTime", isSignal: true, isRequired: false, transformFunction: null }, isSlotDisabled: { classPropertyName: "isSlotDisabled", publicName: "isSlotDisabled", isSignal: true, isRequired: false, transformFunction: null }, hour12: { classPropertyName: "hour12", publicName: "hour12", isSignal: true, isRequired: false, transformFunction: null }, defaultTime: { classPropertyName: "defaultTime", publicName: "defaultTime", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, dateStyle: { classPropertyName: "dateStyle", publicName: "dateStyle", isSignal: true, isRequired: false, transformFunction: null }, timeStyle: { classPropertyName: "timeStyle", publicName: "timeStyle", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null }, today: { classPropertyName: "today", publicName: "today", isSignal: true, isRequired: false, transformFunction: null }, renderCell: { classPropertyName: "renderCell", publicName: "renderCell", isSignal: true, isRequired: false, transformFunction: null }, weekNumbers: { classPropertyName: "weekNumbers", publicName: "weekNumbers", isSignal: true, isRequired: false, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: false, transformFunction: null }, valueAs: { classPropertyName: "valueAs", publicName: "valueAs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", opened: "opened", closed: "closed" }, providers: [
|
|
690
693
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimeField), multi: true },
|
|
691
694
|
], viewQueries: [{ propertyName: "iconSlot", first: true, predicate: ["icon"], descendants: true, isSignal: true }], ngImport: i0, template: `<span #icon hidden><ng-content select="[tzIcon]" /></span>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
692
695
|
}
|
|
@@ -701,7 +704,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
701
704
|
],
|
|
702
705
|
template: `<span #icon hidden><ng-content select="[tzIcon]" /></span>`,
|
|
703
706
|
}]
|
|
704
|
-
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], isDateDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDateDisabled", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], timeLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLayout", required: false }] }], snapMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapMinutes", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], stepMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinutes", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }], minTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "minTime", required: false }] }], maxTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxTime", required: false }] }], isSlotDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSlotDisabled", required: false }] }], hour12: [{ type: i0.Input, args: [{ isSignal: true, alias: "hour12", required: false }] }], defaultTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultTime", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], mask: [{ type: i0.Input, args: [{ isSignal: true, alias: "mask", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], dateStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateStyle", required: false }] }], timeStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeStyle", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], today: [{ type: i0.Input, args: [{ isSignal: true, alias: "today", required: false }] }], renderCell: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderCell", required: false }] }], weekNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekNumbers", required: false }] }], buttons: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttons", required: false }] }], valueAs: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueAs", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], iconSlot: [{ type: i0.ViewChild, args: ['icon', { isSignal: true }] }] } });
|
|
707
|
+
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], isDateDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDateDisabled", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], timeLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLayout", required: false }] }], snapMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapMinutes", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], showStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStep", required: false }] }], stepMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinutes", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }], minTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "minTime", required: false }] }], maxTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxTime", required: false }] }], isSlotDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSlotDisabled", required: false }] }], hour12: [{ type: i0.Input, args: [{ isSignal: true, alias: "hour12", required: false }] }], defaultTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultTime", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], mask: [{ type: i0.Input, args: [{ isSignal: true, alias: "mask", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], dateStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateStyle", required: false }] }], timeStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeStyle", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], today: [{ type: i0.Input, args: [{ isSignal: true, alias: "today", required: false }] }], renderCell: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderCell", required: false }] }], weekNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekNumbers", required: false }] }], buttons: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttons", required: false }] }], valueAs: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueAs", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], iconSlot: [{ type: i0.ViewChild, args: ['icon', { isSignal: true }] }] } });
|
|
705
708
|
|
|
706
709
|
const EMPTY$3 = { start: null, end: null };
|
|
707
710
|
/**
|
|
@@ -781,11 +784,20 @@ class RangeField {
|
|
|
781
784
|
/** Nothing is reported until Apply is pressed. */
|
|
782
785
|
this.confirm = input(false, ...(ngDevMode ? [{ debugName: "confirm" }] : /* istanbul ignore next */ []));
|
|
783
786
|
/**
|
|
784
|
-
* Arrows that step the whole period without opening the panel.
|
|
785
|
-
*
|
|
786
|
-
*
|
|
787
|
+
* Arrows that step the whole period without opening the panel.
|
|
788
|
+
*
|
|
789
|
+
* `false` — the default — draws none. `true` draws them and follows what is
|
|
790
|
+
* being chosen: an hour for a period, a day when `singleDay` says it is one
|
|
791
|
+
* date. A duration such as `{ months: 3 }` or `'45mn'` imposes the step; a
|
|
792
|
+
* list offers several and lets the reader pick.
|
|
787
793
|
*/
|
|
788
794
|
this.shift = input(false, ...(ngDevMode ? [{ debugName: "shift" }] : /* istanbul ignore next */ []));
|
|
795
|
+
/** Whether the column of shortcuts is drawn. The list itself is kept. */
|
|
796
|
+
this.showPresets = input(true, ...(ngDevMode ? [{ debugName: "showPresets" }] : /* istanbul ignore next */ []));
|
|
797
|
+
/** Whether the step sits between the arrows, to be read and pressed. */
|
|
798
|
+
this.showStep = input(true, ...(ngDevMode ? [{ debugName: "showStep" }] : /* istanbul ignore next */ []));
|
|
799
|
+
/** One field instead of two; a click means that whole day. */
|
|
800
|
+
this.singleDay = input(false, ...(ngDevMode ? [{ debugName: "singleDay" }] : /* istanbul ignore next */ []));
|
|
789
801
|
this.months = input(2, ...(ngDevMode ? [{ debugName: "months" }] : /* istanbul ignore next */ []));
|
|
790
802
|
this.weekNumbers = input(false, ...(ngDevMode ? [{ debugName: "weekNumbers" }] : /* istanbul ignore next */ []));
|
|
791
803
|
/** Left out, the locale decides — see `provideTzslot` to settle it once. */
|
|
@@ -847,6 +859,9 @@ class RangeField {
|
|
|
847
859
|
minuteStep: this.minuteStep(),
|
|
848
860
|
confirm: this.confirm(),
|
|
849
861
|
shift: this.shift(),
|
|
862
|
+
showPresets: this.showPresets(),
|
|
863
|
+
showStep: this.showStep(),
|
|
864
|
+
singleDay: this.singleDay(),
|
|
850
865
|
months: this.months(),
|
|
851
866
|
weekNumbers: this.weekNumbers(),
|
|
852
867
|
firstDayOfWeek: this.firstDayOfWeek(),
|
|
@@ -940,7 +955,7 @@ class RangeField {
|
|
|
940
955
|
this.formDisabled.set(isDisabled);
|
|
941
956
|
}
|
|
942
957
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: RangeField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
943
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.23", type: RangeField, isStandalone: true, selector: "tz-range-field", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueAs: { classPropertyName: "valueAs", publicName: "valueAs", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, presets: { classPropertyName: "presets", publicName: "presets", isSignal: true, isRequired: false, transformFunction: null }, openEnded: { classPropertyName: "openEnded", publicName: "openEnded", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, timeLayout: { classPropertyName: "timeLayout", publicName: "timeLayout", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, defaultTimes: { classPropertyName: "defaultTimes", publicName: "defaultTimes", isSignal: true, isRequired: false, transformFunction: null }, stepMinutes: { classPropertyName: "stepMinutes", publicName: "stepMinutes", isSignal: true, isRequired: false, transformFunction: null }, snapMinutes: { classPropertyName: "snapMinutes", publicName: "snapMinutes", isSignal: true, isRequired: false, transformFunction: null }, maxSpan: { classPropertyName: "maxSpan", publicName: "maxSpan", isSignal: true, isRequired: false, transformFunction: null }, minSpan: { classPropertyName: "minSpan", publicName: "minSpan", isSignal: true, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null }, confirm: { classPropertyName: "confirm", publicName: "confirm", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, months: { classPropertyName: "months", publicName: "months", isSignal: true, isRequired: false, transformFunction: null }, weekNumbers: { classPropertyName: "weekNumbers", publicName: "weekNumbers", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isDateDisabled: { classPropertyName: "isDateDisabled", publicName: "isDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, renderCell: { classPropertyName: "renderCell", publicName: "renderCell", isSignal: true, isRequired: false, transformFunction: null }, today: { classPropertyName: "today", publicName: "today", isSignal: true, isRequired: false, transformFunction: null }, now: { classPropertyName: "now", publicName: "now", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, fieldIcon: { classPropertyName: "fieldIcon", publicName: "fieldIcon", isSignal: true, isRequired: false, transformFunction: null }, fieldIconSide: { classPropertyName: "fieldIconSide", publicName: "fieldIconSide", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", opened: "opened", closed: "closed" }, providers: [
|
|
958
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.23", type: RangeField, isStandalone: true, selector: "tz-range-field", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueAs: { classPropertyName: "valueAs", publicName: "valueAs", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, presets: { classPropertyName: "presets", publicName: "presets", isSignal: true, isRequired: false, transformFunction: null }, openEnded: { classPropertyName: "openEnded", publicName: "openEnded", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, timeLayout: { classPropertyName: "timeLayout", publicName: "timeLayout", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, defaultTimes: { classPropertyName: "defaultTimes", publicName: "defaultTimes", isSignal: true, isRequired: false, transformFunction: null }, stepMinutes: { classPropertyName: "stepMinutes", publicName: "stepMinutes", isSignal: true, isRequired: false, transformFunction: null }, snapMinutes: { classPropertyName: "snapMinutes", publicName: "snapMinutes", isSignal: true, isRequired: false, transformFunction: null }, maxSpan: { classPropertyName: "maxSpan", publicName: "maxSpan", isSignal: true, isRequired: false, transformFunction: null }, minSpan: { classPropertyName: "minSpan", publicName: "minSpan", isSignal: true, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null }, confirm: { classPropertyName: "confirm", publicName: "confirm", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, showPresets: { classPropertyName: "showPresets", publicName: "showPresets", isSignal: true, isRequired: false, transformFunction: null }, showStep: { classPropertyName: "showStep", publicName: "showStep", isSignal: true, isRequired: false, transformFunction: null }, singleDay: { classPropertyName: "singleDay", publicName: "singleDay", isSignal: true, isRequired: false, transformFunction: null }, months: { classPropertyName: "months", publicName: "months", isSignal: true, isRequired: false, transformFunction: null }, weekNumbers: { classPropertyName: "weekNumbers", publicName: "weekNumbers", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, isDateDisabled: { classPropertyName: "isDateDisabled", publicName: "isDateDisabled", isSignal: true, isRequired: false, transformFunction: null }, renderCell: { classPropertyName: "renderCell", publicName: "renderCell", isSignal: true, isRequired: false, transformFunction: null }, today: { classPropertyName: "today", publicName: "today", isSignal: true, isRequired: false, transformFunction: null }, now: { classPropertyName: "now", publicName: "now", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, fieldIcon: { classPropertyName: "fieldIcon", publicName: "fieldIcon", isSignal: true, isRequired: false, transformFunction: null }, fieldIconSide: { classPropertyName: "fieldIconSide", publicName: "fieldIconSide", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, mask: { classPropertyName: "mask", publicName: "mask", isSignal: true, isRequired: false, transformFunction: null }, displayWith: { classPropertyName: "displayWith", publicName: "displayWith", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", opened: "opened", closed: "closed" }, providers: [
|
|
944
959
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangeField), multi: true },
|
|
945
960
|
], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
946
961
|
}
|
|
@@ -955,7 +970,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
955
970
|
],
|
|
956
971
|
template: '',
|
|
957
972
|
}]
|
|
958
|
-
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueAs: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueAs", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }], openEnded: [{ type: i0.Input, args: [{ isSignal: true, alias: "openEnded", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], timeLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLayout", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], defaultTimes: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultTimes", required: false }] }], stepMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinutes", required: false }] }], snapMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapMinutes", required: false }] }], maxSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSpan", required: false }] }], minSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSpan", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }], confirm: [{ type: i0.Input, args: [{ isSignal: true, alias: "confirm", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], months: [{ type: i0.Input, args: [{ isSignal: true, alias: "months", required: false }] }], weekNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekNumbers", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], isDateDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDateDisabled", required: false }] }], renderCell: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderCell", required: false }] }], today: [{ type: i0.Input, args: [{ isSignal: true, alias: "today", required: false }] }], now: [{ type: i0.Input, args: [{ isSignal: true, alias: "now", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], fieldIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldIcon", required: false }] }], fieldIconSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldIconSide", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], mask: [{ type: i0.Input, args: [{ isSignal: true, alias: "mask", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
973
|
+
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueAs: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueAs", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], presets: [{ type: i0.Input, args: [{ isSignal: true, alias: "presets", required: false }] }], openEnded: [{ type: i0.Input, args: [{ isSignal: true, alias: "openEnded", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], timeLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeLayout", required: false }] }], showTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTime", required: false }] }], defaultTimes: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultTimes", required: false }] }], stepMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinutes", required: false }] }], snapMinutes: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapMinutes", required: false }] }], maxSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSpan", required: false }] }], minSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "minSpan", required: false }] }], minuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "minuteStep", required: false }] }], confirm: [{ type: i0.Input, args: [{ isSignal: true, alias: "confirm", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], showPresets: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPresets", required: false }] }], showStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStep", required: false }] }], singleDay: [{ type: i0.Input, args: [{ isSignal: true, alias: "singleDay", required: false }] }], months: [{ type: i0.Input, args: [{ isSignal: true, alias: "months", required: false }] }], weekNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "weekNumbers", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], isDateDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDateDisabled", required: false }] }], renderCell: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderCell", required: false }] }], today: [{ type: i0.Input, args: [{ isSignal: true, alias: "today", required: false }] }], now: [{ type: i0.Input, args: [{ isSignal: true, alias: "now", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], fieldIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldIcon", required: false }] }], fieldIconSide: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldIconSide", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], mask: [{ type: i0.Input, args: [{ isSignal: true, alias: "mask", required: false }] }], displayWith: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayWith", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
959
974
|
|
|
960
975
|
const EMPTY$2 = { start: null, end: null };
|
|
961
976
|
/** `<tz-date-range>` — the range from @tzslot/dom, spoken in Angular. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tzslot-angular.mjs","sources":["../../src/messages.ts","../../src/defaults.ts","../../src/time-slot-picker.ts","../../src/shapes.ts","../../src/calendar.ts","../../src/date-field.ts","../../src/datetime-field.ts","../../src/range-field.ts","../../src/date-range.ts","../../src/datetime-range.ts","../../src/daily-range.ts","../../src/multi-date.ts","../../src/index.ts","../../src/tzslot-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { EN, type TzslotMessages } from '@tzslot/dom';\n\n/**\n * The words themselves live in @tzslot/dom, which every wrapper shares. Angular\n * only adds the way to provide them once for a whole application.\n */\nexport { EN, FR } from '@tzslot/dom';\nexport type { TzslotMessages } from '@tzslot/dom';\n\nexport const TZSLOT_MESSAGES = new InjectionToken<TzslotMessages>('tzslot.messages', {\n providedIn: 'root',\n factory: () => EN,\n});\n\n/** `providers: [provideTzslotMessages(FR)]` */\nexport function provideTzslotMessages(messages: TzslotMessages) {\n return { provide: TZSLOT_MESSAGES, useValue: messages };\n}\n","import { InjectionToken } from '@angular/core';\nimport type { ValueShape } from '@tzslot/core';\nimport type { TzslotMessages } from '@tzslot/dom';\nimport type { Weekday } from '@tzslot/core';\nimport { TZSLOT_MESSAGES } from './messages.js';\n\n/**\n * The conventions an application settles once.\n *\n * A zone, a locale, the shape values leave in: these are decisions about the\n * application, not about the field. Repeating them on every tag is how one\n * screen ends up handing a `Date` to a back end that stores instants, and how\n * a reviewer has to read every template to find out which one.\n *\n * Anything set on a component still wins — this is the default, not the law.\n */\nexport interface TzslotDefaults {\n /**\n * What every component that holds a moment or a day hands to its form\n * control. `'utc'` is the useful one here: an instant, written as an ISO\n * string ending in Z, whatever the widget is. A date-only field gives the\n * midnight that opens that day in `timeZone`, so a back end that stores\n * instants gets one from it too.\n *\n * `<tz-daily-range>` is the exception, and not an oversight: its value is a\n * *pattern* — two days and two clock faces repeated over them — which is\n * not a moment and has no UTC form. It always hands out Temporal objects.\n */\n readonly valueAs?: ValueShape;\n /**\n * The IANA zone the screen is read in — and the one a day is turned into a\n * moment on. Components that take a `timeZone` of their own use this when\n * none is given.\n */\n readonly timeZone?: string;\n readonly locale?: string;\n readonly firstDayOfWeek?: Weekday;\n /** The words. The same thing `provideTzslotMessages` does, in one call. */\n readonly messages?: TzslotMessages;\n}\n\nexport const TZSLOT_DEFAULTS = new InjectionToken<TzslotDefaults>('tzslot.defaults', {\n providedIn: 'root',\n factory: () => ({}),\n});\n\n/**\n * `providers: [provideTzslot({ valueAs: 'utc', timeZone: 'Europe/Paris' })]`\n *\n * In an application: `bootstrapApplication(App, { providers: [provideTzslot({ … })] })`.\n */\nexport function provideTzslot(defaults: TzslotDefaults) {\n const providers: { provide: unknown; useValue: unknown }[] = [\n { provide: TZSLOT_DEFAULTS, useValue: defaults },\n ];\n if (defaults.messages) providers.push({ provide: TZSLOT_MESSAGES, useValue: defaults.messages });\n return providers;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toInstant, fromInstant } from '@tzslot/core';\nimport type { Instant, InstantLike, PlainDate, Slot, ValueShape } from '@tzslot/core';\nimport {\n createTimeSlots,\n getSlotChoices,\n type SlotChoice,\n type TimeSlotsInstance,\n type TimeSlotsSettings,\n} from '@tzslot/dom';\n\nexport type { SlotChoice } from '@tzslot/dom';\n\n/**\n * `<tz-time-slots>` — the slot list from @tzslot/dom, spoken in Angular.\n *\n * What it selects is an `Instant`, never a wall time. A wall time is what a\n * clock shows; an instant is when it happened. Only one of those can be stored.\n */\n@Component({\n selector: 'tz-time-slots',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimeSlotPicker), multi: true },\n ],\n template: '',\n})\nexport class TimeSlotPicker implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n /** The day to list, as a PlainDate or an ISO date string. */\n /**\n * What the form control holds. `'utc'` gives an ISO string; the default\n * gives an Instant.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n readonly date = input.required<PlainDate | string>();\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n readonly stepMinutes = input(30);\n\n /** The working day. Slots outside these bounds are not produced at all. */\n readonly minTime = input<string | undefined>(undefined);\n readonly maxTime = input<string | undefined>(undefined);\n\n /** Rules out individual slots while still showing them: booked, over capacity. */\n readonly isDisabled = input<((slot: Omit<Slot, 'disabled'>) => boolean) | undefined>(undefined);\n\n /** Leave out the times that cannot happen, rather than showing them struck through. */\n readonly skipNonExistent = input(false);\n\n readonly disabled = input(false);\n\n /** What is selected, as a moment. Two-way: `[(value)]`. */\n readonly value = model<Instant | null>(null);\n\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly missingLabel = input<string | undefined>(undefined);\n readonly emptyLabel = input<string | undefined>(undefined);\n\n /** The rows listed, one per selectable moment: an ambiguous time gives two. */\n readonly choices = computed<SlotChoice[]>(() =>\n getSlotChoices(this.date(), this.timeZone(), {\n stepMinutes: this.stepMinutes(),\n skipNonExistent: this.skipNonExistent(),\n ...(this.minTime() !== undefined ? { minTime: this.minTime()! } : {}),\n ...(this.maxTime() !== undefined ? { maxTime: this.maxTime()! } : {}),\n ...(this.isDisabled() !== undefined ? { isDisabled: this.isDisabled()! } : {}),\n }),\n );\n\n protected readonly formDisabled = signal(false);\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<TimeSlotsSettings>>(() => ({\n date: this.date(),\n timeZone: this.timeZone(),\n stepMinutes: this.stepMinutes(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n isDisabled: this.isDisabled(),\n skipNonExistent: this.skipNonExistent(),\n disabled: this.disabled() || this.formDisabled(),\n value: this.value(),\n ariaLabel: this.ariaLabel(),\n missingLabel: this.missingLabel(),\n emptyLabel: this.emptyLabel(),\n messages: this.messages,\n }));\n\n /**\n * Created empty: `date` and `timeZone` are required inputs, which cannot be\n * read before they are bound. The first change detection fills it in.\n */\n private readonly slots: TimeSlotsInstance = createTimeSlots(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (instant) => {\n this.value.set(instant);\n this.onChange(instant);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.slots.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.slots.destroy());\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.slots.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: Instant | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n /** Typed `unknown`: a form holds what the application put there. */\n writeValue(value: unknown): void {\n this.value.set(value === null || value === undefined ? null : toInstant(value as InstantLike));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (next) => fn(fromInstant(next, this.valueAs()));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import { toInstant, fromInstant } from '@tzslot/core';\nimport type { Instant, InstantLike, ValueShape } from '@tzslot/core';\n\n/**\n * A period, as a form holds it.\n *\n * The single-value components have spoken `valueAs` since the beginning; the\n * ones holding two moments did not, so `provideTzslot({ valueAs: 'utc' })`\n * gave ISO strings from one tag and Temporal objects from the one beside it.\n * Worse, their `writeValue` was typed as if a form could only ever contain\n * the library's own objects, and threw on the ISO string a real back end\n * sends.\n */\nexport interface MomentPair<T> {\n readonly start: T | null;\n readonly end: T | null;\n}\n\n/** Whatever the form holds, as two moments. */\nexport function pairIn(value: unknown): MomentPair<Instant> {\n if (value === null || value === undefined) return { start: null, end: null };\n const given = value as { start?: unknown; end?: unknown };\n const one = (at: unknown): Instant | null =>\n at === null || at === undefined ? null : toInstant(at as InstantLike);\n return { start: one(given.start), end: one(given.end) };\n}\n\n/** And back out, in the shape the application asked for. */\nexport function pairOut<Extra extends object>(\n pair: MomentPair<Instant>,\n shape: ValueShape,\n extra: Extra,\n): Extra & { start: unknown; end: unknown } {\n return {\n ...extra,\n start: fromInstant(pair.start, shape),\n end: fromInstant(pair.end, shape),\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n type OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toPlainDate, fromPlainDate } from '@tzslot/core';\nimport type { PlainDate, Weekday, ValueShape, DateLike } from '@tzslot/core';\nimport {\n createCalendar,\n type CalendarButton,\n type CalendarInstance,\n type CalendarSettings,\n type RenderCell,\n type CalendarView,\n type YearMonth,\n} from '@tzslot/dom';\n\nexport type { CalendarView } from '@tzslot/dom';\n\n/**\n * `<tz-calendar>` — the calendar from @tzslot/dom, spoken in Angular.\n *\n * Everything the user sees and does is drawn by `createCalendar`. This class\n * only translates: inputs and models into `update()`, the calendar's callbacks\n * into `valueChange` and form notifications, projected content into icons.\n */\n@Component({\n selector: 'tz-calendar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Calendar), multi: true },\n ],\n // The slots only collect projected icons; the calendar moves them into its\n // buttons and the slots stay empty and hidden.\n template: `\n <span #prev hidden><ng-content select=\"[tzPrev]\" /></span>\n <span #next hidden><ng-content select=\"[tzNext]\" /></span>\n `,\n})\nexport class Calendar implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n /** The selected day. Two-way: `[(value)]`. */\n readonly value = model<PlainDate | null>(null);\n\n /** Monday by default, as ISO-8601 numbers the week. */\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n\n /** A BCP-47 tag for the month and weekday names. Defaults to the browser's. */\n readonly locale = input<string | undefined>(this.defaults.locale);\n\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly disabled = input(false);\n\n /**\n * What the form control holds. 'temporal' by default; 'date' lets an\n * existing FormControl<Date> keep working untouched, which is the whole of a\n * flatpickr migration on most screens.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n /**\n * The zone used to turn a Date into a calendar day and back. Only consulted\n * when valueAs is 'date': which day an instant falls on depends on where you\n * are standing, so it is explicit rather than guessed.\n */\n readonly valueTimeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n /** Rules out individual days inside the range: closures, weekends, full days. */\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n /** Today, injectable so a test does not depend on the day it runs. */\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n\n /**\n * Which level the grid is choosing between. A model, so a consumer can open\n * straight on years — a birthdate picker should not start on this month.\n */\n readonly view = model<CalendarView>('days');\n\n /** 'months' turns this into a month picker, 'years' into a year picker. */\n readonly minView = input<CalendarView>('days');\n\n /** Adds to each day: a price, places left, a class, a reason to rule it out. */\n readonly renderCell = input<RenderCell | undefined>(undefined);\n\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n /** Buttons under the grid: `['today', 'clear']`. None by default. */\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly prevSlot = viewChild.required<ElementRef<HTMLElement>>('prev');\n private readonly nextSlot = viewChild.required<ElementRef<HTMLElement>>('next');\n protected readonly formDisabled = signal(false);\n\n private readonly settings = computed<Partial<CalendarSettings>>(() => ({\n value: this.value(),\n view: this.view(),\n minView: this.minView(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n disabled: this.disabled() || this.formDisabled(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n /**\n * Drawn at construction, so the cells exist as soon as the component does —\n * as they did when this was a template. Inputs are not bound yet at this\n * point; the effect below brings them in on the first change detection.\n */\n private readonly calendar: CalendarInstance = createCalendar(this.host, {\n ...untracked(this.settings),\n onChange: (date) => {\n this.value.set(date);\n this.onChange(date);\n this.onTouched();\n },\n onViewChange: (view) => this.view.set(view),\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.calendar.update(settings));\n });\n }\n\n /** Projected content only exists once the view does. */\n ngAfterViewInit(): void {\n this.calendar.setIcons({\n prev: this.projected(this.prevSlot()),\n next: this.projected(this.nextSlot()),\n });\n }\n\n ngOnDestroy(): void {\n this.calendar.destroy();\n }\n\n /** Moves the grid without selecting anything — flatpickr's setViewDate. */\n goTo(date: PlainDate | YearMonth): void {\n this.calendar.goTo({ year: date.year, month: date.month });\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.calendar.clear();\n }\n\n /** Whatever was projected into a slot, or undefined so the default chevron stays. */\n private projected(slot: ElementRef<HTMLElement>): DocumentFragment | undefined {\n const nodes = Array.from(slot.nativeElement.childNodes);\n if (!nodes.some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) return undefined;\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: PlainDate | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: DateLike | null): void {\n this.value.set(value === null || value === undefined ? null : toPlainDate(value, this.valueTimeZone()));\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (date) => fn(fromPlainDate(date, this.valueAs(), this.valueTimeZone()));\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toPlainDate, fromPlainDate } from '@tzslot/core';\nimport type { PlainDate, Weekday, ValueShape, DateLike } from '@tzslot/core';\nimport {\n createDateField,\n type CalendarButton,\n type DateFieldInstance,\n type DateFieldSettings,\n type RenderCell,\n type FieldMode,\n} from '@tzslot/dom';\n\nexport type { FieldMode } from '@tzslot/dom';\n\n/**\n * `<tz-date-field>` — the field from @tzslot/dom, spoken in Angular.\n *\n * The trigger, the panel, its position, focus and theme are all drawn by\n * `createDateField`. This class maps inputs to `update()`, callbacks to\n * `valueChange`, `opened`, `closed` and form notifications, and a projected\n * `[tzIcon]` to the field's icon.\n */\n@Component({\n selector: 'tz-date-field',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateField), multi: true },\n ],\n template: `<span #icon hidden><ng-content select=\"[tzIcon]\" /></span>`,\n})\nexport class DateField implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<PlainDate | null>(null);\n readonly mode = input<FieldMode>('popup');\n readonly placeholder = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(this.defaults.locale);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly disabled = input(false);\n\n /**\n * What the form control holds. 'temporal' by default; 'date' lets an\n * existing FormControl<Date> keep working untouched, which is the whole of a\n * flatpickr migration on most screens.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n /**\n * The zone used to turn a Date into a calendar day and back. Only consulted\n * when valueAs is 'date': which day an instant falls on depends on where you\n * are standing, so it is explicit rather than guessed.\n */\n readonly valueTimeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n /** How the chosen date is written in the field. Defaults to the locale's medium form. */\n readonly displayWith = input<((date: PlainDate) => string) | undefined>(undefined);\n\n /** Passed to the calendar in the panel. */\n readonly renderCell = input<RenderCell | undefined>(undefined);\n\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n /** Under the panel's grid: `['today', 'clear']`. Choosing either closes it. */\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n /** Whether the panel is showing. Readable from a ViewChild. */\n readonly isOpen = signal(false);\n protected readonly formDisabled = signal(false);\n /** Set while the component is being destroyed, so no output fires after it. */\n private gone = false;\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly iconSlot = viewChild.required<ElementRef<HTMLElement>>('icon');\n\n private readonly settings = computed<Partial<DateFieldSettings>>(() => ({\n value: this.value(),\n mode: this.mode(),\n placeholder: this.placeholder(),\n ariaLabel: this.ariaLabel(),\n locale: this.locale(),\n firstDayOfWeek: this.firstDayOfWeek(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n disabled: this.disabled() || this.formDisabled(),\n displayWith: this.displayWith(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n private readonly field: DateFieldInstance = createDateField(this.host, {\n ...untracked(this.settings),\n onChange: (date) => {\n this.value.set(date);\n this.onChange(date);\n },\n onOpen: () => {\n this.isOpen.set(true);\n this.onTouched();\n if (!this.gone) this.opened.emit();\n },\n onClose: () => {\n this.isOpen.set(false);\n // Destroying the component closes its panel; an output that fires then\n // is an emit on a destroyed ref (NG0953), and nothing is listening.\n if (!this.gone) this.closed.emit();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.field.update(settings));\n });\n inject(DestroyRef).onDestroy(() => {\n this.gone = true;\n this.field.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n const slot = this.iconSlot().nativeElement;\n if (Array.from(slot.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) {\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...Array.from(slot.childNodes));\n this.field.setIcon(fragment);\n }\n }\n\n /**\n * Opening and closing are public so a ViewChild can drive the field — a\n * button elsewhere on the page, a wizard step, a keyboard shortcut.\n */\n toggle(): void {\n this.field.toggle();\n }\n\n /** No-op when already open. */\n open(): void {\n this.field.open();\n }\n\n close(): void {\n this.field.close();\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.field.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: PlainDate | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: DateLike | null): void {\n this.value.set(value === null || value === undefined ? null : toPlainDate(value, this.valueTimeZone()));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (date) => fn(fromPlainDate(date, this.valueAs(), this.valueTimeZone()));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n\n/** Kept here so the type is reachable without importing Temporal separately. */\nexport type { PlainDate as DateFieldValue };\nexport { Temporal };\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toInstant, fromInstant } from '@tzslot/core';\nimport type {\n DurationLike,\n ShiftOption,\n Instant,\n InstantLike,\n PlainDate,\n PlainTime,\n Slot,\n ValueShape,\n Weekday,\n} from '@tzslot/core';\nimport {\n createDateTimeField,\n type CalendarButton,\n type DateTimeFieldInstance,\n type DateTimeFieldSettings,\n type FieldMode,\n type RenderCell,\n type TimeLayout,\n} from '@tzslot/dom';\n\n/**\n * `<tz-datetime-field>` — a field that opens a calendar and a time, from\n * @tzslot/dom, spoken in Angular.\n *\n * Its value is an Instant, so it says which moment was meant even when the\n * clock face does not: a time the zone skips is moved on and explained, and\n * one that happens twice is offered by its two offsets rather than guessed.\n */\n@Component({\n selector: 'tz-datetime-field',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimeField), multi: true },\n ],\n template: `<span #icon hidden><ng-content select=\"[tzIcon]\" /></span>`,\n})\nexport class DateTimeField implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<Instant | null>(null);\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n readonly mode = input<FieldMode>('popup');\n readonly placeholder = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(this.defaults.locale);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n /** 'input' (default) for a compact time field, 'list' for the day's times. */\n /**\n * Whether a time is asked for at all. False leaves a field that chooses a\n * day and holds the moment it starts.\n */\n readonly showTime = input(true);\n readonly timeLayout = input<TimeLayout>('input');\n /**\n * Move a typed time to the nearest mark of this grid — 15 for quarter-hour\n * appointments, ties upward. Off by default: a screen that accepts any\n * minute must not have them quietly moved.\n */\n readonly snapMinutes = input<number | null>(null);\n /**\n * Arrows beside the field that step the chosen moment without opening the\n * panel: `{ hours: 1 }`, `{ days: 1 }`. `false` — the default — draws none.\n * Counted on the zone's clocks, so a day is 23 or 25 hours when they change.\n */\n readonly shift = input<DurationLike | readonly ShiftOption[] | false>(false);\n readonly stepMinutes = input(30);\n /** With timeLayout 'select': minutes between the options. Every minute by default. */\n readonly minuteStep = input(1);\n readonly minTime = input<PlainTime | string | undefined>(undefined);\n readonly maxTime = input<PlainTime | string | undefined>(undefined);\n /** Only with timeLayout 'list': rules out slots while still showing them. */\n readonly isSlotDisabled = input<((slot: Omit<Slot, 'disabled'>) => boolean) | undefined>(undefined);\n readonly hour12 = input<boolean | undefined>(undefined);\n\n /** The time a newly chosen day starts at. Midnight by default. */\n readonly defaultTime = input<PlainTime | string>('00:00');\n\n readonly disabled = input(false);\n\n /** The text can be typed as well as chosen. On by default. */\n readonly editable = input(true);\n\n /** Separators appear as the figures are typed, like a card number. On by default. */\n readonly mask = input(true);\n\n /** A pattern — `yyyy-MM-dd HH:mm` — when the shape matters more than the reader. */\n readonly format = input<string | undefined>(undefined);\n\n /** Used when the field is not typable and no pattern is given. */\n readonly dateStyle = input<'full' | 'long' | 'medium' | 'short'>('medium');\n readonly timeStyle = input<'full' | 'long' | 'medium' | 'short'>('short');\n\n /** The last word on the text. Given both, this one wins. */\n readonly displayWith = input<((value: Instant, timeZone: string) => string) | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly renderCell = input<RenderCell | undefined>(undefined);\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n /** What the form control holds: a Temporal Instant, a Date, or an ISO string. */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n /** Whether the panel is showing. Readable from a ViewChild. */\n readonly isOpen = signal(false);\n protected readonly formDisabled = signal(false);\n /** Set while the component is being destroyed, so no output fires after it. */\n private gone = false;\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly iconSlot = viewChild.required<ElementRef<HTMLElement>>('icon');\n\n private readonly settings = computed<Partial<DateTimeFieldSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n mode: this.mode(),\n placeholder: this.placeholder(),\n ariaLabel: this.ariaLabel(),\n locale: this.locale(),\n firstDayOfWeek: this.firstDayOfWeek(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n showTime: this.showTime(),\n timeLayout: this.timeLayout(),\n snapMinutes: this.snapMinutes(),\n shift: this.shift(),\n stepMinutes: this.stepMinutes(),\n minuteStep: this.minuteStep(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n isSlotDisabled: this.isSlotDisabled(),\n hour12: this.hour12(),\n defaultTime: this.defaultTime(),\n disabled: this.disabled() || this.formDisabled(),\n editable: this.editable(),\n mask: this.mask(),\n format: this.format(),\n dateStyle: this.dateStyle(),\n timeStyle: this.timeStyle(),\n displayWith: this.displayWith(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly field: DateTimeFieldInstance = createDateTimeField(this.host, {\n messages: this.messages,\n onChange: (value) => {\n this.value.set(value);\n this.onChange(value);\n },\n onOpen: () => {\n this.isOpen.set(true);\n this.onTouched();\n if (!this.gone) this.opened.emit();\n },\n onClose: () => {\n this.isOpen.set(false);\n // Destroying the component closes its panel; an output that fires then\n // is an emit on a destroyed ref (NG0953), and nothing is listening.\n if (!this.gone) this.closed.emit();\n },\n });\n\n constructor() {\n effect(() => {\n const settings = this.settings();\n untracked(() => this.field.update(settings));\n });\n inject(DestroyRef).onDestroy(() => {\n this.gone = true;\n this.field.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n const slot = this.iconSlot().nativeElement;\n if (Array.from(slot.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) {\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...Array.from(slot.childNodes));\n this.field.setIcon(fragment);\n }\n }\n\n toggle(): void {\n this.field.toggle();\n }\n /** No-op when already open. */\n open(): void {\n this.field.open();\n }\n close(): void {\n this.field.close();\n }\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.field.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: Instant | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: InstantLike | null): void {\n this.value.set(value === null || value === undefined ? null : toInstant(value));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (value) => fn(fromInstant(value, this.valueAs()));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { PlainDate, PresetName, ValueShape, Weekday } from '@tzslot/core';\nimport { pairIn, pairOut } from './shapes.js';\nimport {\n createRangeField,\n type FieldMode,\n type RangeFieldInstance,\n type RangeFieldSettings,\n type RangeFieldValue,\n type RangePreset,\n type RenderCell,\n} from '@tzslot/dom';\n\nimport type { DurationLike, Instant, PlainTime, ShiftOption, ShiftStep } from '@tzslot/core';\n\nexport type { RangeFieldValue, RangePreset } from '@tzslot/dom';\n\nconst EMPTY: RangeFieldValue = { start: null, end: null };\n\n/**\n * `<tz-range-field>` — one field for a period, from @tzslot/dom, spoken in\n * Angular. Named ranges beside the calendar, months side by side, and whole\n * days or moments.\n */\n@Component({\n selector: 'tz-range-field',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangeField), multi: true },\n ],\n template: '',\n})\nexport class RangeField implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<RangeFieldValue>(EMPTY);\n\n /**\n * What the form control holds. `'utc'` gives two ISO strings; the default\n * gives the library's own moments. Settled for a whole application with\n * provideTzslot(), which documents it as applying to every component — and\n * this one did not listen.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n /** Named ranges beside the calendar: the built-in names, or your own. */\n readonly presets = input<readonly (PresetName | RangePreset)[]>([\n 'thisQuarterHour',\n 'lastHour',\n 'thisHour',\n 'nextHour',\n 'yesterday',\n 'today',\n 'tomorrow',\n 'last7Days',\n 'thisMonth',\n 'thisQuarter',\n ]);\n\n /**\n * Lets a period stop at one end — \"from 14 September\", \"until the 20th\".\n * The panel then offers Between / From / Until, and each chosen end can be\n * dropped with the cross beside it. Off by default: a booking form must not\n * accept a period with no end.\n */\n readonly openEnded = input(false);\n /** A word or two saying what is being chosen — \"Travel dates\". */\n readonly title = input<string | undefined>(undefined);\n /** How an hour is asked for: two menus (default), or figures with arrows. */\n readonly timeLayout = input<'input' | 'select'>('select');\n /**\n * Whether the period carries times as well as days — the screen's decision,\n * not the reader's. There is no \"all day\" switch: on, every chosen day\n * starts at `defaultTimes`.\n */\n readonly showTime = input(false);\n /**\n * The hours a newly chosen day is given: midnight unless the screen knows\n * better — `{ start: '09:00', end: '18:00' }` for a working day. A value\n * handed to the field keeps its own hours.\n */\n readonly defaultTimes = input<{ start?: PlainTime | string; end?: PlainTime | string }>({});\n readonly stepMinutes = input(30);\n /**\n * Move a time typed by hand to the nearest mark of this grid — 15 for\n * quarter-hour appointments, ties upward. Off by default.\n */\n readonly snapMinutes = input<number | null>(null);\n /**\n * How long the period may be, and how short — `'30d'`, `{ hours: 2 }`.\n * Moving one end pushes the other rather than refusing the move.\n */\n readonly maxSpan = input<DurationLike | null>(null);\n readonly minSpan = input<DurationLike | null>(null);\n /** Minutes between the options of the hour menu. Five by default. */\n readonly minuteStep = input(5);\n /** Nothing is reported until Apply is pressed. */\n readonly confirm = input(false);\n /**\n * Arrows that step the whole period without opening the panel. `false` —\n * the default — draws none. `'auto'` moves by what is selected; a duration\n * such as `{ months: 3 }` imposes the step.\n */\n readonly shift = input<ShiftStep | readonly ShiftOption[] | false>(false);\n readonly months = input(2);\n readonly weekNumbers = input(false);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly mode = input<FieldMode>('popup');\n readonly placeholder = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly renderCell = input<RenderCell | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n /** The moment the shortcuts shorter than a day are counted from. The clock by default. */\n readonly now = input<Instant | null>(null);\n /**\n * The whole field, or one end of it: `{ end: true }` for a period whose end\n * the screen works out itself. A locked end is read-only rather than\n * disabled — still readable, still reachable by the keyboard.\n */\n readonly disabled = input<boolean | { start?: boolean; end?: boolean }>(false);\n /** A pattern for each end — `yyyy-MM-dd`. */\n readonly format = input<string | undefined>(undefined);\n /**\n * What is written above the panel's two fields, and between them. Words by\n * default; `{ start: null, end: null, between: '»' }` for a screen that\n * prefers a mark. A DOM node is taken as it is.\n */\n /**\n * The mark inside the panel's two fields — a calendar by default, `null`\n * for none, or a node of your own.\n */\n readonly fieldIcon = input<Node | string | null | undefined>(undefined);\n readonly fieldIconSide = input<'start' | 'end'>('start');\n readonly labels = input<{\n start?: Node | string | null;\n end?: Node | string | null;\n between?: Node | string | null;\n }>({});\n /** Separators appear as figures are typed in those fields. */\n readonly mask = input(true);\n readonly displayWith = input<((value: RangeFieldValue, timeZone: string) => string) | undefined>(undefined);\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n /** Whether the panel is showing. Readable from a ViewChild. */\n readonly isOpen = signal(false);\n protected readonly formDisabled = signal(false);\n private gone = false;\n\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<RangeFieldSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n presets: this.presets(),\n openEnded: this.openEnded(),\n title: this.title(),\n timeLayout: this.timeLayout(),\n showTime: this.showTime(),\n defaultTimes: this.defaultTimes(),\n stepMinutes: this.stepMinutes(),\n snapMinutes: this.snapMinutes(),\n maxSpan: this.maxSpan(),\n minSpan: this.minSpan(),\n minuteStep: this.minuteStep(),\n confirm: this.confirm(),\n shift: this.shift(),\n months: this.months(),\n weekNumbers: this.weekNumbers(),\n firstDayOfWeek: this.firstDayOfWeek(),\n mode: this.mode(),\n placeholder: this.placeholder(),\n ariaLabel: this.ariaLabel(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n renderCell: this.renderCell(),\n today: this.today(),\n now: this.now(),\n // A form disabling the control wins over a per-end lock: it means the\n // whole thing is out of play, not that one end of it is.\n disabled: this.formDisabled() ? true : this.disabled(),\n format: this.format(),\n labels: this.labels(),\n fieldIcon: this.fieldIcon(),\n fieldIconSide: this.fieldIconSide(),\n mask: this.mask(),\n displayWith: this.displayWith(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly field: RangeFieldInstance = createRangeField(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (value) => {\n this.value.set(value);\n this.onChange(value);\n this.onTouched();\n },\n onOpen: () => {\n this.isOpen.set(true);\n if (!this.gone) this.opened.emit();\n },\n onClose: () => {\n this.isOpen.set(false);\n if (!this.gone) this.closed.emit();\n },\n });\n\n constructor() {\n effect(() => {\n const settings = this.settings();\n untracked(() => this.field.update(settings));\n });\n inject(DestroyRef).onDestroy(() => {\n this.gone = true;\n this.field.destroy();\n });\n }\n\n open(): void {\n this.field.open();\n }\n close(): void {\n this.field.close();\n }\n toggle(): void {\n this.field.toggle();\n }\n /** Empties the period and tells any form control about it. */\n clear(): void {\n this.field.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: RangeFieldValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n /**\n * Typed `unknown` because that is what a form control holds: a string from\n * a back end, a Date from older code, or the library's own objects. It was\n * typed `RangeFieldValue | null` and threw on the first of those.\n */\n writeValue(value: unknown): void {\n if (value === null || value === undefined) {\n this.value.set(EMPTY);\n return;\n }\n // Two moments, nothing else. An allDay a form still carries is ignored:\n // whether a period is whole days is read off the moments themselves.\n const pair = pairIn(value);\n this.value.set({ start: pair.start, end: pair.end });\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (next) => fn(pairOut(next, this.valueAs(), {}));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { PlainDate, Weekday } from '@tzslot/core';\nimport {\n createDateRange,\n type DateRangeInstance,\n type DateRangeSettings,\n type DateRangeValue,\n type RenderCell,\n} from '@tzslot/dom';\n\nexport type { DateRangeValue } from '@tzslot/dom';\n\nconst EMPTY: DateRangeValue = { start: null, end: null };\n\n/** `<tz-date-range>` — the range from @tzslot/dom, spoken in Angular. */\n@Component({\n selector: 'tz-date-range',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRange), multi: true },\n ],\n template: `\n <span #prev hidden><ng-content select=\"[tzPrev]\" /></span>\n <span #next hidden><ng-content select=\"[tzNext]\" /></span>\n `,\n})\nexport class DateRange implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<DateRangeValue>(EMPTY);\n\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly disabled = input(false);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n\n /** Refuse a range that steps over a day isDateDisabled rules out. On by default. */\n readonly blockAcrossDisabled = input(true);\n\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n /** How many months to show side by side. Two is what most ranges want. */\n readonly months = input(1);\n\n /** Adds to each day: a price per night, places left, a class of your own. */\n readonly renderCell = input<RenderCell | undefined>(undefined);\n\n /** Overrides the bundle for this one instance. */\n readonly rangeSpansBlockedMessage = input<string | undefined>(undefined);\n\n protected readonly formDisabled = signal(false);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly prevSlot = viewChild.required<ElementRef<HTMLElement>>('prev');\n private readonly nextSlot = viewChild.required<ElementRef<HTMLElement>>('next');\n\n private readonly settings = computed<Partial<DateRangeSettings>>(() => ({\n value: this.value(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n disabled: this.disabled() || this.formDisabled(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n blockAcrossDisabled: this.blockAcrossDisabled(),\n rangeSpansBlockedMessage: this.rangeSpansBlockedMessage(),\n renderCell: this.renderCell(),\n weekNumbers: this.weekNumbers(),\n months: this.months(),\n messages: this.messages,\n }));\n\n private readonly range: DateRangeInstance = createDateRange(this.host, {\n ...untracked(this.settings),\n onChange: (next) => {\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.range.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.range.destroy());\n }\n\n ngAfterViewInit(): void {\n this.range.setIcons({\n prev: projected(this.host, this.prevSlot()),\n next: projected(this.host, this.nextSlot()),\n });\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.range.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: DateRangeValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: DateRangeValue | null): void {\n this.value.set(value ?? EMPTY);\n }\n registerOnChange(fn: (value: DateRangeValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n\n/** Whatever was projected into a slot, or undefined so the default chevron stays. */\nfunction projected(host: HTMLElement, slot: ElementRef<HTMLElement>): DocumentFragment | undefined {\n const nodes = Array.from(slot.nativeElement.childNodes);\n if (!nodes.some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) return undefined;\n const fragment = host.ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\nimport { pairIn, pairOut } from './shapes.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { PlainDate, PlainTime, Slot, ValueShape } from '@tzslot/core';\nimport {\n createDateTimeRange,\n type DateTimeRangeInstance,\n type DateTimeRangeSettings,\n type DateTimeRangeValue,\n type RenderCell,\n type TimeLayout,\n type CalendarButton,\n} from '@tzslot/dom';\n\nexport type { DateTimeRangeValue } from '@tzslot/dom';\n\nconst EMPTY: DateTimeRangeValue = { start: null, end: null };\n\n/**\n * `<tz-datetime-range>` — the interval from @tzslot/dom, spoken in Angular.\n *\n * The duration shown is the measured one, and when it disagrees with the clock\n * faces the widget says so in words.\n */\n@Component({\n selector: 'tz-datetime-range',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimeRange), multi: true },\n ],\n template: '',\n})\nexport class DateTimeRange implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<DateTimeRangeValue>(EMPTY);\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n /**\n * Whole days rather than moments. Two-way: the switch inside the widget\n * sets it, and so can you.\n */\n /**\n * What the form control holds. `'utc'` gives two ISO strings; the default\n * gives the library's own moments.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n readonly allDay = model(false);\n\n /** Whether that switch is shown at all. */\n readonly allDaySwitch = input(true);\n /**\n * Lets the interval stop at one end. The summary then says what it means —\n * \"From 14 Sept 2026, 09:00\" — instead of going blank, which reads as\n * nothing chosen. Off by default.\n */\n readonly openEnded = input(false);\n\n /** How each end asks for its time: 'input', 'select' or 'list'. */\n readonly timeLayout = input<TimeLayout>('input');\n readonly stepMinutes = input(30);\n /** With 'select': minutes between the options. Every minute by default. */\n readonly minuteStep = input(1);\n readonly hour12 = input<boolean | undefined>(undefined);\n /** The time a newly chosen day starts at. Midnight by default. */\n readonly defaultTime = input<PlainTime | string>('00:00');\n /** Both ends can be typed into as well as chosen from. */\n readonly editable = input(true);\n /** A pattern for both ends — `yyyy-MM-dd HH:mm`. */\n readonly format = input<string | undefined>(undefined);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n /** Which day is today, in both panels. */\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly renderCell = input<RenderCell | undefined>(undefined);\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n readonly buttons = input<readonly CalendarButton[]>([]);\n readonly minTime = input<string | undefined>(undefined);\n readonly maxTime = input<string | undefined>(undefined);\n readonly isSlotDisabled = input<((slot: Omit<Slot, 'disabled'>) => boolean) | undefined>(undefined);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly disabled = input(false);\n\n readonly startLabel = input<string | undefined>(undefined);\n readonly endLabel = input<string | undefined>(undefined);\n readonly endBeforeStartMessage = input<string | undefined>(undefined);\n\n protected readonly formDisabled = signal(false);\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<DateTimeRangeSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n allDay: this.allDay(),\n allDaySwitch: this.allDaySwitch(),\n openEnded: this.openEnded(),\n timeLayout: this.timeLayout(),\n stepMinutes: this.stepMinutes(),\n minuteStep: this.minuteStep(),\n hour12: this.hour12(),\n defaultTime: this.defaultTime(),\n editable: this.editable(),\n format: this.format(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n isSlotDisabled: this.isSlotDisabled(),\n min: this.min(),\n max: this.max(),\n locale: this.locale(),\n disabled: this.disabled() || this.formDisabled(),\n startLabel: this.startLabel(),\n endLabel: this.endLabel(),\n endBeforeStartMessage: this.endBeforeStartMessage(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly range: DateTimeRangeInstance = createDateTimeRange(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (next) => {\n this.allDay.set(next.allDay === true);\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.range.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.range.destroy());\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.range.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: DateTimeRangeValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n /**\n * Typed `unknown` because that is what a form control holds: a string from\n * a back end, a Date from older code, or the library's own objects.\n */\n writeValue(value: unknown): void {\n if (value === null || value === undefined) {\n this.value.set({ start: null, end: null });\n return;\n }\n const pair = pairIn(value);\n const allDay = (value as { allDay?: boolean }).allDay;\n this.value.set(allDay === undefined ? pair : { ...pair, allDay });\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (next) => fn(pairOut(next, this.valueAs(), { allDay: next.allDay === true }));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { DailyWindowsSummary, PlainDate, Weekday } from '@tzslot/core';\nimport {\n createDailyRange,\n type DailyRangeInstance,\n type DailyRangeSettings,\n type DailyRangeValue,\n type RenderCell,\n type TimeLayout,\n} from '@tzslot/dom';\n\nexport type { DailyRangeValue } from '@tzslot/dom';\n\nconst EMPTY: DailyRangeValue = { start: null, end: null, from: null, to: null };\n\n/**\n * `<tz-daily-range>` — a range of days with the same hours on each, from\n * @tzslot/dom, spoken in Angular. \"The 3rd to the 7th, 09:00 to 17:00.\"\n */\n@Component({\n selector: 'tz-daily-range',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DailyRange), multi: true },\n ],\n template: '',\n})\nexport class DailyRange implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<DailyRangeValue>(EMPTY);\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n readonly stepMinutes = input(30);\n\n /** 'input' (default) for two compact fields, 'list' for times to click. */\n readonly timeLayout = input<TimeLayout>('input');\n\n /** 12-hour fields with an AM/PM button; the locale decides when unset. */\n readonly hour12 = input<boolean | undefined>(undefined);\n\n /** With timeLayout 'columns': minutes between the options. Every minute by default. */\n readonly minuteStep = input(1);\n /** The first and last times offered. */\n readonly minTime = input<string | undefined>(undefined);\n readonly maxTime = input<string | undefined>(undefined);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly renderCell = input<RenderCell | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly disabled = input(false);\n\n /** Every day's window and the real total, once all four parts are chosen. */\n readonly summary = signal<DailyWindowsSummary | null>(null);\n\n protected readonly formDisabled = signal(false);\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<DailyRangeSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n stepMinutes: this.stepMinutes(),\n timeLayout: this.timeLayout(),\n hour12: this.hour12(),\n minuteStep: this.minuteStep(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n renderCell: this.renderCell(),\n today: this.today(),\n disabled: this.disabled() || this.formDisabled(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly range: DailyRangeInstance = createDailyRange(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (next) => {\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => {\n this.range.update(settings);\n this.summary.set(this.range.summary);\n });\n });\n inject(DestroyRef).onDestroy(() => this.range.destroy());\n }\n\n /** Clears all four parts and tells any form control about it. */\n clear(): void {\n this.range.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: DailyRangeValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n /**\n * A pattern, not a moment: two days and the clock faces repeated over them.\n * `valueAs` has nothing to convert here, which is why this component does\n * not take it — see the note on TzslotDefaults.\n */\n writeValue(value: DailyRangeValue | null): void {\n this.value.set(value ?? EMPTY);\n }\n registerOnChange(fn: (value: DailyRangeValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toPlainDate, fromPlainDate } from '@tzslot/core';\nimport type { PlainDate, Weekday, ValueShape, DateLike } from '@tzslot/core';\nimport {\n createMultiDate,\n type CalendarButton,\n type CalendarView,\n type MultiDateInstance,\n type MultiDateSettings,\n type RenderCell,\n type YearMonth,\n} from '@tzslot/dom';\n\n/**\n * `<tz-multi-date>` — several days, not necessarily next to each other, from\n * @tzslot/dom, spoken in Angular. The value is always in date order.\n */\n@Component({\n selector: 'tz-multi-date',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiDate), multi: true },\n ],\n template: `\n <span #prev hidden><ng-content select=\"[tzPrev]\" /></span>\n <span #next hidden><ng-content select=\"[tzNext]\" /></span>\n `,\n})\nexport class MultiDate implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n /** The chosen days, in date order. Two-way: `[(value)]`. */\n readonly value = model<readonly PlainDate[]>([]);\n\n /** Once this many are chosen, the other days stop taking clicks. */\n readonly maxDates = input<number | undefined>(undefined);\n\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly disabled = input(false);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly view = model<CalendarView>('days');\n readonly renderCell = input<RenderCell | undefined>(undefined);\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n /** What the form control holds, each day as a Temporal date, a Date, or an ISO string. */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n /** The zone a Date is read in. Only consulted when valueAs is 'date'. */\n readonly valueTimeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n protected readonly formDisabled = signal(false);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly prevSlot = viewChild.required<ElementRef<HTMLElement>>('prev');\n private readonly nextSlot = viewChild.required<ElementRef<HTMLElement>>('next');\n\n private readonly settings = computed<Partial<MultiDateSettings>>(() => ({\n value: this.value(),\n maxDates: this.maxDates(),\n view: this.view(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n disabled: this.disabled() || this.formDisabled(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n private readonly calendar: MultiDateInstance = createMultiDate(this.host, {\n ...untracked(this.settings),\n onChange: (dates) => {\n this.value.set(dates);\n this.onChange(dates);\n this.onTouched();\n },\n onViewChange: (view) => this.view.set(view),\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.calendar.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.calendar.destroy());\n }\n\n ngAfterViewInit(): void {\n const projected = (slot: ElementRef<HTMLElement>) => {\n const nodes = Array.from(slot.nativeElement.childNodes);\n if (!nodes.some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) return undefined;\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n };\n this.calendar.setIcons({ prev: projected(this.prevSlot()), next: projected(this.nextSlot()) });\n }\n\n /** Moves the grid without choosing anything. */\n goTo(date: PlainDate | YearMonth): void {\n this.calendar.goTo({ year: date.year, month: date.month });\n }\n\n /** Empties the selection and tells any form control about it. */\n clear(): void {\n this.calendar.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: readonly PlainDate[]) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: readonly DateLike[] | null): void {\n const days = (value ?? []).map((d) => toPlainDate(d, this.valueTimeZone()));\n this.value.set([...days].sort(Temporal.PlainDate.compare));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (dates) =>\n fn(dates.map((d) => fromPlainDate(d, this.valueAs(), this.valueTimeZone())));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","/**\n * @tzslot/ui — Angular components over the core.\n *\n * Angular CDK only; no Material, no design system. Structural class names and\n * CSS custom properties (--tz-*), so a consumer restyles without fighting\n * specificity.\n */\nexport { TimeSlotPicker } from './time-slot-picker.js';\nexport { TZSLOT_MESSAGES, provideTzslotMessages, EN, FR } from './messages.js';\nexport { TZSLOT_DEFAULTS, provideTzslot } from './defaults.js';\nexport { pairIn, pairOut } from './shapes.js';\nexport type { MomentPair } from './shapes.js';\nexport type { TzslotDefaults } from './defaults.js';\nexport type { TzslotMessages } from './messages.js';\nexport { Calendar } from './calendar.js';\nexport type { CalendarView } from './calendar.js';\nexport type {\n CalendarButton,\n CellRender,\n DayCellInfo,\n RenderCell,\n} from '@tzslot/dom';\nexport { DateField } from './date-field.js';\nexport { DateTimeField } from './datetime-field.js';\nexport { RangeField } from './range-field.js';\nexport type { RangeFieldValue, RangePreset } from './range-field.js';\nexport { DateRange } from './date-range.js';\nexport { DateTimeRange } from './datetime-range.js';\nexport { DailyRange } from './daily-range.js';\nexport { MultiDate } from './multi-date.js';\nexport type { TimeLayout } from '@tzslot/dom';\nexport type { DailyRangeValue } from './daily-range.js';\nexport type { DateTimeRangeValue } from './datetime-range.js';\nexport type { DateRangeValue } from './date-range.js';\nexport type { FieldMode } from './date-field.js';\nexport type { SlotChoice } from './time-slot-picker.js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EMPTY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tzslot-angular.mjs","sources":["../../src/messages.ts","../../src/defaults.ts","../../src/time-slot-picker.ts","../../src/shapes.ts","../../src/calendar.ts","../../src/date-field.ts","../../src/datetime-field.ts","../../src/range-field.ts","../../src/date-range.ts","../../src/datetime-range.ts","../../src/daily-range.ts","../../src/multi-date.ts","../../src/index.ts","../../src/tzslot-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { EN, type TzslotMessages } from '@tzslot/dom';\n\n/**\n * The words themselves live in @tzslot/dom, which every wrapper shares. Angular\n * only adds the way to provide them once for a whole application.\n */\nexport { EN, FR } from '@tzslot/dom';\nexport type { TzslotMessages } from '@tzslot/dom';\n\nexport const TZSLOT_MESSAGES = new InjectionToken<TzslotMessages>('tzslot.messages', {\n providedIn: 'root',\n factory: () => EN,\n});\n\n/** `providers: [provideTzslotMessages(FR)]` */\nexport function provideTzslotMessages(messages: TzslotMessages) {\n return { provide: TZSLOT_MESSAGES, useValue: messages };\n}\n","import { InjectionToken } from '@angular/core';\nimport type { ValueShape } from '@tzslot/core';\nimport type { TzslotMessages } from '@tzslot/dom';\nimport type { Weekday } from '@tzslot/core';\nimport { TZSLOT_MESSAGES } from './messages.js';\n\n/**\n * The conventions an application settles once.\n *\n * A zone, a locale, the shape values leave in: these are decisions about the\n * application, not about the field. Repeating them on every tag is how one\n * screen ends up handing a `Date` to a back end that stores instants, and how\n * a reviewer has to read every template to find out which one.\n *\n * Anything set on a component still wins — this is the default, not the law.\n */\nexport interface TzslotDefaults {\n /**\n * What every component that holds a moment or a day hands to its form\n * control. `'utc'` is the useful one here: an instant, written as an ISO\n * string ending in Z, whatever the widget is. A date-only field gives the\n * midnight that opens that day in `timeZone`, so a back end that stores\n * instants gets one from it too.\n *\n * `<tz-daily-range>` is the exception, and not an oversight: its value is a\n * *pattern* — two days and two clock faces repeated over them — which is\n * not a moment and has no UTC form. It always hands out Temporal objects.\n */\n readonly valueAs?: ValueShape;\n /**\n * The IANA zone the screen is read in — and the one a day is turned into a\n * moment on. Components that take a `timeZone` of their own use this when\n * none is given.\n */\n readonly timeZone?: string;\n readonly locale?: string;\n readonly firstDayOfWeek?: Weekday;\n /** The words. The same thing `provideTzslotMessages` does, in one call. */\n readonly messages?: TzslotMessages;\n}\n\nexport const TZSLOT_DEFAULTS = new InjectionToken<TzslotDefaults>('tzslot.defaults', {\n providedIn: 'root',\n factory: () => ({}),\n});\n\n/**\n * `providers: [provideTzslot({ valueAs: 'utc', timeZone: 'Europe/Paris' })]`\n *\n * In an application: `bootstrapApplication(App, { providers: [provideTzslot({ … })] })`.\n */\nexport function provideTzslot(defaults: TzslotDefaults) {\n const providers: { provide: unknown; useValue: unknown }[] = [\n { provide: TZSLOT_DEFAULTS, useValue: defaults },\n ];\n if (defaults.messages) providers.push({ provide: TZSLOT_MESSAGES, useValue: defaults.messages });\n return providers;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toInstant, fromInstant } from '@tzslot/core';\nimport type { Instant, InstantLike, PlainDate, Slot, ValueShape } from '@tzslot/core';\nimport {\n createTimeSlots,\n getSlotChoices,\n type SlotChoice,\n type TimeSlotsInstance,\n type TimeSlotsSettings,\n} from '@tzslot/dom';\n\nexport type { SlotChoice } from '@tzslot/dom';\n\n/**\n * `<tz-time-slots>` — the slot list from @tzslot/dom, spoken in Angular.\n *\n * What it selects is an `Instant`, never a wall time. A wall time is what a\n * clock shows; an instant is when it happened. Only one of those can be stored.\n */\n@Component({\n selector: 'tz-time-slots',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimeSlotPicker), multi: true },\n ],\n template: '',\n})\nexport class TimeSlotPicker implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n /** The day to list, as a PlainDate or an ISO date string. */\n /**\n * What the form control holds. `'utc'` gives an ISO string; the default\n * gives an Instant.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n readonly date = input.required<PlainDate | string>();\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n readonly stepMinutes = input(30);\n\n /** The working day. Slots outside these bounds are not produced at all. */\n readonly minTime = input<string | undefined>(undefined);\n readonly maxTime = input<string | undefined>(undefined);\n\n /** Rules out individual slots while still showing them: booked, over capacity. */\n readonly isDisabled = input<((slot: Omit<Slot, 'disabled'>) => boolean) | undefined>(undefined);\n\n /** Leave out the times that cannot happen, rather than showing them struck through. */\n readonly skipNonExistent = input(false);\n\n readonly disabled = input(false);\n\n /** What is selected, as a moment. Two-way: `[(value)]`. */\n readonly value = model<Instant | null>(null);\n\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly missingLabel = input<string | undefined>(undefined);\n readonly emptyLabel = input<string | undefined>(undefined);\n\n /** The rows listed, one per selectable moment: an ambiguous time gives two. */\n readonly choices = computed<SlotChoice[]>(() =>\n getSlotChoices(this.date(), this.timeZone(), {\n stepMinutes: this.stepMinutes(),\n skipNonExistent: this.skipNonExistent(),\n ...(this.minTime() !== undefined ? { minTime: this.minTime()! } : {}),\n ...(this.maxTime() !== undefined ? { maxTime: this.maxTime()! } : {}),\n ...(this.isDisabled() !== undefined ? { isDisabled: this.isDisabled()! } : {}),\n }),\n );\n\n protected readonly formDisabled = signal(false);\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<TimeSlotsSettings>>(() => ({\n date: this.date(),\n timeZone: this.timeZone(),\n stepMinutes: this.stepMinutes(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n isDisabled: this.isDisabled(),\n skipNonExistent: this.skipNonExistent(),\n disabled: this.disabled() || this.formDisabled(),\n value: this.value(),\n ariaLabel: this.ariaLabel(),\n missingLabel: this.missingLabel(),\n emptyLabel: this.emptyLabel(),\n messages: this.messages,\n }));\n\n /**\n * Created empty: `date` and `timeZone` are required inputs, which cannot be\n * read before they are bound. The first change detection fills it in.\n */\n private readonly slots: TimeSlotsInstance = createTimeSlots(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (instant) => {\n this.value.set(instant);\n this.onChange(instant);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.slots.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.slots.destroy());\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.slots.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: Instant | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n /** Typed `unknown`: a form holds what the application put there. */\n writeValue(value: unknown): void {\n this.value.set(value === null || value === undefined ? null : toInstant(value as InstantLike));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (next) => fn(fromInstant(next, this.valueAs()));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import { toInstant, fromInstant } from '@tzslot/core';\nimport type { Instant, InstantLike, ValueShape } from '@tzslot/core';\n\n/**\n * A period, as a form holds it.\n *\n * The single-value components have spoken `valueAs` since the beginning; the\n * ones holding two moments did not, so `provideTzslot({ valueAs: 'utc' })`\n * gave ISO strings from one tag and Temporal objects from the one beside it.\n * Worse, their `writeValue` was typed as if a form could only ever contain\n * the library's own objects, and threw on the ISO string a real back end\n * sends.\n */\nexport interface MomentPair<T> {\n readonly start: T | null;\n readonly end: T | null;\n}\n\n/** Whatever the form holds, as two moments. */\nexport function pairIn(value: unknown): MomentPair<Instant> {\n if (value === null || value === undefined) return { start: null, end: null };\n const given = value as { start?: unknown; end?: unknown };\n const one = (at: unknown): Instant | null =>\n at === null || at === undefined ? null : toInstant(at as InstantLike);\n return { start: one(given.start), end: one(given.end) };\n}\n\n/** And back out, in the shape the application asked for. */\nexport function pairOut<Extra extends object>(\n pair: MomentPair<Instant>,\n shape: ValueShape,\n extra: Extra,\n): Extra & { start: unknown; end: unknown } {\n return {\n ...extra,\n start: fromInstant(pair.start, shape),\n end: fromInstant(pair.end, shape),\n };\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n type OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toPlainDate, fromPlainDate } from '@tzslot/core';\nimport type { PlainDate, Weekday, ValueShape, DateLike } from '@tzslot/core';\nimport {\n createCalendar,\n type CalendarButton,\n type CalendarInstance,\n type CalendarSettings,\n type RenderCell,\n type CalendarView,\n type YearMonth,\n} from '@tzslot/dom';\n\nexport type { CalendarView } from '@tzslot/dom';\n\n/**\n * `<tz-calendar>` — the calendar from @tzslot/dom, spoken in Angular.\n *\n * Everything the user sees and does is drawn by `createCalendar`. This class\n * only translates: inputs and models into `update()`, the calendar's callbacks\n * into `valueChange` and form notifications, projected content into icons.\n */\n@Component({\n selector: 'tz-calendar',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Calendar), multi: true },\n ],\n // The slots only collect projected icons; the calendar moves them into its\n // buttons and the slots stay empty and hidden.\n template: `\n <span #prev hidden><ng-content select=\"[tzPrev]\" /></span>\n <span #next hidden><ng-content select=\"[tzNext]\" /></span>\n `,\n})\nexport class Calendar implements ControlValueAccessor, AfterViewInit, OnDestroy {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n /** The selected day. Two-way: `[(value)]`. */\n readonly value = model<PlainDate | null>(null);\n\n /** Monday by default, as ISO-8601 numbers the week. */\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n\n /** A BCP-47 tag for the month and weekday names. Defaults to the browser's. */\n readonly locale = input<string | undefined>(this.defaults.locale);\n\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly disabled = input(false);\n\n /**\n * What the form control holds. 'temporal' by default; 'date' lets an\n * existing FormControl<Date> keep working untouched, which is the whole of a\n * flatpickr migration on most screens.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n /**\n * The zone used to turn a Date into a calendar day and back. Only consulted\n * when valueAs is 'date': which day an instant falls on depends on where you\n * are standing, so it is explicit rather than guessed.\n */\n readonly valueTimeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n /** Rules out individual days inside the range: closures, weekends, full days. */\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n /** Today, injectable so a test does not depend on the day it runs. */\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n\n /**\n * Which level the grid is choosing between. A model, so a consumer can open\n * straight on years — a birthdate picker should not start on this month.\n */\n readonly view = model<CalendarView>('days');\n\n /** 'months' turns this into a month picker, 'years' into a year picker. */\n readonly minView = input<CalendarView>('days');\n\n /** Adds to each day: a price, places left, a class, a reason to rule it out. */\n readonly renderCell = input<RenderCell | undefined>(undefined);\n\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n /** Buttons under the grid: `['today', 'clear']`. None by default. */\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly prevSlot = viewChild.required<ElementRef<HTMLElement>>('prev');\n private readonly nextSlot = viewChild.required<ElementRef<HTMLElement>>('next');\n protected readonly formDisabled = signal(false);\n\n private readonly settings = computed<Partial<CalendarSettings>>(() => ({\n value: this.value(),\n view: this.view(),\n minView: this.minView(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n disabled: this.disabled() || this.formDisabled(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n /**\n * Drawn at construction, so the cells exist as soon as the component does —\n * as they did when this was a template. Inputs are not bound yet at this\n * point; the effect below brings them in on the first change detection.\n */\n private readonly calendar: CalendarInstance = createCalendar(this.host, {\n ...untracked(this.settings),\n onChange: (date) => {\n this.value.set(date);\n this.onChange(date);\n this.onTouched();\n },\n onViewChange: (view) => this.view.set(view),\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.calendar.update(settings));\n });\n }\n\n /** Projected content only exists once the view does. */\n ngAfterViewInit(): void {\n this.calendar.setIcons({\n prev: this.projected(this.prevSlot()),\n next: this.projected(this.nextSlot()),\n });\n }\n\n ngOnDestroy(): void {\n this.calendar.destroy();\n }\n\n /** Moves the grid without selecting anything — flatpickr's setViewDate. */\n goTo(date: PlainDate | YearMonth): void {\n this.calendar.goTo({ year: date.year, month: date.month });\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.calendar.clear();\n }\n\n /** Whatever was projected into a slot, or undefined so the default chevron stays. */\n private projected(slot: ElementRef<HTMLElement>): DocumentFragment | undefined {\n const nodes = Array.from(slot.nativeElement.childNodes);\n if (!nodes.some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) return undefined;\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: PlainDate | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: DateLike | null): void {\n this.value.set(value === null || value === undefined ? null : toPlainDate(value, this.valueTimeZone()));\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (date) => fn(fromPlainDate(date, this.valueAs(), this.valueTimeZone()));\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toPlainDate, fromPlainDate } from '@tzslot/core';\nimport type { PlainDate, Weekday, ValueShape, DateLike } from '@tzslot/core';\nimport {\n createDateField,\n type CalendarButton,\n type DateFieldInstance,\n type DateFieldSettings,\n type RenderCell,\n type FieldMode,\n} from '@tzslot/dom';\n\nexport type { FieldMode } from '@tzslot/dom';\n\n/**\n * `<tz-date-field>` — the field from @tzslot/dom, spoken in Angular.\n *\n * The trigger, the panel, its position, focus and theme are all drawn by\n * `createDateField`. This class maps inputs to `update()`, callbacks to\n * `valueChange`, `opened`, `closed` and form notifications, and a projected\n * `[tzIcon]` to the field's icon.\n */\n@Component({\n selector: 'tz-date-field',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateField), multi: true },\n ],\n template: `<span #icon hidden><ng-content select=\"[tzIcon]\" /></span>`,\n})\nexport class DateField implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<PlainDate | null>(null);\n readonly mode = input<FieldMode>('popup');\n readonly placeholder = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(this.defaults.locale);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly disabled = input(false);\n\n /**\n * What the form control holds. 'temporal' by default; 'date' lets an\n * existing FormControl<Date> keep working untouched, which is the whole of a\n * flatpickr migration on most screens.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n /**\n * The zone used to turn a Date into a calendar day and back. Only consulted\n * when valueAs is 'date': which day an instant falls on depends on where you\n * are standing, so it is explicit rather than guessed.\n */\n readonly valueTimeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n /** How the chosen date is written in the field. Defaults to the locale's medium form. */\n readonly displayWith = input<((date: PlainDate) => string) | undefined>(undefined);\n\n /** Passed to the calendar in the panel. */\n readonly renderCell = input<RenderCell | undefined>(undefined);\n\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n /** Under the panel's grid: `['today', 'clear']`. Choosing either closes it. */\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n /** Whether the panel is showing. Readable from a ViewChild. */\n readonly isOpen = signal(false);\n protected readonly formDisabled = signal(false);\n /** Set while the component is being destroyed, so no output fires after it. */\n private gone = false;\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly iconSlot = viewChild.required<ElementRef<HTMLElement>>('icon');\n\n private readonly settings = computed<Partial<DateFieldSettings>>(() => ({\n value: this.value(),\n mode: this.mode(),\n placeholder: this.placeholder(),\n ariaLabel: this.ariaLabel(),\n locale: this.locale(),\n firstDayOfWeek: this.firstDayOfWeek(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n disabled: this.disabled() || this.formDisabled(),\n displayWith: this.displayWith(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n private readonly field: DateFieldInstance = createDateField(this.host, {\n ...untracked(this.settings),\n onChange: (date) => {\n this.value.set(date);\n this.onChange(date);\n },\n onOpen: () => {\n this.isOpen.set(true);\n this.onTouched();\n if (!this.gone) this.opened.emit();\n },\n onClose: () => {\n this.isOpen.set(false);\n // Destroying the component closes its panel; an output that fires then\n // is an emit on a destroyed ref (NG0953), and nothing is listening.\n if (!this.gone) this.closed.emit();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.field.update(settings));\n });\n inject(DestroyRef).onDestroy(() => {\n this.gone = true;\n this.field.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n const slot = this.iconSlot().nativeElement;\n if (Array.from(slot.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) {\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...Array.from(slot.childNodes));\n this.field.setIcon(fragment);\n }\n }\n\n /**\n * Opening and closing are public so a ViewChild can drive the field — a\n * button elsewhere on the page, a wizard step, a keyboard shortcut.\n */\n toggle(): void {\n this.field.toggle();\n }\n\n /** No-op when already open. */\n open(): void {\n this.field.open();\n }\n\n close(): void {\n this.field.close();\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.field.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: PlainDate | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: DateLike | null): void {\n this.value.set(value === null || value === undefined ? null : toPlainDate(value, this.valueTimeZone()));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (date) => fn(fromPlainDate(date, this.valueAs(), this.valueTimeZone()));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n\n/** Kept here so the type is reachable without importing Temporal separately. */\nexport type { PlainDate as DateFieldValue };\nexport { Temporal };\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toInstant, fromInstant } from '@tzslot/core';\nimport type {\n DurationLike,\n ShiftOption,\n Instant,\n InstantLike,\n PlainDate,\n PlainTime,\n Slot,\n ValueShape,\n Weekday,\n} from '@tzslot/core';\nimport {\n createDateTimeField,\n type CalendarButton,\n type DateTimeFieldInstance,\n type DateTimeFieldSettings,\n type FieldMode,\n type RenderCell,\n type TimeLayout,\n} from '@tzslot/dom';\n\n/**\n * `<tz-datetime-field>` — a field that opens a calendar and a time, from\n * @tzslot/dom, spoken in Angular.\n *\n * Its value is an Instant, so it says which moment was meant even when the\n * clock face does not: a time the zone skips is moved on and explained, and\n * one that happens twice is offered by its two offsets rather than guessed.\n */\n@Component({\n selector: 'tz-datetime-field',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimeField), multi: true },\n ],\n template: `<span #icon hidden><ng-content select=\"[tzIcon]\" /></span>`,\n})\nexport class DateTimeField implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<Instant | null>(null);\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n readonly mode = input<FieldMode>('popup');\n readonly placeholder = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(this.defaults.locale);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n /** 'input' (default) for a compact time field, 'list' for the day's times. */\n /**\n * Whether a time is asked for at all. False leaves a field that chooses a\n * day and holds the moment it starts.\n */\n readonly showTime = input(true);\n readonly timeLayout = input<TimeLayout>('input');\n /**\n * Move a typed time to the nearest mark of this grid — 15 for quarter-hour\n * appointments, ties upward. Off by default: a screen that accepts any\n * minute must not have them quietly moved.\n */\n readonly snapMinutes = input<number | null>(null);\n /**\n * Arrows beside the field that step the chosen moment without opening the\n * panel: `{ hours: 1 }`, `{ days: 1 }`. `false` — the default — draws none.\n * Counted on the zone's clocks, so a day is 23 or 25 hours when they change.\n */\n readonly shift = input<DurationLike | readonly ShiftOption[] | false>(false);\n /** Whether the step sits between the arrows, to be read and pressed. */\n readonly showStep = input(true);\n readonly stepMinutes = input(30);\n /** With timeLayout 'select': minutes between the options. Every minute by default. */\n readonly minuteStep = input(1);\n readonly minTime = input<PlainTime | string | undefined>(undefined);\n readonly maxTime = input<PlainTime | string | undefined>(undefined);\n /** Only with timeLayout 'list': rules out slots while still showing them. */\n readonly isSlotDisabled = input<((slot: Omit<Slot, 'disabled'>) => boolean) | undefined>(undefined);\n readonly hour12 = input<boolean | undefined>(undefined);\n\n /** The time a newly chosen day starts at. Midnight by default. */\n readonly defaultTime = input<PlainTime | string>('00:00');\n\n readonly disabled = input(false);\n\n /** The text can be typed as well as chosen. On by default. */\n readonly editable = input(true);\n\n /** Separators appear as the figures are typed, like a card number. On by default. */\n readonly mask = input(true);\n\n /** A pattern — `yyyy-MM-dd HH:mm` — when the shape matters more than the reader. */\n readonly format = input<string | undefined>(undefined);\n\n /** Used when the field is not typable and no pattern is given. */\n readonly dateStyle = input<'full' | 'long' | 'medium' | 'short'>('medium');\n readonly timeStyle = input<'full' | 'long' | 'medium' | 'short'>('short');\n\n /** The last word on the text. Given both, this one wins. */\n readonly displayWith = input<((value: Instant, timeZone: string) => string) | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly renderCell = input<RenderCell | undefined>(undefined);\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n /** What the form control holds: a Temporal Instant, a Date, or an ISO string. */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n /** Whether the panel is showing. Readable from a ViewChild. */\n readonly isOpen = signal(false);\n protected readonly formDisabled = signal(false);\n /** Set while the component is being destroyed, so no output fires after it. */\n private gone = false;\n\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly iconSlot = viewChild.required<ElementRef<HTMLElement>>('icon');\n\n private readonly settings = computed<Partial<DateTimeFieldSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n mode: this.mode(),\n placeholder: this.placeholder(),\n ariaLabel: this.ariaLabel(),\n locale: this.locale(),\n firstDayOfWeek: this.firstDayOfWeek(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n showTime: this.showTime(),\n timeLayout: this.timeLayout(),\n snapMinutes: this.snapMinutes(),\n shift: this.shift(),\n showStep: this.showStep(),\n stepMinutes: this.stepMinutes(),\n minuteStep: this.minuteStep(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n isSlotDisabled: this.isSlotDisabled(),\n hour12: this.hour12(),\n defaultTime: this.defaultTime(),\n disabled: this.disabled() || this.formDisabled(),\n editable: this.editable(),\n mask: this.mask(),\n format: this.format(),\n dateStyle: this.dateStyle(),\n timeStyle: this.timeStyle(),\n displayWith: this.displayWith(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly field: DateTimeFieldInstance = createDateTimeField(this.host, {\n messages: this.messages,\n onChange: (value) => {\n this.value.set(value);\n this.onChange(value);\n },\n onOpen: () => {\n this.isOpen.set(true);\n this.onTouched();\n if (!this.gone) this.opened.emit();\n },\n onClose: () => {\n this.isOpen.set(false);\n // Destroying the component closes its panel; an output that fires then\n // is an emit on a destroyed ref (NG0953), and nothing is listening.\n if (!this.gone) this.closed.emit();\n },\n });\n\n constructor() {\n effect(() => {\n const settings = this.settings();\n untracked(() => this.field.update(settings));\n });\n inject(DestroyRef).onDestroy(() => {\n this.gone = true;\n this.field.destroy();\n });\n }\n\n ngAfterViewInit(): void {\n const slot = this.iconSlot().nativeElement;\n if (Array.from(slot.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) {\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...Array.from(slot.childNodes));\n this.field.setIcon(fragment);\n }\n }\n\n toggle(): void {\n this.field.toggle();\n }\n /** No-op when already open. */\n open(): void {\n this.field.open();\n }\n close(): void {\n this.field.close();\n }\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.field.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: Instant | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: InstantLike | null): void {\n this.value.set(value === null || value === undefined ? null : toInstant(value));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (value) => fn(fromInstant(value, this.valueAs()));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { PlainDate, PresetName, ValueShape, Weekday } from '@tzslot/core';\nimport { pairIn, pairOut } from './shapes.js';\nimport {\n createRangeField,\n type FieldMode,\n type RangeFieldInstance,\n type RangeFieldSettings,\n type RangeFieldValue,\n type RangePreset,\n type RenderCell,\n} from '@tzslot/dom';\n\nimport type { DurationLike, Instant, PlainTime, ShiftOption, ShiftStep } from '@tzslot/core';\n\nexport type { RangeFieldValue, RangePreset } from '@tzslot/dom';\n\nconst EMPTY: RangeFieldValue = { start: null, end: null };\n\n/**\n * `<tz-range-field>` — one field for a period, from @tzslot/dom, spoken in\n * Angular. Named ranges beside the calendar, months side by side, and whole\n * days or moments.\n */\n@Component({\n selector: 'tz-range-field',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangeField), multi: true },\n ],\n template: '',\n})\nexport class RangeField implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<RangeFieldValue>(EMPTY);\n\n /**\n * What the form control holds. `'utc'` gives two ISO strings; the default\n * gives the library's own moments. Settled for a whole application with\n * provideTzslot(), which documents it as applying to every component — and\n * this one did not listen.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n /** Named ranges beside the calendar: the built-in names, or your own. */\n readonly presets = input<readonly (PresetName | RangePreset)[]>([\n 'thisQuarterHour',\n 'lastHour',\n 'thisHour',\n 'nextHour',\n 'yesterday',\n 'today',\n 'tomorrow',\n 'last7Days',\n 'thisMonth',\n 'thisQuarter',\n ]);\n\n /**\n * Lets a period stop at one end — \"from 14 September\", \"until the 20th\".\n * The panel then offers Between / From / Until, and each chosen end can be\n * dropped with the cross beside it. Off by default: a booking form must not\n * accept a period with no end.\n */\n readonly openEnded = input(false);\n /** A word or two saying what is being chosen — \"Travel dates\". */\n readonly title = input<string | undefined>(undefined);\n /** How an hour is asked for: two menus (default), or figures with arrows. */\n readonly timeLayout = input<'input' | 'select'>('select');\n /**\n * Whether the period carries times as well as days — the screen's decision,\n * not the reader's. There is no \"all day\" switch: on, every chosen day\n * starts at `defaultTimes`.\n */\n readonly showTime = input(false);\n /**\n * The hours a newly chosen day is given: midnight unless the screen knows\n * better — `{ start: '09:00', end: '18:00' }` for a working day. A value\n * handed to the field keeps its own hours.\n */\n readonly defaultTimes = input<{ start?: PlainTime | string; end?: PlainTime | string }>({});\n readonly stepMinutes = input(30);\n /**\n * Move a time typed by hand to the nearest mark of this grid — 15 for\n * quarter-hour appointments, ties upward. Off by default.\n */\n readonly snapMinutes = input<number | null>(null);\n /**\n * How long the period may be, and how short — `'30d'`, `{ hours: 2 }`.\n * Moving one end pushes the other rather than refusing the move.\n */\n readonly maxSpan = input<DurationLike | null>(null);\n readonly minSpan = input<DurationLike | null>(null);\n /** Minutes between the options of the hour menu. Five by default. */\n readonly minuteStep = input(5);\n /** Nothing is reported until Apply is pressed. */\n readonly confirm = input(false);\n /**\n * Arrows that step the whole period without opening the panel.\n *\n * `false` — the default — draws none. `true` draws them and follows what is\n * being chosen: an hour for a period, a day when `singleDay` says it is one\n * date. A duration such as `{ months: 3 }` or `'45mn'` imposes the step; a\n * list offers several and lets the reader pick.\n */\n readonly shift = input<boolean | ShiftStep | readonly ShiftOption[]>(false);\n /** Whether the column of shortcuts is drawn. The list itself is kept. */\n readonly showPresets = input(true);\n /** Whether the step sits between the arrows, to be read and pressed. */\n readonly showStep = input(true);\n /** One field instead of two; a click means that whole day. */\n readonly singleDay = input(false);\n readonly months = input(2);\n readonly weekNumbers = input(false);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly mode = input<FieldMode>('popup');\n readonly placeholder = input<string | undefined>(undefined);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly renderCell = input<RenderCell | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n /** The moment the shortcuts shorter than a day are counted from. The clock by default. */\n readonly now = input<Instant | null>(null);\n /**\n * The whole field, or one end of it: `{ end: true }` for a period whose end\n * the screen works out itself. A locked end is read-only rather than\n * disabled — still readable, still reachable by the keyboard.\n */\n readonly disabled = input<boolean | { start?: boolean; end?: boolean }>(false);\n /** A pattern for each end — `yyyy-MM-dd`. */\n readonly format = input<string | undefined>(undefined);\n /**\n * What is written above the panel's two fields, and between them. Words by\n * default; `{ start: null, end: null, between: '»' }` for a screen that\n * prefers a mark. A DOM node is taken as it is.\n */\n /**\n * The mark inside the panel's two fields — a calendar by default, `null`\n * for none, or a node of your own.\n */\n readonly fieldIcon = input<Node | string | null | undefined>(undefined);\n readonly fieldIconSide = input<'start' | 'end'>('start');\n readonly labels = input<{\n start?: Node | string | null;\n end?: Node | string | null;\n between?: Node | string | null;\n }>({});\n /** Separators appear as figures are typed in those fields. */\n readonly mask = input(true);\n readonly displayWith = input<((value: RangeFieldValue, timeZone: string) => string) | undefined>(undefined);\n\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n /** Whether the panel is showing. Readable from a ViewChild. */\n readonly isOpen = signal(false);\n protected readonly formDisabled = signal(false);\n private gone = false;\n\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<RangeFieldSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n presets: this.presets(),\n openEnded: this.openEnded(),\n title: this.title(),\n timeLayout: this.timeLayout(),\n showTime: this.showTime(),\n defaultTimes: this.defaultTimes(),\n stepMinutes: this.stepMinutes(),\n snapMinutes: this.snapMinutes(),\n maxSpan: this.maxSpan(),\n minSpan: this.minSpan(),\n minuteStep: this.minuteStep(),\n confirm: this.confirm(),\n shift: this.shift(),\n showPresets: this.showPresets(),\n showStep: this.showStep(),\n singleDay: this.singleDay(),\n months: this.months(),\n weekNumbers: this.weekNumbers(),\n firstDayOfWeek: this.firstDayOfWeek(),\n mode: this.mode(),\n placeholder: this.placeholder(),\n ariaLabel: this.ariaLabel(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n renderCell: this.renderCell(),\n today: this.today(),\n now: this.now(),\n // A form disabling the control wins over a per-end lock: it means the\n // whole thing is out of play, not that one end of it is.\n disabled: this.formDisabled() ? true : this.disabled(),\n format: this.format(),\n labels: this.labels(),\n fieldIcon: this.fieldIcon(),\n fieldIconSide: this.fieldIconSide(),\n mask: this.mask(),\n displayWith: this.displayWith(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly field: RangeFieldInstance = createRangeField(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (value) => {\n this.value.set(value);\n this.onChange(value);\n this.onTouched();\n },\n onOpen: () => {\n this.isOpen.set(true);\n if (!this.gone) this.opened.emit();\n },\n onClose: () => {\n this.isOpen.set(false);\n if (!this.gone) this.closed.emit();\n },\n });\n\n constructor() {\n effect(() => {\n const settings = this.settings();\n untracked(() => this.field.update(settings));\n });\n inject(DestroyRef).onDestroy(() => {\n this.gone = true;\n this.field.destroy();\n });\n }\n\n open(): void {\n this.field.open();\n }\n close(): void {\n this.field.close();\n }\n toggle(): void {\n this.field.toggle();\n }\n /** Empties the period and tells any form control about it. */\n clear(): void {\n this.field.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: RangeFieldValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n /**\n * Typed `unknown` because that is what a form control holds: a string from\n * a back end, a Date from older code, or the library's own objects. It was\n * typed `RangeFieldValue | null` and threw on the first of those.\n */\n writeValue(value: unknown): void {\n if (value === null || value === undefined) {\n this.value.set(EMPTY);\n return;\n }\n // Two moments, nothing else. An allDay a form still carries is ignored:\n // whether a period is whole days is read off the moments themselves.\n const pair = pairIn(value);\n this.value.set({ start: pair.start, end: pair.end });\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (next) => fn(pairOut(next, this.valueAs(), {}));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { PlainDate, Weekday } from '@tzslot/core';\nimport {\n createDateRange,\n type DateRangeInstance,\n type DateRangeSettings,\n type DateRangeValue,\n type RenderCell,\n} from '@tzslot/dom';\n\nexport type { DateRangeValue } from '@tzslot/dom';\n\nconst EMPTY: DateRangeValue = { start: null, end: null };\n\n/** `<tz-date-range>` — the range from @tzslot/dom, spoken in Angular. */\n@Component({\n selector: 'tz-date-range',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateRange), multi: true },\n ],\n template: `\n <span #prev hidden><ng-content select=\"[tzPrev]\" /></span>\n <span #next hidden><ng-content select=\"[tzNext]\" /></span>\n `,\n})\nexport class DateRange implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<DateRangeValue>(EMPTY);\n\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly disabled = input(false);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n\n /** Refuse a range that steps over a day isDateDisabled rules out. On by default. */\n readonly blockAcrossDisabled = input(true);\n\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n /** How many months to show side by side. Two is what most ranges want. */\n readonly months = input(1);\n\n /** Adds to each day: a price per night, places left, a class of your own. */\n readonly renderCell = input<RenderCell | undefined>(undefined);\n\n /** Overrides the bundle for this one instance. */\n readonly rangeSpansBlockedMessage = input<string | undefined>(undefined);\n\n protected readonly formDisabled = signal(false);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly prevSlot = viewChild.required<ElementRef<HTMLElement>>('prev');\n private readonly nextSlot = viewChild.required<ElementRef<HTMLElement>>('next');\n\n private readonly settings = computed<Partial<DateRangeSettings>>(() => ({\n value: this.value(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n disabled: this.disabled() || this.formDisabled(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n blockAcrossDisabled: this.blockAcrossDisabled(),\n rangeSpansBlockedMessage: this.rangeSpansBlockedMessage(),\n renderCell: this.renderCell(),\n weekNumbers: this.weekNumbers(),\n months: this.months(),\n messages: this.messages,\n }));\n\n private readonly range: DateRangeInstance = createDateRange(this.host, {\n ...untracked(this.settings),\n onChange: (next) => {\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.range.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.range.destroy());\n }\n\n ngAfterViewInit(): void {\n this.range.setIcons({\n prev: projected(this.host, this.prevSlot()),\n next: projected(this.host, this.nextSlot()),\n });\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.range.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: DateRangeValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: DateRangeValue | null): void {\n this.value.set(value ?? EMPTY);\n }\n registerOnChange(fn: (value: DateRangeValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n\n/** Whatever was projected into a slot, or undefined so the default chevron stays. */\nfunction projected(host: HTMLElement, slot: ElementRef<HTMLElement>): DocumentFragment | undefined {\n const nodes = Array.from(slot.nativeElement.childNodes);\n if (!nodes.some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) return undefined;\n const fragment = host.ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\nimport { pairIn, pairOut } from './shapes.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { PlainDate, PlainTime, Slot, ValueShape } from '@tzslot/core';\nimport {\n createDateTimeRange,\n type DateTimeRangeInstance,\n type DateTimeRangeSettings,\n type DateTimeRangeValue,\n type RenderCell,\n type TimeLayout,\n type CalendarButton,\n} from '@tzslot/dom';\n\nexport type { DateTimeRangeValue } from '@tzslot/dom';\n\nconst EMPTY: DateTimeRangeValue = { start: null, end: null };\n\n/**\n * `<tz-datetime-range>` — the interval from @tzslot/dom, spoken in Angular.\n *\n * The duration shown is the measured one, and when it disagrees with the clock\n * faces the widget says so in words.\n */\n@Component({\n selector: 'tz-datetime-range',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateTimeRange), multi: true },\n ],\n template: '',\n})\nexport class DateTimeRange implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<DateTimeRangeValue>(EMPTY);\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n /**\n * Whole days rather than moments. Two-way: the switch inside the widget\n * sets it, and so can you.\n */\n /**\n * What the form control holds. `'utc'` gives two ISO strings; the default\n * gives the library's own moments.\n */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n readonly allDay = model(false);\n\n /** Whether that switch is shown at all. */\n readonly allDaySwitch = input(true);\n /**\n * Lets the interval stop at one end. The summary then says what it means —\n * \"From 14 Sept 2026, 09:00\" — instead of going blank, which reads as\n * nothing chosen. Off by default.\n */\n readonly openEnded = input(false);\n\n /** How each end asks for its time: 'input', 'select' or 'list'. */\n readonly timeLayout = input<TimeLayout>('input');\n readonly stepMinutes = input(30);\n /** With 'select': minutes between the options. Every minute by default. */\n readonly minuteStep = input(1);\n readonly hour12 = input<boolean | undefined>(undefined);\n /** The time a newly chosen day starts at. Midnight by default. */\n readonly defaultTime = input<PlainTime | string>('00:00');\n /** Both ends can be typed into as well as chosen from. */\n readonly editable = input(true);\n /** A pattern for both ends — `yyyy-MM-dd HH:mm`. */\n readonly format = input<string | undefined>(undefined);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n /** Which day is today, in both panels. */\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly renderCell = input<RenderCell | undefined>(undefined);\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n readonly buttons = input<readonly CalendarButton[]>([]);\n readonly minTime = input<string | undefined>(undefined);\n readonly maxTime = input<string | undefined>(undefined);\n readonly isSlotDisabled = input<((slot: Omit<Slot, 'disabled'>) => boolean) | undefined>(undefined);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly disabled = input(false);\n\n readonly startLabel = input<string | undefined>(undefined);\n readonly endLabel = input<string | undefined>(undefined);\n readonly endBeforeStartMessage = input<string | undefined>(undefined);\n\n protected readonly formDisabled = signal(false);\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<DateTimeRangeSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n allDay: this.allDay(),\n allDaySwitch: this.allDaySwitch(),\n openEnded: this.openEnded(),\n timeLayout: this.timeLayout(),\n stepMinutes: this.stepMinutes(),\n minuteStep: this.minuteStep(),\n hour12: this.hour12(),\n defaultTime: this.defaultTime(),\n editable: this.editable(),\n format: this.format(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n isSlotDisabled: this.isSlotDisabled(),\n min: this.min(),\n max: this.max(),\n locale: this.locale(),\n disabled: this.disabled() || this.formDisabled(),\n startLabel: this.startLabel(),\n endLabel: this.endLabel(),\n endBeforeStartMessage: this.endBeforeStartMessage(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly range: DateTimeRangeInstance = createDateTimeRange(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (next) => {\n this.allDay.set(next.allDay === true);\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.range.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.range.destroy());\n }\n\n /** Clears the selection and tells any form control about it. */\n clear(): void {\n this.range.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: DateTimeRangeValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n /**\n * Typed `unknown` because that is what a form control holds: a string from\n * a back end, a Date from older code, or the library's own objects.\n */\n writeValue(value: unknown): void {\n if (value === null || value === undefined) {\n this.value.set({ start: null, end: null });\n return;\n }\n const pair = pairIn(value);\n const allDay = (value as { allDay?: boolean }).allDay;\n this.value.set(allDay === undefined ? pair : { ...pair, allDay });\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (next) => fn(pairOut(next, this.valueAs(), { allDay: next.allDay === true }));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal } from '@tzslot/core';\nimport type { DailyWindowsSummary, PlainDate, Weekday } from '@tzslot/core';\nimport {\n createDailyRange,\n type DailyRangeInstance,\n type DailyRangeSettings,\n type DailyRangeValue,\n type RenderCell,\n type TimeLayout,\n} from '@tzslot/dom';\n\nexport type { DailyRangeValue } from '@tzslot/dom';\n\nconst EMPTY: DailyRangeValue = { start: null, end: null, from: null, to: null };\n\n/**\n * `<tz-daily-range>` — a range of days with the same hours on each, from\n * @tzslot/dom, spoken in Angular. \"The 3rd to the 7th, 09:00 to 17:00.\"\n */\n@Component({\n selector: 'tz-daily-range',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DailyRange), multi: true },\n ],\n template: '',\n})\nexport class DailyRange implements ControlValueAccessor {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n readonly value = model<DailyRangeValue>(EMPTY);\n\n /**\n * An IANA identifier. Required in spirit: given here, it wins; left out, it\n * is the zone provideTzslot() settled for the application, and only when\n * nothing was settled anywhere does it fall back to the browser's — which\n * is a guess, and the one thing this library exists not to do silently.\n */\n readonly timeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n readonly stepMinutes = input(30);\n\n /** 'input' (default) for two compact fields, 'list' for times to click. */\n readonly timeLayout = input<TimeLayout>('input');\n\n /** 12-hour fields with an AM/PM button; the locale decides when unset. */\n readonly hour12 = input<boolean | undefined>(undefined);\n\n /** With timeLayout 'columns': minutes between the options. Every minute by default. */\n readonly minuteStep = input(1);\n /** The first and last times offered. */\n readonly minTime = input<string | undefined>(undefined);\n readonly maxTime = input<string | undefined>(undefined);\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly renderCell = input<RenderCell | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly disabled = input(false);\n\n /** Every day's window and the real total, once all four parts are chosen. */\n readonly summary = signal<DailyWindowsSummary | null>(null);\n\n protected readonly formDisabled = signal(false);\n private readonly messages = inject(TZSLOT_MESSAGES);\n\n private readonly settings = computed<Partial<DailyRangeSettings>>(() => ({\n value: this.value(),\n timeZone: this.timeZone(),\n stepMinutes: this.stepMinutes(),\n timeLayout: this.timeLayout(),\n hour12: this.hour12(),\n minuteStep: this.minuteStep(),\n minTime: this.minTime(),\n maxTime: this.maxTime(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n isDateDisabled: this.isDateDisabled(),\n renderCell: this.renderCell(),\n today: this.today(),\n disabled: this.disabled() || this.formDisabled(),\n messages: this.messages,\n }));\n\n /** Created before the required timeZone is bound; the first change detection fills it in. */\n private readonly range: DailyRangeInstance = createDailyRange(inject(ElementRef).nativeElement, {\n messages: this.messages,\n onChange: (next) => {\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n },\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => {\n this.range.update(settings);\n this.summary.set(this.range.summary);\n });\n });\n inject(DestroyRef).onDestroy(() => this.range.destroy());\n }\n\n /** Clears all four parts and tells any form control about it. */\n clear(): void {\n this.range.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: DailyRangeValue) => void = () => {};\n private onTouched: () => void = () => {};\n\n /**\n * A pattern, not a moment: two days and the clock faces repeated over them.\n * `valueAs` has nothing to convert here, which is why this component does\n * not take it — see the note on TzslotDefaults.\n */\n writeValue(value: DailyRangeValue | null): void {\n this.value.set(value ?? EMPTY);\n }\n registerOnChange(fn: (value: DailyRangeValue) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n signal,\n untracked,\n viewChild,\n type AfterViewInit,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms';\nimport { TZSLOT_MESSAGES } from './messages.js';\nimport { TZSLOT_DEFAULTS } from './defaults.js';\n\nimport { Temporal, toPlainDate, fromPlainDate } from '@tzslot/core';\nimport type { PlainDate, Weekday, ValueShape, DateLike } from '@tzslot/core';\nimport {\n createMultiDate,\n type CalendarButton,\n type CalendarView,\n type MultiDateInstance,\n type MultiDateSettings,\n type RenderCell,\n type YearMonth,\n} from '@tzslot/dom';\n\n/**\n * `<tz-multi-date>` — several days, not necessarily next to each other, from\n * @tzslot/dom, spoken in Angular. The value is always in date order.\n */\n@Component({\n selector: 'tz-multi-date',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultiDate), multi: true },\n ],\n template: `\n <span #prev hidden><ng-content select=\"[tzPrev]\" /></span>\n <span #next hidden><ng-content select=\"[tzNext]\" /></span>\n `,\n})\nexport class MultiDate implements ControlValueAccessor, AfterViewInit {\n /** Set once for the application with provideTzslot(); a binding still wins. */\n private readonly defaults = inject(TZSLOT_DEFAULTS);\n\n /** The chosen days, in date order. Two-way: `[(value)]`. */\n readonly value = model<readonly PlainDate[]>([]);\n\n /** Once this many are chosen, the other days stop taking clicks. */\n readonly maxDates = input<number | undefined>(undefined);\n\n /** Left out, the locale decides — see `provideTzslot` to settle it once. */\n readonly firstDayOfWeek = input<Weekday | undefined>(this.defaults.firstDayOfWeek);\n readonly locale = input<string | undefined>(this.defaults.locale);\n readonly min = input<PlainDate | null>(null);\n readonly max = input<PlainDate | null>(null);\n readonly disabled = input(false);\n readonly isDateDisabled = input<((date: PlainDate) => boolean) | undefined>(undefined);\n readonly today = input<PlainDate>(Temporal.Now.plainDateISO());\n readonly view = model<CalendarView>('days');\n readonly renderCell = input<RenderCell | undefined>(undefined);\n /** A column of ISO week numbers down the left. */\n readonly weekNumbers = input(false);\n\n readonly buttons = input<readonly CalendarButton[]>([]);\n\n /** What the form control holds, each day as a Temporal date, a Date, or an ISO string. */\n readonly valueAs = input<ValueShape>(this.defaults.valueAs ?? 'temporal');\n /** The zone a Date is read in. Only consulted when valueAs is 'date'. */\n readonly valueTimeZone = input<string>(this.defaults.timeZone ?? Temporal.Now.timeZoneId());\n\n protected readonly formDisabled = signal(false);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly messages = inject(TZSLOT_MESSAGES);\n private readonly prevSlot = viewChild.required<ElementRef<HTMLElement>>('prev');\n private readonly nextSlot = viewChild.required<ElementRef<HTMLElement>>('next');\n\n private readonly settings = computed<Partial<MultiDateSettings>>(() => ({\n value: this.value(),\n maxDates: this.maxDates(),\n view: this.view(),\n firstDayOfWeek: this.firstDayOfWeek(),\n locale: this.locale(),\n min: this.min(),\n max: this.max(),\n disabled: this.disabled() || this.formDisabled(),\n isDateDisabled: this.isDateDisabled(),\n today: this.today(),\n renderCell: this.renderCell(),\n buttons: this.buttons(),\n weekNumbers: this.weekNumbers(),\n messages: this.messages,\n }));\n\n private readonly calendar: MultiDateInstance = createMultiDate(this.host, {\n ...untracked(this.settings),\n onChange: (dates) => {\n this.value.set(dates);\n this.onChange(dates);\n this.onTouched();\n },\n onViewChange: (view) => this.view.set(view),\n });\n\n constructor() {\n // The settings are read here, so the effect follows them; the call into the\n // widget runs untracked. A widget may answer by calling back — closing a\n // panel, say — and a callback that writes a signal inside an effect is an\n // error on Angular 18 (NG0600), and a hidden dependency on any version.\n effect(() => {\n const settings = this.settings();\n untracked(() => this.calendar.update(settings));\n });\n inject(DestroyRef).onDestroy(() => this.calendar.destroy());\n }\n\n ngAfterViewInit(): void {\n const projected = (slot: ElementRef<HTMLElement>) => {\n const nodes = Array.from(slot.nativeElement.childNodes);\n if (!nodes.some((n) => n.nodeType === Node.ELEMENT_NODE || n.textContent?.trim())) return undefined;\n const fragment = this.host.ownerDocument.createDocumentFragment();\n fragment.append(...nodes);\n return fragment;\n };\n this.calendar.setIcons({ prev: projected(this.prevSlot()), next: projected(this.nextSlot()) });\n }\n\n /** Moves the grid without choosing anything. */\n goTo(date: PlainDate | YearMonth): void {\n this.calendar.goTo({ year: date.year, month: date.month });\n }\n\n /** Empties the selection and tells any form control about it. */\n clear(): void {\n this.calendar.clear();\n }\n\n // ── ControlValueAccessor ────────────────────────────────────\n\n private onChange: (value: readonly PlainDate[]) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: readonly DateLike[] | null): void {\n const days = (value ?? []).map((d) => toPlainDate(d, this.valueTimeZone()));\n this.value.set([...days].sort(Temporal.PlainDate.compare));\n }\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = (dates) =>\n fn(dates.map((d) => fromPlainDate(d, this.valueAs(), this.valueTimeZone())));\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled.set(isDisabled);\n }\n}\n","/**\n * @tzslot/ui — Angular components over the core.\n *\n * Angular CDK only; no Material, no design system. Structural class names and\n * CSS custom properties (--tz-*), so a consumer restyles without fighting\n * specificity.\n */\nexport { TimeSlotPicker } from './time-slot-picker.js';\nexport { TZSLOT_MESSAGES, provideTzslotMessages, EN, FR } from './messages.js';\nexport { TZSLOT_DEFAULTS, provideTzslot } from './defaults.js';\nexport { pairIn, pairOut } from './shapes.js';\nexport type { MomentPair } from './shapes.js';\nexport type { TzslotDefaults } from './defaults.js';\nexport type { TzslotMessages } from './messages.js';\nexport { Calendar } from './calendar.js';\nexport type { CalendarView } from './calendar.js';\nexport type {\n CalendarButton,\n CellRender,\n DayCellInfo,\n RenderCell,\n} from '@tzslot/dom';\nexport { DateField } from './date-field.js';\nexport { DateTimeField } from './datetime-field.js';\nexport { RangeField } from './range-field.js';\nexport type { RangeFieldValue, RangePreset } from './range-field.js';\nexport { DateRange } from './date-range.js';\nexport { DateTimeRange } from './datetime-range.js';\nexport { DailyRange } from './daily-range.js';\nexport { MultiDate } from './multi-date.js';\nexport type { TimeLayout } from '@tzslot/dom';\nexport type { DailyRangeValue } from './daily-range.js';\nexport type { DateTimeRangeValue } from './datetime-range.js';\nexport type { DateRangeValue } from './date-range.js';\nexport type { FieldMode } from './date-field.js';\nexport type { SlotChoice } from './time-slot-picker.js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EMPTY"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tzslot/angular",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Angular components for DST-safe date and time selection: signals, forms, no design system.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@tzslot/core": "^1.
|
|
9
|
-
"@tzslot/dom": "^1.
|
|
8
|
+
"@tzslot/core": "^1.1.0",
|
|
9
|
+
"@tzslot/dom": "^1.1.0",
|
|
10
10
|
"tslib": "^2.3.0"
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
@@ -345,6 +345,8 @@ declare class DateTimeField implements ControlValueAccessor, AfterViewInit {
|
|
|
345
345
|
* Counted on the zone's clocks, so a day is 23 or 25 hours when they change.
|
|
346
346
|
*/
|
|
347
347
|
readonly shift: _angular_core.InputSignal<false | DurationLike | readonly ShiftOption[]>;
|
|
348
|
+
/** Whether the step sits between the arrows, to be read and pressed. */
|
|
349
|
+
readonly showStep: _angular_core.InputSignal<boolean>;
|
|
348
350
|
readonly stepMinutes: _angular_core.InputSignal<number>;
|
|
349
351
|
/** With timeLayout 'select': minutes between the options. Every minute by default. */
|
|
350
352
|
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
@@ -402,7 +404,7 @@ declare class DateTimeField implements ControlValueAccessor, AfterViewInit {
|
|
|
402
404
|
registerOnTouched(fn: () => void): void;
|
|
403
405
|
setDisabledState(isDisabled: boolean): void;
|
|
404
406
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeField, never>;
|
|
405
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimeField, "tz-datetime-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "timeLayout": { "alias": "timeLayout"; "required": false; "isSignal": true; }; "snapMinutes": { "alias": "snapMinutes"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "stepMinutes": { "alias": "stepMinutes"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "isSlotDisabled": { "alias": "isSlotDisabled"; "required": false; "isSignal": true; }; "hour12": { "alias": "hour12"; "required": false; "isSignal": true; }; "defaultTime": { "alias": "defaultTime"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "dateStyle": { "alias": "dateStyle"; "required": false; "isSignal": true; }; "timeStyle": { "alias": "timeStyle"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "renderCell": { "alias": "renderCell"; "required": false; "isSignal": true; }; "weekNumbers": { "alias": "weekNumbers"; "required": false; "isSignal": true; }; "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; "valueAs": { "alias": "valueAs"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, ["[tzIcon]"], true, never>;
|
|
407
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimeField, "tz-datetime-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "timeLayout": { "alias": "timeLayout"; "required": false; "isSignal": true; }; "snapMinutes": { "alias": "snapMinutes"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "showStep": { "alias": "showStep"; "required": false; "isSignal": true; }; "stepMinutes": { "alias": "stepMinutes"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "isSlotDisabled": { "alias": "isSlotDisabled"; "required": false; "isSignal": true; }; "hour12": { "alias": "hour12"; "required": false; "isSignal": true; }; "defaultTime": { "alias": "defaultTime"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "dateStyle": { "alias": "dateStyle"; "required": false; "isSignal": true; }; "timeStyle": { "alias": "timeStyle"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "renderCell": { "alias": "renderCell"; "required": false; "isSignal": true; }; "weekNumbers": { "alias": "weekNumbers"; "required": false; "isSignal": true; }; "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; "valueAs": { "alias": "valueAs"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, ["[tzIcon]"], true, never>;
|
|
406
408
|
}
|
|
407
409
|
|
|
408
410
|
/**
|
|
@@ -473,11 +475,20 @@ declare class RangeField implements ControlValueAccessor {
|
|
|
473
475
|
/** Nothing is reported until Apply is pressed. */
|
|
474
476
|
readonly confirm: _angular_core.InputSignal<boolean>;
|
|
475
477
|
/**
|
|
476
|
-
* Arrows that step the whole period without opening the panel.
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
|
|
480
|
-
|
|
478
|
+
* Arrows that step the whole period without opening the panel.
|
|
479
|
+
*
|
|
480
|
+
* `false` — the default — draws none. `true` draws them and follows what is
|
|
481
|
+
* being chosen: an hour for a period, a day when `singleDay` says it is one
|
|
482
|
+
* date. A duration such as `{ months: 3 }` or `'45mn'` imposes the step; a
|
|
483
|
+
* list offers several and lets the reader pick.
|
|
484
|
+
*/
|
|
485
|
+
readonly shift: _angular_core.InputSignal<boolean | readonly ShiftOption[] | ShiftStep>;
|
|
486
|
+
/** Whether the column of shortcuts is drawn. The list itself is kept. */
|
|
487
|
+
readonly showPresets: _angular_core.InputSignal<boolean>;
|
|
488
|
+
/** Whether the step sits between the arrows, to be read and pressed. */
|
|
489
|
+
readonly showStep: _angular_core.InputSignal<boolean>;
|
|
490
|
+
/** One field instead of two; a click means that whole day. */
|
|
491
|
+
readonly singleDay: _angular_core.InputSignal<boolean>;
|
|
481
492
|
readonly months: _angular_core.InputSignal<number>;
|
|
482
493
|
readonly weekNumbers: _angular_core.InputSignal<boolean>;
|
|
483
494
|
/** Left out, the locale decides — see `provideTzslot` to settle it once. */
|
|
@@ -551,7 +562,7 @@ declare class RangeField implements ControlValueAccessor {
|
|
|
551
562
|
registerOnTouched(fn: () => void): void;
|
|
552
563
|
setDisabledState(isDisabled: boolean): void;
|
|
553
564
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RangeField, never>;
|
|
554
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RangeField, "tz-range-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueAs": { "alias": "valueAs"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "openEnded": { "alias": "openEnded"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "timeLayout": { "alias": "timeLayout"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "defaultTimes": { "alias": "defaultTimes"; "required": false; "isSignal": true; }; "stepMinutes": { "alias": "stepMinutes"; "required": false; "isSignal": true; }; "snapMinutes": { "alias": "snapMinutes"; "required": false; "isSignal": true; }; "maxSpan": { "alias": "maxSpan"; "required": false; "isSignal": true; }; "minSpan": { "alias": "minSpan"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "confirm": { "alias": "confirm"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "months": { "alias": "months"; "required": false; "isSignal": true; }; "weekNumbers": { "alias": "weekNumbers"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; "isSignal": true; }; "renderCell": { "alias": "renderCell"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "now": { "alias": "now"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "fieldIcon": { "alias": "fieldIcon"; "required": false; "isSignal": true; }; "fieldIconSide": { "alias": "fieldIconSide"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
565
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RangeField, "tz-range-field", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueAs": { "alias": "valueAs"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "openEnded": { "alias": "openEnded"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "timeLayout": { "alias": "timeLayout"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "defaultTimes": { "alias": "defaultTimes"; "required": false; "isSignal": true; }; "stepMinutes": { "alias": "stepMinutes"; "required": false; "isSignal": true; }; "snapMinutes": { "alias": "snapMinutes"; "required": false; "isSignal": true; }; "maxSpan": { "alias": "maxSpan"; "required": false; "isSignal": true; }; "minSpan": { "alias": "minSpan"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "confirm": { "alias": "confirm"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "showStep": { "alias": "showStep"; "required": false; "isSignal": true; }; "singleDay": { "alias": "singleDay"; "required": false; "isSignal": true; }; "months": { "alias": "months"; "required": false; "isSignal": true; }; "weekNumbers": { "alias": "weekNumbers"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; "isSignal": true; }; "renderCell": { "alias": "renderCell"; "required": false; "isSignal": true; }; "today": { "alias": "today"; "required": false; "isSignal": true; }; "now": { "alias": "now"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "fieldIcon": { "alias": "fieldIcon"; "required": false; "isSignal": true; }; "fieldIconSide": { "alias": "fieldIconSide"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
555
566
|
}
|
|
556
567
|
|
|
557
568
|
/** `<tz-date-range>` — the range from @tzslot/dom, spoken in Angular. */
|