@ukic/canary-web-components 3.0.0-canary.2 → 3.0.0-canary.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (465) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-33b42cd6.js → helpers-36cdc6cb.js} +24 -1
  3. package/dist/cjs/helpers-36cdc6cb.js.map +1 -0
  4. package/dist/cjs/{helpers-6817cfbb.js → helpers-a67ad3a4.js} +15 -129
  5. package/dist/cjs/helpers-a67ad3a4.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -3
  21. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-data-table.cjs.entry.js +23 -2
  26. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-date-input.cjs.entry.js +10 -9
  28. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-date-picker.cjs.entry.js +3 -1
  30. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-empty-state_2.cjs.entry.js +9 -8
  34. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1012 -0
  41. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -0
  42. package/dist/cjs/ic-input-label_2.cjs.entry.js +86 -0
  43. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -0
  44. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  55. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-pagination_4.cjs.entry.js +148 -38
  57. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-popover-menu.cjs.entry.js +9 -9
  59. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-radio-group.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-radio-option.cjs.entry.js +27 -22
  63. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-switch.cjs.entry.js +7 -4
  71. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-tree-item.cjs.entry.js +5 -3
  80. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-tree-view.cjs.entry.js +10 -2
  82. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  84. package/dist/cjs/index-4cf27b16.js +4 -12
  85. package/dist/cjs/loader.cjs.js +1 -1
  86. package/dist/collection/collection-manifest.json +0 -2
  87. package/dist/collection/components/ic-data-table/ic-data-table.js +24 -3
  88. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  89. package/dist/collection/components/ic-date-input/ic-date-input.js +27 -8
  90. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  91. package/dist/collection/components/ic-date-picker/ic-date-picker.js +20 -0
  92. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  93. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +26 -7
  94. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  95. package/dist/collection/components/ic-tree-item/ic-tree-item.css +11 -0
  96. package/dist/collection/components/ic-tree-item/ic-tree-item.js +23 -3
  97. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  98. package/dist/collection/components/ic-tree-view/ic-tree-view.js +29 -1
  99. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  100. package/dist/collection/utils/helpers.js +1 -1
  101. package/dist/collection/utils/helpers.js.map +1 -1
  102. package/dist/collection/utils/types.js.map +1 -1
  103. package/dist/components/helpers.js +22 -1
  104. package/dist/components/helpers.js.map +1 -1
  105. package/dist/components/helpers2.js +14 -121
  106. package/dist/components/helpers2.js.map +1 -1
  107. package/dist/components/ic-alert.js +1 -1
  108. package/dist/components/ic-alert.js.map +1 -1
  109. package/dist/components/ic-checkbox-group.js +1 -1
  110. package/dist/components/ic-checkbox-group.js.map +1 -1
  111. package/dist/components/ic-checkbox.js +2 -2
  112. package/dist/components/ic-checkbox.js.map +1 -1
  113. package/dist/components/ic-data-table.js +23 -2
  114. package/dist/components/ic-data-table.js.map +1 -1
  115. package/dist/components/ic-date-input2.js +11 -9
  116. package/dist/components/ic-date-input2.js.map +1 -1
  117. package/dist/components/ic-date-picker.js +4 -1
  118. package/dist/components/ic-date-picker.js.map +1 -1
  119. package/dist/components/ic-footer.js +1 -1
  120. package/dist/components/ic-horizontal-scroll2.js +1 -1
  121. package/dist/components/ic-input-label2.js +10 -6
  122. package/dist/components/ic-input-label2.js.map +1 -1
  123. package/dist/components/ic-loading-indicator2.js +1 -1
  124. package/dist/components/ic-loading-indicator2.js.map +1 -1
  125. package/dist/components/ic-menu-group.js +1 -1
  126. package/dist/components/ic-menu-group.js.map +1 -1
  127. package/dist/components/ic-menu-item2.js +1 -1
  128. package/dist/components/ic-menu-item2.js.map +1 -1
  129. package/dist/components/ic-menu2.js +450 -167
  130. package/dist/components/ic-menu2.js.map +1 -1
  131. package/dist/components/ic-navigation-group.js +2 -2
  132. package/dist/components/ic-navigation-group.js.map +1 -1
  133. package/dist/components/ic-navigation-item.js +1 -1
  134. package/dist/components/ic-navigation-menu2.js +1 -1
  135. package/dist/components/ic-page-header.js +4 -4
  136. package/dist/components/ic-page-header.js.map +1 -1
  137. package/dist/components/ic-pagination-bar2.js +9 -7
  138. package/dist/components/ic-pagination-bar2.js.map +1 -1
  139. package/dist/components/ic-pagination-item2.js +1 -1
  140. package/dist/components/ic-popover-menu.js +10 -9
  141. package/dist/components/ic-popover-menu.js.map +1 -1
  142. package/dist/components/ic-radio-group.js +1 -1
  143. package/dist/components/ic-radio-group.js.map +1 -1
  144. package/dist/components/ic-radio-option.js +27 -22
  145. package/dist/components/ic-radio-option.js.map +1 -1
  146. package/dist/components/ic-search-bar.js +2 -2
  147. package/dist/components/ic-search-bar.js.map +1 -1
  148. package/dist/components/ic-select2.js +148 -37
  149. package/dist/components/ic-select2.js.map +1 -1
  150. package/dist/components/ic-side-navigation.js +1 -1
  151. package/dist/components/ic-stepper.js +1 -1
  152. package/dist/components/ic-switch.js +7 -3
  153. package/dist/components/ic-switch.js.map +1 -1
  154. package/dist/components/ic-text-field2.js +2 -2
  155. package/dist/components/ic-text-field2.js.map +1 -1
  156. package/dist/components/ic-theme.js +1 -1
  157. package/dist/components/ic-toast.js +1 -1
  158. package/dist/components/ic-top-navigation.js +1 -1
  159. package/dist/components/ic-tree-item.js +5 -2
  160. package/dist/components/ic-tree-item.js.map +1 -1
  161. package/dist/components/ic-tree-view.js +12 -2
  162. package/dist/components/ic-tree-view.js.map +1 -1
  163. package/dist/core/core.css +580 -10
  164. package/dist/core/core.esm.js +1 -1
  165. package/dist/core/core.esm.js.map +1 -1
  166. package/dist/core/{p-c033e7d6.entry.js → p-036d251b.entry.js} +2 -2
  167. package/dist/core/{p-9397b15b.js → p-043cf5de.js} +2 -2
  168. package/dist/core/p-043cf5de.js.map +1 -0
  169. package/dist/core/p-044689ef.entry.js +2 -0
  170. package/dist/core/p-044689ef.entry.js.map +1 -0
  171. package/dist/core/p-095da817.entry.js +2 -0
  172. package/dist/core/p-095da817.entry.js.map +1 -0
  173. package/dist/core/{p-d2e7a256.entry.js → p-13d2db9b.entry.js} +2 -2
  174. package/dist/core/p-13e01a1e.entry.js +2 -0
  175. package/dist/core/p-13e01a1e.entry.js.map +1 -0
  176. package/dist/core/p-1ae71507.entry.js +2 -0
  177. package/dist/core/p-1ae71507.entry.js.map +1 -0
  178. package/dist/core/p-2200ca85.entry.js +2 -0
  179. package/dist/core/p-2200ca85.entry.js.map +1 -0
  180. package/dist/core/{p-42e0f3bd.entry.js → p-2257f5e8.entry.js} +2 -2
  181. package/dist/core/{p-897b8d16.entry.js → p-24d03bbd.entry.js} +2 -2
  182. package/dist/core/{p-a78cf2cb.entry.js → p-266098ee.entry.js} +2 -2
  183. package/dist/core/{p-bb1252fa.entry.js → p-26613dbd.entry.js} +2 -2
  184. package/dist/core/p-283a2274.entry.js +2 -0
  185. package/dist/core/p-283a2274.entry.js.map +1 -0
  186. package/dist/core/{p-77a32de5.entry.js → p-2a3bd99a.entry.js} +2 -2
  187. package/dist/core/p-42f88966.entry.js +2 -0
  188. package/dist/core/p-42f88966.entry.js.map +1 -0
  189. package/dist/core/{p-7c268030.entry.js → p-48a78218.entry.js} +2 -2
  190. package/dist/core/p-4e316ae5.entry.js +2 -0
  191. package/dist/core/p-4e316ae5.entry.js.map +1 -0
  192. package/dist/core/p-50dd2744.entry.js +2 -0
  193. package/dist/core/p-50dd2744.entry.js.map +1 -0
  194. package/dist/core/{p-4e28ef60.entry.js → p-51ea45cb.entry.js} +2 -2
  195. package/dist/core/{p-4e28ef60.entry.js.map → p-51ea45cb.entry.js.map} +1 -1
  196. package/dist/core/p-5458d818.entry.js +2 -0
  197. package/dist/core/p-5458d818.entry.js.map +1 -0
  198. package/dist/core/{p-202bc922.entry.js → p-5ad1a7fb.entry.js} +2 -2
  199. package/dist/core/{p-f9810621.entry.js → p-5b061abc.entry.js} +2 -2
  200. package/dist/core/{p-6beffd0e.entry.js → p-6727166b.entry.js} +2 -2
  201. package/dist/core/{p-8ca2e329.entry.js → p-6dc00a8f.entry.js} +2 -2
  202. package/dist/core/{p-aeb6016c.entry.js → p-6dffaac0.entry.js} +2 -2
  203. package/dist/core/{p-aeb6016c.entry.js.map → p-6dffaac0.entry.js.map} +1 -1
  204. package/dist/core/p-6fd89ed5.entry.js +2 -0
  205. package/dist/core/p-6fd89ed5.entry.js.map +1 -0
  206. package/dist/core/{p-d5ca3bcb.entry.js → p-7aa6b76e.entry.js} +2 -2
  207. package/dist/core/{p-e5d99316.entry.js → p-7b90f0ae.entry.js} +2 -2
  208. package/dist/core/{p-30b046b2.entry.js → p-7e5b0fff.entry.js} +2 -2
  209. package/dist/core/{p-50019ede.entry.js → p-80b296cd.entry.js} +2 -2
  210. package/dist/core/{p-eb65e556.entry.js → p-82aa8136.entry.js} +2 -2
  211. package/dist/core/{p-2e49fb22.entry.js → p-83b4efe2.entry.js} +2 -2
  212. package/dist/core/p-83e4d955.entry.js +2 -0
  213. package/dist/core/p-83e4d955.entry.js.map +1 -0
  214. package/dist/core/{p-d3c0bffb.entry.js → p-86b608b5.entry.js} +2 -2
  215. package/dist/core/p-86b608b5.entry.js.map +1 -0
  216. package/dist/core/{p-5accf0bb.entry.js → p-878df16f.entry.js} +2 -2
  217. package/dist/core/p-89be0a21.js +2 -0
  218. package/dist/core/p-89be0a21.js.map +1 -0
  219. package/dist/core/{p-1fe35de1.entry.js → p-8bec76d1.entry.js} +2 -2
  220. package/dist/core/p-94141606.entry.js +2 -0
  221. package/dist/core/p-94141606.entry.js.map +1 -0
  222. package/dist/core/{p-1109636a.entry.js → p-94416b6b.entry.js} +2 -2
  223. package/dist/core/{p-4dcc37e7.entry.js → p-a4439688.entry.js} +2 -2
  224. package/dist/core/{p-8f12659d.entry.js → p-a8106c56.entry.js} +2 -2
  225. package/dist/core/p-a8106c56.entry.js.map +1 -0
  226. package/dist/core/{p-130a05cf.entry.js → p-affd7f55.entry.js} +2 -2
  227. package/dist/core/{p-486d8d43.entry.js → p-b3d93bc1.entry.js} +2 -2
  228. package/dist/core/{p-c1698936.entry.js → p-bac2beeb.entry.js} +2 -2
  229. package/dist/core/{p-53e00a8a.entry.js → p-c29b2b48.entry.js} +2 -2
  230. package/dist/core/{p-ed4cde5a.entry.js → p-c40c57ee.entry.js} +2 -2
  231. package/dist/core/{p-b0751bd9.entry.js → p-c6a62d1b.entry.js} +2 -2
  232. package/dist/core/{p-0ab10600.entry.js → p-cc22644d.entry.js} +2 -2
  233. package/dist/core/p-cfd81370.entry.js +2 -0
  234. package/dist/core/p-cfd81370.entry.js.map +1 -0
  235. package/dist/core/p-d53fb899.entry.js +2 -0
  236. package/dist/core/p-d53fb899.entry.js.map +1 -0
  237. package/dist/core/{p-28323849.entry.js → p-d5e9cf81.entry.js} +2 -2
  238. package/dist/core/{p-505250cf.entry.js → p-d7632baf.entry.js} +2 -2
  239. package/dist/core/{p-7c80d79c.entry.js → p-dcccd9c1.entry.js} +2 -2
  240. package/dist/core/{p-42883e4c.entry.js → p-edfd0946.entry.js} +2 -2
  241. package/dist/core/p-edfd0946.entry.js.map +1 -0
  242. package/dist/core/{p-7c78f6c6.entry.js → p-f1842a68.entry.js} +2 -2
  243. package/dist/core/p-f1842a68.entry.js.map +1 -0
  244. package/dist/core/p-f8c1d7e8.entry.js +2 -0
  245. package/dist/core/p-f8c1d7e8.entry.js.map +1 -0
  246. package/dist/core/{p-d03374fc.entry.js → p-fbb5c8f2.entry.js} +2 -2
  247. package/dist/core/{p-a9151d0b.entry.js → p-fc2f336d.entry.js} +2 -2
  248. package/dist/esm/core.js +1 -1
  249. package/dist/esm/{helpers-5bd2012a.js → helpers-a7b13f5a.js} +15 -122
  250. package/dist/esm/helpers-a7b13f5a.js.map +1 -0
  251. package/dist/esm/{helpers-dab8ddfe.js → helpers-c326255f.js} +23 -2
  252. package/dist/esm/helpers-c326255f.js.map +1 -0
  253. package/dist/esm/ic-accordion-group.entry.js +1 -1
  254. package/dist/esm/ic-accordion.entry.js +1 -1
  255. package/dist/esm/ic-alert.entry.js +2 -2
  256. package/dist/esm/ic-alert.entry.js.map +1 -1
  257. package/dist/esm/ic-back-to-top.entry.js +1 -1
  258. package/dist/esm/ic-badge.entry.js +1 -1
  259. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  260. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  261. package/dist/esm/ic-button_3.entry.js +2 -2
  262. package/dist/esm/ic-button_3.entry.js.map +1 -1
  263. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  264. package/dist/esm/ic-card-vertical.entry.js +1 -1
  265. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  266. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  267. package/dist/esm/ic-checkbox.entry.js +3 -3
  268. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  269. package/dist/esm/ic-chip.entry.js +1 -1
  270. package/dist/esm/ic-data-row.entry.js +1 -1
  271. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  272. package/dist/esm/ic-data-table.entry.js +23 -2
  273. package/dist/esm/ic-data-table.entry.js.map +1 -1
  274. package/dist/esm/ic-date-input.entry.js +10 -9
  275. package/dist/esm/ic-date-input.entry.js.map +1 -1
  276. package/dist/esm/ic-date-picker.entry.js +3 -1
  277. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  278. package/dist/esm/ic-dialog.entry.js +1 -1
  279. package/dist/esm/ic-divider.entry.js +1 -1
  280. package/dist/esm/ic-empty-state_2.entry.js +9 -8
  281. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  282. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  283. package/dist/esm/ic-footer-link.entry.js +1 -1
  284. package/dist/esm/ic-footer.entry.js +1 -1
  285. package/dist/esm/ic-hero.entry.js +1 -1
  286. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  287. package/dist/{collection/components/ic-menu-with-multi/ic-menu.js → esm/ic-input-component-container_3.entry.js} +157 -727
  288. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -0
  289. package/dist/esm/ic-input-label_2.entry.js +81 -0
  290. package/dist/esm/ic-input-label_2.entry.js.map +1 -0
  291. package/dist/esm/ic-link.entry.js +1 -1
  292. package/dist/esm/ic-menu-group.entry.js +2 -2
  293. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  294. package/dist/esm/ic-menu-item.entry.js +2 -2
  295. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  296. package/dist/esm/ic-navigation-button.entry.js +1 -1
  297. package/dist/esm/ic-navigation-group.entry.js +2 -2
  298. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  299. package/dist/esm/ic-navigation-item.entry.js +1 -1
  300. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  301. package/dist/esm/ic-page-header.entry.js +5 -5
  302. package/dist/esm/ic-page-header.entry.js.map +1 -1
  303. package/dist/esm/ic-pagination_4.entry.js +148 -38
  304. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  305. package/dist/esm/ic-popover-menu.entry.js +9 -9
  306. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  307. package/dist/esm/ic-radio-group.entry.js +2 -2
  308. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  309. package/dist/esm/ic-radio-option.entry.js +27 -22
  310. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  311. package/dist/esm/ic-search-bar.entry.js +2 -2
  312. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  313. package/dist/esm/ic-side-navigation.entry.js +1 -1
  314. package/dist/esm/ic-status-tag.entry.js +1 -1
  315. package/dist/esm/ic-step.entry.js +1 -1
  316. package/dist/esm/ic-stepper.entry.js +1 -1
  317. package/dist/esm/ic-switch.entry.js +7 -4
  318. package/dist/esm/ic-switch.entry.js.map +1 -1
  319. package/dist/esm/ic-tab-group.entry.js +1 -1
  320. package/dist/esm/ic-tab-panel.entry.js +1 -1
  321. package/dist/esm/ic-tab.entry.js +1 -1
  322. package/dist/esm/ic-theme.entry.js +1 -1
  323. package/dist/esm/ic-toast.entry.js +1 -1
  324. package/dist/esm/ic-toggle-button.entry.js +1 -1
  325. package/dist/esm/ic-top-navigation.entry.js +1 -1
  326. package/dist/esm/ic-tree-item.entry.js +5 -3
  327. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  328. package/dist/esm/ic-tree-view.entry.js +10 -2
  329. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  330. package/dist/esm/ic-typography.entry.js +1 -1
  331. package/dist/esm/index-93509377.js +4 -12
  332. package/dist/esm/loader.js +1 -1
  333. package/dist/types/components/ic-data-table/ic-data-table.d.ts +2 -0
  334. package/dist/types/components/ic-date-input/ic-date-input.d.ts +4 -0
  335. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  336. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +5 -1
  337. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +5 -1
  338. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +5 -0
  339. package/dist/types/components.d.ts +46 -469
  340. package/dist/types/utils/helpers.d.ts +1 -1
  341. package/dist/types/utils/types.d.ts +1 -0
  342. package/hydrate/index.js +3612 -6848
  343. package/package.json +3 -3
  344. package/dist/cjs/helpers-33b42cd6.js.map +0 -1
  345. package/dist/cjs/helpers-6817cfbb.js.map +0 -1
  346. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +0 -156
  347. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +0 -1
  348. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +0 -2738
  349. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +0 -1
  350. package/dist/cjs/ic-menu.cjs.entry.js +0 -658
  351. package/dist/cjs/ic-menu.cjs.entry.js.map +0 -1
  352. package/dist/cjs/ic-select-with-multi.cjs.entry.js +0 -788
  353. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +0 -1
  354. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +0 -712
  355. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +0 -1
  356. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +0 -1057
  357. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +0 -1
  358. package/dist/collection/components/ic-select-with-multi/assets/Check.svg +0 -3
  359. package/dist/collection/components/ic-select-with-multi/assets/Clear.svg +0 -3
  360. package/dist/collection/components/ic-select-with-multi/assets/Expand.svg +0 -3
  361. package/dist/collection/components/ic-select-with-multi/ic-select.css +0 -695
  362. package/dist/collection/components/ic-select-with-multi/ic-select.js +0 -1520
  363. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +0 -1
  364. package/dist/collection/components/ic-select-with-multi/story-data.js +0 -216
  365. package/dist/collection/components/ic-select-with-multi/story-data.js.map +0 -1
  366. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +0 -1518
  367. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +0 -1
  368. package/dist/components/ic-menu-with-multi.d.ts +0 -11
  369. package/dist/components/ic-menu-with-multi.js +0 -8
  370. package/dist/components/ic-menu-with-multi.js.map +0 -1
  371. package/dist/components/ic-menu3.js +0 -2803
  372. package/dist/components/ic-menu3.js.map +0 -1
  373. package/dist/components/ic-select-with-multi.d.ts +0 -11
  374. package/dist/components/ic-select-with-multi.js +0 -906
  375. package/dist/components/ic-select-with-multi.js.map +0 -1
  376. package/dist/core/p-0894cab1.entry.js +0 -2
  377. package/dist/core/p-0894cab1.entry.js.map +0 -1
  378. package/dist/core/p-1e2aa8a6.entry.js +0 -2
  379. package/dist/core/p-1e2aa8a6.entry.js.map +0 -1
  380. package/dist/core/p-297e99cf.js +0 -2
  381. package/dist/core/p-297e99cf.js.map +0 -1
  382. package/dist/core/p-2ff4e283.entry.js +0 -2
  383. package/dist/core/p-2ff4e283.entry.js.map +0 -1
  384. package/dist/core/p-3db785f0.entry.js +0 -2
  385. package/dist/core/p-3db785f0.entry.js.map +0 -1
  386. package/dist/core/p-42883e4c.entry.js.map +0 -1
  387. package/dist/core/p-59028160.entry.js +0 -2
  388. package/dist/core/p-59028160.entry.js.map +0 -1
  389. package/dist/core/p-5b7dfe57.entry.js +0 -2
  390. package/dist/core/p-5b7dfe57.entry.js.map +0 -1
  391. package/dist/core/p-603fea14.entry.js +0 -2
  392. package/dist/core/p-603fea14.entry.js.map +0 -1
  393. package/dist/core/p-64933069.entry.js +0 -2
  394. package/dist/core/p-64933069.entry.js.map +0 -1
  395. package/dist/core/p-7c78f6c6.entry.js.map +0 -1
  396. package/dist/core/p-8df49808.entry.js +0 -2
  397. package/dist/core/p-8df49808.entry.js.map +0 -1
  398. package/dist/core/p-8f12659d.entry.js.map +0 -1
  399. package/dist/core/p-903ee57e.entry.js +0 -2
  400. package/dist/core/p-903ee57e.entry.js.map +0 -1
  401. package/dist/core/p-92e3ccb9.entry.js +0 -2
  402. package/dist/core/p-92e3ccb9.entry.js.map +0 -1
  403. package/dist/core/p-9397b15b.js.map +0 -1
  404. package/dist/core/p-9b54feca.entry.js +0 -2
  405. package/dist/core/p-9b54feca.entry.js.map +0 -1
  406. package/dist/core/p-acc76b80.entry.js +0 -2
  407. package/dist/core/p-acc76b80.entry.js.map +0 -1
  408. package/dist/core/p-c1e90c85.entry.js +0 -2
  409. package/dist/core/p-c1e90c85.entry.js.map +0 -1
  410. package/dist/core/p-cb63e656.entry.js +0 -2
  411. package/dist/core/p-cb63e656.entry.js.map +0 -1
  412. package/dist/core/p-d3c0bffb.entry.js.map +0 -1
  413. package/dist/core/p-da3e8c54.entry.js +0 -2
  414. package/dist/core/p-da3e8c54.entry.js.map +0 -1
  415. package/dist/core/p-ec53b435.entry.js +0 -2
  416. package/dist/core/p-ec53b435.entry.js.map +0 -1
  417. package/dist/core/p-fb7b99dd.entry.js +0 -2
  418. package/dist/core/p-fb7b99dd.entry.js.map +0 -1
  419. package/dist/esm/helpers-5bd2012a.js.map +0 -1
  420. package/dist/esm/helpers-dab8ddfe.js.map +0 -1
  421. package/dist/esm/ic-input-component-container_4.entry.js +0 -149
  422. package/dist/esm/ic-input-component-container_4.entry.js.map +0 -1
  423. package/dist/esm/ic-menu-with-multi.entry.js +0 -2734
  424. package/dist/esm/ic-menu-with-multi.entry.js.map +0 -1
  425. package/dist/esm/ic-menu.entry.js +0 -654
  426. package/dist/esm/ic-menu.entry.js.map +0 -1
  427. package/dist/esm/ic-select-with-multi.entry.js +0 -784
  428. package/dist/esm/ic-select-with-multi.entry.js.map +0 -1
  429. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +0 -214
  430. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +0 -259
  431. package/dist/types/components/ic-select-with-multi/story-data.d.ts +0 -32
  432. /package/dist/core/{p-c033e7d6.entry.js.map → p-036d251b.entry.js.map} +0 -0
  433. /package/dist/core/{p-d2e7a256.entry.js.map → p-13d2db9b.entry.js.map} +0 -0
  434. /package/dist/core/{p-42e0f3bd.entry.js.map → p-2257f5e8.entry.js.map} +0 -0
  435. /package/dist/core/{p-897b8d16.entry.js.map → p-24d03bbd.entry.js.map} +0 -0
  436. /package/dist/core/{p-a78cf2cb.entry.js.map → p-266098ee.entry.js.map} +0 -0
  437. /package/dist/core/{p-bb1252fa.entry.js.map → p-26613dbd.entry.js.map} +0 -0
  438. /package/dist/core/{p-77a32de5.entry.js.map → p-2a3bd99a.entry.js.map} +0 -0
  439. /package/dist/core/{p-7c268030.entry.js.map → p-48a78218.entry.js.map} +0 -0
  440. /package/dist/core/{p-202bc922.entry.js.map → p-5ad1a7fb.entry.js.map} +0 -0
  441. /package/dist/core/{p-f9810621.entry.js.map → p-5b061abc.entry.js.map} +0 -0
  442. /package/dist/core/{p-6beffd0e.entry.js.map → p-6727166b.entry.js.map} +0 -0
  443. /package/dist/core/{p-8ca2e329.entry.js.map → p-6dc00a8f.entry.js.map} +0 -0
  444. /package/dist/core/{p-d5ca3bcb.entry.js.map → p-7aa6b76e.entry.js.map} +0 -0
  445. /package/dist/core/{p-e5d99316.entry.js.map → p-7b90f0ae.entry.js.map} +0 -0
  446. /package/dist/core/{p-30b046b2.entry.js.map → p-7e5b0fff.entry.js.map} +0 -0
  447. /package/dist/core/{p-50019ede.entry.js.map → p-80b296cd.entry.js.map} +0 -0
  448. /package/dist/core/{p-eb65e556.entry.js.map → p-82aa8136.entry.js.map} +0 -0
  449. /package/dist/core/{p-2e49fb22.entry.js.map → p-83b4efe2.entry.js.map} +0 -0
  450. /package/dist/core/{p-5accf0bb.entry.js.map → p-878df16f.entry.js.map} +0 -0
  451. /package/dist/core/{p-1fe35de1.entry.js.map → p-8bec76d1.entry.js.map} +0 -0
  452. /package/dist/core/{p-1109636a.entry.js.map → p-94416b6b.entry.js.map} +0 -0
  453. /package/dist/core/{p-4dcc37e7.entry.js.map → p-a4439688.entry.js.map} +0 -0
  454. /package/dist/core/{p-130a05cf.entry.js.map → p-affd7f55.entry.js.map} +0 -0
  455. /package/dist/core/{p-486d8d43.entry.js.map → p-b3d93bc1.entry.js.map} +0 -0
  456. /package/dist/core/{p-c1698936.entry.js.map → p-bac2beeb.entry.js.map} +0 -0
  457. /package/dist/core/{p-53e00a8a.entry.js.map → p-c29b2b48.entry.js.map} +0 -0
  458. /package/dist/core/{p-ed4cde5a.entry.js.map → p-c40c57ee.entry.js.map} +0 -0
  459. /package/dist/core/{p-b0751bd9.entry.js.map → p-c6a62d1b.entry.js.map} +0 -0
  460. /package/dist/core/{p-0ab10600.entry.js.map → p-cc22644d.entry.js.map} +0 -0
  461. /package/dist/core/{p-28323849.entry.js.map → p-d5e9cf81.entry.js.map} +0 -0
  462. /package/dist/core/{p-505250cf.entry.js.map → p-d7632baf.entry.js.map} +0 -0
  463. /package/dist/core/{p-7c80d79c.entry.js.map → p-dcccd9c1.entry.js.map} +0 -0
  464. /package/dist/core/{p-d03374fc.entry.js.map → p-fbb5c8f2.entry.js.map} +0 -0
  465. /package/dist/core/{p-a9151d0b.entry.js.map → p-fc2f336d.entry.js.map} +0 -0
@@ -1,1057 +0,0 @@
1
- import { newSpecPage } from "@stencil/core/testing";
2
- import { Menu } from "../../ic-menu";
3
- import { IcInputComponentContainer } from "@ukic/web-components/dist/components/ic-input-component-container";
4
- import { testKeyboardEvent as keyboardEvent } from "@ukic/web-components/dist/types/testspec.setup";
5
- import { h } from "@stencil/core";
6
- import * as helpers from "@ukic/web-components/dist/types/utils/helpers";
7
- // These tests still use 'ic-select' and not 'ic-select-with-multi'
8
- // It does not matter as unit tests in the canary branch do not run anyway
9
- // And it saves converting them back when the multi-select is merged into the main branch
10
- // (Check the original multi-select branch, i.e. where the changes were added straight to the web-components folder, to see the tests working)
11
- const menuOptions = [
12
- { label: "Espresso", value: "espresso" },
13
- { label: "Double Espresso", value: "doubleespresso" },
14
- { label: "Flat White", value: "flatwhite" },
15
- {
16
- label: "Cappuccino",
17
- value: "cappuccino",
18
- description: "with chocolate is best!",
19
- },
20
- { label: "Americano", value: "americano" },
21
- { label: "Ameno", value: "ameno" },
22
- {
23
- label: "Tea",
24
- value: "tea",
25
- children: [{ label: "green", value: "green" }],
26
- },
27
- {
28
- label: "Aicano",
29
- value: "acano",
30
- icon: `<svg aria-labelledby="warning-title" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000"><g id="warning"><path id="Vector" d="M4.47 20.5037H19.53C21.07 20.5037 22.03 18.8337 21.26 17.5037L13.73 4.49375C12.96 3.16375 11.04 3.16375 10.27 4.49375L2.74 17.5037C1.97 18.8337 2.93 20.5037 4.47 20.5037ZM12 13.5037C11.45 13.5037 11 13.0537 11 12.5037V10.5037C11 9.95375 11.45 9.50375 12 9.50375C12.55 9.50375 13 9.95375 13 10.5037V12.5037C13 13.0537 12.55 13.5037 12 13.5037ZM13 17.5037H11V15.5037H13V17.5037Z" /></g></svg>`,
31
- },
32
- {
33
- label: "Mocha",
34
- value: "mocha",
35
- element: {
36
- component: `<ic-status-tag label="Neutral status"></ic-status-tag>`,
37
- ariaLabel: "Neutral status tag",
38
- },
39
- },
40
- ];
41
- const menuIdEspresso = "menu-id-espresso";
42
- const menuIdMocha = "menu-id-mocha";
43
- const IcSearchBar = "IC-SEARCH-BAR";
44
- const createMenu = () => {
45
- // create necessary elements before the page is created
46
- const div = window.document.createElement("div");
47
- const input = window.document.createElement("input");
48
- return newSpecPage({
49
- components: [Menu, IcInputComponentContainer],
50
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: div, value: menuOptions[0].value, parentEl: div })),
51
- });
52
- };
53
- beforeAll(() => {
54
- jest.spyOn(console, "warn").mockImplementation(jest.fn());
55
- });
56
- describe("ic-menu in isolation", () => {
57
- it("should render", async () => {
58
- const page = await createMenu();
59
- expect(page).toMatchSnapshot();
60
- });
61
- it("should set open prop to true by default", async () => {
62
- const page = await createMenu();
63
- expect(page.root.open).toBe(true);
64
- });
65
- it("should test ungroupedOptionsSet emitter", async () => {
66
- const page = await createMenu();
67
- const eventSpy = jest.fn();
68
- page.root.addEventListener("ungroupedOptionsSet", eventSpy);
69
- page.root.options = [];
70
- await page.waitForChanges();
71
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
72
- detail: expect.objectContaining({
73
- options: [],
74
- }),
75
- }));
76
- });
77
- it("should test menuOptionSelect emitter", async () => {
78
- const page = await createMenu();
79
- const eventSpy = jest.fn();
80
- page.root.addEventListener("menuOptionSelect", eventSpy);
81
- await page.waitForChanges();
82
- page.rootInstance.setInputValue(2);
83
- await page.waitForChanges();
84
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
85
- detail: expect.objectContaining({
86
- value: "flatwhite",
87
- }),
88
- }));
89
- });
90
- it("should test menuStateChange emitter", async () => {
91
- const page = await createMenu();
92
- const eventSpy = jest.fn();
93
- page.root.addEventListener("menuStateChange", eventSpy);
94
- await page.waitForChanges();
95
- const click = new MouseEvent("click", {
96
- bubbles: true,
97
- cancelable: true,
98
- });
99
- page.rootInstance.arrowBehaviour(click);
100
- await page.waitForChanges();
101
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
102
- detail: expect.objectContaining({
103
- open: true,
104
- }),
105
- }));
106
- });
107
- it("should test menuOptionId emitter", async () => {
108
- const page = await createMenu();
109
- const eventSpy = jest.fn();
110
- page.root.addEventListener("menuOptionId", eventSpy);
111
- await page.waitForChanges();
112
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
113
- await page.waitForChanges();
114
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
115
- detail: expect.objectContaining({
116
- optionId: menuIdEspresso,
117
- }),
118
- }));
119
- });
120
- it("should test menuKeyPress emitter", async () => {
121
- const page = await createMenu();
122
- const eventSpy = jest.fn();
123
- page.root.addEventListener("menuKeyPress", eventSpy);
124
- await page.waitForChanges();
125
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Home"));
126
- await page.waitForChanges();
127
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
128
- detail: expect.objectContaining({
129
- isNavKey: true,
130
- key: "Home",
131
- }),
132
- }));
133
- });
134
- it("should test setNextOptionValue function", async () => {
135
- const page = await createMenu();
136
- const eventSpy = jest.fn();
137
- page.root.addEventListener("menuOptionSelect", eventSpy);
138
- page.rootInstance.setNextOptionValue(15);
139
- await page.waitForChanges();
140
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
141
- detail: expect.objectContaining({
142
- value: "espresso",
143
- }),
144
- }));
145
- });
146
- it("should test setPreviousOptionValue function", async () => {
147
- const page = await createMenu();
148
- const eventSpy = jest.fn();
149
- page.root.addEventListener("menuOptionSelect", eventSpy);
150
- await page.waitForChanges();
151
- page.rootInstance.setPreviousOptionValue(4);
152
- await page.waitForChanges();
153
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
154
- detail: expect.objectContaining({
155
- value: "cappuccino",
156
- }),
157
- }));
158
- });
159
- it("should test handleClickOpen function", async () => {
160
- const page = await createMenu();
161
- const eventSpy = jest.fn();
162
- page.root.addEventListener("menuStateChange", eventSpy);
163
- page.root.open = false;
164
- await page.waitForChanges();
165
- await page.rootInstance.handleClickOpen();
166
- await page.waitForChanges();
167
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
168
- detail: expect.objectContaining({
169
- open: true,
170
- }),
171
- }));
172
- });
173
- it("should test handleKeyboardOpen function", async () => {
174
- const page = await createMenu();
175
- page.root.open = false;
176
- const eventSpy = jest.fn();
177
- page.root.addEventListener("menuStateChange", eventSpy);
178
- page.root.addEventListener("menuOptionId", eventSpy);
179
- await page.waitForChanges();
180
- await page.rootInstance.handleKeyboardOpen(keyboardEvent("ArrowDown"));
181
- await page.waitForChanges();
182
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
183
- detail: expect.objectContaining({
184
- open: true,
185
- }),
186
- }));
187
- page.root.open = false;
188
- page.root.activationType = "manual";
189
- await page.waitForChanges();
190
- await page.rootInstance.handleKeyboardOpen(keyboardEvent("ArrowDown"));
191
- await page.waitForChanges();
192
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
193
- detail: expect.objectContaining({
194
- optionId: menuIdEspresso,
195
- }),
196
- }));
197
- });
198
- it("should test autoSetInputValueKeyboardOpen function", async () => {
199
- const page = await createMenu();
200
- const eventSpy = jest.fn();
201
- const inputEl = page.rootInstance.inputEl;
202
- page.root.addEventListener("menuOptionSelect", eventSpy);
203
- page.root.addEventListener("menuStateChange", eventSpy);
204
- inputEl.addEventListener("focus", eventSpy);
205
- page.root.open = false;
206
- await page.waitForChanges();
207
- await page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
208
- await page.waitForChanges();
209
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
210
- detail: expect.objectContaining({
211
- optionId: menuIdMocha,
212
- }),
213
- }));
214
- page.rootInstance.open = false;
215
- await page.waitForChanges();
216
- await page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("Enter"));
217
- await page.waitForChanges();
218
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
219
- detail: expect.objectContaining({
220
- open: true,
221
- focusInput: undefined,
222
- }),
223
- }));
224
- page.rootInstance.open = false;
225
- await page.waitForChanges();
226
- await page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent(" "));
227
- await page.waitForChanges();
228
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
229
- detail: expect.objectContaining({
230
- open: true,
231
- focusInput: undefined,
232
- }),
233
- }));
234
- });
235
- it("should test autoSetInputValueKeyboardOpen function with character keys", async () => {
236
- const page = await createMenu();
237
- page.root.options = menuOptions;
238
- await page.waitForChanges();
239
- page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("e"));
240
- page.rootInstance.autoSetInputValueKeyboardOpen(keyboardEvent("s"));
241
- await page.waitForChanges();
242
- expect(page.root.value).toBe("espresso");
243
- });
244
- it("should test manualSetInputValueKeyboardOpen function", async () => {
245
- const searchBar = window.document.createElement(IcSearchBar);
246
- const input = window.document.createElement("input");
247
- const searchMenuOptions = JSON.parse(JSON.stringify(menuOptions));
248
- searchMenuOptions[3].disabled = true;
249
- searchBar.setFocus = jest.fn();
250
- const page = await newSpecPage({
251
- components: [Menu, IcInputComponentContainer],
252
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: searchMenuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchBar, value: searchMenuOptions[0].value, parentEl: searchBar })),
253
- });
254
- const eventSpy = jest.fn();
255
- page.root.addEventListener("menuOptionId", eventSpy);
256
- page.root.addEventListener("menuOptionSelect", eventSpy);
257
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
258
- await page.waitForChanges();
259
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
260
- detail: expect.objectContaining({
261
- optionId: menuIdMocha,
262
- }),
263
- }));
264
- page.rootInstance.setHighlightedOption(3);
265
- await page.waitForChanges();
266
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
267
- await page.waitForChanges();
268
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
269
- detail: expect.objectContaining({
270
- optionId: "menu-id-flatwhite",
271
- }),
272
- }));
273
- page.rootInstance.setHighlightedOption(0);
274
- await page.waitForChanges();
275
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
276
- await page.waitForChanges();
277
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
278
- detail: expect.objectContaining({
279
- optionId: "menu-id-doubleespresso",
280
- }),
281
- }));
282
- page.rootInstance.setHighlightedOption(8);
283
- await page.waitForChanges();
284
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
285
- await page.waitForChanges();
286
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
287
- detail: expect.objectContaining({
288
- optionId: menuIdEspresso,
289
- }),
290
- }));
291
- page.rootInstance.setHighlightedOption(2);
292
- await page.waitForChanges();
293
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
294
- await page.waitForChanges();
295
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
296
- detail: expect.objectContaining({
297
- value: "flatwhite",
298
- }),
299
- }));
300
- page.rootInstance.setHighlightedOption(2);
301
- await page.waitForChanges();
302
- const eventSpy2 = jest.fn();
303
- page.root.addEventListener("menuOptionId", eventSpy2);
304
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
305
- await page.waitForChanges();
306
- expect(eventSpy2).toHaveBeenCalledWith(expect.objectContaining({
307
- detail: expect.objectContaining({
308
- optionId: "menu-id-cappuccino",
309
- }),
310
- }));
311
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
312
- await page.waitForChanges();
313
- expect(page.rootInstance.disabledOptionSelected).toBe(true);
314
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Escape"));
315
- await page.waitForChanges();
316
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
317
- detail: expect.objectContaining({
318
- optionId: undefined,
319
- }),
320
- }));
321
- page.rootInstance.preventIncorrectTabOrder = false;
322
- await page.waitForChanges();
323
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
324
- await page.waitForChanges();
325
- expect(page.rootInstance.preventIncorrectTabOrder).toBe(true);
326
- page.rootInstance.preventIncorrectTabOrder = false;
327
- await page.waitForChanges();
328
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Tab"));
329
- await page.waitForChanges();
330
- expect(page.rootInstance.preventIncorrectTabOrder).toBe(true);
331
- page.rootInstance.preventIncorrectTabOrder = false;
332
- page.rootInstance.isSearchBar = true;
333
- page.rootInstance.setHighlightedOption(4);
334
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
335
- await page.waitForChanges();
336
- expect(page.rootInstance.optionHighlighted).toBe("espresso");
337
- page.rootInstance.setHighlightedOption(6);
338
- await page.waitForChanges();
339
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("KeyF"));
340
- await page.waitForChanges();
341
- expect(page.rootInstance.optionHighlighted).toBe("espresso");
342
- page.rootInstance.setHighlightedOption(2);
343
- await page.waitForChanges();
344
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Home"));
345
- await page.waitForChanges();
346
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
347
- detail: expect.objectContaining({
348
- optionId: menuIdEspresso,
349
- }),
350
- }));
351
- await page.waitForChanges();
352
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("End"));
353
- await page.waitForChanges();
354
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
355
- detail: expect.objectContaining({
356
- optionId: menuIdMocha,
357
- }),
358
- }));
359
- });
360
- it("should test manualSetInputValueKeyboardOpen function when searchable select", async () => {
361
- const searchableSelect = window.document.createElement("IC-SELECT");
362
- const input = window.document.createElement("input");
363
- searchableSelect.setFocus = jest.fn();
364
- searchableSelect.searchable = true;
365
- const page = await newSpecPage({
366
- components: [Menu, IcInputComponentContainer],
367
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchableSelect, value: menuOptions[0].value, parentEl: searchableSelect })),
368
- });
369
- page.rootInstance.isSearchableSelect = true;
370
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
371
- await page.waitForChanges();
372
- expect(searchableSelect.setFocus).toHaveBeenCalled();
373
- });
374
- it("should test manualSetInputValueKeyboardOpen function when searchbar", async () => {
375
- const select = window.document.createElement("IC-SELECT");
376
- const input = window.document.createElement("input");
377
- select.setFocus = jest.fn();
378
- const page = await newSpecPage({
379
- components: [Menu, IcInputComponentContainer],
380
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: select, value: menuOptions[0].value, parentEl: select })),
381
- });
382
- page.rootInstance.isSearchBar = true;
383
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Backspace"));
384
- await page.waitForChanges();
385
- expect(select.setFocus).toHaveBeenCalled();
386
- });
387
- it("should test manualSetInputValueKeyboardOpen function when default parameter passed", async () => {
388
- const select = window.document.createElement("IC-SELECT");
389
- const input = window.document.createElement("input");
390
- select.setFocus = jest.fn();
391
- const page = await newSpecPage({
392
- components: [Menu, IcInputComponentContainer],
393
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: select, value: menuOptions[0].value, parentEl: select })),
394
- });
395
- page.rootInstance.isSearchBar = false;
396
- page.rootInstance.isSearchableSelect = true;
397
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("KeyR"));
398
- await page.waitForChanges();
399
- expect(page.rootInstance.value).toBe(menuOptions[0].value);
400
- });
401
- it("should test manualSetInputValueKeyboardOpen function when multi-select", async () => {
402
- const multiSelect = window.document.createElement("IC-SELECT");
403
- const input = window.document.createElement("input");
404
- const page = await newSpecPage({
405
- components: [Menu, IcInputComponentContainer],
406
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
407
- });
408
- jest
409
- .spyOn(page.rootInstance, "selectHighlightedOption")
410
- .mockImplementation();
411
- jest
412
- .spyOn(page.rootInstance, "getMenuOptions")
413
- .mockImplementation(() => menuOptions);
414
- page.rootInstance.isMultiSelect = true;
415
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent(" "));
416
- await page.waitForChanges();
417
- expect(page.rootInstance.selectHighlightedOption).toHaveBeenCalledWith({
418
- id: "key-id",
419
- }, menuOptions, -1);
420
- jest.spyOn(page.rootInstance, "setHighlightedOption").mockImplementation();
421
- page.rootInstance.multiOptionClicked = menuOptions[0].value;
422
- await page.waitForChanges();
423
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
424
- await page.waitForChanges();
425
- expect(page.rootInstance.setHighlightedOption).toHaveBeenCalledWith(0);
426
- expect(page.rootInstance.multiOptionClicked).toBe(null);
427
- page.rootInstance.multiOptionClicked = menuOptions[0].value;
428
- await page.waitForChanges();
429
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
430
- await page.waitForChanges();
431
- expect(page.rootInstance.setHighlightedOption).toHaveBeenCalledWith(0);
432
- expect(page.rootInstance.multiOptionClicked).toBe(null);
433
- jest.spyOn(page.rootInstance, "emitSelectAll").mockImplementation();
434
- jest.spyOn(helpers, "isMacDevice").mockImplementation(() => true);
435
- await page.rootInstance.manualSetInputValueKeyboardOpen({
436
- key: "a",
437
- preventDefault: () => null,
438
- stopImmediatePropagation: () => null,
439
- metaKey: true,
440
- target: {
441
- id: "key-id",
442
- },
443
- });
444
- await page.waitForChanges();
445
- expect(page.rootInstance.emitSelectAll).toHaveBeenCalled();
446
- jest.spyOn(helpers, "isMacDevice").mockImplementation(() => false);
447
- await page.rootInstance.manualSetInputValueKeyboardOpen({
448
- key: "a",
449
- preventDefault: () => null,
450
- stopImmediatePropagation: () => null,
451
- ctrlKey: true,
452
- target: {
453
- id: "key-id",
454
- },
455
- });
456
- await page.waitForChanges();
457
- expect(page.rootInstance.emitSelectAll).toHaveBeenCalledTimes(2);
458
- page.rootInstance.optionHighlighted = "doubleespresso";
459
- page.rootInstance.multiOptionClicked = null;
460
- await page.rootInstance.manualSetInputValueKeyboardOpen({
461
- key: "ArrowDown",
462
- preventDefault: () => null,
463
- stopImmediatePropagation: () => null,
464
- shiftKey: true,
465
- target: {
466
- id: "key-id",
467
- },
468
- });
469
- await page.waitForChanges();
470
- expect(page.rootInstance.selectHighlightedOption).toHaveBeenCalledWith({
471
- id: "key-id",
472
- }, menuOptions, 1);
473
- const eventSpy = jest.fn();
474
- page.rootInstance.selectAllButton.addEventListener("focus", eventSpy);
475
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Tab"));
476
- await page.waitForChanges();
477
- expect(eventSpy).toHaveBeenCalled();
478
- expect(page.rootInstance.menu.tabIndex).toBe(-1);
479
- expect(page.rootInstance.preventClickOpen).toBe(true);
480
- expect(page.rootInstance.optionHighlighted).toBe(undefined);
481
- });
482
- it("should test manualSetInputValueKeyboardOpen function when select on enter", async () => {
483
- const select = window.document.createElement("IC-SELECT");
484
- const input = window.document.createElement("input");
485
- select.selectOnEnter = true;
486
- const page = await newSpecPage({
487
- components: [Menu, IcInputComponentContainer],
488
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: select, value: menuOptions[0].value, parentEl: select })),
489
- });
490
- const eventSpy = jest.fn();
491
- page.root.addEventListener("menuOptionSelect", eventSpy);
492
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
493
- await page.waitForChanges();
494
- expect(eventSpy).not.toHaveBeenCalled();
495
- page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Enter"));
496
- await page.waitForChanges();
497
- expect(eventSpy).toHaveBeenCalled();
498
- });
499
- it("should test setInputValue function when default parameter passed", async () => {
500
- const select = window.document.createElement("IC-SELECT");
501
- const input = window.document.createElement("input");
502
- select.setFocus = jest.fn();
503
- const page = await newSpecPage({
504
- components: [Menu, IcInputComponentContainer],
505
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: select, value: menuOptions[0].value, parentEl: select })),
506
- });
507
- page.rootInstance.hasTimedOut = true;
508
- page.rootInstance.setInputValue(35);
509
- await page.waitForChanges();
510
- expect(select.setFocus).toHaveBeenCalled();
511
- });
512
- it("should test handleSubmitSearch function", async () => {
513
- const page = await createMenu();
514
- const eventSpy = jest.fn();
515
- page.root.addEventListener("menuOptionSelect", eventSpy);
516
- page.rootInstance.optionHighlighted = "americano";
517
- await page.waitForChanges();
518
- const event = new CustomEvent("icSubmitSearch", {
519
- detail: {
520
- value: "americano",
521
- },
522
- });
523
- page.root.parentEl.dispatchEvent(event);
524
- await page.waitForChanges();
525
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Enter"));
526
- await page.waitForChanges();
527
- expect(eventSpy).toHaveBeenCalled();
528
- });
529
- it("should test handleSetFirstOption function", async () => {
530
- const page = await createMenu();
531
- const eventSpy = jest.fn();
532
- page.root.addEventListener("menuOptionSelect", eventSpy);
533
- page.root.options = menuOptions;
534
- await page.waitForChanges();
535
- page.rootInstance.optionHighlighted = "americano";
536
- await page.waitForChanges();
537
- await page.rootInstance.handleSetFirstOption();
538
- await page.waitForChanges();
539
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Enter"));
540
- await page.waitForChanges();
541
- expect(page.rootInstance.optionHighlighted).toBe("espresso");
542
- });
543
- it("should test handleClearListener function", async () => {
544
- const page = await createMenu();
545
- const eventSpy = jest.fn();
546
- page.root.addEventListener("menuOptionSelect", eventSpy);
547
- page.rootInstance.optionHighlighted = "americano";
548
- await page.waitForChanges();
549
- await page.rootInstance.handleClearListener();
550
- await page.waitForChanges();
551
- expect(page.rootInstance.optionHighlighted).toBe("");
552
- });
553
- it("should test handleOptionClick function", async () => {
554
- const page = await createMenu();
555
- const eventSpy = jest.fn();
556
- page.root.addEventListener("menuOptionSelect", eventSpy);
557
- const el = page.rootInstance.menu.childNodes[1];
558
- const event = { target: el, shiftKey: false };
559
- await page.waitForChanges();
560
- page.rootInstance.handleOptionClick(event);
561
- await page.waitForChanges();
562
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
563
- detail: {
564
- value: "doubleespresso",
565
- label: "Double Espresso",
566
- },
567
- }));
568
- page.rootInstance.isMultiSelect = true;
569
- await page.waitForChanges();
570
- await page.rootInstance.handleOptionClick(event);
571
- expect(page.rootInstance.multiOptionClicked).toBe("doubleespresso");
572
- page.rootInstance.value = ["espresso", "flatwhite", "cappuccino"];
573
- page.rootInstance.isMultiSelect = true;
574
- page.rootInstance.multiOptionClicked = null;
575
- event.shiftKey = true;
576
- await page.waitForChanges();
577
- await page.rootInstance.handleOptionClick(event);
578
- expect(page.rootInstance.multiOptionClicked).toBe("doubleespresso");
579
- });
580
- it("should test handleBlur function", async () => {
581
- const page = await createMenu();
582
- const eventSpy = jest.fn();
583
- const event = new FocusEvent("blur");
584
- page.root.addEventListener("menuStateChange", eventSpy);
585
- page.rootInstance.handleBlur(event);
586
- await page.waitForChanges();
587
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
588
- detail: {
589
- open: false,
590
- focusInput: false,
591
- },
592
- }));
593
- const inputEl = page.root.inputEl;
594
- const eventTwo = new FocusEvent("blur", { relatedTarget: inputEl });
595
- page.rootInstance.handleBlur(eventTwo);
596
- await page.waitForChanges();
597
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
598
- detail: {
599
- open: false,
600
- focusInput: undefined,
601
- },
602
- }));
603
- });
604
- it("should test handleMouseDown function", async () => {
605
- const page = await createMenu();
606
- const eventSpy = jest.fn();
607
- page.root.addEventListener("preventDefault", eventSpy);
608
- const event = new Event("click");
609
- event.preventDefault = eventSpy;
610
- await page.waitForChanges();
611
- page.rootInstance.handleMouseDown(event);
612
- await page.waitForChanges();
613
- expect(eventSpy).toHaveBeenCalled();
614
- });
615
- it("should test handleMenuKeyDown function", async () => {
616
- const page = await createMenu();
617
- const eventSpy = jest.fn();
618
- page.root.addEventListener("menuOptionSelect", eventSpy);
619
- page.rootInstance.handleMenuKeyDown(keyboardEvent("ArrowDown"));
620
- await page.waitForChanges();
621
- page.rootInstance.handleMenuKeyDown(keyboardEvent("ArrowDown"));
622
- await page.waitForChanges();
623
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
624
- detail: expect.objectContaining({
625
- value: "doubleespresso",
626
- }),
627
- }));
628
- });
629
- it("should test searchMode=`query", async () => {
630
- const page = await createMenu();
631
- page.rootInstance.searchMode = "query";
632
- await page.waitForChanges();
633
- page.rootInstance.handleMenuKeyDown(keyboardEvent("F"));
634
- expect(page.rootInstance.optionHighlighted).toBeUndefined;
635
- });
636
- it("should test handleMenuKeyDown function as searchableSelect", async () => {
637
- const page = await createMenu();
638
- page.rootInstance.activationType = "manual";
639
- page.rootInstance.isSearchableSelect = true;
640
- const eventSpy = jest.fn();
641
- page.root.addEventListener("menuOptionId", eventSpy);
642
- page.rootInstance.handleMenuKeyDown(keyboardEvent("ArrowDown"));
643
- await page.waitForChanges();
644
- expect(eventSpy).toHaveBeenCalled();
645
- });
646
- it("should test handleRetry function", async () => {
647
- const page = await createMenu();
648
- const eventSpy = jest.fn();
649
- page.root.addEventListener("retryButtonClicked", eventSpy);
650
- page.rootInstance.handleRetry();
651
- await page.waitForChanges();
652
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
653
- detail: expect.objectContaining({
654
- value: "espresso",
655
- }),
656
- }));
657
- });
658
- it("should test handleRetryKeyDown function", async () => {
659
- const page = await createMenu();
660
- const eventSpy = jest.fn();
661
- page.root.addEventListener("retryButtonClicked", eventSpy);
662
- page.rootInstance.handleRetryKeyDown(keyboardEvent("Enter"));
663
- await page.waitForChanges();
664
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
665
- detail: expect.objectContaining({
666
- value: "espresso",
667
- keyPressed: "Enter",
668
- }),
669
- }));
670
- });
671
- it("should test autoSetValueOnMenuKeyDown - Shift - function", async () => {
672
- const page = await createMenu();
673
- const inputEl = page.rootInstance.inputEl;
674
- const eventSpy = jest.fn();
675
- page.root.addEventListener("menuOptionSelect", eventSpy);
676
- inputEl.addEventListener("focus", eventSpy);
677
- await page.waitForChanges();
678
- await page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Shift"));
679
- await page.waitForChanges();
680
- expect(eventSpy).not.toHaveBeenCalled();
681
- });
682
- it("should test autoSetValueOnMenuKeyDown function", async () => {
683
- const page = await createMenu();
684
- const inputEl = page.rootInstance.inputEl;
685
- const eventSpy = jest.fn();
686
- page.root.addEventListener("menuOptionSelect", eventSpy);
687
- inputEl.addEventListener("focus", eventSpy);
688
- page.root.addEventListener("menuStateChange", eventSpy);
689
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("ArrowUp"));
690
- await page.waitForChanges();
691
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
692
- detail: expect.objectContaining({
693
- value: "mocha",
694
- }),
695
- }));
696
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("End"));
697
- await page.waitForChanges();
698
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
699
- detail: expect.objectContaining({
700
- value: "mocha",
701
- }),
702
- }));
703
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Backspace"));
704
- await page.waitForChanges();
705
- expect(eventSpy).toHaveBeenCalled();
706
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("d"));
707
- await page.waitForChanges();
708
- expect(eventSpy).toHaveBeenCalledTimes(4);
709
- const preDef = jest.fn();
710
- const spaceKey = {
711
- key: ` `,
712
- preventDefault: preDef,
713
- shiftKey: false,
714
- target: {
715
- id: "key-id",
716
- },
717
- };
718
- await page.rootInstance.autoSetValueOnMenuKeyDown(spaceKey);
719
- await page.waitForChanges();
720
- expect(spaceKey.preventDefault).toHaveBeenCalled();
721
- page.rootInstance.autoSetValueOnMenuKeyDown(keyboardEvent("Escape"));
722
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
723
- detail: expect.objectContaining({
724
- open: false,
725
- focusInput: undefined,
726
- }),
727
- }));
728
- });
729
- it("should test handleMenukeyUp function", async () => {
730
- const page = await createMenu();
731
- page.rootInstance.preventClickOpen = true;
732
- let key = keyboardEvent("Tab");
733
- key.shiftKey = true;
734
- await page.waitForChanges();
735
- page.rootInstance.handleMenuKeyUp(key);
736
- await page.waitForChanges();
737
- expect(page.rootInstance.preventClickOpen).toBe(false);
738
- page.rootInstance.disabledOptionSelected = true;
739
- key = keyboardEvent("Enter");
740
- await page.waitForChanges();
741
- page.rootInstance.handleMenuKeyUp(key);
742
- await page.waitForChanges();
743
- expect(page.rootInstance.disabledOptionSelected).toBe(false);
744
- key = keyboardEvent("Shift");
745
- await page.waitForChanges();
746
- page.rootInstance.handleMenuKeyUp(key);
747
- await page.waitForChanges();
748
- expect(page.rootInstance.shiftPressed).toBe(false);
749
- });
750
- it("should test connectedCallback function", async () => {
751
- const searchBar = window.document.createElement(IcSearchBar);
752
- const input = window.document.createElement("input");
753
- const page = await newSpecPage({
754
- components: [Menu, IcInputComponentContainer],
755
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchBar, value: menuOptions[0].value, parentEl: searchBar })),
756
- });
757
- expect(page.rootInstance.optionHighlighted).toBe("espresso");
758
- });
759
- it("should test disconnectedCallback function", async () => {
760
- const page = await createMenu();
761
- await page.waitForChanges();
762
- expect(page.rootInstance.parentEl.__listeners[1].type).toBe("icSubmitSearch");
763
- page.rootInstance.disconnectedCallback();
764
- await page.waitForChanges();
765
- expect(page.rootInstance.parentEl.__listeners.length).toBe(0);
766
- });
767
- it("should test componentDidLoad function", async () => {
768
- const searchBar = window.document.createElement(IcSearchBar);
769
- const input = window.document.createElement("input");
770
- searchBar.disableAutoFiltering = true;
771
- const page = await newSpecPage({
772
- components: [Menu, IcInputComponentContainer],
773
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: searchBar, value: menuOptions[0].value, parentEl: searchBar })),
774
- });
775
- page.rootInstance.focusFromSearchKeypress = false;
776
- page.rootInstance.componentDidLoad();
777
- await page.waitForChanges();
778
- expect(page.rootInstance.focusFromSearchKeypress).toBe(true);
779
- });
780
- it("should test getParentEl function", async () => {
781
- const select = window.document.createElement("ic-select");
782
- select.searchable = true;
783
- select.setAttribute("searchable", "true");
784
- const page = await createMenu();
785
- page.rootInstance.getParentEl(select);
786
- await page.waitForChanges();
787
- expect(page.rootInstance.isSearchableSelect).toBe(true);
788
- });
789
- it("should test handleTimeoutBlur function", async () => {
790
- const page = await createMenu();
791
- const eventSpy = jest.fn();
792
- page.root.addEventListener("timeoutBlur", eventSpy);
793
- const event = new FocusEvent("blur");
794
- page.rootInstance.handleTimeoutBlur(event);
795
- await page.waitForChanges();
796
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
797
- detail: expect.objectContaining({
798
- ev: expect.objectContaining({
799
- type: "blur",
800
- }),
801
- }),
802
- }));
803
- });
804
- it("should test handleMenuChange function when multi-select", async () => {
805
- const page = await createMenu();
806
- page.rootInstance.optionHighlighted = "espresso";
807
- page.rootInstance.isMultiSelect = true;
808
- await page.waitForChanges();
809
- expect(page.rootInstance.optionHighlighted).toBe("espresso");
810
- await page.rootInstance.handleMenuChange(false);
811
- await page.waitForChanges();
812
- expect(page.rootInstance.optionHighlighted).toBe(undefined);
813
- });
814
- it("should test selectHighlightedOption function when multi-select", async () => {
815
- const page = await createMenu();
816
- page.rootInstance.open = false;
817
- page.rootInstance.isMultiSelect = true;
818
- jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
819
- await page.waitForChanges();
820
- await page.rootInstance.selectHighlightedOption({ target: "test-id" }, menuOptions, 0);
821
- await page.waitForChanges();
822
- expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(true);
823
- });
824
- it("should test selectHighlightedOption function when multi-select", async () => {
825
- const page = await createMenu();
826
- page.rootInstance.open = false;
827
- page.rootInstance.isMultiSelect = true;
828
- jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
829
- await page.waitForChanges();
830
- await page.rootInstance.selectHighlightedOption({ target: "test-id" }, menuOptions, 0);
831
- await page.waitForChanges();
832
- expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(true);
833
- });
834
- it("should test handleSelectAllClick function", async () => {
835
- const page = await createMenu();
836
- page.rootInstance.menu.tabIndex = -1;
837
- const eventSpy = jest.fn();
838
- page.rootInstance.menu.addEventListener("focus", eventSpy);
839
- jest.spyOn(page.rootInstance, "emitSelectAll").mockImplementation();
840
- await page.rootInstance.handleSelectAllClick();
841
- expect(eventSpy).toHaveBeenCalled();
842
- expect(page.rootInstance.emitSelectAll).toHaveBeenCalled();
843
- });
844
- it("should test handleSelectAllBlur function", async () => {
845
- const multiSelect = window.document.createElement("IC-SELECT");
846
- const input = window.document.createElement("input");
847
- const page = await newSpecPage({
848
- components: [Menu, IcInputComponentContainer],
849
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
850
- });
851
- jest.spyOn(page.rootInstance, "handleMenuChange").mockImplementation();
852
- const option = await page.root.querySelector("li");
853
- await page.rootInstance.handleSelectAllBlur({ relatedTarget: option });
854
- await page.waitForChanges();
855
- expect(page.rootInstance.handleMenuChange).not.toHaveBeenCalled();
856
- await page.rootInstance.handleSelectAllBlur({ relatedTarget: input });
857
- await page.waitForChanges();
858
- expect(page.rootInstance.handleMenuChange).toHaveBeenCalledWith(false, false);
859
- });
860
- it("should test handleSelectAllFocus function", async () => {
861
- const page = await createMenu();
862
- await page.rootInstance.handleSelectAllFocus();
863
- expect(page.root).toMatchSnapshot();
864
- });
865
- it("should test emitSelectAll function", async () => {
866
- const page = await createMenu();
867
- const eventSpy = jest.fn();
868
- page.root.addEventListener("menuOptionSelectAll", eventSpy);
869
- await page.rootInstance.emitSelectAll();
870
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
871
- detail: expect.objectContaining({
872
- select: true,
873
- }),
874
- }));
875
- page.rootInstance.value = ["espresso"];
876
- await page.waitForChanges();
877
- await page.rootInstance.emitSelectAll();
878
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
879
- detail: expect.objectContaining({
880
- select: true,
881
- }),
882
- }));
883
- page.rootInstance.value = [
884
- "espresso",
885
- "doubleespresso",
886
- "flatwhite",
887
- "cappuccino",
888
- "americano",
889
- "ameno",
890
- "green",
891
- "acano",
892
- "mocha",
893
- ];
894
- await page.waitForChanges();
895
- await page.rootInstance.emitSelectAll();
896
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
897
- detail: expect.objectContaining({
898
- select: false,
899
- }),
900
- }));
901
- });
902
- it("should test handleSelectAllMouseDown", async () => {
903
- const page = await createMenu();
904
- const eventSpy = jest.fn();
905
- page.root.addEventListener("preventDefault", eventSpy);
906
- const event = new Event("click");
907
- event.preventDefault = eventSpy;
908
- await page.rootInstance.handleSelectAllMouseDown(event);
909
- expect(eventSpy).toHaveBeenCalled();
910
- });
911
- it("tests deselection of options when pressing ArrowDown after Shift", async () => {
912
- const multiSelect = window.document.createElement("IC-SELECT");
913
- const input = window.document.createElement("input");
914
- const page = await newSpecPage({
915
- components: [Menu, IcInputComponentContainer],
916
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
917
- });
918
- page.rootInstance.isMultiSelect = true;
919
- jest
920
- .spyOn(page.rootInstance, "deselectSelectedOptions")
921
- .mockImplementation();
922
- page.rootInstance.value = [
923
- "espresso",
924
- "doubleespresso",
925
- "flatwhite",
926
- "cappuccino",
927
- "americano",
928
- "ameno",
929
- "green",
930
- "acano",
931
- "mocha",
932
- ];
933
- await page.waitForChanges();
934
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
935
- await page.waitForChanges();
936
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowDown"));
937
- await page.waitForChanges();
938
- expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
939
- -1, 0,
940
- ]);
941
- });
942
- it("tests deselection of options when pressing ArrowUp after Shift", async () => {
943
- const multiSelect = window.document.createElement("IC-SELECT");
944
- const input = window.document.createElement("input");
945
- const page = await newSpecPage({
946
- components: [Menu, IcInputComponentContainer],
947
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
948
- });
949
- page.rootInstance.isMultiSelect = true;
950
- jest
951
- .spyOn(page.rootInstance, "deselectSelectedOptions")
952
- .mockImplementation();
953
- page.rootInstance.value = [
954
- "espresso",
955
- "doubleespresso",
956
- "flatwhite",
957
- "cappuccino",
958
- "americano",
959
- "ameno",
960
- "green",
961
- "acano",
962
- "mocha",
963
- ];
964
- await page.waitForChanges();
965
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("Shift"));
966
- await page.waitForChanges();
967
- await page.rootInstance.manualSetInputValueKeyboardOpen(keyboardEvent("ArrowUp"));
968
- await page.waitForChanges();
969
- expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
970
- -1, 8,
971
- ]);
972
- });
973
- it("tests selection of options when pressing Home or End with Shift & Ctrl", async () => {
974
- const multiSelect = window.document.createElement("IC-SELECT");
975
- const input = window.document.createElement("input");
976
- const page = await newSpecPage({
977
- components: [Menu, IcInputComponentContainer],
978
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
979
- });
980
- page.rootInstance.isMultiSelect = true;
981
- jest
982
- .spyOn(page.rootInstance, "handleMultipleShiftSelect")
983
- .mockImplementation();
984
- page.rootInstance.value = [
985
- "espresso",
986
- "doubleespresso",
987
- "flatwhite",
988
- "cappuccino",
989
- "americano",
990
- "ameno",
991
- "green",
992
- "acano",
993
- "mocha",
994
- ];
995
- await page.waitForChanges();
996
- await page.rootInstance.manualSetInputValueKeyboardOpen({
997
- key: "End",
998
- preventDefault: () => null,
999
- stopImmediatePropagation: () => null,
1000
- ctrlKey: true,
1001
- shiftKey: true,
1002
- target: {
1003
- id: "key-id",
1004
- },
1005
- });
1006
- expect(page.rootInstance.handleMultipleShiftSelect).toHaveBeenCalledWith(8);
1007
- await page.rootInstance.manualSetInputValueKeyboardOpen({
1008
- key: "Home",
1009
- preventDefault: () => null,
1010
- stopImmediatePropagation: () => null,
1011
- ctrlKey: true,
1012
- shiftKey: true,
1013
- target: {
1014
- id: "key-id",
1015
- },
1016
- });
1017
- expect(page.rootInstance.handleMultipleShiftSelect).toHaveBeenCalledWith(0);
1018
- });
1019
- it("tests isOptionSelected", async () => {
1020
- const multiSelect = window.document.createElement("IC-SELECT");
1021
- const input = window.document.createElement("input");
1022
- const page = await newSpecPage({
1023
- components: [Menu, IcInputComponentContainer],
1024
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
1025
- });
1026
- page.rootInstance.value = ["espresso", "doubleespresso"];
1027
- await page.waitForChanges();
1028
- let isSelected = await page.rootInstance.isOptionSelected([1]);
1029
- expect(isSelected).toBe(true);
1030
- isSelected = await page.rootInstance.isOptionSelected([3]);
1031
- expect(isSelected).toBe(false);
1032
- page.rootInstance.value = "";
1033
- await page.waitForChanges();
1034
- isSelected = await page.rootInstance.isOptionSelected([0]);
1035
- expect(isSelected).toBe(false);
1036
- });
1037
- it("tests handleMultipleShiftSelect with optional params using default values", async () => {
1038
- const multiSelect = window.document.createElement("IC-SELECT");
1039
- const input = window.document.createElement("input");
1040
- const page = await newSpecPage({
1041
- components: [Menu, IcInputComponentContainer],
1042
- template: () => (h("ic-menu", { open: true, activationType: "automatic", options: menuOptions, menuId: "menu-id", inputLabel: "input-label", inputEl: input, anchorEl: multiSelect, value: menuOptions[0].value, parentEl: multiSelect })),
1043
- });
1044
- page.rootInstance.value = ["espresso", "doubleespresso", "flatwhite"];
1045
- jest
1046
- .spyOn(page.rootInstance, "deselectSelectedOptions")
1047
- .mockImplementation();
1048
- page.rootInstance.lastOptionSelected = 1;
1049
- await page.waitForChanges();
1050
- page.rootInstance.handleMultipleShiftSelect(3);
1051
- await page.waitForChanges();
1052
- expect(page.rootInstance.deselectSelectedOptions).toHaveBeenCalledWith([
1053
- 1, 2, 3,
1054
- ]);
1055
- });
1056
- });
1057
- //# sourceMappingURL=ic-menu.spec.js.map