@crowdstrike/glide-core 0.13.0 → 0.14.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/drawer.d.ts +2 -2
- package/dist/drawer.js +1 -1
- package/dist/drawer.styles.js +3 -3
- package/dist/dropdown.js +11 -11
- package/dist/dropdown.option.d.ts +1 -1
- package/dist/dropdown.option.js +1 -1
- package/dist/dropdown.styles.js +11 -16
- package/dist/input.styles.js +6 -1
- package/dist/styles/variables.css +1 -1
- package/dist/textarea.styles.js +6 -0
- package/dist/toasts.d.ts +2 -2
- package/dist/toasts.toast.d.ts +1 -1
- package/dist/toasts.toast.js +1 -1
- package/dist/toasts.toast.styles.js +8 -0
- package/dist/tree.item.styles.js +2 -2
- package/package.json +9 -6
- package/dist/accordion.stories.d.ts +0 -6
- package/dist/accordion.test.basics.d.ts +0 -1
- package/dist/accordion.test.basics.js +0 -28
- package/dist/accordion.test.events.d.ts +0 -1
- package/dist/accordion.test.events.js +0 -28
- package/dist/accordion.test.focus.d.ts +0 -1
- package/dist/accordion.test.focus.js +0 -11
- package/dist/accordion.test.interactions.d.ts +0 -1
- package/dist/accordion.test.interactions.js +0 -75
- package/dist/button-group.button.test.basics.d.ts +0 -1
- package/dist/button-group.button.test.basics.js +0 -97
- package/dist/button-group.button.test.events.d.ts +0 -1
- package/dist/button-group.button.test.events.js +0 -15
- package/dist/button-group.button.test.focus.d.ts +0 -1
- package/dist/button-group.button.test.focus.js +0 -13
- package/dist/button-group.button.test.interactions.d.ts +0 -1
- package/dist/button-group.button.test.interactions.js +0 -42
- package/dist/button-group.stories.d.ts +0 -7
- package/dist/button-group.test.basics.d.ts +0 -1
- package/dist/button-group.test.basics.js +0 -148
- package/dist/button-group.test.events.d.ts +0 -1
- package/dist/button-group.test.events.js +0 -241
- package/dist/button-group.test.focus.d.ts +0 -1
- package/dist/button-group.test.focus.js +0 -39
- package/dist/button-group.test.interactions.d.ts +0 -1
- package/dist/button-group.test.interactions.js +0 -91
- package/dist/button.stories.d.ts +0 -7
- package/dist/button.test.basics.d.ts +0 -1
- package/dist/button.test.basics.js +0 -69
- package/dist/button.test.events.d.ts +0 -1
- package/dist/button.test.events.js +0 -102
- package/dist/checkbox-group.stories.d.ts +0 -6
- package/dist/checkbox-group.test.basics.d.ts +0 -1
- package/dist/checkbox-group.test.basics.js +0 -116
- package/dist/checkbox-group.test.events.d.ts +0 -1
- package/dist/checkbox-group.test.events.js +0 -111
- package/dist/checkbox-group.test.focus.d.ts +0 -1
- package/dist/checkbox-group.test.focus.js +0 -70
- package/dist/checkbox-group.test.form.d.ts +0 -1
- package/dist/checkbox-group.test.form.js +0 -131
- package/dist/checkbox-group.test.interactions.d.ts +0 -1
- package/dist/checkbox-group.test.interactions.js +0 -82
- package/dist/checkbox-group.test.validity.d.ts +0 -1
- package/dist/checkbox-group.test.validity.js +0 -145
- package/dist/checkbox.stories.d.ts +0 -5
- package/dist/checkbox.test.basics.d.ts +0 -1
- package/dist/checkbox.test.basics.js +0 -90
- package/dist/checkbox.test.events.d.ts +0 -1
- package/dist/checkbox.test.events.js +0 -105
- package/dist/checkbox.test.focus.d.ts +0 -1
- package/dist/checkbox.test.focus.js +0 -51
- package/dist/checkbox.test.form.d.ts +0 -1
- package/dist/checkbox.test.form.js +0 -133
- package/dist/checkbox.test.interactions.d.ts +0 -1
- package/dist/checkbox.test.interactions.js +0 -131
- package/dist/checkbox.test.validity.d.ts +0 -1
- package/dist/checkbox.test.validity.js +0 -128
- package/dist/drawer.stories.d.ts +0 -6
- package/dist/drawer.test.accessibility.d.ts +0 -1
- package/dist/drawer.test.accessibility.js +0 -22
- package/dist/drawer.test.basics.d.ts +0 -1
- package/dist/drawer.test.basics.js +0 -44
- package/dist/drawer.test.closing.d.ts +0 -1
- package/dist/drawer.test.closing.js +0 -40
- package/dist/drawer.test.events.d.ts +0 -1
- package/dist/drawer.test.events.js +0 -42
- package/dist/drawer.test.methods.d.ts +0 -1
- package/dist/drawer.test.methods.js +0 -35
- package/dist/dropdown.option.test.basics.d.ts +0 -1
- package/dist/dropdown.option.test.basics.js +0 -34
- package/dist/dropdown.option.test.basics.multiple.d.ts +0 -1
- package/dist/dropdown.option.test.basics.multiple.js +0 -36
- package/dist/dropdown.option.test.basics.single.d.ts +0 -1
- package/dist/dropdown.option.test.basics.single.js +0 -29
- package/dist/dropdown.option.test.events.d.ts +0 -1
- package/dist/dropdown.option.test.events.js +0 -36
- package/dist/dropdown.option.test.focus.d.ts +0 -1
- package/dist/dropdown.option.test.focus.js +0 -11
- package/dist/dropdown.option.test.interactions.multiple.d.ts +0 -1
- package/dist/dropdown.option.test.interactions.multiple.js +0 -42
- package/dist/dropdown.option.test.interactions.single.d.ts +0 -1
- package/dist/dropdown.option.test.interactions.single.js +0 -76
- package/dist/dropdown.stories.d.ts +0 -8
- package/dist/dropdown.test.basics.d.ts +0 -1
- package/dist/dropdown.test.basics.filterable.d.ts +0 -1
- package/dist/dropdown.test.basics.filterable.js +0 -108
- package/dist/dropdown.test.basics.js +0 -181
- package/dist/dropdown.test.basics.multiple.d.ts +0 -1
- package/dist/dropdown.test.basics.multiple.js +0 -259
- package/dist/dropdown.test.basics.single.d.ts +0 -1
- package/dist/dropdown.test.basics.single.js +0 -122
- package/dist/dropdown.test.events.d.ts +0 -1
- package/dist/dropdown.test.events.filterable.d.ts +0 -1
- package/dist/dropdown.test.events.filterable.js +0 -31
- package/dist/dropdown.test.events.js +0 -251
- package/dist/dropdown.test.events.multiple.d.ts +0 -1
- package/dist/dropdown.test.events.multiple.js +0 -446
- package/dist/dropdown.test.events.single.d.ts +0 -1
- package/dist/dropdown.test.events.single.js +0 -343
- package/dist/dropdown.test.focus.d.ts +0 -1
- package/dist/dropdown.test.focus.filterable.d.ts +0 -1
- package/dist/dropdown.test.focus.filterable.js +0 -140
- package/dist/dropdown.test.focus.js +0 -107
- package/dist/dropdown.test.focus.multiple.d.ts +0 -1
- package/dist/dropdown.test.focus.multiple.js +0 -170
- package/dist/dropdown.test.focus.single.d.ts +0 -1
- package/dist/dropdown.test.focus.single.js +0 -42
- package/dist/dropdown.test.form.d.ts +0 -1
- package/dist/dropdown.test.form.js +0 -74
- package/dist/dropdown.test.form.multiple.d.ts +0 -1
- package/dist/dropdown.test.form.multiple.js +0 -151
- package/dist/dropdown.test.form.single.d.ts +0 -1
- package/dist/dropdown.test.form.single.js +0 -129
- package/dist/dropdown.test.interactions.d.ts +0 -1
- package/dist/dropdown.test.interactions.filterable.d.ts +0 -1
- package/dist/dropdown.test.interactions.filterable.js +0 -805
- package/dist/dropdown.test.interactions.js +0 -696
- package/dist/dropdown.test.interactions.multiple.d.ts +0 -1
- package/dist/dropdown.test.interactions.multiple.js +0 -1026
- package/dist/dropdown.test.interactions.single.d.ts +0 -1
- package/dist/dropdown.test.interactions.single.js +0 -569
- package/dist/dropdown.test.validity.d.ts +0 -1
- package/dist/dropdown.test.validity.js +0 -181
- package/dist/form-controls-layout.stories.d.ts +0 -10
- package/dist/form-controls-layout.test.basics.d.ts +0 -2
- package/dist/form-controls-layout.test.basics.js +0 -75
- package/dist/form-controls-layout.test.interactions.d.ts +0 -2
- package/dist/form-controls-layout.test.interactions.js +0 -26
- package/dist/icon-button.stories.d.ts +0 -6
- package/dist/icon-button.test.basics.d.ts +0 -1
- package/dist/icon-button.test.basics.js +0 -43
- package/dist/icon-button.test.focus.d.ts +0 -1
- package/dist/icon-button.test.focus.js +0 -13
- package/dist/input.stories.d.ts +0 -8
- package/dist/input.test.basics.d.ts +0 -1
- package/dist/input.test.basics.js +0 -138
- package/dist/input.test.events.d.ts +0 -1
- package/dist/input.test.events.js +0 -98
- package/dist/input.test.focus.d.ts +0 -1
- package/dist/input.test.focus.js +0 -58
- package/dist/input.test.form.d.ts +0 -1
- package/dist/input.test.form.js +0 -74
- package/dist/input.test.validity.d.ts +0 -1
- package/dist/input.test.validity.js +0 -258
- package/dist/label.test.basics.d.ts +0 -1
- package/dist/label.test.basics.js +0 -136
- package/dist/menu.button.test.basics.d.ts +0 -1
- package/dist/menu.button.test.basics.js +0 -43
- package/dist/menu.link.test.basics.d.ts +0 -1
- package/dist/menu.link.test.basics.js +0 -47
- package/dist/menu.options.test.basics.d.ts +0 -2
- package/dist/menu.options.test.basics.js +0 -44
- package/dist/menu.options.test.events.d.ts +0 -1
- package/dist/menu.options.test.events.js +0 -19
- package/dist/menu.stories.d.ts +0 -11
- package/dist/menu.test.basics.d.ts +0 -1
- package/dist/menu.test.basics.js +0 -178
- package/dist/menu.test.events.d.ts +0 -3
- package/dist/menu.test.events.js +0 -125
- package/dist/menu.test.focus.d.ts +0 -2
- package/dist/menu.test.focus.js +0 -102
- package/dist/menu.test.interactions.d.ts +0 -3
- package/dist/menu.test.interactions.js +0 -1069
- package/dist/modal.icon-button.test.basics.d.ts +0 -1
- package/dist/modal.icon-button.test.basics.js +0 -46
- package/dist/modal.stories.d.ts +0 -13
- package/dist/modal.tertiary-icon.test.basics.d.ts +0 -1
- package/dist/modal.tertiary-icon.test.basics.js +0 -60
- package/dist/modal.test.accessibility.d.ts +0 -1
- package/dist/modal.test.accessibility.js +0 -38
- package/dist/modal.test.basics.d.ts +0 -3
- package/dist/modal.test.basics.js +0 -204
- package/dist/modal.test.close.d.ts +0 -1
- package/dist/modal.test.close.js +0 -35
- package/dist/modal.test.events.d.ts +0 -1
- package/dist/modal.test.events.js +0 -99
- package/dist/modal.test.lock-scroll.d.ts +0 -1
- package/dist/modal.test.lock-scroll.js +0 -67
- package/dist/modal.test.methods.d.ts +0 -1
- package/dist/modal.test.methods.js +0 -20
- package/dist/modal.test.scrollbars.d.ts +0 -1
- package/dist/modal.test.scrollbars.js +0 -18
- package/dist/radio-group.stories.d.ts +0 -6
- package/dist/radio-group.test.basics.d.ts +0 -2
- package/dist/radio-group.test.basics.js +0 -324
- package/dist/radio-group.test.events.d.ts +0 -2
- package/dist/radio-group.test.events.js +0 -278
- package/dist/radio-group.test.focus.d.ts +0 -2
- package/dist/radio-group.test.focus.js +0 -95
- package/dist/radio-group.test.form.d.ts +0 -1
- package/dist/radio-group.test.form.js +0 -124
- package/dist/radio-group.test.validity.d.ts +0 -1
- package/dist/radio-group.test.validity.js +0 -311
- package/dist/split-button.primary-button.test.basics.d.ts +0 -1
- package/dist/split-button.primary-button.test.basics.js +0 -31
- package/dist/split-button.primary-button.test.focus.d.ts +0 -1
- package/dist/split-button.primary-button.test.focus.js +0 -14
- package/dist/split-button.primary-link.test.basics.d.ts +0 -1
- package/dist/split-button.primary-link.test.basics.js +0 -30
- package/dist/split-button.primary-link.test.focus.d.ts +0 -1
- package/dist/split-button.primary-link.test.focus.js +0 -15
- package/dist/split-button.secondary-button.test.basics.d.ts +0 -1
- package/dist/split-button.secondary-button.test.basics.js +0 -58
- package/dist/split-button.secondary-button.test.focus.d.ts +0 -1
- package/dist/split-button.secondary-button.test.focus.js +0 -14
- package/dist/split-button.secondary-button.test.interactions.d.ts +0 -2
- package/dist/split-button.secondary-button.test.interactions.js +0 -30
- package/dist/split-button.stories.d.ts +0 -13
- package/dist/split-button.test.basics.d.ts +0 -2
- package/dist/split-button.test.basics.js +0 -87
- package/dist/split-button.test.interactions.d.ts +0 -4
- package/dist/split-button.test.interactions.js +0 -51
- package/dist/tab.group.test.basics.d.ts +0 -3
- package/dist/tab.group.test.basics.js +0 -234
- package/dist/tab.group.test.interactions.d.ts +0 -3
- package/dist/tab.group.test.interactions.js +0 -434
- package/dist/tab.test.basics.d.ts +0 -1
- package/dist/tab.test.basics.js +0 -50
- package/dist/tabs.stories.d.ts +0 -8
- package/dist/tag.stories.d.ts +0 -7
- package/dist/tag.test.basics.d.ts +0 -1
- package/dist/tag.test.basics.js +0 -28
- package/dist/tag.test.events.d.ts +0 -1
- package/dist/tag.test.events.js +0 -93
- package/dist/tag.test.focus.d.ts +0 -1
- package/dist/tag.test.focus.js +0 -10
- package/dist/tag.test.interactions.d.ts +0 -1
- package/dist/tag.test.interactions.js +0 -36
- package/dist/textarea.stories.d.ts +0 -5
- package/dist/textarea.test.basics.d.ts +0 -1
- package/dist/textarea.test.basics.js +0 -177
- package/dist/textarea.test.events.d.ts +0 -1
- package/dist/textarea.test.events.js +0 -106
- package/dist/textarea.test.form.d.ts +0 -1
- package/dist/textarea.test.form.js +0 -71
- package/dist/textarea.test.validity.d.ts +0 -1
- package/dist/textarea.test.validity.js +0 -204
- package/dist/toasts.stories.d.ts +0 -7
- package/dist/toasts.test.basics.d.ts +0 -1
- package/dist/toasts.test.basics.js +0 -115
- package/dist/toasts.toast.test.basics.d.ts +0 -1
- package/dist/toasts.toast.test.basics.js +0 -139
- package/dist/toggle.stories.d.ts +0 -4
- package/dist/toggle.test.basics.d.ts +0 -1
- package/dist/toggle.test.basics.js +0 -69
- package/dist/toggle.test.events.d.ts +0 -1
- package/dist/toggle.test.events.js +0 -30
- package/dist/toggle.test.focus.d.ts +0 -1
- package/dist/toggle.test.focus.js +0 -9
- package/dist/toggle.test.interactions.d.ts +0 -1
- package/dist/toggle.test.interactions.js +0 -81
- package/dist/tooltip.stories.d.ts +0 -7
- package/dist/tooltip.test.basics.d.ts +0 -1
- package/dist/tooltip.test.basics.js +0 -100
- package/dist/tooltip.test.interactions.d.ts +0 -1
- package/dist/tooltip.test.interactions.js +0 -203
- package/dist/tree.item.icon-button.test.basics.d.ts +0 -1
- package/dist/tree.item.icon-button.test.basics.js +0 -22
- package/dist/tree.item.menu.test.basics.d.ts +0 -1
- package/dist/tree.item.menu.test.basics.js +0 -86
- package/dist/tree.item.test.basics.d.ts +0 -2
- package/dist/tree.item.test.basics.js +0 -138
- package/dist/tree.stories.d.ts +0 -9
- package/dist/tree.test.aria.d.ts +0 -1
- package/dist/tree.test.aria.js +0 -86
- package/dist/tree.test.basics.d.ts +0 -3
- package/dist/tree.test.basics.js +0 -130
- package/dist/tree.test.events.d.ts +0 -2
- package/dist/tree.test.events.js +0 -19
- package/dist/tree.test.focus.d.ts +0 -1
- package/dist/tree.test.focus.js +0 -383
@@ -1,170 +0,0 @@
|
|
1
|
-
import './dropdown.option.js';
|
2
|
-
import { aTimeout, elementUpdated, expect, fixture, html, } from '@open-wc/testing';
|
3
|
-
import GlideCoreDropdown from './dropdown.js';
|
4
|
-
import GlideCoreDropdownOption from './dropdown.option.js';
|
5
|
-
GlideCoreDropdown.shadowRootOptions.mode = 'open';
|
6
|
-
GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
|
7
|
-
it('focuses the primary button when `focus()` is called', async () => {
|
8
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
|
9
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
10
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
11
|
-
</glide-core-dropdown>`);
|
12
|
-
component.focus();
|
13
|
-
expect(component.shadowRoot?.activeElement).to.equal(component.shadowRoot?.querySelector('[data-test="primary-button"]'));
|
14
|
-
});
|
15
|
-
it('focuses the primary button on submit when required and no options are selected', async () => {
|
16
|
-
const form = document.createElement('form');
|
17
|
-
const component = await fixture(html `<glide-core-dropdown
|
18
|
-
label="Label"
|
19
|
-
placeholder="Placeholder"
|
20
|
-
multiple
|
21
|
-
required
|
22
|
-
>
|
23
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
24
|
-
|
25
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
26
|
-
</glide-core-dropdown>`, {
|
27
|
-
parentNode: form,
|
28
|
-
});
|
29
|
-
form.requestSubmit();
|
30
|
-
const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
|
31
|
-
expect(component.shadowRoot?.activeElement).to.be.equal(button);
|
32
|
-
});
|
33
|
-
it('focuses the primary button when `reportValidity` is called when required and no options are selected', async () => {
|
34
|
-
const form = document.createElement('form');
|
35
|
-
const component = await fixture(html `<glide-core-dropdown
|
36
|
-
label="Label"
|
37
|
-
placeholder="Placeholder"
|
38
|
-
multiple
|
39
|
-
required
|
40
|
-
>
|
41
|
-
<glide-core-dropdown-option label="One"></glide-core-dropdown-option>
|
42
|
-
<glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
|
43
|
-
</glide-core-dropdown>`, { parentNode: form });
|
44
|
-
component.reportValidity();
|
45
|
-
const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
|
46
|
-
expect(component.shadowRoot?.activeElement).to.equal(button);
|
47
|
-
});
|
48
|
-
it('does not focus the primary button when `checkValidity` is called', async () => {
|
49
|
-
const form = document.createElement('form');
|
50
|
-
const component = await fixture(html `<glide-core-dropdown
|
51
|
-
label="Label"
|
52
|
-
placeholder="Placeholder"
|
53
|
-
multiple
|
54
|
-
required
|
55
|
-
>
|
56
|
-
<glide-core-dropdown-option
|
57
|
-
label="One"
|
58
|
-
selected
|
59
|
-
></glide-core-dropdown-option>
|
60
|
-
|
61
|
-
<glide-core-dropdown-option
|
62
|
-
label="Two"
|
63
|
-
selected
|
64
|
-
></glide-core-dropdown-option>
|
65
|
-
</glide-core-dropdown>`, { parentNode: form });
|
66
|
-
component.checkValidity();
|
67
|
-
expect(component.shadowRoot?.activeElement).to.equal(null);
|
68
|
-
});
|
69
|
-
it('focuses the second tag when the first one is removed', async () => {
|
70
|
-
const component = await fixture(html `<glide-core-dropdown
|
71
|
-
label="Label"
|
72
|
-
placeholder="Placeholder"
|
73
|
-
open
|
74
|
-
multiple
|
75
|
-
>
|
76
|
-
<glide-core-dropdown-option
|
77
|
-
label="One"
|
78
|
-
selected
|
79
|
-
></glide-core-dropdown-option>
|
80
|
-
|
81
|
-
<glide-core-dropdown-option
|
82
|
-
label="Two"
|
83
|
-
selected
|
84
|
-
></glide-core-dropdown-option>
|
85
|
-
|
86
|
-
<glide-core-dropdown-option
|
87
|
-
label="Three"
|
88
|
-
selected
|
89
|
-
></glide-core-dropdown-option>
|
90
|
-
</glide-core-dropdown>`);
|
91
|
-
const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
|
92
|
-
tags?.[0].click();
|
93
|
-
await elementUpdated(component);
|
94
|
-
// Wait for the timeout in `#onTagRemove`.
|
95
|
-
await aTimeout(0);
|
96
|
-
expect(component.shadowRoot?.activeElement).to.equal(tags?.[1]);
|
97
|
-
});
|
98
|
-
it('focuses the third tag when the second one is removed', async () => {
|
99
|
-
const component = await fixture(html `<glide-core-dropdown
|
100
|
-
label="Label"
|
101
|
-
placeholder="Placeholder"
|
102
|
-
open
|
103
|
-
multiple
|
104
|
-
>
|
105
|
-
<glide-core-dropdown-option
|
106
|
-
label="One"
|
107
|
-
selected
|
108
|
-
></glide-core-dropdown-option>
|
109
|
-
|
110
|
-
<glide-core-dropdown-option
|
111
|
-
label="Two"
|
112
|
-
selected
|
113
|
-
></glide-core-dropdown-option>
|
114
|
-
|
115
|
-
<glide-core-dropdown-option
|
116
|
-
label="Three"
|
117
|
-
selected
|
118
|
-
></glide-core-dropdown-option>
|
119
|
-
</glide-core-dropdown>`);
|
120
|
-
const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
|
121
|
-
tags?.[1].click();
|
122
|
-
await elementUpdated(component);
|
123
|
-
// Wait for the timeout in `#onTagRemove`.
|
124
|
-
await aTimeout(0);
|
125
|
-
expect(component.shadowRoot?.activeElement).to.equal(tags?.[2]);
|
126
|
-
});
|
127
|
-
it('focuses the second tag when the third tag removed', async () => {
|
128
|
-
const component = await fixture(html `<glide-core-dropdown
|
129
|
-
label="Label"
|
130
|
-
placeholder="Placeholder"
|
131
|
-
open
|
132
|
-
multiple
|
133
|
-
>
|
134
|
-
<glide-core-dropdown-option
|
135
|
-
label="One"
|
136
|
-
selected
|
137
|
-
></glide-core-dropdown-option>
|
138
|
-
|
139
|
-
<glide-core-dropdown-option
|
140
|
-
label="Two"
|
141
|
-
selected
|
142
|
-
></glide-core-dropdown-option>
|
143
|
-
|
144
|
-
<glide-core-dropdown-option
|
145
|
-
label="Three"
|
146
|
-
selected
|
147
|
-
></glide-core-dropdown-option>
|
148
|
-
</glide-core-dropdown>`);
|
149
|
-
const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
|
150
|
-
tags?.[2].click();
|
151
|
-
await elementUpdated(component);
|
152
|
-
// Wait for the timeout in `#onTagRemove`.
|
153
|
-
await aTimeout(0);
|
154
|
-
expect(component.shadowRoot?.activeElement).to.equal(tags?.[1]);
|
155
|
-
});
|
156
|
-
it('focuses itself when the last tag is removed', async () => {
|
157
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
|
158
|
-
<glide-core-dropdown-option
|
159
|
-
label="One"
|
160
|
-
selected
|
161
|
-
></glide-core-dropdown-option>
|
162
|
-
</glide-core-dropdown>`);
|
163
|
-
component.shadowRoot
|
164
|
-
?.querySelector('[data-test="tag"]')
|
165
|
-
?.click();
|
166
|
-
await elementUpdated(component);
|
167
|
-
// Wait for the timeout in `#onTagRemove`.
|
168
|
-
await aTimeout(0);
|
169
|
-
expect(document.activeElement).to.equal(component);
|
170
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
import './dropdown.option.js';
|
@@ -1,42 +0,0 @@
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
|
-
import './dropdown.option.js';
|
3
|
-
import { expect, fixture, html } from '@open-wc/testing';
|
4
|
-
import GlideCoreDropdown from './dropdown.js';
|
5
|
-
import GlideCoreDropdownOption from './dropdown.option.js';
|
6
|
-
GlideCoreDropdown.shadowRootOptions.mode = 'open';
|
7
|
-
GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
|
8
|
-
it('focuses the primary button when `focus()` is called', async () => {
|
9
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
|
10
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
11
|
-
</glide-core-dropdown>`);
|
12
|
-
component.focus();
|
13
|
-
expect(component.shadowRoot?.activeElement).to.equal(component.shadowRoot?.querySelector('[data-test="primary-button"]'));
|
14
|
-
});
|
15
|
-
it('focuses the button on submit', async () => {
|
16
|
-
const form = document.createElement('form');
|
17
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" required>
|
18
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
19
|
-
</glide-core-dropdown>`, {
|
20
|
-
parentNode: form,
|
21
|
-
});
|
22
|
-
form.requestSubmit();
|
23
|
-
const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
|
24
|
-
expect(component.shadowRoot?.activeElement).to.be.equal(button);
|
25
|
-
});
|
26
|
-
it('focuses the primary button when `reportValidity` is called when required and no option is selected', async () => {
|
27
|
-
const form = document.createElement('form');
|
28
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" required>
|
29
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
30
|
-
</glide-core-dropdown>`, { parentNode: form });
|
31
|
-
component.reportValidity();
|
32
|
-
const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
|
33
|
-
expect(component.shadowRoot?.activeElement).to.equal(button);
|
34
|
-
});
|
35
|
-
it('does not focus the primary button when `checkValidity` is called', async () => {
|
36
|
-
const form = document.createElement('form');
|
37
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" required>
|
38
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
39
|
-
</glide-core-dropdown>`, { parentNode: form });
|
40
|
-
component.checkValidity();
|
41
|
-
expect(component.shadowRoot?.activeElement).to.equal(null);
|
42
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
import './dropdown.option.js';
|
@@ -1,74 +0,0 @@
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
|
-
import './dropdown.option.js';
|
3
|
-
import { expect, fixture, html } from '@open-wc/testing';
|
4
|
-
import { sendKeys } from '@web/test-runner-commands';
|
5
|
-
import GlideCoreDropdown from './dropdown.js';
|
6
|
-
import GlideCoreDropdownOption from './dropdown.option.js';
|
7
|
-
import sinon from 'sinon';
|
8
|
-
GlideCoreDropdown.shadowRootOptions.mode = 'open';
|
9
|
-
GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
|
10
|
-
it('exposes standard form control properties and methods', async () => {
|
11
|
-
const form = document.createElement('form');
|
12
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
|
13
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
14
|
-
</glide-core-dropdown>`, { parentNode: form });
|
15
|
-
expect(component.form).to.equal(form);
|
16
|
-
expect(component.validity instanceof ValidityState).to.be.true;
|
17
|
-
expect(component.willValidate).to.be.true;
|
18
|
-
expect(component.checkValidity).to.be.a('function');
|
19
|
-
expect(component.reportValidity).to.be.a('function');
|
20
|
-
});
|
21
|
-
it('submits its form on Enter when closed', async () => {
|
22
|
-
const form = document.createElement('form');
|
23
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
|
24
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
25
|
-
</glide-core-dropdown>`, {
|
26
|
-
parentNode: form,
|
27
|
-
});
|
28
|
-
const spy = sinon.spy();
|
29
|
-
form.addEventListener('submit', (event) => {
|
30
|
-
event.preventDefault();
|
31
|
-
spy();
|
32
|
-
});
|
33
|
-
component.focus();
|
34
|
-
await sendKeys({ press: 'Enter' });
|
35
|
-
expect(spy.callCount).to.equal(1);
|
36
|
-
});
|
37
|
-
it('does not submit its form on Enter when open', async () => {
|
38
|
-
const form = document.createElement('form');
|
39
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" open>
|
40
|
-
<glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
|
41
|
-
</glide-core-dropdown>`, {
|
42
|
-
parentNode: form,
|
43
|
-
});
|
44
|
-
const spy = sinon.spy();
|
45
|
-
form.addEventListener('submit', (event) => {
|
46
|
-
event.preventDefault();
|
47
|
-
spy();
|
48
|
-
});
|
49
|
-
component.focus();
|
50
|
-
await sendKeys({ press: 'Enter' });
|
51
|
-
expect(spy.callCount).to.equal(0);
|
52
|
-
});
|
53
|
-
it('does not submit its form when Enter is pressed on the Edit button', async () => {
|
54
|
-
const form = document.createElement('form');
|
55
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
|
56
|
-
<glide-core-dropdown-option
|
57
|
-
label="Label"
|
58
|
-
editable
|
59
|
-
selected
|
60
|
-
></glide-core-dropdown-option>
|
61
|
-
</glide-core-dropdown>`, {
|
62
|
-
parentNode: form,
|
63
|
-
});
|
64
|
-
const spy = sinon.spy();
|
65
|
-
form.addEventListener('submit', (event) => {
|
66
|
-
event.preventDefault();
|
67
|
-
spy();
|
68
|
-
});
|
69
|
-
component.shadowRoot
|
70
|
-
?.querySelector('[data-test="edit-button"]')
|
71
|
-
?.focus();
|
72
|
-
await sendKeys({ press: 'Enter' });
|
73
|
-
expect(spy.callCount).to.equal(0);
|
74
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
import './dropdown.option.js';
|
@@ -1,151 +0,0 @@
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
|
-
import './dropdown.option.js';
|
3
|
-
import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
|
4
|
-
import GlideCoreDropdown from './dropdown.js';
|
5
|
-
import GlideCoreDropdownOption from './dropdown.option.js';
|
6
|
-
import GlideCoreTag from './tag.js';
|
7
|
-
GlideCoreDropdown.shadowRootOptions.mode = 'open';
|
8
|
-
GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
|
9
|
-
it('can be reset', async () => {
|
10
|
-
const form = document.createElement('form');
|
11
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
|
12
|
-
<glide-core-dropdown-option
|
13
|
-
label="One"
|
14
|
-
value="one"
|
15
|
-
></glide-core-dropdown-option>
|
16
|
-
|
17
|
-
<glide-core-dropdown-option
|
18
|
-
label="Two"
|
19
|
-
value="two"
|
20
|
-
></glide-core-dropdown-option>
|
21
|
-
</glide-core-dropdown>`, {
|
22
|
-
parentNode: form,
|
23
|
-
});
|
24
|
-
const options = component.querySelectorAll('glide-core-dropdown-option');
|
25
|
-
options[0]?.shadowRoot
|
26
|
-
?.querySelector('[data-test="component"]')
|
27
|
-
?.dispatchEvent(new Event('click'));
|
28
|
-
options[1]?.shadowRoot
|
29
|
-
?.querySelector('[data-test="component"]')
|
30
|
-
?.dispatchEvent(new Event('click'));
|
31
|
-
form.reset();
|
32
|
-
await elementUpdated(component);
|
33
|
-
expect(component.value).to.deep.equal([]);
|
34
|
-
const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
|
35
|
-
expect(label?.textContent?.trim()).to.equal('Placeholder');
|
36
|
-
});
|
37
|
-
it('can be reset to the initially selected options', async () => {
|
38
|
-
const form = document.createElement('form');
|
39
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
|
40
|
-
<glide-core-dropdown-option
|
41
|
-
label="One"
|
42
|
-
value="one"
|
43
|
-
></glide-core-dropdown-option>
|
44
|
-
|
45
|
-
<glide-core-dropdown-option
|
46
|
-
label="Two"
|
47
|
-
value="two"
|
48
|
-
selected
|
49
|
-
></glide-core-dropdown-option>
|
50
|
-
|
51
|
-
<glide-core-dropdown-option
|
52
|
-
label="Three"
|
53
|
-
value="three"
|
54
|
-
selected
|
55
|
-
></glide-core-dropdown-option>
|
56
|
-
</glide-core-dropdown>`, {
|
57
|
-
parentNode: form,
|
58
|
-
});
|
59
|
-
component
|
60
|
-
.querySelector('glide-core-dropdown-option')
|
61
|
-
?.shadowRoot?.querySelector('[data-test="component"]')
|
62
|
-
?.dispatchEvent(new Event('click'));
|
63
|
-
form.reset();
|
64
|
-
const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
|
65
|
-
expect(tags?.length).to.equal(2);
|
66
|
-
expect(tags?.[0].label).to.equal('Two');
|
67
|
-
expect(tags?.[1].label).to.equal('Three');
|
68
|
-
expect(component.value).to.deep.equal(['two', 'three']);
|
69
|
-
});
|
70
|
-
it('has `formData` value when options are selected', async () => {
|
71
|
-
const form = document.createElement('form');
|
72
|
-
await fixture(html `<glide-core-dropdown
|
73
|
-
label="Label"
|
74
|
-
placeholder="Placeholder"
|
75
|
-
name="name"
|
76
|
-
multiple
|
77
|
-
>
|
78
|
-
<glide-core-dropdown-option
|
79
|
-
label="One"
|
80
|
-
value="one"
|
81
|
-
selected
|
82
|
-
></glide-core-dropdown-option>
|
83
|
-
|
84
|
-
<glide-core-dropdown-option
|
85
|
-
label="Two"
|
86
|
-
value="two"
|
87
|
-
selected
|
88
|
-
></glide-core-dropdown-option>
|
89
|
-
</glide-core-dropdown>
|
90
|
-
>`, {
|
91
|
-
parentNode: form,
|
92
|
-
});
|
93
|
-
const formData = new FormData(form);
|
94
|
-
expect(formData.get('name')).to.be.equal('["one","two"]');
|
95
|
-
});
|
96
|
-
it('has no `formData` value when no option is selected', async () => {
|
97
|
-
const form = document.createElement('form');
|
98
|
-
await fixture(html `<glide-core-dropdown
|
99
|
-
label="Label"
|
100
|
-
placeholder="Placeholder"
|
101
|
-
name="name"
|
102
|
-
multiple
|
103
|
-
>
|
104
|
-
<glide-core-dropdown-option
|
105
|
-
label=""
|
106
|
-
value="value"
|
107
|
-
></glide-core-dropdown-option>
|
108
|
-
</glide-core-dropdown>`, {
|
109
|
-
parentNode: form,
|
110
|
-
});
|
111
|
-
const formData = new FormData(form);
|
112
|
-
expect(formData.get('name')).to.be.null;
|
113
|
-
});
|
114
|
-
it('has no `formData` value when disabled and an option is selected', async () => {
|
115
|
-
const form = document.createElement('form');
|
116
|
-
await fixture(html `<glide-core-dropdown
|
117
|
-
label="Label"
|
118
|
-
placeholder="Placeholder"
|
119
|
-
name="name"
|
120
|
-
disabled
|
121
|
-
multiple
|
122
|
-
>
|
123
|
-
<glide-core-dropdown-option
|
124
|
-
label="Label"
|
125
|
-
value="value"
|
126
|
-
selected
|
127
|
-
></glide-core-dropdown-option>
|
128
|
-
</glide-core-dropdown>`, {
|
129
|
-
parentNode: form,
|
130
|
-
});
|
131
|
-
const formData = new FormData(form);
|
132
|
-
expect(formData.get('name')).to.be.null;
|
133
|
-
});
|
134
|
-
it('has no `formData` value when an option is selected that has no `value`', async () => {
|
135
|
-
const form = document.createElement('form');
|
136
|
-
await fixture(html `<glide-core-dropdown
|
137
|
-
label="Label"
|
138
|
-
placeholder="Placeholder"
|
139
|
-
name="name"
|
140
|
-
multiple
|
141
|
-
>
|
142
|
-
<glide-core-dropdown-option
|
143
|
-
label="Label"
|
144
|
-
selected
|
145
|
-
></glide-core-dropdown-option>
|
146
|
-
</glide-core-dropdown>`, {
|
147
|
-
parentNode: form,
|
148
|
-
});
|
149
|
-
const formData = new FormData(form);
|
150
|
-
expect(formData.get('name')).to.be.null;
|
151
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
import './dropdown.option.js';
|
@@ -1,129 +0,0 @@
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
|
-
import './dropdown.option.js';
|
3
|
-
import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
|
4
|
-
import GlideCoreDropdown from './dropdown.js';
|
5
|
-
import GlideCoreDropdownOption from './dropdown.option.js';
|
6
|
-
GlideCoreDropdown.shadowRootOptions.mode = 'open';
|
7
|
-
GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
|
8
|
-
it('can be reset', async () => {
|
9
|
-
const form = document.createElement('form');
|
10
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
|
11
|
-
<glide-core-dropdown-option
|
12
|
-
label="One"
|
13
|
-
value="one"
|
14
|
-
></glide-core-dropdown-option>
|
15
|
-
|
16
|
-
<glide-core-dropdown-option
|
17
|
-
label="Two"
|
18
|
-
value="two"
|
19
|
-
></glide-core-dropdown-option>
|
20
|
-
</glide-core-dropdown>`, {
|
21
|
-
parentNode: form,
|
22
|
-
});
|
23
|
-
component
|
24
|
-
.querySelector('glide-core-dropdown-option')
|
25
|
-
?.shadowRoot?.querySelector('[data-test="component"]')
|
26
|
-
?.dispatchEvent(new Event('click'));
|
27
|
-
form.reset();
|
28
|
-
await elementUpdated(component);
|
29
|
-
const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
|
30
|
-
expect(label?.textContent?.trim()).to.equal('Placeholder');
|
31
|
-
expect(component.value).to.deep.equal([]);
|
32
|
-
});
|
33
|
-
it('can be reset to the initially selected option', async () => {
|
34
|
-
const form = document.createElement('form');
|
35
|
-
const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
|
36
|
-
<glide-core-dropdown-option
|
37
|
-
label="One"
|
38
|
-
value="one"
|
39
|
-
></glide-core-dropdown-option>
|
40
|
-
|
41
|
-
<glide-core-dropdown-option
|
42
|
-
label="Two"
|
43
|
-
value="two"
|
44
|
-
selected
|
45
|
-
></glide-core-dropdown-option>
|
46
|
-
</glide-core-dropdown>`, {
|
47
|
-
parentNode: form,
|
48
|
-
});
|
49
|
-
component
|
50
|
-
.querySelector('glide-core-dropdown-option')
|
51
|
-
?.shadowRoot?.querySelector('[data-test="component"]')
|
52
|
-
?.dispatchEvent(new Event('click'));
|
53
|
-
form.reset();
|
54
|
-
const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
|
55
|
-
expect(label?.textContent?.trim()).to.equal('Two');
|
56
|
-
expect(component.value).to.deep.equal(['two']);
|
57
|
-
});
|
58
|
-
it('has `formData` value when an option is selected', async () => {
|
59
|
-
const form = document.createElement('form');
|
60
|
-
await fixture(html `<glide-core-dropdown
|
61
|
-
label="Label"
|
62
|
-
placeholder="Placeholder"
|
63
|
-
name="name"
|
64
|
-
>
|
65
|
-
<glide-core-dropdown-option
|
66
|
-
label="Label"
|
67
|
-
value="value"
|
68
|
-
selected
|
69
|
-
></glide-core-dropdown-option>
|
70
|
-
</glide-core-dropdown>
|
71
|
-
>`, {
|
72
|
-
parentNode: form,
|
73
|
-
});
|
74
|
-
const formData = new FormData(form);
|
75
|
-
expect(formData.get('name')).to.be.equal('["value"]');
|
76
|
-
});
|
77
|
-
it('has no `formData` value when no option is selected', async () => {
|
78
|
-
const form = document.createElement('form');
|
79
|
-
await fixture(html `<glide-core-dropdown
|
80
|
-
label="Label"
|
81
|
-
placeholder="Placeholder"
|
82
|
-
name="name"
|
83
|
-
>
|
84
|
-
<glide-core-dropdown-option
|
85
|
-
label=""
|
86
|
-
value="value"
|
87
|
-
></glide-core-dropdown-option>
|
88
|
-
</glide-core-dropdown>`, {
|
89
|
-
parentNode: form,
|
90
|
-
});
|
91
|
-
const formData = new FormData(form);
|
92
|
-
expect(formData.get('name')).to.be.null;
|
93
|
-
});
|
94
|
-
it('has no `formData` value when disabled and an option is selected', async () => {
|
95
|
-
const form = document.createElement('form');
|
96
|
-
await fixture(html `<glide-core-dropdown
|
97
|
-
label="Label"
|
98
|
-
placeholder="Placeholder"
|
99
|
-
name="name"
|
100
|
-
disabled
|
101
|
-
>
|
102
|
-
<glide-core-dropdown-option
|
103
|
-
label="Label"
|
104
|
-
value="value"
|
105
|
-
selected
|
106
|
-
></glide-core-dropdown-option>
|
107
|
-
</glide-core-dropdown>`, {
|
108
|
-
parentNode: form,
|
109
|
-
});
|
110
|
-
const formData = new FormData(form);
|
111
|
-
expect(formData.get('name')).to.be.null;
|
112
|
-
});
|
113
|
-
it('has no `formData` value when an option is selected that has no `value`', async () => {
|
114
|
-
const form = document.createElement('form');
|
115
|
-
await fixture(html `<glide-core-dropdown
|
116
|
-
label="Label"
|
117
|
-
placeholder="Placeholder"
|
118
|
-
name="name"
|
119
|
-
>
|
120
|
-
<glide-core-dropdown-option
|
121
|
-
label="Label"
|
122
|
-
selected
|
123
|
-
></glide-core-dropdown-option>
|
124
|
-
</glide-core-dropdown>`, {
|
125
|
-
parentNode: form,
|
126
|
-
});
|
127
|
-
const formData = new FormData(form);
|
128
|
-
expect(formData.get('name')).to.be.null;
|
129
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|