ng-primitives 0.92.0 → 0.93.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/a11y/index.d.ts +3 -1
- package/accordion/index.d.ts +8 -1
- package/autofill/index.d.ts +4 -0
- package/avatar/index.d.ts +11 -2
- package/breadcrumbs/index.d.ts +21 -7
- package/button/index.d.ts +3 -1
- package/checkbox/index.d.ts +3 -1
- package/fesm2022/ng-primitives-checkbox.mjs +7 -8
- package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-file-upload.mjs +39 -38
- package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
- package/fesm2022/ng-primitives-focus-trap.mjs +107 -138
- package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
- package/fesm2022/ng-primitives-form-field.mjs +323 -365
- package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
- package/fesm2022/ng-primitives-interactions.mjs +57 -58
- package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
- package/fesm2022/ng-primitives-listbox.mjs +2 -2
- package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-slider.mjs +4 -5
- package/fesm2022/ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/ng-primitives-state.mjs +28 -5
- package/fesm2022/ng-primitives-state.mjs.map +1 -1
- package/fesm2022/ng-primitives-switch.mjs +4 -5
- package/fesm2022/ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/ng-primitives-tabs.mjs +194 -192
- package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs +4 -5
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs +4 -5
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/ng-primitives-tooltip.mjs +4 -4
- package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/ng-primitives-utils.mjs.map +1 -1
- package/file-upload/index.d.ts +20 -2
- package/focus-trap/index.d.ts +33 -75
- package/form-field/index.d.ts +320 -123
- package/input/index.d.ts +6 -0
- package/interactions/index.d.ts +16 -16
- package/package.json +1 -1
- package/roving-focus/index.d.ts +6 -2
- package/schematics/ng-generate/templates/tabs/tabs.__fileSuffix@dasherize__.ts.template +2 -2
- package/slider/index.d.ts +14 -6
- package/state/index.d.ts +22 -8
- package/switch/index.d.ts +8 -4
- package/tabs/index.d.ts +333 -84
- package/textarea/index.d.ts +6 -0
- package/toggle/index.d.ts +5 -3
- package/toggle-group/index.d.ts +6 -2
- package/toolbar/index.d.ts +5 -0
- package/utils/index.d.ts +1 -1
package/a11y/index.d.ts
CHANGED
|
@@ -71,10 +71,12 @@ declare const injectVisuallyHiddenState: {
|
|
|
71
71
|
(): Signal<NgpVisuallyHiddenState>;
|
|
72
72
|
(options: {
|
|
73
73
|
hoisted: true;
|
|
74
|
+
optional?: boolean;
|
|
74
75
|
}): Signal<NgpVisuallyHiddenState | null>;
|
|
75
76
|
(options?: {
|
|
76
77
|
hoisted?: boolean;
|
|
77
|
-
|
|
78
|
+
optional?: boolean;
|
|
79
|
+
}): Signal<NgpVisuallyHiddenState> | Signal<NgpVisuallyHiddenState | null>;
|
|
78
80
|
};
|
|
79
81
|
declare const provideVisuallyHiddenState: (opts?: {
|
|
80
82
|
inherit?: boolean;
|
package/accordion/index.d.ts
CHANGED
|
@@ -34,10 +34,12 @@ declare const injectAccordionContentState: {
|
|
|
34
34
|
(): Signal<{}>;
|
|
35
35
|
(options: {
|
|
36
36
|
hoisted: true;
|
|
37
|
+
optional?: boolean;
|
|
37
38
|
}): Signal<{} | null>;
|
|
38
39
|
(options?: {
|
|
39
40
|
hoisted?: boolean;
|
|
40
|
-
|
|
41
|
+
optional?: boolean;
|
|
42
|
+
}): Signal<{}> | Signal<{} | null>;
|
|
41
43
|
};
|
|
42
44
|
declare const provideAccordionContentState: (opts?: {
|
|
43
45
|
inherit?: boolean;
|
|
@@ -342,15 +344,20 @@ declare const injectAccordionTriggerState: {
|
|
|
342
344
|
}>;
|
|
343
345
|
(options: {
|
|
344
346
|
hoisted: true;
|
|
347
|
+
optional?: boolean;
|
|
345
348
|
}): Signal<{
|
|
346
349
|
id: Signal<string>;
|
|
347
350
|
toggle: () => void;
|
|
348
351
|
} | null>;
|
|
349
352
|
(options?: {
|
|
350
353
|
hoisted?: boolean;
|
|
354
|
+
optional?: boolean;
|
|
351
355
|
}): Signal<{
|
|
352
356
|
id: Signal<string>;
|
|
353
357
|
toggle: () => void;
|
|
358
|
+
}> | Signal<{
|
|
359
|
+
id: Signal<string>;
|
|
360
|
+
toggle: () => void;
|
|
354
361
|
} | null>;
|
|
355
362
|
};
|
|
356
363
|
declare const provideAccordionTriggerState: (opts?: {
|
package/autofill/index.d.ts
CHANGED
|
@@ -45,13 +45,17 @@ declare const injectAutofillState: {
|
|
|
45
45
|
}>;
|
|
46
46
|
(options: {
|
|
47
47
|
hoisted: true;
|
|
48
|
+
optional?: boolean;
|
|
48
49
|
}): Signal<{
|
|
49
50
|
autofilled: _angular_core.WritableSignal<boolean>;
|
|
50
51
|
} | null>;
|
|
51
52
|
(options?: {
|
|
52
53
|
hoisted?: boolean;
|
|
54
|
+
optional?: boolean;
|
|
53
55
|
}): Signal<{
|
|
54
56
|
autofilled: _angular_core.WritableSignal<boolean>;
|
|
57
|
+
}> | Signal<{
|
|
58
|
+
autofilled: _angular_core.WritableSignal<boolean>;
|
|
55
59
|
} | null>;
|
|
56
60
|
};
|
|
57
61
|
declare const provideAutofillState: (opts?: {
|
package/avatar/index.d.ts
CHANGED
|
@@ -34,10 +34,12 @@ declare const injectAvatarFallbackState: {
|
|
|
34
34
|
(): Signal<{}>;
|
|
35
35
|
(options: {
|
|
36
36
|
hoisted: true;
|
|
37
|
+
optional?: boolean;
|
|
37
38
|
}): Signal<{} | null>;
|
|
38
39
|
(options?: {
|
|
39
40
|
hoisted?: boolean;
|
|
40
|
-
|
|
41
|
+
optional?: boolean;
|
|
42
|
+
}): Signal<{}> | Signal<{} | null>;
|
|
41
43
|
};
|
|
42
44
|
declare const provideAvatarFallbackState: (opts?: {
|
|
43
45
|
inherit?: boolean;
|
|
@@ -62,10 +64,12 @@ declare const injectAvatarImageState: {
|
|
|
62
64
|
(): _angular_core.Signal<{}>;
|
|
63
65
|
(options: {
|
|
64
66
|
hoisted: true;
|
|
67
|
+
optional?: boolean;
|
|
65
68
|
}): _angular_core.Signal<{} | null>;
|
|
66
69
|
(options?: {
|
|
67
70
|
hoisted?: boolean;
|
|
68
|
-
|
|
71
|
+
optional?: boolean;
|
|
72
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
69
73
|
};
|
|
70
74
|
declare const provideAvatarImageState: (opts?: {
|
|
71
75
|
inherit?: boolean;
|
|
@@ -98,15 +102,20 @@ declare const injectAvatarState: {
|
|
|
98
102
|
}>;
|
|
99
103
|
(options: {
|
|
100
104
|
hoisted: true;
|
|
105
|
+
optional?: boolean;
|
|
101
106
|
}): Signal<{
|
|
102
107
|
status: _angular_core.WritableSignal<NgpAvatarStatus>;
|
|
103
108
|
setStatus: (newStatus: NgpAvatarStatus) => void;
|
|
104
109
|
} | null>;
|
|
105
110
|
(options?: {
|
|
106
111
|
hoisted?: boolean;
|
|
112
|
+
optional?: boolean;
|
|
107
113
|
}): Signal<{
|
|
108
114
|
status: _angular_core.WritableSignal<NgpAvatarStatus>;
|
|
109
115
|
setStatus: (newStatus: NgpAvatarStatus) => void;
|
|
116
|
+
}> | Signal<{
|
|
117
|
+
status: _angular_core.WritableSignal<NgpAvatarStatus>;
|
|
118
|
+
setStatus: (newStatus: NgpAvatarStatus) => void;
|
|
110
119
|
} | null>;
|
|
111
120
|
};
|
|
112
121
|
declare const provideAvatarState: (opts?: {
|
package/breadcrumbs/index.d.ts
CHANGED
|
@@ -73,10 +73,12 @@ declare const injectBreadcrumbsState: {
|
|
|
73
73
|
(): _angular_core.Signal<{}>;
|
|
74
74
|
(options: {
|
|
75
75
|
hoisted: true;
|
|
76
|
+
optional?: boolean;
|
|
76
77
|
}): _angular_core.Signal<{} | null>;
|
|
77
78
|
(options?: {
|
|
78
79
|
hoisted?: boolean;
|
|
79
|
-
|
|
80
|
+
optional?: boolean;
|
|
81
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
80
82
|
};
|
|
81
83
|
declare const provideBreadcrumbsState: (opts?: {
|
|
82
84
|
inherit?: boolean;
|
|
@@ -92,10 +94,12 @@ declare const injectBreadcrumbListState: {
|
|
|
92
94
|
(): _angular_core.Signal<{}>;
|
|
93
95
|
(options: {
|
|
94
96
|
hoisted: true;
|
|
97
|
+
optional?: boolean;
|
|
95
98
|
}): _angular_core.Signal<{} | null>;
|
|
96
99
|
(options?: {
|
|
97
100
|
hoisted?: boolean;
|
|
98
|
-
|
|
101
|
+
optional?: boolean;
|
|
102
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
99
103
|
};
|
|
100
104
|
declare const provideBreadcrumbListState: (opts?: {
|
|
101
105
|
inherit?: boolean;
|
|
@@ -111,10 +115,12 @@ declare const injectBreadcrumbItemState: {
|
|
|
111
115
|
(): _angular_core.Signal<{}>;
|
|
112
116
|
(options: {
|
|
113
117
|
hoisted: true;
|
|
118
|
+
optional?: boolean;
|
|
114
119
|
}): _angular_core.Signal<{} | null>;
|
|
115
120
|
(options?: {
|
|
116
121
|
hoisted?: boolean;
|
|
117
|
-
|
|
122
|
+
optional?: boolean;
|
|
123
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
118
124
|
};
|
|
119
125
|
declare const provideBreadcrumbItemState: (opts?: {
|
|
120
126
|
inherit?: boolean;
|
|
@@ -130,10 +136,12 @@ declare const injectBreadcrumbLinkState: {
|
|
|
130
136
|
(): _angular_core.Signal<{}>;
|
|
131
137
|
(options: {
|
|
132
138
|
hoisted: true;
|
|
139
|
+
optional?: boolean;
|
|
133
140
|
}): _angular_core.Signal<{} | null>;
|
|
134
141
|
(options?: {
|
|
135
142
|
hoisted?: boolean;
|
|
136
|
-
|
|
143
|
+
optional?: boolean;
|
|
144
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
137
145
|
};
|
|
138
146
|
declare const provideBreadcrumbLinkState: (opts?: {
|
|
139
147
|
inherit?: boolean;
|
|
@@ -149,10 +157,12 @@ declare const injectBreadcrumbPageState: {
|
|
|
149
157
|
(): _angular_core.Signal<{}>;
|
|
150
158
|
(options: {
|
|
151
159
|
hoisted: true;
|
|
160
|
+
optional?: boolean;
|
|
152
161
|
}): _angular_core.Signal<{} | null>;
|
|
153
162
|
(options?: {
|
|
154
163
|
hoisted?: boolean;
|
|
155
|
-
|
|
164
|
+
optional?: boolean;
|
|
165
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
156
166
|
};
|
|
157
167
|
declare const provideBreadcrumbPageState: (opts?: {
|
|
158
168
|
inherit?: boolean;
|
|
@@ -168,10 +178,12 @@ declare const injectBreadcrumbSeparatorState: {
|
|
|
168
178
|
(): _angular_core.Signal<{}>;
|
|
169
179
|
(options: {
|
|
170
180
|
hoisted: true;
|
|
181
|
+
optional?: boolean;
|
|
171
182
|
}): _angular_core.Signal<{} | null>;
|
|
172
183
|
(options?: {
|
|
173
184
|
hoisted?: boolean;
|
|
174
|
-
|
|
185
|
+
optional?: boolean;
|
|
186
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
175
187
|
};
|
|
176
188
|
declare const provideBreadcrumbSeparatorState: (opts?: {
|
|
177
189
|
inherit?: boolean;
|
|
@@ -187,10 +199,12 @@ declare const injectBreadcrumbEllipsisState: {
|
|
|
187
199
|
(): _angular_core.Signal<{}>;
|
|
188
200
|
(options: {
|
|
189
201
|
hoisted: true;
|
|
202
|
+
optional?: boolean;
|
|
190
203
|
}): _angular_core.Signal<{} | null>;
|
|
191
204
|
(options?: {
|
|
192
205
|
hoisted?: boolean;
|
|
193
|
-
|
|
206
|
+
optional?: boolean;
|
|
207
|
+
}): _angular_core.Signal<{}> | _angular_core.Signal<{} | null>;
|
|
194
208
|
};
|
|
195
209
|
declare const provideBreadcrumbEllipsisState: (opts?: {
|
|
196
210
|
inherit?: boolean;
|
package/button/index.d.ts
CHANGED
|
@@ -13,10 +13,12 @@ declare const injectButtonState: {
|
|
|
13
13
|
(): Signal<NgpButtonState>;
|
|
14
14
|
(options: {
|
|
15
15
|
hoisted: true;
|
|
16
|
+
optional?: boolean;
|
|
16
17
|
}): Signal<NgpButtonState | null>;
|
|
17
18
|
(options?: {
|
|
18
19
|
hoisted?: boolean;
|
|
19
|
-
|
|
20
|
+
optional?: boolean;
|
|
21
|
+
}): Signal<NgpButtonState> | Signal<NgpButtonState | null>;
|
|
20
22
|
};
|
|
21
23
|
declare const provideButtonState: (opts?: {
|
|
22
24
|
inherit?: boolean;
|
package/checkbox/index.d.ts
CHANGED
|
@@ -82,10 +82,12 @@ declare const injectCheckboxState: {
|
|
|
82
82
|
(): Signal<NgpCheckboxState>;
|
|
83
83
|
(options: {
|
|
84
84
|
hoisted: true;
|
|
85
|
+
optional?: boolean;
|
|
85
86
|
}): Signal<NgpCheckboxState | null>;
|
|
86
87
|
(options?: {
|
|
87
88
|
hoisted?: boolean;
|
|
88
|
-
|
|
89
|
+
optional?: boolean;
|
|
90
|
+
}): Signal<NgpCheckboxState> | Signal<NgpCheckboxState | null>;
|
|
89
91
|
};
|
|
90
92
|
declare const provideCheckboxState: (opts?: {
|
|
91
93
|
inherit?: boolean;
|
|
@@ -4,16 +4,15 @@ import { uniqueId } from 'ng-primitives/utils';
|
|
|
4
4
|
import { ngpFormControl } from 'ng-primitives/form-field';
|
|
5
5
|
import { ngpInteractions } from 'ng-primitives/interactions';
|
|
6
6
|
import { injectElementRef } from 'ng-primitives/internal';
|
|
7
|
-
import { createPrimitive, controlled, attrBinding, dataBinding, listener, deprecatedSetter } from 'ng-primitives/state';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
7
|
+
import { createPrimitive, controlled, emitter, attrBinding, dataBinding, listener, deprecatedSetter } from 'ng-primitives/state';
|
|
9
8
|
|
|
10
9
|
const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] = createPrimitive('NgpCheckbox', ({ id = signal(uniqueId('ngp-checkbox')), checked: _checked = signal(false), indeterminate: _indeterminate = signal(false), disabled: _disabled = signal(false), onCheckedChange, onIndeterminateChange, }) => {
|
|
11
10
|
const element = injectElementRef();
|
|
12
11
|
const checked = controlled(_checked);
|
|
13
12
|
const indeterminate = controlled(_indeterminate);
|
|
14
13
|
const disabled = controlled(_disabled);
|
|
15
|
-
const checkedChange =
|
|
16
|
-
const indeterminateChange =
|
|
14
|
+
const checkedChange = emitter();
|
|
15
|
+
const indeterminateChange = emitter();
|
|
17
16
|
const tabindex = computed(() => (disabled() ? -1 : 0), ...(ngDevMode ? [{ debugName: "tabindex" }] : []));
|
|
18
17
|
// Setup interactions and form control hooks
|
|
19
18
|
ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });
|
|
@@ -53,12 +52,12 @@ const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxS
|
|
|
53
52
|
function setChecked(value) {
|
|
54
53
|
checked.set(value);
|
|
55
54
|
onCheckedChange?.(value);
|
|
56
|
-
checkedChange.
|
|
55
|
+
checkedChange.emit(value);
|
|
57
56
|
}
|
|
58
57
|
function setIndeterminate(value) {
|
|
59
58
|
indeterminate.set(value);
|
|
60
59
|
onIndeterminateChange?.(value);
|
|
61
|
-
indeterminateChange.
|
|
60
|
+
indeterminateChange.emit(value);
|
|
62
61
|
}
|
|
63
62
|
function setDisabled(value) {
|
|
64
63
|
disabled.set(value);
|
|
@@ -68,8 +67,8 @@ const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxS
|
|
|
68
67
|
checked: deprecatedSetter(checked, 'setChecked'),
|
|
69
68
|
indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),
|
|
70
69
|
disabled: deprecatedSetter(disabled, 'setDisabled'),
|
|
71
|
-
checkedChange,
|
|
72
|
-
indeterminateChange,
|
|
70
|
+
checkedChange: checkedChange.asObservable(),
|
|
71
|
+
indeterminateChange: indeterminateChange.asObservable(),
|
|
73
72
|
toggle,
|
|
74
73
|
setChecked,
|
|
75
74
|
setIndeterminate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-checkbox.mjs","sources":["../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox-state.ts","../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox.ts","../../../../packages/ng-primitives/checkbox/src/ng-primitives-checkbox.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable, Subject } from 'rxjs';\n\n/**\n * Public state surface for the Checkbox primitive.\n */\nexport interface NgpCheckboxState {\n /**\n * The id of the checkbox.\n */\n readonly id: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate: WritableSignal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Emits when the indeterminate state changes.\n */\n readonly indeterminateChange: Observable<boolean>;\n /**\n * Toggle the checkbox value.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void;\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Checkbox primitive.\n */\nexport interface NgpCheckboxProps {\n /**\n * The id of the checkbox.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate?: Signal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /**\n * Callback fired when the indeterminate state changes.\n */\n readonly onIndeterminateChange?: (indeterminate: boolean) => void;\n}\n\nexport const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] =\n createPrimitive(\n 'NgpCheckbox',\n ({\n id = signal(uniqueId('ngp-checkbox')),\n checked: _checked = signal(false),\n indeterminate: _indeterminate = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n onIndeterminateChange,\n }: NgpCheckboxProps): NgpCheckboxState => {\n const element = injectElementRef();\n const checked = controlled(_checked);\n const indeterminate = controlled(_indeterminate);\n const disabled = controlled(_disabled);\n const checkedChange = new Subject<boolean>();\n const indeterminateChange = new Subject<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Setup interactions and form control hooks\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'role', 'checkbox');\n attrBinding(element, 'aria-checked', () => (indeterminate() ? 'mixed' : checked()));\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-indeterminate', indeterminate);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Event listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n // According to WAI ARIA, checkboxes don't activate on enter keypress\n event.preventDefault();\n return;\n }\n\n if (event.key === ' ' || event.key === 'Spacebar') {\n toggle(event);\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n // prevent this firing twice in cases where the label is clicked and the checkbox is clicked by the one event\n event?.preventDefault();\n\n const nextChecked = indeterminate() ? true : !checked();\n setChecked(nextChecked);\n\n // if the checkbox was indeterminate, it isn't anymore\n if (indeterminate()) {\n setIndeterminate(false);\n }\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.next(value);\n }\n\n function setIndeterminate(value: boolean): void {\n indeterminate.set(value);\n onIndeterminateChange?.(value);\n indeterminateChange.next(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n checkedChange,\n indeterminateChange,\n toggle,\n setChecked,\n setIndeterminate,\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpCheckbox, provideCheckboxState } from './checkbox-state';\n\n/**\n * Apply the `ngpCheckbox` directive to an element to that represents the checkbox, such as a `button`.\n */\n@Directive({\n selector: '[ngpCheckbox]',\n providers: [provideCheckboxState({ inherit: false })],\n})\nexport class NgpCheckbox {\n /**\n * The id of the checkbox.\n * @internal\n */\n readonly id = input(uniqueId('ngp-checkbox'));\n\n /**\n * Defines whether the checkbox is checked.\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the checkbox value changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpCheckboxCheckedChange',\n });\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxIndeterminate',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the indeterminate value changes.\n */\n readonly indeterminateChange = output<boolean>({\n alias: 'ngpCheckboxIndeterminateChange',\n });\n\n /**\n * Whether the checkbox is required.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxRequired',\n transform: booleanAttribute,\n });\n\n /**\n * Defines whether the checkbox is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the checkbox.\n */\n protected readonly state = ngpCheckbox({\n id: this.id,\n checked: this.checked,\n indeterminate: this.indeterminate,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n onIndeterminateChange: value => this.indeterminateChange.emit(value),\n });\n\n toggle(event?: Event): void {\n this.state.toggle(event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AA2FO,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,GAC1F,eAAe,CACb,aAAa,EACb,CAAC,EACC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACrC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EACjC,aAAa,EAAE,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,EAC7C,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EACnC,eAAe,EACf,qBAAqB,GACJ,KAAsB;AACvC,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC;AACpC,IAAA,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC;AAChD,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;AACtC,IAAA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAW;AAC5C,IAAA,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAW;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGtD,IAAA,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC3E,IAAA,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;;AAGhC,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC;IACxC,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,aAAa,EAAE,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;AACnF,IAAA,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC;AAC7C,IAAA,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,CAAC;AACzD,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;AAC/C,IAAA,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;;AAG7D,IAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,KAAoB,KAAI;AACpD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;;YAEzB,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE;YACjD,MAAM,CAAC,KAAK,CAAC;QACf;AACF,IAAA,CAAC,CAAC;IAEF,SAAS,MAAM,CAAC,KAAa,EAAA;QAC3B,IAAI,QAAQ,EAAE,EAAE;YACd;QACF;;QAGA,KAAK,EAAE,cAAc,EAAE;AAEvB,QAAA,MAAM,WAAW,GAAG,aAAa,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;QACvD,UAAU,CAAC,WAAW,CAAC;;QAGvB,IAAI,aAAa,EAAE,EAAE;YACnB,gBAAgB,CAAC,KAAK,CAAC;QACzB;IACF;IAEA,SAAS,UAAU,CAAC,KAAc,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAClB,QAAA,eAAe,GAAG,KAAK,CAAC;AACxB,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;IAEA,SAAS,gBAAgB,CAAC,KAAc,EAAA;AACtC,QAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAC9B,QAAA,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;IACjC;IAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IACrB;IAEA,OAAO;QACL,EAAE;AACF,QAAA,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;AAChD,QAAA,aAAa,EAAE,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC;AAClE,QAAA,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC;QACnD,aAAa;QACb,mBAAmB;QACnB,MAAM;QACN,UAAU;QACV,gBAAgB;QAChB,WAAW;KACZ;AACH,CAAC;;AChLL;;AAEG;MAKU,WAAW,CAAA;AAJxB,IAAA,WAAA,GAAA;AAKE;;;AAGG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,8CAAC;AAE7C;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EACnD,KAAK,EAAE,oBAAoB;gBAC3B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAF0B;AACrD,gBAAA,KAAK,EAAE,oBAAoB;AAC3B,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACM,IAAA,CAAA,aAAa,GAAG,MAAM,CAAU;AACvC,YAAA,KAAK,EAAE,0BAA0B;AAClC,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EACzD,KAAK,EAAE,0BAA0B;gBACjC,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAFgC;AAC3D,gBAAA,KAAK,EAAE,0BAA0B;AACjC,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACM,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAU;AAC7C,YAAA,KAAK,EAAE,gCAAgC;AACxC,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EACpD,KAAK,EAAE,qBAAqB;gBAC5B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAF2B;AACtD,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EACpD,KAAK,EAAE,qBAAqB;gBAC5B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAF2B;AACtD,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACgB,IAAA,CAAA,KAAK,GAAG,WAAW,CAAC;YACrC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,eAAe,EAAE,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACxD,YAAA,qBAAqB,EAAE,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AACrE,SAAA,CAAC;AAKH,IAAA;AAHC,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B;8GAnEW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,EAAA,SAAA,EAFX,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAE1C,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;oBACzB,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-checkbox.mjs","sources":["../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox-state.ts","../../../../packages/ng-primitives/checkbox/src/checkbox/checkbox.ts","../../../../packages/ng-primitives/checkbox/src/ng-primitives-checkbox.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Checkbox primitive.\n */\nexport interface NgpCheckboxState {\n /**\n * The id of the checkbox.\n */\n readonly id: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate: WritableSignal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Emits when the indeterminate state changes.\n */\n readonly indeterminateChange: Observable<boolean>;\n /**\n * Toggle the checkbox value.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the indeterminate value.\n */\n setIndeterminate(value: boolean): void;\n /**\n * Set the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Checkbox primitive.\n */\nexport interface NgpCheckboxProps {\n /**\n * The id of the checkbox.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the checkbox is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the checkbox is indeterminate.\n */\n readonly indeterminate?: Signal<boolean>;\n /**\n * Whether the checkbox is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n /**\n * Callback fired when the indeterminate state changes.\n */\n readonly onIndeterminateChange?: (indeterminate: boolean) => void;\n}\n\nexport const [NgpCheckboxStateToken, ngpCheckbox, injectCheckboxState, provideCheckboxState] =\n createPrimitive(\n 'NgpCheckbox',\n ({\n id = signal(uniqueId('ngp-checkbox')),\n checked: _checked = signal(false),\n indeterminate: _indeterminate = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n onIndeterminateChange,\n }: NgpCheckboxProps): NgpCheckboxState => {\n const element = injectElementRef();\n const checked = controlled(_checked);\n const indeterminate = controlled(_indeterminate);\n const disabled = controlled(_disabled);\n const checkedChange = emitter<boolean>();\n const indeterminateChange = emitter<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Setup interactions and form control hooks\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'role', 'checkbox');\n attrBinding(element, 'aria-checked', () => (indeterminate() ? 'mixed' : checked()));\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-indeterminate', indeterminate);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Event listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n // According to WAI ARIA, checkboxes don't activate on enter keypress\n event.preventDefault();\n return;\n }\n\n if (event.key === ' ' || event.key === 'Spacebar') {\n toggle(event);\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n // prevent this firing twice in cases where the label is clicked and the checkbox is clicked by the one event\n event?.preventDefault();\n\n const nextChecked = indeterminate() ? true : !checked();\n setChecked(nextChecked);\n\n // if the checkbox was indeterminate, it isn't anymore\n if (indeterminate()) {\n setIndeterminate(false);\n }\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.emit(value);\n }\n\n function setIndeterminate(value: boolean): void {\n indeterminate.set(value);\n onIndeterminateChange?.(value);\n indeterminateChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n indeterminate: deprecatedSetter(indeterminate, 'setIndeterminate'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n checkedChange: checkedChange.asObservable(),\n indeterminateChange: indeterminateChange.asObservable(),\n toggle,\n setChecked,\n setIndeterminate,\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpCheckbox, provideCheckboxState } from './checkbox-state';\n\n/**\n * Apply the `ngpCheckbox` directive to an element to that represents the checkbox, such as a `button`.\n */\n@Directive({\n selector: '[ngpCheckbox]',\n providers: [provideCheckboxState({ inherit: false })],\n})\nexport class NgpCheckbox {\n /**\n * The id of the checkbox.\n * @internal\n */\n readonly id = input(uniqueId('ngp-checkbox'));\n\n /**\n * Defines whether the checkbox is checked.\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxChecked',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the checkbox value changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpCheckboxCheckedChange',\n });\n\n /**\n * Defines whether the checkbox is indeterminate.\n */\n readonly indeterminate = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxIndeterminate',\n transform: booleanAttribute,\n });\n\n /**\n * The event that is emitted when the indeterminate value changes.\n */\n readonly indeterminateChange = output<boolean>({\n alias: 'ngpCheckboxIndeterminateChange',\n });\n\n /**\n * Whether the checkbox is required.\n */\n readonly required = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxRequired',\n transform: booleanAttribute,\n });\n\n /**\n * Defines whether the checkbox is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpCheckboxDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the checkbox.\n */\n protected readonly state = ngpCheckbox({\n id: this.id,\n checked: this.checked,\n indeterminate: this.indeterminate,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n onIndeterminateChange: value => this.indeterminateChange.emit(value),\n });\n\n toggle(event?: Event): void {\n this.state.toggle(event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { coerceStringArray } from '@angular/cdk/coercion';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { signal, input, booleanAttribute, output, Directive, inject, DOCUMENT } from '@angular/core';
|
|
4
|
-
import {
|
|
4
|
+
import { ngpHover, ngpInteractions } from 'ng-primitives/interactions';
|
|
5
5
|
import { injectElementRef } from 'ng-primitives/internal';
|
|
6
|
-
import { createPrimitive, dataBinding, listener } from 'ng-primitives/state';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
6
|
+
import { createPrimitive, emitter, dataBinding, listener } from 'ng-primitives/state';
|
|
8
7
|
|
|
9
8
|
function fileDropFilter(fileList, acceptedTypes, multiple) {
|
|
10
9
|
const validFiles = Array.from(fileList).filter(file => isFileTypeAccepted(file, acceptedTypes));
|
|
@@ -39,12 +38,14 @@ const [NgpFileDropzoneStateToken, ngpFileDropzone, injectFileDropzoneState, prov
|
|
|
39
38
|
const element = injectElementRef();
|
|
40
39
|
const isDragOverState = signal(false, ...(ngDevMode ? [{ debugName: "isDragOverState" }] : []));
|
|
41
40
|
// Create observables
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
const
|
|
41
|
+
const selected = emitter();
|
|
42
|
+
const rejected = emitter();
|
|
43
|
+
const dragOver = emitter();
|
|
45
44
|
// Host bindings
|
|
46
45
|
dataBinding(element, 'data-dragover', () => (isDragOverState() ? '' : null));
|
|
47
46
|
dataBinding(element, 'data-disabled', () => (disabled?.() ? '' : null));
|
|
47
|
+
// Setup hover interaction
|
|
48
|
+
ngpHover({ disabled });
|
|
48
49
|
function onDragEnter(event) {
|
|
49
50
|
if (disabled?.()) {
|
|
50
51
|
return;
|
|
@@ -52,7 +53,7 @@ const [NgpFileDropzoneStateToken, ngpFileDropzone, injectFileDropzoneState, prov
|
|
|
52
53
|
event.preventDefault();
|
|
53
54
|
event.stopPropagation();
|
|
54
55
|
isDragOverState.set(true);
|
|
55
|
-
|
|
56
|
+
dragOver.emit(true);
|
|
56
57
|
onDragOver?.(true);
|
|
57
58
|
}
|
|
58
59
|
function onDragOverHandler(event) {
|
|
@@ -74,7 +75,7 @@ const [NgpFileDropzoneStateToken, ngpFileDropzone, injectFileDropzoneState, prov
|
|
|
74
75
|
event.preventDefault();
|
|
75
76
|
event.stopPropagation();
|
|
76
77
|
isDragOverState.set(false);
|
|
77
|
-
|
|
78
|
+
dragOver.emit(false);
|
|
78
79
|
onDragOver?.(false);
|
|
79
80
|
}
|
|
80
81
|
function onDrop(event) {
|
|
@@ -83,17 +84,17 @@ const [NgpFileDropzoneStateToken, ngpFileDropzone, injectFileDropzoneState, prov
|
|
|
83
84
|
}
|
|
84
85
|
event.preventDefault();
|
|
85
86
|
isDragOverState.set(false);
|
|
86
|
-
|
|
87
|
+
dragOver.emit(false);
|
|
87
88
|
onDragOver?.(false);
|
|
88
89
|
const fileList = event.dataTransfer?.files;
|
|
89
90
|
if (fileList) {
|
|
90
91
|
const filteredFiles = fileDropFilter(fileList, fileTypes?.(), multiple?.() ?? false);
|
|
91
92
|
if (filteredFiles) {
|
|
92
|
-
|
|
93
|
+
selected.emit(filteredFiles);
|
|
93
94
|
onSelected?.(filteredFiles);
|
|
94
95
|
}
|
|
95
96
|
else {
|
|
96
|
-
|
|
97
|
+
rejected.emit();
|
|
97
98
|
onRejected?.();
|
|
98
99
|
}
|
|
99
100
|
}
|
|
@@ -109,9 +110,9 @@ const [NgpFileDropzoneStateToken, ngpFileDropzone, injectFileDropzoneState, prov
|
|
|
109
110
|
multiple,
|
|
110
111
|
directory,
|
|
111
112
|
isDragOver: isDragOverState,
|
|
112
|
-
selected:
|
|
113
|
-
rejected:
|
|
114
|
-
dragOverChanged:
|
|
113
|
+
selected: selected.asObservable(),
|
|
114
|
+
rejected: rejected.asObservable(),
|
|
115
|
+
dragOverChanged: dragOver.asObservable(),
|
|
115
116
|
};
|
|
116
117
|
});
|
|
117
118
|
|
|
@@ -184,7 +185,6 @@ class NgpFileDropzone {
|
|
|
184
185
|
* Whether the user is currently dragging a file over the file upload.
|
|
185
186
|
*/
|
|
186
187
|
this.isDragOver = this.state.isDragOver;
|
|
187
|
-
ngpHoverInteraction({ disabled: this.disabled });
|
|
188
188
|
}
|
|
189
189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpFileDropzone, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
190
190
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NgpFileDropzone, isStandalone: true, selector: "[ngpFileDropzone]", inputs: { fileTypes: { classPropertyName: "fileTypes", publicName: "ngpFileDropzoneFileTypes", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "ngpFileDropzoneMultiple", isSignal: true, isRequired: false, transformFunction: null }, directory: { classPropertyName: "directory", publicName: "ngpFileDropzoneDirectory", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpFileDropzoneDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "ngpFileDropzoneSelected", rejected: "ngpFileDropzoneRejected", dragOver: "ngpFileDropzoneDragOver" }, providers: [provideFileDropzoneState()], exportAs: ["ngpFileDropzone"], ngImport: i0 }); }
|
|
@@ -196,32 +196,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
|
|
|
196
196
|
exportAs: 'ngpFileDropzone',
|
|
197
197
|
providers: [provideFileDropzoneState()],
|
|
198
198
|
}]
|
|
199
|
-
}],
|
|
199
|
+
}], propDecorators: { fileTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileDropzoneFileTypes", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileDropzoneMultiple", required: false }] }], directory: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileDropzoneDirectory", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileDropzoneDisabled", required: false }] }], selected: [{ type: i0.Output, args: ["ngpFileDropzoneSelected"] }], rejected: [{ type: i0.Output, args: ["ngpFileDropzoneRejected"] }], dragOver: [{ type: i0.Output, args: ["ngpFileDropzoneDragOver"] }] } });
|
|
200
200
|
|
|
201
201
|
const [NgpFileUploadStateToken, ngpFileUpload, injectFileUploadState, provideFileUploadState,] = createPrimitive('NgpFileUpload', ({ fileTypes, multiple, directory, dragAndDrop, disabled, onSelected, onCanceled, onRejected, onDragOver, }) => {
|
|
202
202
|
const element = injectElementRef();
|
|
203
203
|
const document = inject(DOCUMENT);
|
|
204
204
|
const isDragOver = signal(false, ...(ngDevMode ? [{ debugName: "isDragOver" }] : []));
|
|
205
205
|
// Create observables
|
|
206
|
-
const
|
|
207
|
-
const
|
|
208
|
-
const
|
|
209
|
-
const
|
|
206
|
+
const selected = emitter();
|
|
207
|
+
const canceled = emitter();
|
|
208
|
+
const rejected = emitter();
|
|
209
|
+
const dragOver = emitter();
|
|
210
210
|
// Host bindings
|
|
211
211
|
dataBinding(element, 'data-disabled', () => (disabled?.() ? '' : null));
|
|
212
212
|
dataBinding(element, 'data-dragover', () => (isDragOver() ? '' : null));
|
|
213
|
+
// Setup interactions
|
|
214
|
+
ngpInteractions({
|
|
215
|
+
hover: true,
|
|
216
|
+
press: true,
|
|
217
|
+
focusVisible: true,
|
|
218
|
+
disabled,
|
|
219
|
+
});
|
|
213
220
|
// Create file input
|
|
214
221
|
const input = document.createElement('input');
|
|
215
222
|
input.type = 'file';
|
|
216
223
|
input.style.display = 'none';
|
|
217
224
|
input.addEventListener('change', () => {
|
|
218
225
|
const files = input.files;
|
|
219
|
-
|
|
226
|
+
selected.emit(files);
|
|
220
227
|
onSelected?.(files);
|
|
221
228
|
input.value = '';
|
|
222
229
|
});
|
|
223
230
|
input.addEventListener('cancel', () => {
|
|
224
|
-
|
|
231
|
+
canceled.emit();
|
|
225
232
|
onCanceled?.();
|
|
226
233
|
});
|
|
227
234
|
function showFileDialog() {
|
|
@@ -243,7 +250,7 @@ const [NgpFileUploadStateToken, ngpFileUpload, injectFileUploadState, provideFil
|
|
|
243
250
|
event.preventDefault();
|
|
244
251
|
event.stopPropagation();
|
|
245
252
|
isDragOver.set(true);
|
|
246
|
-
|
|
253
|
+
dragOver.emit(true);
|
|
247
254
|
onDragOver?.(true);
|
|
248
255
|
}
|
|
249
256
|
function onDragOverHandler(event) {
|
|
@@ -265,7 +272,7 @@ const [NgpFileUploadStateToken, ngpFileUpload, injectFileUploadState, provideFil
|
|
|
265
272
|
event.preventDefault();
|
|
266
273
|
event.stopPropagation();
|
|
267
274
|
isDragOver.set(false);
|
|
268
|
-
|
|
275
|
+
dragOver.emit(false);
|
|
269
276
|
onDragOver?.(false);
|
|
270
277
|
}
|
|
271
278
|
function onDrop(event) {
|
|
@@ -274,17 +281,17 @@ const [NgpFileUploadStateToken, ngpFileUpload, injectFileUploadState, provideFil
|
|
|
274
281
|
}
|
|
275
282
|
event.preventDefault();
|
|
276
283
|
isDragOver.set(false);
|
|
277
|
-
|
|
284
|
+
dragOver.emit(false);
|
|
278
285
|
onDragOver?.(false);
|
|
279
286
|
const fileList = event.dataTransfer?.files;
|
|
280
287
|
if (fileList) {
|
|
281
288
|
const filteredFiles = fileDropFilter(fileList, fileTypes?.(), multiple?.() ?? false);
|
|
282
289
|
if (filteredFiles) {
|
|
283
|
-
|
|
290
|
+
selected.emit(filteredFiles);
|
|
284
291
|
onSelected?.(filteredFiles);
|
|
285
292
|
}
|
|
286
293
|
else {
|
|
287
|
-
|
|
294
|
+
rejected.emit();
|
|
288
295
|
onRejected?.();
|
|
289
296
|
}
|
|
290
297
|
}
|
|
@@ -297,10 +304,10 @@ const [NgpFileUploadStateToken, ngpFileUpload, injectFileUploadState, provideFil
|
|
|
297
304
|
listener(element, 'drop', onDrop);
|
|
298
305
|
return {
|
|
299
306
|
isDragOver,
|
|
300
|
-
selected:
|
|
301
|
-
canceled:
|
|
302
|
-
rejected:
|
|
303
|
-
dragOverChanged:
|
|
307
|
+
selected: selected.asObservable(),
|
|
308
|
+
canceled: canceled.asObservable(),
|
|
309
|
+
rejected: rejected.asObservable(),
|
|
310
|
+
dragOverChanged: dragOver.asObservable(),
|
|
304
311
|
showFileDialog,
|
|
305
312
|
};
|
|
306
313
|
});
|
|
@@ -390,12 +397,6 @@ class NgpFileUpload {
|
|
|
390
397
|
* Whether the user is currently dragging a file over the file upload.
|
|
391
398
|
*/
|
|
392
399
|
this.isDragOver = this.state.isDragOver;
|
|
393
|
-
ngpInteractions({
|
|
394
|
-
hover: true,
|
|
395
|
-
press: true,
|
|
396
|
-
focusVisible: true,
|
|
397
|
-
disabled: this.disabled,
|
|
398
|
-
});
|
|
399
400
|
}
|
|
400
401
|
/**
|
|
401
402
|
* Show the file dialog.
|
|
@@ -413,7 +414,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
|
|
|
413
414
|
exportAs: 'ngpFileUpload',
|
|
414
415
|
providers: [provideFileUploadState()],
|
|
415
416
|
}]
|
|
416
|
-
}],
|
|
417
|
+
}], propDecorators: { fileTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileUploadFileTypes", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileUploadMultiple", required: false }] }], directory: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileUploadDirectory", required: false }] }], dragAndDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileUploadDragDrop", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpFileUploadDisabled", required: false }] }], selected: [{ type: i0.Output, args: ["ngpFileUploadSelected"] }], canceled: [{ type: i0.Output, args: ["ngpFileUploadCanceled"] }], rejected: [{ type: i0.Output, args: ["ngpFileUploadRejected"] }], dragOver: [{ type: i0.Output, args: ["ngpFileUploadDragOver"] }] } });
|
|
417
418
|
|
|
418
419
|
/**
|
|
419
420
|
* Generated bundle index. Do not edit.
|