@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.
Files changed (287) 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.js +11 -11
  5. package/dist/dropdown.option.d.ts +1 -1
  6. package/dist/dropdown.option.js +1 -1
  7. package/dist/dropdown.styles.js +11 -16
  8. package/dist/input.styles.js +6 -1
  9. package/dist/styles/variables.css +1 -1
  10. package/dist/textarea.styles.js +6 -0
  11. package/dist/toasts.d.ts +2 -2
  12. package/dist/toasts.toast.d.ts +1 -1
  13. package/dist/toasts.toast.js +1 -1
  14. package/dist/toasts.toast.styles.js +8 -0
  15. package/dist/tree.item.styles.js +2 -2
  16. package/package.json +9 -6
  17. package/dist/accordion.stories.d.ts +0 -6
  18. package/dist/accordion.test.basics.d.ts +0 -1
  19. package/dist/accordion.test.basics.js +0 -28
  20. package/dist/accordion.test.events.d.ts +0 -1
  21. package/dist/accordion.test.events.js +0 -28
  22. package/dist/accordion.test.focus.d.ts +0 -1
  23. package/dist/accordion.test.focus.js +0 -11
  24. package/dist/accordion.test.interactions.d.ts +0 -1
  25. package/dist/accordion.test.interactions.js +0 -75
  26. package/dist/button-group.button.test.basics.d.ts +0 -1
  27. package/dist/button-group.button.test.basics.js +0 -97
  28. package/dist/button-group.button.test.events.d.ts +0 -1
  29. package/dist/button-group.button.test.events.js +0 -15
  30. package/dist/button-group.button.test.focus.d.ts +0 -1
  31. package/dist/button-group.button.test.focus.js +0 -13
  32. package/dist/button-group.button.test.interactions.d.ts +0 -1
  33. package/dist/button-group.button.test.interactions.js +0 -42
  34. package/dist/button-group.stories.d.ts +0 -7
  35. package/dist/button-group.test.basics.d.ts +0 -1
  36. package/dist/button-group.test.basics.js +0 -148
  37. package/dist/button-group.test.events.d.ts +0 -1
  38. package/dist/button-group.test.events.js +0 -241
  39. package/dist/button-group.test.focus.d.ts +0 -1
  40. package/dist/button-group.test.focus.js +0 -39
  41. package/dist/button-group.test.interactions.d.ts +0 -1
  42. package/dist/button-group.test.interactions.js +0 -91
  43. package/dist/button.stories.d.ts +0 -7
  44. package/dist/button.test.basics.d.ts +0 -1
  45. package/dist/button.test.basics.js +0 -69
  46. package/dist/button.test.events.d.ts +0 -1
  47. package/dist/button.test.events.js +0 -102
  48. package/dist/checkbox-group.stories.d.ts +0 -6
  49. package/dist/checkbox-group.test.basics.d.ts +0 -1
  50. package/dist/checkbox-group.test.basics.js +0 -116
  51. package/dist/checkbox-group.test.events.d.ts +0 -1
  52. package/dist/checkbox-group.test.events.js +0 -111
  53. package/dist/checkbox-group.test.focus.d.ts +0 -1
  54. package/dist/checkbox-group.test.focus.js +0 -70
  55. package/dist/checkbox-group.test.form.d.ts +0 -1
  56. package/dist/checkbox-group.test.form.js +0 -131
  57. package/dist/checkbox-group.test.interactions.d.ts +0 -1
  58. package/dist/checkbox-group.test.interactions.js +0 -82
  59. package/dist/checkbox-group.test.validity.d.ts +0 -1
  60. package/dist/checkbox-group.test.validity.js +0 -145
  61. package/dist/checkbox.stories.d.ts +0 -5
  62. package/dist/checkbox.test.basics.d.ts +0 -1
  63. package/dist/checkbox.test.basics.js +0 -90
  64. package/dist/checkbox.test.events.d.ts +0 -1
  65. package/dist/checkbox.test.events.js +0 -105
  66. package/dist/checkbox.test.focus.d.ts +0 -1
  67. package/dist/checkbox.test.focus.js +0 -51
  68. package/dist/checkbox.test.form.d.ts +0 -1
  69. package/dist/checkbox.test.form.js +0 -133
  70. package/dist/checkbox.test.interactions.d.ts +0 -1
  71. package/dist/checkbox.test.interactions.js +0 -131
  72. package/dist/checkbox.test.validity.d.ts +0 -1
  73. package/dist/checkbox.test.validity.js +0 -128
  74. package/dist/drawer.stories.d.ts +0 -6
  75. package/dist/drawer.test.accessibility.d.ts +0 -1
  76. package/dist/drawer.test.accessibility.js +0 -22
  77. package/dist/drawer.test.basics.d.ts +0 -1
  78. package/dist/drawer.test.basics.js +0 -44
  79. package/dist/drawer.test.closing.d.ts +0 -1
  80. package/dist/drawer.test.closing.js +0 -40
  81. package/dist/drawer.test.events.d.ts +0 -1
  82. package/dist/drawer.test.events.js +0 -42
  83. package/dist/drawer.test.methods.d.ts +0 -1
  84. package/dist/drawer.test.methods.js +0 -35
  85. package/dist/dropdown.option.test.basics.d.ts +0 -1
  86. package/dist/dropdown.option.test.basics.js +0 -34
  87. package/dist/dropdown.option.test.basics.multiple.d.ts +0 -1
  88. package/dist/dropdown.option.test.basics.multiple.js +0 -36
  89. package/dist/dropdown.option.test.basics.single.d.ts +0 -1
  90. package/dist/dropdown.option.test.basics.single.js +0 -29
  91. package/dist/dropdown.option.test.events.d.ts +0 -1
  92. package/dist/dropdown.option.test.events.js +0 -36
  93. package/dist/dropdown.option.test.focus.d.ts +0 -1
  94. package/dist/dropdown.option.test.focus.js +0 -11
  95. package/dist/dropdown.option.test.interactions.multiple.d.ts +0 -1
  96. package/dist/dropdown.option.test.interactions.multiple.js +0 -42
  97. package/dist/dropdown.option.test.interactions.single.d.ts +0 -1
  98. package/dist/dropdown.option.test.interactions.single.js +0 -76
  99. package/dist/dropdown.stories.d.ts +0 -8
  100. package/dist/dropdown.test.basics.d.ts +0 -1
  101. package/dist/dropdown.test.basics.filterable.d.ts +0 -1
  102. package/dist/dropdown.test.basics.filterable.js +0 -108
  103. package/dist/dropdown.test.basics.js +0 -181
  104. package/dist/dropdown.test.basics.multiple.d.ts +0 -1
  105. package/dist/dropdown.test.basics.multiple.js +0 -259
  106. package/dist/dropdown.test.basics.single.d.ts +0 -1
  107. package/dist/dropdown.test.basics.single.js +0 -122
  108. package/dist/dropdown.test.events.d.ts +0 -1
  109. package/dist/dropdown.test.events.filterable.d.ts +0 -1
  110. package/dist/dropdown.test.events.filterable.js +0 -31
  111. package/dist/dropdown.test.events.js +0 -251
  112. package/dist/dropdown.test.events.multiple.d.ts +0 -1
  113. package/dist/dropdown.test.events.multiple.js +0 -446
  114. package/dist/dropdown.test.events.single.d.ts +0 -1
  115. package/dist/dropdown.test.events.single.js +0 -343
  116. package/dist/dropdown.test.focus.d.ts +0 -1
  117. package/dist/dropdown.test.focus.filterable.d.ts +0 -1
  118. package/dist/dropdown.test.focus.filterable.js +0 -140
  119. package/dist/dropdown.test.focus.js +0 -107
  120. package/dist/dropdown.test.focus.multiple.d.ts +0 -1
  121. package/dist/dropdown.test.focus.multiple.js +0 -170
  122. package/dist/dropdown.test.focus.single.d.ts +0 -1
  123. package/dist/dropdown.test.focus.single.js +0 -42
  124. package/dist/dropdown.test.form.d.ts +0 -1
  125. package/dist/dropdown.test.form.js +0 -74
  126. package/dist/dropdown.test.form.multiple.d.ts +0 -1
  127. package/dist/dropdown.test.form.multiple.js +0 -151
  128. package/dist/dropdown.test.form.single.d.ts +0 -1
  129. package/dist/dropdown.test.form.single.js +0 -129
  130. package/dist/dropdown.test.interactions.d.ts +0 -1
  131. package/dist/dropdown.test.interactions.filterable.d.ts +0 -1
  132. package/dist/dropdown.test.interactions.filterable.js +0 -805
  133. package/dist/dropdown.test.interactions.js +0 -696
  134. package/dist/dropdown.test.interactions.multiple.d.ts +0 -1
  135. package/dist/dropdown.test.interactions.multiple.js +0 -1026
  136. package/dist/dropdown.test.interactions.single.d.ts +0 -1
  137. package/dist/dropdown.test.interactions.single.js +0 -569
  138. package/dist/dropdown.test.validity.d.ts +0 -1
  139. package/dist/dropdown.test.validity.js +0 -181
  140. package/dist/form-controls-layout.stories.d.ts +0 -10
  141. package/dist/form-controls-layout.test.basics.d.ts +0 -2
  142. package/dist/form-controls-layout.test.basics.js +0 -75
  143. package/dist/form-controls-layout.test.interactions.d.ts +0 -2
  144. package/dist/form-controls-layout.test.interactions.js +0 -26
  145. package/dist/icon-button.stories.d.ts +0 -6
  146. package/dist/icon-button.test.basics.d.ts +0 -1
  147. package/dist/icon-button.test.basics.js +0 -43
  148. package/dist/icon-button.test.focus.d.ts +0 -1
  149. package/dist/icon-button.test.focus.js +0 -13
  150. package/dist/input.stories.d.ts +0 -8
  151. package/dist/input.test.basics.d.ts +0 -1
  152. package/dist/input.test.basics.js +0 -138
  153. package/dist/input.test.events.d.ts +0 -1
  154. package/dist/input.test.events.js +0 -98
  155. package/dist/input.test.focus.d.ts +0 -1
  156. package/dist/input.test.focus.js +0 -58
  157. package/dist/input.test.form.d.ts +0 -1
  158. package/dist/input.test.form.js +0 -74
  159. package/dist/input.test.validity.d.ts +0 -1
  160. package/dist/input.test.validity.js +0 -258
  161. package/dist/label.test.basics.d.ts +0 -1
  162. package/dist/label.test.basics.js +0 -136
  163. package/dist/menu.button.test.basics.d.ts +0 -1
  164. package/dist/menu.button.test.basics.js +0 -43
  165. package/dist/menu.link.test.basics.d.ts +0 -1
  166. package/dist/menu.link.test.basics.js +0 -47
  167. package/dist/menu.options.test.basics.d.ts +0 -2
  168. package/dist/menu.options.test.basics.js +0 -44
  169. package/dist/menu.options.test.events.d.ts +0 -1
  170. package/dist/menu.options.test.events.js +0 -19
  171. package/dist/menu.stories.d.ts +0 -11
  172. package/dist/menu.test.basics.d.ts +0 -1
  173. package/dist/menu.test.basics.js +0 -178
  174. package/dist/menu.test.events.d.ts +0 -3
  175. package/dist/menu.test.events.js +0 -125
  176. package/dist/menu.test.focus.d.ts +0 -2
  177. package/dist/menu.test.focus.js +0 -102
  178. package/dist/menu.test.interactions.d.ts +0 -3
  179. package/dist/menu.test.interactions.js +0 -1069
  180. package/dist/modal.icon-button.test.basics.d.ts +0 -1
  181. package/dist/modal.icon-button.test.basics.js +0 -46
  182. package/dist/modal.stories.d.ts +0 -13
  183. package/dist/modal.tertiary-icon.test.basics.d.ts +0 -1
  184. package/dist/modal.tertiary-icon.test.basics.js +0 -60
  185. package/dist/modal.test.accessibility.d.ts +0 -1
  186. package/dist/modal.test.accessibility.js +0 -38
  187. package/dist/modal.test.basics.d.ts +0 -3
  188. package/dist/modal.test.basics.js +0 -204
  189. package/dist/modal.test.close.d.ts +0 -1
  190. package/dist/modal.test.close.js +0 -35
  191. package/dist/modal.test.events.d.ts +0 -1
  192. package/dist/modal.test.events.js +0 -99
  193. package/dist/modal.test.lock-scroll.d.ts +0 -1
  194. package/dist/modal.test.lock-scroll.js +0 -67
  195. package/dist/modal.test.methods.d.ts +0 -1
  196. package/dist/modal.test.methods.js +0 -20
  197. package/dist/modal.test.scrollbars.d.ts +0 -1
  198. package/dist/modal.test.scrollbars.js +0 -18
  199. package/dist/radio-group.stories.d.ts +0 -6
  200. package/dist/radio-group.test.basics.d.ts +0 -2
  201. package/dist/radio-group.test.basics.js +0 -324
  202. package/dist/radio-group.test.events.d.ts +0 -2
  203. package/dist/radio-group.test.events.js +0 -278
  204. package/dist/radio-group.test.focus.d.ts +0 -2
  205. package/dist/radio-group.test.focus.js +0 -95
  206. package/dist/radio-group.test.form.d.ts +0 -1
  207. package/dist/radio-group.test.form.js +0 -124
  208. package/dist/radio-group.test.validity.d.ts +0 -1
  209. package/dist/radio-group.test.validity.js +0 -311
  210. package/dist/split-button.primary-button.test.basics.d.ts +0 -1
  211. package/dist/split-button.primary-button.test.basics.js +0 -31
  212. package/dist/split-button.primary-button.test.focus.d.ts +0 -1
  213. package/dist/split-button.primary-button.test.focus.js +0 -14
  214. package/dist/split-button.primary-link.test.basics.d.ts +0 -1
  215. package/dist/split-button.primary-link.test.basics.js +0 -30
  216. package/dist/split-button.primary-link.test.focus.d.ts +0 -1
  217. package/dist/split-button.primary-link.test.focus.js +0 -15
  218. package/dist/split-button.secondary-button.test.basics.d.ts +0 -1
  219. package/dist/split-button.secondary-button.test.basics.js +0 -58
  220. package/dist/split-button.secondary-button.test.focus.d.ts +0 -1
  221. package/dist/split-button.secondary-button.test.focus.js +0 -14
  222. package/dist/split-button.secondary-button.test.interactions.d.ts +0 -2
  223. package/dist/split-button.secondary-button.test.interactions.js +0 -30
  224. package/dist/split-button.stories.d.ts +0 -13
  225. package/dist/split-button.test.basics.d.ts +0 -2
  226. package/dist/split-button.test.basics.js +0 -87
  227. package/dist/split-button.test.interactions.d.ts +0 -4
  228. package/dist/split-button.test.interactions.js +0 -51
  229. package/dist/tab.group.test.basics.d.ts +0 -3
  230. package/dist/tab.group.test.basics.js +0 -234
  231. package/dist/tab.group.test.interactions.d.ts +0 -3
  232. package/dist/tab.group.test.interactions.js +0 -434
  233. package/dist/tab.test.basics.d.ts +0 -1
  234. package/dist/tab.test.basics.js +0 -50
  235. package/dist/tabs.stories.d.ts +0 -8
  236. package/dist/tag.stories.d.ts +0 -7
  237. package/dist/tag.test.basics.d.ts +0 -1
  238. package/dist/tag.test.basics.js +0 -28
  239. package/dist/tag.test.events.d.ts +0 -1
  240. package/dist/tag.test.events.js +0 -93
  241. package/dist/tag.test.focus.d.ts +0 -1
  242. package/dist/tag.test.focus.js +0 -10
  243. package/dist/tag.test.interactions.d.ts +0 -1
  244. package/dist/tag.test.interactions.js +0 -36
  245. package/dist/textarea.stories.d.ts +0 -5
  246. package/dist/textarea.test.basics.d.ts +0 -1
  247. package/dist/textarea.test.basics.js +0 -177
  248. package/dist/textarea.test.events.d.ts +0 -1
  249. package/dist/textarea.test.events.js +0 -106
  250. package/dist/textarea.test.form.d.ts +0 -1
  251. package/dist/textarea.test.form.js +0 -71
  252. package/dist/textarea.test.validity.d.ts +0 -1
  253. package/dist/textarea.test.validity.js +0 -204
  254. package/dist/toasts.stories.d.ts +0 -7
  255. package/dist/toasts.test.basics.d.ts +0 -1
  256. package/dist/toasts.test.basics.js +0 -115
  257. package/dist/toasts.toast.test.basics.d.ts +0 -1
  258. package/dist/toasts.toast.test.basics.js +0 -139
  259. package/dist/toggle.stories.d.ts +0 -4
  260. package/dist/toggle.test.basics.d.ts +0 -1
  261. package/dist/toggle.test.basics.js +0 -69
  262. package/dist/toggle.test.events.d.ts +0 -1
  263. package/dist/toggle.test.events.js +0 -30
  264. package/dist/toggle.test.focus.d.ts +0 -1
  265. package/dist/toggle.test.focus.js +0 -9
  266. package/dist/toggle.test.interactions.d.ts +0 -1
  267. package/dist/toggle.test.interactions.js +0 -81
  268. package/dist/tooltip.stories.d.ts +0 -7
  269. package/dist/tooltip.test.basics.d.ts +0 -1
  270. package/dist/tooltip.test.basics.js +0 -100
  271. package/dist/tooltip.test.interactions.d.ts +0 -1
  272. package/dist/tooltip.test.interactions.js +0 -203
  273. package/dist/tree.item.icon-button.test.basics.d.ts +0 -1
  274. package/dist/tree.item.icon-button.test.basics.js +0 -22
  275. package/dist/tree.item.menu.test.basics.d.ts +0 -1
  276. package/dist/tree.item.menu.test.basics.js +0 -86
  277. package/dist/tree.item.test.basics.d.ts +0 -2
  278. package/dist/tree.item.test.basics.js +0 -138
  279. package/dist/tree.stories.d.ts +0 -9
  280. package/dist/tree.test.aria.d.ts +0 -1
  281. package/dist/tree.test.aria.js +0 -86
  282. package/dist/tree.test.basics.d.ts +0 -3
  283. package/dist/tree.test.basics.js +0 -130
  284. package/dist/tree.test.events.d.ts +0 -2
  285. package/dist/tree.test.events.js +0 -19
  286. package/dist/tree.test.focus.d.ts +0 -1
  287. 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';