@wirekyt/angular 0.0.4 → 0.0.5

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.
@@ -0,0 +1,383 @@
1
+ import * as angleSlider from '@wirekyt/dom/machines/angle-slider';
2
+ export { anatomy as angleSliderAnatomy } from '@wirekyt/dom/machines/angle-slider';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, inject, numberAttribute, input, booleanAttribute, model, 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 ANGLE_SLIDER_CONTEXT = new InjectionToken("WIREKIT.ANGLE_SLIDER_CONTEXT");
10
+ function injectAngleSliderContext() {
11
+ return inject(ANGLE_SLIDER_CONTEXT);
12
+ }
13
+
14
+ function useAngleSlider(options) {
15
+ const locale = injectLocale();
16
+ const environment = injectEnvironment();
17
+ const field = injectFieldContextOptional();
18
+ const fallbackId = createId();
19
+ return useMachine({
20
+ machine: angleSlider.machine,
21
+ context: () => {
22
+ const props = options.context();
23
+ const merged = {
24
+ dir: locale.dir,
25
+ getRootNode: environment.getRootNode,
26
+ ...props,
27
+ id: props.id ?? fallbackId,
28
+ };
29
+ if (field) {
30
+ const fieldIds = field.ids;
31
+ merged.ids = {
32
+ label: fieldIds.label,
33
+ hiddenInput: fieldIds.control,
34
+ ...props.ids,
35
+ };
36
+ const disabled = Boolean(props.disabled) || field.disabled();
37
+ const invalid = Boolean(props.invalid) || field.invalid();
38
+ const readOnly = Boolean(props.readOnly) || field.readOnly();
39
+ merged.disabled = disabled || undefined;
40
+ merged.invalid = invalid || undefined;
41
+ merged.readOnly = readOnly || undefined;
42
+ }
43
+ return merged;
44
+ },
45
+ connect: (service, normalize) => angleSlider.connect(service, normalize),
46
+ });
47
+ }
48
+
49
+ const optionalNumberAttribute = (value) => {
50
+ if (value == null)
51
+ return undefined;
52
+ return numberAttribute(value);
53
+ };
54
+ class AngleSliderRoot {
55
+ id = input(undefined, /* @ts-ignore */
56
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
57
+ ids = input(undefined, /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "ids" }] : /* istanbul ignore next */ []));
59
+ name = input(undefined, /* @ts-ignore */
60
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
61
+ invalid = input(false, { ...(ngDevMode ? { debugName: "invalid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
62
+ readOnly = input(false, { ...(ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
63
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
64
+ value = model(undefined, /* @ts-ignore */
65
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
66
+ defaultValue = input(undefined, { ...(ngDevMode ? { debugName: "defaultValue" } : /* istanbul ignore next */ {}), transform: optionalNumberAttribute });
67
+ step = input(undefined, { ...(ngDevMode ? { debugName: "step" } : /* istanbul ignore next */ {}), transform: optionalNumberAttribute });
68
+ ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: "aria-label" });
69
+ ariaLabelledby = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: "aria-labelledby" });
70
+ valueChangeEnd = output();
71
+ _disabledFromForm = signal(false, /* @ts-ignore */
72
+ ...(ngDevMode ? [{ debugName: "_disabledFromForm" }] : /* istanbul ignore next */ []));
73
+ _pendingInternalWrites = 0;
74
+ _hasExternalBinding = false;
75
+ _hasReceivedFormWrite = false;
76
+ cva = createCvaController({
77
+ value: this.value,
78
+ setDisabled: (disabled) => this._disabledFromForm.set(disabled),
79
+ componentName: "AngleSliderRoot",
80
+ hasExternalModelBinding: () => this._hasExternalBinding,
81
+ });
82
+ machine = useAngleSlider({
83
+ context: () => ({
84
+ id: this.id(),
85
+ ids: this.ids(),
86
+ name: this.name(),
87
+ invalid: this.invalid() || undefined,
88
+ readOnly: this.readOnly() || undefined,
89
+ disabled: this.disabled() || this._disabledFromForm() || undefined,
90
+ value: this.value(),
91
+ defaultValue: this.defaultValue(),
92
+ step: this.step(),
93
+ "aria-label": this.ariaLabel(),
94
+ "aria-labelledby": this.ariaLabelledby(),
95
+ onValueChange: (details) => {
96
+ if (this.value() !== details.value) {
97
+ this._pendingInternalWrites++;
98
+ this.value.set(details.value);
99
+ }
100
+ this.cva.notifyValueChange(details.value);
101
+ },
102
+ onValueChangeEnd: (details) => {
103
+ this.valueChangeEnd.emit(details);
104
+ this.cva.markTouched();
105
+ },
106
+ }),
107
+ });
108
+ state = this.machine.state;
109
+ api = this.machine.api;
110
+ service = this.machine.service;
111
+ send = this.machine.send;
112
+ constructor() {
113
+ let firstRun = true;
114
+ effect(() => {
115
+ void this.value();
116
+ if (firstRun) {
117
+ firstRun = false;
118
+ this._pendingInternalWrites = 0;
119
+ return;
120
+ }
121
+ if (this._pendingInternalWrites > 0) {
122
+ this._pendingInternalWrites--;
123
+ return;
124
+ }
125
+ this._hasExternalBinding = true;
126
+ });
127
+ bindProps({
128
+ elementRef: inject(ElementRef),
129
+ renderer: inject(Renderer2),
130
+ destroyRef: inject(DestroyRef),
131
+ props: () => this.api().getRootProps(),
132
+ });
133
+ }
134
+ writeValue(value) {
135
+ const next = value === null ? undefined : value;
136
+ const current = this.value();
137
+ if (!this._hasReceivedFormWrite && current !== undefined) {
138
+ this._hasExternalBinding = true;
139
+ }
140
+ this._hasReceivedFormWrite = true;
141
+ if (current !== next) {
142
+ this._pendingInternalWrites++;
143
+ }
144
+ this.cva.writeValue(value);
145
+ }
146
+ registerOnChange(fn) {
147
+ this.cva.registerOnChange(fn);
148
+ }
149
+ registerOnTouched(fn) {
150
+ this.cva.registerOnTouched(fn);
151
+ }
152
+ setDisabledState(disabled) {
153
+ this.cva.setDisabledState(disabled);
154
+ }
155
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderRoot, deps: [], target: i0.ɵɵFactoryTarget.Directive });
156
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: AngleSliderRoot, isStandalone: true, selector: "[angleSliderRoot]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ids: { classPropertyName: "ids", publicName: "ids", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", 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 }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", valueChangeEnd: "valueChangeEnd" }, providers: [
157
+ { provide: ANGLE_SLIDER_CONTEXT, useExisting: forwardRef(() => AngleSliderRoot) },
158
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AngleSliderRoot), multi: true },
159
+ ], exportAs: ["angleSliderRoot"], ngImport: i0 });
160
+ }
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderRoot, decorators: [{
162
+ type: Directive,
163
+ args: [{
164
+ selector: "[angleSliderRoot]",
165
+ standalone: true,
166
+ exportAs: "angleSliderRoot",
167
+ providers: [
168
+ { provide: ANGLE_SLIDER_CONTEXT, useExisting: forwardRef(() => AngleSliderRoot) },
169
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AngleSliderRoot), multi: true },
170
+ ],
171
+ }]
172
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ids: [{ type: i0.Input, args: [{ isSignal: true, alias: "ids", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", 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 }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], valueChangeEnd: [{ type: i0.Output, args: ["valueChangeEnd"] }] } });
173
+
174
+ class AngleSliderRootProvider {
175
+ value = input.required(/* @ts-ignore */
176
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
177
+ get state() {
178
+ return this.value().state;
179
+ }
180
+ get api() {
181
+ return this.value().api;
182
+ }
183
+ get service() {
184
+ return this.value().service;
185
+ }
186
+ get send() {
187
+ return this.value().send;
188
+ }
189
+ constructor() {
190
+ bindProps({
191
+ elementRef: inject(ElementRef),
192
+ renderer: inject(Renderer2),
193
+ destroyRef: inject(DestroyRef),
194
+ props: () => this.api().getRootProps(),
195
+ });
196
+ }
197
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderRootProvider, deps: [], target: i0.ɵɵFactoryTarget.Directive });
198
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: AngleSliderRootProvider, isStandalone: true, selector: "[angleSliderRootProvider]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
199
+ { provide: ANGLE_SLIDER_CONTEXT, useExisting: forwardRef(() => AngleSliderRootProvider) },
200
+ ], exportAs: ["angleSliderRootProvider"], ngImport: i0 });
201
+ }
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderRootProvider, decorators: [{
203
+ type: Directive,
204
+ args: [{
205
+ selector: "[angleSliderRootProvider]",
206
+ standalone: true,
207
+ exportAs: "angleSliderRootProvider",
208
+ providers: [
209
+ { provide: ANGLE_SLIDER_CONTEXT, useExisting: forwardRef(() => AngleSliderRootProvider) },
210
+ ],
211
+ }]
212
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
213
+
214
+ function applyAngleSliderPartProps(props) {
215
+ bindProps({
216
+ elementRef: inject(ElementRef),
217
+ renderer: inject(Renderer2),
218
+ destroyRef: inject(DestroyRef),
219
+ props,
220
+ });
221
+ }
222
+
223
+ class AngleSliderLabel {
224
+ constructor() {
225
+ const context = injectAngleSliderContext();
226
+ applyAngleSliderPartProps(() => context.api().getLabelProps());
227
+ }
228
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
229
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderLabel, isStandalone: true, selector: "[angleSliderLabel]", exportAs: ["angleSliderLabel"], ngImport: i0 });
230
+ }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderLabel, decorators: [{
232
+ type: Directive,
233
+ args: [{
234
+ selector: "[angleSliderLabel]",
235
+ standalone: true,
236
+ exportAs: "angleSliderLabel",
237
+ }]
238
+ }], ctorParameters: () => [] });
239
+
240
+ class AngleSliderControl {
241
+ constructor() {
242
+ const context = injectAngleSliderContext();
243
+ applyAngleSliderPartProps(() => context.api().getControlProps());
244
+ }
245
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
246
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderControl, isStandalone: true, selector: "[angleSliderControl]", exportAs: ["angleSliderControl"], ngImport: i0 });
247
+ }
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderControl, decorators: [{
249
+ type: Directive,
250
+ args: [{
251
+ selector: "[angleSliderControl]",
252
+ standalone: true,
253
+ exportAs: "angleSliderControl",
254
+ }]
255
+ }], ctorParameters: () => [] });
256
+
257
+ class AngleSliderThumb {
258
+ constructor() {
259
+ const context = injectAngleSliderContext();
260
+ applyAngleSliderPartProps(() => context.api().getThumbProps());
261
+ }
262
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive });
263
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderThumb, isStandalone: true, selector: "[angleSliderThumb]", exportAs: ["angleSliderThumb"], ngImport: i0 });
264
+ }
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderThumb, decorators: [{
266
+ type: Directive,
267
+ args: [{
268
+ selector: "[angleSliderThumb]",
269
+ standalone: true,
270
+ exportAs: "angleSliderThumb",
271
+ }]
272
+ }], ctorParameters: () => [] });
273
+
274
+ class AngleSliderMarkerGroup {
275
+ constructor() {
276
+ const context = injectAngleSliderContext();
277
+ applyAngleSliderPartProps(() => context.api().getMarkerGroupProps());
278
+ }
279
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderMarkerGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
280
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderMarkerGroup, isStandalone: true, selector: "[angleSliderMarkerGroup]", exportAs: ["angleSliderMarkerGroup"], ngImport: i0 });
281
+ }
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderMarkerGroup, decorators: [{
283
+ type: Directive,
284
+ args: [{
285
+ selector: "[angleSliderMarkerGroup]",
286
+ standalone: true,
287
+ exportAs: "angleSliderMarkerGroup",
288
+ }]
289
+ }], ctorParameters: () => [] });
290
+
291
+ class AngleSliderMarker {
292
+ value = input.required({ ...(ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {}), transform: numberAttribute });
293
+ constructor() {
294
+ const context = injectAngleSliderContext();
295
+ applyAngleSliderPartProps(() => context.api().getMarkerProps({ value: this.value() }));
296
+ }
297
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderMarker, deps: [], target: i0.ɵɵFactoryTarget.Directive });
298
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.0", type: AngleSliderMarker, isStandalone: true, selector: "[angleSliderMarker]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["angleSliderMarker"], ngImport: i0 });
299
+ }
300
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderMarker, decorators: [{
301
+ type: Directive,
302
+ args: [{
303
+ selector: "[angleSliderMarker]",
304
+ standalone: true,
305
+ exportAs: "angleSliderMarker",
306
+ }]
307
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
308
+
309
+ class AngleSliderValueText {
310
+ context = injectAngleSliderContext();
311
+ value = computed(() => this.context.api().value, /* @ts-ignore */
312
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
313
+ valueAsDegree = computed(() => this.context.api().valueAsDegree, /* @ts-ignore */
314
+ ...(ngDevMode ? [{ debugName: "valueAsDegree" }] : /* istanbul ignore next */ []));
315
+ constructor() {
316
+ applyAngleSliderPartProps(() => this.context.api().getValueTextProps());
317
+ }
318
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderValueText, deps: [], target: i0.ɵɵFactoryTarget.Directive });
319
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderValueText, isStandalone: true, selector: "[angleSliderValueText]", exportAs: ["angleSliderValueText"], ngImport: i0 });
320
+ }
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderValueText, decorators: [{
322
+ type: Directive,
323
+ args: [{
324
+ selector: "[angleSliderValueText]",
325
+ standalone: true,
326
+ exportAs: "angleSliderValueText",
327
+ }]
328
+ }], ctorParameters: () => [] });
329
+
330
+ class AngleSliderHiddenInput {
331
+ constructor() {
332
+ const context = injectAngleSliderContext();
333
+ applyAngleSliderPartProps(() => context.api().getHiddenInputProps());
334
+ }
335
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderHiddenInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
336
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderHiddenInput, isStandalone: true, selector: "input[angleSliderHiddenInput]", exportAs: ["angleSliderHiddenInput"], ngImport: i0 });
337
+ }
338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderHiddenInput, decorators: [{
339
+ type: Directive,
340
+ args: [{
341
+ selector: "input[angleSliderHiddenInput]",
342
+ standalone: true,
343
+ exportAs: "angleSliderHiddenInput",
344
+ }]
345
+ }], ctorParameters: () => [] });
346
+
347
+ class AngleSliderContext {
348
+ static ngTemplateContextGuard(_directive, context) {
349
+ void context;
350
+ return true;
351
+ }
352
+ angleSlider = injectAngleSliderContext();
353
+ templateRef = inject(TemplateRef);
354
+ viewContainer = inject(ViewContainerRef);
355
+ constructor() {
356
+ const view = this.viewContainer.createEmbeddedView(this.templateRef, {
357
+ $implicit: this.angleSlider.api,
358
+ api: this.angleSlider.api,
359
+ });
360
+ effect(() => {
361
+ this.angleSlider.api();
362
+ view.detectChanges();
363
+ });
364
+ inject(DestroyRef).onDestroy(() => view.destroy());
365
+ }
366
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderContext, deps: [], target: i0.ɵɵFactoryTarget.Directive });
367
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.0", type: AngleSliderContext, isStandalone: true, selector: "[angleSliderContext]", exportAs: ["angleSliderContext"], ngImport: i0 });
368
+ }
369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImport: i0, type: AngleSliderContext, decorators: [{
370
+ type: Directive,
371
+ args: [{
372
+ selector: "[angleSliderContext]",
373
+ standalone: true,
374
+ exportAs: "angleSliderContext",
375
+ }]
376
+ }], ctorParameters: () => [] });
377
+
378
+ /**
379
+ * Generated bundle index. Do not edit.
380
+ */
381
+
382
+ export { ANGLE_SLIDER_CONTEXT, AngleSliderContext, AngleSliderControl, AngleSliderHiddenInput, AngleSliderLabel, AngleSliderMarker, AngleSliderMarkerGroup, AngleSliderRoot, AngleSliderRootProvider, AngleSliderThumb, AngleSliderValueText, injectAngleSliderContext, useAngleSlider };
383
+ //# sourceMappingURL=wirekyt-angular-angle-slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wirekyt-angular-angle-slider.mjs","sources":["../../src/components/angle-slider/use-context.ts","../../src/components/angle-slider/use.ts","../../src/components/angle-slider/root.ts","../../src/components/angle-slider/root-provider.ts","../../src/components/angle-slider/apply-part-props.ts","../../src/components/angle-slider/label.ts","../../src/components/angle-slider/control.ts","../../src/components/angle-slider/thumb.ts","../../src/components/angle-slider/marker-group.ts","../../src/components/angle-slider/marker.ts","../../src/components/angle-slider/value-text.ts","../../src/components/angle-slider/hidden-input.ts","../../src/components/angle-slider/context.ts","../../src/components/angle-slider/wirekyt-angular-angle-slider.ts"],"sourcesContent":["import { InjectionToken, inject } from \"@angular/core\";\n\nimport type { UseAngleSliderReturn } from \"./use\";\n\nexport const ANGLE_SLIDER_CONTEXT = new InjectionToken<UseAngleSliderReturn>(\n \"WIREKIT.ANGLE_SLIDER_CONTEXT\",\n);\n\nexport function injectAngleSliderContext(): UseAngleSliderReturn {\n return inject(ANGLE_SLIDER_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 angleSlider from \"@wirekyt/dom/machines/angle-slider\";\n\nimport type { AngleSliderMachineProps } from \"./types\";\n\ntype OptionalId<T extends { id: string }> = Omit<T, \"id\"> & { id?: string };\n\nexport interface UseAngleSliderProps extends OptionalId<\n Omit<AngleSliderMachineProps, \"dir\" | \"getRootNode\">\n> {}\n\nexport type UseAngleSliderReturn = UseMachineReturn<\n angleSlider.Service[\"state\"],\n angleSlider.Api,\n angleSlider.Service\n>;\n\nexport interface UseAngleSliderOptions {\n context: () => UseAngleSliderProps;\n}\n\ntype AngleSliderContext = Record<string, unknown>;\ntype AngleSliderSchema = angleSlider.Machine extends Machine<infer TSchema> ? TSchema : never;\n\ntype MergedContext = {\n dir: \"ltr\" | \"rtl\";\n getRootNode: () => ShadowRoot | Document | Node | undefined;\n id: string;\n ids?: AngleSliderMachineProps[\"ids\"];\n disabled?: boolean;\n invalid?: boolean;\n readOnly?: boolean;\n} & Omit<UseAngleSliderProps, \"id\" | \"ids\" | \"disabled\" | \"invalid\" | \"readOnly\">;\n\nexport function useAngleSlider(options: UseAngleSliderOptions): UseAngleSliderReturn {\n const locale = injectLocale();\n const environment = injectEnvironment();\n const field = injectFieldContextOptional();\n const fallbackId = createId();\n\n return useMachine<AngleSliderSchema, angleSlider.Api>({\n machine: angleSlider.machine,\n context: () => {\n const props = options.context();\n const merged: MergedContext = {\n dir: locale.dir,\n getRootNode: environment.getRootNode,\n ...props,\n id: props.id ?? fallbackId,\n };\n if (field) {\n const fieldIds = field.ids;\n merged.ids = {\n label: fieldIds.label,\n hiddenInput: fieldIds.control,\n ...props.ids,\n };\n const disabled = Boolean(props.disabled) || field.disabled();\n const invalid = Boolean(props.invalid) || field.invalid();\n const readOnly = Boolean(props.readOnly) || field.readOnly();\n merged.disabled = disabled || undefined;\n merged.invalid = invalid || undefined;\n merged.readOnly = readOnly || undefined;\n }\n return merged as unknown as AngleSliderContext;\n },\n connect: (service, normalize) => angleSlider.connect(service, normalize),\n });\n}\n","import type * as angleSlider from \"@wirekyt/dom/machines/angle-slider\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n booleanAttribute,\n effect,\n forwardRef,\n inject,\n input,\n model,\n numberAttribute,\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 { AngleSliderElementIds, AngleSliderValueChangeDetails } from \"./types\";\n\nimport { useAngleSlider, type UseAngleSliderReturn } from \"./use\";\nimport { ANGLE_SLIDER_CONTEXT } from \"./use-context\";\n\nconst optionalNumberAttribute = (value: unknown): number | undefined => {\n if (value == null) return undefined;\n return numberAttribute(value);\n};\n\n@Directive({\n selector: \"[angleSliderRoot]\",\n standalone: true,\n exportAs: \"angleSliderRoot\",\n providers: [\n { provide: ANGLE_SLIDER_CONTEXT, useExisting: forwardRef(() => AngleSliderRoot) },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AngleSliderRoot), multi: true },\n ],\n})\nexport class AngleSliderRoot implements ControlValueAccessor, UseAngleSliderReturn {\n readonly id: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly ids: InputSignal<AngleSliderElementIds | undefined> = input<\n AngleSliderElementIds | undefined\n >(undefined);\n readonly name: InputSignal<string | undefined> = input<string | undefined>(undefined);\n readonly invalid: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly readOnly: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly disabled: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute,\n });\n readonly value: ModelSignal<number | undefined> = model<number | undefined>(undefined);\n readonly defaultValue: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, { transform: optionalNumberAttribute });\n readonly step: InputSignalWithTransform<number | undefined, unknown> = input<\n number | undefined,\n unknown\n >(undefined, {\n transform: optionalNumberAttribute,\n });\n readonly ariaLabel: InputSignal<string | undefined> = input<string | undefined>(undefined, {\n alias: \"aria-label\",\n });\n readonly ariaLabelledby: InputSignal<string | undefined> = input<string | undefined>(undefined, {\n alias: \"aria-labelledby\",\n });\n readonly valueChangeEnd: OutputEmitterRef<AngleSliderValueChangeDetails> =\n output<AngleSliderValueChangeDetails>();\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<number>({\n value: this.value,\n setDisabled: (disabled) => this._disabledFromForm.set(disabled),\n componentName: \"AngleSliderRoot\",\n hasExternalModelBinding: () => this._hasExternalBinding,\n });\n\n private readonly machine = useAngleSlider({\n context: () => ({\n id: this.id(),\n ids: this.ids(),\n name: this.name(),\n invalid: this.invalid() || undefined,\n readOnly: this.readOnly() || undefined,\n disabled: this.disabled() || this._disabledFromForm() || undefined,\n value: this.value(),\n defaultValue: this.defaultValue(),\n step: this.step(),\n \"aria-label\": this.ariaLabel(),\n \"aria-labelledby\": this.ariaLabelledby(),\n onValueChange: (details: AngleSliderValueChangeDetails) => {\n if (this.value() !== details.value) {\n this._pendingInternalWrites++;\n this.value.set(details.value);\n }\n this.cva.notifyValueChange(details.value);\n },\n onValueChangeEnd: (details: AngleSliderValueChangeDetails) => {\n this.valueChangeEnd.emit(details);\n this.cva.markTouched();\n },\n }),\n });\n\n readonly state: Signal<angleSlider.Service[\"state\"]> = this.machine.state;\n readonly api: Signal<angleSlider.Api> = this.machine.api;\n readonly service: angleSlider.Service = this.machine.service;\n readonly send: angleSlider.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: number | 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: number | 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","import type * as angleSlider from \"@wirekyt/dom/machines/angle-slider\";\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Renderer2,\n forwardRef,\n inject,\n input,\n type InputSignal,\n type Signal,\n} from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\nimport type { UseAngleSliderReturn } from \"./use\";\n\nimport { ANGLE_SLIDER_CONTEXT } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderRootProvider]\",\n standalone: true,\n exportAs: \"angleSliderRootProvider\",\n providers: [\n { provide: ANGLE_SLIDER_CONTEXT, useExisting: forwardRef(() => AngleSliderRootProvider) },\n ],\n})\nexport class AngleSliderRootProvider implements UseAngleSliderReturn {\n readonly value: InputSignal<UseAngleSliderReturn> = input.required<UseAngleSliderReturn>();\n\n get state(): Signal<angleSlider.Service[\"state\"]> {\n return this.value().state;\n }\n get api(): Signal<angleSlider.Api> {\n return this.value().api;\n }\n get service(): angleSlider.Service {\n return this.value().service;\n }\n get send(): angleSlider.Service[\"send\"] {\n return this.value().send;\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 { DestroyRef, ElementRef, Renderer2, inject } from \"@angular/core\";\nimport { bindProps } from \"@wirekyt/angular\";\n\ntype AngleSliderPartProps = Record<string, unknown>;\n\nexport function applyAngleSliderPartProps(props: () => AngleSliderPartProps | undefined): void {\n bindProps({\n elementRef: inject(ElementRef),\n renderer: inject(Renderer2),\n destroyRef: inject(DestroyRef),\n props,\n });\n}\n","import { Directive } from \"@angular/core\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderLabel]\",\n standalone: true,\n exportAs: \"angleSliderLabel\",\n})\nexport class AngleSliderLabel {\n constructor() {\n const context = injectAngleSliderContext();\n applyAngleSliderPartProps(() => context.api().getLabelProps());\n }\n}\n","import { Directive } from \"@angular/core\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderControl]\",\n standalone: true,\n exportAs: \"angleSliderControl\",\n})\nexport class AngleSliderControl {\n constructor() {\n const context = injectAngleSliderContext();\n applyAngleSliderPartProps(() => context.api().getControlProps());\n }\n}\n","import { Directive } from \"@angular/core\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderThumb]\",\n standalone: true,\n exportAs: \"angleSliderThumb\",\n})\nexport class AngleSliderThumb {\n constructor() {\n const context = injectAngleSliderContext();\n applyAngleSliderPartProps(() => context.api().getThumbProps());\n }\n}\n","import { Directive } from \"@angular/core\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderMarkerGroup]\",\n standalone: true,\n exportAs: \"angleSliderMarkerGroup\",\n})\nexport class AngleSliderMarkerGroup {\n constructor() {\n const context = injectAngleSliderContext();\n applyAngleSliderPartProps(() => context.api().getMarkerGroupProps());\n }\n}\n","import { Directive, input, numberAttribute, type InputSignalWithTransform } from \"@angular/core\";\n\nimport type { AngleSliderMarkerProps } from \"./types\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderMarker]\",\n standalone: true,\n exportAs: \"angleSliderMarker\",\n})\nexport class AngleSliderMarker {\n readonly value: InputSignalWithTransform<AngleSliderMarkerProps[\"value\"], unknown> =\n input.required<AngleSliderMarkerProps[\"value\"], unknown>({\n transform: numberAttribute,\n });\n\n constructor() {\n const context = injectAngleSliderContext();\n applyAngleSliderPartProps(() => context.api().getMarkerProps({ value: this.value() }));\n }\n}\n","import { Directive, type Signal, computed } from \"@angular/core\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"[angleSliderValueText]\",\n standalone: true,\n exportAs: \"angleSliderValueText\",\n})\nexport class AngleSliderValueText {\n private readonly context = injectAngleSliderContext();\n readonly value: Signal<number> = computed(() => this.context.api().value);\n readonly valueAsDegree: Signal<string> = computed(() => this.context.api().valueAsDegree);\n\n constructor() {\n applyAngleSliderPartProps(() => this.context.api().getValueTextProps());\n }\n}\n","import { Directive } from \"@angular/core\";\n\nimport { applyAngleSliderPartProps } from \"./apply-part-props\";\nimport { injectAngleSliderContext } from \"./use-context\";\n\n@Directive({\n selector: \"input[angleSliderHiddenInput]\",\n standalone: true,\n exportAs: \"angleSliderHiddenInput\",\n})\nexport class AngleSliderHiddenInput {\n constructor() {\n const context = injectAngleSliderContext();\n applyAngleSliderPartProps(() => context.api().getHiddenInputProps());\n }\n}\n","import {\n DestroyRef,\n Directive,\n TemplateRef,\n ViewContainerRef,\n effect,\n inject,\n} from \"@angular/core\";\n\nimport type { UseAngleSliderReturn } from \"./use\";\n\nimport { injectAngleSliderContext } from \"./use-context\";\n\nexport interface AngleSliderContextTemplate {\n $implicit: UseAngleSliderReturn[\"api\"];\n api: UseAngleSliderReturn[\"api\"];\n}\n\n@Directive({\n selector: \"[angleSliderContext]\",\n standalone: true,\n exportAs: \"angleSliderContext\",\n})\nexport class AngleSliderContext {\n static ngTemplateContextGuard(\n _directive: AngleSliderContext,\n context: unknown,\n ): context is AngleSliderContextTemplate {\n void context;\n return true;\n }\n\n private readonly angleSlider = injectAngleSliderContext();\n private readonly templateRef = inject<TemplateRef<AngleSliderContextTemplate>>(TemplateRef);\n private readonly viewContainer = inject(ViewContainerRef);\n\n constructor() {\n const view = this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: this.angleSlider.api,\n api: this.angleSlider.api,\n });\n\n effect(() => {\n this.angleSlider.api();\n view.detectChanges();\n });\n\n inject(DestroyRef).onDestroy(() => view.destroy());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}