@wirekyt/angular 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fesm2022/wirekyt-angular-accordion.mjs +58 -22
- package/dist/fesm2022/wirekyt-angular-accordion.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-color-picker.mjs +92 -9
- package/dist/fesm2022/wirekyt-angular-color-picker.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-combobox.mjs +44 -74
- package/dist/fesm2022/wirekyt-angular-combobox.mjs.map +1 -1
- package/dist/fesm2022/wirekyt-angular-date-input.mjs +532 -0
- package/dist/fesm2022/wirekyt-angular-date-input.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-date-picker.mjs +1315 -0
- package/dist/fesm2022/wirekyt-angular-date-picker.mjs.map +1 -0
- package/dist/fesm2022/wirekyt-angular-presence.mjs +176 -0
- package/dist/fesm2022/wirekyt-angular-presence.mjs.map +1 -0
- package/dist/package.json +17 -5
- package/dist/types/wirekyt-angular-accordion.d.ts +5 -1
- package/dist/types/wirekyt-angular-accordion.d.ts.map +1 -1
- package/dist/types/wirekyt-angular-color-picker.d.ts +7 -3
- package/dist/types/wirekyt-angular-color-picker.d.ts.map +1 -1
- package/dist/types/wirekyt-angular-combobox.d.ts +7 -39
- package/dist/types/wirekyt-angular-combobox.d.ts.map +1 -1
- package/dist/types/wirekyt-angular-date-input.d.ts +164 -0
- package/dist/types/wirekyt-angular-date-input.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-date-picker.d.ts +340 -0
- package/dist/types/wirekyt-angular-date-picker.d.ts.map +1 -0
- package/dist/types/wirekyt-angular-presence.d.ts +64 -0
- package/dist/types/wirekyt-angular-presence.d.ts.map +1 -0
- package/package.json +19 -7
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
import * as dateInput from '@wirekyt/dom/machines/date-input';
|
|
2
|
+
export { anatomy as dateInputAnatomy } from '@wirekyt/dom/machines/date-input';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { InjectionToken, inject, input, model, booleanAttribute, output, signal, effect, DestroyRef, Renderer2, ElementRef, forwardRef, Directive, computed, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
5
|
+
import { injectLocale, injectEnvironment, createId, useMachine, createCvaController, bindProps } from '@wirekyt/angular';
|
|
6
|
+
import { injectFieldContextOptional } from '@wirekyt/angular/field';
|
|
7
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
+
|
|
9
|
+
const DATE_INPUT_CONTEXT = new InjectionToken("WIREKYT.DATE_INPUT_CONTEXT");
|
|
10
|
+
function injectDateInputContext() {
|
|
11
|
+
return inject(DATE_INPUT_CONTEXT);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function useDateInput(options) {
|
|
15
|
+
const locale = injectLocale();
|
|
16
|
+
const environment = injectEnvironment();
|
|
17
|
+
const field = injectFieldContextOptional();
|
|
18
|
+
const fallbackId = createId();
|
|
19
|
+
return useMachine({
|
|
20
|
+
machine: dateInput.machine,
|
|
21
|
+
context: () => {
|
|
22
|
+
const props = options.context();
|
|
23
|
+
const merged = {
|
|
24
|
+
...props,
|
|
25
|
+
dir: locale.dir,
|
|
26
|
+
getRootNode: environment.getRootNode,
|
|
27
|
+
id: props.id ?? fallbackId,
|
|
28
|
+
locale: props.locale ?? locale.locale,
|
|
29
|
+
};
|
|
30
|
+
if (field) {
|
|
31
|
+
merged.ids = {
|
|
32
|
+
label: () => field.ids.label,
|
|
33
|
+
hiddenInput: () => field.ids.control,
|
|
34
|
+
...props.ids,
|
|
35
|
+
};
|
|
36
|
+
merged.disabled = Boolean(props.disabled) || field.disabled() || undefined;
|
|
37
|
+
merged.readOnly = Boolean(props.readOnly) || field.readOnly() || undefined;
|
|
38
|
+
merged.required = Boolean(props.required) || field.required() || undefined;
|
|
39
|
+
merged.invalid = Boolean(props.invalid) || field.invalid() || undefined;
|
|
40
|
+
}
|
|
41
|
+
return merged;
|
|
42
|
+
},
|
|
43
|
+
connect: (service, normalize) => dateInput.connect(service, normalize),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
class DateInputRoot {
|
|
48
|
+
id = input(undefined, /* @ts-ignore */
|
|
49
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
50
|
+
ids = input(undefined, /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
|
|
52
|
+
value = model(undefined, /* @ts-ignore */
|
|
53
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
54
|
+
defaultValue = input(undefined, /* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [{ debugName: "defaultValue" }] : /* istanbul ignore next */ []));
|
|
56
|
+
placeholderValue = model(undefined, /* @ts-ignore */
|
|
57
|
+
...(ngDevMode ? [{ debugName: "placeholderValue" }] : /* istanbul ignore next */ []));
|
|
58
|
+
defaultPlaceholderValue = input(undefined, /* @ts-ignore */
|
|
59
|
+
...(ngDevMode ? [{ debugName: "defaultPlaceholderValue" }] : /* istanbul ignore next */ []));
|
|
60
|
+
min = input(undefined, /* @ts-ignore */
|
|
61
|
+
...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
|
|
62
|
+
max = input(undefined, /* @ts-ignore */
|
|
63
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
64
|
+
selectionMode = input(undefined, /* @ts-ignore */
|
|
65
|
+
...(ngDevMode ? [{ debugName: "selectionMode" }] : /* istanbul ignore next */ []));
|
|
66
|
+
granularity = input(undefined, /* @ts-ignore */
|
|
67
|
+
...(ngDevMode ? [{ debugName: "granularity" }] : /* istanbul ignore next */ []));
|
|
68
|
+
hourCycle = input(undefined, /* @ts-ignore */
|
|
69
|
+
...(ngDevMode ? [{ debugName: "hourCycle" }] : /* istanbul ignore next */ []));
|
|
70
|
+
hideTimeZone = input(false, { ...(ngDevMode ? { debugName: "hideTimeZone" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
71
|
+
locale = input(undefined, /* @ts-ignore */
|
|
72
|
+
...(ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []));
|
|
73
|
+
timeZone = input(undefined, /* @ts-ignore */
|
|
74
|
+
...(ngDevMode ? [{ debugName: "timeZone" }] : /* istanbul ignore next */ []));
|
|
75
|
+
translations = input(undefined, /* @ts-ignore */
|
|
76
|
+
...(ngDevMode ? [{ debugName: "translations" }] : /* istanbul ignore next */ []));
|
|
77
|
+
formatter = input(undefined, /* @ts-ignore */
|
|
78
|
+
...(ngDevMode ? [{ debugName: "formatter" }] : /* istanbul ignore next */ []));
|
|
79
|
+
allSegments = input(undefined, /* @ts-ignore */
|
|
80
|
+
...(ngDevMode ? [{ debugName: "allSegments" }] : /* istanbul ignore next */ []));
|
|
81
|
+
format = input(undefined, /* @ts-ignore */
|
|
82
|
+
...(ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []));
|
|
83
|
+
createCalendar = input(undefined, /* @ts-ignore */
|
|
84
|
+
...(ngDevMode ? [{ debugName: "createCalendar" }] : /* istanbul ignore next */ []));
|
|
85
|
+
isDateUnavailable = input(undefined, /* @ts-ignore */
|
|
86
|
+
...(ngDevMode ? [{ debugName: "isDateUnavailable" }] : /* istanbul ignore next */ []));
|
|
87
|
+
shouldForceLeadingZeros = input(false, { ...(ngDevMode ? { debugName: "shouldForceLeadingZeros" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
88
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
89
|
+
readOnly = input(false, { ...(ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
90
|
+
required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
91
|
+
invalid = input(false, { ...(ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
92
|
+
name = input(undefined, /* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
94
|
+
form = input(undefined, /* @ts-ignore */
|
|
95
|
+
...(ngDevMode ? [{ debugName: "form" }] : /* istanbul ignore next */ []));
|
|
96
|
+
focusChange = output();
|
|
97
|
+
placeholderChange = output();
|
|
98
|
+
valueDetailsChange = output();
|
|
99
|
+
disabledFromForm = signal(false, /* @ts-ignore */
|
|
100
|
+
...(ngDevMode ? [{ debugName: "disabledFromForm" }] : /* istanbul ignore next */ []));
|
|
101
|
+
pendingInternalWrites = 0;
|
|
102
|
+
hasExternalBinding = false;
|
|
103
|
+
hasReceivedFormWrite = false;
|
|
104
|
+
cva = createCvaController({
|
|
105
|
+
value: this.value,
|
|
106
|
+
setDisabled: (disabled) => this.disabledFromForm.set(disabled),
|
|
107
|
+
componentName: "DateInputRoot",
|
|
108
|
+
hasExternalModelBinding: () => this.hasExternalBinding,
|
|
109
|
+
});
|
|
110
|
+
machine = useDateInput({
|
|
111
|
+
context: () => ({
|
|
112
|
+
id: this.id(),
|
|
113
|
+
ids: this.ids(),
|
|
114
|
+
value: this.value(),
|
|
115
|
+
defaultValue: this.defaultValue(),
|
|
116
|
+
placeholderValue: this.placeholderValue(),
|
|
117
|
+
defaultPlaceholderValue: this.defaultPlaceholderValue(),
|
|
118
|
+
min: this.min(),
|
|
119
|
+
max: this.max(),
|
|
120
|
+
selectionMode: this.selectionMode(),
|
|
121
|
+
granularity: this.granularity(),
|
|
122
|
+
hourCycle: this.hourCycle(),
|
|
123
|
+
hideTimeZone: this.hideTimeZone() || undefined,
|
|
124
|
+
locale: this.locale(),
|
|
125
|
+
timeZone: this.timeZone(),
|
|
126
|
+
translations: this.translations(),
|
|
127
|
+
formatter: this.formatter(),
|
|
128
|
+
allSegments: this.allSegments(),
|
|
129
|
+
format: this.format(),
|
|
130
|
+
createCalendar: this.createCalendar(),
|
|
131
|
+
isDateUnavailable: this.isDateUnavailable(),
|
|
132
|
+
shouldForceLeadingZeros: this.shouldForceLeadingZeros() || undefined,
|
|
133
|
+
disabled: this.disabled() || this.disabledFromForm() || undefined,
|
|
134
|
+
readOnly: this.readOnly() || undefined,
|
|
135
|
+
required: this.required() || undefined,
|
|
136
|
+
invalid: this.invalid() || undefined,
|
|
137
|
+
name: this.name(),
|
|
138
|
+
form: this.form(),
|
|
139
|
+
onValueChange: (details) => {
|
|
140
|
+
if (!dateValueArraysEqual(this.value(), details.value)) {
|
|
141
|
+
this.pendingInternalWrites++;
|
|
142
|
+
this.value.set([...details.value]);
|
|
143
|
+
}
|
|
144
|
+
this.cva.notifyValueChange(details.value);
|
|
145
|
+
this.cva.markTouched();
|
|
146
|
+
this.valueDetailsChange.emit(details);
|
|
147
|
+
},
|
|
148
|
+
onPlaceholderChange: (details) => {
|
|
149
|
+
if (!dateValuesEqual(this.placeholderValue(), details.placeholderValue)) {
|
|
150
|
+
this.placeholderValue.set(details.placeholderValue);
|
|
151
|
+
}
|
|
152
|
+
this.placeholderChange.emit(details);
|
|
153
|
+
},
|
|
154
|
+
onFocusChange: (details) => {
|
|
155
|
+
if (!details.focused) {
|
|
156
|
+
this.cva.markTouched();
|
|
157
|
+
}
|
|
158
|
+
this.focusChange.emit(details);
|
|
159
|
+
},
|
|
160
|
+
}),
|
|
161
|
+
});
|
|
162
|
+
state = this.machine.state;
|
|
163
|
+
api = this.machine.api;
|
|
164
|
+
service = this.machine.service;
|
|
165
|
+
send = this.machine.send;
|
|
166
|
+
constructor() {
|
|
167
|
+
let firstRun = true;
|
|
168
|
+
effect(() => {
|
|
169
|
+
void this.value();
|
|
170
|
+
if (firstRun) {
|
|
171
|
+
firstRun = false;
|
|
172
|
+
this.pendingInternalWrites = 0;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (this.pendingInternalWrites > 0) {
|
|
176
|
+
this.pendingInternalWrites--;
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
this.hasExternalBinding = true;
|
|
180
|
+
});
|
|
181
|
+
bindProps({
|
|
182
|
+
elementRef: inject(ElementRef),
|
|
183
|
+
renderer: inject(Renderer2),
|
|
184
|
+
destroyRef: inject(DestroyRef),
|
|
185
|
+
props: () => this.api().getRootProps(),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
writeValue(value) {
|
|
189
|
+
const next = value === null ? undefined : value;
|
|
190
|
+
const current = this.value();
|
|
191
|
+
if (!this.hasReceivedFormWrite && current !== undefined) {
|
|
192
|
+
this.hasExternalBinding = true;
|
|
193
|
+
}
|
|
194
|
+
this.hasReceivedFormWrite = true;
|
|
195
|
+
if (current !== next) {
|
|
196
|
+
this.pendingInternalWrites++;
|
|
197
|
+
}
|
|
198
|
+
this.cva.writeValue(value);
|
|
199
|
+
}
|
|
200
|
+
registerOnChange(fn) {
|
|
201
|
+
this.cva.registerOnChange(fn);
|
|
202
|
+
}
|
|
203
|
+
registerOnTouched(fn) {
|
|
204
|
+
this.cva.registerOnTouched(fn);
|
|
205
|
+
}
|
|
206
|
+
setDisabledState(disabled) {
|
|
207
|
+
this.cva.setDisabledState(disabled);
|
|
208
|
+
}
|
|
209
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
210
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: DateInputRoot, isStandalone: true, selector: "[dateInputRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, placeholderValue: { classPropertyName: "placeholderValue", publicName: "placeholderValue", isSignal: true, isRequired: false, transformFunction: null }, defaultPlaceholderValue: { classPropertyName: "defaultPlaceholderValue", publicName: "defaultPlaceholderValue", 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 }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, granularity: { classPropertyName: "granularity", publicName: "granularity", isSignal: true, isRequired: false, transformFunction: null }, hourCycle: { classPropertyName: "hourCycle", publicName: "hourCycle", isSignal: true, isRequired: false, transformFunction: null }, hideTimeZone: { classPropertyName: "hideTimeZone", publicName: "hideTimeZone", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, timeZone: { classPropertyName: "timeZone", publicName: "timeZone", isSignal: true, isRequired: false, transformFunction: null }, translations: { classPropertyName: "translations", publicName: "translations", isSignal: true, isRequired: false, transformFunction: null }, formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, allSegments: { classPropertyName: "allSegments", publicName: "allSegments", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, createCalendar: { classPropertyName: "createCalendar", publicName: "createCalendar", isSignal: true, isRequired: false, transformFunction: null }, isDateUnavailable: { classPropertyName: "isDateUnavailable", publicName: "isDateUnavailable", isSignal: true, isRequired: false, transformFunction: null }, shouldForceLeadingZeros: { classPropertyName: "shouldForceLeadingZeros", publicName: "shouldForceLeadingZeros", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", placeholderValue: "placeholderValueChange", focusChange: "focusChange", placeholderChange: "placeholderChange", valueDetailsChange: "valueDetailsChange" }, providers: [
|
|
211
|
+
{ provide: DATE_INPUT_CONTEXT, useExisting: forwardRef(() => DateInputRoot) },
|
|
212
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputRoot), multi: true },
|
|
213
|
+
], exportAs: ["dateInputRoot"], ngImport: i0 });
|
|
214
|
+
}
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputRoot, decorators: [{
|
|
216
|
+
type: Directive,
|
|
217
|
+
args: [{
|
|
218
|
+
selector: "[dateInputRoot]",
|
|
219
|
+
standalone: true,
|
|
220
|
+
exportAs: "dateInputRoot",
|
|
221
|
+
providers: [
|
|
222
|
+
{ provide: DATE_INPUT_CONTEXT, useExisting: forwardRef(() => DateInputRoot) },
|
|
223
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputRoot), multi: true },
|
|
224
|
+
],
|
|
225
|
+
}]
|
|
226
|
+
}], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], placeholderValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholderValue", required: false }] }, { type: i0.Output, args: ["placeholderValueChange"] }], defaultPlaceholderValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultPlaceholderValue", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], granularity: [{ type: i0.Input, args: [{ isSignal: true, alias: "granularity", required: false }] }], hourCycle: [{ type: i0.Input, args: [{ isSignal: true, alias: "hourCycle", required: false }] }], hideTimeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideTimeZone", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], timeZone: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeZone", required: false }] }], translations: [{ type: i0.Input, args: [{ isSignal: true, alias: "translations", required: false }] }], formatter: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatter", required: false }] }], allSegments: [{ type: i0.Input, args: [{ isSignal: true, alias: "allSegments", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], createCalendar: [{ type: i0.Input, args: [{ isSignal: true, alias: "createCalendar", required: false }] }], isDateUnavailable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDateUnavailable", required: false }] }], shouldForceLeadingZeros: [{ type: i0.Input, args: [{ isSignal: true, alias: "shouldForceLeadingZeros", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], focusChange: [{ type: i0.Output, args: ["focusChange"] }], placeholderChange: [{ type: i0.Output, args: ["placeholderChange"] }], valueDetailsChange: [{ type: i0.Output, args: ["valueDetailsChange"] }] } });
|
|
227
|
+
function dateValueArraysEqual(a, b) {
|
|
228
|
+
if (a === b)
|
|
229
|
+
return true;
|
|
230
|
+
if (!a || !b)
|
|
231
|
+
return false;
|
|
232
|
+
if (a.length !== b.length)
|
|
233
|
+
return false;
|
|
234
|
+
for (let i = 0; i < a.length; i++) {
|
|
235
|
+
if (String(a[i]) !== String(b[i]))
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
function dateValuesEqual(a, b) {
|
|
241
|
+
if (a === b)
|
|
242
|
+
return true;
|
|
243
|
+
if (!a || !b)
|
|
244
|
+
return false;
|
|
245
|
+
return String(a) === String(b);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
class DateInputRootProvider {
|
|
249
|
+
value = input.required(/* @ts-ignore */
|
|
250
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
251
|
+
state = computed(() => this.value().state(), /* @ts-ignore */
|
|
252
|
+
...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
253
|
+
api = computed(() => this.value().api(), /* @ts-ignore */
|
|
254
|
+
...(ngDevMode ? [{ debugName: "api" }] : /* istanbul ignore next */ []));
|
|
255
|
+
send = (event) => this.value().send(event);
|
|
256
|
+
get service() {
|
|
257
|
+
return this.value().service;
|
|
258
|
+
}
|
|
259
|
+
constructor() {
|
|
260
|
+
bindProps({
|
|
261
|
+
elementRef: inject(ElementRef),
|
|
262
|
+
renderer: inject(Renderer2),
|
|
263
|
+
destroyRef: inject(DestroyRef),
|
|
264
|
+
props: () => this.api().getRootProps(),
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputRootProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
268
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: DateInputRootProvider, isStandalone: true, selector: "[dateInputRootProvider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
|
|
269
|
+
{ provide: DATE_INPUT_CONTEXT, useExisting: forwardRef(() => DateInputRootProvider) },
|
|
270
|
+
], exportAs: ["dateInputRootProvider"], ngImport: i0 });
|
|
271
|
+
}
|
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputRootProvider, decorators: [{
|
|
273
|
+
type: Directive,
|
|
274
|
+
args: [{
|
|
275
|
+
selector: "[dateInputRootProvider]",
|
|
276
|
+
standalone: true,
|
|
277
|
+
exportAs: "dateInputRootProvider",
|
|
278
|
+
providers: [
|
|
279
|
+
{ provide: DATE_INPUT_CONTEXT, useExisting: forwardRef(() => DateInputRootProvider) },
|
|
280
|
+
],
|
|
281
|
+
}]
|
|
282
|
+
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
|
|
283
|
+
|
|
284
|
+
class DateInputLabel {
|
|
285
|
+
index = input(undefined, /* @ts-ignore */
|
|
286
|
+
...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
287
|
+
constructor() {
|
|
288
|
+
const context = injectDateInputContext();
|
|
289
|
+
bindProps({
|
|
290
|
+
elementRef: inject(ElementRef),
|
|
291
|
+
renderer: inject(Renderer2),
|
|
292
|
+
destroyRef: inject(DestroyRef),
|
|
293
|
+
props: () => context.api().getLabelProps({ index: this.index() }),
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
297
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: DateInputLabel, isStandalone: true, selector: "[dateInputLabel]", inputs: { index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["dateInputLabel"], ngImport: i0 });
|
|
298
|
+
}
|
|
299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputLabel, decorators: [{
|
|
300
|
+
type: Directive,
|
|
301
|
+
args: [{
|
|
302
|
+
selector: "[dateInputLabel]",
|
|
303
|
+
standalone: true,
|
|
304
|
+
exportAs: "dateInputLabel",
|
|
305
|
+
}]
|
|
306
|
+
}], ctorParameters: () => [], propDecorators: { index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }] } });
|
|
307
|
+
|
|
308
|
+
class DateInputControl {
|
|
309
|
+
constructor() {
|
|
310
|
+
const context = injectDateInputContext();
|
|
311
|
+
bindProps({
|
|
312
|
+
elementRef: inject(ElementRef),
|
|
313
|
+
renderer: inject(Renderer2),
|
|
314
|
+
destroyRef: inject(DestroyRef),
|
|
315
|
+
props: () => context.api().getControlProps(),
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
319
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: DateInputControl, isStandalone: true, selector: "[dateInputControl]", exportAs: ["dateInputControl"], ngImport: i0 });
|
|
320
|
+
}
|
|
321
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputControl, decorators: [{
|
|
322
|
+
type: Directive,
|
|
323
|
+
args: [{
|
|
324
|
+
selector: "[dateInputControl]",
|
|
325
|
+
standalone: true,
|
|
326
|
+
exportAs: "dateInputControl",
|
|
327
|
+
}]
|
|
328
|
+
}], ctorParameters: () => [] });
|
|
329
|
+
|
|
330
|
+
const DATE_INPUT_SEGMENT_GROUP_CONTEXT = new InjectionToken("WIREKYT.DATE_INPUT_SEGMENT_GROUP_CONTEXT");
|
|
331
|
+
function injectDateInputSegmentGroupContext() {
|
|
332
|
+
return inject(DATE_INPUT_SEGMENT_GROUP_CONTEXT);
|
|
333
|
+
}
|
|
334
|
+
class DateInputSegmentGroup {
|
|
335
|
+
/** The range index for this segment group. */
|
|
336
|
+
index = input(undefined, /* @ts-ignore */
|
|
337
|
+
...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
338
|
+
constructor() {
|
|
339
|
+
const context = injectDateInputContext();
|
|
340
|
+
bindProps({
|
|
341
|
+
elementRef: inject(ElementRef),
|
|
342
|
+
renderer: inject(Renderer2),
|
|
343
|
+
destroyRef: inject(DestroyRef),
|
|
344
|
+
props: () => context.api().getSegmentGroupProps({ index: this.index() }),
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputSegmentGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
348
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: DateInputSegmentGroup, isStandalone: true, selector: "[dateInputSegmentGroup]", inputs: { index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
349
|
+
{
|
|
350
|
+
provide: DATE_INPUT_SEGMENT_GROUP_CONTEXT,
|
|
351
|
+
useExisting: forwardRef(() => DateInputSegmentGroup),
|
|
352
|
+
},
|
|
353
|
+
], exportAs: ["dateInputSegmentGroup"], ngImport: i0 });
|
|
354
|
+
}
|
|
355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputSegmentGroup, decorators: [{
|
|
356
|
+
type: Directive,
|
|
357
|
+
args: [{
|
|
358
|
+
selector: "[dateInputSegmentGroup]",
|
|
359
|
+
standalone: true,
|
|
360
|
+
exportAs: "dateInputSegmentGroup",
|
|
361
|
+
providers: [
|
|
362
|
+
{
|
|
363
|
+
provide: DATE_INPUT_SEGMENT_GROUP_CONTEXT,
|
|
364
|
+
useExisting: forwardRef(() => DateInputSegmentGroup),
|
|
365
|
+
},
|
|
366
|
+
],
|
|
367
|
+
}]
|
|
368
|
+
}], ctorParameters: () => [], propDecorators: { index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }] } });
|
|
369
|
+
|
|
370
|
+
class DateInputSegment {
|
|
371
|
+
segment = input.required(/* @ts-ignore */
|
|
372
|
+
...(ngDevMode ? [{ debugName: "segment" }] : /* istanbul ignore next */ []));
|
|
373
|
+
ownsTextContent = signal(false, /* @ts-ignore */
|
|
374
|
+
...(ngDevMode ? [{ debugName: "ownsTextContent" }] : /* istanbul ignore next */ []));
|
|
375
|
+
elementRef = inject(ElementRef);
|
|
376
|
+
constructor() {
|
|
377
|
+
const context = injectDateInputContext();
|
|
378
|
+
const segmentGroup = injectDateInputSegmentGroupContext();
|
|
379
|
+
const renderer = inject(Renderer2);
|
|
380
|
+
bindProps({
|
|
381
|
+
elementRef: this.elementRef,
|
|
382
|
+
renderer,
|
|
383
|
+
destroyRef: inject(DestroyRef),
|
|
384
|
+
props: () => context.api().getSegmentProps({ segment: this.segment(), index: segmentGroup.index() }),
|
|
385
|
+
});
|
|
386
|
+
effect(() => {
|
|
387
|
+
if (!this.ownsTextContent())
|
|
388
|
+
return;
|
|
389
|
+
renderer.setProperty(this.elementRef.nativeElement, "textContent", this.segment().text);
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
ngAfterContentInit() {
|
|
393
|
+
this.ownsTextContent.set(this.elementRef.nativeElement.childNodes.length === 0);
|
|
394
|
+
}
|
|
395
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputSegment, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
396
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: DateInputSegment, isStandalone: true, selector: "[dateInputSegment]", inputs: { segment: { classPropertyName: "segment", publicName: "segment", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["dateInputSegment"], ngImport: i0 });
|
|
397
|
+
}
|
|
398
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputSegment, decorators: [{
|
|
399
|
+
type: Directive,
|
|
400
|
+
args: [{
|
|
401
|
+
selector: "[dateInputSegment]",
|
|
402
|
+
standalone: true,
|
|
403
|
+
exportAs: "dateInputSegment",
|
|
404
|
+
}]
|
|
405
|
+
}], ctorParameters: () => [], propDecorators: { segment: [{ type: i0.Input, args: [{ isSignal: true, alias: "segment", required: true }] }] } });
|
|
406
|
+
|
|
407
|
+
class DateInputHiddenInput {
|
|
408
|
+
index = input(undefined, /* @ts-ignore */
|
|
409
|
+
...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
|
|
410
|
+
name = input(undefined, /* @ts-ignore */
|
|
411
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
412
|
+
constructor() {
|
|
413
|
+
const context = injectDateInputContext();
|
|
414
|
+
const field = injectFieldContextOptional();
|
|
415
|
+
bindProps({
|
|
416
|
+
elementRef: inject(ElementRef),
|
|
417
|
+
renderer: inject(Renderer2),
|
|
418
|
+
destroyRef: inject(DestroyRef),
|
|
419
|
+
props: () => ({
|
|
420
|
+
"aria-describedby": field?.ariaDescribedby(),
|
|
421
|
+
...context.api().getHiddenInputProps({ index: this.index(), name: this.name() }),
|
|
422
|
+
}),
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputHiddenInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
426
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: DateInputHiddenInput, isStandalone: true, selector: "input[dateInputHiddenInput]", inputs: { index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["dateInputHiddenInput"], ngImport: i0 });
|
|
427
|
+
}
|
|
428
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputHiddenInput, decorators: [{
|
|
429
|
+
type: Directive,
|
|
430
|
+
args: [{
|
|
431
|
+
selector: "input[dateInputHiddenInput]",
|
|
432
|
+
standalone: true,
|
|
433
|
+
exportAs: "dateInputHiddenInput",
|
|
434
|
+
}]
|
|
435
|
+
}], ctorParameters: () => [], propDecorators: { index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }] } });
|
|
436
|
+
|
|
437
|
+
class DateInputContext {
|
|
438
|
+
static ngTemplateContextGuard(_directive, context) {
|
|
439
|
+
void context;
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
dateInput = injectDateInputContext();
|
|
443
|
+
templateRef = inject(TemplateRef);
|
|
444
|
+
viewContainer = inject(ViewContainerRef);
|
|
445
|
+
constructor() {
|
|
446
|
+
const view = this.viewContainer.createEmbeddedView(this.templateRef, {
|
|
447
|
+
$implicit: this.dateInput.api,
|
|
448
|
+
api: this.dateInput.api,
|
|
449
|
+
});
|
|
450
|
+
effect(() => {
|
|
451
|
+
this.dateInput.api();
|
|
452
|
+
view.detectChanges();
|
|
453
|
+
});
|
|
454
|
+
inject(DestroyRef).onDestroy(() => view.destroy());
|
|
455
|
+
}
|
|
456
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputContext, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
457
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: DateInputContext, isStandalone: true, selector: "[dateInputContext]", exportAs: ["dateInputContext"], ngImport: i0 });
|
|
458
|
+
}
|
|
459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputContext, decorators: [{
|
|
460
|
+
type: Directive,
|
|
461
|
+
args: [{
|
|
462
|
+
selector: "[dateInputContext]",
|
|
463
|
+
standalone: true,
|
|
464
|
+
exportAs: "dateInputContext",
|
|
465
|
+
}]
|
|
466
|
+
}], ctorParameters: () => [] });
|
|
467
|
+
|
|
468
|
+
class DateInputSegmentContext {
|
|
469
|
+
static ngTemplateContextGuard(_directive, context) {
|
|
470
|
+
void context;
|
|
471
|
+
return true;
|
|
472
|
+
}
|
|
473
|
+
dateInput = injectDateInputContext();
|
|
474
|
+
segmentGroup = injectDateInputSegmentGroupContext();
|
|
475
|
+
templateRef = inject(TemplateRef);
|
|
476
|
+
viewContainer = inject(ViewContainerRef);
|
|
477
|
+
views = [];
|
|
478
|
+
constructor() {
|
|
479
|
+
effect(() => {
|
|
480
|
+
const segments = this.dateInput.api().getSegments({ index: this.segmentGroup.index() });
|
|
481
|
+
this.syncSegmentViews(segments);
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
syncSegmentViews(segments) {
|
|
485
|
+
const nextViews = [];
|
|
486
|
+
segments.forEach((segment, index) => {
|
|
487
|
+
const key = `${index}:${segment.type}`;
|
|
488
|
+
const existingIndex = this.views.findIndex((entry) => entry.key === key);
|
|
489
|
+
const entry = existingIndex >= 0
|
|
490
|
+
? this.views.splice(existingIndex, 1)[0]
|
|
491
|
+
: {
|
|
492
|
+
key,
|
|
493
|
+
view: this.viewContainer.createEmbeddedView(this.templateRef, {
|
|
494
|
+
$implicit: segment,
|
|
495
|
+
segment,
|
|
496
|
+
index,
|
|
497
|
+
}),
|
|
498
|
+
};
|
|
499
|
+
entry.view.context.$implicit = segment;
|
|
500
|
+
entry.view.context.segment = segment;
|
|
501
|
+
entry.view.context.index = index;
|
|
502
|
+
nextViews.push(entry);
|
|
503
|
+
const currentIndex = this.viewContainer.indexOf(entry.view);
|
|
504
|
+
if (currentIndex !== index) {
|
|
505
|
+
this.viewContainer.move(entry.view, index);
|
|
506
|
+
}
|
|
507
|
+
entry.view.detectChanges();
|
|
508
|
+
});
|
|
509
|
+
for (const entry of this.views) {
|
|
510
|
+
entry.view.destroy();
|
|
511
|
+
}
|
|
512
|
+
this.views.length = 0;
|
|
513
|
+
this.views.push(...nextViews);
|
|
514
|
+
}
|
|
515
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputSegmentContext, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
516
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: DateInputSegmentContext, isStandalone: true, selector: "[dateInputSegmentContext]", exportAs: ["dateInputSegmentContext"], ngImport: i0 });
|
|
517
|
+
}
|
|
518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: DateInputSegmentContext, decorators: [{
|
|
519
|
+
type: Directive,
|
|
520
|
+
args: [{
|
|
521
|
+
selector: "[dateInputSegmentContext]",
|
|
522
|
+
standalone: true,
|
|
523
|
+
exportAs: "dateInputSegmentContext",
|
|
524
|
+
}]
|
|
525
|
+
}], ctorParameters: () => [] });
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* Generated bundle index. Do not edit.
|
|
529
|
+
*/
|
|
530
|
+
|
|
531
|
+
export { DATE_INPUT_CONTEXT, DATE_INPUT_SEGMENT_GROUP_CONTEXT, DateInputContext, DateInputControl, DateInputHiddenInput, DateInputLabel, DateInputRoot, DateInputRootProvider, DateInputSegment, DateInputSegmentContext, DateInputSegmentGroup, injectDateInputContext, injectDateInputSegmentGroupContext, useDateInput };
|
|
532
|
+
//# sourceMappingURL=wirekyt-angular-date-input.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wirekyt-angular-date-input.mjs","sources":["../../src/components/date-input/use-context.ts","../../src/components/date-input/use.ts","../../src/components/date-input/root.ts","../../src/components/date-input/root-provider.ts","../../src/components/date-input/label.ts","../../src/components/date-input/control.ts","../../src/components/date-input/segment-group.ts","../../src/components/date-input/segment.ts","../../src/components/date-input/hidden-input.ts","../../src/components/date-input/context.ts","../../src/components/date-input/segment-context.ts","../../src/components/date-input/wirekyt-angular-date-input.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseDateInputReturn } from \"./use\";\n\nexport const DATE_INPUT_CONTEXT = new InjectionToken<UseDateInputReturn>(\n \"WIREKYT.DATE_INPUT_CONTEXT\",\n);\n\nexport function injectDateInputContext(): UseDateInputReturn {\n return inject(DATE_INPUT_CONTEXT);\n}\n","import type { Machine } from \"@wirekyt/dom\";\n\nimport {\n createId,\n injectEnvironment,\n injectLocale,\n useMachine,\n type UseMachineReturn,\n} from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\nimport * as dateInput from \"@wirekyt/dom/machines/date-input\";\n\ntype OptionalId<T extends { id?: string | undefined }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseDateInputProps extends OptionalId<\n Omit<dateInput.Props, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseDateInputReturn = UseMachineReturn<\n dateInput.Service[\"state\"],\n dateInput.Api,\n dateInput.Service\n>;\n\nexport interface UseDateInputOptions {\n context: () => UseDateInputProps;\n}\n\ntype DateInputContext = Record<string, unknown>;\ntype DateInputSchema = dateInput.Machine extends Machine<infer TSchema> ? TSchema : never;\n\nexport function useDateInput(options: UseDateInputOptions): UseDateInputReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const field = injectFieldContextOptional();\n const fallbackId = createId();\n\n return useMachine<DateInputSchema, dateInput.Api>({\n machine: dateInput.machine,\n context: () => {\n const props = options.context();\n const merged: dateInput.Props = {\n ...props,\n dir: locale.dir,\n getRootNode: environment.getRootNode as () => ShadowRoot | Document | Node,\n id: props.id ?? fallbackId,\n locale: props.locale ?? locale.locale,\n };\n\n if (field) {\n merged.ids = {\n label: () => field.ids.label,\n hiddenInput: () => field.ids.control,\n ...props.ids,\n };\n merged.disabled = Boolean(props.disabled) || field.disabled() || undefined;\n merged.readOnly = Boolean(props.readOnly) || field.readOnly() || undefined;\n merged.required = Boolean(props.required) || field.required() || undefined;\n merged.invalid = Boolean(props.invalid) || field.invalid() || undefined;\n }\n\n return merged as unknown as DateInputContext;\n },\n connect: (service, normalize) => dateInput.connect(service, normalize),\n });\n}\n","import type * as dateInput from \"@wirekyt/dom/machines/date-input\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n type InputSignal,\n type InputSignalWithTransform,\n type ModelSignal,\n type OutputEmitterRef,\n type Signal,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from \"@angular/forms\";\nimport { bindProps, createCvaController } from \"@wirekyt/angular\";\n\nimport type {\n DateInputElementIds,\n DateInputFocusChangeDetails,\n DateInputFormatDateDetails,\n DateInputIntlTranslations,\n DateInputPlaceholderChangeDetails,\n DateInputSelectionMode,\n DateInputSegments,\n DateInputValueChangeDetails,\n DateValue,\n} from \"./types\";\n\nimport { useDateInput, type UseDateInputReturn } from \"./use\";\nimport { DATE_INPUT_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[dateInputRoot]\",\n standalone: true,\n exportAs: \"dateInputRoot\",\n providers: [\n { provide: DATE_INPUT_CONTEXT, useExisting: forwardRef(() => DateInputRoot) },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputRoot), multi: true },\n ],\n})\nexport class DateInputRoot implements ControlValueAccessor, UseDateInputReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<Partial<DateInputElementIds> | undefined> = input<\n Partial<DateInputElementIds> | undefined\n >(undefined);\n readonly value: ModelSignal<DateValue[] | undefined> = model<DateValue[] | undefined>(undefined);\n readonly defaultValue: InputSignal<DateValue[] | undefined> = input<DateValue[] | undefined>(\n undefined,\n );\n readonly placeholderValue: ModelSignal<DateValue | undefined> = model<DateValue | undefined>(\n undefined,\n );\n readonly defaultPlaceholderValue: InputSignal<DateValue | undefined> = input<\n DateValue | undefined\n >(undefined);\n readonly min: InputSignal<DateValue | undefined> = input<DateValue | undefined>(undefined);\n readonly max: InputSignal<DateValue | undefined> = input<DateValue | undefined>(undefined);\n readonly selectionMode: InputSignal<DateInputSelectionMode | undefined> = input<\n DateInputSelectionMode | undefined\n >(undefined);\n readonly granularity: InputSignal<dateInput.Props[\"granularity\"] | undefined> = input<\n dateInput.Props[\"granularity\"] | undefined\n >(undefined);\n readonly hourCycle: InputSignal<dateInput.Props[\"hourCycle\"] | undefined> = input<\n dateInput.Props[\"hourCycle\"] | undefined\n >(undefined);\n readonly hideTimeZone: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly locale: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly timeZone: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly translations: InputSignal<DateInputIntlTranslations | undefined> = input<\n DateInputIntlTranslations | undefined\n >(undefined);\n readonly formatter: InputSignal<dateInput.Props[\"formatter\"] | undefined> = input<\n dateInput.Props[\"formatter\"] | undefined\n >(undefined);\n readonly allSegments: InputSignal<DateInputSegments | undefined> = input<\n DateInputSegments | undefined\n >(undefined);\n readonly format: InputSignal<\n ((date: DateValue, details: DateInputFormatDateDetails) => string) | undefined\n > = input<((date: DateValue, details: DateInputFormatDateDetails) => string) | undefined>(\n undefined,\n );\n readonly createCalendar: InputSignal<dateInput.Props[\"createCalendar\"] | undefined> = input<\n dateInput.Props[\"createCalendar\"] | undefined\n >(undefined);\n readonly isDateUnavailable: InputSignal<dateInput.Props[\"isDateUnavailable\"] | undefined> = input<\n dateInput.Props[\"isDateUnavailable\"] | undefined\n >(undefined);\n readonly shouldForceLeadingZeros: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly readOnly: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly required: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly invalid: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly name: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly form: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n readonly focusChange: OutputEmitterRef<DateInputFocusChangeDetails> =\n output<DateInputFocusChangeDetails>();\n readonly placeholderChange: OutputEmitterRef<DateInputPlaceholderChangeDetails> =\n output<DateInputPlaceholderChangeDetails>();\n readonly valueDetailsChange: OutputEmitterRef<DateInputValueChangeDetails> =\n output<DateInputValueChangeDetails>();\n\n private readonly disabledFromForm = signal(false);\n private pendingInternalWrites = 0;\n private hasExternalBinding = false;\n private hasReceivedFormWrite = false;\n\n private readonly cva = createCvaController<DateValue[]>({\n value: this.value,\n setDisabled: (disabled) => this.disabledFromForm.set(disabled),\n componentName: \"DateInputRoot\",\n hasExternalModelBinding: () => this.hasExternalBinding,\n });\n\n private readonly machine = useDateInput({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n value: this.value(),\n defaultValue: this.defaultValue(),\n placeholderValue: this.placeholderValue(),\n defaultPlaceholderValue: this.defaultPlaceholderValue(),\n min: this.min(),\n max: this.max(),\n selectionMode: this.selectionMode(),\n granularity: this.granularity(),\n hourCycle: this.hourCycle(),\n hideTimeZone: this.hideTimeZone() || undefined,\n locale: this.locale(),\n timeZone: this.timeZone(),\n translations: this.translations(),\n formatter: this.formatter(),\n allSegments: this.allSegments(),\n format: this.format(),\n createCalendar: this.createCalendar(),\n isDateUnavailable: this.isDateUnavailable(),\n shouldForceLeadingZeros: this.shouldForceLeadingZeros() || undefined,\n disabled: this.disabled() || this.disabledFromForm() || undefined,\n readOnly: this.readOnly() || undefined,\n required: this.required() || undefined,\n invalid: this.invalid() || undefined,\n name: this.name(),\n form: this.form(),\n onValueChange: (details) => {\n if (!dateValueArraysEqual(this.value(), details.value)) {\n this.pendingInternalWrites++;\n this.value.set([...details.value]);\n }\n this.cva.notifyValueChange(details.value);\n this.cva.markTouched();\n this.valueDetailsChange.emit(details);\n },\n onPlaceholderChange: (details) => {\n if (!dateValuesEqual(this.placeholderValue(), details.placeholderValue)) {\n this.placeholderValue.set(details.placeholderValue);\n }\n this.placeholderChange.emit(details);\n },\n onFocusChange: (details) => {\n if (!details.focused) {\n this.cva.markTouched();\n }\n this.focusChange.emit(details);\n },\n }),\n });\n\n readonly state: Signal<dateInput.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<dateInput.Api> = this.machine.api;\n readonly service: dateInput.Service = this.machine.service;\n readonly send: dateInput.Service[\"send\"] = this.machine.send;\n\n constructor() {\n let firstRun = true;\n effect(() => {\n void this.value();\n if (firstRun) {\n firstRun = false;\n this.pendingInternalWrites = 0;\n return;\n }\n if (this.pendingInternalWrites > 0) {\n this.pendingInternalWrites--;\n return;\n }\n this.hasExternalBinding = true;\n });\n\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n\n writeValue(value: DateValue[] | null): void {\n const next = value === null ? undefined : value;\n const current = this.value();\n if (!this.hasReceivedFormWrite && current !== undefined) {\n this.hasExternalBinding = true;\n }\n this.hasReceivedFormWrite = true;\n if (current !== next) {\n this.pendingInternalWrites++;\n }\n this.cva.writeValue(value);\n }\n\n registerOnChange(fn: (value: DateValue[] | undefined) => void): void {\n this.cva.registerOnChange(fn);\n }\n\n registerOnTouched(fn: () => void): void {\n this.cva.registerOnTouched(fn);\n }\n\n setDisabledState(disabled: boolean): void {\n this.cva.setDisabledState(disabled);\n }\n}\n\nfunction dateValueArraysEqual(a: DateValue[] | undefined, b: DateValue[] | undefined): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (String(a[i]) !== String(b[i])) return false;\n }\n return true;\n}\n\nfunction dateValuesEqual(a: DateValue | undefined, b: DateValue | undefined): boolean {\n if (a === b) return true;\n if (!a || !b) return false;\n return String(a) === String(b);\n}\n","import type * as dateInput from \"@wirekyt/dom/machines/date-input\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n computed,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { UseDateInputReturn } from \"./use\";\n\nimport { DATE_INPUT_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[dateInputRootProvider]\",\n standalone: true,\n exportAs: \"dateInputRootProvider\",\n providers: [\n { provide: DATE_INPUT_CONTEXT, useExisting: forwardRef(() => DateInputRootProvider) },\n ],\n})\nexport class DateInputRootProvider implements UseDateInputReturn {\n readonly value: InputSignal<UseDateInputReturn> = input.required<UseDateInputReturn>();\n readonly state: Signal<dateInput.Service[\"state\"]> = computed(() => this.value().state());\n readonly api: Signal<dateInput.Api> = computed(() => this.value().api());\n readonly send: dateInput.Service[\"send\"] = (event) => this.value().send(event);\n\n get service(): dateInput.Service {\n return this.value().service;\n }\n\n constructor() {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => this.api().getRootProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectDateInputContext } from \"./use-context\";\n\n@Directive({\n selector: \"[dateInputLabel]\",\n standalone: true,\n exportAs: \"dateInputLabel\",\n})\nexport class DateInputLabel {\n readonly index: InputSignal<number | undefined> = input<number | undefined>(undefined);\n\n constructor() {\n const context = injectDateInputContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getLabelProps({ index: this.index() }),\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectDateInputContext } from \"./use-context\";\n\n@Directive({\n selector: \"[dateInputControl]\",\n standalone: true,\n exportAs: \"dateInputControl\",\n})\nexport class DateInputControl {\n constructor() {\n const context = injectDateInputContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getControlProps(),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n InjectionToken,\n Renderer2,\n forwardRef,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport { injectDateInputContext } from \"./use-context\";\n\nexport interface DateInputSegmentGroupContext {\n index: InputSignal<number | undefined>;\n}\n\nexport const DATE_INPUT_SEGMENT_GROUP_CONTEXT = new InjectionToken<DateInputSegmentGroupContext>(\n \"WIREKYT.DATE_INPUT_SEGMENT_GROUP_CONTEXT\",\n);\n\nexport function injectDateInputSegmentGroupContext(): DateInputSegmentGroupContext {\n return inject(DATE_INPUT_SEGMENT_GROUP_CONTEXT);\n}\n\n@Directive({\n selector: \"[dateInputSegmentGroup]\",\n standalone: true,\n exportAs: \"dateInputSegmentGroup\",\n providers: [\n {\n provide: DATE_INPUT_SEGMENT_GROUP_CONTEXT,\n useExisting: forwardRef(() => DateInputSegmentGroup),\n },\n ],\n})\nexport class DateInputSegmentGroup implements DateInputSegmentGroupContext {\n /** The range index for this segment group. */\n readonly index: InputSignal<number | undefined> = input<number | undefined>(undefined);\n\n constructor() {\n const context = injectDateInputContext();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => context.api().getSegmentGroupProps({ index: this.index() }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n effect,\n inject,\n input,\n signal,\n type AfterContentInit,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { DateInputDateSegment } from \"./types\";\n\nimport { injectDateInputSegmentGroupContext } from \"./segment-group\";\nimport { injectDateInputContext } from \"./use-context\";\n\n@Directive({\n selector: \"[dateInputSegment]\",\n standalone: true,\n exportAs: \"dateInputSegment\",\n})\nexport class DateInputSegment implements AfterContentInit {\n readonly segment: InputSignal<DateInputDateSegment> = input.required<DateInputDateSegment>();\n\n private readonly ownsTextContent = signal(false);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n const context = injectDateInputContext();\n const segmentGroup = injectDateInputSegmentGroupContext();\n const renderer = inject(Renderer2);\n\n bindProps({\n elementRef: this.elementRef,\n renderer,\n destroyRef: inject(DestroyRef),\n props: () =>\n context.api().getSegmentProps({ segment: this.segment(), index: segmentGroup.index() }),\n });\n\n effect(() => {\n if (!this.ownsTextContent()) return;\n renderer.setProperty(this.elementRef.nativeElement, \"textContent\", this.segment().text);\n });\n }\n\n ngAfterContentInit(): void {\n this.ownsTextContent.set(this.elementRef.nativeElement.childNodes.length === 0);\n }\n}\n","import {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n inject,\n input,\n type InputSignal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\nimport { injectFieldContextOptional } from \"@wirekyt/angular/field\";\n\nimport { injectDateInputContext } from \"./use-context\";\n\n@Directive({\n selector: \"input[dateInputHiddenInput]\",\n standalone: true,\n exportAs: \"dateInputHiddenInput\",\n})\nexport class DateInputHiddenInput {\n readonly index: InputSignal<number | undefined> = input<number | undefined>(undefined);\n readonly name: InputSignal<string | undefined> = input<string | undefined>(undefined);\n\n constructor() {\n const context = injectDateInputContext();\n const field = injectFieldContextOptional();\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props: () => ({\n \"aria-describedby\": field?.ariaDescribedby(),\n ...context.api().getHiddenInputProps({ index: this.index(), name: this.name() }),\n }),\n });\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseDateInputReturn } from \"./use\";\n\nimport { injectDateInputContext } from \"./use-context\";\n\nexport interface DateInputContextTemplate {\n $implicit: UseDateInputReturn[\"api\"];\n api: UseDateInputReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[dateInputContext]\",\n standalone: true,\n exportAs: \"dateInputContext\",\n})\nexport class DateInputContext {\n static ngTemplateContextGuard(\n _directive: DateInputContext,\n context: unknown,\n ): context is DateInputContextTemplate {\n void context;\n return true;\n }\n\n private readonly dateInput = injectDateInputContext();\n private readonly templateRef = inject<TemplateRef<DateInputContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.dateInput.api,\n api: this.dateInput.api,\n });\n\n effect(() => {\n this.dateInput.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","import {\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n type EmbeddedViewRef,\n} from \"@angular/core\";\n\nimport type { DateInputDateSegment } from \"./types\";\n\nimport { injectDateInputSegmentGroupContext } from \"./segment-group\";\nimport { injectDateInputContext } from \"./use-context\";\n\nexport interface DateInputSegmentContextTemplate {\n $implicit: DateInputDateSegment;\n segment: DateInputDateSegment;\n index: number;\n}\n\n@Directive({\n selector: \"[dateInputSegmentContext]\",\n standalone: true,\n exportAs: \"dateInputSegmentContext\",\n})\nexport class DateInputSegmentContext {\n static ngTemplateContextGuard(\n _directive: DateInputSegmentContext,\n context: unknown,\n ): context is DateInputSegmentContextTemplate {\n void context;\n return true;\n }\n\n private readonly dateInput = injectDateInputContext();\n private readonly segmentGroup = injectDateInputSegmentGroupContext();\n private readonly templateRef = inject<TemplateRef<DateInputSegmentContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly views: Array<{\n key: string;\n view: EmbeddedViewRef<DateInputSegmentContextTemplate>;\n }> = [];\n\n constructor() {\n effect(() => {\n const segments = this.dateInput.api().getSegments({ index: this.segmentGroup.index() });\n this.syncSegmentViews(segments);\n });\n }\n\n private syncSegmentViews(segments: DateInputDateSegment[]): void {\n const nextViews: typeof this.views = [];\n\n segments.forEach((segment, index) => {\n const key = `${index}:${segment.type}`;\n const existingIndex = this.views.findIndex((entry) => entry.key === key);\n const entry =\n existingIndex >= 0\n ? this.views.splice(existingIndex, 1)[0]\n : {\n key,\n view: this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: segment,\n segment,\n index,\n }),\n };\n\n entry.view.context.$implicit = segment;\n entry.view.context.segment = segment;\n entry.view.context.index = index;\n nextViews.push(entry);\n\n const currentIndex = this.viewContainer.indexOf(entry.view);\n if (currentIndex !== index) {\n this.viewContainer.move(entry.view, index);\n }\n entry.view.detectChanges();\n });\n\n for (const entry of this.views) {\n entry.view.destroy();\n }\n this.views.length = 0;\n this.views.push(...nextViews);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|