@mgdis/mg-components 5.17.0 → 5.19.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 (348) hide show
  1. package/dist/cjs/{mg-menu.conf-43aacf30.js → components.utils-dc9c8a53.js} +160 -7
  2. package/dist/cjs/components.utils-dc9c8a53.js.map +1 -0
  3. package/dist/cjs/index-c042e24b.js +18 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/mg-action-more_34.cjs.entry.js +761 -582
  6. package/dist/cjs/mg-action-more_34.cjs.entry.js.map +1 -1
  7. package/dist/cjs/mg-components.cjs.js +1 -1
  8. package/dist/cjs/mg-item-more.cjs.entry.js +5 -5
  9. package/dist/cjs/mg-item-more.cjs.entry.js.map +1 -1
  10. package/dist/collection/components/atoms/mg-badge/mg-badge.js +9 -9
  11. package/dist/collection/components/atoms/mg-badge/mg-badge.js.map +1 -1
  12. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js +5 -5
  13. package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js.map +1 -1
  14. package/dist/collection/components/atoms/mg-button/mg-button.js +12 -12
  15. package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
  16. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js +4 -4
  17. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js.map +1 -1
  18. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js +3 -3
  19. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js.map +1 -1
  20. package/dist/collection/components/atoms/mg-card/mg-card.js +9 -9
  21. package/dist/collection/components/atoms/mg-card/mg-card.js.map +1 -1
  22. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +3 -3
  23. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js.map +1 -1
  24. package/dist/collection/components/atoms/mg-divider/mg-divider.js +4 -4
  25. package/dist/collection/components/atoms/mg-divider/mg-divider.js.map +1 -1
  26. package/dist/collection/components/atoms/mg-icon/mg-icon.js +13 -15
  27. package/dist/collection/components/atoms/mg-icon/mg-icon.js.map +1 -1
  28. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js +4 -4
  29. package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js.map +1 -1
  30. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +5 -4
  31. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js.map +1 -1
  32. package/dist/collection/components/atoms/mg-tag/mg-tag.js +9 -9
  33. package/dist/collection/components/atoms/mg-tag/mg-tag.js.map +1 -1
  34. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js +23 -0
  35. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js.map +1 -0
  36. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js +5 -5
  37. package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js.map +1 -1
  38. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +2 -2
  39. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js.map +1 -1
  40. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +37 -17
  41. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js.map +1 -1
  42. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js +7 -1
  43. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js.map +1 -1
  44. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js +9 -1
  45. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js.map +1 -1
  46. package/dist/collection/components/molecules/inputs/MgInput.js +12 -11
  47. package/dist/collection/components/molecules/inputs/MgInput.js.map +1 -1
  48. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +4 -4
  49. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js.map +1 -1
  50. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +2 -2
  51. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js.map +1 -1
  52. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js.map +1 -1
  53. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +111 -38
  54. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js.map +1 -1
  55. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js +21 -27
  56. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js.map +1 -1
  57. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js +62 -6
  58. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js.map +1 -1
  59. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +84 -13
  60. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js.map +1 -1
  61. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js +55 -0
  62. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js.map +1 -1
  63. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +115 -44
  64. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
  65. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js +55 -0
  66. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js.map +1 -1
  67. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +88 -15
  68. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js.map +1 -1
  69. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js +55 -0
  70. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js.map +1 -1
  71. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +87 -14
  72. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js.map +1 -1
  73. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js +1 -1
  74. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js.map +1 -1
  75. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js +60 -0
  76. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js.map +1 -1
  77. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +87 -14
  78. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js.map +1 -1
  79. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js +55 -0
  80. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js.map +1 -1
  81. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js +5 -0
  82. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js.map +1 -0
  83. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +151 -34
  84. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
  85. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js +147 -0
  86. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js.map +1 -0
  87. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js +80 -7
  88. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js.map +1 -1
  89. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +110 -36
  90. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
  91. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js +69 -6
  92. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js.map +1 -1
  93. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +9 -9
  94. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js.map +1 -1
  95. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js +2 -2
  96. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js.map +1 -1
  97. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +2 -2
  98. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js.map +1 -1
  99. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +8 -9
  100. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js.map +1 -1
  101. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +6 -6
  102. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
  103. package/dist/collection/components/molecules/mg-details/mg-details.js +5 -4
  104. package/dist/collection/components/molecules/mg-details/mg-details.js.map +1 -1
  105. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js +1 -1
  106. package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js.map +1 -1
  107. package/dist/collection/components/molecules/mg-form/mg-form.js +6 -6
  108. package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
  109. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js +4 -4
  110. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js.map +1 -1
  111. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +7 -7
  112. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js.map +1 -1
  113. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +5 -4
  114. package/dist/collection/components/molecules/mg-item-more/mg-item-more.js.map +1 -1
  115. package/dist/collection/components/molecules/mg-message/mg-message.js +8 -8
  116. package/dist/collection/components/molecules/mg-message/mg-message.js.map +1 -1
  117. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js +11 -11
  118. package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js.map +1 -1
  119. package/dist/collection/components/molecules/mg-modal/mg-modal.js +8 -8
  120. package/dist/collection/components/molecules/mg-modal/mg-modal.js.map +1 -1
  121. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js +7 -7
  122. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js.map +1 -1
  123. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js +3 -3
  124. package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js.map +1 -1
  125. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js +1 -1
  126. package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js.map +1 -1
  127. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +3 -3
  128. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js.map +1 -1
  129. package/dist/collection/components/molecules/mg-panel/mg-panel.js +17 -15
  130. package/dist/collection/components/molecules/mg-panel/mg-panel.js.map +1 -1
  131. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js +3 -3
  132. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js.map +1 -1
  133. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js +11 -21
  134. package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js.map +1 -1
  135. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +4 -4
  136. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js.map +1 -1
  137. package/dist/collection/components/molecules/mg-popover/mg-popover.js +36 -16
  138. package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
  139. package/dist/collection/components/molecules/mg-popover/test/{mg-popover.e2e.js → mg-popover.e2e.playwright.js} +54 -62
  140. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js.map +1 -0
  141. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js +12 -0
  142. package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js.map +1 -1
  143. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +5 -6
  144. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js.map +1 -1
  145. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +34 -34
  146. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
  147. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js +13 -13
  148. package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js.map +1 -1
  149. package/dist/collection/locales/en/messages.json +3 -3
  150. package/dist/collection/locales/fr/messages.json +3 -3
  151. package/dist/collection/utils/components.utils.js +16 -0
  152. package/dist/collection/utils/components.utils.js.map +1 -1
  153. package/dist/collection/utils/components.utils.spec.js +22 -1
  154. package/dist/collection/utils/components.utils.spec.js.map +1 -1
  155. package/dist/collection/variables.css +1 -275
  156. package/dist/components/MgInput.js +17 -16
  157. package/dist/components/MgInput.js.map +1 -1
  158. package/dist/components/components.utils.js +17 -1
  159. package/dist/components/components.utils.js.map +1 -1
  160. package/dist/components/index2.js +6 -6
  161. package/dist/components/mg-action-more.js +5 -5
  162. package/dist/components/mg-action-more.js.map +1 -1
  163. package/dist/components/mg-badge2.js +8 -8
  164. package/dist/components/mg-badge2.js.map +1 -1
  165. package/dist/components/mg-button2.js +11 -11
  166. package/dist/components/mg-button2.js.map +1 -1
  167. package/dist/components/mg-card2.js +8 -8
  168. package/dist/components/mg-card2.js.map +1 -1
  169. package/dist/components/mg-character-left2.js +1 -1
  170. package/dist/components/mg-character-left2.js.map +1 -1
  171. package/dist/components/mg-details.js +4 -3
  172. package/dist/components/mg-details.js.map +1 -1
  173. package/dist/components/mg-divider.js +3 -3
  174. package/dist/components/mg-divider.js.map +1 -1
  175. package/dist/components/mg-form.js +4 -4
  176. package/dist/components/mg-form.js.map +1 -1
  177. package/dist/components/mg-icon2.js +12 -14
  178. package/dist/components/mg-icon2.js.map +1 -1
  179. package/dist/components/mg-illustrated-message.js +7 -7
  180. package/dist/components/mg-illustrated-message.js.map +1 -1
  181. package/dist/components/mg-input-checkbox-paginated2.js +8 -8
  182. package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
  183. package/dist/components/mg-input-checkbox.js +70 -34
  184. package/dist/components/mg-input-checkbox.js.map +1 -1
  185. package/dist/components/mg-input-date.js +45 -12
  186. package/dist/components/mg-input-date.js.map +1 -1
  187. package/dist/components/mg-input-numeric.js +76 -43
  188. package/dist/components/mg-input-numeric.js.map +1 -1
  189. package/dist/components/mg-input-password.js +49 -14
  190. package/dist/components/mg-input-password.js.map +1 -1
  191. package/dist/components/mg-input-radio.js +48 -13
  192. package/dist/components/mg-input-radio.js.map +1 -1
  193. package/dist/components/mg-input-select2.js +48 -13
  194. package/dist/components/mg-input-select2.js.map +1 -1
  195. package/dist/components/mg-input-text2.js +83 -33
  196. package/dist/components/mg-input-text2.js.map +1 -1
  197. package/dist/components/mg-input-textarea.js +69 -35
  198. package/dist/components/mg-input-textarea.js.map +1 -1
  199. package/dist/components/mg-input-title2.js +4 -3
  200. package/dist/components/mg-input-title2.js.map +1 -1
  201. package/dist/components/mg-input-toggle.js +9 -9
  202. package/dist/components/mg-input-toggle.js.map +1 -1
  203. package/dist/components/mg-item-more.js +4 -3
  204. package/dist/components/mg-item-more.js.map +1 -1
  205. package/dist/components/mg-menu-item2.js +7 -8
  206. package/dist/components/mg-menu-item2.js.map +1 -1
  207. package/dist/components/mg-menu2.js +1 -1
  208. package/dist/components/mg-menu2.js.map +1 -1
  209. package/dist/components/mg-message.js +7 -7
  210. package/dist/components/mg-message.js.map +1 -1
  211. package/dist/components/mg-modal.js +7 -7
  212. package/dist/components/mg-modal.js.map +1 -1
  213. package/dist/components/mg-pagination2.js +2 -2
  214. package/dist/components/mg-pagination2.js.map +1 -1
  215. package/dist/components/mg-panel.js +16 -15
  216. package/dist/components/mg-panel.js.map +1 -1
  217. package/dist/components/mg-popover-content2.js +4 -4
  218. package/dist/components/mg-popover-content2.js.map +1 -1
  219. package/dist/components/mg-popover2.js +33 -14
  220. package/dist/components/mg-popover2.js.map +1 -1
  221. package/dist/components/mg-skip-links.js +4 -5
  222. package/dist/components/mg-skip-links.js.map +1 -1
  223. package/dist/components/mg-tabs.js +33 -33
  224. package/dist/components/mg-tabs.js.map +1 -1
  225. package/dist/components/mg-tag.js +8 -8
  226. package/dist/components/mg-tag.js.map +1 -1
  227. package/dist/components/mg-tooltip-content2.js +1 -1
  228. package/dist/components/mg-tooltip-content2.js.map +1 -1
  229. package/dist/components/mg-tooltip2.js +34 -15
  230. package/dist/components/mg-tooltip2.js.map +1 -1
  231. package/dist/esm/{mg-menu.conf-012fc9b4.js → components.utils-0f76010d.js} +153 -8
  232. package/dist/esm/components.utils-0f76010d.js.map +1 -0
  233. package/dist/esm/index-ce01e63b.js +18 -1
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/mg-action-more_34.entry.js +697 -518
  236. package/dist/esm/mg-action-more_34.entry.js.map +1 -1
  237. package/dist/esm/mg-components.js +1 -1
  238. package/dist/esm/mg-item-more.entry.js +4 -4
  239. package/dist/esm/mg-item-more.entry.js.map +1 -1
  240. package/dist/mg-components/locales/en/messages.json +3 -3
  241. package/dist/mg-components/locales/fr/messages.json +3 -3
  242. package/dist/mg-components/mg-components.css +1 -1
  243. package/dist/mg-components/mg-components.esm.js +1 -1
  244. package/dist/mg-components/mg-components.esm.js.map +1 -1
  245. package/dist/mg-components/p-768fc594.entry.js +2 -0
  246. package/dist/mg-components/p-768fc594.entry.js.map +1 -0
  247. package/dist/mg-components/p-c9e2c669.js +2 -0
  248. package/dist/mg-components/p-c9e2c669.js.map +1 -0
  249. package/dist/mg-components/p-d2d6afec.entry.js +2 -0
  250. package/dist/mg-components/p-d2d6afec.entry.js.map +1 -0
  251. package/dist/mg-components/variables.css +1 -275
  252. package/dist/types/components/atoms/mg-card/mg-card.d.ts +1 -1
  253. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +1 -1
  254. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +4 -3
  255. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.d.ts +1 -1
  256. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +4 -4
  257. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +22 -1
  258. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +17 -2
  259. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +35 -20
  260. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +16 -1
  261. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +16 -1
  262. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +16 -1
  263. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.conf.d.ts +12 -0
  264. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +30 -6
  265. package/dist/types/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.d.ts +1 -0
  266. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +17 -5
  267. package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +2 -1
  268. package/dist/types/components/molecules/mg-form/mg-form.d.ts +1 -1
  269. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +3 -3
  270. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +2 -1
  271. package/dist/types/components/molecules/mg-popover/test/mg-popover.e2e.playwright.d.ts +1 -0
  272. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +6 -5
  273. package/dist/types/components.d.ts +71 -13
  274. package/dist/types/utils/components.utils.d.ts +12 -0
  275. package/package.json +17 -18
  276. package/readme.md +0 -31
  277. package/dist/cjs/mg-menu.conf-43aacf30.js.map +0 -1
  278. package/dist/collection/components/atoms/mg-badge/mg-badge.css +0 -116
  279. package/dist/collection/components/atoms/mg-button/mg-button.css +0 -182
  280. package/dist/collection/components/atoms/mg-card/mg-card.css +0 -75
  281. package/dist/collection/components/atoms/mg-character-left/mg-character-left.css +0 -3
  282. package/dist/collection/components/atoms/mg-divider/mg-divider.css +0 -9
  283. package/dist/collection/components/atoms/mg-icon/mg-icon.css +0 -138
  284. package/dist/collection/components/atoms/mg-input-title/mg-input-title.css +0 -12
  285. package/dist/collection/components/atoms/mg-tag/mg-tag.css +0 -131
  286. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.js +0 -37
  287. package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.js.map +0 -1
  288. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.css +0 -43
  289. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.css +0 -3
  290. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +0 -268
  291. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +0 -211
  292. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +0 -257
  293. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +0 -254
  294. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +0 -179
  295. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +0 -264
  296. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +0 -304
  297. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.js +0 -171
  298. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.js.map +0 -1
  299. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +0 -303
  300. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +0 -233
  301. package/dist/collection/components/molecules/menu/mg-menu/mg-menu.css +0 -37
  302. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +0 -377
  303. package/dist/collection/components/molecules/mg-action-more/mg-action-more.css +0 -39
  304. package/dist/collection/components/molecules/mg-details/mg-details.css +0 -64
  305. package/dist/collection/components/molecules/mg-form/mg-form.css +0 -19
  306. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.css +0 -45
  307. package/dist/collection/components/molecules/mg-item-more/mg-item-more.css +0 -30
  308. package/dist/collection/components/molecules/mg-message/mg-message.css +0 -82
  309. package/dist/collection/components/molecules/mg-modal/mg-modal.css +0 -67
  310. package/dist/collection/components/molecules/mg-pagination/mg-pagination.css +0 -47
  311. package/dist/collection/components/molecules/mg-panel/mg-panel.css +0 -64
  312. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.css +0 -135
  313. package/dist/collection/components/molecules/mg-popover/mg-popover.css +0 -11
  314. package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.js.map +0 -1
  315. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.css +0 -28
  316. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +0 -99
  317. package/dist/collection/styles/a11y.scss +0 -36
  318. package/dist/collection/styles/fonts.scss +0 -21
  319. package/dist/collection/styles/form.scss +0 -3
  320. package/dist/collection/styles/global.scss +0 -80
  321. package/dist/collection/styles/layout.scss +0 -29
  322. package/dist/collection/styles/main.scss +0 -23
  323. package/dist/collection/styles/mg-icon-animation.scss +0 -6
  324. package/dist/collection/styles/navigation-button.scss +0 -77
  325. package/dist/collection/styles/reset-mg-card-slotted-variables.scss +0 -11
  326. package/dist/collection/styles/typography.scss +0 -82
  327. package/dist/collection/styles/utilities.scss +0 -21
  328. package/dist/collection/test/typography.e2e.playwright.js +0 -12
  329. package/dist/collection/test/typography.e2e.playwright.js.map +0 -1
  330. package/dist/esm/mg-menu.conf-012fc9b4.js.map +0 -1
  331. package/dist/mg-components/p-1d7d6fa0.js +0 -2
  332. package/dist/mg-components/p-1d7d6fa0.js.map +0 -1
  333. package/dist/mg-components/p-9257e8f1.entry.js +0 -2
  334. package/dist/mg-components/p-9257e8f1.entry.js.map +0 -1
  335. package/dist/mg-components/p-caafc9cf.entry.js +0 -2
  336. package/dist/mg-components/p-caafc9cf.entry.js.map +0 -1
  337. package/dist/mg-components/styles/a11y.scss +0 -36
  338. package/dist/mg-components/styles/fonts.scss +0 -21
  339. package/dist/mg-components/styles/form.scss +0 -3
  340. package/dist/mg-components/styles/global.scss +0 -80
  341. package/dist/mg-components/styles/layout.scss +0 -29
  342. package/dist/mg-components/styles/main.scss +0 -23
  343. package/dist/mg-components/styles/mg-icon-animation.scss +0 -6
  344. package/dist/mg-components/styles/navigation-button.scss +0 -77
  345. package/dist/mg-components/styles/reset-mg-card-slotted-variables.scss +0 -11
  346. package/dist/mg-components/styles/typography.scss +0 -82
  347. package/dist/mg-components/styles/utilities.scss +0 -21
  348. /package/dist/types/{test/typography.e2e.playwright.d.ts → components/atoms/mg-tag/test/mg-tag.e2e.playwright.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mg-form.spec.js","sourceRoot":"","sources":["../../../../../src/components/molecules/mg-form/test/mg-form.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { MgForm } from '../mg-form';\nimport { MgButton } from '../../../atoms/mg-button/mg-button';\nimport { buttonTypes } from '../../../atoms/mg-button/mg-button.conf';\nimport { MgInputCheckbox } from '../../inputs/mg-input-checkbox/mg-input-checkbox';\nimport { MgInputDate } from '../../inputs/mg-input-date/mg-input-date';\nimport { MgInputNumeric } from '../../inputs/mg-input-numeric/mg-input-numeric';\nimport { MgInputPassword } from '../../inputs/mg-input-password/mg-input-password';\nimport { MgInputRadio } from '../../inputs/mg-input-radio/mg-input-radio';\nimport { MgInputSelect } from '../../inputs/mg-input-select/mg-input-select';\nimport { MgInputText } from '../../inputs/mg-input-text/mg-input-text';\nimport { MgInputTextarea } from '../../inputs/mg-input-textarea/mg-input-textarea';\nimport { MgInputToggle } from '../../inputs/mg-input-toggle/mg-input-toggle';\nimport { HTMLMgInputsElement } from '../../inputs/MgInput.conf';\nimport { setupMutationObserverMock, setupSubmitEventMock } from '../../../../utils/unit.test.utils';\n\nconst getPage = (args, content?) => {\n const page = newSpecPage({\n components: [MgForm, MgInputCheckbox, MgInputDate, MgInputNumeric, MgInputPassword, MgInputRadio, MgInputSelect, MgInputText, MgInputTextarea, MgInputToggle, MgButton],\n template: () => <mg-form {...args}>{content}</mg-form>,\n });\n\n jest.runAllTimers();\n\n return page;\n};\n\nconst getSlottedContent = () => [\n <mg-input-checkbox\n identifier=\"mg-input-checkbox\"\n label=\"mg-input-checkbox label\"\n value={[\n { title: 'oui', value: true },\n { title: 'non', value: false },\n ]}\n ></mg-input-checkbox>,\n <mg-input-date identifier=\"mg-input-date\" label=\"mg-input-date label\"></mg-input-date>,\n <mg-input-numeric identifier=\"mg-input-numeric\" label=\"mg-input-numeric label\"></mg-input-numeric>,\n <mg-input-password identifier=\"mg-input-password\" label=\"mg-input-password label\"></mg-input-password>,\n <mg-input-radio identifier=\"mg-input-radio\" label=\"mg-input-radio label\" items={['blu', 'bli', 'bla', 'blo']}></mg-input-radio>,\n <mg-input-select identifier=\"mg-input-select\" label=\"mg-input-select label\" items={['blu', 'bli', 'bla', 'blo']}></mg-input-select>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-textarea identifier=\"mg-input-textarea\" label=\"mg-input-textarea label\"></mg-input-textarea>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n];\n\nconst setCheckValitidy = (input: HTMLMgInputsElement): void => {\n const shadowInputs = input.shadowRoot.querySelectorAll('input, textarea, select') as NodeListOf<HTMLInputElement>;\n shadowInputs.forEach(input => {\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n });\n};\n\nconst setMgInputChecboxeInvalid = (input: HTMLMgInputCheckboxElement): void => {\n input.required = true;\n input.value = [\n { title: 'oui', value: false },\n { title: 'non', value: false },\n ];\n};\n\ndescribe('mg-form', () => {\n let fireMo;\n\n beforeEach(() => {\n jest.useFakeTimers();\n\n setupMutationObserverMock({\n observe: function () {\n fireMo = this.cb;\n },\n disconnect: function () {\n return null;\n },\n takeRecords: () => [],\n });\n setupSubmitEventMock();\n });\n\n afterEach(() => jest.runOnlyPendingTimers());\n\n test.each([\n { args: { identifier: 'identifier' } },\n { args: { identifier: 'identifier', readonly: true } },\n { args: { identifier: 'identifier', disabled: true } },\n { args: { identifier: 'identifier' }, required: 'one' },\n { args: { identifier: 'identifier' }, required: 'all' },\n { args: { identifier: 'identifier' }, required: 'multiple' },\n { args: { identifier: 'identifier' }, required: 'single' },\n { args: { identifier: 'identifier' }, readonly: true },\n ])('Should render with args %o:', async ({ args, required, readonly }) => {\n const slot = required === 'single' ? getSlottedContent()[0] : getSlottedContent();\n if (required === 'one') slot[0].$attrs$.required = true;\n else if (required === 'all')\n slot.forEach(s => {\n s.$attrs$.required = true;\n });\n else if (required === 'multiple') {\n slot[0].$attrs$.required = true;\n slot[1].$attrs$.required = true;\n } else if (required === 'single') slot.$attrs$.required = true;\n\n if (readonly)\n slot.forEach(s => {\n s.$attrs$.readonly = true;\n });\n\n const { root } = await getPage(args, slot);\n expect(root).toMatchSnapshot();\n });\n\n test.each([false, true])('Should display components errors (readonly: %s)', async readonly => {\n const args = { identifier: 'identifier', readonly };\n\n const slot = getSlottedContent();\n // Set all elements required\n slot.forEach(s => {\n s.$attrs$.required = true;\n });\n\n const page = await getPage(args, slot);\n const mgForm = page.doc.querySelector('mg-form');\n\n if (!readonly) {\n // Mock all input validity\n const mgInputs = Array.from(mgForm.querySelectorAll('*')).filter(\n (node: Node) => node.nodeName.startsWith('MG-INPUT-') && node.nodeName !== 'MG-INPUT-TOGGLE',\n ) as HTMLMgInputsElement[];\n mgInputs.forEach(input => {\n if (input.nodeName.includes('CHECKBOX')) setMgInputChecboxeInvalid(input as HTMLMgInputCheckboxElement);\n setCheckValitidy(input);\n });\n await page.waitForChanges();\n\n await mgForm.displayError();\n }\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each(['fr', 'xx'])('display error message with locale: %s', async lang => {\n const args = { identifier: 'identifier', lang };\n\n const slot = getSlottedContent();\n // Set all elements required\n slot.forEach(s => {\n s.$attrs$.required = true;\n });\n\n const page = await getPage(args, slot);\n const mgForm = page.doc.querySelector('mg-form');\n\n // Mock all input validity\n const mgInputs = Array.from(mgForm.querySelectorAll('*')).filter(\n (node: Node) => node.nodeName.startsWith('MG-INPUT-') && node.nodeName !== 'MG-INPUT-TOGGLE',\n ) as HTMLMgInputsElement[];\n mgInputs.forEach(input => {\n if (input.nodeName.includes('CHECKBOX')) setMgInputChecboxeInvalid(input as HTMLMgInputCheckboxElement);\n setCheckValitidy(input);\n });\n await page.waitForChanges();\n\n await mgForm.displayError();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([undefined, ...buttonTypes])('Should only emit \"submit\" event for <mg-button type=\"submit\">, case type is %s', async type => {\n const args = { identifier: 'identifier' };\n const slot = [\n ...getSlottedContent(),\n <div slot=\"actions\">\n <mg-button type={type}>Submit</mg-button>\n </div>,\n ];\n const page = await getPage(args, slot);\n\n const mgForm = page.doc.querySelector('mg-form');\n const form = mgForm.shadowRoot.querySelector('form');\n const mgButton = page.doc.querySelector('mg-button');\n\n const formSpy = jest.spyOn(form, 'dispatchEvent');\n const mgFormSpy = jest.spyOn(page.rootInstance.formSubmit, 'emit');\n\n mgButton.dispatchEvent(new Event('click', { bubbles: true }));\n\n await page.waitForChanges();\n\n if ([undefined, 'submit'].includes(type)) {\n expect(formSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n type: 'submit',\n cancelable: true,\n }),\n );\n expect(mgFormSpy).toHaveBeenCalled();\n } else {\n expect(formSpy).not.toHaveBeenCalled();\n expect(mgFormSpy).not.toHaveBeenCalled();\n }\n });\n\n test('Should update input list when element is added to DOM', async () => {\n const args = { identifier: 'identifier' };\n const slot = getSlottedContent();\n const page = await getPage(args, slot);\n\n spyOn(page.rootInstance, 'setMgInputs');\n\n expect(page.rootInstance.setMgInputs).not.toHaveBeenCalled();\n\n fireMo([]);\n await page.waitForChanges();\n\n expect(page.rootInstance.setMgInputs).toHaveBeenCalled();\n });\n\n test.each(['readonly', 'disabled'])('Should update input list when attribute % change', async attribute => {\n const args = { identifier: 'identifier' };\n const slot = getSlottedContent();\n const page = await getPage(args, slot);\n const mgForm = page.doc.querySelector('mg-form');\n\n spyOn(page.rootInstance, 'setMgInputs');\n spyOn(page.rootInstance, 'setRequiredMessage');\n\n expect(page.rootInstance.setMgInputs).not.toHaveBeenCalled();\n expect(page.rootInstance.setRequiredMessage).not.toHaveBeenCalled();\n\n mgForm[attribute] = true;\n await page.waitForChanges();\n\n expect(page.rootInstance.setMgInputs).toHaveBeenCalled();\n expect(page.rootInstance.setRequiredMessage).toHaveBeenCalled();\n });\n\n test.each([\n {\n slot: () => [<mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>],\n message: null,\n },\n {\n slot: () => [\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: null,\n },\n {\n slot: () => [<mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>],\n message: 'The field is required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n ],\n message: 'All fields are required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n ],\n message: 'Field with a <strong class=\"is-asterisk\">*</strong> is required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: 'Field with a <strong class=\"is-asterisk\">*</strong> is required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: 'All fields are required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n ],\n message: 'Fields with a <strong class=\"is-asterisk\">*</strong> are required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: 'Field with a <strong class=\"is-asterisk\">*</strong> is required',\n },\n ])('Should display needeed required message', async ({ slot, message }) => {\n const page = await getPage({ identifier: 'identifier' }, slot());\n\n expect(page.rootInstance.requiredMessage).toBe(message);\n });\n});\n"]}
1
+ {"version":3,"file":"mg-form.spec.js","sourceRoot":"","sources":["../../../../../src/components/molecules/mg-form/test/mg-form.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { MgForm } from '../mg-form';\nimport { MgButton } from '../../../atoms/mg-button/mg-button';\nimport { buttonTypes } from '../../../atoms/mg-button/mg-button.conf';\nimport { MgInputCheckbox } from '../../inputs/mg-input-checkbox/mg-input-checkbox';\nimport { MgInputDate } from '../../inputs/mg-input-date/mg-input-date';\nimport { MgInputNumeric } from '../../inputs/mg-input-numeric/mg-input-numeric';\nimport { MgInputPassword } from '../../inputs/mg-input-password/mg-input-password';\nimport { MgInputRadio } from '../../inputs/mg-input-radio/mg-input-radio';\nimport { MgInputSelect } from '../../inputs/mg-input-select/mg-input-select';\nimport { MgInputText } from '../../inputs/mg-input-text/mg-input-text';\nimport { MgInputTextarea } from '../../inputs/mg-input-textarea/mg-input-textarea';\nimport { MgInputToggle } from '../../inputs/mg-input-toggle/mg-input-toggle';\nimport { HTMLMgInputsElement } from '../../inputs/MgInput.conf';\nimport { setupMutationObserverMock, setupSubmitEventMock } from '../../../../utils/unit.test.utils';\n\nconst getPage = (args, content?) => {\n const page = newSpecPage({\n components: [MgForm, MgInputCheckbox, MgInputDate, MgInputNumeric, MgInputPassword, MgInputRadio, MgInputSelect, MgInputText, MgInputTextarea, MgInputToggle, MgButton],\n template: () => <mg-form {...args}>{content}</mg-form>,\n });\n\n jest.runAllTimers();\n\n return page;\n};\n\nconst getSlottedContent = () => [\n <mg-input-checkbox\n identifier=\"mg-input-checkbox\"\n label=\"mg-input-checkbox label\"\n value={[\n { title: 'oui', value: true },\n { title: 'non', value: false },\n ]}\n ></mg-input-checkbox>,\n <mg-input-date identifier=\"mg-input-date\" label=\"mg-input-date label\"></mg-input-date>,\n <mg-input-numeric identifier=\"mg-input-numeric\" label=\"mg-input-numeric label\"></mg-input-numeric>,\n <mg-input-password identifier=\"mg-input-password\" label=\"mg-input-password label\"></mg-input-password>,\n <mg-input-radio identifier=\"mg-input-radio\" label=\"mg-input-radio label\" items={['blu', 'bli', 'bla', 'blo']}></mg-input-radio>,\n <mg-input-select identifier=\"mg-input-select\" label=\"mg-input-select label\" items={['blu', 'bli', 'bla', 'blo']}></mg-input-select>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-textarea identifier=\"mg-input-textarea\" label=\"mg-input-textarea label\"></mg-input-textarea>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n];\n\nconst setCheckValitidy = (input: HTMLMgInputsElement): void => {\n const shadowInputs = input.shadowRoot.querySelectorAll('input, textarea, select') as NodeListOf<HTMLInputElement>;\n shadowInputs.forEach(input => {\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n });\n};\n\nconst setMgInputChecboxeInvalid = (input: HTMLMgInputCheckboxElement): void => {\n input.required = true;\n input.value = [\n { title: 'oui', value: false },\n { title: 'non', value: false },\n ];\n};\n\ndescribe('mg-form', () => {\n let fireMo;\n\n beforeEach(() => {\n jest.useFakeTimers();\n\n setupMutationObserverMock({\n observe: function () {\n fireMo = this.cb;\n },\n disconnect: function () {\n return null;\n },\n takeRecords: () => [],\n });\n setupSubmitEventMock();\n });\n\n afterEach(() => jest.runOnlyPendingTimers());\n\n test.each([\n { args: { identifier: 'identifier' } },\n { args: { identifier: 'identifier', readonly: true } },\n { args: { identifier: 'identifier', disabled: true } },\n { args: { identifier: 'identifier' }, required: 'one' },\n { args: { identifier: 'identifier' }, required: 'all' },\n { args: { identifier: 'identifier' }, required: 'multiple' },\n { args: { identifier: 'identifier' }, required: 'single' },\n { args: { identifier: 'identifier' }, readonly: true },\n ])('Should render with args %o:', async ({ args, required, readonly }) => {\n const slot = required === 'single' ? getSlottedContent()[0] : getSlottedContent();\n if (required === 'one') slot[0].$attrs$.required = true;\n else if (required === 'all')\n slot.forEach(s => {\n s.$attrs$.required = true;\n });\n else if (required === 'multiple') {\n slot[0].$attrs$.required = true;\n slot[1].$attrs$.required = true;\n } else if (required === 'single') slot.$attrs$.required = true;\n\n if (readonly)\n slot.forEach(s => {\n s.$attrs$.readonly = true;\n });\n\n const { root } = await getPage(args, slot);\n expect(root).toMatchSnapshot();\n });\n\n test.each([false, true])('Should display components errors (readonly: %s)', async readonly => {\n const args = { identifier: 'identifier', readonly };\n\n const slot = getSlottedContent();\n // Set all elements required\n slot.forEach(s => {\n s.$attrs$.required = true;\n });\n\n const page = await getPage(args, slot);\n const mgForm = page.doc.querySelector('mg-form');\n\n if (!readonly) {\n // Mock all input validity\n const mgInputs = Array.from(mgForm.querySelectorAll('*')).filter(\n (node: Node) => node.nodeName.startsWith('MG-INPUT-') && node.nodeName !== 'MG-INPUT-TOGGLE',\n ) as HTMLMgInputsElement[];\n mgInputs.forEach(input => {\n if (input.nodeName.includes('CHECKBOX')) setMgInputChecboxeInvalid(input as HTMLMgInputCheckboxElement);\n setCheckValitidy(input);\n });\n await page.waitForChanges();\n\n await mgForm.displayError();\n }\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each(['fr', 'xx'])('display error message with locale: %s', async lang => {\n const args = { identifier: 'identifier', lang };\n\n const slot = getSlottedContent();\n // Set all elements required\n slot.forEach(s => {\n s.$attrs$.required = true;\n });\n\n const page = await getPage(args, slot);\n const mgForm = page.doc.querySelector('mg-form');\n\n // Mock all input validity\n const mgInputs = Array.from(mgForm.querySelectorAll('*')).filter(\n (node: Node) => node.nodeName.startsWith('MG-INPUT-') && node.nodeName !== 'MG-INPUT-TOGGLE',\n ) as HTMLMgInputsElement[];\n mgInputs.forEach(input => {\n if (input.nodeName.includes('CHECKBOX')) setMgInputChecboxeInvalid(input as HTMLMgInputCheckboxElement);\n setCheckValitidy(input);\n });\n await page.waitForChanges();\n\n await mgForm.displayError();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([undefined, ...buttonTypes])('Should only emit \"submit\" event for <mg-button type=\"submit\">, case type is %s', async type => {\n const args = { identifier: 'identifier' };\n const slot = [\n ...getSlottedContent(),\n <div slot=\"actions\">\n <mg-button type={type}>Submit</mg-button>\n </div>,\n ];\n const page = await getPage(args, slot);\n\n const mgForm = page.doc.querySelector('mg-form');\n const form = mgForm.shadowRoot.querySelector('form');\n const mgButton = page.doc.querySelector('mg-button');\n\n const formSpy = jest.spyOn(form, 'dispatchEvent');\n const mgFormSpy = jest.spyOn(page.rootInstance.formSubmit, 'emit');\n\n mgButton.dispatchEvent(new Event('click', { bubbles: true }));\n\n await page.waitForChanges();\n\n if ([undefined, 'submit'].includes(type)) {\n expect(formSpy).toHaveBeenCalledWith(\n expect.objectContaining({\n type: 'submit',\n cancelable: true,\n }),\n );\n expect(mgFormSpy).toHaveBeenCalled();\n } else {\n expect(formSpy).not.toHaveBeenCalled();\n expect(mgFormSpy).not.toHaveBeenCalled();\n }\n });\n\n test('Should update input list when element is added to DOM', async () => {\n const args = { identifier: 'identifier' };\n const slot = getSlottedContent();\n const page = await getPage(args, slot);\n\n spyOn(page.rootInstance, 'setMgInputs');\n\n expect(page.rootInstance.setMgInputs).not.toHaveBeenCalled();\n\n fireMo([]);\n await page.waitForChanges();\n\n expect(page.rootInstance.setMgInputs).toHaveBeenCalled();\n });\n\n test.each(['readonly', 'disabled'])('Should update input list when attribute % change', async attribute => {\n const args = { identifier: 'identifier' };\n const slot = getSlottedContent();\n const page = await getPage(args, slot);\n const mgForm = page.doc.querySelector('mg-form');\n\n spyOn(page.rootInstance, 'setMgInputs');\n spyOn(page.rootInstance, 'setRequiredMessage');\n\n expect(page.rootInstance.setMgInputs).not.toHaveBeenCalled();\n expect(page.rootInstance.setRequiredMessage).not.toHaveBeenCalled();\n\n mgForm[attribute] = true;\n await page.waitForChanges();\n\n expect(page.rootInstance.setMgInputs).toHaveBeenCalled();\n expect(page.rootInstance.setRequiredMessage).toHaveBeenCalled();\n });\n\n test.each([\n {\n slot: () => [<mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>],\n message: null,\n },\n {\n slot: () => [\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: null,\n },\n {\n slot: () => [<mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>],\n message: 'The field is required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n ],\n message: 'All fields are required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n ],\n message: 'Field with a <strong class=\"mg-u-is-asterisk\">*</strong> is required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: 'Field with a <strong class=\"mg-u-is-asterisk\">*</strong> is required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: 'All fields are required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-text identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n ],\n message: 'Fields with a <strong class=\"mg-u-is-asterisk\">*</strong> are required',\n },\n {\n slot: () => [\n <mg-input-text required identifier=\"mg-input-text\" label=\"mg-input-text label\"></mg-input-text>,\n <mg-input-toggle\n identifier=\"mg-input-toggle\"\n label=\"mg-input-toggle label\"\n items={[\n { title: 'non', value: false },\n { title: 'oui', value: true },\n ]}\n >\n <span slot=\"item-1\">non</span>\n <span slot=\"item-2\">oui</span>\n </mg-input-toggle>,\n ],\n message: 'Field with a <strong class=\"mg-u-is-asterisk\">*</strong> is required',\n },\n ])('Should display needeed required message', async ({ slot, message }) => {\n const page = await getPage({ identifier: 'identifier' }, slot());\n\n expect(page.rootInstance.requiredMessage).toBe(message);\n });\n});\n"]}
@@ -28,23 +28,23 @@ export class MgIllustratedMessage {
28
28
  */
29
29
  render() {
30
30
  return (h("div", { class: {
31
- 'mg-illustrated-message': true,
32
- 'mg-illustrated-message--horizontal': this.direction === 'horizontal',
31
+ 'mg-c-illustrated-message': true,
32
+ 'mg-c-illustrated-message--horizontal': this.direction === 'horizontal',
33
33
  } }, h("div", { class: {
34
- 'mg-illustrated-message__illustration': true,
35
- 'mg-illustrated-message__illustration--small': this.size === 'small',
36
- } }, h("slot", { name: "illustration" })), h("div", { class: "mg-illustrated-message__slots" }, h("div", { class: "mg-illustrated-message__title" }, h("slot", { name: "title" })), h("div", { class: "mg-illustrated-message__details" }, h("slot", { name: "details" })))));
34
+ 'mg-c-illustrated-message__illustration': true,
35
+ 'mg-c-illustrated-message__illustration--small': this.size === 'small',
36
+ } }, h("slot", { name: "illustration" })), h("div", { class: "mg-c-illustrated-message__slots" }, h("div", { class: "mg-c-illustrated-message__title" }, h("slot", { name: "title" })), h("div", { class: "mg-c-illustrated-message__details" }, h("slot", { name: "details" })))));
37
37
  }
38
38
  static get is() { return "mg-illustrated-message"; }
39
39
  static get encapsulation() { return "shadow"; }
40
40
  static get originalStyleUrls() {
41
41
  return {
42
- "$": ["mg-illustrated-message.scss"]
42
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-illustrated-message.css"]
43
43
  };
44
44
  }
45
45
  static get styleUrls() {
46
46
  return {
47
- "$": ["mg-illustrated-message.css"]
47
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-illustrated-message.css"]
48
48
  };
49
49
  }
50
50
  static get properties() {
@@ -1 +1 @@
1
- {"version":3,"file":"mg-illustrated-message.js","sourceRoot":"","sources":["../../../../src/components/molecules/mg-illustrated-message/mg-illustrated-message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAO5D,MAAM,OAAO,oBAAoB;;gBAaK,SAAS;qBAKE,UAAU;;EAEzD;;iBAEe;EAEf;;KAEG;EACH,gBAAgB;IACd,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAEpF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,EAAE;MACzE,MAAM,IAAI,KAAK,CAAC,6DAA6D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxG;SAAM,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;MAC5C,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;IAED,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;EAC9D,CAAC;EAED;;;KAGG;EACH,MAAM;IACJ,OAAO,CACL,WACE,KAAK,EAAE;QACL,wBAAwB,EAAE,IAAI;QAC9B,oCAAoC,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY;OACtE;MAED,WACE,KAAK,EAAE;UACL,sCAAsC,EAAE,IAAI;UAC5C,6CAA6C,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;SACrE;QAED,YAAM,IAAI,EAAC,cAAc,GAAQ,CAC7B;MACN,WAAK,KAAK,EAAC,+BAA+B;QACxC,WAAK,KAAK,EAAC,+BAA+B;UACxC,YAAM,IAAI,EAAC,OAAO,GAAQ,CACtB;QACN,WAAK,KAAK,EAAC,iCAAiC;UAC1C,YAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACF,CACF,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Prop } from '@stencil/core';\nimport { isTagName } from '../../../utils/components.utils';\n\n@Component({\n tag: 'mg-illustrated-message',\n styleUrl: 'mg-illustrated-message.scss',\n shadow: true,\n})\nexport class MgIllustratedMessage {\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgIllustratedMessageElement;\n\n /**\n * Define illustration size\n */\n @Prop() size: 'regular' | 'small' = 'regular';\n\n /**\n * Define component orientation\n */\n @Prop() direction: 'vertical' | 'horizontal' = 'vertical';\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Check if component props are well configured on init\n */\n componentDidLoad(): void {\n const headingTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n const slottedIllustrations = this.element.querySelectorAll('[slot=\"illustration\"]');\n\n if (!isTagName(this.element.querySelector('[slot=\"title\"]'), headingTags)) {\n throw new Error(`<mg-illustrated-message> Slotted title must be a heading: ${headingTags.join(', ')}`);\n } else if (slottedIllustrations.length !== 1) {\n throw new Error('<mg-illustrated-message> Slotted illustration must be present and unique.');\n }\n\n slottedIllustrations[0].setAttribute('aria-hidden', 'true');\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <div\n class={{\n 'mg-illustrated-message': true,\n 'mg-illustrated-message--horizontal': this.direction === 'horizontal',\n }}\n >\n <div\n class={{\n 'mg-illustrated-message__illustration': true,\n 'mg-illustrated-message__illustration--small': this.size === 'small',\n }}\n >\n <slot name=\"illustration\"></slot>\n </div>\n <div class=\"mg-illustrated-message__slots\">\n <div class=\"mg-illustrated-message__title\">\n <slot name=\"title\"></slot>\n </div>\n <div class=\"mg-illustrated-message__details\">\n <slot name=\"details\"></slot>\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"mg-illustrated-message.js","sourceRoot":"","sources":["../../../../src/components/molecules/mg-illustrated-message/mg-illustrated-message.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAO5D,MAAM,OAAO,oBAAoB;;gBAaK,SAAS;qBAKE,UAAU;;EAEzD;;iBAEe;EAEf;;KAEG;EACH,gBAAgB;IACd,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAEpF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,EAAE;MACzE,MAAM,IAAI,KAAK,CAAC,6DAA6D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxG;SAAM,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;MAC5C,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;KAC9F;IAED,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;EAC9D,CAAC;EAED;;;KAGG;EACH,MAAM;IACJ,OAAO,CACL,WACE,KAAK,EAAE;QACL,0BAA0B,EAAE,IAAI;QAChC,sCAAsC,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY;OACxE;MAED,WACE,KAAK,EAAE;UACL,wCAAwC,EAAE,IAAI;UAC9C,+CAA+C,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;SACvE;QAED,YAAM,IAAI,EAAC,cAAc,GAAQ,CAC7B;MACN,WAAK,KAAK,EAAC,iCAAiC;QAC1C,WAAK,KAAK,EAAC,iCAAiC;UAC1C,YAAM,IAAI,EAAC,OAAO,GAAQ,CACtB;QACN,WAAK,KAAK,EAAC,mCAAmC;UAC5C,YAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACF,CACF,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Prop } from '@stencil/core';\nimport { isTagName } from '../../../utils/components.utils';\n\n@Component({\n tag: 'mg-illustrated-message',\n styleUrl: '../../../../node_modules/@mgdis/styles/dist/components/mg-illustrated-message.css',\n shadow: true,\n})\nexport class MgIllustratedMessage {\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgIllustratedMessageElement;\n\n /**\n * Define illustration size\n */\n @Prop() size: 'regular' | 'small' = 'regular';\n\n /**\n * Define component orientation\n */\n @Prop() direction: 'vertical' | 'horizontal' = 'vertical';\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Check if component props are well configured on init\n */\n componentDidLoad(): void {\n const headingTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n const slottedIllustrations = this.element.querySelectorAll('[slot=\"illustration\"]');\n\n if (!isTagName(this.element.querySelector('[slot=\"title\"]'), headingTags)) {\n throw new Error(`<mg-illustrated-message> Slotted title must be a heading: ${headingTags.join(', ')}`);\n } else if (slottedIllustrations.length !== 1) {\n throw new Error('<mg-illustrated-message> Slotted illustration must be present and unique.');\n }\n\n slottedIllustrations[0].setAttribute('aria-hidden', 'true');\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <div\n class={{\n 'mg-c-illustrated-message': true,\n 'mg-c-illustrated-message--horizontal': this.direction === 'horizontal',\n }}\n >\n <div\n class={{\n 'mg-c-illustrated-message__illustration': true,\n 'mg-c-illustrated-message__illustration--small': this.size === 'small',\n }}\n >\n <slot name=\"illustration\"></slot>\n </div>\n <div class=\"mg-c-illustrated-message__slots\">\n <div class=\"mg-c-illustrated-message__title\">\n <slot name=\"title\"></slot>\n </div>\n <div class=\"mg-c-illustrated-message__details\">\n <slot name=\"details\"></slot>\n </div>\n </div>\n </div>\n );\n }\n}\n"]}
@@ -2,6 +2,7 @@ import { h, Host } from "@stencil/core";
2
2
  import { initLocales } from "../../../locales";
3
3
  import { OverflowBehavior } from "../../../utils/behaviors.utils";
4
4
  import { Direction } from "../menu/mg-menu/mg-menu.conf";
5
+ import { isValidString } from "../../../utils/components.utils";
5
6
  export class MgItemMore {
6
7
  constructor() {
7
8
  /************
@@ -31,7 +32,7 @@ export class MgItemMore {
31
32
  navElement.click();
32
33
  });
33
34
  // add id suffix to prevent duplicate key. default html id is: '';
34
- if (proxy.id.trim() !== '')
35
+ if (isValidString(proxy.id))
35
36
  proxy.id = `${proxy.id}-proxy`;
36
37
  // manage status change miror in proxy
37
38
  allMenuItem[index].addEventListener('status-change', (event) => {
@@ -92,18 +93,18 @@ export class MgItemMore {
92
93
  * @returns HTML Element
93
94
  */
94
95
  render() {
95
- return (h(Host, { role: "listitem" }, h("mg-menu-item", { "data-overflow-more": true, "data-size": this.parentMenu.size }, h("mg-icon", { icon: this.icon.icon, slot: "image" }), h("span", { class: { 'sr-only': !this.slotlabel.display }, slot: "label" }, this.slotlabel.label), h("mg-menu", { direction: Direction.VERTICAL, label: this.messages.moreLabel, size: this.size }))));
96
+ return (h(Host, { role: "listitem" }, h("mg-menu-item", { "data-overflow-more": true, "data-size": this.parentMenu.size }, h("mg-icon", { icon: this.icon.icon, slot: "image" }), h("span", { class: { 'mg-u-visually-hidden': !this.slotlabel.display }, slot: "label" }, this.slotlabel.label), h("mg-menu", { direction: Direction.VERTICAL, label: this.messages.moreLabel, size: this.size }))));
96
97
  }
97
98
  static get is() { return "mg-item-more"; }
98
99
  static get encapsulation() { return "shadow"; }
99
100
  static get originalStyleUrls() {
100
101
  return {
101
- "$": ["mg-item-more.scss"]
102
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-item-more.css"]
102
103
  };
103
104
  }
104
105
  static get styleUrls() {
105
106
  return {
106
- "$": ["mg-item-more.css"]
107
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-item-more.css"]
107
108
  };
108
109
  }
109
110
  static get properties() {
@@ -1 +1 @@
1
- {"version":3,"file":"mg-item-more.js","sourceRoot":"","sources":["../../../../src/components/molecules/mg-item-more/mg-item-more.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Element, Host, Watch, State } from '@stencil/core';\nimport { initLocales } from '../../../locales';\nimport { OverflowBehavior } from '../../../utils/behaviors.utils';\nimport { Direction } from '../menu/mg-menu/mg-menu.conf';\nimport type { IconType, MessageType, SizeType, SlotLabelType } from './mg-item-more.conf';\n\n@Component({\n tag: 'mg-item-more',\n styleUrl: 'mg-item-more.scss',\n shadow: true,\n})\nexport class MgItemMore {\n /************\n * Internal *\n ************/\n private readonly name = 'mg-item-more';\n private messages: MessageType;\n private menuItems: HTMLMgMenuItemElement[];\n private overflowBehavior: OverflowBehavior;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgItemMoreElement;\n\n /**\n * Define icon\n */\n @Prop() icon: IconType = { icon: 'ellipsis-vertical' };\n @Watch('icon')\n validateIcon(newValue: MgItemMore['icon']): void {\n if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.icon !== 'string'))\n throw new Error(`<${this.name}> prop \"icon\" must match MgItemMore['icon'] type.`);\n }\n\n /**\n * Define slot label element\n */\n @Prop() slotlabel: SlotLabelType = { display: false };\n @Watch('slotlabel')\n validateSlotLabel(newValue: MgItemMore['slotlabel']): void {\n if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.display !== 'boolean'))\n throw new Error(`<${this.name}> prop \"slotlabel\" must match MgItemMore['slotlabel'] type.`);\n else if (typeof newValue.label !== 'string') this.slotlabel.label = this.messages.moreLabel;\n }\n\n /**\n * Define component child menu size.\n */\n @Prop() size: SizeType;\n @Watch('size')\n validateSize(newValue: MgItemMore['size']): void {\n if (newValue && typeof newValue !== 'string') throw new Error(`<${this.name}> prop \"size\" must match MgItemMore['size'] type.`);\n }\n\n /**\n * Define component parent menu.\n */\n @State() parentMenu: HTMLMgMenuElement;\n\n /***********\n * Methods *\n ***********/\n\n /**\n * render mg-item-more overflow element\n * @returns mg-item-more element\n */\n private renderMgMenuItemOverflowElement = (): HTMLMgItemMoreElement => {\n // create menu items proxy element from item clones\n const moreElementMenuItem = this.element.shadowRoot.querySelector('mg-menu-item');\n this.menuItems.forEach((child: HTMLMgMenuItemElement) => {\n moreElementMenuItem.querySelector('mg-menu').appendChild(child.cloneNode(true));\n });\n\n const allMenuItem = Array.from(this.parentMenu.querySelectorAll('mg-menu-item:not([data-overflow-more])'));\n\n Array.from(moreElementMenuItem.querySelectorAll('mg-menu-item:not([data-overflow-more])')).forEach((proxy, index) => {\n // manage click on proxy to mirror it on initial element\n proxy.addEventListener('click', () => {\n // be carefull to use element.click() method instead of dispatchEvent to ensure bubbles outside shadowDom\n const navElement = allMenuItem[index].shadowRoot.querySelector('a, button');\n if (navElement instanceof HTMLButtonElement || navElement instanceof HTMLAnchorElement) navElement.click();\n });\n\n // add id suffix to prevent duplicate key. default html id is: '';\n if (proxy.id.trim() !== '') proxy.id = `${proxy.id}-proxy`;\n\n // manage status change miror in proxy\n allMenuItem[index].addEventListener('status-change', (event: CustomEvent) => {\n proxy.setAttribute('status', event.detail);\n });\n });\n\n return this.element;\n };\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Disconnect overflow ResizeObserver\n */\n disconnectedCallback(): void {\n this.overflowBehavior.disconnect();\n }\n\n /**\n * Set variables and validate props\n */\n componentWillLoad(): void {\n // init variables\n this.messages = (initLocales(this.element).messages as { plusMenu: MessageType }).plusMenu;\n this.parentMenu = this.element.closest('mg-menu');\n this.menuItems = Array.from(this.parentMenu.children).filter(item => item.nodeName === 'MG-MENU-ITEM') as HTMLMgMenuItemElement[];\n\n // validate props\n this.validateIcon(this.icon);\n this.validateSlotLabel(this.slotlabel);\n this.validateSize(this.size);\n }\n\n /**\n * Add overflow behavior\n */\n componentDidLoad(): void {\n this.overflowBehavior = new OverflowBehavior(this.parentMenu, this.renderMgMenuItemOverflowElement);\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <Host role=\"listitem\">\n <mg-menu-item data-overflow-more data-size={this.parentMenu.size}>\n <mg-icon icon={this.icon.icon} slot=\"image\"></mg-icon>\n <span class={{ 'sr-only': !this.slotlabel.display }} slot=\"label\">\n {this.slotlabel.label}\n </span>\n <mg-menu direction={Direction.VERTICAL} label={this.messages.moreLabel} size={this.size}></mg-menu>\n </mg-menu-item>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"mg-item-more.js","sourceRoot":"","sources":["../../../../src/components/molecules/mg-item-more/mg-item-more.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Element, Host, Watch, State } from '@stencil/core';\nimport { initLocales } from '../../../locales';\nimport { OverflowBehavior } from '../../../utils/behaviors.utils';\nimport { Direction } from '../menu/mg-menu/mg-menu.conf';\nimport type { IconType, MessageType, SizeType, SlotLabelType } from './mg-item-more.conf';\nimport { isValidString } from '../../../utils/components.utils';\n\n@Component({\n tag: 'mg-item-more',\n styleUrl: '../../../../node_modules/@mgdis/styles/dist/components/mg-item-more.css',\n shadow: true,\n})\nexport class MgItemMore {\n /************\n * Internal *\n ************/\n private readonly name = 'mg-item-more';\n private messages: MessageType;\n private menuItems: HTMLMgMenuItemElement[];\n private overflowBehavior: OverflowBehavior;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgItemMoreElement;\n\n /**\n * Define icon\n */\n @Prop() icon: IconType = { icon: 'ellipsis-vertical' };\n @Watch('icon')\n validateIcon(newValue: MgItemMore['icon']): void {\n if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.icon !== 'string'))\n throw new Error(`<${this.name}> prop \"icon\" must match MgItemMore['icon'] type.`);\n }\n\n /**\n * Define slot label element\n */\n @Prop() slotlabel: SlotLabelType = { display: false };\n @Watch('slotlabel')\n validateSlotLabel(newValue: MgItemMore['slotlabel']): void {\n if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.display !== 'boolean'))\n throw new Error(`<${this.name}> prop \"slotlabel\" must match MgItemMore['slotlabel'] type.`);\n else if (typeof newValue.label !== 'string') this.slotlabel.label = this.messages.moreLabel;\n }\n\n /**\n * Define component child menu size.\n */\n @Prop() size: SizeType;\n @Watch('size')\n validateSize(newValue: MgItemMore['size']): void {\n if (newValue && typeof newValue !== 'string') throw new Error(`<${this.name}> prop \"size\" must match MgItemMore['size'] type.`);\n }\n\n /**\n * Define component parent menu.\n */\n @State() parentMenu: HTMLMgMenuElement;\n\n /***********\n * Methods *\n ***********/\n\n /**\n * render mg-item-more overflow element\n * @returns mg-item-more element\n */\n private renderMgMenuItemOverflowElement = (): HTMLMgItemMoreElement => {\n // create menu items proxy element from item clones\n const moreElementMenuItem = this.element.shadowRoot.querySelector('mg-menu-item');\n this.menuItems.forEach((child: HTMLMgMenuItemElement) => {\n moreElementMenuItem.querySelector('mg-menu').appendChild(child.cloneNode(true));\n });\n\n const allMenuItem = Array.from(this.parentMenu.querySelectorAll('mg-menu-item:not([data-overflow-more])'));\n\n Array.from(moreElementMenuItem.querySelectorAll('mg-menu-item:not([data-overflow-more])')).forEach((proxy, index) => {\n // manage click on proxy to mirror it on initial element\n proxy.addEventListener('click', () => {\n // be carefull to use element.click() method instead of dispatchEvent to ensure bubbles outside shadowDom\n const navElement = allMenuItem[index].shadowRoot.querySelector('a, button');\n if (navElement instanceof HTMLButtonElement || navElement instanceof HTMLAnchorElement) navElement.click();\n });\n\n // add id suffix to prevent duplicate key. default html id is: '';\n if (isValidString(proxy.id)) proxy.id = `${proxy.id}-proxy`;\n\n // manage status change miror in proxy\n allMenuItem[index].addEventListener('status-change', (event: CustomEvent) => {\n proxy.setAttribute('status', event.detail);\n });\n });\n\n return this.element;\n };\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Disconnect overflow ResizeObserver\n */\n disconnectedCallback(): void {\n this.overflowBehavior.disconnect();\n }\n\n /**\n * Set variables and validate props\n */\n componentWillLoad(): void {\n // init variables\n this.messages = (initLocales(this.element).messages as { plusMenu: MessageType }).plusMenu;\n this.parentMenu = this.element.closest('mg-menu');\n this.menuItems = Array.from(this.parentMenu.children).filter(item => item.nodeName === 'MG-MENU-ITEM') as HTMLMgMenuItemElement[];\n\n // validate props\n this.validateIcon(this.icon);\n this.validateSlotLabel(this.slotlabel);\n this.validateSize(this.size);\n }\n\n /**\n * Add overflow behavior\n */\n componentDidLoad(): void {\n this.overflowBehavior = new OverflowBehavior(this.parentMenu, this.renderMgMenuItemOverflowElement);\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <Host role=\"listitem\">\n <mg-menu-item data-overflow-more data-size={this.parentMenu.size}>\n <mg-icon icon={this.icon.icon} slot=\"image\"></mg-icon>\n <span class={{ 'mg-u-visually-hidden': !this.slotlabel.display }} slot=\"label\">\n {this.slotlabel.label}\n </span>\n <mg-menu direction={Direction.VERTICAL} label={this.messages.moreLabel} size={this.size}></mg-menu>\n </mg-menu-item>\n </Host>\n );\n }\n}\n"]}
@@ -8,7 +8,7 @@ export class MgMessage {
8
8
  * Internal *
9
9
  ************/
10
10
  // Classes
11
- this.classHide = 'mg-message--hide';
11
+ this.classHide = 'mg-c-message--hide';
12
12
  // IDs
13
13
  this.closeButtonId = '';
14
14
  // Stored timer setted when hide action is run from setTimeOut
@@ -74,7 +74,7 @@ export class MgMessage {
74
74
  this.variant = variants[0];
75
75
  this.closeButton = false;
76
76
  this.hide = false;
77
- this.classCollection = new ClassList(['mg-message']);
77
+ this.classCollection = new ClassList(['mg-c-message']);
78
78
  this.hasActions = false;
79
79
  }
80
80
  validateDelay(newValue) {
@@ -88,9 +88,9 @@ export class MgMessage {
88
88
  }
89
89
  else {
90
90
  if (oldValue !== undefined) {
91
- this.classCollection.delete(`mg-message--${oldValue}`);
91
+ this.classCollection.delete(`mg-c-message--${oldValue}`);
92
92
  }
93
- this.classCollection.add(`mg-message--${newValue}`);
93
+ this.classCollection.add(`mg-c-message--${newValue}`);
94
94
  }
95
95
  }
96
96
  validateCloseButton(newValue) {
@@ -139,7 +139,7 @@ export class MgMessage {
139
139
  this.hasActions = this.element.querySelector('[slot="actions"]') !== null;
140
140
  this.validateCloseButton(this.closeButton);
141
141
  if (this.closeButton) {
142
- this.classCollection.add('mg-message--close-button');
142
+ this.classCollection.add('mg-c-message--close-button');
143
143
  this.closeButtonId = `${this.identifier}-close-button`;
144
144
  }
145
145
  this.validateDelay(this.delay);
@@ -150,18 +150,18 @@ export class MgMessage {
150
150
  * @returns HTML Element
151
151
  */
152
152
  render() {
153
- return (h("div", { id: this.identifier, class: this.classCollection.join(), role: this.variant === 'info' ? 'status' : 'alert' }, h("mg-card", { variant: this.variant, "variant-style": "bar-left" }, h("span", { class: "mg-message__icon" }, h("mg-icon", { icon: this.getIcon() })), h("div", { class: "mg-message__content" }, h("span", { class: "mg-message__content-slot" }, h("slot", null)), this.hasActions && h("span", { class: "mg-message__content-separator" }), this.hasActions && (h("span", { class: "mg-message__content-actions-slot" }, h("slot", { name: "actions" })))), this.closeButton && (h("span", { class: "mg-message__close-button" }, h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: this.messages.message.closeButton, onClick: this.handleClose }, h("mg-icon", { icon: "cross" })))))));
153
+ return (h("div", { id: this.identifier, class: this.classCollection.join(), role: this.variant === 'info' ? 'status' : 'alert' }, h("mg-card", { variant: this.variant, "variant-style": "bar-left" }, h("span", { class: "mg-c-message__icon" }, h("mg-icon", { icon: this.getIcon() })), h("div", { class: "mg-c-message__content" }, h("span", { class: "mg-c-message__content-slot" }, h("slot", null)), this.hasActions && h("span", { class: "mg-c-message__content-separator" }), this.hasActions && (h("span", { class: "mg-c-message__content-actions-slot" }, h("slot", { name: "actions" })))), this.closeButton && (h("span", { class: "mg-c-message__close-button" }, h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: this.messages.message.closeButton, onClick: this.handleClose }, h("mg-icon", { icon: "cross" })))))));
154
154
  }
155
155
  static get is() { return "mg-message"; }
156
156
  static get encapsulation() { return "shadow"; }
157
157
  static get originalStyleUrls() {
158
158
  return {
159
- "$": ["mg-message.scss"]
159
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-message.css"]
160
160
  };
161
161
  }
162
162
  static get styleUrls() {
163
163
  return {
164
- "$": ["mg-message.css"]
164
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-message.css"]
165
165
  };
166
166
  }
167
167
  static get properties() {
@@ -1 +1 @@
1
- {"version":3,"file":"mg-message.js","sourceRoot":"","sources":["../../../../src/components/molecules/mg-message/mg-message.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { createID, ClassList } from '../../../utils/components.utils';\nimport { variants, VariantType } from './mg-message.conf';\nimport { initLocales } from '../../../locales';\nimport { type MgIcon } from '../../atoms/mg-icon/mg-icon';\n\n@Component({\n tag: 'mg-message',\n styleUrl: 'mg-message.scss',\n shadow: true,\n})\nexport class MgMessage {\n /************\n * Internal *\n ************/\n\n // Classes\n private readonly classHide = 'mg-message--hide';\n\n // IDs\n private closeButtonId = '';\n\n // Stored timer setted when hide action is run from setTimeOut\n private storedTimer: ReturnType<typeof setTimeout> = null;\n\n // Manage hover\n private isFocused = false;\n private isHovered = false;\n\n // Locales\n private messages;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgMessageElement;\n\n /**\n * Identifier is used for the element ID (id is a reserved prop in Stencil.js)\n * If not set, it will be created.\n */\n @Prop() identifier: string = createID('mg-message');\n\n /**\n * Add a delay to hide/close message when it passed\n * Value is defined in seconds and must greater than 2 seconds (PDA9-314 RG-06)\n */\n @Prop() delay: number;\n @Watch('delay')\n validateDelay(newValue: MgMessage['delay']): void {\n if (newValue !== undefined && newValue < 2) {\n throw new Error(`<mg-message> prop \"delay\" must be greater than 2 seconds.`);\n }\n }\n\n /**\n * Message variant\n */\n @Prop() variant: VariantType = variants[0]; // info\n @Watch('variant')\n validateVariant(newValue: MgMessage['variant'], oldValue?: MgMessage['variant']): void {\n if (!variants.includes(newValue)) {\n throw new Error(`<mg-message> prop \"variant\" must be one of: ${variants.join(', ')}`);\n } else {\n if (oldValue !== undefined) {\n this.classCollection.delete(`mg-message--${oldValue}`);\n }\n this.classCollection.add(`mg-message--${newValue}`);\n }\n }\n\n /**\n * Define if message has a cross button\n * RG 01: https://jira.mgdis.fr/browse/PDA9-140\n */\n @Prop({ mutable: true }) closeButton = false;\n @Watch('closeButton')\n validateCloseButton(newValue: MgMessage['closeButton']): void {\n if (newValue && this.hasActions) {\n this.closeButton = false;\n throw new Error('<mg-message> prop \"close-button\" can\\'t be used with the actions slot.');\n }\n }\n\n /**\n * Define if message is hidden\n */\n @Prop({ mutable: true }) hide = false;\n @Watch('hide')\n validateHide(newValue: MgMessage['hide']): void {\n if (newValue) {\n this.componentHide.emit();\n this.classCollection.add(this.classHide);\n // Remove event Listener\n ['focusin', 'mouseenter'].forEach(event => {\n this.element.removeEventListener(event, this.timerEvents);\n });\n // Clear Timer\n this.clearTimer();\n } else {\n this.componentShow.emit();\n this.classCollection.delete(this.classHide);\n // If delay is set\n if (this.delay > 1) {\n // Start timer\n this.setTimer();\n // Stop timer when get focus or mouse enter\n ['focusin', 'mouseenter'].forEach(event => {\n this.element.addEventListener(event, this.timerEvents);\n });\n }\n }\n }\n\n /**\n * Component classes\n */\n @State() classCollection: ClassList = new ClassList(['mg-message']);\n\n /**\n * Define if component is using actions slot\n */\n @State() hasActions = false;\n\n /**\n * Emited event when message is diplayed\n */\n @Event({ eventName: 'component-show' }) componentShow: EventEmitter<string>;\n\n /**\n * Emited event when message is hidden\n */\n @Event({ eventName: 'component-hide' }) componentHide: EventEmitter<string>;\n\n /**\n * Set timer\n */\n private setTimer = (): void => {\n this.storedTimer = setTimeout(() => (this.hide = true), this.delay * 1000);\n };\n\n /**\n * Clear timer\n */\n private clearTimer = (): void => {\n clearTimeout(this.storedTimer);\n };\n\n /**\n * Event to add on element\n * @param event - event\n */\n private timerEvents = (event: MouseEvent | FocusEvent): void => {\n this.clearTimer();\n const isMouseEvent: boolean = event.type === 'mouseenter';\n // Needed to ensure we don't start the timer\n this[isMouseEvent ? 'isHovered' : 'isFocused'] = true;\n\n // Restart timer when loose focus AND mouse leave\n this.element.addEventListener(\n isMouseEvent ? 'mouseleave' : 'focusout',\n eventOut => {\n this[eventOut.type === 'mouseleave' ? 'isHovered' : 'isFocused'] = false;\n // Start timer if needed\n if (!this.isFocused && !this.isHovered) this.setTimer();\n },\n { once: true },\n );\n };\n\n /**\n * Handle close button\n */\n private handleClose = (): void => {\n this.hide = true;\n };\n\n /**\n * Get icon corresponding to variant\n * @returns icon\n */\n private getIcon = (): MgIcon['icon'] => {\n switch (this.variant) {\n case 'info':\n return 'info-circle';\n case 'warning':\n return 'exclamation-triangle';\n case 'success':\n return 'check-circle';\n case 'danger':\n return 'exclamation-circle';\n default:\n break;\n }\n };\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Check if component props are well configured on init\n */\n componentWillLoad(): void {\n // Get locales\n this.messages = initLocales(this.element).messages;\n // Validate\n this.validateVariant(this.variant);\n // Check if close button is an can be activated\n this.hasActions = this.element.querySelector('[slot=\"actions\"]') !== null;\n this.validateCloseButton(this.closeButton);\n if (this.closeButton) {\n this.classCollection.add('mg-message--close-button');\n this.closeButtonId = `${this.identifier}-close-button`;\n }\n this.validateDelay(this.delay);\n this.validateHide(this.hide);\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <div id={this.identifier} class={this.classCollection.join()} role={this.variant === 'info' ? 'status' : 'alert'}>\n <mg-card variant={this.variant} variant-style=\"bar-left\">\n <span class=\"mg-message__icon\">\n <mg-icon icon={this.getIcon()}></mg-icon>\n </span>\n <div class=\"mg-message__content\">\n <span class=\"mg-message__content-slot\">\n <slot></slot>\n </span>\n {this.hasActions && <span class=\"mg-message__content-separator\"></span>}\n {this.hasActions && (\n <span class=\"mg-message__content-actions-slot\">\n <slot name=\"actions\"></slot>\n </span>\n )}\n </div>\n {this.closeButton && (\n <span class=\"mg-message__close-button\">\n <mg-button identifier={this.closeButtonId} is-icon variant=\"flat\" label={this.messages.message.closeButton} onClick={this.handleClose}>\n <mg-icon icon=\"cross\"></mg-icon>\n </mg-button>\n </span>\n )}\n </mg-card>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"mg-message.js","sourceRoot":"","sources":["../../../../src/components/molecules/mg-message/mg-message.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Prop, State, Watch } from '@stencil/core';\nimport { createID, ClassList } from '../../../utils/components.utils';\nimport { variants, VariantType } from './mg-message.conf';\nimport { initLocales } from '../../../locales';\nimport { type MgIcon } from '../../atoms/mg-icon/mg-icon';\n\n@Component({\n tag: 'mg-message',\n styleUrl: '../../../../node_modules/@mgdis/styles/dist/components/mg-message.css',\n shadow: true,\n})\nexport class MgMessage {\n /************\n * Internal *\n ************/\n\n // Classes\n private readonly classHide = 'mg-c-message--hide';\n\n // IDs\n private closeButtonId = '';\n\n // Stored timer setted when hide action is run from setTimeOut\n private storedTimer: ReturnType<typeof setTimeout> = null;\n\n // Manage hover\n private isFocused = false;\n private isHovered = false;\n\n // Locales\n private messages;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgMessageElement;\n\n /**\n * Identifier is used for the element ID (id is a reserved prop in Stencil.js)\n * If not set, it will be created.\n */\n @Prop() identifier: string = createID('mg-message');\n\n /**\n * Add a delay to hide/close message when it passed\n * Value is defined in seconds and must greater than 2 seconds (PDA9-314 RG-06)\n */\n @Prop() delay: number;\n @Watch('delay')\n validateDelay(newValue: MgMessage['delay']): void {\n if (newValue !== undefined && newValue < 2) {\n throw new Error(`<mg-message> prop \"delay\" must be greater than 2 seconds.`);\n }\n }\n\n /**\n * Message variant\n */\n @Prop() variant: VariantType = variants[0]; // info\n @Watch('variant')\n validateVariant(newValue: MgMessage['variant'], oldValue?: MgMessage['variant']): void {\n if (!variants.includes(newValue)) {\n throw new Error(`<mg-message> prop \"variant\" must be one of: ${variants.join(', ')}`);\n } else {\n if (oldValue !== undefined) {\n this.classCollection.delete(`mg-c-message--${oldValue}`);\n }\n this.classCollection.add(`mg-c-message--${newValue}`);\n }\n }\n\n /**\n * Define if message has a cross button\n * RG 01: https://jira.mgdis.fr/browse/PDA9-140\n */\n @Prop({ mutable: true }) closeButton = false;\n @Watch('closeButton')\n validateCloseButton(newValue: MgMessage['closeButton']): void {\n if (newValue && this.hasActions) {\n this.closeButton = false;\n throw new Error('<mg-message> prop \"close-button\" can\\'t be used with the actions slot.');\n }\n }\n\n /**\n * Define if message is hidden\n */\n @Prop({ mutable: true }) hide = false;\n @Watch('hide')\n validateHide(newValue: MgMessage['hide']): void {\n if (newValue) {\n this.componentHide.emit();\n this.classCollection.add(this.classHide);\n // Remove event Listener\n ['focusin', 'mouseenter'].forEach(event => {\n this.element.removeEventListener(event, this.timerEvents);\n });\n // Clear Timer\n this.clearTimer();\n } else {\n this.componentShow.emit();\n this.classCollection.delete(this.classHide);\n // If delay is set\n if (this.delay > 1) {\n // Start timer\n this.setTimer();\n // Stop timer when get focus or mouse enter\n ['focusin', 'mouseenter'].forEach(event => {\n this.element.addEventListener(event, this.timerEvents);\n });\n }\n }\n }\n\n /**\n * Component classes\n */\n @State() classCollection: ClassList = new ClassList(['mg-c-message']);\n\n /**\n * Define if component is using actions slot\n */\n @State() hasActions = false;\n\n /**\n * Emited event when message is diplayed\n */\n @Event({ eventName: 'component-show' }) componentShow: EventEmitter<string>;\n\n /**\n * Emited event when message is hidden\n */\n @Event({ eventName: 'component-hide' }) componentHide: EventEmitter<string>;\n\n /**\n * Set timer\n */\n private setTimer = (): void => {\n this.storedTimer = setTimeout(() => (this.hide = true), this.delay * 1000);\n };\n\n /**\n * Clear timer\n */\n private clearTimer = (): void => {\n clearTimeout(this.storedTimer);\n };\n\n /**\n * Event to add on element\n * @param event - event\n */\n private timerEvents = (event: MouseEvent | FocusEvent): void => {\n this.clearTimer();\n const isMouseEvent: boolean = event.type === 'mouseenter';\n // Needed to ensure we don't start the timer\n this[isMouseEvent ? 'isHovered' : 'isFocused'] = true;\n\n // Restart timer when loose focus AND mouse leave\n this.element.addEventListener(\n isMouseEvent ? 'mouseleave' : 'focusout',\n eventOut => {\n this[eventOut.type === 'mouseleave' ? 'isHovered' : 'isFocused'] = false;\n // Start timer if needed\n if (!this.isFocused && !this.isHovered) this.setTimer();\n },\n { once: true },\n );\n };\n\n /**\n * Handle close button\n */\n private handleClose = (): void => {\n this.hide = true;\n };\n\n /**\n * Get icon corresponding to variant\n * @returns icon\n */\n private getIcon = (): MgIcon['icon'] => {\n switch (this.variant) {\n case 'info':\n return 'info-circle';\n case 'warning':\n return 'exclamation-triangle';\n case 'success':\n return 'check-circle';\n case 'danger':\n return 'exclamation-circle';\n default:\n break;\n }\n };\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Check if component props are well configured on init\n */\n componentWillLoad(): void {\n // Get locales\n this.messages = initLocales(this.element).messages;\n // Validate\n this.validateVariant(this.variant);\n // Check if close button is an can be activated\n this.hasActions = this.element.querySelector('[slot=\"actions\"]') !== null;\n this.validateCloseButton(this.closeButton);\n if (this.closeButton) {\n this.classCollection.add('mg-c-message--close-button');\n this.closeButtonId = `${this.identifier}-close-button`;\n }\n this.validateDelay(this.delay);\n this.validateHide(this.hide);\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <div id={this.identifier} class={this.classCollection.join()} role={this.variant === 'info' ? 'status' : 'alert'}>\n <mg-card variant={this.variant} variant-style=\"bar-left\">\n <span class=\"mg-c-message__icon\">\n <mg-icon icon={this.getIcon()}></mg-icon>\n </span>\n <div class=\"mg-c-message__content\">\n <span class=\"mg-c-message__content-slot\">\n <slot></slot>\n </span>\n {this.hasActions && <span class=\"mg-c-message__content-separator\"></span>}\n {this.hasActions && (\n <span class=\"mg-c-message__content-actions-slot\">\n <slot name=\"actions\"></slot>\n </span>\n )}\n </div>\n {this.closeButton && (\n <span class=\"mg-c-message__close-button\">\n <mg-button identifier={this.closeButtonId} is-icon variant=\"flat\" label={this.messages.message.closeButton} onClick={this.handleClose}>\n <mg-icon icon=\"cross\"></mg-icon>\n </mg-button>\n </span>\n )}\n </mg-card>\n </div>\n );\n }\n}\n"]}
@@ -22,12 +22,12 @@ describe('mg-message', () => {
22
22
  test('Should replace classes on variant changes', async () => {
23
23
  const page = await getPage({ identifier: 'identifier' }, getDefaultContent());
24
24
  const element = page.doc.querySelector('mg-message');
25
- let classInfo = element.shadowRoot.querySelector('.mg-message--info');
25
+ let classInfo = element.shadowRoot.querySelector('.mg-c-message--info');
26
26
  expect(classInfo).not.toBeNull();
27
27
  element.variant = 'danger';
28
28
  await page.waitForChanges();
29
- classInfo = element.shadowRoot.querySelector('.mg-message--info');
30
- const classDanger = element.shadowRoot.querySelector('.mg-message--danger');
29
+ classInfo = element.shadowRoot.querySelector('.mg-c-message--info');
30
+ const classDanger = element.shadowRoot.querySelector('.mg-c-message--danger');
31
31
  expect(classInfo).toBeNull();
32
32
  expect(classDanger).not.toBeNull();
33
33
  });
@@ -70,23 +70,23 @@ describe('mg-message', () => {
70
70
  button.dispatchEvent(new CustomEvent('click', { bubbles: true }));
71
71
  await page.waitForChanges();
72
72
  expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);
73
- expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');
73
+ expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');
74
74
  });
75
75
  test('Should hide message on delay', async () => {
76
76
  const args = { identifier: 'identifier', delay: 2 };
77
77
  const page = await getPage(args, getDefaultContent());
78
78
  jest.spyOn(page.rootInstance.componentHide, 'emit');
79
79
  jest.spyOn(page.rootInstance.componentShow, 'emit');
80
- expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');
80
+ expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');
81
81
  jest.advanceTimersByTime(args.delay * 1000);
82
- expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');
82
+ expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');
83
83
  expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);
84
84
  page.rootInstance.hide = false;
85
85
  await page.waitForChanges();
86
- expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');
86
+ expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');
87
87
  expect(page.rootInstance.componentShow.emit).toHaveBeenCalledTimes(1);
88
88
  jest.advanceTimersByTime(args.delay * 1000);
89
- expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');
89
+ expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');
90
90
  expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(2);
91
91
  });
92
92
  test.each(['focus', 'mouse'])('Should manage event %s with delay', async (eventType) => {
@@ -95,14 +95,14 @@ describe('mg-message', () => {
95
95
  jest.spyOn(page.rootInstance.componentHide, 'emit');
96
96
  jest.spyOn(page.rootInstance.componentShow, 'emit');
97
97
  const element = page.doc.querySelector('mg-message');
98
- expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');
98
+ expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');
99
99
  jest.advanceTimersByTime((args.delay / 2) * 1000);
100
100
  element.dispatchEvent(eventType === 'focus' ? new FocusEvent('focusin') : new MouseEvent('mouseenter'));
101
101
  jest.advanceTimersByTime(args.delay * 1000);
102
- expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');
102
+ expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');
103
103
  element.dispatchEvent(eventType === 'focus' ? new FocusEvent('focusout') : new MouseEvent('mouseleave'));
104
104
  jest.advanceTimersByTime(args.delay * 1000);
105
- expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');
105
+ expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');
106
106
  expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);
107
107
  });
108
108
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mg-message.spec.js","sourceRoot":"","sources":["../../../../../src/components/molecules/mg-message/test/mg-message.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { MgMessage } from '../mg-message';\nimport { variants } from '../mg-message.conf';\n\nconst getDefaultContent = () => (\n <p>\n <strong>Strong</strong> content!\n </p>\n);\n\nconst getPage = (args, content) =>\n newSpecPage({\n components: [MgMessage],\n template: () => <mg-message {...args}>{content}</mg-message>,\n });\n\ndescribe('mg-message', () => {\n describe.each(variants)('Should render a %s message', variant => {\n test.each([\n { identifier: 'identifier' },\n { identifier: 'identifier', closeButton: true },\n { identifier: 'identifier', closeButton: true, lang: 'fr' },\n { identifier: 'identifier', closeButton: true, lang: 'xx' },\n ])('with args %s', async args => {\n const { root } = await getPage({ ...args, variant }, getDefaultContent());\n expect(root).toMatchSnapshot();\n });\n });\n\n test('Should replace classes on variant changes', async () => {\n const page = await getPage({ identifier: 'identifier' }, getDefaultContent());\n const element = page.doc.querySelector('mg-message');\n let classInfo = element.shadowRoot.querySelector('.mg-message--info');\n\n expect(classInfo).not.toBeNull();\n\n element.variant = 'danger';\n await page.waitForChanges();\n\n classInfo = element.shadowRoot.querySelector('.mg-message--info');\n const classDanger = element.shadowRoot.querySelector('.mg-message--danger');\n\n expect(classInfo).toBeNull();\n expect(classDanger).not.toBeNull();\n });\n\n test.each(['', 'blu'])('Should throw error with invalid variant property: %s', async variant => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', variant }, getDefaultContent());\n } catch (err) {\n expect(err.message).toMatch('<mg-message> prop \"variant\" must be one of:');\n }\n });\n\n test('Should throw error with invalid delay property: 50ms', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', delay: 1 }, getDefaultContent());\n } catch (err) {\n expect(err.message).toMatch('<mg-message> prop \"delay\" must be greater than 2 seconds.');\n }\n });\n\n test('Should throw error when using prop \"close-button\" with an action slot', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', closeButton: true }, [\n getDefaultContent(),\n <div slot=\"actions\" class=\"mg-group-elements mg-group-elements--align-right\">\n <mg-button>Primary</mg-button>\n <mg-button variant=\"secondary\">Secondary</mg-button>\n </div>,\n ]);\n } catch (err) {\n expect(err.message).toMatch('<mg-message> prop \"close-button\" can\\'t be used with the actions slot.');\n }\n });\n\n test('Should hide message on close button', async () => {\n const args = { identifier: 'identifier', closeButton: true };\n const page = await getPage(args, getDefaultContent());\n\n const element = page.doc.querySelector('mg-message');\n const button = element.shadowRoot.querySelector('mg-button');\n\n jest.spyOn(page.rootInstance.componentHide, 'emit');\n\n button.dispatchEvent(new CustomEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);\n expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');\n });\n\n test('Should hide message on delay', async () => {\n const args = { identifier: 'identifier', delay: 2 };\n const page = await getPage(args, getDefaultContent());\n\n jest.spyOn(page.rootInstance.componentHide, 'emit');\n jest.spyOn(page.rootInstance.componentShow, 'emit');\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);\n\n page.rootInstance.hide = false;\n await page.waitForChanges();\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');\n expect(page.rootInstance.componentShow.emit).toHaveBeenCalledTimes(1);\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(2);\n });\n\n test.each(['focus', 'mouse'])('Should manage event %s with delay', async eventType => {\n const args = { identifier: 'identifier', delay: 2 };\n const page = await getPage(args, getDefaultContent());\n\n jest.spyOn(page.rootInstance.componentHide, 'emit');\n jest.spyOn(page.rootInstance.componentShow, 'emit');\n\n const element = page.doc.querySelector('mg-message');\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');\n\n jest.advanceTimersByTime((args.delay / 2) * 1000);\n\n element.dispatchEvent(eventType === 'focus' ? new FocusEvent('focusin') : new MouseEvent('mouseenter'));\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-message--hide');\n\n element.dispatchEvent(eventType === 'focus' ? new FocusEvent('focusout') : new MouseEvent('mouseleave'));\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).toContain('mg-message--hide');\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);\n });\n});\n"]}
1
+ {"version":3,"file":"mg-message.spec.js","sourceRoot":"","sources":["../../../../../src/components/molecules/mg-message/test/mg-message.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { MgMessage } from '../mg-message';\nimport { variants } from '../mg-message.conf';\n\nconst getDefaultContent = () => (\n <p>\n <strong>Strong</strong> content!\n </p>\n);\n\nconst getPage = (args, content) =>\n newSpecPage({\n components: [MgMessage],\n template: () => <mg-message {...args}>{content}</mg-message>,\n });\n\ndescribe('mg-message', () => {\n describe.each(variants)('Should render a %s message', variant => {\n test.each([\n { identifier: 'identifier' },\n { identifier: 'identifier', closeButton: true },\n { identifier: 'identifier', closeButton: true, lang: 'fr' },\n { identifier: 'identifier', closeButton: true, lang: 'xx' },\n ])('with args %s', async args => {\n const { root } = await getPage({ ...args, variant }, getDefaultContent());\n expect(root).toMatchSnapshot();\n });\n });\n\n test('Should replace classes on variant changes', async () => {\n const page = await getPage({ identifier: 'identifier' }, getDefaultContent());\n const element = page.doc.querySelector('mg-message');\n let classInfo = element.shadowRoot.querySelector('.mg-c-message--info');\n\n expect(classInfo).not.toBeNull();\n\n element.variant = 'danger';\n await page.waitForChanges();\n\n classInfo = element.shadowRoot.querySelector('.mg-c-message--info');\n const classDanger = element.shadowRoot.querySelector('.mg-c-message--danger');\n\n expect(classInfo).toBeNull();\n expect(classDanger).not.toBeNull();\n });\n\n test.each(['', 'blu'])('Should throw error with invalid variant property: %s', async variant => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', variant }, getDefaultContent());\n } catch (err) {\n expect(err.message).toMatch('<mg-message> prop \"variant\" must be one of:');\n }\n });\n\n test('Should throw error with invalid delay property: 50ms', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', delay: 1 }, getDefaultContent());\n } catch (err) {\n expect(err.message).toMatch('<mg-message> prop \"delay\" must be greater than 2 seconds.');\n }\n });\n\n test('Should throw error when using prop \"close-button\" with an action slot', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', closeButton: true }, [\n getDefaultContent(),\n <div slot=\"actions\" class=\"mg-group-elements mg-group-elements--align-right\">\n <mg-button>Primary</mg-button>\n <mg-button variant=\"secondary\">Secondary</mg-button>\n </div>,\n ]);\n } catch (err) {\n expect(err.message).toMatch('<mg-message> prop \"close-button\" can\\'t be used with the actions slot.');\n }\n });\n\n test('Should hide message on close button', async () => {\n const args = { identifier: 'identifier', closeButton: true };\n const page = await getPage(args, getDefaultContent());\n\n const element = page.doc.querySelector('mg-message');\n const button = element.shadowRoot.querySelector('mg-button');\n\n jest.spyOn(page.rootInstance.componentHide, 'emit');\n\n button.dispatchEvent(new CustomEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);\n expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');\n });\n\n test('Should hide message on delay', async () => {\n const args = { identifier: 'identifier', delay: 2 };\n const page = await getPage(args, getDefaultContent());\n\n jest.spyOn(page.rootInstance.componentHide, 'emit');\n jest.spyOn(page.rootInstance.componentShow, 'emit');\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);\n\n page.rootInstance.hide = false;\n await page.waitForChanges();\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');\n expect(page.rootInstance.componentShow.emit).toHaveBeenCalledTimes(1);\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(2);\n });\n\n test.each(['focus', 'mouse'])('Should manage event %s with delay', async eventType => {\n const args = { identifier: 'identifier', delay: 2 };\n const page = await getPage(args, getDefaultContent());\n\n jest.spyOn(page.rootInstance.componentHide, 'emit');\n jest.spyOn(page.rootInstance.componentShow, 'emit');\n\n const element = page.doc.querySelector('mg-message');\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');\n\n jest.advanceTimersByTime((args.delay / 2) * 1000);\n\n element.dispatchEvent(eventType === 'focus' ? new FocusEvent('focusin') : new MouseEvent('mouseenter'));\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).not.toContain('mg-c-message--hide');\n\n element.dispatchEvent(eventType === 'focus' ? new FocusEvent('focusout') : new MouseEvent('mouseleave'));\n\n jest.advanceTimersByTime(args.delay * 1000);\n\n expect(page.rootInstance.classCollection.join()).toContain('mg-c-message--hide');\n expect(page.rootInstance.componentHide.emit).toHaveBeenCalledTimes(1);\n });\n});\n"]}
@@ -1,5 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
- import { createID, ClassList, focusableElements } from "../../../utils/components.utils";
2
+ import { createID, ClassList, focusableElements, isValidString } from "../../../utils/components.utils";
3
3
  import { initLocales } from "../../../locales";
4
4
  import { dialogRoles } from "./mg-modal.conf";
5
5
  export class MgModal {
@@ -10,7 +10,7 @@ export class MgModal {
10
10
  // Modal focusable elements
11
11
  this.modalFocusableElements = [];
12
12
  // Classes
13
- this.classHide = 'mg-modal--hide';
13
+ this.classHide = 'mg-c-modal--hide';
14
14
  // IDs
15
15
  this.titleId = '';
16
16
  /**
@@ -76,14 +76,14 @@ export class MgModal {
76
76
  this.hide = undefined;
77
77
  this.hasActions = false;
78
78
  this.hasContent = false;
79
- this.classCollection = new ClassList(['mg-modal']);
79
+ this.classCollection = new ClassList(['mg-c-modal']);
80
80
  }
81
81
  validateDialogRole(newValue) {
82
82
  if (!dialogRoles.includes(newValue))
83
83
  throw new Error(`<mg-modal> prop "dialogRole" must be one of: ${dialogRoles.join(', ')}.`);
84
84
  }
85
85
  validateModalTitle(newValue) {
86
- if (typeof newValue !== 'string' || newValue.trim() === '') {
86
+ if (!isValidString(newValue)) {
87
87
  throw new Error('<mg-modal> prop "modalTitle" is required.');
88
88
  }
89
89
  }
@@ -151,25 +151,25 @@ export class MgModal {
151
151
  * @returns HTML Element
152
152
  */
153
153
  render() {
154
- return (h("div", { role: this.dialogRole, id: this.identifier, class: this.classCollection.join(), tabindex: "-1", "aria-labelledby": this.titleId, "aria-modal": "true", "aria-hidden": this.hide }, h("mg-card", null, h("div", { class: "mg-modal__dialog" }, h("header", { class: "mg-modal__header" }, this.closeButton && (h("span", { class: "mg-modal__close-button" }, h("mg-button", { identifier: `${this.identifier}-close-button`, "is-icon": true, variant: "flat", label: this.messages.modal.closeButton, onClick: this.handleClose, ref: (el) => {
154
+ return (h("div", { role: this.dialogRole, id: this.identifier, class: this.classCollection.join(), tabindex: "-1", "aria-labelledby": this.titleId, "aria-modal": "true", "aria-hidden": this.hide }, h("mg-card", null, h("div", { class: "mg-c-modal__dialog" }, h("header", { class: "mg-c-modal__header" }, this.closeButton && (h("span", { class: "mg-c-modal__close-button" }, h("mg-button", { identifier: `${this.identifier}-close-button`, "is-icon": true, variant: "flat", label: this.messages.modal.closeButton, onClick: this.handleClose, ref: (el) => {
155
155
  if (el !== null) {
156
156
  // store closeButton Element
157
157
  this.closeButtonElement = el;
158
158
  // add close button element to modalFocusableElements when it is render
159
159
  this.modalFocusableElements.unshift(this.closeButtonElement);
160
160
  }
161
- } }, h("mg-icon", { icon: "cross" })))), h("h1", { class: "mg-modal__title", id: this.titleId }, this.modalTitle)), this.hasContent && (h("article", { class: "mg-modal__content" }, h("slot", { name: "content" }))), this.hasActions && (h("footer", { class: "mg-modal__footer" }, h("slot", { name: "actions" })))))));
161
+ } }, h("mg-icon", { icon: "cross" })))), h("h1", { class: "mg-c-modal__title", id: this.titleId }, this.modalTitle)), this.hasContent && (h("article", { class: "mg-c-modal__content" }, h("slot", { name: "content" }))), this.hasActions && (h("footer", { class: "mg-c-modal__footer" }, h("slot", { name: "actions" })))))));
162
162
  }
163
163
  static get is() { return "mg-modal"; }
164
164
  static get encapsulation() { return "shadow"; }
165
165
  static get originalStyleUrls() {
166
166
  return {
167
- "$": ["mg-modal.scss"]
167
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-modal.css"]
168
168
  };
169
169
  }
170
170
  static get styleUrls() {
171
171
  return {
172
- "$": ["mg-modal.css"]
172
+ "$": ["../../../../node_modules/@mgdis/styles/dist/components/mg-modal.css"]
173
173
  };
174
174
  }
175
175
  static get properties() {