@crowdstrike/glide-core 0.13.1 → 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.
Files changed (284) hide show
  1. package/dist/drawer.d.ts +2 -2
  2. package/dist/drawer.js +1 -1
  3. package/dist/drawer.styles.js +3 -3
  4. package/dist/dropdown.styles.js +3 -2
  5. package/dist/input.styles.js +1 -0
  6. package/dist/styles/variables.css +1 -1
  7. package/dist/textarea.styles.js +2 -0
  8. package/dist/toasts.d.ts +2 -2
  9. package/dist/toasts.toast.d.ts +1 -1
  10. package/dist/toasts.toast.js +1 -1
  11. package/dist/toasts.toast.styles.js +8 -0
  12. package/dist/tree.item.styles.js +2 -2
  13. package/package.json +8 -5
  14. package/dist/accordion.stories.d.ts +0 -6
  15. package/dist/accordion.test.basics.d.ts +0 -1
  16. package/dist/accordion.test.basics.js +0 -28
  17. package/dist/accordion.test.events.d.ts +0 -1
  18. package/dist/accordion.test.events.js +0 -28
  19. package/dist/accordion.test.focus.d.ts +0 -1
  20. package/dist/accordion.test.focus.js +0 -11
  21. package/dist/accordion.test.interactions.d.ts +0 -1
  22. package/dist/accordion.test.interactions.js +0 -75
  23. package/dist/button-group.button.test.basics.d.ts +0 -1
  24. package/dist/button-group.button.test.basics.js +0 -97
  25. package/dist/button-group.button.test.events.d.ts +0 -1
  26. package/dist/button-group.button.test.events.js +0 -15
  27. package/dist/button-group.button.test.focus.d.ts +0 -1
  28. package/dist/button-group.button.test.focus.js +0 -13
  29. package/dist/button-group.button.test.interactions.d.ts +0 -1
  30. package/dist/button-group.button.test.interactions.js +0 -42
  31. package/dist/button-group.stories.d.ts +0 -7
  32. package/dist/button-group.test.basics.d.ts +0 -1
  33. package/dist/button-group.test.basics.js +0 -148
  34. package/dist/button-group.test.events.d.ts +0 -1
  35. package/dist/button-group.test.events.js +0 -241
  36. package/dist/button-group.test.focus.d.ts +0 -1
  37. package/dist/button-group.test.focus.js +0 -39
  38. package/dist/button-group.test.interactions.d.ts +0 -1
  39. package/dist/button-group.test.interactions.js +0 -91
  40. package/dist/button.stories.d.ts +0 -7
  41. package/dist/button.test.basics.d.ts +0 -1
  42. package/dist/button.test.basics.js +0 -69
  43. package/dist/button.test.events.d.ts +0 -1
  44. package/dist/button.test.events.js +0 -102
  45. package/dist/checkbox-group.stories.d.ts +0 -6
  46. package/dist/checkbox-group.test.basics.d.ts +0 -1
  47. package/dist/checkbox-group.test.basics.js +0 -116
  48. package/dist/checkbox-group.test.events.d.ts +0 -1
  49. package/dist/checkbox-group.test.events.js +0 -111
  50. package/dist/checkbox-group.test.focus.d.ts +0 -1
  51. package/dist/checkbox-group.test.focus.js +0 -70
  52. package/dist/checkbox-group.test.form.d.ts +0 -1
  53. package/dist/checkbox-group.test.form.js +0 -131
  54. package/dist/checkbox-group.test.interactions.d.ts +0 -1
  55. package/dist/checkbox-group.test.interactions.js +0 -82
  56. package/dist/checkbox-group.test.validity.d.ts +0 -1
  57. package/dist/checkbox-group.test.validity.js +0 -145
  58. package/dist/checkbox.stories.d.ts +0 -5
  59. package/dist/checkbox.test.basics.d.ts +0 -1
  60. package/dist/checkbox.test.basics.js +0 -90
  61. package/dist/checkbox.test.events.d.ts +0 -1
  62. package/dist/checkbox.test.events.js +0 -105
  63. package/dist/checkbox.test.focus.d.ts +0 -1
  64. package/dist/checkbox.test.focus.js +0 -51
  65. package/dist/checkbox.test.form.d.ts +0 -1
  66. package/dist/checkbox.test.form.js +0 -133
  67. package/dist/checkbox.test.interactions.d.ts +0 -1
  68. package/dist/checkbox.test.interactions.js +0 -131
  69. package/dist/checkbox.test.validity.d.ts +0 -1
  70. package/dist/checkbox.test.validity.js +0 -128
  71. package/dist/drawer.stories.d.ts +0 -6
  72. package/dist/drawer.test.accessibility.d.ts +0 -1
  73. package/dist/drawer.test.accessibility.js +0 -22
  74. package/dist/drawer.test.basics.d.ts +0 -1
  75. package/dist/drawer.test.basics.js +0 -44
  76. package/dist/drawer.test.closing.d.ts +0 -1
  77. package/dist/drawer.test.closing.js +0 -40
  78. package/dist/drawer.test.events.d.ts +0 -1
  79. package/dist/drawer.test.events.js +0 -42
  80. package/dist/drawer.test.methods.d.ts +0 -1
  81. package/dist/drawer.test.methods.js +0 -35
  82. package/dist/dropdown.option.test.basics.d.ts +0 -1
  83. package/dist/dropdown.option.test.basics.js +0 -34
  84. package/dist/dropdown.option.test.basics.multiple.d.ts +0 -1
  85. package/dist/dropdown.option.test.basics.multiple.js +0 -36
  86. package/dist/dropdown.option.test.basics.single.d.ts +0 -1
  87. package/dist/dropdown.option.test.basics.single.js +0 -29
  88. package/dist/dropdown.option.test.events.d.ts +0 -1
  89. package/dist/dropdown.option.test.events.js +0 -36
  90. package/dist/dropdown.option.test.focus.d.ts +0 -1
  91. package/dist/dropdown.option.test.focus.js +0 -11
  92. package/dist/dropdown.option.test.interactions.multiple.d.ts +0 -1
  93. package/dist/dropdown.option.test.interactions.multiple.js +0 -42
  94. package/dist/dropdown.option.test.interactions.single.d.ts +0 -1
  95. package/dist/dropdown.option.test.interactions.single.js +0 -76
  96. package/dist/dropdown.stories.d.ts +0 -8
  97. package/dist/dropdown.test.basics.d.ts +0 -1
  98. package/dist/dropdown.test.basics.filterable.d.ts +0 -1
  99. package/dist/dropdown.test.basics.filterable.js +0 -108
  100. package/dist/dropdown.test.basics.js +0 -181
  101. package/dist/dropdown.test.basics.multiple.d.ts +0 -1
  102. package/dist/dropdown.test.basics.multiple.js +0 -259
  103. package/dist/dropdown.test.basics.single.d.ts +0 -1
  104. package/dist/dropdown.test.basics.single.js +0 -122
  105. package/dist/dropdown.test.events.d.ts +0 -1
  106. package/dist/dropdown.test.events.filterable.d.ts +0 -1
  107. package/dist/dropdown.test.events.filterable.js +0 -31
  108. package/dist/dropdown.test.events.js +0 -251
  109. package/dist/dropdown.test.events.multiple.d.ts +0 -1
  110. package/dist/dropdown.test.events.multiple.js +0 -446
  111. package/dist/dropdown.test.events.single.d.ts +0 -1
  112. package/dist/dropdown.test.events.single.js +0 -343
  113. package/dist/dropdown.test.focus.d.ts +0 -1
  114. package/dist/dropdown.test.focus.filterable.d.ts +0 -1
  115. package/dist/dropdown.test.focus.filterable.js +0 -140
  116. package/dist/dropdown.test.focus.js +0 -107
  117. package/dist/dropdown.test.focus.multiple.d.ts +0 -1
  118. package/dist/dropdown.test.focus.multiple.js +0 -170
  119. package/dist/dropdown.test.focus.single.d.ts +0 -1
  120. package/dist/dropdown.test.focus.single.js +0 -42
  121. package/dist/dropdown.test.form.d.ts +0 -1
  122. package/dist/dropdown.test.form.js +0 -74
  123. package/dist/dropdown.test.form.multiple.d.ts +0 -1
  124. package/dist/dropdown.test.form.multiple.js +0 -151
  125. package/dist/dropdown.test.form.single.d.ts +0 -1
  126. package/dist/dropdown.test.form.single.js +0 -129
  127. package/dist/dropdown.test.interactions.d.ts +0 -1
  128. package/dist/dropdown.test.interactions.filterable.d.ts +0 -1
  129. package/dist/dropdown.test.interactions.filterable.js +0 -805
  130. package/dist/dropdown.test.interactions.js +0 -696
  131. package/dist/dropdown.test.interactions.multiple.d.ts +0 -1
  132. package/dist/dropdown.test.interactions.multiple.js +0 -1026
  133. package/dist/dropdown.test.interactions.single.d.ts +0 -1
  134. package/dist/dropdown.test.interactions.single.js +0 -569
  135. package/dist/dropdown.test.validity.d.ts +0 -1
  136. package/dist/dropdown.test.validity.js +0 -181
  137. package/dist/form-controls-layout.stories.d.ts +0 -10
  138. package/dist/form-controls-layout.test.basics.d.ts +0 -2
  139. package/dist/form-controls-layout.test.basics.js +0 -75
  140. package/dist/form-controls-layout.test.interactions.d.ts +0 -2
  141. package/dist/form-controls-layout.test.interactions.js +0 -26
  142. package/dist/icon-button.stories.d.ts +0 -6
  143. package/dist/icon-button.test.basics.d.ts +0 -1
  144. package/dist/icon-button.test.basics.js +0 -43
  145. package/dist/icon-button.test.focus.d.ts +0 -1
  146. package/dist/icon-button.test.focus.js +0 -13
  147. package/dist/input.stories.d.ts +0 -8
  148. package/dist/input.test.basics.d.ts +0 -1
  149. package/dist/input.test.basics.js +0 -138
  150. package/dist/input.test.events.d.ts +0 -1
  151. package/dist/input.test.events.js +0 -98
  152. package/dist/input.test.focus.d.ts +0 -1
  153. package/dist/input.test.focus.js +0 -58
  154. package/dist/input.test.form.d.ts +0 -1
  155. package/dist/input.test.form.js +0 -74
  156. package/dist/input.test.validity.d.ts +0 -1
  157. package/dist/input.test.validity.js +0 -258
  158. package/dist/label.test.basics.d.ts +0 -1
  159. package/dist/label.test.basics.js +0 -136
  160. package/dist/menu.button.test.basics.d.ts +0 -1
  161. package/dist/menu.button.test.basics.js +0 -43
  162. package/dist/menu.link.test.basics.d.ts +0 -1
  163. package/dist/menu.link.test.basics.js +0 -47
  164. package/dist/menu.options.test.basics.d.ts +0 -2
  165. package/dist/menu.options.test.basics.js +0 -44
  166. package/dist/menu.options.test.events.d.ts +0 -1
  167. package/dist/menu.options.test.events.js +0 -19
  168. package/dist/menu.stories.d.ts +0 -11
  169. package/dist/menu.test.basics.d.ts +0 -1
  170. package/dist/menu.test.basics.js +0 -178
  171. package/dist/menu.test.events.d.ts +0 -3
  172. package/dist/menu.test.events.js +0 -125
  173. package/dist/menu.test.focus.d.ts +0 -2
  174. package/dist/menu.test.focus.js +0 -102
  175. package/dist/menu.test.interactions.d.ts +0 -3
  176. package/dist/menu.test.interactions.js +0 -1069
  177. package/dist/modal.icon-button.test.basics.d.ts +0 -1
  178. package/dist/modal.icon-button.test.basics.js +0 -46
  179. package/dist/modal.stories.d.ts +0 -13
  180. package/dist/modal.tertiary-icon.test.basics.d.ts +0 -1
  181. package/dist/modal.tertiary-icon.test.basics.js +0 -60
  182. package/dist/modal.test.accessibility.d.ts +0 -1
  183. package/dist/modal.test.accessibility.js +0 -38
  184. package/dist/modal.test.basics.d.ts +0 -3
  185. package/dist/modal.test.basics.js +0 -204
  186. package/dist/modal.test.close.d.ts +0 -1
  187. package/dist/modal.test.close.js +0 -35
  188. package/dist/modal.test.events.d.ts +0 -1
  189. package/dist/modal.test.events.js +0 -99
  190. package/dist/modal.test.lock-scroll.d.ts +0 -1
  191. package/dist/modal.test.lock-scroll.js +0 -67
  192. package/dist/modal.test.methods.d.ts +0 -1
  193. package/dist/modal.test.methods.js +0 -20
  194. package/dist/modal.test.scrollbars.d.ts +0 -1
  195. package/dist/modal.test.scrollbars.js +0 -18
  196. package/dist/radio-group.stories.d.ts +0 -6
  197. package/dist/radio-group.test.basics.d.ts +0 -2
  198. package/dist/radio-group.test.basics.js +0 -324
  199. package/dist/radio-group.test.events.d.ts +0 -2
  200. package/dist/radio-group.test.events.js +0 -278
  201. package/dist/radio-group.test.focus.d.ts +0 -2
  202. package/dist/radio-group.test.focus.js +0 -95
  203. package/dist/radio-group.test.form.d.ts +0 -1
  204. package/dist/radio-group.test.form.js +0 -124
  205. package/dist/radio-group.test.validity.d.ts +0 -1
  206. package/dist/radio-group.test.validity.js +0 -311
  207. package/dist/split-button.primary-button.test.basics.d.ts +0 -1
  208. package/dist/split-button.primary-button.test.basics.js +0 -31
  209. package/dist/split-button.primary-button.test.focus.d.ts +0 -1
  210. package/dist/split-button.primary-button.test.focus.js +0 -14
  211. package/dist/split-button.primary-link.test.basics.d.ts +0 -1
  212. package/dist/split-button.primary-link.test.basics.js +0 -30
  213. package/dist/split-button.primary-link.test.focus.d.ts +0 -1
  214. package/dist/split-button.primary-link.test.focus.js +0 -15
  215. package/dist/split-button.secondary-button.test.basics.d.ts +0 -1
  216. package/dist/split-button.secondary-button.test.basics.js +0 -58
  217. package/dist/split-button.secondary-button.test.focus.d.ts +0 -1
  218. package/dist/split-button.secondary-button.test.focus.js +0 -14
  219. package/dist/split-button.secondary-button.test.interactions.d.ts +0 -2
  220. package/dist/split-button.secondary-button.test.interactions.js +0 -30
  221. package/dist/split-button.stories.d.ts +0 -13
  222. package/dist/split-button.test.basics.d.ts +0 -2
  223. package/dist/split-button.test.basics.js +0 -87
  224. package/dist/split-button.test.interactions.d.ts +0 -4
  225. package/dist/split-button.test.interactions.js +0 -51
  226. package/dist/tab.group.test.basics.d.ts +0 -3
  227. package/dist/tab.group.test.basics.js +0 -234
  228. package/dist/tab.group.test.interactions.d.ts +0 -3
  229. package/dist/tab.group.test.interactions.js +0 -434
  230. package/dist/tab.test.basics.d.ts +0 -1
  231. package/dist/tab.test.basics.js +0 -50
  232. package/dist/tabs.stories.d.ts +0 -8
  233. package/dist/tag.stories.d.ts +0 -7
  234. package/dist/tag.test.basics.d.ts +0 -1
  235. package/dist/tag.test.basics.js +0 -28
  236. package/dist/tag.test.events.d.ts +0 -1
  237. package/dist/tag.test.events.js +0 -93
  238. package/dist/tag.test.focus.d.ts +0 -1
  239. package/dist/tag.test.focus.js +0 -10
  240. package/dist/tag.test.interactions.d.ts +0 -1
  241. package/dist/tag.test.interactions.js +0 -36
  242. package/dist/textarea.stories.d.ts +0 -5
  243. package/dist/textarea.test.basics.d.ts +0 -1
  244. package/dist/textarea.test.basics.js +0 -177
  245. package/dist/textarea.test.events.d.ts +0 -1
  246. package/dist/textarea.test.events.js +0 -106
  247. package/dist/textarea.test.form.d.ts +0 -1
  248. package/dist/textarea.test.form.js +0 -71
  249. package/dist/textarea.test.validity.d.ts +0 -1
  250. package/dist/textarea.test.validity.js +0 -204
  251. package/dist/toasts.stories.d.ts +0 -7
  252. package/dist/toasts.test.basics.d.ts +0 -1
  253. package/dist/toasts.test.basics.js +0 -115
  254. package/dist/toasts.toast.test.basics.d.ts +0 -1
  255. package/dist/toasts.toast.test.basics.js +0 -139
  256. package/dist/toggle.stories.d.ts +0 -4
  257. package/dist/toggle.test.basics.d.ts +0 -1
  258. package/dist/toggle.test.basics.js +0 -69
  259. package/dist/toggle.test.events.d.ts +0 -1
  260. package/dist/toggle.test.events.js +0 -30
  261. package/dist/toggle.test.focus.d.ts +0 -1
  262. package/dist/toggle.test.focus.js +0 -9
  263. package/dist/toggle.test.interactions.d.ts +0 -1
  264. package/dist/toggle.test.interactions.js +0 -81
  265. package/dist/tooltip.stories.d.ts +0 -7
  266. package/dist/tooltip.test.basics.d.ts +0 -1
  267. package/dist/tooltip.test.basics.js +0 -100
  268. package/dist/tooltip.test.interactions.d.ts +0 -1
  269. package/dist/tooltip.test.interactions.js +0 -203
  270. package/dist/tree.item.icon-button.test.basics.d.ts +0 -1
  271. package/dist/tree.item.icon-button.test.basics.js +0 -22
  272. package/dist/tree.item.menu.test.basics.d.ts +0 -1
  273. package/dist/tree.item.menu.test.basics.js +0 -86
  274. package/dist/tree.item.test.basics.d.ts +0 -2
  275. package/dist/tree.item.test.basics.js +0 -138
  276. package/dist/tree.stories.d.ts +0 -9
  277. package/dist/tree.test.aria.d.ts +0 -1
  278. package/dist/tree.test.aria.js +0 -86
  279. package/dist/tree.test.basics.d.ts +0 -3
  280. package/dist/tree.test.basics.js +0 -130
  281. package/dist/tree.test.events.d.ts +0 -2
  282. package/dist/tree.test.events.js +0 -19
  283. package/dist/tree.test.focus.d.ts +0 -1
  284. package/dist/tree.test.focus.js +0 -383
@@ -1,446 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import * as sinon from 'sinon';
3
- import { aTimeout, expect, fixture, html, oneEvent } 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
- GlideCoreDropdown.shadowRootOptions.mode = 'open';
8
- GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
9
- it('dispatches one "change" event when an option is selected via click', async () => {
10
- const component = await fixture(html `<glide-core-dropdown
11
- label="Label"
12
- placeholder="Placeholder"
13
- open
14
- multiple
15
- >
16
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
17
-
18
- <glide-core-dropdown-option
19
- label="Two"
20
- selected
21
- ></glide-core-dropdown-option>
22
- </glide-core-dropdown>`);
23
- const spy = sinon.spy();
24
- component.addEventListener('change', spy);
25
- setTimeout(() => {
26
- // Calling `click()` isn't sufficient because it simply sets
27
- // `selected` and so isn't likely to produce a duplicate event,
28
- // we assert against below. The checkbox, because it produces
29
- // its own "change" event, is most likely where the duplicate would
30
- // come from.
31
- component
32
- .querySelector('glide-core-dropdown-option')
33
- ?.shadowRoot?.querySelector('[data-test="checkbox"]')
34
- ?.click();
35
- });
36
- const event = await oneEvent(component, 'change');
37
- expect(event instanceof Event).to.be.true;
38
- expect(event.bubbles).to.be.true;
39
- expect(spy.callCount).to.equal(1);
40
- });
41
- it('dispatches one "change" event when an option is selected via Enter', async () => {
42
- const component = await fixture(html `<glide-core-dropdown
43
- label="Label"
44
- placeholder="Placeholder"
45
- open
46
- multiple
47
- >
48
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
49
-
50
- <glide-core-dropdown-option
51
- label="Two"
52
- selected
53
- ></glide-core-dropdown-option>
54
- </glide-core-dropdown>`);
55
- const spy = sinon.spy();
56
- component.addEventListener('change', spy);
57
- // Activate the first option before selecting it. The second option is
58
- // currently active because it's selected.
59
- component
60
- .querySelector('glide-core-dropdown-option')
61
- ?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
62
- component.focus();
63
- sendKeys({ press: 'Enter' });
64
- const event = await oneEvent(component, 'change');
65
- expect(event instanceof Event).to.be.true;
66
- expect(event.bubbles).to.be.true;
67
- expect(spy.callCount).to.equal(1);
68
- });
69
- it('dispatches one "change" event when an option is selected via Space', 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 label="One"></glide-core-dropdown-option>
77
-
78
- <glide-core-dropdown-option
79
- label="Two"
80
- selected
81
- ></glide-core-dropdown-option>
82
- </glide-core-dropdown>`);
83
- const spy = sinon.spy();
84
- component.addEventListener('change', spy);
85
- // Activate the first option before selecting it. The second option is
86
- // currently active because it's selected.
87
- component
88
- .querySelector('glide-core-dropdown-option')
89
- ?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
90
- component.focus();
91
- sendKeys({ press: ' ' });
92
- const event = await oneEvent(component, 'change');
93
- expect(event instanceof Event).to.be.true;
94
- expect(event.bubbles).to.be.true;
95
- expect(spy.callCount).to.equal(1);
96
- });
97
- it('dispatches one "input" event when an option is selected via click', async () => {
98
- const component = await fixture(html `<glide-core-dropdown
99
- label="Label"
100
- placeholder="Placeholder"
101
- open
102
- multiple
103
- >
104
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
105
-
106
- <glide-core-dropdown-option
107
- label="Two"
108
- selected
109
- ></glide-core-dropdown-option>
110
- </glide-core-dropdown>`);
111
- const spy = sinon.spy();
112
- component.addEventListener('input', spy);
113
- setTimeout(() => {
114
- // Calling `click()` isn't sufficient because it simply sets
115
- // `selected` and so isn't likely to produce a duplicate event,
116
- // we assert against below. The checkbox, because it produces
117
- // its own "change" event, is most likely where the duplicate would
118
- // come from.
119
- component
120
- .querySelector('glide-core-dropdown-option')
121
- ?.shadowRoot?.querySelector('[data-test="checkbox"]')
122
- ?.click();
123
- });
124
- const event = await oneEvent(component, 'input');
125
- expect(event instanceof Event).to.be.true;
126
- expect(event.bubbles).to.be.true;
127
- expect(spy.callCount).to.equal(1);
128
- });
129
- it('dispatches one "input" event when an option is selected via Enter', async () => {
130
- const component = await fixture(html `<glide-core-dropdown
131
- label="Label"
132
- placeholder="Placeholder"
133
- open
134
- multiple
135
- >
136
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
137
-
138
- <glide-core-dropdown-option
139
- label="Two"
140
- selected
141
- ></glide-core-dropdown-option>
142
- </glide-core-dropdown>`);
143
- const spy = sinon.spy();
144
- component.addEventListener('input', spy);
145
- // Activate the first option before selecting it. The second option is
146
- // currently active because it's selected.
147
- component
148
- .querySelector('glide-core-dropdown-option')
149
- ?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
150
- component.focus();
151
- sendKeys({ press: 'Enter' });
152
- const event = await oneEvent(component, 'input');
153
- expect(event instanceof Event).to.be.true;
154
- expect(event.bubbles).to.be.true;
155
- expect(spy.callCount).to.equal(1);
156
- });
157
- it('dispatches one "input" event when an option is selected via Space', async () => {
158
- const component = await fixture(html `<glide-core-dropdown
159
- label="Label"
160
- placeholder="Placeholder"
161
- open
162
- multiple
163
- >
164
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
165
-
166
- <glide-core-dropdown-option
167
- label="Two"
168
- selected
169
- ></glide-core-dropdown-option>
170
- </glide-core-dropdown>`);
171
- const spy = sinon.spy();
172
- component.addEventListener('input', spy);
173
- // Activate the first option before selecting it. The second option is
174
- // currently active because it's selected.
175
- component
176
- .querySelector('glide-core-dropdown-option')
177
- ?.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));
178
- component.focus();
179
- sendKeys({ press: ' ' });
180
- const event = await oneEvent(component, 'input');
181
- expect(event instanceof Event).to.be.true;
182
- expect(event.bubbles).to.be.true;
183
- expect(spy.callCount).to.equal(1);
184
- });
185
- it('dispatches one "change" event when Select All is clicked', async () => {
186
- const component = await fixture(html `<glide-core-dropdown
187
- label="Label"
188
- placeholder="Placeholder"
189
- open
190
- multiple
191
- select-all
192
- >
193
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
194
-
195
- <glide-core-dropdown-option
196
- label="Two"
197
- selected
198
- ></glide-core-dropdown-option>
199
- </glide-core-dropdown>`);
200
- const spy = sinon.spy();
201
- component.addEventListener('change', spy);
202
- setTimeout(() => {
203
- component.shadowRoot
204
- ?.querySelector('[data-test="select-all"]')
205
- ?.click();
206
- });
207
- await aTimeout(0);
208
- expect(spy.callCount).to.equal(1);
209
- });
210
- it('dispatches one "input" event when Select All is clicked', async () => {
211
- const component = await fixture(html `<glide-core-dropdown
212
- label="Label"
213
- placeholder="Placeholder"
214
- open
215
- multiple
216
- select-all
217
- >
218
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
219
-
220
- <glide-core-dropdown-option
221
- label="Two"
222
- selected
223
- ></glide-core-dropdown-option>
224
- </glide-core-dropdown>`);
225
- const spy = sinon.spy();
226
- component.addEventListener('input', spy);
227
- setTimeout(() => {
228
- component.shadowRoot
229
- ?.querySelector('[data-test="select-all"]')
230
- ?.click();
231
- });
232
- await aTimeout(0);
233
- expect(spy.callCount).to.equal(1);
234
- });
235
- it('does not dispatch a "change" event when `value` is changed programmatically', async () => {
236
- const component = await fixture(html `<glide-core-dropdown
237
- label="Label"
238
- placeholder="Placeholder"
239
- open
240
- multiple
241
- >
242
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
243
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
244
-
245
- <glide-core-dropdown-option
246
- label="Three"
247
- selected
248
- ></glide-core-dropdown-option>
249
- </glide-core-dropdown>`);
250
- const spy = sinon.spy();
251
- component.addEventListener('change', spy);
252
- setTimeout(() => {
253
- component.value = ['one', 'two'];
254
- });
255
- await aTimeout(0);
256
- expect(spy.callCount).to.equal(0);
257
- });
258
- it('continues to dispatch "change" events upon selection after `value` is changed programmatically', async () => {
259
- const component = await fixture(html `<glide-core-dropdown
260
- label="Label"
261
- placeholder="Placeholder"
262
- open
263
- multiple
264
- >
265
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
266
-
267
- <glide-core-dropdown-option
268
- label="Two"
269
- selected
270
- ></glide-core-dropdown-option>
271
-
272
- <glide-core-dropdown-option
273
- label="Three"
274
- selected
275
- ></glide-core-dropdown-option>
276
- </glide-core-dropdown>`);
277
- component.value = ['one', 'two'];
278
- setTimeout(() => {
279
- component
280
- .querySelector('glide-core-dropdown-option:last-of-type')
281
- ?.click();
282
- });
283
- const event = await oneEvent(component, 'change');
284
- expect(event instanceof Event).to.be.true;
285
- });
286
- it('does not dispatch an "input" event when `value` is changed programmatically', async () => {
287
- const component = await fixture(html `<glide-core-dropdown
288
- label="Label"
289
- placeholder="Placeholder"
290
- open
291
- multiple
292
- >
293
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
294
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
295
-
296
- <glide-core-dropdown-option
297
- label="Three"
298
- selected
299
- ></glide-core-dropdown-option>
300
- </glide-core-dropdown>`);
301
- const spy = sinon.spy();
302
- component.addEventListener('input', spy);
303
- setTimeout(() => {
304
- component.value = ['one', 'two'];
305
- });
306
- await aTimeout(0);
307
- expect(spy.callCount).to.equal(0);
308
- });
309
- it('continues to dispatch "input" events upon selection after `value` is changed programmatically', async () => {
310
- const component = await fixture(html `<glide-core-dropdown
311
- label="Label"
312
- placeholder="Placeholder"
313
- open
314
- multiple
315
- >
316
- <glide-core-dropdown-option
317
- label="One"
318
- value="one"
319
- ></glide-core-dropdown-option>
320
-
321
- <glide-core-dropdown-option
322
- label="Two"
323
- selected
324
- ></glide-core-dropdown-option>
325
-
326
- <glide-core-dropdown-option
327
- label="Three"
328
- value="three"
329
- selected
330
- ></glide-core-dropdown-option>
331
- </glide-core-dropdown>`);
332
- component.value = ['one', 'two'];
333
- setTimeout(() => {
334
- component
335
- .querySelector('glide-core-dropdown-option:last-of-type')
336
- ?.click();
337
- });
338
- const event = await oneEvent(component, 'input');
339
- expect(event instanceof Event).to.be.true;
340
- });
341
- it('dispatches one "change" event when an option is selected after Select All is clicked', async () => {
342
- const component = await fixture(html `<glide-core-dropdown
343
- label="Label"
344
- placeholder="Placeholder"
345
- open
346
- multiple
347
- select-all
348
- >
349
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
350
-
351
- <glide-core-dropdown-option
352
- label="Two"
353
- selected
354
- ></glide-core-dropdown-option>
355
- </glide-core-dropdown>`);
356
- setTimeout(() => {
357
- component.shadowRoot
358
- ?.querySelector('[data-test="select-all"]')
359
- ?.click();
360
- });
361
- await aTimeout(0);
362
- const spy = sinon.spy();
363
- component.addEventListener('change', spy);
364
- setTimeout(() => {
365
- component.querySelector('glide-core-dropdown-option')?.click();
366
- });
367
- await aTimeout(0);
368
- expect(spy.callCount).to.equal(1);
369
- });
370
- it('dispatches one "input" event when an option is selected after Select All is clicked', async () => {
371
- const component = await fixture(html `<glide-core-dropdown
372
- label="Label"
373
- placeholder="Placeholder"
374
- open
375
- multiple
376
- select-all
377
- >
378
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
379
-
380
- <glide-core-dropdown-option
381
- label="Two"
382
- selected
383
- ></glide-core-dropdown-option>
384
- </glide-core-dropdown>`);
385
- setTimeout(() => {
386
- component.shadowRoot
387
- ?.querySelector('[data-test="select-all"]')
388
- ?.click();
389
- });
390
- await aTimeout(0);
391
- const spy = sinon.spy();
392
- component.addEventListener('input', spy);
393
- setTimeout(() => {
394
- component.querySelector('glide-core-dropdown-option')?.click();
395
- });
396
- await aTimeout(0);
397
- expect(spy.callCount).to.equal(1);
398
- });
399
- it('dispatches one "change" event when a tag is removed', async () => {
400
- const component = await fixture(html `<glide-core-dropdown
401
- label="Label"
402
- placeholder="Placeholder"
403
- open
404
- multiple
405
- >
406
- <glide-core-dropdown-option
407
- label="One"
408
- selected
409
- ></glide-core-dropdown-option>
410
-
411
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
412
- </glide-core-dropdown>`);
413
- setTimeout(() => {
414
- component.shadowRoot
415
- ?.querySelector('[data-test="tag"]')
416
- ?.click();
417
- });
418
- const spy = sinon.spy();
419
- component.addEventListener('change', spy);
420
- await aTimeout(0);
421
- expect(spy.callCount).to.equal(1);
422
- });
423
- it('dispatches one "input" event when a tag is removed', async () => {
424
- const component = await fixture(html `<glide-core-dropdown
425
- label="Label"
426
- placeholder="Placeholder"
427
- open
428
- multiple
429
- >
430
- <glide-core-dropdown-option
431
- label="One"
432
- selected
433
- ></glide-core-dropdown-option>
434
-
435
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
436
- </glide-core-dropdown>`);
437
- setTimeout(() => {
438
- component.shadowRoot
439
- ?.querySelector('[data-test="tag"]')
440
- ?.click();
441
- });
442
- const spy = sinon.spy();
443
- component.addEventListener('input', spy);
444
- await aTimeout(0);
445
- expect(spy.callCount).to.equal(1);
446
- });
@@ -1 +0,0 @@
1
- import './dropdown.option.js';