@ukic/web-components 2.7.0 → 2.8.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 (320) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  3. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ic-button_3.cjs.entry.js +2 -2
  6. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-dialog.cjs.entry.js +86 -65
  18. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +76 -67
  20. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -2
  26. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-popover-menu.cjs.entry.js +28 -59
  28. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-select.cjs.entry.js +3 -2
  34. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  38. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-text-field.cjs.entry.js +16 -24
  44. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-top-navigation.cjs.entry.js +8 -4
  46. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +3 -0
  49. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -1
  50. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +3 -0
  51. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
  52. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
  53. package/dist/collection/components/ic-badge/ic-badge.js +1 -1
  54. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  55. package/dist/collection/components/ic-button/ic-button.css +3 -1
  56. package/dist/collection/components/ic-card/ic-card.css +1 -1
  57. package/dist/collection/components/ic-checkbox/ic-checkbox.css +5 -5
  58. package/dist/collection/components/ic-chip/ic-chip.css +1 -1
  59. package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
  60. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  61. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js +3 -1
  62. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -1
  63. package/dist/collection/components/ic-dialog/ic-dialog.css +56 -22
  64. package/dist/collection/components/ic-dialog/ic-dialog.js +103 -64
  65. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  66. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +129 -48
  67. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  68. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +38 -39
  69. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  70. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +2 -0
  71. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -1
  72. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js +2 -0
  73. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -1
  74. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +4 -4
  75. package/dist/collection/components/ic-menu/ic-menu.css +1 -5
  76. package/dist/collection/components/ic-menu/ic-menu.js +124 -65
  77. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  78. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +17 -0
  79. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  80. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
  81. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js +2 -0
  82. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -1
  83. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +11 -5
  84. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js +2 -0
  85. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -1
  86. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +7 -3
  87. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -1
  88. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  89. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +1 -1
  90. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
  91. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +37 -36
  92. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
  93. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +28 -59
  94. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  95. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +3 -0
  96. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -1
  97. package/dist/collection/components/ic-radio-option/ic-radio-option.css +3 -3
  98. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
  99. package/dist/collection/components/ic-search-bar/ic-search-bar.js +1 -1
  100. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  101. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +14 -30
  102. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  103. package/dist/collection/components/ic-select/ic-select.css +1 -1
  104. package/dist/collection/components/ic-select/ic-select.js +20 -1
  105. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  106. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +1 -0
  107. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  108. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +2 -2
  109. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  110. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -2
  111. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  112. package/dist/collection/components/ic-status-tag/ic-status-tag.css +4 -4
  113. package/dist/collection/components/ic-step/ic-step.css +1 -1
  114. package/dist/collection/components/ic-switch/ic-switch.css +3 -2
  115. package/dist/collection/components/ic-tab-group/ic-tab-group.css +1 -1
  116. package/dist/collection/components/ic-text-field/ic-text-field.js +16 -24
  117. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  118. package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -2
  119. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -3
  120. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +8 -3
  121. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  122. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js +2 -0
  123. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +1 -1
  124. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +15 -0
  125. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
  126. package/dist/components/ic-back-to-top.js +1 -1
  127. package/dist/components/ic-back-to-top.js.map +1 -1
  128. package/dist/components/ic-badge.js +1 -1
  129. package/dist/components/ic-badge.js.map +1 -1
  130. package/dist/components/ic-button2.js +1 -1
  131. package/dist/components/ic-button2.js.map +1 -1
  132. package/dist/components/ic-card.js +1 -1
  133. package/dist/components/ic-card.js.map +1 -1
  134. package/dist/components/ic-checkbox.js +1 -1
  135. package/dist/components/ic-checkbox.js.map +1 -1
  136. package/dist/components/ic-chip.js +1 -1
  137. package/dist/components/ic-chip.js.map +1 -1
  138. package/dist/components/ic-data-entity.js +1 -1
  139. package/dist/components/ic-data-entity.js.map +1 -1
  140. package/dist/components/ic-data-row.js +1 -1
  141. package/dist/components/ic-data-row.js.map +1 -1
  142. package/dist/components/ic-dialog.js +88 -66
  143. package/dist/components/ic-dialog.js.map +1 -1
  144. package/dist/components/ic-input-component-container2.js +1 -1
  145. package/dist/components/ic-input-component-container2.js.map +1 -1
  146. package/dist/components/ic-menu2.js +79 -67
  147. package/dist/components/ic-menu2.js.map +1 -1
  148. package/dist/components/ic-navigation-group.js +1 -1
  149. package/dist/components/ic-navigation-group.js.map +1 -1
  150. package/dist/components/ic-navigation-item.js +1 -1
  151. package/dist/components/ic-navigation-item.js.map +1 -1
  152. package/dist/components/ic-navigation-menu2.js +5 -2
  153. package/dist/components/ic-navigation-menu2.js.map +1 -1
  154. package/dist/components/ic-popover-menu.js +28 -59
  155. package/dist/components/ic-popover-menu.js.map +1 -1
  156. package/dist/components/ic-radio-option.js +1 -1
  157. package/dist/components/ic-radio-option.js.map +1 -1
  158. package/dist/components/ic-search-bar.js +2 -2
  159. package/dist/components/ic-search-bar.js.map +1 -1
  160. package/dist/components/ic-select.js +4 -2
  161. package/dist/components/ic-select.js.map +1 -1
  162. package/dist/components/ic-status-tag.js +1 -1
  163. package/dist/components/ic-status-tag.js.map +1 -1
  164. package/dist/components/ic-step.js +1 -1
  165. package/dist/components/ic-step.js.map +1 -1
  166. package/dist/components/ic-switch.js +1 -1
  167. package/dist/components/ic-switch.js.map +1 -1
  168. package/dist/components/ic-tab-group.js +1 -1
  169. package/dist/components/ic-tab-group.js.map +1 -1
  170. package/dist/components/ic-text-field2.js +16 -24
  171. package/dist/components/ic-text-field2.js.map +1 -1
  172. package/dist/components/ic-tooltip2.js +1 -1
  173. package/dist/components/ic-tooltip2.js.map +1 -1
  174. package/dist/components/ic-top-navigation.js +8 -4
  175. package/dist/components/ic-top-navigation.js.map +1 -1
  176. package/dist/core/core.css +1 -1
  177. package/dist/core/core.esm.js +1 -1
  178. package/dist/core/core.esm.js.map +1 -1
  179. package/dist/core/p-24da56e7.entry.js +2 -0
  180. package/dist/core/p-24da56e7.entry.js.map +1 -0
  181. package/dist/core/p-43af3cf6.entry.js +2 -0
  182. package/dist/core/p-43af3cf6.entry.js.map +1 -0
  183. package/dist/core/p-4bc35224.entry.js +2 -0
  184. package/dist/core/p-4bc35224.entry.js.map +1 -0
  185. package/dist/core/p-5a3ca50a.entry.js +2 -0
  186. package/dist/core/p-5a3ca50a.entry.js.map +1 -0
  187. package/dist/core/{p-eb063498.entry.js → p-5ccbb042.entry.js} +2 -2
  188. package/dist/core/p-5ccbb042.entry.js.map +1 -0
  189. package/dist/core/p-657513b5.entry.js +2 -0
  190. package/dist/core/p-657513b5.entry.js.map +1 -0
  191. package/dist/core/p-69d15528.entry.js +2 -0
  192. package/dist/core/p-69d15528.entry.js.map +1 -0
  193. package/dist/core/p-6c376756.entry.js +2 -0
  194. package/dist/core/p-6c376756.entry.js.map +1 -0
  195. package/dist/core/p-717907de.entry.js +2 -0
  196. package/dist/core/p-717907de.entry.js.map +1 -0
  197. package/dist/core/p-748159fe.entry.js +2 -0
  198. package/dist/core/p-748159fe.entry.js.map +1 -0
  199. package/dist/core/p-7ce86152.entry.js +2 -0
  200. package/dist/core/p-7ce86152.entry.js.map +1 -0
  201. package/dist/core/p-8b18346a.entry.js.map +1 -1
  202. package/dist/core/p-99fad66b.entry.js +2 -0
  203. package/dist/core/p-99fad66b.entry.js.map +1 -0
  204. package/dist/core/p-9f6ffced.entry.js +2 -0
  205. package/dist/core/p-9f6ffced.entry.js.map +1 -0
  206. package/dist/core/{p-af9f1caa.entry.js → p-9ff57f09.entry.js} +2 -2
  207. package/dist/core/p-9ff57f09.entry.js.map +1 -0
  208. package/dist/core/p-a76912b0.entry.js +2 -0
  209. package/dist/core/p-a76912b0.entry.js.map +1 -0
  210. package/dist/core/p-b879fa3e.entry.js +2 -0
  211. package/dist/core/p-b879fa3e.entry.js.map +1 -0
  212. package/dist/core/p-c0719bf4.entry.js +2 -0
  213. package/dist/core/p-c0719bf4.entry.js.map +1 -0
  214. package/dist/core/{p-ec82fa24.entry.js → p-ca6073be.entry.js} +2 -2
  215. package/dist/core/p-ca6073be.entry.js.map +1 -0
  216. package/dist/core/p-cb5f19ea.entry.js +2 -0
  217. package/dist/core/p-cb5f19ea.entry.js.map +1 -0
  218. package/dist/core/p-d80f99e0.entry.js +2 -0
  219. package/dist/core/p-d80f99e0.entry.js.map +1 -0
  220. package/dist/core/p-e9ddb8cd.entry.js +2 -0
  221. package/dist/core/p-e9ddb8cd.entry.js.map +1 -0
  222. package/dist/core/p-eb4641a9.entry.js +2 -0
  223. package/dist/core/p-eb4641a9.entry.js.map +1 -0
  224. package/dist/esm/core.js +1 -1
  225. package/dist/esm/ic-back-to-top.entry.js +1 -1
  226. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  227. package/dist/esm/ic-badge.entry.js.map +1 -1
  228. package/dist/esm/ic-button_3.entry.js +2 -2
  229. package/dist/esm/ic-button_3.entry.js.map +1 -1
  230. package/dist/esm/ic-card.entry.js +1 -1
  231. package/dist/esm/ic-card.entry.js.map +1 -1
  232. package/dist/esm/ic-checkbox.entry.js +1 -1
  233. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  234. package/dist/esm/ic-chip.entry.js +1 -1
  235. package/dist/esm/ic-chip.entry.js.map +1 -1
  236. package/dist/esm/ic-data-entity.entry.js +1 -1
  237. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  238. package/dist/esm/ic-data-row.entry.js +1 -1
  239. package/dist/esm/ic-data-row.entry.js.map +1 -1
  240. package/dist/esm/ic-dialog.entry.js +87 -66
  241. package/dist/esm/ic-dialog.entry.js.map +1 -1
  242. package/dist/esm/ic-input-component-container_3.entry.js +76 -67
  243. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  244. package/dist/esm/ic-navigation-group.entry.js +1 -1
  245. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  246. package/dist/esm/ic-navigation-item.entry.js +1 -1
  247. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  248. package/dist/esm/ic-navigation-menu.entry.js +5 -2
  249. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  250. package/dist/esm/ic-popover-menu.entry.js +28 -59
  251. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  252. package/dist/esm/ic-radio-option.entry.js +1 -1
  253. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  254. package/dist/esm/ic-search-bar.entry.js +2 -2
  255. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  256. package/dist/esm/ic-select.entry.js +3 -2
  257. package/dist/esm/ic-select.entry.js.map +1 -1
  258. package/dist/esm/ic-status-tag.entry.js +1 -1
  259. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  260. package/dist/esm/ic-step.entry.js +1 -1
  261. package/dist/esm/ic-step.entry.js.map +1 -1
  262. package/dist/esm/ic-switch.entry.js +1 -1
  263. package/dist/esm/ic-switch.entry.js.map +1 -1
  264. package/dist/esm/ic-tab-group.entry.js +1 -1
  265. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  266. package/dist/esm/ic-text-field.entry.js +16 -24
  267. package/dist/esm/ic-text-field.entry.js.map +1 -1
  268. package/dist/esm/ic-top-navigation.entry.js +8 -4
  269. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  270. package/dist/esm/loader.js +1 -1
  271. package/dist/types/components/ic-dialog/ic-dialog.d.ts +13 -2
  272. package/dist/types/components/ic-menu/ic-menu.d.ts +12 -2
  273. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
  274. package/dist/types/components/ic-select/ic-select.d.ts +4 -0
  275. package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -0
  276. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +1 -0
  277. package/dist/types/components.d.ts +18 -0
  278. package/hydrate/index.js +246 -242
  279. package/package.json +2 -2
  280. package/dist/core/p-0dc4f225.entry.js +0 -2
  281. package/dist/core/p-0dc4f225.entry.js.map +0 -1
  282. package/dist/core/p-12124e24.entry.js +0 -2
  283. package/dist/core/p-12124e24.entry.js.map +0 -1
  284. package/dist/core/p-1cf2a6aa.entry.js +0 -2
  285. package/dist/core/p-1cf2a6aa.entry.js.map +0 -1
  286. package/dist/core/p-3fd897c9.entry.js +0 -2
  287. package/dist/core/p-3fd897c9.entry.js.map +0 -1
  288. package/dist/core/p-432f8ff0.entry.js +0 -2
  289. package/dist/core/p-432f8ff0.entry.js.map +0 -1
  290. package/dist/core/p-4559600a.entry.js +0 -2
  291. package/dist/core/p-4559600a.entry.js.map +0 -1
  292. package/dist/core/p-5b487daa.entry.js +0 -2
  293. package/dist/core/p-5b487daa.entry.js.map +0 -1
  294. package/dist/core/p-5ca39ed5.entry.js +0 -2
  295. package/dist/core/p-5ca39ed5.entry.js.map +0 -1
  296. package/dist/core/p-763d0822.entry.js +0 -2
  297. package/dist/core/p-763d0822.entry.js.map +0 -1
  298. package/dist/core/p-7bb3c340.entry.js +0 -2
  299. package/dist/core/p-7bb3c340.entry.js.map +0 -1
  300. package/dist/core/p-9ccfb863.entry.js +0 -2
  301. package/dist/core/p-9ccfb863.entry.js.map +0 -1
  302. package/dist/core/p-a448d873.entry.js +0 -2
  303. package/dist/core/p-a448d873.entry.js.map +0 -1
  304. package/dist/core/p-af9f1caa.entry.js.map +0 -1
  305. package/dist/core/p-b77ab20a.entry.js +0 -2
  306. package/dist/core/p-b77ab20a.entry.js.map +0 -1
  307. package/dist/core/p-c36cbd8a.entry.js +0 -2
  308. package/dist/core/p-c36cbd8a.entry.js.map +0 -1
  309. package/dist/core/p-e2903ce9.entry.js +0 -2
  310. package/dist/core/p-e2903ce9.entry.js.map +0 -1
  311. package/dist/core/p-ea6ad791.entry.js +0 -2
  312. package/dist/core/p-ea6ad791.entry.js.map +0 -1
  313. package/dist/core/p-eb063498.entry.js.map +0 -1
  314. package/dist/core/p-ec82fa24.entry.js.map +0 -1
  315. package/dist/core/p-f00e510b.entry.js +0 -2
  316. package/dist/core/p-f00e510b.entry.js.map +0 -1
  317. package/dist/core/p-f69fb26b.entry.js +0 -2
  318. package/dist/core/p-f69fb26b.entry.js.map +0 -1
  319. package/dist/core/p-fe6e0c0e.entry.js +0 -2
  320. package/dist/core/p-fe6e0c0e.entry.js.map +0 -1
@@ -145,63 +145,144 @@ describe("ic-dialog", () => {
145
145
  dialogDisplay = (await dialog.getComputedStyle()).display;
146
146
  expect(dialogDisplay).toBe("flex");
147
147
  });
148
- it("should test dialog content overflow", async () => {
148
+ it("should be able to tab to dynamically added interactive element", async () => {
149
149
  const page = await newE2EPage();
150
- await page.setContent(`
151
- <script>
152
- function showDialog() {
153
- dialog = document.querySelector("ic-dialog");
154
- dialog.open = true;
155
- }
156
- </script>
157
- <ic-button id="showBtn" variant="primary" onclick="showDialog()"
158
- >Launch dialog</ic-button
159
- >
160
- <ic-dialog
161
- heading="This dialog has slotted interactive content"
162
- label="slotted"
163
- dismiss-label="Close"
164
- size="medium"
165
- >
166
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
167
- tempor incididunt ut labore et dolore magna aliqua.
168
- <ic-text-field id="text-field" label="What is your favourite coffee?">
169
- </ic-text-field>
170
- <ic-select
171
- id="sel1"
172
- label="What is your favourite coffee?"
173
- placeholder="Placeholder goes here"
174
- ></ic-select>
175
- <ic-checkbox-group
176
- style="margin: 8px 0"
177
- hide-label
178
- label="confirm"
179
- name="confirm-checkbox"
180
- >
181
- <ic-checkbox label="Option" value="confirm" id="checkbox1"></ic-checkbox>
182
- </ic-checkbox-group>
183
- </ic-dialog>
150
+ await page.setContent(`<script>
151
+ function showSmallDialog() {
152
+ dialog = document.querySelector("#small-dialog");
153
+ dialog.showDialog();
154
+ }
155
+ function showNewBtn() {
156
+ var el = document.createElement("ic-button");
157
+ el.innerText = "foo";
158
+ var base = document.querySelector("#base");
159
+ base.after(el);
160
+ }
161
+ </script>
162
+ <ic-button variant="primary" id='showBtn' onclick="showSmallDialog()">
163
+ Launch small dialog
164
+ </ic-button>
165
+ <ic-dialog
166
+ heading="This is a small dialog"
167
+ label="Small"
168
+ id="small-dialog"
169
+ >
170
+ <ic-typography>
171
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
172
+ eiusmod tempor incididunt ut labore et dolore magna aliqua.
173
+ </ic-typography>
174
+ <ic-button class="show" onclick="showNewBtn();">Show</ic-button>
175
+ <div id="base"></div>
176
+ </ic-dialog>
184
177
  `);
185
- await page.setViewport({
186
- width: 800,
187
- height: 480,
188
- });
189
178
  const btn = await page.find("#showBtn");
190
179
  btn.click();
191
180
  await page.waitForChanges();
192
181
  await page.waitForTimeout(DIALOG_DELAY_MS);
193
- let dialog = await page.find("ic-dialog");
194
- let overflow = dialog.getAttribute("data-overflow");
195
- expect(overflow).toBe("true");
196
- await page.setViewport({
197
- width: 800,
198
- height: 800,
182
+ let focusedEl = await page.evaluate(() => {
183
+ const el = document.activeElement;
184
+ return {
185
+ tagName: el.tagName,
186
+ textContent: el.textContent,
187
+ };
188
+ });
189
+ expect(focusedEl.tagName).toBe("IC-BUTTON");
190
+ expect(focusedEl.textContent).toBe("Show");
191
+ await page.keyboard.press("Tab");
192
+ await page.waitForChanges();
193
+ focusedEl = await page.evaluate(() => {
194
+ const dialog = document.querySelector("ic-dialog");
195
+ const el = dialog.shadowRoot.activeElement;
196
+ return {
197
+ tagName: el.tagName,
198
+ textContent: el.textContent,
199
+ };
199
200
  });
201
+ expect(focusedEl.tagName).toBe("IC-BUTTON");
202
+ expect(focusedEl.textContent).toBe("Cancel");
203
+ const showBtn = await page.find(".show");
204
+ await showBtn.click();
205
+ await page.waitForChanges();
206
+ await page.keyboard.press("Tab");
207
+ await page.waitForChanges();
208
+ focusedEl = await page.evaluate(() => {
209
+ const el = document.activeElement;
210
+ return {
211
+ tagName: el.tagName,
212
+ textContent: el.textContent,
213
+ };
214
+ });
215
+ expect(focusedEl.tagName).toBe("IC-BUTTON");
216
+ expect(focusedEl.textContent).toBe("foo");
217
+ });
218
+ it("should not tab to interactive button when hidden and tab to cancel button", async () => {
219
+ const page = await newE2EPage();
220
+ await page.setContent(`<script>
221
+ function showSmallDialog() {
222
+ dialog = document.querySelector("#small-dialog");
223
+ dialog.showDialog();
224
+ }
225
+ function hideNewBtn() {
226
+ var btn = document.querySelector("#hide-btn");
227
+ btn.remove();
228
+ }
229
+ </script>
230
+ <ic-button variant="primary" id='showBtn' onclick="showSmallDialog()">
231
+ Launch small dialog
232
+ </ic-button>
233
+ <ic-dialog
234
+ heading="This is a small dialog"
235
+ label="Small"
236
+ id="small-dialog"
237
+ >
238
+ <ic-typography>
239
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
240
+ eiusmod tempor incididunt ut labore et dolore magna aliqua.
241
+ </ic-typography>
242
+ <ic-button class="hide" onclick="hideNewBtn();">Hide</ic-button>
243
+ <ic-button id='hide-btn'>foo</ic-button>
244
+ <div id="base"></div>
245
+ </ic-dialog>
246
+ `);
247
+ const btn = await page.find("#showBtn");
248
+ await btn.click();
200
249
  await page.waitForChanges();
201
250
  await page.waitForTimeout(DIALOG_DELAY_MS);
202
- dialog = await page.find("ic-dialog");
203
- overflow = dialog.getAttribute("data-overflow");
204
- expect(overflow).toBe("false");
251
+ let focusedEl = await page.evaluate(() => {
252
+ const el = document.activeElement;
253
+ return {
254
+ tagName: el.tagName,
255
+ textContent: el.textContent,
256
+ };
257
+ });
258
+ expect(focusedEl.tagName).toBe("IC-BUTTON");
259
+ expect(focusedEl.textContent).toBe("Hide");
260
+ await page.keyboard.press("Tab");
261
+ await page.waitForChanges();
262
+ focusedEl = await page.evaluate(() => {
263
+ const el = document.activeElement;
264
+ return {
265
+ tagName: el.tagName,
266
+ textContent: el.textContent,
267
+ };
268
+ });
269
+ expect(focusedEl.tagName).toBe("IC-BUTTON");
270
+ expect(focusedEl.textContent).toBe("foo");
271
+ const hideBtn = await page.find(".hide");
272
+ await hideBtn.click();
273
+ await page.waitForChanges();
274
+ await page.keyboard.press("Tab");
275
+ await page.waitForChanges();
276
+ focusedEl = await page.evaluate(() => {
277
+ const dialog = document.querySelector("ic-dialog");
278
+ const el = dialog.shadowRoot.activeElement;
279
+ return {
280
+ tagName: el.tagName,
281
+ textContent: el.textContent,
282
+ };
283
+ });
284
+ expect(focusedEl.tagName).toBe("IC-BUTTON");
285
+ expect(focusedEl.textContent).toBe("Cancel");
205
286
  });
206
287
  });
207
288
  //# sourceMappingURL=ic-dialog.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-dialog.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst DIALOG_DELAY_MS = 300;\n\ndescribe(\"ic-dialog\", () => {\n it(\"should test focus and tab key press\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"sel1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"checkbox1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n });\n\n it(\"should hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n });\n\n it(\"should not hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n close-on-backdrop-click=\"false\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n });\n\n it(\"should test dialog content overflow\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n await page.setViewport({\n width: 800,\n height: 480,\n });\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let dialog = await page.find(\"ic-dialog\");\n\n let overflow = dialog.getAttribute(\"data-overflow\");\n expect(overflow).toBe(\"true\");\n\n await page.setViewport({\n width: 800,\n height: 800,\n });\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialog = await page.find(\"ic-dialog\");\n\n overflow = dialog.getAttribute(\"data-overflow\");\n expect(overflow).toBe(\"false\");\n });\n});\n"]}
1
+ {"version":3,"file":"ic-dialog.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAS,CAAC,GAAG,EAAE;EACb,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;EACzB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkCD,CACA,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,IAAI,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;KAkBD,CACA,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB;;;;;;;;;;;;;;;;;;;KAmBD,CACA,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5C,IAAI,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,aAAa,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC;IAC1D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;IAC9E,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BrB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;MAClC,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;OAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;MACnD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;MAC3C,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;OAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;MAClC,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;OAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC5C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;IACzF,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BrB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAE3C,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;MAClC,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;OAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC;MAClC,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;OAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;MACnD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;MAC3C,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,WAAW,EAAE,EAAE,CAAC,WAAW;OAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst DIALOG_DELAY_MS = 300;\n\ndescribe(\"ic-dialog\", () => {\n it(\"should test focus and tab key press\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n dismiss-label=\"Close\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua.\n <ic-text-field id=\"text-field\" label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-select\n id=\"sel1\"\n label=\"What is your favourite coffee?\"\n placeholder=\"Placeholder goes here\"\n ></ic-select>\n <ic-checkbox-group\n style=\"margin: 8px 0\"\n hide-label\n label=\"confirm\"\n name=\"confirm-checkbox\"\n >\n <ic-checkbox label=\"Option\" value=\"confirm\" id=\"checkbox1\"></ic-checkbox>\n </ic-checkbox-group>\n </ic-dialog>\n `\n );\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"sel1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"checkbox1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"text-field\");\n });\n\n it(\"should hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n });\n\n it(\"should not hide dialog when background clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `\n <script>\n function showDialog() {\n dialog = document.querySelector(\"ic-dialog\");\n dialog.open = true;\n }\n </script>\n <ic-button id=\"showBtn\" variant=\"primary\" onclick=\"showDialog()\"\n >Launch dialog</ic-button\n >\n <ic-dialog\n heading=\"This dialog has slotted interactive content\"\n label=\"slotted\"\n size=\"medium\"\n close-on-backdrop-click=\"false\"\n >\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. \n </ic-dialog>\n `\n );\n\n const dialog = await page.find(\"ic-dialog\");\n\n let dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"none\");\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n\n await page.mouse.click(10, 10);\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n dialogDisplay = (await dialog.getComputedStyle()).display;\n expect(dialogDisplay).toBe(\"flex\");\n });\n\n it(\"should be able to tab to dynamically added interactive element\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<script>\n function showSmallDialog() {\n dialog = document.querySelector(\"#small-dialog\");\n dialog.showDialog();\n }\n function showNewBtn() {\n var el = document.createElement(\"ic-button\");\n el.innerText = \"foo\";\n var base = document.querySelector(\"#base\");\n base.after(el);\n }\n </script>\n <ic-button variant=\"primary\" id='showBtn' onclick=\"showSmallDialog()\">\n Launch small dialog\n </ic-button>\n <ic-dialog\n heading=\"This is a small dialog\"\n label=\"Small\"\n id=\"small-dialog\"\n >\n <ic-typography>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua.\n </ic-typography>\n <ic-button class=\"show\" onclick=\"showNewBtn();\">Show</ic-button>\n <div id=\"base\"></div>\n </ic-dialog>\n `);\n\n const btn = await page.find(\"#showBtn\");\n btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let focusedEl = await page.evaluate(() => {\n const el = document.activeElement;\n return {\n tagName: el.tagName,\n textContent: el.textContent,\n };\n });\n\n expect(focusedEl.tagName).toBe(\"IC-BUTTON\");\n expect(focusedEl.textContent).toBe(\"Show\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n focusedEl = await page.evaluate(() => {\n const dialog = document.querySelector(\"ic-dialog\");\n const el = dialog.shadowRoot.activeElement;\n return {\n tagName: el.tagName,\n textContent: el.textContent,\n };\n });\n\n expect(focusedEl.tagName).toBe(\"IC-BUTTON\");\n expect(focusedEl.textContent).toBe(\"Cancel\");\n\n const showBtn = await page.find(\".show\");\n await showBtn.click();\n await page.waitForChanges();\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n focusedEl = await page.evaluate(() => {\n const el = document.activeElement;\n return {\n tagName: el.tagName,\n textContent: el.textContent,\n };\n });\n\n expect(focusedEl.tagName).toBe(\"IC-BUTTON\");\n expect(focusedEl.textContent).toBe(\"foo\");\n });\n\n it(\"should not tab to interactive button when hidden and tab to cancel button\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<script>\n function showSmallDialog() {\n dialog = document.querySelector(\"#small-dialog\");\n dialog.showDialog();\n }\n function hideNewBtn() {\n var btn = document.querySelector(\"#hide-btn\");\n btn.remove();\n }\n </script>\n <ic-button variant=\"primary\" id='showBtn' onclick=\"showSmallDialog()\">\n Launch small dialog\n </ic-button>\n <ic-dialog\n heading=\"This is a small dialog\"\n label=\"Small\"\n id=\"small-dialog\"\n >\n <ic-typography>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\n eiusmod tempor incididunt ut labore et dolore magna aliqua.\n </ic-typography>\n <ic-button class=\"hide\" onclick=\"hideNewBtn();\">Hide</ic-button>\n <ic-button id='hide-btn'>foo</ic-button>\n <div id=\"base\"></div>\n </ic-dialog>\n `);\n\n const btn = await page.find(\"#showBtn\");\n await btn.click();\n\n await page.waitForChanges();\n await page.waitForTimeout(DIALOG_DELAY_MS);\n\n let focusedEl = await page.evaluate(() => {\n const el = document.activeElement;\n return {\n tagName: el.tagName,\n textContent: el.textContent,\n };\n });\n\n expect(focusedEl.tagName).toBe(\"IC-BUTTON\");\n expect(focusedEl.textContent).toBe(\"Hide\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n focusedEl = await page.evaluate(() => {\n const el = document.activeElement;\n return {\n tagName: el.tagName,\n textContent: el.textContent,\n };\n });\n\n expect(focusedEl.tagName).toBe(\"IC-BUTTON\");\n expect(focusedEl.textContent).toBe(\"foo\");\n\n const hideBtn = await page.find(\".hide\");\n await hideBtn.click();\n await page.waitForChanges();\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n focusedEl = await page.evaluate(() => {\n const dialog = document.querySelector(\"ic-dialog\");\n const el = dialog.shadowRoot.activeElement;\n return {\n tagName: el.tagName,\n textContent: el.textContent,\n };\n });\n\n expect(focusedEl.tagName).toBe(\"IC-BUTTON\");\n expect(focusedEl.textContent).toBe(\"Cancel\");\n });\n});\n"]}
@@ -8,6 +8,9 @@ const setupDialogMethods = (page) => {
8
8
  page.rootInstance.dialogEl.showModal = jest.fn(function mock() {
9
9
  this.open = true;
10
10
  });
11
+ page.rootInstance.dialogEl.show = jest.fn(function mock() {
12
+ this.open = true;
13
+ });
11
14
  page.rootInstance.dialogEl.close = jest.fn(function mock() {
12
15
  this.open = false;
13
16
  });
@@ -453,43 +456,6 @@ describe("ic-dialog component", () => {
453
456
  await page.waitForChanges();
454
457
  expect(page.rootInstance.dialogRendered).toBe(true);
455
458
  });
456
- it("should set appropriate data-overflow attribute", async () => {
457
- const page = await newSpecPage({
458
- components: [Dialog, TextField, Button],
459
- html: `<ic-dialog heading="Dialog heading"></ic-dialog>`,
460
- });
461
- setupDialogMethods(page);
462
- const dialog = document.querySelector("ic-dialog");
463
- await dialog.showDialog();
464
- dialog.open = true;
465
- await page.waitForChanges();
466
- //delay for setTimeout in code
467
- await waitForTimeout(DIALOG_DELAY_MS);
468
- page.rootInstance.dialogEl.clientHeight = 100;
469
- page.rootInstance.dialogEl.scrollHeight = 100;
470
- await page.waitForChanges();
471
- //delay for setTimeout in code
472
- await waitForTimeout(DIALOG_DELAY_MS);
473
- page.rootInstance.resizeObserverCallback();
474
- expect(page.rootInstance.el.getAttribute("data-overflow")).toBe("false");
475
- await dialog.hideDialog();
476
- dialog.open = false;
477
- await page.waitForChanges();
478
- //delay for setTimeout in code
479
- await waitForTimeout(DIALOG_DELAY_MS);
480
- await dialog.showDialog();
481
- dialog.open = true;
482
- await page.waitForChanges();
483
- //delay for setTimeout in code
484
- await waitForTimeout(DIALOG_DELAY_MS);
485
- page.rootInstance.dialogEl.clientHeight = 50;
486
- page.rootInstance.dialogEl.scrollHeight = 100;
487
- await page.waitForChanges();
488
- //delay for setTimeout in code
489
- await waitForTimeout(DIALOG_DELAY_MS);
490
- page.rootInstance.resizeObserverCallback();
491
- expect(page.rootInstance.el.getAttribute("data-overflow")).toBe("true");
492
- });
493
459
  it("should correctly pass onclick functions to two default buttons", async () => {
494
460
  const page = await newSpecPage({
495
461
  components: [Dialog, Button],
@@ -503,7 +469,6 @@ describe("ic-dialog component", () => {
503
469
  ];
504
470
  await page.waitForChanges();
505
471
  expect(page.rootInstance.dialogRendered).toBe(false);
506
- await dialog.showDialog();
507
472
  dialog.open = true;
508
473
  await page.waitForChanges();
509
474
  //delay for setTimeout in code
@@ -514,7 +479,6 @@ describe("ic-dialog component", () => {
514
479
  //delay for setTimeout in code
515
480
  await waitForTimeout(DIALOG_DELAY_MS);
516
481
  expect(page.rootInstance.dialogRendered).toBe(false);
517
- await dialog.showDialog();
518
482
  dialog.open = true;
519
483
  await page.waitForChanges();
520
484
  //delay for setTimeout in code
@@ -590,5 +554,40 @@ describe("ic-dialog component", () => {
590
554
  setupDialogMethods(page);
591
555
  expect(page.root).toMatchSnapshot();
592
556
  });
557
+ it("should call this.getInteractiveElements() when slot content changes", async () => {
558
+ const page = await newSpecPage({
559
+ components: [Dialog, Button],
560
+ html: '<ic-dialog heading="Dialog heading" disable-height-constraint="true"></ic-dialog>',
561
+ });
562
+ const contentAreaSlot = document
563
+ .querySelector("ic-dialog")
564
+ .shadowRoot.querySelector(".content-area slot");
565
+ jest
566
+ .spyOn(page.rootInstance, "getInteractiveElements")
567
+ .mockImplementation();
568
+ await page.rootInstance.refreshInteractiveElementsOnSlotChange();
569
+ contentAreaSlot.dispatchEvent(new Event("slotchange"));
570
+ expect(page.rootInstance.getInteractiveElements).toBeCalledTimes(1);
571
+ });
572
+ it("should call dialog.show() disableHeightConstraint is set and showDialog is called", async () => {
573
+ const page = await newSpecPage({
574
+ components: [Dialog, Button],
575
+ html: '<ic-dialog heading="Dialog heading" disable-height-constraint="true"></ic-dialog>',
576
+ });
577
+ setupDialogMethods(page);
578
+ const dialog = document.querySelector("ic-dialog");
579
+ dialog.buttonProps = [
580
+ { label: "Cancel", onclick: "this.hideDialog()" },
581
+ { label: "Options", onclick: "this.hideDialog()" },
582
+ { label: "Confirm", onclick: "this.hideDialog()" },
583
+ ];
584
+ await page.waitForChanges();
585
+ expect(page.rootInstance.dialogRendered).toBe(false);
586
+ await dialog.showDialog();
587
+ await page.waitForChanges();
588
+ //delay for setTimeout in code
589
+ await waitForTimeout(DIALOG_DELAY_MS);
590
+ expect(page.rootInstance.dialogEl.show).toBeCalled();
591
+ });
593
592
  });
594
593
  //# sourceMappingURL=ic-dialog.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-dialog.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,cAAc,EACd,iBAAiB,IAAI,aAAa,GACnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,EAAE;EAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI;IAG1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;EACnB,CAAC,CAAC,CAAC;EAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI;IAGtD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;EACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;EACnC,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;IAC7B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kEAAkE;KACzE,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC1C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,uFAAuF;KAC9F,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,CAAC;MACpB,IAAI,EAAE,gFAAgF;KACvF,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;MACvC,IAAI,EAAE;;;;mBAIO;KACd,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;IAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,gFAAgF;KACvF,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,+EAA+E;KACtF,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG;MACnB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE;KACxD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IACxD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG;MACnB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE;MACjD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE;MACpD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE;KACxD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACrE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG;MACnB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE;MACjD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE;MACpD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE;MACvD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE;KACrD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IAC/D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,0EAA0E;KACjF,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG;MACnB,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wBAAwB,EAAE;KACxD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,+IAA+I;KACtJ,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;IACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAEtD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACtD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;IAC9C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAEtD,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IAEpB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;IACzD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAEtD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACtD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAEtD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAE1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAEzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAEzD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;IAC/C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;IAE5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAChD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IAE7B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACtD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,uJAAuJ;KAC9J,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAC7B,IAAI,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CACtD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,aAAa,CACrB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;MACpC,OAAO,EAAE,IAAI;MACb,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,EAAE;KACZ,CAAC,CACH,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IAClE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kFAAkF;KACzF,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,aAAa,CACrB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE;MACpC,OAAO,EAAE,IAAI;MACb,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,EAAE;KACZ,CAAC,CACH,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACtD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAExD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;IAClF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAE1E,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;IAC1F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;MACvC,IAAI,EAAE;;;;mBAIO;KACd,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAC7B,IAAI,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CACnD,CAAC;IACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACtD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;MACvC,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC;IAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC;IAE9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;IAE3C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzE,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IAEpB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE,CAAC;IAC7C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC;IAE9C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;IAE3C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC1E,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;IAC9E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG;MACnB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE;MAChD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE;KACnD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAChF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,kDAAkD;KACzD,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,CAAC,WAAW,GAAG;MACnB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE;MACjD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE;MAClD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE;KACnD,CAAC;IAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,8BAA8B;IAC9B,MAAM,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;IACnD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,iEAAiE;KACxE,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;MAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;MAC5B,IAAI,EAAE,0FAA0F;KACjG,CAAC,CAAC;IAEH,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { SpecPage, newSpecPage } from \"@stencil/core/testing\";\nimport { Dialog } from \"../../ic-dialog\";\nimport {\n waitForTimeout,\n testKeyboardEvent as keyboardEvent,\n} from \"../../../../testspec.setup\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\n\nconst DIALOG_DELAY_MS = 100;\n\nconst setupDialogMethods = (page: SpecPage) => {\n page.rootInstance.dialogEl.showModal = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.close = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = false;\n });\n};\n\ndescribe(\"ic-dialog component\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a label\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" label=\"Dialog label\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\">Dialog content</ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with slotted content\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as medium size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"medium\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as large size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"large\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no more than three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n { label: \"Extra\", onclick: \"alert('Extra button')\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a destructive default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading test\" destructive=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an alert\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" status=\"neutral\" alert-heading=\"Alert heading\" alert-message=\"Alert message\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should display with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n dialog.open = false;\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should display with the showDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the hideDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n await dialog.hideDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test icDialogCancelled event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test icDialogConfirmed event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test cancelDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n await dialog.cancelDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test confirmDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n await dialog.confirmDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should render with slotted controls\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"><ic-button variant=\"primary\" onclick=\"alert('Confirmed!')\" slot=\"dialog-controls\">Confirm</ic-button></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should hide when the escape key is pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Escape\"))\n );\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should hide when something besides the dialog is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should not hide when close-on-backdrop-click false\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" close-on-backdrop-click=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide when the close button is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelector(\"ic-button\").click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [{ label: \"Confirm\", onclick: \"this.hideDialog()\" }];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should trigger private focusNextInteractiveElement method when tab pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Tab\"))\n );\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should set appropriate data-overflow attribute\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.rootInstance.dialogEl.clientHeight = 100;\n page.rootInstance.dialogEl.scrollHeight = 100;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.rootInstance.resizeObserverCallback();\n\n expect(page.rootInstance.el.getAttribute(\"data-overflow\")).toBe(\"false\");\n\n await dialog.hideDialog();\n dialog.open = false;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.rootInstance.dialogEl.clientHeight = 50;\n page.rootInstance.dialogEl.scrollHeight = 100;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.rootInstance.resizeObserverCallback();\n\n expect(page.rootInstance.el.getAttribute(\"data-overflow\")).toBe(\"true\");\n });\n\n it(\"should correctly pass onclick functions to two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Close\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[3].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should render with the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog with close button test\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render without the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog hide close button test\" hide-close-button=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-dialog.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-dialog/test/basic/ic-dialog.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from \"@stencil/core/testing\";\nimport { Dialog } from \"../../ic-dialog\";\nimport {\n waitForTimeout,\n testKeyboardEvent as keyboardEvent,\n} from \"../../../../testspec.setup\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { TextField } from \"../../../ic-text-field/ic-text-field\";\n\nconst DIALOG_DELAY_MS = 100;\n\nconst setupDialogMethods = (page: SpecPage) => {\n page.rootInstance.dialogEl.showModal = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.show = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = true;\n });\n\n page.rootInstance.dialogEl.close = jest.fn(function mock(\n this: HTMLDialogElement\n ) {\n this.open = false;\n });\n};\n\ndescribe(\"ic-dialog component\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a label\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" label=\"Dialog label\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog],\n html: `<ic-dialog heading=\"Dialog heading\" buttons=\"false\">Dialog content</ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with slotted content\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as medium size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"medium\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render as large size\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" size=\"large\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with no more than three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"alert('Options...')\" },\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n { label: \"Extra\", onclick: \"alert('Extra button')\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with a destructive default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading test\" destructive=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Confirm\", onclick: \"this.icDialogConfirm()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with an alert\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" status=\"neutral\" alert-heading=\"Alert heading\" alert-message=\"Alert message\" buttons=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should display with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the open prop\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n dialog.open = false;\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should display with the showDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogOpened\", eventSpy);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide with the hideDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogClosed\", eventSpy);\n\n await dialog.hideDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test icDialogCancelled event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test icDialogConfirmed event emitted\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n\n it(\"should test cancelDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogCancelled\", eventSpy);\n\n await dialog.cancelDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should test confirmDialog method\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"icDialogConfirmed\", eventSpy);\n\n await dialog.confirmDialog();\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(eventSpy).toHaveBeenCalled();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should render with slotted controls\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"><ic-button variant=\"primary\" onclick=\"alert('Confirmed!')\" slot=\"dialog-controls\">Confirm</ic-button></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should hide when the escape key is pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Escape\"))\n );\n\n await page.waitForChanges();\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should hide when something besides the dialog is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should not hide when close-on-backdrop-click false\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\" close-on-backdrop-click=\"false\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.dispatchEvent(\n new window.window.MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n clientX: 10,\n clientY: 10,\n })\n );\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should hide when the close button is clicked\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: `<ic-dialog heading=\"Dialog heading\"></ic-dialog>`,\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelector(\"ic-button\").click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to a single default button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [{ label: \"Confirm\", onclick: \"this.hideDialog()\" }];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should trigger private focusNextInteractiveElement method when tab pressed\", async () => {\n const page = await newSpecPage({\n components: [Dialog, TextField, Button],\n html: `<ic-dialog heading=\"Dialog heading\">\n <ic-text-field label=\"What is your favourite coffee?\">\n </ic-text-field>\n <ic-button>Click Me</ic-button>\n </ic-dialog>`,\n });\n\n setupDialogMethods(page);\n const dialog = document.querySelector(\"ic-dialog\");\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n page.win.document.dispatchEvent(\n new KeyboardEvent(\"keydown\", keyboardEvent(\"Tab\"))\n );\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n });\n\n it(\"should correctly pass onclick functions to two default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Close\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should correctly pass onclick functions to three default buttons\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[1].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[2].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n dialog.open = true;\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(true);\n\n page.root.shadowRoot.querySelectorAll(\"ic-button\")[3].click();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n });\n\n it(\"should render with the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog with close button test\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render without the close button\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog hide close button test\" hide-close-button=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should call this.getInteractiveElements() when slot content changes\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\" disable-height-constraint=\"true\"></ic-dialog>',\n });\n\n const contentAreaSlot = document\n .querySelector(\"ic-dialog\")\n .shadowRoot.querySelector(\".content-area slot\");\n\n jest\n .spyOn(page.rootInstance, \"getInteractiveElements\")\n .mockImplementation();\n\n await page.rootInstance.refreshInteractiveElementsOnSlotChange();\n\n contentAreaSlot.dispatchEvent(new Event(\"slotchange\"));\n\n expect(page.rootInstance.getInteractiveElements).toBeCalledTimes(1);\n });\n\n it(\"should call dialog.show() disableHeightConstraint is set and showDialog is called\", async () => {\n const page = await newSpecPage({\n components: [Dialog, Button],\n html: '<ic-dialog heading=\"Dialog heading\" disable-height-constraint=\"true\"></ic-dialog>',\n });\n\n setupDialogMethods(page);\n\n const dialog = document.querySelector(\"ic-dialog\");\n\n dialog.buttonProps = [\n { label: \"Cancel\", onclick: \"this.hideDialog()\" },\n { label: \"Options\", onclick: \"this.hideDialog()\" },\n { label: \"Confirm\", onclick: \"this.hideDialog()\" },\n ];\n\n await page.waitForChanges();\n\n expect(page.rootInstance.dialogRendered).toBe(false);\n\n await dialog.showDialog();\n\n await page.waitForChanges();\n\n //delay for setTimeout in code\n await waitForTimeout(DIALOG_DELAY_MS);\n\n expect(page.rootInstance.dialogEl.show).toBeCalled();\n });\n});\n"]}