@crowdstrike/glide-core 0.12.2 → 0.13.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/dist/accordion.d.ts +1 -1
- package/dist/accordion.styles.js +2 -1
- package/dist/button-group.js +1 -1
- package/dist/button-group.stories.d.ts +0 -1
- package/dist/button-group.test.events.js +2 -0
- package/dist/checkbox-group.styles.js +1 -1
- package/dist/checkbox.styles.js +6 -3
- package/dist/drawer.js +1 -1
- package/dist/dropdown.d.ts +8 -1
- package/dist/dropdown.js +140 -74
- package/dist/dropdown.option.js +1 -1
- package/dist/dropdown.option.styles.js +39 -7
- package/dist/dropdown.option.test.interactions.multiple.js +2 -2
- package/dist/dropdown.option.test.interactions.single.js +2 -2
- package/dist/dropdown.styles.js +121 -16
- package/dist/dropdown.test.basics.filterable.js +19 -57
- package/dist/dropdown.test.basics.js +24 -244
- package/dist/dropdown.test.basics.multiple.js +13 -60
- package/dist/dropdown.test.basics.single.js +2 -8
- package/dist/dropdown.test.events.filterable.js +12 -66
- package/dist/dropdown.test.events.js +75 -49
- package/dist/dropdown.test.events.multiple.js +17 -87
- package/dist/dropdown.test.events.single.js +12 -60
- package/dist/dropdown.test.focus.filterable.js +11 -58
- package/dist/dropdown.test.focus.js +62 -9
- package/dist/dropdown.test.focus.multiple.js +22 -38
- package/dist/dropdown.test.focus.single.js +5 -16
- package/dist/dropdown.test.interactions.filterable.js +167 -69
- package/dist/dropdown.test.interactions.js +226 -244
- package/dist/dropdown.test.interactions.multiple.js +78 -274
- package/dist/dropdown.test.interactions.single.js +20 -85
- package/dist/dropdown.test.validity.js +12 -49
- package/dist/input.d.ts +1 -1
- package/dist/input.js +2 -1
- package/dist/input.styles.js +44 -30
- package/dist/label.js +1 -1
- package/dist/label.styles.js +7 -3
- package/dist/library/localize.d.ts +2 -0
- package/dist/menu.js +1 -1
- package/dist/menu.stories.d.ts +1 -0
- package/dist/menu.styles.js +1 -1
- package/dist/menu.test.interactions.js +1 -1
- package/dist/modal.d.ts +1 -1
- package/dist/modal.js +1 -1
- package/dist/radio-group.stories.d.ts +0 -1
- package/dist/radio-group.styles.js +1 -1
- package/dist/styles/variables.css +1 -1
- package/dist/tab.group.d.ts +0 -1
- package/dist/tab.group.js +1 -1
- package/dist/tab.group.styles.js +5 -13
- package/dist/tab.panel.styles.js +0 -3
- package/dist/tabs.stories.d.ts +0 -1
- package/dist/tag.js +1 -1
- package/dist/tag.styles.js +5 -3
- package/dist/tag.test.interactions.js +8 -8
- package/dist/textarea.styles.js +1 -1
- package/dist/translations/en.js +1 -1
- package/dist/translations/fr.d.ts +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/ja.d.ts +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/tree.stories.d.ts +0 -1
- package/package.json +18 -18
@@ -25,11 +25,7 @@ let GlideCoreDropdownInAnotherComponent = class GlideCoreDropdownInAnotherCompon
|
|
25
25
|
multiple
|
26
26
|
open
|
27
27
|
>
|
28
|
-
<glide-core-dropdown-option
|
29
|
-
label="One"
|
30
|
-
value="one"
|
31
|
-
></glide-core-dropdown-option>
|
32
|
-
|
28
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
33
29
|
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
34
30
|
<glide-core-dropdown-option label="Three"></glide-core-dropdown-option>
|
35
31
|
</glide-core-dropdown>`;
|
@@ -44,15 +40,8 @@ GlideCoreDropdownInAnotherComponent.shadowRootOptions.mode = 'open';
|
|
44
40
|
GlideCoreTag.shadowRootOptions.mode = 'open';
|
45
41
|
it('opens on click', async () => {
|
46
42
|
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
|
47
|
-
<glide-core-dropdown-option
|
48
|
-
|
49
|
-
value="one"
|
50
|
-
></glide-core-dropdown-option>
|
51
|
-
|
52
|
-
<glide-core-dropdown-option
|
53
|
-
label="Two"
|
54
|
-
value="two"
|
55
|
-
></glide-core-dropdown-option>
|
43
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
44
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
56
45
|
</glide-core-dropdown>`);
|
57
46
|
// Calling `click()` would be sweet. The problem is it sets `event.detail` to `0`,
|
58
47
|
// which puts us in a guard in the event handler. `Event` has no `detail` property
|
@@ -74,15 +63,8 @@ it('toggles open and closed when the button is clicked', async () => {
|
|
74
63
|
open
|
75
64
|
multiple
|
76
65
|
>
|
77
|
-
<glide-core-dropdown-option
|
78
|
-
|
79
|
-
value="one"
|
80
|
-
></glide-core-dropdown-option>
|
81
|
-
|
82
|
-
<glide-core-dropdown-option
|
83
|
-
label="Two"
|
84
|
-
value="two"
|
85
|
-
></glide-core-dropdown-option>
|
66
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
67
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
86
68
|
</glide-core-dropdown>`);
|
87
69
|
// Calling `click()` would be sweet. The problem is it sets `event.detail` to `0`,
|
88
70
|
// which puts us in a guard in the event handler. `Event` has no `detail` property
|
@@ -103,15 +85,8 @@ it('does not toggle open and closed when the button overflow text is clicked', a
|
|
103
85
|
open
|
104
86
|
multiple
|
105
87
|
>
|
106
|
-
<glide-core-dropdown-option
|
107
|
-
|
108
|
-
value="one"
|
109
|
-
></glide-core-dropdown-option>
|
110
|
-
|
111
|
-
<glide-core-dropdown-option
|
112
|
-
label="Two"
|
113
|
-
value="two"
|
114
|
-
></glide-core-dropdown-option>
|
88
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
89
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
115
90
|
</glide-core-dropdown>`);
|
116
91
|
// Calling `click()` would be sweet. The problem is it sets `event.detail` to `0`,
|
117
92
|
// which puts us in a guard in the event handler. `Event` has no `detail` property
|
@@ -133,15 +108,8 @@ it('selects options on click', async () => {
|
|
133
108
|
open
|
134
109
|
multiple
|
135
110
|
>
|
136
|
-
<glide-core-dropdown-option
|
137
|
-
|
138
|
-
value="one"
|
139
|
-
></glide-core-dropdown-option>
|
140
|
-
|
141
|
-
<glide-core-dropdown-option
|
142
|
-
label="Two"
|
143
|
-
value="two"
|
144
|
-
></glide-core-dropdown-option>
|
111
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
112
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
145
113
|
</glide-core-dropdown>`);
|
146
114
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
147
115
|
options[0]?.click();
|
@@ -160,15 +128,8 @@ it('selects options on Space', async () => {
|
|
160
128
|
multiple
|
161
129
|
open
|
162
130
|
>
|
163
|
-
<glide-core-dropdown-option
|
164
|
-
|
165
|
-
value="one"
|
166
|
-
></glide-core-dropdown-option>
|
167
|
-
|
168
|
-
<glide-core-dropdown-option
|
169
|
-
label="Two"
|
170
|
-
value="two"
|
171
|
-
></glide-core-dropdown-option>
|
131
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
132
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
172
133
|
</glide-core-dropdown>`);
|
173
134
|
// Wait for it to open.
|
174
135
|
await aTimeout(0);
|
@@ -192,15 +153,8 @@ it('selects options on Enter', async () => {
|
|
192
153
|
multiple
|
193
154
|
open
|
194
155
|
>
|
195
|
-
<glide-core-dropdown-option
|
196
|
-
|
197
|
-
value="one"
|
198
|
-
></glide-core-dropdown-option>
|
199
|
-
|
200
|
-
<glide-core-dropdown-option
|
201
|
-
label="Two"
|
202
|
-
value="two"
|
203
|
-
></glide-core-dropdown-option>
|
156
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
157
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
204
158
|
</glide-core-dropdown>`);
|
205
159
|
// Wait for it to open.
|
206
160
|
await aTimeout(0);
|
@@ -218,15 +172,8 @@ it('selects options on Enter', async () => {
|
|
218
172
|
});
|
219
173
|
it('activates Select All by default', async () => {
|
220
174
|
const component = await fixture(html `<glide-core-dropdown open multiple select-all>
|
221
|
-
<glide-core-dropdown-option
|
222
|
-
|
223
|
-
value="one"
|
224
|
-
></glide-core-dropdown-option>
|
225
|
-
|
226
|
-
<glide-core-dropdown-option
|
227
|
-
label="Two"
|
228
|
-
value="two"
|
229
|
-
></glide-core-dropdown-option>
|
175
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
176
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
230
177
|
</glide-core-dropdown>`);
|
231
178
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
232
179
|
const selectAll = component.shadowRoot?.querySelector('[data-test="select-all"]');
|
@@ -236,15 +183,8 @@ it('activates Select All by default', async () => {
|
|
236
183
|
});
|
237
184
|
it('deactivates all other options on "mouseover"', async () => {
|
238
185
|
const component = await fixture(html `<glide-core-dropdown open multiple select-all>
|
239
|
-
<glide-core-dropdown-option
|
240
|
-
|
241
|
-
value="one"
|
242
|
-
></glide-core-dropdown-option>
|
243
|
-
|
244
|
-
<glide-core-dropdown-option
|
245
|
-
label="Two"
|
246
|
-
value="two"
|
247
|
-
></glide-core-dropdown-option>
|
186
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
187
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
248
188
|
</glide-core-dropdown>`);
|
249
189
|
const options = [
|
250
190
|
...component.querySelectorAll('glide-core-dropdown-option'),
|
@@ -281,14 +221,10 @@ it('remains open when an option is selected via Enter', async () => {
|
|
281
221
|
>
|
282
222
|
<glide-core-dropdown-option
|
283
223
|
label="One"
|
284
|
-
value="one"
|
285
224
|
selected
|
286
225
|
></glide-core-dropdown-option>
|
287
226
|
|
288
|
-
<glide-core-dropdown-option
|
289
|
-
label="Two"
|
290
|
-
value="two"
|
291
|
-
></glide-core-dropdown-option>
|
227
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
292
228
|
</glide-core-dropdown>`);
|
293
229
|
component.querySelector('glide-core-dropdown-option')?.focus();
|
294
230
|
await sendKeys({ press: 'Enter' });
|
@@ -303,14 +239,10 @@ it('remains open when an option is selected via Space', async () => {
|
|
303
239
|
>
|
304
240
|
<glide-core-dropdown-option
|
305
241
|
label="One"
|
306
|
-
value="one"
|
307
242
|
selected
|
308
243
|
></glide-core-dropdown-option>
|
309
244
|
|
310
|
-
<glide-core-dropdown-option
|
311
|
-
label="Two"
|
312
|
-
value="two"
|
313
|
-
></glide-core-dropdown-option>
|
245
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
314
246
|
</glide-core-dropdown>`);
|
315
247
|
const option = component.querySelector('glide-core-dropdown-option');
|
316
248
|
option?.focus();
|
@@ -319,15 +251,9 @@ it('remains open when an option is selected via Space', async () => {
|
|
319
251
|
});
|
320
252
|
it('activates Select All on "mouseover"', async () => {
|
321
253
|
const component = await fixture(html `<glide-core-dropdown open multiple select-all>
|
322
|
-
<glide-core-dropdown-option
|
323
|
-
label="One"
|
324
|
-
value="one"
|
325
|
-
></glide-core-dropdown-option>
|
254
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
326
255
|
|
327
|
-
<glide-core-dropdown-option
|
328
|
-
label="Two"
|
329
|
-
value="two"
|
330
|
-
></glide-core-dropdown-option>
|
256
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
331
257
|
</glide-core-dropdown>`);
|
332
258
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
333
259
|
options[0]?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
|
@@ -345,15 +271,13 @@ it('does not activate the next option on ArrowDown when a tag is focused', async
|
|
345
271
|
>
|
346
272
|
<glide-core-dropdown-option
|
347
273
|
label="One"
|
348
|
-
value="one"
|
349
274
|
selected
|
350
275
|
></glide-core-dropdown-option>
|
351
276
|
|
352
|
-
<glide-core-dropdown-option
|
353
|
-
label="Two"
|
354
|
-
value="two"
|
355
|
-
></glide-core-dropdown-option>
|
277
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
356
278
|
</glide-core-dropdown>`);
|
279
|
+
// Wait for it to open.
|
280
|
+
await aTimeout(0);
|
357
281
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
358
282
|
component.shadowRoot
|
359
283
|
?.querySelector('[data-test="tag"]')
|
@@ -575,29 +499,41 @@ it('updates `value` when the `value` of a selected option is emptied programmati
|
|
575
499
|
option.value = '';
|
576
500
|
expect(component.value).to.deep.equal(['two']);
|
577
501
|
});
|
578
|
-
it('
|
579
|
-
const component = await fixture(html `<glide-core-dropdown
|
580
|
-
label="Label"
|
581
|
-
placeholder="Placeholder"
|
582
|
-
open
|
583
|
-
multiple
|
584
|
-
>
|
502
|
+
it('updates `value` a tag is removed', async () => {
|
503
|
+
const component = await fixture(html `<glide-core-dropdown open multiple>
|
585
504
|
<glide-core-dropdown-option
|
586
505
|
label="One"
|
587
506
|
value="one"
|
507
|
+
selected
|
588
508
|
></glide-core-dropdown-option>
|
589
509
|
|
590
510
|
<glide-core-dropdown-option
|
591
511
|
label="Two"
|
592
512
|
value="two"
|
513
|
+
selected
|
593
514
|
></glide-core-dropdown-option>
|
594
515
|
</glide-core-dropdown>`);
|
516
|
+
component.shadowRoot
|
517
|
+
?.querySelector('[data-test="tag"]')
|
518
|
+
?.click();
|
519
|
+
expect(component.value).to.deep.equal(['two']);
|
520
|
+
});
|
521
|
+
it('has no internal label when an option is newly selected', async () => {
|
522
|
+
const component = await fixture(html `<glide-core-dropdown
|
523
|
+
label="Label"
|
524
|
+
placeholder="Placeholder"
|
525
|
+
open
|
526
|
+
multiple
|
527
|
+
>
|
528
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
529
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
530
|
+
</glide-core-dropdown>`);
|
595
531
|
component
|
596
532
|
.querySelector('glide-core-dropdown-option:last-of-type')
|
597
533
|
?.click();
|
598
534
|
await elementUpdated(component);
|
599
535
|
const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
|
600
|
-
expect(label).to.not.
|
536
|
+
expect(label?.checkVisibility()).to.not.be.ok;
|
601
537
|
});
|
602
538
|
it('hides tags to prevent overflow', async () => {
|
603
539
|
const component = await fixture(html `<glide-core-dropdown
|
@@ -606,25 +542,10 @@ it('hides tags to prevent overflow', async () => {
|
|
606
542
|
multiple
|
607
543
|
style="display: block; max-width: 20rem;"
|
608
544
|
>
|
609
|
-
<glide-core-dropdown-option
|
610
|
-
|
611
|
-
|
612
|
-
></glide-core-dropdown-option>
|
613
|
-
|
614
|
-
<glide-core-dropdown-option
|
615
|
-
label="Two"
|
616
|
-
value="two"
|
617
|
-
></glide-core-dropdown-option>
|
618
|
-
|
619
|
-
<glide-core-dropdown-option
|
620
|
-
label="Three"
|
621
|
-
value="three"
|
622
|
-
></glide-core-dropdown-option>
|
623
|
-
|
624
|
-
<glide-core-dropdown-option
|
625
|
-
label="Four"
|
626
|
-
value="four"
|
627
|
-
></glide-core-dropdown-option>
|
545
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
546
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
547
|
+
<glide-core-dropdown-option label="Three"></glide-core-dropdown-option>
|
548
|
+
<glide-core-dropdown-option label="Four"></glide-core-dropdown-option>
|
628
549
|
</glide-core-dropdown>`);
|
629
550
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
630
551
|
options[0].selected = true;
|
@@ -645,25 +566,10 @@ it('has overflow text when its tags are overflowing', async () => {
|
|
645
566
|
multiple
|
646
567
|
style="display: block; max-width: 20rem;"
|
647
568
|
>
|
648
|
-
<glide-core-dropdown-option
|
649
|
-
|
650
|
-
|
651
|
-
></glide-core-dropdown-option>
|
652
|
-
|
653
|
-
<glide-core-dropdown-option
|
654
|
-
label="Two"
|
655
|
-
value="two"
|
656
|
-
></glide-core-dropdown-option>
|
657
|
-
|
658
|
-
<glide-core-dropdown-option
|
659
|
-
label="Three"
|
660
|
-
value="three"
|
661
|
-
></glide-core-dropdown-option>
|
662
|
-
|
663
|
-
<glide-core-dropdown-option
|
664
|
-
label="Four"
|
665
|
-
value="four"
|
666
|
-
></glide-core-dropdown-option>
|
569
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
570
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
571
|
+
<glide-core-dropdown-option label="Three"></glide-core-dropdown-option>
|
572
|
+
<glide-core-dropdown-option label="Four"></glide-core-dropdown-option>
|
667
573
|
</glide-core-dropdown>`);
|
668
574
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
669
575
|
options[0].selected = true;
|
@@ -684,14 +590,10 @@ it('deselects the option when its tag is removed', async () => {
|
|
684
590
|
>
|
685
591
|
<glide-core-dropdown-option
|
686
592
|
label="One"
|
687
|
-
value="one"
|
688
593
|
selected
|
689
594
|
></glide-core-dropdown-option>
|
690
595
|
|
691
|
-
<glide-core-dropdown-option
|
692
|
-
label="Two"
|
693
|
-
value="two"
|
694
|
-
></glide-core-dropdown-option>
|
596
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
695
597
|
</glide-core-dropdown>`);
|
696
598
|
component.shadowRoot
|
697
599
|
?.querySelector('[data-test="tag"]')
|
@@ -703,13 +605,11 @@ it('deselects all but the last selected option when `multiple` is changed to `fa
|
|
703
605
|
const component = await fixture(html `<glide-core-dropdown open multiple>
|
704
606
|
<glide-core-dropdown-option
|
705
607
|
label="One"
|
706
|
-
value="one"
|
707
608
|
selected
|
708
609
|
></glide-core-dropdown-option>
|
709
610
|
|
710
611
|
<glide-core-dropdown-option
|
711
612
|
label="Two"
|
712
|
-
value="two"
|
713
613
|
selected
|
714
614
|
></glide-core-dropdown-option>
|
715
615
|
</glide-core-dropdown>`);
|
@@ -725,15 +625,8 @@ it('selects all options when none are selected and Select All is selected via cl
|
|
725
625
|
multiple
|
726
626
|
select-all
|
727
627
|
>
|
728
|
-
<glide-core-dropdown-option
|
729
|
-
|
730
|
-
value="one"
|
731
|
-
></glide-core-dropdown-option>
|
732
|
-
|
733
|
-
<glide-core-dropdown-option
|
734
|
-
label="Two"
|
735
|
-
value="two"
|
736
|
-
></glide-core-dropdown-option>
|
628
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
629
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
737
630
|
</glide-core-dropdown>`);
|
738
631
|
component.shadowRoot
|
739
632
|
?.querySelector('[data-test="select-all"]')
|
@@ -751,14 +644,10 @@ it('selects all options when some are selected and Select All is selected via cl
|
|
751
644
|
>
|
752
645
|
<glide-core-dropdown-option
|
753
646
|
label="One"
|
754
|
-
value="one"
|
755
647
|
selected
|
756
648
|
></glide-core-dropdown-option>
|
757
649
|
|
758
|
-
<glide-core-dropdown-option
|
759
|
-
label="Two"
|
760
|
-
value="two"
|
761
|
-
></glide-core-dropdown-option>
|
650
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
762
651
|
</glide-core-dropdown>`);
|
763
652
|
component.shadowRoot
|
764
653
|
?.querySelector('[data-test="select-all"]')
|
@@ -776,13 +665,11 @@ it('deselects all options when all are selected and Select All is selected via c
|
|
776
665
|
>
|
777
666
|
<glide-core-dropdown-option
|
778
667
|
label="One"
|
779
|
-
value="one"
|
780
668
|
selected
|
781
669
|
></glide-core-dropdown-option>
|
782
670
|
|
783
671
|
<glide-core-dropdown-option
|
784
672
|
label="Two"
|
785
|
-
value="two"
|
786
673
|
selected
|
787
674
|
></glide-core-dropdown-option>
|
788
675
|
</glide-core-dropdown>`);
|
@@ -801,15 +688,8 @@ it('selects all options when none are selected and Select All is selected via Sp
|
|
801
688
|
open
|
802
689
|
select-all
|
803
690
|
>
|
804
|
-
<glide-core-dropdown-option
|
805
|
-
|
806
|
-
value="one"
|
807
|
-
></glide-core-dropdown-option>
|
808
|
-
|
809
|
-
<glide-core-dropdown-option
|
810
|
-
label="Two"
|
811
|
-
value="two"
|
812
|
-
></glide-core-dropdown-option>
|
691
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
692
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
813
693
|
</glide-core-dropdown>`);
|
814
694
|
component?.shadowRoot
|
815
695
|
?.querySelector('[data-test="select-all"]')
|
@@ -830,14 +710,10 @@ it('selects all options when some are selected and Select All is selected via Sp
|
|
830
710
|
>
|
831
711
|
<glide-core-dropdown-option
|
832
712
|
label="One"
|
833
|
-
value="one"
|
834
713
|
selected
|
835
714
|
></glide-core-dropdown-option>
|
836
715
|
|
837
|
-
<glide-core-dropdown-option
|
838
|
-
label="Two"
|
839
|
-
value="two"
|
840
|
-
></glide-core-dropdown-option>
|
716
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
841
717
|
</glide-core-dropdown>`);
|
842
718
|
component?.shadowRoot
|
843
719
|
?.querySelector('[data-test="select-all"]')
|
@@ -858,13 +734,11 @@ it('deselects all options when all are selected and Select All is selected via S
|
|
858
734
|
>
|
859
735
|
<glide-core-dropdown-option
|
860
736
|
label="One"
|
861
|
-
value="one"
|
862
737
|
selected
|
863
738
|
></glide-core-dropdown-option>
|
864
739
|
|
865
740
|
<glide-core-dropdown-option
|
866
741
|
label="Two"
|
867
|
-
value="two"
|
868
742
|
selected
|
869
743
|
></glide-core-dropdown-option>
|
870
744
|
</glide-core-dropdown>`);
|
@@ -885,15 +759,8 @@ it('selects all options when none are selected and Select All is selected via En
|
|
885
759
|
open
|
886
760
|
select-all
|
887
761
|
>
|
888
|
-
<glide-core-dropdown-option
|
889
|
-
|
890
|
-
value="one"
|
891
|
-
></glide-core-dropdown-option>
|
892
|
-
|
893
|
-
<glide-core-dropdown-option
|
894
|
-
label="Two"
|
895
|
-
value="two"
|
896
|
-
></glide-core-dropdown-option>
|
762
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
763
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
897
764
|
</glide-core-dropdown>`);
|
898
765
|
component?.shadowRoot
|
899
766
|
?.querySelector('[data-test="select-all"]')
|
@@ -914,14 +781,10 @@ it('selects all options when some are selected and Select All is selected via En
|
|
914
781
|
>
|
915
782
|
<glide-core-dropdown-option
|
916
783
|
label="One"
|
917
|
-
value="one"
|
918
784
|
selected
|
919
785
|
></glide-core-dropdown-option>
|
920
786
|
|
921
|
-
<glide-core-dropdown-option
|
922
|
-
label="Two"
|
923
|
-
value="two"
|
924
|
-
></glide-core-dropdown-option>
|
787
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
925
788
|
</glide-core-dropdown>`);
|
926
789
|
component?.shadowRoot
|
927
790
|
?.querySelector('[data-test="select-all"]')
|
@@ -942,13 +805,11 @@ it('deselects all options when all are selected and Select All is selected via E
|
|
942
805
|
>
|
943
806
|
<glide-core-dropdown-option
|
944
807
|
label="One"
|
945
|
-
value="one"
|
946
808
|
selected
|
947
809
|
></glide-core-dropdown-option>
|
948
810
|
|
949
811
|
<glide-core-dropdown-option
|
950
812
|
label="Two"
|
951
|
-
value="two"
|
952
813
|
selected
|
953
814
|
></glide-core-dropdown-option>
|
954
815
|
</glide-core-dropdown>`);
|
@@ -970,14 +831,10 @@ it('shows Select All', async () => {
|
|
970
831
|
>
|
971
832
|
<glide-core-dropdown-option
|
972
833
|
label="One"
|
973
|
-
value="one"
|
974
834
|
selected
|
975
835
|
></glide-core-dropdown-option>
|
976
836
|
|
977
|
-
<glide-core-dropdown-option
|
978
|
-
label="Two"
|
979
|
-
value="two"
|
980
|
-
></glide-core-dropdown-option>
|
837
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
981
838
|
</glide-core-dropdown>`);
|
982
839
|
// Wait for it to open.
|
983
840
|
await aTimeout(0);
|
@@ -993,15 +850,8 @@ it('sets Select All as selected when all options are selected', async () => {
|
|
993
850
|
multiple
|
994
851
|
select-all
|
995
852
|
>
|
996
|
-
<glide-core-dropdown-option
|
997
|
-
|
998
|
-
value="one"
|
999
|
-
></glide-core-dropdown-option>
|
1000
|
-
|
1001
|
-
<glide-core-dropdown-option
|
1002
|
-
label="Two"
|
1003
|
-
value="two"
|
1004
|
-
></glide-core-dropdown-option>
|
853
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
854
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1005
855
|
</glide-core-dropdown>`);
|
1006
856
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
1007
857
|
options[0].click();
|
@@ -1016,15 +866,8 @@ it('sets Select All as deselected when no options are selected', async () => {
|
|
1016
866
|
multiple
|
1017
867
|
select-all
|
1018
868
|
>
|
1019
|
-
<glide-core-dropdown-option
|
1020
|
-
|
1021
|
-
value="one"
|
1022
|
-
></glide-core-dropdown-option>
|
1023
|
-
|
1024
|
-
<glide-core-dropdown-option
|
1025
|
-
label="Two"
|
1026
|
-
value="two"
|
1027
|
-
></glide-core-dropdown-option>
|
869
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
870
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1028
871
|
</glide-core-dropdown>`);
|
1029
872
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
1030
873
|
options[0].click();
|
@@ -1041,15 +884,8 @@ it('sets Select All as indeterminate when not all options are selected', async (
|
|
1041
884
|
multiple
|
1042
885
|
select-all
|
1043
886
|
>
|
1044
|
-
<glide-core-dropdown-option
|
1045
|
-
|
1046
|
-
value="one"
|
1047
|
-
></glide-core-dropdown-option>
|
1048
|
-
|
1049
|
-
<glide-core-dropdown-option
|
1050
|
-
label="Two"
|
1051
|
-
value="two"
|
1052
|
-
></glide-core-dropdown-option>
|
887
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
888
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1053
889
|
</glide-core-dropdown>`);
|
1054
890
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
1055
891
|
options[0].click();
|
@@ -1064,15 +900,8 @@ it('does not set Select All as indeterminate when no options are selected', asyn
|
|
1064
900
|
multiple
|
1065
901
|
select-all
|
1066
902
|
>
|
1067
|
-
<glide-core-dropdown-option
|
1068
|
-
|
1069
|
-
value="one"
|
1070
|
-
></glide-core-dropdown-option>
|
1071
|
-
|
1072
|
-
<glide-core-dropdown-option
|
1073
|
-
label="Two"
|
1074
|
-
value="two"
|
1075
|
-
></glide-core-dropdown-option>
|
903
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
904
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1076
905
|
</glide-core-dropdown>`);
|
1077
906
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
1078
907
|
options[0].click();
|
@@ -1087,15 +916,8 @@ it('does not set Select All as indeterminate when all options are selected', asy
|
|
1087
916
|
multiple
|
1088
917
|
select-all
|
1089
918
|
>
|
1090
|
-
<glide-core-dropdown-option
|
1091
|
-
|
1092
|
-
value="one"
|
1093
|
-
></glide-core-dropdown-option>
|
1094
|
-
|
1095
|
-
<glide-core-dropdown-option
|
1096
|
-
label="Two"
|
1097
|
-
value="two"
|
1098
|
-
></glide-core-dropdown-option>
|
919
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
920
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1099
921
|
</glide-core-dropdown>`);
|
1100
922
|
const options = component.querySelectorAll('glide-core-dropdown-option');
|
1101
923
|
options[0].click();
|
@@ -1107,14 +929,10 @@ it('closes when a tag is clicked', async () => {
|
|
1107
929
|
const component = await fixture(html `<glide-core-dropdown open multiple>
|
1108
930
|
<glide-core-dropdown-option
|
1109
931
|
label="One"
|
1110
|
-
value="one"
|
1111
932
|
selected
|
1112
933
|
></glide-core-dropdown-option>
|
1113
934
|
|
1114
|
-
<glide-core-dropdown-option
|
1115
|
-
label="Two"
|
1116
|
-
value="two"
|
1117
|
-
></glide-core-dropdown-option>
|
935
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1118
936
|
</glide-core-dropdown>`);
|
1119
937
|
const tag = component.shadowRoot?.querySelector('[data-test="tag"]');
|
1120
938
|
assert(tag);
|
@@ -1187,30 +1005,16 @@ it('cannot be tabbed to when `disabled`', async () => {
|
|
1187
1005
|
disabled
|
1188
1006
|
multiple
|
1189
1007
|
>
|
1190
|
-
<glide-core-dropdown-option
|
1191
|
-
|
1192
|
-
value="one"
|
1193
|
-
></glide-core-dropdown-option>
|
1194
|
-
|
1195
|
-
<glide-core-dropdown-option
|
1196
|
-
label="Two"
|
1197
|
-
value="two"
|
1198
|
-
></glide-core-dropdown-option>
|
1008
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
1009
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1199
1010
|
</glide-core-dropdown>`);
|
1200
1011
|
await sendKeys({ press: 'Tab' });
|
1201
1012
|
expect(document.activeElement).to.equal(document.body);
|
1202
1013
|
});
|
1203
1014
|
it('clicks the primary button when `click()` is called', async () => {
|
1204
1015
|
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
|
1205
|
-
<glide-core-dropdown-option
|
1206
|
-
|
1207
|
-
value="one"
|
1208
|
-
></glide-core-dropdown-option>
|
1209
|
-
|
1210
|
-
<glide-core-dropdown-option
|
1211
|
-
label="Two"
|
1212
|
-
value="two"
|
1213
|
-
></glide-core-dropdown-option>
|
1016
|
+
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
1017
|
+
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
1214
1018
|
</glide-core-dropdown>`);
|
1215
1019
|
const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
|
1216
1020
|
assert(button);
|