@mgdis/mg-components 5.19.3 → 5.21.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 (493) hide show
  1. package/dist/cjs/{components.utils-69435877.js → components.utils-cd908d4e.js} +102 -99
  2. package/dist/cjs/components.utils-cd908d4e.js.map +1 -0
  3. package/dist/cjs/{index-60dd0c56.js → index-8532b5e9.js} +185 -87
  4. package/dist/cjs/index-8532b5e9.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/mg-action-more_34.cjs.entry.js +5140 -5107
  7. package/dist/cjs/mg-action-more_34.cjs.entry.js.map +1 -1
  8. package/dist/cjs/mg-components.cjs.js +3 -3
  9. package/dist/cjs/mg-components.cjs.js.map +1 -1
  10. package/dist/cjs/mg-item-more.cjs.entry.js +237 -222
  11. package/dist/cjs/mg-item-more.cjs.entry.js.map +1 -1
  12. package/dist/collection/assets/icons/index.js +193 -191
  13. package/dist/collection/assets/icons/index.js.map +1 -0
  14. package/dist/collection/collection-manifest.json +6 -6
  15. package/dist/collection/components/atoms/mg-badge/mg-badge.js +161 -161
  16. package/dist/collection/components/atoms/mg-badge/mg-badge.js.map +1 -1
  17. package/dist/collection/components/atoms/mg-button/mg-button.js +362 -362
  18. package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
  19. package/dist/collection/components/atoms/mg-card/mg-card.js +126 -126
  20. package/dist/collection/components/atoms/mg-card/mg-card.js.map +1 -1
  21. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +101 -101
  22. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js.map +1 -1
  23. package/dist/collection/components/atoms/mg-divider/mg-divider.js +47 -47
  24. package/dist/collection/components/atoms/mg-divider/mg-divider.js.map +1 -1
  25. package/dist/collection/components/atoms/mg-icon/mg-icon.js +231 -231
  26. package/dist/collection/components/atoms/mg-icon/mg-icon.js.map +1 -1
  27. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +132 -132
  28. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js.map +1 -1
  29. package/dist/collection/components/atoms/mg-tag/mg-tag.js +158 -158
  30. package/dist/collection/components/atoms/mg-tag/mg-tag.js.map +1 -1
  31. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +46 -46
  32. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js.map +1 -1
  33. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.conf.js +3 -3
  34. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.conf.js.map +1 -1
  35. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +398 -398
  36. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js.map +1 -1
  37. package/dist/collection/components/molecules/inputs/MgInput.conf.js +2 -2
  38. package/dist/collection/components/molecules/inputs/MgInput.conf.js.map +1 -1
  39. package/dist/collection/components/molecules/inputs/MgInput.js +84 -84
  40. package/dist/collection/components/molecules/inputs/MgInput.js.map +1 -1
  41. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +8 -8
  42. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js.map +1 -1
  43. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +266 -266
  44. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js.map +1 -1
  45. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js +4 -4
  46. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js.map +1 -1
  47. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +788 -791
  48. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js.map +1 -1
  49. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.conf.js +4 -4
  50. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.conf.js.map +1 -1
  51. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +588 -578
  52. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js.map +1 -1
  53. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.js +4 -4
  54. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.js.map +1 -1
  55. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +778 -773
  56. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
  57. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +536 -526
  58. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js.map +1 -1
  59. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +565 -555
  60. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js.map +1 -1
  61. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +700 -695
  62. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js.map +1 -1
  63. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +770 -760
  64. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
  65. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +705 -695
  66. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
  67. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +527 -522
  68. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js.map +1 -1
  69. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +2 -2
  70. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js.map +1 -1
  71. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +263 -263
  72. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js.map +1 -1
  73. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js +6 -6
  74. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js.map +1 -1
  75. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +423 -423
  76. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js.map +1 -1
  77. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +214 -214
  78. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
  79. package/dist/collection/components/molecules/mg-details/mg-details.js +155 -150
  80. package/dist/collection/components/molecules/mg-details/mg-details.js.map +1 -1
  81. package/dist/collection/components/molecules/mg-form/mg-form.conf.js +9 -0
  82. package/dist/collection/components/molecules/mg-form/mg-form.conf.js.map +1 -0
  83. package/dist/collection/components/molecules/mg-form/mg-form.js +405 -327
  84. package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
  85. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +85 -85
  86. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js.map +1 -1
  87. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +203 -188
  88. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js.map +1 -1
  89. package/dist/collection/components/molecules/mg-message/mg-message.js +325 -304
  90. package/dist/collection/components/molecules/mg-message/mg-message.js.map +1 -1
  91. package/dist/collection/components/molecules/mg-modal/mg-modal.js +317 -317
  92. package/dist/collection/components/molecules/mg-modal/mg-modal.js.map +1 -1
  93. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js +2 -2
  94. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js.map +1 -1
  95. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +216 -216
  96. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js.map +1 -1
  97. package/dist/collection/components/molecules/mg-panel/mg-panel.js +409 -399
  98. package/dist/collection/components/molecules/mg-panel/mg-panel.js.map +1 -1
  99. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +91 -91
  100. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js.map +1 -1
  101. package/dist/collection/components/molecules/mg-popover/mg-popover.js +336 -329
  102. package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
  103. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +94 -94
  104. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js.map +1 -1
  105. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +4 -4
  106. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js.map +1 -1
  107. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +348 -343
  108. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
  109. package/dist/collection/locales/fr/messages.json +4 -4
  110. package/dist/collection/locales/index.spec.js +20 -20
  111. package/dist/collection/locales/index.spec.js.map +1 -1
  112. package/dist/collection/utils/behaviors.utils.js +127 -127
  113. package/dist/collection/utils/behaviors.utils.js.map +1 -1
  114. package/dist/collection/utils/behaviors.utils.spec.js +46 -42
  115. package/dist/collection/utils/behaviors.utils.spec.js.map +1 -1
  116. package/dist/collection/utils/components.utils.js +77 -75
  117. package/dist/collection/utils/components.utils.js.map +1 -1
  118. package/dist/collection/utils/components.utils.spec.js +150 -140
  119. package/dist/collection/utils/components.utils.spec.js.map +1 -1
  120. package/dist/collection/utils/e2e.test.utils.js +21 -21
  121. package/dist/collection/utils/e2e.test.utils.js.map +1 -1
  122. package/dist/collection/utils/locale.utils.js +17 -17
  123. package/dist/collection/utils/locale.utils.js.map +1 -1
  124. package/dist/collection/utils/locale.utils.spec.js +45 -45
  125. package/dist/collection/utils/locale.utils.spec.js.map +1 -1
  126. package/dist/collection/utils/playwright.e2e.test.utils.js +41 -41
  127. package/dist/collection/utils/playwright.e2e.test.utils.js.map +1 -1
  128. package/dist/collection/utils/playwright.fixture.js +24 -0
  129. package/dist/collection/utils/playwright.fixture.js.map +1 -0
  130. package/dist/collection/utils/unit.test.utils.js +50 -50
  131. package/dist/collection/utils/unit.test.utils.js.map +1 -1
  132. package/dist/components/MgInput.js +98 -98
  133. package/dist/components/MgInput.js.map +1 -1
  134. package/dist/components/components.utils.js +78 -76
  135. package/dist/components/components.utils.js.map +1 -1
  136. package/dist/components/index2.js +21 -21
  137. package/dist/components/index2.js.map +1 -1
  138. package/dist/components/mg-action-more.d.ts +2 -2
  139. package/dist/components/mg-action-more.js +173 -173
  140. package/dist/components/mg-action-more.js.map +1 -1
  141. package/dist/components/mg-badge.d.ts +2 -2
  142. package/dist/components/mg-badge2.js +83 -83
  143. package/dist/components/mg-badge2.js.map +1 -1
  144. package/dist/components/mg-button.d.ts +2 -2
  145. package/dist/components/mg-button2.js +182 -182
  146. package/dist/components/mg-button2.js.map +1 -1
  147. package/dist/components/mg-card.d.ts +2 -2
  148. package/dist/components/mg-card2.js +77 -77
  149. package/dist/components/mg-card2.js.map +1 -1
  150. package/dist/components/mg-character-left.d.ts +2 -2
  151. package/dist/components/mg-character-left2.js +50 -50
  152. package/dist/components/mg-character-left2.js.map +1 -1
  153. package/dist/components/mg-details.d.ts +2 -2
  154. package/dist/components/mg-details.js +69 -69
  155. package/dist/components/mg-details.js.map +1 -1
  156. package/dist/components/mg-divider.d.ts +2 -2
  157. package/dist/components/mg-divider.js +30 -30
  158. package/dist/components/mg-divider.js.map +1 -1
  159. package/dist/components/mg-form.d.ts +2 -2
  160. package/dist/components/mg-form.js +203 -171
  161. package/dist/components/mg-form.js.map +1 -1
  162. package/dist/components/mg-icon.d.ts +2 -2
  163. package/dist/components/mg-icon2.js +319 -317
  164. package/dist/components/mg-icon2.js.map +1 -1
  165. package/dist/components/mg-illustrated-message.d.ts +2 -2
  166. package/dist/components/mg-illustrated-message.js +51 -51
  167. package/dist/components/mg-illustrated-message.js.map +1 -1
  168. package/dist/components/mg-input-checkbox-paginated.d.ts +2 -2
  169. package/dist/components/mg-input-checkbox-paginated2.js +170 -170
  170. package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
  171. package/dist/components/mg-input-checkbox.d.ts +2 -2
  172. package/dist/components/mg-input-checkbox.js +477 -480
  173. package/dist/components/mg-input-checkbox.js.map +1 -1
  174. package/dist/components/mg-input-date.d.ts +2 -2
  175. package/dist/components/mg-input-date.js +265 -265
  176. package/dist/components/mg-input-date.js.map +1 -1
  177. package/dist/components/mg-input-numeric.d.ts +2 -2
  178. package/dist/components/mg-input-numeric.js +353 -353
  179. package/dist/components/mg-input-numeric.js.map +1 -1
  180. package/dist/components/mg-input-password.d.ts +2 -2
  181. package/dist/components/mg-input-password.js +204 -204
  182. package/dist/components/mg-input-password.js.map +1 -1
  183. package/dist/components/mg-input-radio.d.ts +2 -2
  184. package/dist/components/mg-input-radio.js +234 -234
  185. package/dist/components/mg-input-radio.js.map +1 -1
  186. package/dist/components/mg-input-select.d.ts +2 -2
  187. package/dist/components/mg-input-select2.js +315 -315
  188. package/dist/components/mg-input-select2.js.map +1 -1
  189. package/dist/components/mg-input-text.d.ts +2 -2
  190. package/dist/components/mg-input-text2.js +305 -305
  191. package/dist/components/mg-input-text2.js.map +1 -1
  192. package/dist/components/mg-input-textarea.d.ts +2 -2
  193. package/dist/components/mg-input-textarea.js +276 -276
  194. package/dist/components/mg-input-textarea.js.map +1 -1
  195. package/dist/components/mg-input-title.d.ts +2 -2
  196. package/dist/components/mg-input-title2.js +60 -60
  197. package/dist/components/mg-input-title2.js.map +1 -1
  198. package/dist/components/mg-input-toggle.d.ts +2 -2
  199. package/dist/components/mg-input-toggle.js +251 -251
  200. package/dist/components/mg-input-toggle.js.map +1 -1
  201. package/dist/components/mg-item-more.d.ts +2 -2
  202. package/dist/components/mg-item-more.js +298 -283
  203. package/dist/components/mg-item-more.js.map +1 -1
  204. package/dist/components/mg-menu-item.d.ts +2 -2
  205. package/dist/components/mg-menu-item2.js +345 -345
  206. package/dist/components/mg-menu-item2.js.map +1 -1
  207. package/dist/components/mg-menu.conf.js +2 -2
  208. package/dist/components/mg-menu.conf.js.map +1 -1
  209. package/dist/components/mg-menu.d.ts +2 -2
  210. package/dist/components/mg-menu2.js +176 -176
  211. package/dist/components/mg-menu2.js.map +1 -1
  212. package/dist/components/mg-message.d.ts +2 -2
  213. package/dist/components/mg-message.js +197 -192
  214. package/dist/components/mg-message.js.map +1 -1
  215. package/dist/components/mg-modal.d.ts +2 -2
  216. package/dist/components/mg-modal.js +198 -198
  217. package/dist/components/mg-modal.js.map +1 -1
  218. package/dist/components/mg-pagination.d.ts +2 -2
  219. package/dist/components/mg-pagination2.js +133 -133
  220. package/dist/components/mg-pagination2.js.map +1 -1
  221. package/dist/components/mg-panel.d.ts +2 -2
  222. package/dist/components/mg-panel.js +238 -238
  223. package/dist/components/mg-panel.js.map +1 -1
  224. package/dist/components/mg-popover-content.d.ts +2 -2
  225. package/dist/components/mg-popover-content2.js +69 -69
  226. package/dist/components/mg-popover-content2.js.map +1 -1
  227. package/dist/components/mg-popover.d.ts +2 -2
  228. package/dist/components/mg-popover2.js +224 -222
  229. package/dist/components/mg-popover2.js.map +1 -1
  230. package/dist/components/mg-skip-links.d.ts +2 -2
  231. package/dist/components/mg-skip-links.js +57 -57
  232. package/dist/components/mg-skip-links.js.map +1 -1
  233. package/dist/components/mg-tabs.d.ts +2 -2
  234. package/dist/components/mg-tabs.js +243 -243
  235. package/dist/components/mg-tabs.js.map +1 -1
  236. package/dist/components/mg-tag.d.ts +2 -2
  237. package/dist/components/mg-tag.js +97 -97
  238. package/dist/components/mg-tag.js.map +1 -1
  239. package/dist/components/mg-tooltip-content.d.ts +2 -2
  240. package/dist/components/mg-tooltip-content2.js +30 -30
  241. package/dist/components/mg-tooltip-content2.js.map +1 -1
  242. package/dist/components/mg-tooltip.d.ts +2 -2
  243. package/dist/components/mg-tooltip2.js +316 -316
  244. package/dist/components/mg-tooltip2.js.map +1 -1
  245. package/dist/esm/{components.utils-6cf27db1.js → components.utils-0d67c31c.js} +102 -100
  246. package/dist/esm/components.utils-0d67c31c.js.map +1 -0
  247. package/dist/esm/{index-0f833068.js → index-f34a3a2c.js} +185 -87
  248. package/dist/esm/index-f34a3a2c.js.map +1 -0
  249. package/dist/esm/loader.js +3 -3
  250. package/dist/esm/mg-action-more_34.entry.js +5140 -5107
  251. package/dist/esm/mg-action-more_34.entry.js.map +1 -1
  252. package/dist/esm/mg-components.js +4 -4
  253. package/dist/esm/mg-components.js.map +1 -1
  254. package/dist/esm/mg-item-more.entry.js +237 -222
  255. package/dist/esm/mg-item-more.entry.js.map +1 -1
  256. package/dist/mg-components/locales/fr/messages.json +4 -4
  257. package/dist/mg-components/mg-components.esm.js +1 -1
  258. package/dist/mg-components/mg-components.esm.js.map +1 -1
  259. package/dist/mg-components/p-7444ff40.js +3 -0
  260. package/dist/mg-components/p-7444ff40.js.map +1 -0
  261. package/dist/mg-components/p-af42d17b.js +2 -0
  262. package/dist/mg-components/p-af42d17b.js.map +1 -0
  263. package/dist/mg-components/p-ce356bc0.entry.js +2 -0
  264. package/dist/mg-components/p-ce356bc0.entry.js.map +1 -0
  265. package/dist/mg-components/p-e591ba8f.entry.js +2 -0
  266. package/dist/mg-components/p-e591ba8f.entry.js.map +1 -0
  267. package/dist/types/assets/icons/index.d.ts +193 -0
  268. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +41 -41
  269. package/dist/types/components/atoms/mg-button/mg-button.d.ts +100 -100
  270. package/dist/types/components/atoms/mg-card/mg-card.d.ts +39 -39
  271. package/dist/types/components/atoms/mg-character-left/mg-character-left.d.ts +37 -37
  272. package/dist/types/components/atoms/mg-divider/mg-divider.d.ts +12 -12
  273. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +56 -56
  274. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +34 -34
  275. package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +51 -51
  276. package/dist/types/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.d.ts +12 -12
  277. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.conf.d.ts +3 -3
  278. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +113 -113
  279. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +5 -5
  280. package/dist/types/components/molecules/inputs/MgInput.d.ts +16 -16
  281. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.d.ts +100 -100
  282. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +26 -26
  283. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +262 -262
  284. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.conf.d.ts +4 -4
  285. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +150 -150
  286. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.d.ts +4 -4
  287. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +223 -223
  288. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +142 -142
  289. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +3 -3
  290. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +152 -152
  291. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +6 -6
  292. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +193 -193
  293. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +195 -195
  294. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +181 -181
  295. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +2 -2
  296. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +141 -141
  297. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +2 -2
  298. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +97 -97
  299. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +6 -6
  300. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +179 -179
  301. package/dist/types/components/molecules/mg-action-more/mg-action-more.conf.d.ts +12 -12
  302. package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +72 -72
  303. package/dist/types/components/molecules/mg-details/mg-details.d.ts +45 -45
  304. package/dist/types/components/molecules/mg-form/mg-form.conf.d.ts +16 -0
  305. package/dist/types/components/molecules/mg-form/mg-form.d.ts +120 -103
  306. package/dist/types/components/molecules/mg-illustrated-message/mg-illustrated-message.d.ts +27 -27
  307. package/dist/types/components/molecules/mg-item-more/mg-item-more.conf.d.ts +5 -5
  308. package/dist/types/components/molecules/mg-item-more/mg-item-more.d.ts +67 -61
  309. package/dist/types/components/molecules/mg-message/mg-message.d.ts +100 -93
  310. package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +107 -107
  311. package/dist/types/components/molecules/mg-pagination/mg-pagination.conf.d.ts +2 -2
  312. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +74 -74
  313. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +149 -149
  314. package/dist/types/components/molecules/mg-popover/mg-popover-content/mg-popover-content.d.ts +43 -43
  315. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +88 -88
  316. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.conf.d.ts +2 -2
  317. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.d.ts +40 -40
  318. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +10 -10
  319. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +118 -118
  320. package/dist/types/components.d.ts +312 -30
  321. package/dist/types/locales/index.d.ts +172 -172
  322. package/dist/types/stencil-public-runtime.d.ts +29 -0
  323. package/dist/types/utils/behaviors.utils.d.ts +65 -65
  324. package/dist/types/utils/components.utils.d.ts +32 -26
  325. package/dist/types/utils/locale.utils.d.ts +2 -2
  326. package/dist/types/utils/playwright.fixture.d.ts +3 -0
  327. package/dist/types/utils/unit.test.utils.d.ts +5 -5
  328. package/package.json +19 -33
  329. package/dist/cjs/components.utils-69435877.js.map +0 -1
  330. package/dist/cjs/index-60dd0c56.js.map +0 -1
  331. package/dist/collection/components/atoms/mg-badge/test/mg-badge.e2e.playwright.js +0 -33
  332. package/dist/collection/components/atoms/mg-badge/test/mg-badge.e2e.playwright.js.map +0 -1
  333. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js +0 -70
  334. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js.map +0 -1
  335. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js +0 -91
  336. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js.map +0 -1
  337. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js +0 -192
  338. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js.map +0 -1
  339. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js +0 -36
  340. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js.map +0 -1
  341. package/dist/collection/components/atoms/mg-card/test/mg-card.spec.js +0 -43
  342. package/dist/collection/components/atoms/mg-card/test/mg-card.spec.js.map +0 -1
  343. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.e2e.js +0 -15
  344. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.e2e.js.map +0 -1
  345. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.spec.js +0 -42
  346. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.spec.js.map +0 -1
  347. package/dist/collection/components/atoms/mg-divider/test/mg-divider.e2e.js +0 -11
  348. package/dist/collection/components/atoms/mg-divider/test/mg-divider.e2e.js.map +0 -1
  349. package/dist/collection/components/atoms/mg-divider/test/mg-divider.spec.js +0 -14
  350. package/dist/collection/components/atoms/mg-divider/test/mg-divider.spec.js.map +0 -1
  351. package/dist/collection/components/atoms/mg-icon/test/mg-icon.e2e.js +0 -55
  352. package/dist/collection/components/atoms/mg-icon/test/mg-icon.e2e.js.map +0 -1
  353. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js +0 -84
  354. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js.map +0 -1
  355. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.js +0 -12
  356. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.js.map +0 -1
  357. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.spec.js +0 -23
  358. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.spec.js.map +0 -1
  359. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js +0 -23
  360. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js.map +0 -1
  361. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js +0 -71
  362. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js.map +0 -1
  363. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js +0 -138
  364. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js.map +0 -1
  365. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js +0 -272
  366. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js.map +0 -1
  367. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js +0 -237
  368. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js.map +0 -1
  369. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js +0 -634
  370. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js.map +0 -1
  371. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.e2e.js +0 -123
  372. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.e2e.js.map +0 -1
  373. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js +0 -383
  374. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js.map +0 -1
  375. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.e2e.js +0 -212
  376. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.e2e.js.map +0 -1
  377. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js +0 -460
  378. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js.map +0 -1
  379. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.e2e.js +0 -115
  380. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.e2e.js.map +0 -1
  381. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js +0 -293
  382. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js.map +0 -1
  383. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js +0 -154
  384. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js.map +0 -1
  385. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js +0 -359
  386. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js.map +0 -1
  387. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.e2e.js +0 -194
  388. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.e2e.js.map +0 -1
  389. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js +0 -403
  390. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js.map +0 -1
  391. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js +0 -147
  392. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js.map +0 -1
  393. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js +0 -355
  394. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js.map +0 -1
  395. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.e2e.js +0 -129
  396. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.e2e.js.map +0 -1
  397. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js +0 -320
  398. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js.map +0 -1
  399. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js +0 -108
  400. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js.map +0 -1
  401. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js +0 -247
  402. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js.map +0 -1
  403. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.js +0 -239
  404. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.js.map +0 -1
  405. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.spec.js +0 -175
  406. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.spec.js.map +0 -1
  407. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js +0 -100
  408. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js.map +0 -1
  409. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.spec.js +0 -295
  410. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.spec.js.map +0 -1
  411. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js +0 -136
  412. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js.map +0 -1
  413. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js +0 -195
  414. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js.map +0 -1
  415. package/dist/collection/components/molecules/mg-details/test/mg-details.e2e.playwright.js +0 -30
  416. package/dist/collection/components/molecules/mg-details/test/mg-details.e2e.playwright.js.map +0 -1
  417. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js +0 -42
  418. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js.map +0 -1
  419. package/dist/collection/components/molecules/mg-form/test/mg-form.e2e.js +0 -169
  420. package/dist/collection/components/molecules/mg-form/test/mg-form.e2e.js.map +0 -1
  421. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js +0 -292
  422. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js.map +0 -1
  423. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.e2e.js +0 -39
  424. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.e2e.js.map +0 -1
  425. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.spec.js +0 -36
  426. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.spec.js.map +0 -1
  427. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.js +0 -85
  428. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.js.map +0 -1
  429. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.spec.js +0 -106
  430. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.spec.js.map +0 -1
  431. package/dist/collection/components/molecules/mg-message/test/mg-message.e2e.js +0 -64
  432. package/dist/collection/components/molecules/mg-message/test/mg-message.e2e.js.map +0 -1
  433. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js +0 -109
  434. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js.map +0 -1
  435. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js +0 -62
  436. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js.map +0 -1
  437. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.template.js +0 -40
  438. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.template.js.map +0 -1
  439. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js +0 -26
  440. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js.map +0 -1
  441. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js +0 -122
  442. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js.map +0 -1
  443. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.js +0 -57
  444. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.js.map +0 -1
  445. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.spec.js +0 -121
  446. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.spec.js.map +0 -1
  447. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js +0 -106
  448. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js.map +0 -1
  449. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js +0 -213
  450. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js.map +0 -1
  451. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js +0 -140
  452. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js.map +0 -1
  453. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js +0 -142
  454. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js.map +0 -1
  455. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.e2e.js +0 -55
  456. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.e2e.js.map +0 -1
  457. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.spec.js +0 -55
  458. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.spec.js.map +0 -1
  459. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.js +0 -76
  460. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.js.map +0 -1
  461. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js +0 -332
  462. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js.map +0 -1
  463. package/dist/collection/utils/stencil.e2e.test.utils.js +0 -33
  464. package/dist/collection/utils/stencil.e2e.test.utils.js.map +0 -1
  465. package/dist/esm/components.utils-6cf27db1.js.map +0 -1
  466. package/dist/esm/index-0f833068.js.map +0 -1
  467. package/dist/mg-components/p-10ed4425.entry.js +0 -2
  468. package/dist/mg-components/p-10ed4425.entry.js.map +0 -1
  469. package/dist/mg-components/p-36a51c5e.js +0 -2
  470. package/dist/mg-components/p-36a51c5e.js.map +0 -1
  471. package/dist/mg-components/p-91feda5a.entry.js +0 -2
  472. package/dist/mg-components/p-91feda5a.entry.js.map +0 -1
  473. package/dist/mg-components/p-9b12021b.js +0 -3
  474. package/dist/mg-components/p-9b12021b.js.map +0 -1
  475. package/dist/types/components/atoms/mg-badge/test/mg-badge.e2e.playwright.d.ts +0 -1
  476. package/dist/types/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.d.ts +0 -1
  477. package/dist/types/components/atoms/mg-tag/test/mg-tag.e2e.playwright.d.ts +0 -1
  478. package/dist/types/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.d.ts +0 -1
  479. package/dist/types/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.d.ts +0 -1
  480. package/dist/types/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.d.ts +0 -1
  481. package/dist/types/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.d.ts +0 -1
  482. package/dist/types/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.d.ts +0 -1
  483. package/dist/types/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.d.ts +0 -2
  484. package/dist/types/components/molecules/mg-details/test/mg-details.e2e.playwright.d.ts +0 -1
  485. package/dist/types/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.d.ts +0 -1
  486. package/dist/types/components/molecules/mg-modal/test/mg-modal.e2e.playwright.d.ts +0 -1
  487. package/dist/types/components/molecules/mg-modal/test/mg-modal.e2e.template.d.ts +0 -12
  488. package/dist/types/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.d.ts +0 -1
  489. package/dist/types/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.d.ts +0 -1
  490. package/dist/types/components/molecules/mg-panel/test/mg-panel.e2e.playwright.d.ts +0 -1
  491. package/dist/types/components/molecules/mg-popover/test/mg-popover.e2e.playwright.d.ts +0 -1
  492. package/dist/types/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.d.ts +0 -1
  493. package/dist/types/utils/stencil.e2e.test.utils.d.ts +0 -14
@@ -1,272 +0,0 @@
1
- import { h } from "@stencil/core";
2
- import { newSpecPage } from "@stencil/core/testing";
3
- import { MgTooltip } from "../mg-tooltip";
4
- import { MgButton } from "../../mg-button/mg-button";
5
- import { MgIcon } from "../../mg-icon/mg-icon";
6
- import { setupMutationObserverMock, mockWindowFrames, mockConsoleError } from "../../../../utils/unit.test.utils";
7
- import { MgTooltipContent } from "../mg-tooltip-content/mg-tooltip-content";
8
- mockWindowFrames();
9
- mockConsoleError();
10
- const getPage = (args, element) => newSpecPage({
11
- components: [MgTooltip, MgTooltipContent, MgButton, MgIcon],
12
- template: () => h("mg-tooltip", Object.assign({}, args), element),
13
- });
14
- describe('mg-tooltip', () => {
15
- let fireMo;
16
- beforeEach(() => {
17
- jest.useFakeTimers();
18
- setupMutationObserverMock({
19
- observe: function () {
20
- fireMo = this.cb;
21
- },
22
- disconnect: function () {
23
- return null;
24
- },
25
- takeRecords: () => [],
26
- });
27
- });
28
- afterEach(() => jest.runOnlyPendingTimers());
29
- describe.each([
30
- () => h("span", null, "span"),
31
- () => h("button", { "aria-describedby": "blu" }, "button"),
32
- () => h("mg-icon", { icon: "check-circle" }),
33
- () => h("mg-button", { identifier: "identifier" }, "mg-button"),
34
- () => (h("mg-button", { identifier: "identifier", disabled: true }, "mg-button.disabled")),
35
- ])('render', element => {
36
- test.each([true, false])('Should render with tooltip', async (disabled) => {
37
- const page = await getPage({ identifier: 'identifier', message: 'My tooltip message', disabled }, element());
38
- expect(page.root).toMatchSnapshot();
39
- const mgTooltip = page.doc.querySelector('mg-tooltip');
40
- mgTooltip.disabled = !disabled;
41
- await page.waitForChanges();
42
- expect(page.root).toMatchSnapshot();
43
- mgTooltip.disabled = disabled;
44
- await page.waitForChanges();
45
- expect(page.root).toMatchSnapshot();
46
- });
47
- });
48
- test('Should render with element with given placement', async () => {
49
- const args = { identifier: 'identifier', message: 'My tooltip message', placement: 'auto' };
50
- const { root } = await getPage(args, h("span", null, "span"));
51
- expect(root).toMatchSnapshot();
52
- });
53
- test.each(['', ' ', undefined])('Should throw error, case invalid message prop', async (message) => {
54
- expect.assertions(1);
55
- try {
56
- await getPage({ message }, h("span", null, "span"));
57
- }
58
- catch (err) {
59
- expect(err.message).toContain('<mg-tooltip> prop "message" is required.');
60
- }
61
- });
62
- describe.each([
63
- { eventIn: 'mouseenter', eventOut: 'mouseleave' },
64
- { eventIn: 'focus', eventOut: 'blur' },
65
- { eventIn: 'mouseenter', eventOut: 'clickDocument' },
66
- ])('Should manage display on events enter with %s, leave with %s', ({ eventIn, eventOut }) => {
67
- test.each([
68
- h("span", null, "span"),
69
- h("button", { "aria-describedby": "blu" }, "button"),
70
- h("mg-icon", { icon: "check-circle" }),
71
- h("mg-button", { identifier: "identifier-mg-button" }, "mg-button"),
72
- ])('element', async (element) => {
73
- const args = { identifier: 'identifier', message: 'blu' };
74
- const page = await getPage(args, element);
75
- const mgTooltip = page.doc.querySelector('mg-tooltip');
76
- const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);
77
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
78
- linkedTooltipElement.dispatchEvent(new CustomEvent(eventIn, { bubbles: true }));
79
- // flush windows addEventListener timeout
80
- jest.runOnlyPendingTimers();
81
- await page.waitForChanges();
82
- expect(page.root).toMatchSnapshot();
83
- expect(tooltip).toHaveAttribute('data-show');
84
- if (eventOut !== 'clickDocument')
85
- linkedTooltipElement.dispatchEvent(new CustomEvent(eventOut, { bubbles: true }));
86
- else
87
- page.doc.dispatchEvent(new Event('click', { bubbles: true }));
88
- if (eventOut !== 'blur')
89
- jest.runOnlyPendingTimers();
90
- await page.waitForChanges();
91
- expect(tooltip).not.toHaveAttribute('data-show');
92
- });
93
- test.each([false, true])('should not call event methods when disabled and display:%s', async (display) => {
94
- const args = { identifier: 'identifier', message: 'blu', disabled: true, display };
95
- const page = await getPage(args, h("span", null, "span"));
96
- const mgTooltip = page.doc.querySelector('mg-tooltip');
97
- const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);
98
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
99
- [eventIn, eventOut].forEach(async (event) => {
100
- linkedTooltipElement.dispatchEvent(new CustomEvent(event, { bubbles: true }));
101
- await page.waitForChanges();
102
- if (display) {
103
- expect(tooltip).toHaveAttribute('data-show');
104
- }
105
- else {
106
- expect(tooltip).not.toHaveAttribute('data-show');
107
- }
108
- });
109
- });
110
- });
111
- test.each([
112
- h("span", null, "span"),
113
- h("button", { "aria-describedby": "blu" }, "button"),
114
- h("mg-icon", { icon: "check-circle" }),
115
- h("mg-button", { identifier: "identifier-mg-button" }, "mg-button"),
116
- ])('should manage cross mouse and keyboard navigation', async (element) => {
117
- const args = { identifier: 'identifier', message: 'blu' };
118
- const page = await getPage(args, element);
119
- const mgTooltip = page.doc.querySelector('mg-tooltip');
120
- const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);
121
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
122
- linkedTooltipElement.dispatchEvent(new CustomEvent('focus', { bubbles: true }));
123
- await page.waitForChanges();
124
- expect(tooltip).toHaveAttribute('data-show');
125
- page.doc.dispatchEvent(new KeyboardEvent('keydown', { code: 'Escape' }));
126
- await page.waitForChanges();
127
- expect(tooltip).not.toHaveAttribute('data-show');
128
- linkedTooltipElement.dispatchEvent(new CustomEvent('mouseenter', { bubbles: true }));
129
- await page.waitForChanges();
130
- expect(tooltip).toHaveAttribute('data-show');
131
- linkedTooltipElement.dispatchEvent(new CustomEvent('mouseleave', { bubbles: true }));
132
- // flush windows addEventListener timeout
133
- jest.runOnlyPendingTimers();
134
- await page.waitForChanges();
135
- expect(tooltip).not.toHaveAttribute('data-show');
136
- });
137
- test.each([true, false])('Should toggle tooltip from prop display, case display %s', async (display) => {
138
- const args = { identifier: 'identifier', message: 'batman', display };
139
- const page = await getPage(args, h("span", null, "batman"));
140
- const mgTooltip = page.doc.querySelector('mg-tooltip');
141
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
142
- expect(page.root).toMatchSnapshot();
143
- if (display) {
144
- expect(tooltip).toHaveAttribute('data-show');
145
- }
146
- else {
147
- expect(tooltip).not.toHaveAttribute('data-show');
148
- }
149
- page.rootInstance.display = !display;
150
- await page.waitForChanges();
151
- expect(page.root).toMatchSnapshot();
152
- if (display) {
153
- expect(tooltip).not.toHaveAttribute('data-show');
154
- }
155
- else {
156
- expect(tooltip).toHaveAttribute('data-show');
157
- }
158
- });
159
- describe('hide method', () => {
160
- test.each(['Tab', 'Space', 'Enter', 'i'])('should prevent keyboardEvent, case not "Escape" code', async (code) => {
161
- const args = { identifier: 'identifier', message: 'batman' };
162
- const page = await getPage(args, h("span", { id: "batman" }, "batman"));
163
- const mgTooltip = page.doc.querySelector('mg-tooltip');
164
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
165
- const element = page.doc.getElementById('batman');
166
- element.dispatchEvent(new CustomEvent('focus', { bubbles: true }));
167
- await page.waitForChanges();
168
- expect(tooltip).toHaveAttribute('data-show');
169
- page.doc.dispatchEvent(new KeyboardEvent('keydown', { code }));
170
- await page.waitForChanges();
171
- expect(tooltip).toHaveAttribute('data-show');
172
- });
173
- test('should hide tooltip with keyboardEvent, case "Escape" code', async () => {
174
- const args = { identifier: 'identifier', message: 'batman' };
175
- const page = await getPage(args, h("span", { id: "batman" }, "batman"));
176
- const mgTooltip = page.doc.querySelector('mg-tooltip');
177
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
178
- const element = page.doc.getElementById('batman');
179
- element.dispatchEvent(new CustomEvent('focus', { bubbles: true }));
180
- await page.waitForChanges();
181
- expect(tooltip).toHaveAttribute('data-show');
182
- page.doc.dispatchEvent(new KeyboardEvent('keydown', { code: 'Escape' }));
183
- await page.waitForChanges();
184
- expect(tooltip).not.toHaveAttribute('data-show');
185
- });
186
- });
187
- test('Should keep displayed tooltip when hover it', async () => {
188
- const element = h("span", null, "span");
189
- const eventIn = 'mouseenter';
190
- const eventOut = 'mouseleave';
191
- const args = { identifier: 'identifier', message: 'blu' };
192
- const page = await getPage(args, element);
193
- const mgTooltip = page.doc.querySelector('mg-tooltip');
194
- const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);
195
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
196
- // 1. hover tooltipedElement and display tooltip
197
- linkedTooltipElement.dispatchEvent(new CustomEvent(eventIn, { bubbles: true }));
198
- await page.waitForChanges();
199
- expect(page.root).toMatchSnapshot();
200
- expect(tooltip).toHaveAttribute('data-show');
201
- // 2.1 leave tooltipedElement and tooltip stay displayed
202
- linkedTooltipElement.dispatchEvent(new CustomEvent(eventOut, { bubbles: true }));
203
- await page.waitForChanges();
204
- expect(tooltip).toHaveAttribute('data-show');
205
- // 2.2 hover on tooltipedElement and tooltip stay displayed
206
- tooltip.dispatchEvent(new CustomEvent(eventIn, { bubbles: true }));
207
- await page.waitForChanges();
208
- // 2.3 flush promise to keep tooltip display thanks to guard
209
- jest.advanceTimersByTime(200);
210
- await page.waitForChanges();
211
- expect(tooltip).toHaveAttribute('data-show');
212
- // 3 leave tooltipElement
213
- tooltip.dispatchEvent(new CustomEvent(eventOut, { bubbles: true }));
214
- await page.waitForChanges();
215
- // 3.2 flush promise to pass tooltip guard and hide it
216
- jest.advanceTimersByTime(200);
217
- await page.waitForChanges();
218
- expect(tooltip).not.toHaveAttribute('data-show');
219
- });
220
- test('Should prevent focus guard with click event', async () => {
221
- const args = { identifier: 'identifier', message: 'batman' };
222
- const page = await getPage(args, h("mg-button", null, "batman"));
223
- const mgTooltip = page.doc.querySelector('mg-tooltip');
224
- const tooltip = mgTooltip.querySelector(`#${args.identifier}`);
225
- const element = page.doc.querySelector('mg-button');
226
- element.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));
227
- await page.waitForChanges();
228
- expect(tooltip).toHaveAttribute('data-show');
229
- // recompose a click event as click event is not properly mock by jest `mousedown` + `focus` + `mouseup`
230
- for (const event of ['mousedown', 'focus', 'mouseup']) {
231
- const Constructor = event === 'focus' ? FocusEvent : MouseEvent;
232
- element.dispatchEvent(new Constructor(event, { bubbles: true }));
233
- await page.waitForChanges();
234
- }
235
- expect(tooltip).toHaveAttribute('data-show');
236
- element.dispatchEvent(new MouseEvent('mouseleave', { bubbles: true }));
237
- await page.waitForChanges();
238
- jest.runOnlyPendingTimers();
239
- expect(tooltip).not.toHaveAttribute('data-show');
240
- });
241
- test.each(['button', 'mg-button'])('Should update %s wrapper dynamically', async (TagName) => {
242
- const page = await getPage({ identifier: 'identifier', message: 'My tooltip message' }, h(TagName, { identifier: "identifier", disabled: true }, TagName, ".disabled"));
243
- expect(page.root).toMatchSnapshot();
244
- // Mock replaceWith
245
- const mgTooltip = page.doc.querySelector('mg-tooltip');
246
- mgTooltip.firstElementChild.replaceWith = jest.fn(element => {
247
- mgTooltip.innerHTML = element.parentElement.innerHTML;
248
- });
249
- const mgButton = page.doc.querySelector(TagName);
250
- mgButton.disabled = false;
251
- fireMo([{ attributeName: TagName === 'MG-BUTTON' ? 'aria-disabled' : 'disabled' }]);
252
- await page.waitForChanges();
253
- expect(page.root).toMatchSnapshot();
254
- });
255
- test('Should update popper instance when "message" prop change', async () => {
256
- const page = await getPage({ identifier: 'identifier', message: 'My tooltip message' }, h("mg-button", { identifier: "identifier", disabled: true }, "mg-button.disabled"));
257
- const spy = jest.spyOn(page.rootInstance.popper, 'update');
258
- const mgTooltip = page.doc.querySelector('mg-tooltip');
259
- mgTooltip.message = 'my new message';
260
- await page.waitForChanges();
261
- expect(spy).toHaveBeenCalled();
262
- });
263
- test('should update mg-popover-content id when "identifier" is updated', async () => {
264
- const page = await getPage({ identifier: 'identifier', message: 'My tooltip message' }, h("mg-button", { identifier: "identifier", disabled: true }, "mg-button.disabled"));
265
- expect(page.root).toMatchSnapshot();
266
- const mgTooltip = page.doc.querySelector('mg-tooltip');
267
- mgTooltip.identifier = 'new-identifier';
268
- await page.waitForChanges();
269
- expect(page.root).toMatchSnapshot();
270
- });
271
- });
272
- //# sourceMappingURL=mg-tooltip.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mg-tooltip.spec.js","sourceRoot":"","sources":["../../../../../src/components/atoms/mg-tooltip/test/mg-tooltip.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { MgTooltip } from '../mg-tooltip';\nimport { MgButton } from '../../mg-button/mg-button';\nimport { MgIcon } from '../../mg-icon/mg-icon';\nimport { setupMutationObserverMock, mockWindowFrames, mockConsoleError } from '../../../../utils/unit.test.utils';\nimport { MgTooltipContent } from '../mg-tooltip-content/mg-tooltip-content';\n\nmockWindowFrames();\nmockConsoleError();\n\nconst getPage = (args, element) =>\n newSpecPage({\n components: [MgTooltip, MgTooltipContent, MgButton, MgIcon],\n template: () => <mg-tooltip {...args}>{element}</mg-tooltip>,\n });\n\ndescribe('mg-tooltip', () => {\n let fireMo;\n\n beforeEach(() => {\n jest.useFakeTimers();\n setupMutationObserverMock({\n observe: function () {\n fireMo = this.cb;\n },\n disconnect: function () {\n return null;\n },\n takeRecords: () => [],\n });\n });\n\n afterEach(() => jest.runOnlyPendingTimers());\n\n describe.each([\n () => <span>span</span>,\n () => <button aria-describedby=\"blu\">button</button>,\n () => <mg-icon icon=\"check-circle\"></mg-icon>,\n () => <mg-button identifier=\"identifier\">mg-button</mg-button>,\n () => (\n <mg-button identifier=\"identifier\" disabled>\n mg-button.disabled\n </mg-button>\n ),\n ])('render', element => {\n test.each([true, false])('Should render with tooltip', async disabled => {\n const page = await getPage({ identifier: 'identifier', message: 'My tooltip message', disabled }, element());\n expect(page.root).toMatchSnapshot();\n\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n mgTooltip.disabled = !disabled;\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n mgTooltip.disabled = disabled;\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n });\n\n test('Should render with element with given placement', async () => {\n const args = { identifier: 'identifier', message: 'My tooltip message', placement: 'auto' };\n const { root } = await getPage(args, <span>span</span>);\n expect(root).toMatchSnapshot();\n });\n\n test.each(['', ' ', undefined])('Should throw error, case invalid message prop', async message => {\n expect.assertions(1);\n try {\n await getPage({ message }, <span>span</span>);\n } catch (err) {\n expect(err.message).toContain('<mg-tooltip> prop \"message\" is required.');\n }\n });\n\n describe.each([\n { eventIn: 'mouseenter', eventOut: 'mouseleave' },\n { eventIn: 'focus', eventOut: 'blur' },\n { eventIn: 'mouseenter', eventOut: 'clickDocument' },\n ])('Should manage display on events enter with %s, leave with %s', ({ eventIn, eventOut }) => {\n test.each([\n <span>span</span>,\n <button aria-describedby=\"blu\">button</button>,\n <mg-icon icon=\"check-circle\"></mg-icon>,\n <mg-button identifier=\"identifier-mg-button\">mg-button</mg-button>,\n ])('element', async element => {\n const args = { identifier: 'identifier', message: 'blu' };\n const page = await getPage(args, element);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n\n linkedTooltipElement.dispatchEvent(new CustomEvent(eventIn, { bubbles: true }));\n\n // flush windows addEventListener timeout\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n expect(tooltip).toHaveAttribute('data-show');\n\n if (eventOut !== 'clickDocument') linkedTooltipElement.dispatchEvent(new CustomEvent(eventOut, { bubbles: true }));\n else page.doc.dispatchEvent(new Event('click', { bubbles: true }));\n\n if (eventOut !== 'blur') jest.runOnlyPendingTimers();\n\n await page.waitForChanges();\n\n expect(tooltip).not.toHaveAttribute('data-show');\n });\n\n test.each([false, true])('should not call event methods when disabled and display:%s', async display => {\n const args = { identifier: 'identifier', message: 'blu', disabled: true, display };\n const page = await getPage(args, <span>span</span>);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n\n [eventIn, eventOut].forEach(async event => {\n linkedTooltipElement.dispatchEvent(new CustomEvent(event, { bubbles: true }));\n await page.waitForChanges();\n if (display) {\n expect(tooltip).toHaveAttribute('data-show');\n } else {\n expect(tooltip).not.toHaveAttribute('data-show');\n }\n });\n });\n });\n\n test.each([\n <span>span</span>,\n <button aria-describedby=\"blu\">button</button>,\n <mg-icon icon=\"check-circle\"></mg-icon>,\n <mg-button identifier=\"identifier-mg-button\">mg-button</mg-button>,\n ])('should manage cross mouse and keyboard navigation', async element => {\n const args = { identifier: 'identifier', message: 'blu' };\n const page = await getPage(args, element);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n\n linkedTooltipElement.dispatchEvent(new CustomEvent('focus', { bubbles: true }));\n await page.waitForChanges();\n expect(tooltip).toHaveAttribute('data-show');\n\n page.doc.dispatchEvent(new KeyboardEvent('keydown', { code: 'Escape' }));\n await page.waitForChanges();\n expect(tooltip).not.toHaveAttribute('data-show');\n\n linkedTooltipElement.dispatchEvent(new CustomEvent('mouseenter', { bubbles: true }));\n await page.waitForChanges();\n expect(tooltip).toHaveAttribute('data-show');\n\n linkedTooltipElement.dispatchEvent(new CustomEvent('mouseleave', { bubbles: true }));\n // flush windows addEventListener timeout\n jest.runOnlyPendingTimers();\n\n await page.waitForChanges();\n expect(tooltip).not.toHaveAttribute('data-show');\n });\n\n test.each([true, false])('Should toggle tooltip from prop display, case display %s', async display => {\n const args = { identifier: 'identifier', message: 'batman', display };\n const page = await getPage(args, <span>batman</span>);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n\n expect(page.root).toMatchSnapshot();\n if (display) {\n expect(tooltip).toHaveAttribute('data-show');\n } else {\n expect(tooltip).not.toHaveAttribute('data-show');\n }\n\n page.rootInstance.display = !display;\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n if (display) {\n expect(tooltip).not.toHaveAttribute('data-show');\n } else {\n expect(tooltip).toHaveAttribute('data-show');\n }\n });\n\n describe('hide method', () => {\n test.each(['Tab', 'Space', 'Enter', 'i'])('should prevent keyboardEvent, case not \"Escape\" code', async code => {\n const args = { identifier: 'identifier', message: 'batman' };\n const page = await getPage(args, <span id=\"batman\">batman</span>);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n const element = page.doc.getElementById('batman');\n\n element.dispatchEvent(new CustomEvent('focus', { bubbles: true }));\n await page.waitForChanges();\n\n expect(tooltip).toHaveAttribute('data-show');\n\n page.doc.dispatchEvent(new KeyboardEvent('keydown', { code }));\n await page.waitForChanges();\n\n expect(tooltip).toHaveAttribute('data-show');\n });\n\n test('should hide tooltip with keyboardEvent, case \"Escape\" code', async () => {\n const args = { identifier: 'identifier', message: 'batman' };\n const page = await getPage(args, <span id=\"batman\">batman</span>);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n const element = page.doc.getElementById('batman');\n\n element.dispatchEvent(new CustomEvent('focus', { bubbles: true }));\n await page.waitForChanges();\n\n expect(tooltip).toHaveAttribute('data-show');\n\n page.doc.dispatchEvent(new KeyboardEvent('keydown', { code: 'Escape' }));\n await page.waitForChanges();\n\n expect(tooltip).not.toHaveAttribute('data-show');\n });\n });\n\n test('Should keep displayed tooltip when hover it', async () => {\n const element = <span>span</span>;\n const eventIn = 'mouseenter';\n const eventOut = 'mouseleave';\n const args = { identifier: 'identifier', message: 'blu' };\n const page = await getPage(args, element);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const linkedTooltipElement = mgTooltip.querySelector(`[aria-describedby*='${args.identifier}']`);\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n\n // 1. hover tooltipedElement and display tooltip\n linkedTooltipElement.dispatchEvent(new CustomEvent(eventIn, { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n expect(tooltip).toHaveAttribute('data-show');\n\n // 2.1 leave tooltipedElement and tooltip stay displayed\n linkedTooltipElement.dispatchEvent(new CustomEvent(eventOut, { bubbles: true }));\n await page.waitForChanges();\n\n expect(tooltip).toHaveAttribute('data-show');\n\n // 2.2 hover on tooltipedElement and tooltip stay displayed\n tooltip.dispatchEvent(new CustomEvent(eventIn, { bubbles: true }));\n await page.waitForChanges();\n\n // 2.3 flush promise to keep tooltip display thanks to guard\n jest.advanceTimersByTime(200);\n await page.waitForChanges();\n\n expect(tooltip).toHaveAttribute('data-show');\n\n // 3 leave tooltipElement\n tooltip.dispatchEvent(new CustomEvent(eventOut, { bubbles: true }));\n await page.waitForChanges();\n\n // 3.2 flush promise to pass tooltip guard and hide it\n jest.advanceTimersByTime(200);\n await page.waitForChanges();\n\n expect(tooltip).not.toHaveAttribute('data-show');\n });\n\n test('Should prevent focus guard with click event', async () => {\n const args = { identifier: 'identifier', message: 'batman' };\n const page = await getPage(args, <mg-button>batman</mg-button>);\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n const tooltip = mgTooltip.querySelector(`#${args.identifier}`);\n const element = page.doc.querySelector('mg-button');\n\n element.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));\n await page.waitForChanges();\n\n expect(tooltip).toHaveAttribute('data-show');\n\n // recompose a click event as click event is not properly mock by jest `mousedown` + `focus` + `mouseup`\n for (const event of ['mousedown', 'focus', 'mouseup']) {\n const Constructor = event === 'focus' ? FocusEvent : MouseEvent;\n element.dispatchEvent(new Constructor(event, { bubbles: true }));\n await page.waitForChanges();\n }\n\n expect(tooltip).toHaveAttribute('data-show');\n\n element.dispatchEvent(new MouseEvent('mouseleave', { bubbles: true }));\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n expect(tooltip).not.toHaveAttribute('data-show');\n });\n\n test.each(['button', 'mg-button'])('Should update %s wrapper dynamically', async TagName => {\n const page = await getPage(\n { identifier: 'identifier', message: 'My tooltip message' },\n <TagName identifier=\"identifier\" disabled>\n {TagName}.disabled\n </TagName>,\n );\n\n expect(page.root).toMatchSnapshot();\n\n // Mock replaceWith\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n mgTooltip.firstElementChild.replaceWith = jest.fn(element => {\n mgTooltip.innerHTML = (element as Node).parentElement.innerHTML;\n });\n\n const mgButton: HTMLButtonElement | HTMLMgButtonElement = page.doc.querySelector(TagName);\n mgButton.disabled = false;\n fireMo([{ attributeName: TagName === 'MG-BUTTON' ? 'aria-disabled' : 'disabled' }]);\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test('Should update popper instance when \"message\" prop change', async () => {\n const page = await getPage(\n { identifier: 'identifier', message: 'My tooltip message' },\n <mg-button identifier=\"identifier\" disabled>\n mg-button.disabled\n </mg-button>,\n );\n\n const spy = jest.spyOn(page.rootInstance.popper, 'update');\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n mgTooltip.message = 'my new message';\n\n await page.waitForChanges();\n\n expect(spy).toHaveBeenCalled();\n });\n\n test('should update mg-popover-content id when \"identifier\" is updated', async () => {\n const page = await getPage(\n { identifier: 'identifier', message: 'My tooltip message' },\n <mg-button identifier=\"identifier\" disabled>\n mg-button.disabled\n </mg-button>,\n );\n\n expect(page.root).toMatchSnapshot();\n\n const mgTooltip = page.doc.querySelector('mg-tooltip');\n mgTooltip.identifier = 'new-identifier';\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
@@ -1,237 +0,0 @@
1
- import { setPageContent, expect, describe, describeEach, testEach, updateScreenshotClass, test } from "../../../../../utils/playwright.e2e.test.utils";
2
- import { createID } from "../../../../../utils/components.utils";
3
- import { renderAttributes, renderProperties } from "../../../../../utils/e2e.test.utils";
4
- import { checkboxTypes } from "../mg-input-checkbox.conf";
5
- const TIMEOUT = 1000;
6
- const baseArgs = {
7
- label: 'legend',
8
- value: [
9
- { title: 'Batman', value: false },
10
- { title: 'Robin', value: false },
11
- { title: 'Joker', value: false },
12
- { title: 'Bane', value: false },
13
- ],
14
- };
15
- const createHTML = (args, identifier = createID()) => `<mg-input-checkbox ${renderAttributes(Object.assign(Object.assign({}, args), { identifier }))}></mg-input-checkbox><script>${renderProperties(args, `[identifier="${identifier}"]`)}</script>`;
16
- const waitForInteractiveElement = async (page, type) => {
17
- // wait few seconds to insure to have the interactive element rendered
18
- const interactiveElement = await page.locator(type === 'multi' ? 'mg-button[tabindex="0"].hydrated' : 'mg-icon[tabindex="0"].hydrated').first();
19
- return interactiveElement.waitFor({ timeout: 3000 });
20
- };
21
- describe('mg-input-checkbox', () => {
22
- describeEach(checkboxTypes)('type %s', (type) => {
23
- testEach([
24
- Object.assign(Object.assign({}, baseArgs), { readonly: true }),
25
- Object.assign(Object.assign({}, baseArgs), { readonly: true, labelOnTop: true }),
26
- Object.assign(Object.assign({}, baseArgs), { disabled: true }),
27
- Object.assign(Object.assign({}, baseArgs), { inputVerticalList: true, helpText: 'HelpText Message' }),
28
- Object.assign(Object.assign({}, baseArgs), { inputVerticalList: true, helpText: 'HelpText Message', labelOnTop: true }),
29
- Object.assign(Object.assign({}, baseArgs), { helpText: `<mg-icon icon='user' size='small'></mg-icon> Welcome batman` }),
30
- Object.assign(Object.assign({}, baseArgs), { helpText: 'HelpText Message', required: true }),
31
- Object.assign(Object.assign({}, baseArgs), { helpText: 'HelpText Message', required: true, readonly: true }),
32
- Object.assign(Object.assign({}, baseArgs), { helpText: 'HelpText Message', required: true, disabled: true }),
33
- ])('Should render with template %s', async (page, args) => {
34
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, args), { type, value: [
35
- { title: 'Batman', value: true },
36
- { title: 'Robin', value: false },
37
- { title: 'Joker', value: null },
38
- { title: 'Bane', value: true, disabled: true },
39
- ] })));
40
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
41
- });
42
- testEach([true, false])(`render with tooltip, case label-on-top %s`, async (page, labelOnTop) => {
43
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, baseArgs), { tooltip: 'Tooltip message', labelOnTop,
44
- type })));
45
- const KEY_TAB = 'Tab';
46
- await expect(page.locator('mg-input-checkbox.hydrated')).toBeDefined();
47
- // wait few seconds to insure to have the interactive element rendered
48
- await waitForInteractiveElement(page, type);
49
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
50
- let actions = [KEY_TAB];
51
- // when label on top tooltip is on first tab (next to label)
52
- if (!labelOnTop) {
53
- await updateScreenshotClass(page, { height: '65px', width: '500px' });
54
- // when type is 'multi' the tooltip is on second tab
55
- actions = type !== 'multi' ? [...actions, KEY_TAB, KEY_TAB, KEY_TAB, KEY_TAB] : [...actions, KEY_TAB];
56
- }
57
- for (const key of actions) {
58
- await page.keyboard.down(key);
59
- }
60
- await page.locator('mg-tooltip-content').waitFor({ timeout: TIMEOUT });
61
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
62
- });
63
- testEach([
64
- Object.assign(Object.assign({}, baseArgs), { type }),
65
- Object.assign(Object.assign({}, baseArgs), { type, labelOnTop: true }),
66
- Object.assign(Object.assign({}, baseArgs), { type, labelHide: true }),
67
- Object.assign(Object.assign({}, baseArgs), { type, helpText: 'HelpText Message' }),
68
- ])('Should render without tooltip %s', async (page, args) => {
69
- await setPageContent(page, createHTML(args), type === 'multi' ? { width: 300, height: 200 } : undefined);
70
- await page.waitForSelector('mg-input-checkbox.hydrated');
71
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
72
- // when multi open checkbox in popover
73
- if (type === 'multi') {
74
- // wait few seconds to insure to have the interactive element rendered
75
- await waitForInteractiveElement(page, type);
76
- await page.keyboard.down('Tab');
77
- await page.keyboard.down('Enter');
78
- await page.locator('mg-popover-content').waitFor({ timeout: TIMEOUT });
79
- }
80
- await page.keyboard.down('Tab');
81
- await expect(page.locator(type === 'multi' ? 'body' : '.e2e-screenshot')).toHaveScreenshot();
82
- await page.locator('mg-input-checkbox .mg-c-input__input-group:first-of-type input').press('Space');
83
- await page.keyboard.down('Tab');
84
- await page.locator('mg-input-checkbox .mg-c-input__input-group:nth-of-type(2) input').press('Space');
85
- await page.keyboard.down('Tab');
86
- await page.locator('mg-input-checkbox .mg-c-input__input-group:nth-of-type(3) input').press('Space');
87
- await page.keyboard.down('Tab');
88
- await page.locator('mg-input-checkbox .mg-c-input__input-group:nth-of-type(4) input').press('Space');
89
- await expect(page.locator(type === 'multi' ? 'body' : '.e2e-screenshot')).toHaveScreenshot();
90
- });
91
- testEach([
92
- Object.assign(Object.assign({}, baseArgs), { helpText: 'HelpText Message', required: true, type }),
93
- Object.assign(Object.assign({}, baseArgs), { helpText: "Message d'aide", lang: 'fr', required: true, type }),
94
- ])('Should render error when leaving an empty required input %s', async (page, args) => {
95
- await setPageContent(page, createHTML(args), type === 'multi' ? { width: 390, height: 200 } : undefined);
96
- await page.waitForSelector('mg-input-checkbox.hydrated');
97
- // when multi open checkbox in popover
98
- if (type === 'multi') {
99
- // wait few seconds to insure to have the interactive element rendered
100
- await waitForInteractiveElement(page, type);
101
- await page.keyboard.down('Tab');
102
- await page.keyboard.down('Enter');
103
- await page.locator('mg-popover-content').waitFor({ timeout: TIMEOUT });
104
- }
105
- await page.keyboard.down('Tab');
106
- await page.keyboard.down('Tab');
107
- await page.keyboard.down('Tab');
108
- await page.keyboard.down('Tab');
109
- await page.keyboard.down('Tab');
110
- if (type === 'multi') {
111
- await page.keyboard.down('Escape');
112
- }
113
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
114
- });
115
- testEach([
116
- { label: 'long label long label long label long label long label long label long label long label long label long label long label', type, tooltip: 'tooltip message' },
117
- {
118
- label: 'long label long label long label long label long label long label long label long label long label long label long label',
119
- type,
120
- tooltip: 'tooltip message',
121
- labelOnTop: true,
122
- },
123
- ])('render long label in .mg-form-group, %s', async (page, args) => {
124
- await setPageContent(page, `<div class="mg-form-group">${createHTML(Object.assign(Object.assign(Object.assign({}, baseArgs), args), { value: [
125
- { title: 'Batman', value: true },
126
- { title: 'Robin', value: false },
127
- { title: 'Joker', value: null },
128
- { title: 'Bane', value: true, disabled: true },
129
- ] }))}</div>`);
130
- await page.waitForSelector('mg-input-checkbox.hydrated');
131
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
132
- });
133
- testEach([false, true])('Ensure component fit in width 200px with label-on-top: %s', async (page, labelOnTop) => {
134
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, baseArgs), { labelOnTop, type })));
135
- await page.waitForSelector('mg-input-checkbox.hydrated');
136
- await page.setViewportSize({ width: 200, height: 100 });
137
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
138
- });
139
- });
140
- describe('type multi', () => {
141
- const selectedValues = baseArgs.value.map(argValue => (Object.assign(Object.assign({}, argValue), { value: true })));
142
- const smallValues = baseArgs.value.map((argValue, index) => (Object.assign(Object.assign({}, argValue), { title: index.toString(), value: true })));
143
- testEach([
144
- { disable: true, value: selectedValues },
145
- { disable: true, value: smallValues },
146
- ])('Ensure component fit in width 200px with display-values: %s', async (page, args) => {
147
- await setPageContent(page, createHTML(Object.assign(Object.assign(Object.assign({}, baseArgs), args), { type: 'multi', displaySelectedValues: true })));
148
- await page.locator('mg-input-checkbox.hydrated').waitFor({ timeout: TIMEOUT });
149
- // wait few seconds to insure to have the interactive element rendered
150
- await waitForInteractiveElement(page, 'multi');
151
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
152
- });
153
- testEach([false, true])('Ensure component fit in width 200px with display-values: %s', async (page, displaySelectedValues) => {
154
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, baseArgs), { type: 'multi', value: selectedValues, displaySelectedValues })));
155
- await page.locator('mg-input-checkbox.hydrated').waitFor({ timeout: TIMEOUT });
156
- // wait few seconds to insure to have the interactive element rendered
157
- await waitForInteractiveElement(page, 'multi');
158
- await page.setViewportSize({ width: 200, height: 100 });
159
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
160
- });
161
- test('Should render "multi" with search', async ({ page }) => {
162
- const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map((item, index) => ({
163
- title: index === 9 ? `my super long title item ${item} is very super long and finaly it could not be shorter so what can I do with it` : `${item}`,
164
- value: false,
165
- }));
166
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, baseArgs), { value })), { width: 450, height: 470 });
167
- // wait few seconds to insure to have the interactive element rendered
168
- await waitForInteractiveElement(page, 'multi');
169
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
170
- // open popover
171
- await page.keyboard.down('Tab');
172
- await page.keyboard.down('Enter');
173
- await page.locator('mg-popover-content').waitFor({ timeout: TIMEOUT });
174
- await expect(page.locator('body')).toHaveScreenshot();
175
- // take focus in search input
176
- await page.keyboard.down('Tab');
177
- await expect(page.locator('body')).toHaveScreenshot();
178
- // got to navigation after 10th input
179
- for (const index of value.map((_item, index) => index)) {
180
- if (index < 10)
181
- await page.keyboard.down('Tab');
182
- }
183
- await expect(page.locator('body')).toHaveScreenshot();
184
- // use navigatio to go to last page
185
- await page.keyboard.down('Tab');
186
- await page.keyboard.down('Tab');
187
- await page.keyboard.down('Tab');
188
- await page.keyboard.down('Enter');
189
- await page.keyboard.down('Enter');
190
- await expect(page.locator('body')).toHaveScreenshot();
191
- await page.getByPlaceholder(/value/).fill('2');
192
- await expect(page.locator('body')).toHaveScreenshot();
193
- // update search with an unmatchable value
194
- await page.getByPlaceholder(/value/).fill('batman');
195
- await expect(page.locator('body')).toHaveScreenshot();
196
- // close popover
197
- await page.keyboard.down('Escape');
198
- await updateScreenshotClass(page, { width: '285px', height: '35px' });
199
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
200
- });
201
- test('Should render "multi" with 2 sections', async ({ page }) => {
202
- const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map((item, index) => ({
203
- title: `item ${item}`,
204
- value: [5, 12, 13, 17].some(item => item === index),
205
- }));
206
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, baseArgs), { value })), { width: 450, height: 570 });
207
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
208
- // wait few seconds to insure to have the interactive element rendered
209
- await waitForInteractiveElement(page, 'multi');
210
- // open popover
211
- await page.keyboard.down('Tab');
212
- await page.keyboard.down('Enter');
213
- await page.locator('mg-popover-content').waitFor({ timeout: TIMEOUT });
214
- await expect(page.locator('body')).toHaveScreenshot();
215
- });
216
- test('Should render "multi" with 2 sections and a closed selected section', async ({ page }) => {
217
- const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map((item, index) => ({
218
- title: `item ${item}`,
219
- value: [5, 12, 13, 17].some(item => item === index),
220
- }));
221
- await setPageContent(page, createHTML(Object.assign(Object.assign({}, baseArgs), { value })), { width: 450, height: 570 });
222
- // wait few seconds to insure to have the interactive element rendered
223
- await waitForInteractiveElement(page, 'multi');
224
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
225
- // open popover
226
- await page.keyboard.down('Tab');
227
- await page.keyboard.down('Enter');
228
- await page.locator('mg-popover-content').waitFor({ timeout: TIMEOUT });
229
- // close section
230
- await page.keyboard.down('Tab');
231
- await page.keyboard.down('Tab');
232
- await page.keyboard.down('Enter');
233
- await expect(page.locator('body')).toHaveScreenshot();
234
- });
235
- });
236
- });
237
- //# sourceMappingURL=mg-input-checkbox.e2e.playwright.js.map