@mgdis/mg-components 5.19.2 → 5.20.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 (496) hide show
  1. package/dist/cjs/{components.utils-dc9c8a53.js → components.utils-cd908d4e.js} +102 -99
  2. package/dist/cjs/components.utils-cd908d4e.js.map +1 -0
  3. package/dist/cjs/{index-c042e24b.js → index-8532b5e9.js} +320 -137
  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 +5130 -5057
  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 +224 -224
  11. package/dist/cjs/mg-item-more.cjs.entry.js.map +1 -1
  12. package/dist/collection/assets/icons/index.js +193 -183
  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 -347
  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 +8 -0
  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 +789 -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 +589 -572
  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 +779 -767
  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 +537 -520
  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 +566 -550
  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 +701 -689
  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.conf.js +0 -4
  64. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js.map +1 -1
  65. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +771 -754
  66. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
  67. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +706 -689
  68. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
  69. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +527 -522
  70. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js.map +1 -1
  71. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +2 -2
  72. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js.map +1 -1
  73. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +263 -263
  74. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js.map +1 -1
  75. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js +6 -6
  76. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.conf.js.map +1 -1
  77. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +423 -423
  78. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js.map +1 -1
  79. package/dist/collection/components/molecules/mg-action-more/mg-action-more.conf.js.map +1 -1
  80. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +214 -214
  81. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
  82. package/dist/collection/components/molecules/mg-details/mg-details.js +155 -150
  83. package/dist/collection/components/molecules/mg-details/mg-details.js.map +1 -1
  84. package/dist/collection/components/molecules/mg-form/mg-form.js +332 -335
  85. package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
  86. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +85 -85
  87. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js.map +1 -1
  88. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +189 -189
  89. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js.map +1 -1
  90. package/dist/collection/components/molecules/mg-message/mg-message.js +325 -304
  91. package/dist/collection/components/molecules/mg-message/mg-message.js.map +1 -1
  92. package/dist/collection/components/molecules/mg-modal/mg-modal.js +317 -317
  93. package/dist/collection/components/molecules/mg-modal/mg-modal.js.map +1 -1
  94. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js +2 -2
  95. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js.map +1 -1
  96. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +216 -216
  97. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js.map +1 -1
  98. package/dist/collection/components/molecules/mg-panel/mg-panel.js +409 -399
  99. package/dist/collection/components/molecules/mg-panel/mg-panel.js.map +1 -1
  100. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +91 -91
  101. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js.map +1 -1
  102. package/dist/collection/components/molecules/mg-popover/mg-popover.js +336 -329
  103. package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
  104. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +94 -94
  105. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js.map +1 -1
  106. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +4 -4
  107. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js.map +1 -1
  108. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +348 -343
  109. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
  110. package/dist/collection/locales/fr/messages.json +4 -4
  111. package/dist/collection/locales/index.spec.js +20 -20
  112. package/dist/collection/locales/index.spec.js.map +1 -1
  113. package/dist/collection/utils/behaviors.utils.js +127 -127
  114. package/dist/collection/utils/behaviors.utils.js.map +1 -1
  115. package/dist/collection/utils/behaviors.utils.spec.js +42 -42
  116. package/dist/collection/utils/behaviors.utils.spec.js.map +1 -1
  117. package/dist/collection/utils/components.utils.js +77 -75
  118. package/dist/collection/utils/components.utils.js.map +1 -1
  119. package/dist/collection/utils/components.utils.spec.js +150 -135
  120. package/dist/collection/utils/components.utils.spec.js.map +1 -1
  121. package/dist/collection/utils/e2e.test.utils.js +21 -21
  122. package/dist/collection/utils/e2e.test.utils.js.map +1 -1
  123. package/dist/collection/utils/locale.utils.js +17 -17
  124. package/dist/collection/utils/locale.utils.js.map +1 -1
  125. package/dist/collection/utils/locale.utils.spec.js +45 -45
  126. package/dist/collection/utils/locale.utils.spec.js.map +1 -1
  127. package/dist/collection/utils/playwright.e2e.test.utils.js +41 -41
  128. package/dist/collection/utils/playwright.e2e.test.utils.js.map +1 -1
  129. package/dist/collection/utils/playwright.fixture.js +24 -0
  130. package/dist/collection/utils/playwright.fixture.js.map +1 -0
  131. package/dist/collection/utils/unit.test.utils.js +50 -50
  132. package/dist/collection/utils/unit.test.utils.js.map +1 -1
  133. package/dist/components/MgInput.js +105 -97
  134. package/dist/components/MgInput.js.map +1 -1
  135. package/dist/components/components.utils.js +78 -76
  136. package/dist/components/components.utils.js.map +1 -1
  137. package/dist/components/index2.js +21 -21
  138. package/dist/components/index2.js.map +1 -1
  139. package/dist/components/mg-action-more.d.ts +2 -2
  140. package/dist/components/mg-action-more.js +173 -173
  141. package/dist/components/mg-action-more.js.map +1 -1
  142. package/dist/components/mg-badge.d.ts +2 -2
  143. package/dist/components/mg-badge2.js +83 -83
  144. package/dist/components/mg-badge2.js.map +1 -1
  145. package/dist/components/mg-button.d.ts +2 -2
  146. package/dist/components/mg-button2.js +182 -167
  147. package/dist/components/mg-button2.js.map +1 -1
  148. package/dist/components/mg-card.d.ts +2 -2
  149. package/dist/components/mg-card2.js +77 -77
  150. package/dist/components/mg-card2.js.map +1 -1
  151. package/dist/components/mg-character-left.d.ts +2 -2
  152. package/dist/components/mg-character-left2.js +50 -50
  153. package/dist/components/mg-character-left2.js.map +1 -1
  154. package/dist/components/mg-details.d.ts +2 -2
  155. package/dist/components/mg-details.js +69 -69
  156. package/dist/components/mg-details.js.map +1 -1
  157. package/dist/components/mg-divider.d.ts +2 -2
  158. package/dist/components/mg-divider.js +30 -30
  159. package/dist/components/mg-divider.js.map +1 -1
  160. package/dist/components/mg-form.d.ts +2 -2
  161. package/dist/components/mg-form.js +171 -179
  162. package/dist/components/mg-form.js.map +1 -1
  163. package/dist/components/mg-icon.d.ts +2 -2
  164. package/dist/components/mg-icon2.js +327 -309
  165. package/dist/components/mg-icon2.js.map +1 -1
  166. package/dist/components/mg-illustrated-message.d.ts +2 -2
  167. package/dist/components/mg-illustrated-message.js +51 -51
  168. package/dist/components/mg-illustrated-message.js.map +1 -1
  169. package/dist/components/mg-input-checkbox-paginated.d.ts +2 -2
  170. package/dist/components/mg-input-checkbox-paginated2.js +170 -170
  171. package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
  172. package/dist/components/mg-input-checkbox.d.ts +2 -2
  173. package/dist/components/mg-input-checkbox.js +478 -480
  174. package/dist/components/mg-input-checkbox.js.map +1 -1
  175. package/dist/components/mg-input-date.d.ts +2 -2
  176. package/dist/components/mg-input-date.js +266 -260
  177. package/dist/components/mg-input-date.js.map +1 -1
  178. package/dist/components/mg-input-numeric.d.ts +2 -2
  179. package/dist/components/mg-input-numeric.js +354 -348
  180. package/dist/components/mg-input-numeric.js.map +1 -1
  181. package/dist/components/mg-input-password.d.ts +2 -2
  182. package/dist/components/mg-input-password.js +205 -199
  183. package/dist/components/mg-input-password.js.map +1 -1
  184. package/dist/components/mg-input-radio.d.ts +2 -2
  185. package/dist/components/mg-input-radio.js +236 -231
  186. package/dist/components/mg-input-radio.js.map +1 -1
  187. package/dist/components/mg-input-select.d.ts +2 -2
  188. package/dist/components/mg-input-select2.js +316 -310
  189. package/dist/components/mg-input-select2.js.map +1 -1
  190. package/dist/components/mg-input-text.d.ts +2 -2
  191. package/dist/components/mg-input-text2.js +306 -300
  192. package/dist/components/mg-input-text2.js.map +1 -1
  193. package/dist/components/mg-input-textarea.d.ts +2 -2
  194. package/dist/components/mg-input-textarea.js +277 -271
  195. package/dist/components/mg-input-textarea.js.map +1 -1
  196. package/dist/components/mg-input-title.d.ts +2 -2
  197. package/dist/components/mg-input-title2.js +60 -60
  198. package/dist/components/mg-input-title2.js.map +1 -1
  199. package/dist/components/mg-input-toggle.d.ts +2 -2
  200. package/dist/components/mg-input-toggle.js +251 -251
  201. package/dist/components/mg-input-toggle.js.map +1 -1
  202. package/dist/components/mg-item-more.d.ts +2 -2
  203. package/dist/components/mg-item-more.js +285 -285
  204. package/dist/components/mg-item-more.js.map +1 -1
  205. package/dist/components/mg-menu-item.d.ts +2 -2
  206. package/dist/components/mg-menu-item2.js +345 -345
  207. package/dist/components/mg-menu-item2.js.map +1 -1
  208. package/dist/components/mg-menu.conf.js +2 -2
  209. package/dist/components/mg-menu.conf.js.map +1 -1
  210. package/dist/components/mg-menu.d.ts +2 -2
  211. package/dist/components/mg-menu2.js +176 -176
  212. package/dist/components/mg-menu2.js.map +1 -1
  213. package/dist/components/mg-message.d.ts +2 -2
  214. package/dist/components/mg-message.js +198 -193
  215. package/dist/components/mg-message.js.map +1 -1
  216. package/dist/components/mg-modal.d.ts +2 -2
  217. package/dist/components/mg-modal.js +198 -198
  218. package/dist/components/mg-modal.js.map +1 -1
  219. package/dist/components/mg-pagination.d.ts +2 -2
  220. package/dist/components/mg-pagination2.js +133 -133
  221. package/dist/components/mg-pagination2.js.map +1 -1
  222. package/dist/components/mg-panel.d.ts +2 -2
  223. package/dist/components/mg-panel.js +238 -238
  224. package/dist/components/mg-panel.js.map +1 -1
  225. package/dist/components/mg-popover-content.d.ts +2 -2
  226. package/dist/components/mg-popover-content2.js +70 -70
  227. package/dist/components/mg-popover-content2.js.map +1 -1
  228. package/dist/components/mg-popover.d.ts +2 -2
  229. package/dist/components/mg-popover2.js +224 -222
  230. package/dist/components/mg-popover2.js.map +1 -1
  231. package/dist/components/mg-skip-links.d.ts +2 -2
  232. package/dist/components/mg-skip-links.js +57 -57
  233. package/dist/components/mg-skip-links.js.map +1 -1
  234. package/dist/components/mg-tabs.d.ts +2 -2
  235. package/dist/components/mg-tabs.js +243 -243
  236. package/dist/components/mg-tabs.js.map +1 -1
  237. package/dist/components/mg-tag.d.ts +2 -2
  238. package/dist/components/mg-tag.js +97 -97
  239. package/dist/components/mg-tag.js.map +1 -1
  240. package/dist/components/mg-tooltip-content.d.ts +2 -2
  241. package/dist/components/mg-tooltip-content2.js +30 -30
  242. package/dist/components/mg-tooltip-content2.js.map +1 -1
  243. package/dist/components/mg-tooltip.d.ts +2 -2
  244. package/dist/components/mg-tooltip2.js +316 -316
  245. package/dist/components/mg-tooltip2.js.map +1 -1
  246. package/dist/components/popper.js +6 -12
  247. package/dist/components/popper.js.map +1 -1
  248. package/dist/esm/{components.utils-0f76010d.js → components.utils-0d67c31c.js} +102 -100
  249. package/dist/esm/components.utils-0d67c31c.js.map +1 -0
  250. package/dist/esm/{index-ce01e63b.js → index-f34a3a2c.js} +320 -137
  251. package/dist/esm/index-f34a3a2c.js.map +1 -0
  252. package/dist/esm/loader.js +3 -3
  253. package/dist/esm/mg-action-more_34.entry.js +5130 -5057
  254. package/dist/esm/mg-action-more_34.entry.js.map +1 -1
  255. package/dist/esm/mg-components.js +4 -4
  256. package/dist/esm/mg-components.js.map +1 -1
  257. package/dist/esm/mg-item-more.entry.js +224 -224
  258. package/dist/esm/mg-item-more.entry.js.map +1 -1
  259. package/dist/mg-components/locales/fr/messages.json +4 -4
  260. package/dist/mg-components/mg-components.css +1 -1
  261. package/dist/mg-components/mg-components.esm.js +1 -1
  262. package/dist/mg-components/mg-components.esm.js.map +1 -1
  263. package/dist/mg-components/p-629454f7.entry.js +2 -0
  264. package/dist/mg-components/p-629454f7.entry.js.map +1 -0
  265. package/dist/mg-components/p-7444ff40.js +3 -0
  266. package/dist/mg-components/p-7444ff40.js.map +1 -0
  267. package/dist/mg-components/p-af42d17b.js +2 -0
  268. package/dist/mg-components/p-af42d17b.js.map +1 -0
  269. package/dist/mg-components/{p-01ebc95a.entry.js → p-e0fb0f3c.entry.js} +2 -2
  270. package/dist/mg-components/p-e0fb0f3c.entry.js.map +1 -0
  271. package/dist/types/assets/icons/index.d.ts +193 -0
  272. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +41 -41
  273. package/dist/types/components/atoms/mg-button/mg-button.d.ts +100 -96
  274. package/dist/types/components/atoms/mg-card/mg-card.d.ts +39 -39
  275. package/dist/types/components/atoms/mg-character-left/mg-character-left.d.ts +37 -37
  276. package/dist/types/components/atoms/mg-divider/mg-divider.d.ts +12 -12
  277. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +56 -56
  278. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +34 -34
  279. package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +51 -51
  280. package/dist/types/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.d.ts +12 -12
  281. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.conf.d.ts +3 -3
  282. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +113 -113
  283. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +10 -3
  284. package/dist/types/components/molecules/inputs/MgInput.d.ts +17 -16
  285. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.d.ts +100 -100
  286. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +26 -26
  287. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +262 -260
  288. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.conf.d.ts +4 -4
  289. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +150 -149
  290. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.d.ts +4 -4
  291. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +223 -222
  292. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +142 -141
  293. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +3 -3
  294. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +152 -151
  295. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +6 -6
  296. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +193 -192
  297. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.conf.d.ts +1 -6
  298. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +195 -194
  299. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +181 -180
  300. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +2 -2
  301. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +141 -141
  302. package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +2 -2
  303. package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +97 -97
  304. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +6 -6
  305. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +179 -179
  306. package/dist/types/components/molecules/mg-action-more/mg-action-more.conf.d.ts +12 -11
  307. package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +72 -72
  308. package/dist/types/components/molecules/mg-details/mg-details.d.ts +45 -45
  309. package/dist/types/components/molecules/mg-form/mg-form.d.ts +103 -104
  310. package/dist/types/components/molecules/mg-illustrated-message/mg-illustrated-message.d.ts +27 -27
  311. package/dist/types/components/molecules/mg-item-more/mg-item-more.conf.d.ts +5 -5
  312. package/dist/types/components/molecules/mg-item-more/mg-item-more.d.ts +61 -61
  313. package/dist/types/components/molecules/mg-message/mg-message.d.ts +100 -93
  314. package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +107 -107
  315. package/dist/types/components/molecules/mg-pagination/mg-pagination.conf.d.ts +2 -2
  316. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +74 -74
  317. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +149 -149
  318. package/dist/types/components/molecules/mg-popover/mg-popover-content/mg-popover-content.d.ts +43 -43
  319. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +88 -88
  320. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.conf.d.ts +2 -2
  321. package/dist/types/components/molecules/mg-skip-links/mg-skip-links.d.ts +40 -40
  322. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +10 -10
  323. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +118 -118
  324. package/dist/types/components.d.ts +296 -32
  325. package/dist/types/locales/index.d.ts +172 -172
  326. package/dist/types/stencil-public-runtime.d.ts +29 -0
  327. package/dist/types/utils/behaviors.utils.d.ts +65 -65
  328. package/dist/types/utils/components.utils.d.ts +32 -26
  329. package/dist/types/utils/locale.utils.d.ts +2 -2
  330. package/dist/types/utils/playwright.fixture.d.ts +3 -0
  331. package/dist/types/utils/unit.test.utils.d.ts +5 -5
  332. package/package.json +33 -47
  333. package/dist/cjs/components.utils-dc9c8a53.js.map +0 -1
  334. package/dist/cjs/index-c042e24b.js.map +0 -1
  335. package/dist/collection/components/atoms/mg-badge/test/mg-badge.e2e.playwright.js +0 -33
  336. package/dist/collection/components/atoms/mg-badge/test/mg-badge.e2e.playwright.js.map +0 -1
  337. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js +0 -70
  338. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js.map +0 -1
  339. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js +0 -91
  340. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js.map +0 -1
  341. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js +0 -142
  342. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js.map +0 -1
  343. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js +0 -36
  344. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js.map +0 -1
  345. package/dist/collection/components/atoms/mg-card/test/mg-card.spec.js +0 -43
  346. package/dist/collection/components/atoms/mg-card/test/mg-card.spec.js.map +0 -1
  347. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.e2e.js +0 -15
  348. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.e2e.js.map +0 -1
  349. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.spec.js +0 -42
  350. package/dist/collection/components/atoms/mg-character-left/test/mg-character-left.spec.js.map +0 -1
  351. package/dist/collection/components/atoms/mg-divider/test/mg-divider.e2e.js +0 -11
  352. package/dist/collection/components/atoms/mg-divider/test/mg-divider.e2e.js.map +0 -1
  353. package/dist/collection/components/atoms/mg-divider/test/mg-divider.spec.js +0 -14
  354. package/dist/collection/components/atoms/mg-divider/test/mg-divider.spec.js.map +0 -1
  355. package/dist/collection/components/atoms/mg-icon/test/mg-icon.e2e.js +0 -55
  356. package/dist/collection/components/atoms/mg-icon/test/mg-icon.e2e.js.map +0 -1
  357. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js +0 -84
  358. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js.map +0 -1
  359. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.js +0 -12
  360. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.js.map +0 -1
  361. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.spec.js +0 -23
  362. package/dist/collection/components/atoms/mg-input-title/test/mg-input-title.spec.js.map +0 -1
  363. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js +0 -23
  364. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js.map +0 -1
  365. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js +0 -71
  366. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js.map +0 -1
  367. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js +0 -138
  368. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js.map +0 -1
  369. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js +0 -272
  370. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js.map +0 -1
  371. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js +0 -237
  372. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js.map +0 -1
  373. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js +0 -640
  374. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js.map +0 -1
  375. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.e2e.js +0 -123
  376. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.e2e.js.map +0 -1
  377. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js +0 -379
  378. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js.map +0 -1
  379. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.e2e.js +0 -212
  380. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.e2e.js.map +0 -1
  381. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js +0 -456
  382. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js.map +0 -1
  383. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.e2e.js +0 -115
  384. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.e2e.js.map +0 -1
  385. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js +0 -289
  386. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js.map +0 -1
  387. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js +0 -154
  388. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js.map +0 -1
  389. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js +0 -355
  390. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js.map +0 -1
  391. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.e2e.js +0 -194
  392. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.e2e.js.map +0 -1
  393. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js +0 -399
  394. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js.map +0 -1
  395. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js +0 -147
  396. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js.map +0 -1
  397. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js +0 -353
  398. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js.map +0 -1
  399. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.e2e.js +0 -129
  400. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.e2e.js.map +0 -1
  401. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js +0 -318
  402. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js.map +0 -1
  403. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js +0 -108
  404. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js.map +0 -1
  405. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js +0 -247
  406. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js.map +0 -1
  407. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.js +0 -239
  408. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.js.map +0 -1
  409. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.spec.js +0 -175
  410. package/dist/collection/components/molecules/menu/mg-menu/test/mg-menu.spec.js.map +0 -1
  411. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js +0 -100
  412. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js.map +0 -1
  413. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.spec.js +0 -295
  414. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.spec.js.map +0 -1
  415. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js +0 -128
  416. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js.map +0 -1
  417. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js +0 -187
  418. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js.map +0 -1
  419. package/dist/collection/components/molecules/mg-details/test/mg-details.e2e.playwright.js +0 -30
  420. package/dist/collection/components/molecules/mg-details/test/mg-details.e2e.playwright.js.map +0 -1
  421. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js +0 -42
  422. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js.map +0 -1
  423. package/dist/collection/components/molecules/mg-form/test/mg-form.e2e.js +0 -169
  424. package/dist/collection/components/molecules/mg-form/test/mg-form.e2e.js.map +0 -1
  425. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js +0 -277
  426. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js.map +0 -1
  427. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.e2e.js +0 -39
  428. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.e2e.js.map +0 -1
  429. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.spec.js +0 -36
  430. package/dist/collection/components/molecules/mg-illustrated-message/test/mg-illustrated-message.spec.js.map +0 -1
  431. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.js +0 -85
  432. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.js.map +0 -1
  433. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.spec.js +0 -106
  434. package/dist/collection/components/molecules/mg-item-more/test/mg-item-more.spec.js.map +0 -1
  435. package/dist/collection/components/molecules/mg-message/test/mg-message.e2e.js +0 -64
  436. package/dist/collection/components/molecules/mg-message/test/mg-message.e2e.js.map +0 -1
  437. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js +0 -109
  438. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js.map +0 -1
  439. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js +0 -62
  440. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js.map +0 -1
  441. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.template.js +0 -40
  442. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.template.js.map +0 -1
  443. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js +0 -26
  444. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js.map +0 -1
  445. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js +0 -122
  446. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js.map +0 -1
  447. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.js +0 -57
  448. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.js.map +0 -1
  449. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.spec.js +0 -121
  450. package/dist/collection/components/molecules/mg-pagination/test/mg-pagination.spec.js.map +0 -1
  451. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js +0 -106
  452. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js.map +0 -1
  453. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js +0 -213
  454. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js.map +0 -1
  455. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js +0 -140
  456. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js.map +0 -1
  457. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js +0 -142
  458. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js.map +0 -1
  459. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.e2e.js +0 -55
  460. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.e2e.js.map +0 -1
  461. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.spec.js +0 -55
  462. package/dist/collection/components/molecules/mg-skip-links/test/mg-skip-links.spec.js.map +0 -1
  463. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.js +0 -76
  464. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.js.map +0 -1
  465. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js +0 -332
  466. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js.map +0 -1
  467. package/dist/collection/utils/stencil.e2e.test.utils.js +0 -33
  468. package/dist/collection/utils/stencil.e2e.test.utils.js.map +0 -1
  469. package/dist/esm/components.utils-0f76010d.js.map +0 -1
  470. package/dist/esm/index-ce01e63b.js.map +0 -1
  471. package/dist/mg-components/p-01ebc95a.entry.js.map +0 -1
  472. package/dist/mg-components/p-1aa89acf.js +0 -3
  473. package/dist/mg-components/p-1aa89acf.js.map +0 -1
  474. package/dist/mg-components/p-71a5a848.entry.js +0 -2
  475. package/dist/mg-components/p-71a5a848.entry.js.map +0 -1
  476. package/dist/mg-components/p-c9e2c669.js +0 -2
  477. package/dist/mg-components/p-c9e2c669.js.map +0 -1
  478. package/dist/types/components/atoms/mg-badge/test/mg-badge.e2e.playwright.d.ts +0 -1
  479. package/dist/types/components/atoms/mg-input-title/test/mg-input-title.e2e.playwright.d.ts +0 -1
  480. package/dist/types/components/atoms/mg-tag/test/mg-tag.e2e.playwright.d.ts +0 -1
  481. package/dist/types/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.d.ts +0 -1
  482. package/dist/types/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.d.ts +0 -1
  483. package/dist/types/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.d.ts +0 -1
  484. package/dist/types/components/molecules/menu/mg-menu/test/mg-menu.e2e.playwright.d.ts +0 -1
  485. package/dist/types/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.d.ts +0 -1
  486. package/dist/types/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.d.ts +0 -2
  487. package/dist/types/components/molecules/mg-details/test/mg-details.e2e.playwright.d.ts +0 -1
  488. package/dist/types/components/molecules/mg-item-more/test/mg-item-more.e2e.playwright.d.ts +0 -1
  489. package/dist/types/components/molecules/mg-modal/test/mg-modal.e2e.playwright.d.ts +0 -1
  490. package/dist/types/components/molecules/mg-modal/test/mg-modal.e2e.template.d.ts +0 -12
  491. package/dist/types/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.d.ts +0 -1
  492. package/dist/types/components/molecules/mg-pagination/test/mg-pagination.e2e.playwright.d.ts +0 -1
  493. package/dist/types/components/molecules/mg-panel/test/mg-panel.e2e.playwright.d.ts +0 -1
  494. package/dist/types/components/molecules/mg-popover/test/mg-popover.e2e.playwright.d.ts +0 -1
  495. package/dist/types/components/molecules/mg-tabs/test/mg-tabs.e2e.playwright.d.ts +0 -1
  496. package/dist/types/utils/stencil.e2e.test.utils.d.ts +0 -14
@@ -1 +0,0 @@
1
- {"version":3,"file":"mg-input-select.spec.js","sourceRoot":"","sources":["../../../../../../src/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { MgInputSelect } from '../mg-input-select';\nimport { SelectOption } from '../mg-input-select.conf';\nimport messages from '../../../../../locales/en/messages.json';\n\nconst getPage = async args => {\n const page = newSpecPage({\n components: [MgInputSelect],\n template: () => <mg-input-select {...args}></mg-input-select>,\n });\n\n jest.runAllTimers();\n\n return page;\n};\n\ndescribe('mg-input-select', () => {\n beforeEach(() => jest.useFakeTimers());\n afterEach(() => jest.runOnlyPendingTimers());\n test.each([\n { label: 'label', identifier: 'identifier', items: [] },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'] },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], labelHide: true },\n {\n label: 'label',\n identifier: 'identifier',\n items: [\n { title: 'blu', value: 'u' },\n { title: 'bli', value: 'i' },\n { title: 'blo', value: 'o' },\n { title: 'bla', value: 'a' },\n ],\n },\n {\n label: 'label',\n identifier: 'identifier',\n items: [\n { title: 'blu', value: 'u', group: 'blu' },\n { title: 'bli', value: 'i', group: 'blu' },\n { title: 'blo', value: 'o', group: 'blo' },\n { title: 'bla', value: 'a' },\n ],\n },\n {\n label: 'label',\n identifier: 'identifier',\n items: [\n { title: 'blu', value: 'u' },\n { title: 'bli', value: 'i' },\n { title: 'blo', value: 'o' },\n { title: 'bla', value: 'a' },\n ],\n readonly: true,\n value: 'o',\n },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], labelOnTop: true },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], readonly: true },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], readonly: true, labelOnTop: true, tooltip: 'Tooltip message' },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], required: true, helpText: 'My help text', value: 'blu' },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], required: true, readonly: true, helpText: 'My help text', value: 'blu' },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], required: true, disabled: true, helpText: 'My help text', value: 'blu' },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], tooltip: 'My Tooltip Message' },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], tooltip: 'My Tooltip Message', labelOnTop: true },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], placeholder: 'placeholder' },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], placeholder: 'placeholder', placeholderHide: true },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], placeholder: 'placeholder', placeholderDisabled: true },\n { label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], placeholder: 'placeholder', placeholderDisabled: true, value: 'ble' },\n ])('Should render with args %s:', async args => {\n const { root } = await getPage(args);\n expect(root).toMatchSnapshot();\n });\n\n test.each(['', ' ', undefined])('Should not render with invalid identifier property: %s', async identifier => {\n expect.assertions(1);\n try {\n await getPage({ identifier, items: ['blu', 'bli', 'blo', 'bla'] });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"identifier\" is required.');\n }\n });\n\n test.each(['', ' ', undefined])('Should throw error with invalid label property: %s', async label => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', label, items: ['blu', 'bli', 'blo', 'bla'] });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"label\" is required.');\n }\n });\n\n test('Should throw an error with labelOnTop & labelHide set to true', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', label: 'batman', labelOnTop: true, labelHide: true, items: ['batman', 'joker'] });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"labelOnTop\" must not be paired with the prop \"labelHide\"');\n }\n });\n\n test.each([[['blu', { title: 'blu', value: 'blu' }]], [['blu', { blu: 'blu' }]], [[{ title: 'blu', value: 'blu' }, { blu: 'blu' }]]])(\n 'Should throw error with invalid items property: %s',\n async items => {\n expect.assertions(1);\n try {\n await getPage({ label: 'Label', items });\n } catch (err) {\n expect(err.message).toMatch('<mg-input-select> prop \"items\" is required, can be an empty Array or all items must be the same type: string or Option.');\n }\n },\n );\n\n test.each([\n { items: ['batman', 'robin', 'joker', 'bane'], selectedOption: '' },\n { items: ['batman', 'robin', 'joker', 'bane'], selectedOption: 3 },\n {\n items: [\n { title: 'batman', value: 'u' },\n { title: 'robin', value: 'i' },\n { title: 'joker', value: 'o' },\n { title: 'bane', value: 'a' },\n ],\n selectedOption: 2,\n },\n {\n items: [\n { title: 'batman', value: 1 },\n { title: 'robin', value: 2 },\n { title: 'joker', value: 3 },\n { title: 'bane', value: 4 },\n ],\n selectedOption: 1,\n },\n {\n items: [\n { title: 'batman', value: true },\n { title: 'robin', value: false },\n ],\n selectedOption: 0,\n },\n {\n items: [\n { title: 'blu', value: undefined },\n { title: 'bli', value: 42 },\n ],\n selectedOption: 0,\n },\n {\n items: [\n { title: 'batman', value: { name: 'Batman' } },\n { title: 'robin', value: { name: 'Robin' } },\n ],\n selectedOption: 1,\n },\n {\n items: [\n { title: 'Batman', value: { name: 'Batman', group: 'Heroes' } },\n { title: 'Robin', value: { name: 'Robin', group: 'Heroes' } },\n { title: 'Joker', value: { name: 'Joker', group: 'Super Vilains' } },\n { title: 'Bane', value: { name: 'Bane', group: 'Super Vilains' } },\n ],\n selectedOption: 2,\n },\n ])('Should trigger events for (%s)', async ({ items, selectedOption }) => {\n const args = { label: 'label', items, identifier: 'identifier', helpText: 'My help text', value: 'blu' };\n const page = await getPage(args);\n\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n input.checkValidity = jest.fn(() => true);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: false,\n })),\n });\n\n jest.spyOn(page.rootInstance.valueChange, 'emit');\n\n input.dispatchEvent(new CustomEvent('focus', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot(); //Snapshot on focus\n\n input.value = items[selectedOption]?.title || items[selectedOption] || selectedOption;\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n await page.waitForChanges();\n const expectedEmitValue = selectedOption !== '' ? (typeof items[selectedOption] === 'object' ? (items[selectedOption] as SelectOption).value : items[selectedOption]) : null;\n expect(page.rootInstance.valueChange.emit).toHaveBeenCalledWith(expectedEmitValue);\n });\n\n describe.each(['readonly', 'disabled'])('validity, case next state is %s', nextState => {\n test.each([\n { validity: true, valueMissing: false },\n { validity: false, valueMissing: true },\n ])('validity (%s), valueMissing (%s)', async ({ validity, valueMissing }) => {\n const args = { label: 'label', items: ['blu', 'bli', 'blo', 'bla'], identifier: 'identifier', patternErrorMessage: 'Non' };\n const page = await getPage(args);\n\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n input.checkValidity = jest.fn(() => validity);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing,\n })),\n });\n\n input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));\n await page.waitForChanges();\n\n if (validity) {\n expect(page.rootInstance.errorMessage).toBeUndefined();\n } else if (valueMissing) {\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n }\n expect(page.rootInstance.valid).toEqual(validity);\n expect(page.rootInstance.invalid).toEqual(!validity);\n if (valueMissing) {\n expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled FALSE\n element[nextState] = true;\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled TRUE\n }\n });\n });\n\n test(\"display error with displayError component's public method\", async () => {\n const page = await getPage({ label: 'label', items: ['batman', 'robin', 'joker', 'bane'], identifier: 'identifier', required: true });\n\n expect(page.root).toMatchSnapshot();\n\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n\n await element.displayError();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([\n {\n valid: true,\n errorMessage: 'Override error',\n },\n {\n valid: false,\n errorMessage: 'Override error',\n },\n ])(\"should display override error with setError component's public method\", async params => {\n const page = await getPage({ label: 'label', identifier: 'identifier', items: ['batman', 'robin', 'joker', 'bane'], required: true });\n\n expect(page.root).toMatchSnapshot();\n\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n Object.defineProperty(input, 'validity', {\n get: () => ({}),\n });\n\n await element.setError(params.valid, params.errorMessage);\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([\n {\n valid: '',\n errorMessage: 'Override error',\n error: '<mg-input-select> method \"setError()\" param \"valid\" must be a boolean',\n },\n {\n valid: undefined,\n errorMessage: 'Override error',\n error: '<mg-input-select> method \"setError()\" param \"valid\" must be a boolean',\n },\n {\n valid: true,\n errorMessage: ' ',\n error: '<mg-input-select> method \"setError()\" param \"errorMessage\" must be a string',\n },\n {\n valid: true,\n errorMessage: true,\n error: '<mg-input-select> method \"setError()\" param \"errorMessage\" must be a string',\n },\n ])(\"shloud throw error with setError component's public method invalid params\", async params => {\n expect.assertions(1);\n try {\n const page = await getPage({ label: 'label', identifier: 'identifier', items: ['batman', 'robin', 'joker', 'bane'], required: true });\n const element = page.doc.querySelector('mg-input-select');\n\n await element.setError(params.valid as unknown as boolean, params.errorMessage as unknown as string);\n await page.waitForChanges();\n } catch (err) {\n expect(err.message).toMatch(params.error);\n }\n });\n\n test.each(['fr', 'xx'])('display error message with locale: %s', async lang => {\n const page = await getPage({ label: 'label', items: ['batman', 'robin', 'joker', 'bane'], identifier: 'identifier', required: true, lang });\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n\n await element.displayError();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test('Should remove error on input', async () => {\n const page = await getPage({ label: 'label', items: ['batman', 'robin', 'joker', 'bane'], identifier: 'identifier', required: true });\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n input.checkValidity = jest.fn().mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true);\n Object.defineProperty(input, 'validity', {\n get: jest\n .fn()\n .mockReturnValueOnce({\n valueMissing: true,\n })\n .mockReturnValueOnce({\n valueMissing: true,\n })\n .mockReturnValueOnce({\n valueMissing: false,\n })\n .mockReturnValueOnce({\n valueMissing: false,\n }),\n });\n\n await element.displayError();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.hasDisplayedError).toEqual(true);\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n\n input.value = 'batman';\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.rootInstance.hasDisplayedError).toEqual(true);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n\n input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n });\n\n test('Should remove error on input when required change dynamically', async () => {\n const page = await getPage({ label: 'label', items: ['batman', 'robin', 'joker', 'bane'], identifier: 'identifier', required: true });\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n //mock validity\n input.checkValidity = jest.fn().mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true);\n Object.defineProperty(input, 'validity', {\n get: jest\n .fn()\n .mockReturnValueOnce({\n valueMissing: true,\n })\n .mockReturnValueOnce({\n valueMissing: true,\n })\n .mockReturnValueOnce({\n valueMissing: false,\n })\n .mockReturnValueOnce({\n valueMissing: false,\n }),\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.rootInstance.hasDisplayedError).toEqual(true);\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n\n element.required = false;\n await page.waitForChanges();\n\n // Error message should disapear and change the hasDisplayedError status\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n\n element.required = true;\n await page.waitForChanges();\n\n // If back on required the message is still not displayed\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n });\n\n test.each([[['batman']], [[{ title: 'batman', value: 'b' }]]])('Should not update value with invalid input value: %s', async items => {\n const page = await getPage({ identifier: 'identifier', label: 'batman', items });\n const element = page.doc.querySelector('mg-input-select');\n const input = element.shadowRoot.querySelector('select');\n\n input.checkValidity = jest.fn().mockReturnValueOnce(true);\n jest.spyOn(page.rootInstance.inputValid, 'emit');\n\n input.value = 'hello';\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n\n await page.waitForChanges();\n\n expect(element.value).toBe('hello');\n expect(page.rootInstance.inputValid.emit).toHaveBeenCalledWith(false);\n });\n\n test('Should update mg-width', async () => {\n const page = await getPage({ label: 'label', identifier: 'identifier', items: ['blu', 'bli', 'blo', 'bla'], mgWidth: undefined });\n const element = page.doc.querySelector('mg-input-select');\n\n element.mgWidth = 2;\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n element.mgWidth = 4;\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n element.mgWidth = 16;\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n element.mgWidth = 'full';\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n});\n"]}
@@ -1,147 +0,0 @@
1
- import { renderAttributes, renderProperties } from "../../../../../utils/e2e.test.utils";
2
- import { setPageContent, expect, describe, test, testEach, updateScreenshotClass, describeEach } from "../../../../../utils/playwright.e2e.test.utils";
3
- const creatHtml = (props) => {
4
- const slot = props.slot;
5
- delete props.slot;
6
- return `<mg-input-text ${renderAttributes(props)}>${slot}</mg-input-text><script>${renderProperties(props, `[identifier="${props.identifier}"]`)}</script>`;
7
- };
8
- const defaultProps = { identifier: 'identifier', label: 'label' };
9
- describe('mg-input-text', () => {
10
- describe('render', () => {
11
- testEach([
12
- Object.assign({}, defaultProps),
13
- Object.assign(Object.assign({}, defaultProps), { labelOnTop: true }),
14
- Object.assign(Object.assign({}, defaultProps), { labelHide: true }),
15
- Object.assign(Object.assign({}, defaultProps), { placeholder: 'placeholder', helpText: 'HelpText Message' }),
16
- ])('without tooltip %s', async (page, props) => {
17
- await setPageContent(page, creatHtml(props));
18
- const element = await page.locator('mg-input-text.hydrated');
19
- await element.waitFor({ timeout: 1000 });
20
- const input = await page.locator('mg-input-text input');
21
- // Hide caret for screenshots
22
- await page.locator('mg-input-text input').evaluate(element => (element.style.caretColor = 'transparent'));
23
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
24
- await page.keyboard.down('Tab');
25
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
26
- await input.press('KeyB');
27
- await input.press('KeyL');
28
- await input.press('KeyU');
29
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
30
- });
31
- testEach([true, false])('with tooltip, case label-on-top %s', async (page, labelOnTop) => {
32
- const args = Object.assign(Object.assign({}, defaultProps), { tooltip: 'Tooltip message', labelOnTop });
33
- await setPageContent(page, creatHtml(args));
34
- const element = await page.locator('mg-input-text.hydrated');
35
- await element.waitFor({ timeout: 1000 });
36
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
37
- await page.keyboard.down('Tab');
38
- if (!labelOnTop) {
39
- // Ensure to display tooltip
40
- await page.setViewportSize({ height: 100, width: 500 });
41
- await updateScreenshotClass(page, { height: '65px', width: '500px' });
42
- // when label on top tooltip is on fist tab (next to label)
43
- await page.keyboard.down('Tab');
44
- }
45
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
46
- });
47
- testEach([
48
- Object.assign(Object.assign({}, defaultProps), { readonly: true }),
49
- Object.assign(Object.assign({}, defaultProps), { value: 'blu' }),
50
- Object.assign(Object.assign({}, defaultProps), { value: 'blu', readonly: true }),
51
- Object.assign(Object.assign({}, defaultProps), { value: 'blu', readonly: true, labelOnTop: true }),
52
- Object.assign(Object.assign({}, defaultProps), { disabled: true }),
53
- Object.assign(Object.assign({}, defaultProps), { value: 'blu', disabled: true }),
54
- Object.assign(Object.assign({}, defaultProps), { value: 'batman', helpText: '<mg-icon icon="user" size="small"></mg-icon> Welcome batman' }),
55
- Object.assign(Object.assign({}, defaultProps), { value: 'blu', helpText: 'HelpText Message', required: true }),
56
- Object.assign(Object.assign({}, defaultProps), { value: 'blu', helpText: 'HelpText Message', required: true, readonly: true }),
57
- Object.assign(Object.assign({}, defaultProps), { value: 'blu', helpText: 'HelpText Message', required: true, disabled: true }),
58
- ])('Should render with template %s', async (page, args) => {
59
- await setPageContent(page, creatHtml(args));
60
- const element = await page.locator('mg-input-text.hydrated');
61
- await element.waitFor({ timeout: 1000 });
62
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
63
- });
64
- testEach([
65
- Object.assign(Object.assign({}, defaultProps), { required: true }),
66
- Object.assign(Object.assign({}, defaultProps), { required: true, lang: 'fr' }),
67
- ])('Should render error when leaving an empty required input %s', async (page, args) => {
68
- await setPageContent(page, creatHtml(args));
69
- const element = await page.locator('mg-input-text.hydrated');
70
- await element.waitFor({ timeout: 1000 });
71
- await page.keyboard.down('Tab');
72
- await page.keyboard.down('Tab');
73
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
74
- });
75
- testEach([16, 'full'])('Should render error when leaving input with a non matching pattern value, mg-width: %s', async (page, mgWidth) => {
76
- await setPageContent(page, creatHtml(Object.assign(Object.assign({}, defaultProps), { mgWidth, pattern: '[a-z]*', patternErrorMessage: 'Vous ne pouvez saisir que des lettres minuscules.' })));
77
- const element = await page.locator('mg-input-text.hydrated');
78
- await element.waitFor({ timeout: 1000 });
79
- const input = await page.locator('mg-input-text input');
80
- expect(element).toHaveClass('hydrated');
81
- await page.keyboard.down('Tab');
82
- await input.press('KeyB');
83
- await input.press('KeyL');
84
- await input.press('KeyU');
85
- await input.press('1');
86
- await page.keyboard.down('Tab');
87
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
88
- await page.keyboard.down('Tab');
89
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
90
- });
91
- testEach([
92
- Object.assign(Object.assign({}, defaultProps), { label: 'long label long label long label long label long label long label long label long label long label long label long label', tooltip: 'tooltip message' }),
93
- Object.assign(Object.assign({}, defaultProps), { label: 'long label long label long label long label long label long label long label long label long label long label long label', tooltip: 'tooltip message', labelOnTop: true }),
94
- ])('inside a div.mg-form-group %s', async (page, args) => {
95
- await setPageContent(page, `<div class="mg-form-group">${creatHtml(args)}</div>`);
96
- const element = await page.locator('mg-input-text.hydrated');
97
- await element.waitFor({ timeout: 1000 });
98
- await page.setViewportSize({ height: 100, width: 500 });
99
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
100
- });
101
- describeEach([true, false])('using append-input slot, case readonly %s', (readonly) => {
102
- testEach([
103
- Object.assign(Object.assign({}, defaultProps), { type: 'search', slot: `<mg-button slot="append-input" label="search">
104
- <mg-icon icon="magnifying-glass"></mg-icon> Search
105
- </mg-button>`, icon: 'magnifying-glass' }),
106
- Object.assign(Object.assign({}, defaultProps), { type: 'text', slot: '<span slot="append-input">@dc.comics</span>' }),
107
- Object.assign(Object.assign({}, defaultProps), { type: 'text', slot: `<mg-button is-icon slot="append-input" label="cancel" variant="secondary">
108
- <mg-icon icon="cross"></mg-icon>
109
- </mg-button>
110
- <mg-button is-icon slot="append-input" label="validate" variant="secondary">
111
- <mg-icon icon="check"></mg-icon>
112
- </mg-button>
113
- ` }),
114
- ])('render slot %s', async (page, props) => {
115
- await setPageContent(page, creatHtml(Object.assign(Object.assign({}, props), { placeholder: 'placeholder', value: 'bruce', readonly })));
116
- const element = await page.locator('mg-input-text.hydrated');
117
- await element.waitFor({ timeout: 1000 });
118
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
119
- });
120
- });
121
- describeEach([16, 4, 2])('with custom width: %s', (mgWidth) => {
122
- testEach([false, true])('with label on top: %s', async (page, labelOnTop) => {
123
- await setPageContent(page, creatHtml(Object.assign(Object.assign({}, defaultProps), { value: 'bruce', mgWidth,
124
- labelOnTop })));
125
- const element = await page.locator('mg-input-text.hydrated');
126
- await element.waitFor({ timeout: 1000 });
127
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
128
- });
129
- });
130
- testEach([false, true])('Ensure component fit in width 200px with label-on-top: %s', async (page, labelOnTop) => {
131
- await setPageContent(page, creatHtml(Object.assign(Object.assign({}, defaultProps), { labelOnTop })));
132
- const element = await page.locator('mg-input-text.hydrated');
133
- await element.waitFor({ timeout: 1000 });
134
- await page.setViewportSize({ height: 100, width: 200 });
135
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
136
- });
137
- });
138
- describe('datalist', () => {
139
- test('Should display datalist', async ({ page }) => {
140
- const props = { identifier: 'identifier', label: 'label', datalistoptions: ['batman', 'robin'] };
141
- await setPageContent(page, creatHtml(props));
142
- await page.keyboard.down('Tab');
143
- await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();
144
- });
145
- });
146
- });
147
- //# sourceMappingURL=mg-input-text.e2e.playwright.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mg-input-text.e2e.playwright.js","sourceRoot":"","sources":["../../../../../../src/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { renderAttributes, renderProperties } from '../../../../../utils/e2e.test.utils';\nimport { setPageContent, expect, describe, test, testEach, PageType, updateScreenshotClass, describeEach } from '../../../../../utils/playwright.e2e.test.utils';\nimport { MgInputText } from '../mg-input-text';\n\nconst creatHtml = (props: Partial<MgInputText & { slot: string }>) => {\n const slot = props.slot;\n delete props.slot;\n return `<mg-input-text ${renderAttributes(props)}>${slot}</mg-input-text><script>${renderProperties(props, `[identifier=\"${props.identifier}\"]`)}</script>`;\n};\n\nconst defaultProps = { identifier: 'identifier', label: 'label' };\n\ndescribe('mg-input-text', () => {\n describe('render', () => {\n testEach([\n { ...defaultProps },\n { ...defaultProps, labelOnTop: true },\n { ...defaultProps, labelHide: true },\n { ...defaultProps, placeholder: 'placeholder', helpText: 'HelpText Message' },\n ])('without tooltip %s', async (page: PageType, props: MgInputText) => {\n await setPageContent(page, creatHtml(props));\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n const input = await page.locator('mg-input-text input');\n\n // Hide caret for screenshots\n await page.locator('mg-input-text input').evaluate(element => (element.style.caretColor = 'transparent'));\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n\n await page.keyboard.down('Tab');\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n\n await input.press('KeyB');\n await input.press('KeyL');\n await input.press('KeyU');\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n\n testEach([true, false])('with tooltip, case label-on-top %s', async (page: PageType, labelOnTop: boolean) => {\n const args: Partial<MgInputText> = { ...defaultProps, tooltip: 'Tooltip message', labelOnTop };\n await setPageContent(page, creatHtml(args));\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n\n await page.keyboard.down('Tab');\n if (!labelOnTop) {\n // Ensure to display tooltip\n await page.setViewportSize({ height: 100, width: 500 });\n await updateScreenshotClass(page, { height: '65px', width: '500px' });\n // when label on top tooltip is on fist tab (next to label)\n await page.keyboard.down('Tab');\n }\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n\n testEach([\n { ...defaultProps, readonly: true },\n { ...defaultProps, value: 'blu' },\n { ...defaultProps, value: 'blu', readonly: true },\n { ...defaultProps, value: 'blu', readonly: true, labelOnTop: true },\n { ...defaultProps, disabled: true },\n { ...defaultProps, value: 'blu', disabled: true },\n { ...defaultProps, value: 'batman', helpText: '<mg-icon icon=\"user\" size=\"small\"></mg-icon> Welcome batman' },\n { ...defaultProps, value: 'blu', helpText: 'HelpText Message', required: true },\n { ...defaultProps, value: 'blu', helpText: 'HelpText Message', required: true, readonly: true },\n { ...defaultProps, value: 'blu', helpText: 'HelpText Message', required: true, disabled: true },\n ])('Should render with template %s', async (page: PageType, args) => {\n await setPageContent(page, creatHtml(args));\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n\n testEach([\n { ...defaultProps, required: true },\n { ...defaultProps, required: true, lang: 'fr' },\n ])('Should render error when leaving an empty required input %s', async (page: PageType, args) => {\n await setPageContent(page, creatHtml(args));\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await page.keyboard.down('Tab');\n await page.keyboard.down('Tab');\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n\n testEach([16, 'full'])('Should render error when leaving input with a non matching pattern value, mg-width: %s', async (page: PageType, mgWidth: MgInputText['mgWidth']) => {\n await setPageContent(\n page,\n creatHtml({\n ...defaultProps,\n mgWidth,\n pattern: '[a-z]*',\n patternErrorMessage: 'Vous ne pouvez saisir que des lettres minuscules.',\n }),\n );\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n const input = await page.locator('mg-input-text input');\n\n expect(element).toHaveClass('hydrated');\n\n await page.keyboard.down('Tab');\n\n await input.press('KeyB');\n await input.press('KeyL');\n await input.press('KeyU');\n await input.press('1');\n\n await page.keyboard.down('Tab');\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n\n await page.keyboard.down('Tab');\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n\n testEach([\n {\n ...defaultProps,\n label: 'long label long label long label long label long label long label long label long label long label long label long label',\n tooltip: 'tooltip message',\n },\n {\n ...defaultProps,\n label: 'long label long label long label long label long label long label long label long label long label long label long label',\n tooltip: 'tooltip message',\n labelOnTop: true,\n },\n ])('inside a div.mg-form-group %s', async (page: PageType, args) => {\n await setPageContent(page, `<div class=\"mg-form-group\">${creatHtml(args)}</div>`);\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await page.setViewportSize({ height: 100, width: 500 });\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n\n describeEach([true, false])('using append-input slot, case readonly %s', (readonly: boolean) => {\n testEach([\n {\n ...defaultProps,\n type: 'search',\n slot: `<mg-button slot=\"append-input\" label=\"search\">\n <mg-icon icon=\"magnifying-glass\"></mg-icon> Search\n </mg-button>`,\n icon: 'magnifying-glass',\n },\n {\n ...defaultProps,\n type: 'text',\n slot: '<span slot=\"append-input\">@dc.comics</span>',\n },\n {\n ...defaultProps,\n type: 'text',\n slot: `<mg-button is-icon slot=\"append-input\" label=\"cancel\" variant=\"secondary\">\n <mg-icon icon=\"cross\"></mg-icon>\n </mg-button>\n <mg-button is-icon slot=\"append-input\" label=\"validate\" variant=\"secondary\">\n <mg-icon icon=\"check\"></mg-icon>\n </mg-button>\n `,\n },\n ])('render slot %s', async (page: PageType, props: Record<string, unknown>) => {\n await setPageContent(\n page,\n creatHtml({\n ...props,\n placeholder: 'placeholder',\n value: 'bruce',\n readonly,\n }),\n );\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n });\n\n describeEach([16, 4, 2])('with custom width: %s', (mgWidth: MgInputText['mgWidth']) => {\n testEach([false, true])('with label on top: %s', async (page: PageType, labelOnTop: MgInputText['labelOnTop']) => {\n await setPageContent(\n page,\n creatHtml({\n ...defaultProps,\n value: 'bruce',\n mgWidth,\n labelOnTop,\n }),\n );\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n });\n\n testEach([false, true])('Ensure component fit in width 200px with label-on-top: %s', async (page: PageType, labelOnTop: MgInputText['labelOnTop']) => {\n await setPageContent(\n page,\n creatHtml({\n ...defaultProps,\n labelOnTop,\n }),\n );\n\n const element = await page.locator('mg-input-text.hydrated');\n await element.waitFor({ timeout: 1000 });\n\n await page.setViewportSize({ height: 100, width: 200 });\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n });\n\n describe('datalist', () => {\n test('Should display datalist', async ({ page }) => {\n const props = { identifier: 'identifier', label: 'label', datalistoptions: ['batman', 'robin'] };\n await setPageContent(page, creatHtml(props));\n\n await page.keyboard.down('Tab');\n\n await expect(page.locator('.e2e-screenshot')).toHaveScreenshot();\n });\n });\n});\n"]}
@@ -1,353 +0,0 @@
1
- import { h } from "@stencil/core";
2
- import { newSpecPage } from "@stencil/core/testing";
3
- import { MgInputText } from "../mg-input-text";
4
- import { MgButton } from "../../../../atoms/mg-button/mg-button";
5
- import { MgIcon } from "../../../../atoms/mg-icon/mg-icon";
6
- import messages from "../../../../../locales/en/messages.json";
7
- const getPage = (args, content) => {
8
- const page = newSpecPage({
9
- components: [MgInputText, MgButton, MgIcon],
10
- template: () => h("mg-input-text", Object.assign({}, args), content),
11
- });
12
- jest.runAllTimers();
13
- return page;
14
- };
15
- describe('mg-input-text', () => {
16
- beforeEach(() => jest.useFakeTimers());
17
- afterEach(() => jest.runOnlyPendingTimers());
18
- test.each([
19
- { label: 'label', identifier: 'identifier' },
20
- { label: 'label', identifier: 'identifier', labelHide: true },
21
- { label: 'label', identifier: 'identifier', labelOnTop: true },
22
- { label: 'label', identifier: 'identifier', readonly: true },
23
- { label: 'label', identifier: 'identifier', type: 'search' },
24
- { label: 'label', identifier: 'identifier', type: 'search', icon: 'magnifying-glass' },
25
- { label: 'label', identifier: 'identifier', datalistoptions: ['batman', 'robin', 'joker'] },
26
- { label: 'label', identifier: 'identifier', readonly: true, labelOnTop: true, tooltip: 'Tooltip message' },
27
- { label: 'label', identifier: 'identifier', readonly: true, value: 'blu' },
28
- { label: 'label', identifier: 'identifier', required: true, value: 'blu', helpText: 'My help text' },
29
- { label: 'label', identifier: 'identifier', required: true, readonly: true, value: 'blu', helpText: 'My help text' },
30
- { label: 'label', identifier: 'identifier', required: true, disabled: true, value: 'blu', helpText: 'My help text' },
31
- { label: 'label', identifier: 'identifier', tooltip: 'My Tooltip Message' },
32
- { label: 'label', identifier: 'identifier', tooltip: 'My Tooltip Message', labelOnTop: true },
33
- { label: 'label', identifier: 'identifier', displayCharacterLeft: false },
34
- ])('Should render with args %s:', async (args) => {
35
- const { root } = await getPage(args);
36
- expect(root).toMatchSnapshot();
37
- });
38
- test.each([
39
- h("mg-button", { slot: "append-input", label: "search", identifier: "identifier" }, h("mg-icon", { icon: "magnifying-glass" }), " Search"),
40
- h("span", { slot: "append-input" }, "test"),
41
- [
42
- h("mg-button", { "is-icon": true, slot: "append-input", label: "cancel", identifier: "identifier-cancel" }, h("mg-icon", { icon: "cross" })),
43
- h("mg-button", { "is-icon": true, slot: "append-input", label: "validate", identifier: "identifier-validate" }, h("mg-icon", { icon: "check" })),
44
- ],
45
- ])('Should render with slot.', async (slot) => {
46
- const args = { label: 'label', identifier: 'identifier', type: 'search' };
47
- const page = await getPage(args, slot);
48
- expect(page.root).toMatchSnapshot();
49
- });
50
- test.each(['', ' ', undefined])('Should not render with invalid identifier property: %s', async (identifier) => {
51
- expect.assertions(1);
52
- try {
53
- await getPage({ identifier });
54
- }
55
- catch (err) {
56
- expect(err.message).toMatch('<mg-input> prop "identifier" is required.');
57
- }
58
- });
59
- test.each([{ batman: undefined }, [undefined, 'batman']])('Should not render with invalid datalistoptions property: %s', async (datalistoptions) => {
60
- expect.assertions(1);
61
- try {
62
- await getPage({ identifier: 'identifier', label: 'comics', datalistoptions });
63
- }
64
- catch (err) {
65
- expect(err.message).toMatch('<mg-input-text> prop "datalistoptions" values must be the same type, string.');
66
- }
67
- });
68
- test.each(['', ' ', undefined])('Should throw error with invalid label property: %s', async (label) => {
69
- expect.assertions(1);
70
- try {
71
- await getPage({ identifier: 'identifier', label });
72
- }
73
- catch (err) {
74
- expect(err.message).toMatch('<mg-input> prop "label" is required.');
75
- }
76
- });
77
- test('Should throw an error with labelOnTop & labelHide set to true', async () => {
78
- expect.assertions(1);
79
- try {
80
- await getPage({ identifier: 'identifier', label: 'batman', labelOnTop: true, labelHide: true });
81
- }
82
- catch (err) {
83
- expect(err.message).toMatch('<mg-input> prop "labelOnTop" must not be paired with the prop "labelHide"');
84
- }
85
- });
86
- test.each(['', ' ', null, undefined])('Should throw an error when pattern is used with invalid patternErrorMessage: %s', async (patternErrorMessage) => {
87
- expect.assertions(1);
88
- try {
89
- await getPage({ identifier: 'identifier', label: 'blu', pattern: '[a-z]*', patternErrorMessage });
90
- }
91
- catch (err) {
92
- expect(err.message).toMatch('<mg-input-text> props "pattern" and "patternErrorMessage" must be non-empty string and paired.');
93
- }
94
- });
95
- test.each(['', ' ', null, undefined])('Should throw an error when patternErrorMessage is used with invalid pattern: %s', async (pattern) => {
96
- expect.assertions(1);
97
- try {
98
- await getPage({ identifier: 'identifier', label: 'blu', pattern, patternErrorMessage: 'pattern error message' });
99
- }
100
- catch (err) {
101
- expect(err.message).toMatch('<mg-input-text> props "pattern" and "patternErrorMessage" must be non-empty string and paired.');
102
- }
103
- });
104
- test('Should trigger events', async () => {
105
- const inputValue = 'Blu';
106
- const args = { label: 'label', identifier: 'identifier', helpText: 'My help text' };
107
- const page = await getPage(args);
108
- const element = page.doc.querySelector('mg-input-text');
109
- const input = element.shadowRoot.querySelector('input');
110
- //mock validity
111
- input.checkValidity = jest.fn(() => true);
112
- Object.defineProperty(input, 'validity', {
113
- get: jest.fn(() => ({
114
- valueMissing: false,
115
- patternMismatch: false,
116
- })),
117
- });
118
- jest.spyOn(page.rootInstance.valueChange, 'emit');
119
- input.dispatchEvent(new CustomEvent('focus', { bubbles: true }));
120
- await page.waitForChanges();
121
- expect(page.rootInstance.classCollection.has('mg-u-is-focused')).toEqual(true);
122
- expect(page.root).toMatchSnapshot(); //Snapshot on focus
123
- input.value = inputValue;
124
- input.dispatchEvent(new CustomEvent('input', { bubbles: true }));
125
- await page.waitForChanges();
126
- expect(page.rootInstance.valueChange.emit).toHaveBeenCalledWith(inputValue);
127
- input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));
128
- await page.waitForChanges();
129
- expect(page.rootInstance.classCollection.has('mg-u-is-focused')).toEqual(false);
130
- });
131
- describe.each(['readonly', 'disabled'])('validity, case next state is %s', nextState => {
132
- test.each([
133
- { validity: true, valueMissing: false, patternMismatch: false },
134
- { validity: false, valueMissing: true, patternMismatch: false },
135
- { validity: false, valueMissing: false, patternMismatch: true },
136
- ])('validity (%s), valueMissing (%s), patternMismatch (%s)', async ({ validity, valueMissing, patternMismatch }) => {
137
- const args = { label: 'label', identifier: 'identifier', pattern: '[a-z]*', patternErrorMessage: 'Non' };
138
- const page = await getPage(args);
139
- const element = page.doc.querySelector('mg-input-text');
140
- const input = element.shadowRoot.querySelector('input');
141
- //mock validity
142
- input.checkValidity = jest.fn(() => validity);
143
- Object.defineProperty(input, 'validity', {
144
- get: jest.fn(() => ({
145
- valueMissing,
146
- patternMismatch,
147
- })),
148
- });
149
- input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));
150
- await page.waitForChanges();
151
- if (validity) {
152
- expect(page.rootInstance.errorMessage).toBeUndefined();
153
- }
154
- else if (valueMissing) {
155
- expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);
156
- }
157
- else if (patternMismatch) {
158
- expect(page.rootInstance.errorMessage).toEqual(args.patternErrorMessage);
159
- }
160
- expect(page.rootInstance.valid).toEqual(validity);
161
- expect(page.rootInstance.invalid).toEqual(!validity);
162
- if (valueMissing) {
163
- expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled FALSE
164
- element[nextState] = true;
165
- await page.waitForChanges();
166
- expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled TRUE
167
- }
168
- });
169
- test("should trigger input focus method with setFocus component's public method", async () => {
170
- const page = await getPage({ label: 'label', identifier: 'identifier' });
171
- const element = page.doc.querySelector('mg-input-text');
172
- const input = element.shadowRoot.querySelector('input');
173
- input.focus = jest.fn();
174
- await element.setFocus();
175
- await page.waitForChanges();
176
- expect(input.focus).toHaveBeenCalled();
177
- });
178
- });
179
- test("display error with displayError component's public method", async () => {
180
- const page = await getPage({ label: 'label', identifier: 'identifier', required: true });
181
- expect(page.root).toMatchSnapshot();
182
- const element = page.doc.querySelector('mg-input-text');
183
- const input = element.shadowRoot.querySelector('input');
184
- //mock validity
185
- input.checkValidity = jest.fn(() => false);
186
- Object.defineProperty(input, 'validity', {
187
- get: jest.fn(() => ({
188
- valueMissing: true,
189
- })),
190
- });
191
- await element.displayError();
192
- await page.waitForChanges();
193
- expect(page.root).toMatchSnapshot();
194
- });
195
- test.each([
196
- {
197
- valid: true,
198
- errorMessage: 'Override error',
199
- },
200
- {
201
- valid: false,
202
- errorMessage: 'Override error',
203
- },
204
- ])("should display override error with setError component's public method", async (params) => {
205
- const page = await getPage({ label: 'label', identifier: 'identifier', required: true });
206
- expect(page.root).toMatchSnapshot();
207
- const element = page.doc.querySelector('mg-input-text');
208
- const input = element.shadowRoot.querySelector('input');
209
- //mock validity
210
- Object.defineProperty(input, 'validity', {
211
- get: () => ({}),
212
- });
213
- await element.setError(params.valid, params.errorMessage);
214
- await page.waitForChanges();
215
- expect(page.root).toMatchSnapshot();
216
- });
217
- test.each([
218
- {
219
- valid: '',
220
- errorMessage: 'Override error',
221
- error: '<mg-input-text> method "setError()" param "valid" must be a boolean',
222
- },
223
- {
224
- valid: undefined,
225
- errorMessage: 'Override error',
226
- error: '<mg-input-text> method "setError()" param "valid" must be a boolean',
227
- },
228
- {
229
- valid: true,
230
- errorMessage: ' ',
231
- error: '<mg-input-text> method "setError()" param "errorMessage" must be a string',
232
- },
233
- {
234
- valid: true,
235
- errorMessage: true,
236
- error: '<mg-input-text> method "setError()" param "errorMessage" must be a string',
237
- },
238
- ])("shloud throw error with setError component's public method invalid params", async (params) => {
239
- expect.assertions(1);
240
- try {
241
- const page = await getPage({ label: 'label', identifier: 'identifier', required: true });
242
- const element = page.doc.querySelector('mg-input-text');
243
- await element.setError(params.valid, params.errorMessage);
244
- await page.waitForChanges();
245
- }
246
- catch (err) {
247
- expect(err.message).toMatch(params.error);
248
- }
249
- });
250
- test.each(['fr', 'xx'])('display error message with locale: %s', async (lang) => {
251
- const page = await getPage({ label: 'label', identifier: 'identifier', required: true, lang });
252
- const element = page.doc.querySelector('mg-input-text');
253
- const input = element.shadowRoot.querySelector('input');
254
- //mock validity
255
- input.checkValidity = jest.fn(() => false);
256
- Object.defineProperty(input, 'validity', {
257
- get: jest.fn(() => ({
258
- valueMissing: true,
259
- })),
260
- });
261
- await element.displayError();
262
- await page.waitForChanges();
263
- expect(page.root).toMatchSnapshot();
264
- });
265
- test('Should remove error on input', async () => {
266
- const page = await getPage({ label: 'label', identifier: 'identifier', required: true });
267
- const element = page.doc.querySelector('mg-input-text');
268
- const input = element.shadowRoot.querySelector('input');
269
- //mock validity
270
- input.checkValidity = jest.fn().mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true);
271
- Object.defineProperty(input, 'validity', {
272
- get: jest
273
- .fn()
274
- .mockReturnValueOnce({
275
- valueMissing: true,
276
- })
277
- .mockReturnValueOnce({
278
- valueMissing: true,
279
- })
280
- .mockReturnValueOnce({
281
- valueMissing: false,
282
- })
283
- .mockReturnValueOnce({
284
- valueMissing: false,
285
- }),
286
- });
287
- await element.displayError();
288
- await page.waitForChanges();
289
- expect(page.rootInstance.hasDisplayedError).toEqual(true);
290
- expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);
291
- input.value = 'blu';
292
- input.dispatchEvent(new CustomEvent('input', { bubbles: true }));
293
- await page.waitForChanges();
294
- // Error message should disapear but we keep the hasDisplayedError status
295
- expect(page.rootInstance.hasDisplayedError).toEqual(true);
296
- expect(page.rootInstance.errorMessage).toBeUndefined();
297
- input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));
298
- await page.waitForChanges();
299
- // On blur the hasDisplayedError status change
300
- expect(page.rootInstance.hasDisplayedError).toEqual(false);
301
- });
302
- test('Should remove error on input when required change dynamically', async () => {
303
- const page = await getPage({ label: 'label', identifier: 'identifier', required: true });
304
- const element = page.doc.querySelector('mg-input-text');
305
- const input = element.shadowRoot.querySelector('input');
306
- //mock validity
307
- input.checkValidity = jest.fn().mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true);
308
- Object.defineProperty(input, 'validity', {
309
- get: jest
310
- .fn()
311
- .mockReturnValueOnce({
312
- valueMissing: true,
313
- })
314
- .mockReturnValueOnce({
315
- valueMissing: true,
316
- })
317
- .mockReturnValueOnce({
318
- valueMissing: false,
319
- })
320
- .mockReturnValueOnce({
321
- valueMissing: false,
322
- }),
323
- });
324
- await element.displayError();
325
- await page.waitForChanges();
326
- expect(page.rootInstance.hasDisplayedError).toEqual(true);
327
- expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);
328
- element.required = false;
329
- await page.waitForChanges();
330
- // Error message should disapear and change the hasDisplayedError status
331
- expect(page.rootInstance.hasDisplayedError).toEqual(false);
332
- expect(page.rootInstance.errorMessage).toBeUndefined();
333
- element.required = true;
334
- await page.waitForChanges();
335
- // If back on required the message is still not displayed
336
- expect(page.rootInstance.hasDisplayedError).toEqual(false);
337
- expect(page.rootInstance.errorMessage).toBeUndefined();
338
- });
339
- test('Should update mg-width', async () => {
340
- const page = await getPage({ label: 'label', identifier: 'identifier' });
341
- const element = page.doc.querySelector('mg-input-text');
342
- element.mgWidth = 2;
343
- await page.waitForChanges();
344
- expect(page.root).toMatchSnapshot();
345
- element.mgWidth = 4;
346
- await page.waitForChanges();
347
- expect(page.root).toMatchSnapshot();
348
- element.mgWidth = 16;
349
- await page.waitForChanges();
350
- expect(page.root).toMatchSnapshot();
351
- });
352
- });
353
- //# sourceMappingURL=mg-input-text.spec.js.map