@mgdis/mg-components 3.1.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 (271) hide show
  1. package/LICENSE +29 -0
  2. package/dist/cjs/css-shim-a22512c4.js +6 -0
  3. package/dist/cjs/index-85a4a0b6.js +1674 -0
  4. package/dist/cjs/index.cjs.js +2 -0
  5. package/dist/cjs/loader.cjs.js +35 -0
  6. package/dist/cjs/mg-badge_20.cjs.entry.js +4661 -0
  7. package/dist/cjs/mg-components.cjs.js +23 -0
  8. package/dist/cjs/shadow-css-8940f82d.js +390 -0
  9. package/dist/collection/collection-manifest.json +31 -0
  10. package/dist/collection/components/atoms/mg-badge/mg-badge.conf.js +4 -0
  11. package/dist/collection/components/atoms/mg-badge/mg-badge.css +99 -0
  12. package/dist/collection/components/atoms/mg-badge/mg-badge.js +148 -0
  13. package/dist/collection/components/atoms/mg-badge/mg-badge.stories.js +27 -0
  14. package/dist/collection/components/atoms/mg-button/mg-button.conf.js +4 -0
  15. package/dist/collection/components/atoms/mg-button/mg-button.css +134 -0
  16. package/dist/collection/components/atoms/mg-button/mg-button.js +236 -0
  17. package/dist/collection/components/atoms/mg-button/mg-button.stories.js +38 -0
  18. package/dist/collection/components/atoms/mg-character-left/mg-character-left.css +3 -0
  19. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +133 -0
  20. package/dist/collection/components/atoms/mg-character-left/mg-character-left.stories.js +15 -0
  21. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +54 -0
  22. package/dist/collection/components/atoms/mg-icon/mg-icon.css +57 -0
  23. package/dist/collection/components/atoms/mg-icon/mg-icon.js +155 -0
  24. package/dist/collection/components/atoms/mg-icon/mg-icon.stories.js +34 -0
  25. package/dist/collection/components/atoms/mg-input-title/mg-input-title.css +12 -0
  26. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +95 -0
  27. package/dist/collection/components/atoms/mg-input-title/mg-input-title.stories.js +21 -0
  28. package/dist/collection/components/atoms/mg-tag/mg-tag.conf.js +4 -0
  29. package/dist/collection/components/atoms/mg-tag/mg-tag.css +73 -0
  30. package/dist/collection/components/atoms/mg-tag/mg-tag.js +94 -0
  31. package/dist/collection/components/atoms/mg-tag/mg-tag.stories.js +25 -0
  32. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.css +44 -0
  33. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +225 -0
  34. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.stories.js +26 -0
  35. package/dist/collection/components/molecules/inputs/MgInput.conf.js +7 -0
  36. package/dist/collection/components/molecules/inputs/MgInput.js +130 -0
  37. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js +1 -0
  38. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +156 -0
  39. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +444 -0
  40. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.stories.js +57 -0
  41. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.conf.js +7 -0
  42. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +171 -0
  43. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +467 -0
  44. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.stories.js +46 -0
  45. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.js +11 -0
  46. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +199 -0
  47. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +633 -0
  48. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.stories.js +68 -0
  49. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +195 -0
  50. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +401 -0
  51. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.stories.js +43 -0
  52. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.js +1 -0
  53. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +156 -0
  54. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +443 -0
  55. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.stories.js +65 -0
  56. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.conf.js +1 -0
  57. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +201 -0
  58. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +532 -0
  59. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.stories.js +70 -0
  60. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +222 -0
  61. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +589 -0
  62. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.stories.js +115 -0
  63. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +217 -0
  64. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +553 -0
  65. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.stories.js +52 -0
  66. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.js +1 -0
  67. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +213 -0
  68. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +457 -0
  69. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.stories.js +73 -0
  70. package/dist/collection/components/molecules/mg-message/mg-message.conf.js +4 -0
  71. package/dist/collection/components/molecules/mg-message/mg-message.css +94 -0
  72. package/dist/collection/components/molecules/mg-message/mg-message.js +285 -0
  73. package/dist/collection/components/molecules/mg-message/mg-message.stories.js +43 -0
  74. package/dist/collection/components/molecules/mg-pagination/mg-pagination.conf.js +5 -0
  75. package/dist/collection/components/molecules/mg-pagination/mg-pagination.css +39 -0
  76. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +218 -0
  77. package/dist/collection/components/molecules/mg-pagination/mg-pagination.stories.js +23 -0
  78. package/dist/collection/components/molecules/mg-popover/mg-popover.css +59 -0
  79. package/dist/collection/components/molecules/mg-popover/mg-popover.js +249 -0
  80. package/dist/collection/components/molecules/mg-popover/mg-popover.stories.js +36 -0
  81. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +1 -0
  82. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +30 -0
  83. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +212 -0
  84. package/dist/collection/components/molecules/mg-tabs/mg-tabs.stories.js +40 -0
  85. package/dist/collection/fonts/OpenSans-Regular.ttf +0 -0
  86. package/dist/collection/fonts/OpenSans-SemiBold.ttf +0 -0
  87. package/dist/collection/fonts/Poppins-Bold.ttf +0 -0
  88. package/dist/collection/index.js +1 -0
  89. package/dist/collection/locales/index.js +4 -0
  90. package/dist/collection/stories/buttons.stories.js +43 -0
  91. package/dist/collection/stories/grids.stories.js +50 -0
  92. package/dist/collection/stories/icons.stories.js +20 -0
  93. package/dist/collection/stories/messages.stories.js +44 -0
  94. package/dist/collection/stories/tags.stories.js +13 -0
  95. package/dist/collection/stories/typography.stories.js +28 -0
  96. package/dist/collection/utils/components.utils.js +67 -0
  97. package/dist/collection/utils/locale.utils.js +32 -0
  98. package/dist/collection/utils/test.utils.js +26 -0
  99. package/dist/collection/variables.css +177 -0
  100. package/dist/collection/variables.scss +177 -0
  101. package/dist/components/MgInput.js +140 -0
  102. package/dist/components/components.utils.js +69 -0
  103. package/dist/components/index.d.ts +26 -0
  104. package/dist/components/index.js +1 -0
  105. package/dist/components/index2.js +54 -0
  106. package/dist/components/locale.utils.js +35 -0
  107. package/dist/components/mg-badge.d.ts +11 -0
  108. package/dist/components/mg-badge.js +6 -0
  109. package/dist/components/mg-badge2.js +82 -0
  110. package/dist/components/mg-button.d.ts +11 -0
  111. package/dist/components/mg-button.js +6 -0
  112. package/dist/components/mg-button2.js +148 -0
  113. package/dist/components/mg-character-left.d.ts +11 -0
  114. package/dist/components/mg-character-left.js +6 -0
  115. package/dist/components/mg-character-left2.js +77 -0
  116. package/dist/components/mg-icon.d.ts +11 -0
  117. package/dist/components/mg-icon.js +6 -0
  118. package/dist/components/mg-icon2.js +147 -0
  119. package/dist/components/mg-input-checkbox.d.ts +11 -0
  120. package/dist/components/mg-input-checkbox.js +222 -0
  121. package/dist/components/mg-input-date.d.ts +11 -0
  122. package/dist/components/mg-input-date.js +245 -0
  123. package/dist/components/mg-input-numeric.d.ts +11 -0
  124. package/dist/components/mg-input-numeric.js +324 -0
  125. package/dist/components/mg-input-password.d.ts +11 -0
  126. package/dist/components/mg-input-password.js +171 -0
  127. package/dist/components/mg-input-radio.d.ts +11 -0
  128. package/dist/components/mg-input-radio.js +211 -0
  129. package/dist/components/mg-input-select.d.ts +11 -0
  130. package/dist/components/mg-input-select.js +6 -0
  131. package/dist/components/mg-input-select2.js +243 -0
  132. package/dist/components/mg-input-text.d.ts +11 -0
  133. package/dist/components/mg-input-text.js +242 -0
  134. package/dist/components/mg-input-textarea.d.ts +11 -0
  135. package/dist/components/mg-input-textarea.js +224 -0
  136. package/dist/components/mg-input-title.d.ts +11 -0
  137. package/dist/components/mg-input-title.js +6 -0
  138. package/dist/components/mg-input-title2.js +55 -0
  139. package/dist/components/mg-input-toggle.d.ts +11 -0
  140. package/dist/components/mg-input-toggle.js +247 -0
  141. package/dist/components/mg-message.d.ts +11 -0
  142. package/dist/components/mg-message.js +183 -0
  143. package/dist/components/mg-pagination.d.ts +11 -0
  144. package/dist/components/mg-pagination.js +175 -0
  145. package/dist/components/mg-popover.d.ts +11 -0
  146. package/dist/components/mg-popover.js +183 -0
  147. package/dist/components/mg-tabs.d.ts +11 -0
  148. package/dist/components/mg-tabs.js +160 -0
  149. package/dist/components/mg-tag.d.ts +11 -0
  150. package/dist/components/mg-tag.js +76 -0
  151. package/dist/components/mg-tooltip.d.ts +11 -0
  152. package/dist/components/mg-tooltip.js +6 -0
  153. package/dist/components/mg-tooltip2.js +150 -0
  154. package/dist/components/popper.js +1784 -0
  155. package/dist/esm/css-shim-7c240feb.js +4 -0
  156. package/dist/esm/index-e3e84606.js +1643 -0
  157. package/dist/esm/index.js +1 -0
  158. package/dist/esm/loader.js +31 -0
  159. package/dist/esm/mg-badge_20.entry.js +4638 -0
  160. package/dist/esm/mg-components.js +21 -0
  161. package/dist/esm/polyfills/core-js.js +11 -0
  162. package/dist/esm/polyfills/css-shim.js +1 -0
  163. package/dist/esm/polyfills/dom.js +79 -0
  164. package/dist/esm/polyfills/es5-html-element.js +1 -0
  165. package/dist/esm/polyfills/index.js +34 -0
  166. package/dist/esm/polyfills/system.js +6 -0
  167. package/dist/esm/shadow-css-5d2d01ce.js +388 -0
  168. package/dist/esm-es5/css-shim-7c240feb.js +1 -0
  169. package/dist/esm-es5/index-e3e84606.js +1 -0
  170. package/dist/esm-es5/index.js +0 -0
  171. package/dist/esm-es5/loader.js +1 -0
  172. package/dist/esm-es5/mg-badge_20.entry.js +2 -0
  173. package/dist/esm-es5/mg-components.js +1 -0
  174. package/dist/esm-es5/shadow-css-5d2d01ce.js +12 -0
  175. package/dist/index.cjs.js +1 -0
  176. package/dist/index.js +1 -0
  177. package/dist/mg-components/fonts/OpenSans-Regular.ttf +0 -0
  178. package/dist/mg-components/fonts/OpenSans-SemiBold.ttf +0 -0
  179. package/dist/mg-components/fonts/Poppins-Bold.ttf +0 -0
  180. package/dist/mg-components/index.esm.js +0 -0
  181. package/dist/mg-components/mg-components.css +1 -0
  182. package/dist/mg-components/mg-components.esm.js +1 -0
  183. package/dist/mg-components/mg-components.js +132 -0
  184. package/dist/mg-components/p-1cd24462.system.js +1 -0
  185. package/dist/mg-components/p-2e2f6b27.system.entry.js +2 -0
  186. package/dist/mg-components/p-366a224e.js +1 -0
  187. package/dist/mg-components/p-422c429b.system.js +1 -0
  188. package/dist/mg-components/p-50ea2036.system.js +1 -0
  189. package/dist/mg-components/p-62fa3797.js +1 -0
  190. package/dist/mg-components/p-71d57b8b.system.js +13 -0
  191. package/dist/mg-components/p-9a215712.system.js +1 -0
  192. package/dist/mg-components/p-cbf0464b.entry.js +1 -0
  193. package/dist/mg-components/p-f6455ab3.js +12 -0
  194. package/dist/mg-components/variables.css +177 -0
  195. package/dist/mg-components/variables.scss +177 -0
  196. package/dist/types/components/atoms/mg-badge/mg-badge.conf.d.ts +8 -0
  197. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +36 -0
  198. package/dist/types/components/atoms/mg-badge/mg-badge.stories.d.ts +19 -0
  199. package/dist/types/components/atoms/mg-button/mg-button.conf.d.ts +4 -0
  200. package/dist/types/components/atoms/mg-button/mg-button.d.ts +67 -0
  201. package/dist/types/components/atoms/mg-button/mg-button.stories.d.ts +16 -0
  202. package/dist/types/components/atoms/mg-character-left/mg-character-left.d.ts +39 -0
  203. package/dist/types/components/atoms/mg-character-left/mg-character-left.stories.d.ts +7 -0
  204. package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +12 -0
  205. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +36 -0
  206. package/dist/types/components/atoms/mg-icon/mg-icon.stories.d.ts +26 -0
  207. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +24 -0
  208. package/dist/types/components/atoms/mg-input-title/mg-input-title.stories.d.ts +6 -0
  209. package/dist/types/components/atoms/mg-tag/mg-tag.conf.d.ts +4 -0
  210. package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +25 -0
  211. package/dist/types/components/atoms/mg-tag/mg-tag.stories.d.ts +14 -0
  212. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +56 -0
  213. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.stories.d.ts +11 -0
  214. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +10 -0
  215. package/dist/types/components/molecules/inputs/MgInput.d.ts +35 -0
  216. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +19 -0
  217. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +120 -0
  218. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.stories.d.ts +6 -0
  219. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.conf.d.ts +6 -0
  220. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +128 -0
  221. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.stories.d.ts +7 -0
  222. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.conf.d.ts +10 -0
  223. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +173 -0
  224. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.stories.d.ts +21 -0
  225. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +111 -0
  226. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.stories.d.ts +9 -0
  227. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +9 -0
  228. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +121 -0
  229. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.stories.d.ts +15 -0
  230. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +18 -0
  231. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +133 -0
  232. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.stories.d.ts +14 -0
  233. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +160 -0
  234. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.stories.d.ts +26 -0
  235. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +150 -0
  236. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.stories.d.ts +6 -0
  237. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +8 -0
  238. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +117 -0
  239. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.stories.d.ts +7 -0
  240. package/dist/types/components/molecules/mg-message/mg-message.conf.d.ts +4 -0
  241. package/dist/types/components/molecules/mg-message/mg-message.d.ts +76 -0
  242. package/dist/types/components/molecules/mg-message/mg-message.stories.d.ts +16 -0
  243. package/dist/types/components/molecules/mg-pagination/mg-pagination.conf.d.ts +4 -0
  244. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +53 -0
  245. package/dist/types/components/molecules/mg-pagination/mg-pagination.stories.d.ts +6 -0
  246. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +62 -0
  247. package/dist/types/components/molecules/mg-popover/mg-popover.stories.d.ts +12 -0
  248. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +10 -0
  249. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +63 -0
  250. package/dist/types/components/molecules/mg-tabs/mg-tabs.stories.d.ts +7 -0
  251. package/dist/types/components.d.ts +1987 -0
  252. package/dist/types/index.d.ts +1 -0
  253. package/dist/types/locales/index.d.ts +44 -0
  254. package/dist/types/stencil-public-runtime.d.ts +1565 -0
  255. package/dist/types/stories/buttons.stories.d.ts +13 -0
  256. package/dist/types/stories/grids.stories.d.ts +5 -0
  257. package/dist/types/stories/icons.stories.d.ts +13 -0
  258. package/dist/types/stories/messages.stories.d.ts +13 -0
  259. package/dist/types/stories/tags.stories.d.ts +5 -0
  260. package/dist/types/stories/typography.stories.d.ts +5 -0
  261. package/dist/types/utils/components.utils.d.ts +43 -0
  262. package/dist/types/utils/locale.utils.d.ts +22 -0
  263. package/dist/types/utils/test.utils.d.ts +5 -0
  264. package/loader/cdn.js +3 -0
  265. package/loader/index.cjs.js +3 -0
  266. package/loader/index.d.ts +12 -0
  267. package/loader/index.es2017.js +3 -0
  268. package/loader/index.js +4 -0
  269. package/loader/package.json +10 -0
  270. package/package.json +86 -0
  271. package/readme.md +159 -0
@@ -0,0 +1,183 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { c as createID } from './components.utils.js';
3
+ import { m as messages } from './index2.js';
4
+ import { d as defineCustomElement$3 } from './mg-button2.js';
5
+ import { d as defineCustomElement$2 } from './mg-icon2.js';
6
+ import { c as createPopper } from './popper.js';
7
+
8
+ const mgPopoverCss = "mg-popover.sc-mg-popover{display:contents}mg-popover.sc-mg-popover-s>*{display:inline-block}.mg-popover.sc-mg-popover{display:none;padding:1.5rem;z-index:9999;border-radius:0.5rem;background-color:hsl(var(--mg-popover-background-color));-webkit-box-shadow:0 0.3rem 0.8rem 0 rgba(0, 0, 0, 0.1);box-shadow:0 0.3rem 0.8rem 0 rgba(0, 0, 0, 0.1);color:hsl(var(--mg-popover-font-color))}.mg-popover[data-show].sc-mg-popover{display:block}.mg-popover.sc-mg-popover mg-button.sc-mg-popover{float:right;margin-right:calc(0rem - (var(--default-size) - var(--mg-icon-regular-size)) / 2);margin-top:calc(0rem - (var(--default-size) - var(--mg-popover-title-font-size) * var(--line-height)) / 2);margin-left:3rem}.mg-popover.sc-mg-popover .mg-popover__arrow.sc-mg-popover,.mg-popover.sc-mg-popover .mg-popover__arrow.sc-mg-popover::before{position:absolute;width:2rem;height:2rem;z-index:9999;background:inherit}.mg-popover.sc-mg-popover .mg-popover__arrow.sc-mg-popover{visibility:hidden}.mg-popover.sc-mg-popover .mg-popover__arrow.sc-mg-popover::before{visibility:visible;content:\"\";-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mg-popover[data-popper-placement^=top].sc-mg-popover>.mg-popover__arrow.sc-mg-popover{bottom:-6px}.mg-popover[data-popper-placement^=bottom].sc-mg-popover>.mg-popover__arrow.sc-mg-popover{top:-6px}.mg-popover[data-popper-placement^=left].sc-mg-popover>.mg-popover__arrow.sc-mg-popover{right:-6px}.mg-popover[data-popper-placement^=right].sc-mg-popover>.mg-popover__arrow.sc-mg-popover{left:-6px}.mg-popover__title.sc-mg-popover-s>*,.mg-popover__title .sc-mg-popover-s>*{margin:0 0 1rem;font-size:var(--mg-popover-title-font-size);font-weight:600}";
9
+
10
+ const MgPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
11
+ constructor() {
12
+ super();
13
+ this.__registerHost();
14
+ this.closeButtonId = '';
15
+ /**
16
+ * Sets an `id` attribute.
17
+ * Needed by the input for accessibility `aria-decribedby`.
18
+ */
19
+ this.identifier = createID('mg-popover');
20
+ /**
21
+ * Popover placement
22
+ */
23
+ this.placement = 'bottom';
24
+ /**
25
+ * Define if popover has a cross button
26
+ */
27
+ this.closeButton = false;
28
+ /**
29
+ * Display popover
30
+ */
31
+ this.display = false;
32
+ /**
33
+ * Disable popover
34
+ */
35
+ this.disabled = false;
36
+ /**
37
+ * Check if clicked outside of component
38
+ * @param e {event}
39
+ */
40
+ // Unable to trigger document events in unit tests: https://gitlab.mgdis.fr/core/core-ui/mg-components/-/issues/57
41
+ /* istanbul ignore next */
42
+ this.clickOutside = e => {
43
+ var _a;
44
+ if (!this.disabled && ((_a = e.target.closest(`#${this.identifier}`)) === null || _a === void 0 ? void 0 : _a.parentElement.nodeName) !== 'MG-POPOVER') {
45
+ this.display = false;
46
+ }
47
+ };
48
+ /**
49
+ * Show popover
50
+ * @returns {void}
51
+ */
52
+ this.show = () => {
53
+ // Make the popover visible
54
+ this.popover.setAttribute('data-show', '');
55
+ // Enable the event listeners
56
+ this.popper.setOptions(options => (Object.assign(Object.assign({}, options), { modifiers: [...options.modifiers, { name: 'eventListeners', enabled: true }] })));
57
+ // Update its position
58
+ this.popper.update();
59
+ // hide when click outside
60
+ // setTimeout is used to prevent event to trigger after creation
61
+ setTimeout(() => {
62
+ // Unable to trigger document events in unit tests: https://gitlab.mgdis.fr/core/core-ui/mg-components/-/issues/57
63
+ /* istanbul ignore next */
64
+ document.addEventListener('click', this.clickOutside, false);
65
+ }, 0);
66
+ };
67
+ /**
68
+ * Hide popover
69
+ * @returns {void}
70
+ */
71
+ this.hide = () => {
72
+ // Hide the popover
73
+ this.popover.removeAttribute('data-show');
74
+ // Disable the event listeners
75
+ this.popper.setOptions(options => (Object.assign(Object.assign({}, options), { modifiers: [...options.modifiers, { name: 'eventListeners', enabled: false }] })));
76
+ // Remove even listener
77
+ document.removeEventListener('click', this.clickOutside, false);
78
+ };
79
+ /**
80
+ * Handle action for close button
81
+ * @returns {void}
82
+ */
83
+ this.handleCloseButton = () => {
84
+ this.display = false;
85
+ };
86
+ }
87
+ handleDisplay(newVal) {
88
+ if (newVal) {
89
+ this.show();
90
+ }
91
+ else {
92
+ this.hide();
93
+ }
94
+ }
95
+ /*************
96
+ * Lifecycle *
97
+ *************/
98
+ componentDidLoad() {
99
+ //Check if slotted title is a heading
100
+ const headingElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
101
+ const slotedTitleElement = this.element.querySelector('[slot="title"]');
102
+ if (slotedTitleElement !== null && !headingElements.includes(slotedTitleElement.tagName.toLowerCase())) {
103
+ throw new Error(`<mg-popover> Slotted title must be a heading: ${headingElements.join(', ')}.`);
104
+ }
105
+ // Set close button id
106
+ if (this.closeButton) {
107
+ this.closeButtonId = `${this.identifier}-close-button`;
108
+ }
109
+ // Get popover content
110
+ this.popover = this.element.querySelector(`#${this.identifier}`);
111
+ //Get interactive element
112
+ const interactiveElement = this.element.firstElementChild;
113
+ // Add aria attributes
114
+ interactiveElement.setAttribute('aria-controls', this.identifier);
115
+ interactiveElement.setAttribute('aria-expanded', `${this.display}`);
116
+ // Create popperjs popover
117
+ this.popper = createPopper(interactiveElement, this.popover, {
118
+ placement: this.placement,
119
+ modifiers: [
120
+ {
121
+ name: 'offset',
122
+ options: {
123
+ offset: [0, 10],
124
+ },
125
+ },
126
+ ],
127
+ });
128
+ // Add events to toggle display
129
+ interactiveElement.addEventListener('click', () => {
130
+ if (!this.disabled)
131
+ this.display = !this.display;
132
+ });
133
+ // Add events to hide popover
134
+ this.element.addEventListener('keydown', e => {
135
+ if (!this.disabled && e.code === 'Escape')
136
+ this.display = false;
137
+ });
138
+ this.handleDisplay(this.display);
139
+ }
140
+ render() {
141
+ return (h(Host, null, h("slot", null), h("div", { id: this.identifier, class: "mg-popover" }, !this.disabled && this.closeButton && (h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: messages.popover.closeButton, onClick: this.handleCloseButton }, h("mg-icon", { icon: "cross" }))), h("div", { class: "mg-popover__title" }, h("slot", { name: "title" })), h("slot", { name: "content" }), h("div", { class: "mg-popover__arrow", "data-popper-arrow": true }))));
142
+ }
143
+ get element() { return this; }
144
+ static get watchers() { return {
145
+ "display": ["handleDisplay"]
146
+ }; }
147
+ static get style() { return mgPopoverCss; }
148
+ }, [6, "mg-popover", {
149
+ "identifier": [1],
150
+ "placement": [1],
151
+ "closeButton": [4, "close-button"],
152
+ "display": [1028],
153
+ "disabled": [1028]
154
+ }]);
155
+ function defineCustomElement$1() {
156
+ if (typeof customElements === "undefined") {
157
+ return;
158
+ }
159
+ const components = ["mg-popover", "mg-button", "mg-icon"];
160
+ components.forEach(tagName => { switch (tagName) {
161
+ case "mg-popover":
162
+ if (!customElements.get(tagName)) {
163
+ customElements.define(tagName, MgPopover$1);
164
+ }
165
+ break;
166
+ case "mg-button":
167
+ if (!customElements.get(tagName)) {
168
+ defineCustomElement$3();
169
+ }
170
+ break;
171
+ case "mg-icon":
172
+ if (!customElements.get(tagName)) {
173
+ defineCustomElement$2();
174
+ }
175
+ break;
176
+ } });
177
+ }
178
+ defineCustomElement$1();
179
+
180
+ const MgPopover = MgPopover$1;
181
+ const defineCustomElement = defineCustomElement$1;
182
+
183
+ export { MgPopover, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface MgTabs extends Components.MgTabs, HTMLElement {}
4
+ export const MgTabs: {
5
+ prototype: MgTabs;
6
+ new (): MgTabs;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,160 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { c as createID, C as ClassList, a as allItemsAreString } from './components.utils.js';
3
+ import { d as defineCustomElement$3 } from './mg-badge2.js';
4
+ import { d as defineCustomElement$2 } from './mg-icon2.js';
5
+
6
+ const mgTabsCss = ".mg-tabs__header.sc-mg-tabs{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.mg-tabs__navigation-button.sc-mg-tabs{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-column-gap:0.5rem;-moz-column-gap:0.5rem;column-gap:0.5rem;padding:1.8rem 2.4rem 1.5rem;background:none;border:none;border-bottom:0.3rem solid transparent;color:hsl(var(--color-dark));line-height:var(--line-height);cursor:pointer}.mg-tabs__navigation-button.sc-mg-tabs:hover,.mg-tabs__navigation-button.sc-mg-tabs:focus{background-color:hsla(var(--color-info-h), var(--color-info-s), var(--color-info-l), 10%)}.mg-tabs__navigation-button.mg-tabs__navigation-button--active.sc-mg-tabs{color:hsl(var(--color-info));border-bottom-color:hsl(var(--color-info));font-weight:700}.mg-tabs__content-container.sc-mg-tabs:focus-visible{outline-color:transparent}";
7
+
8
+ /**
9
+ * type TabItem validation function
10
+ * @param tab
11
+ * @returns {boolean}
12
+ */
13
+ const isTabItem = (tab) => typeof tab === 'object' && typeof tab.label === 'string';
14
+ const MgTabs$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
15
+ constructor() {
16
+ super();
17
+ this.__registerHost();
18
+ /**
19
+ * Identifier is used for the element ID (id is a reserved prop in Stencil.js)
20
+ * If not set, it will be created.
21
+ */
22
+ this.identifier = createID('mg-tabs');
23
+ /**
24
+ * Active tab number
25
+ * default: first is 1
26
+ */
27
+ this.activeTab = 1;
28
+ /**
29
+ * Component tabs
30
+ */
31
+ this.tabs = [];
32
+ /**
33
+ * Component classes
34
+ */
35
+ this.classList = new ClassList(['mg-tabs']);
36
+ /**
37
+ * Handle click events on tabs
38
+ * @param event
39
+ */
40
+ this.handleClick = (event) => {
41
+ const tabId = event.currentTarget.getAttribute('data-index');
42
+ this.activeTab = Number(tabId);
43
+ };
44
+ /**
45
+ * Handle keyboard event on tabs
46
+ * @param event
47
+ */
48
+ this.handleKeydown = (event) => {
49
+ let selectedTab;
50
+ let tabId = Number(event.target.getAttribute('data-index'));
51
+ const parent = event.target.parentElement;
52
+ // change selected id from key code
53
+ // /* IE FIX */ delete 'Right'
54
+ if (['ArrowRight', 'Right'].includes(event.key)) {
55
+ tabId++;
56
+ // /* IE FIX */ delete 'Left'
57
+ }
58
+ else if (['ArrowLeft', 'Left'].includes(event.key)) {
59
+ tabId--;
60
+ }
61
+ // get selected tab
62
+ selectedTab = parent.querySelector(`[data-index="${tabId}"]`);
63
+ // apply selected tab if exist
64
+ if (selectedTab !== null) {
65
+ selectedTab.focus();
66
+ this.activeTab = tabId;
67
+ }
68
+ };
69
+ /**
70
+ * Validate slots setting
71
+ */
72
+ this.validateSlots = () => {
73
+ const slots = Array.from(this.element.children).filter(slot => { var _a; return (_a = slot.getAttribute('slot')) === null || _a === void 0 ? void 0 : _a.includes('tab_content-'); });
74
+ if (slots.length !== this.tabs.length) {
75
+ throw new Error('<mg-tabs> Must have slots counts equal to tabs count.');
76
+ }
77
+ };
78
+ }
79
+ validateItems(newValue) {
80
+ // String array
81
+ if (allItemsAreString(newValue)) {
82
+ this.tabs = newValue.map(item => ({ label: item }));
83
+ }
84
+ // Object array
85
+ else if (newValue && newValue.every(item => isTabItem(item))) {
86
+ this.tabs = newValue;
87
+ }
88
+ else {
89
+ throw new Error('<mg-tabs> prop "items" is required and all items must be the same type: TabItem.');
90
+ }
91
+ }
92
+ validateActiveTab(newValue) {
93
+ if (Number(newValue) < 1 || Number(newValue) > this.tabs.length) {
94
+ throw new Error('<mg-tabs> prop "activeTab" must be between 1 and tabs length.');
95
+ }
96
+ }
97
+ /*************
98
+ * Lifecycle *
99
+ *************/
100
+ /**
101
+ * Check if component props are well configured on init
102
+ */
103
+ componentWillLoad() {
104
+ // Check tabs format
105
+ this.validateItems(this.items);
106
+ this.validateActiveTab(this.activeTab);
107
+ this.validateSlots();
108
+ }
109
+ render() {
110
+ return (h(Host, null, h("header", { role: "tablist", "aria-label": this.label, class: "mg-tabs__header" }, this.tabs.map((tab, index) => {
111
+ const tabIndex = index + 1;
112
+ return (h("button", { role: "tab", id: `${this.identifier}-${tabIndex}`, class: `mg-tabs__navigation-button ${tabIndex === this.activeTab ? 'mg-tabs__navigation-button--active' : ''}`, tabindex: tabIndex === this.activeTab ? 0 : -1, "aria-selected": (tabIndex === this.activeTab).toString(), "aria-controls": `pannel-${tabIndex}`, onClick: this.handleClick, onKeyDown: this.handleKeydown, "data-index": tabIndex }, tab.icon !== undefined && h("mg-icon", { icon: tab.icon }), tab.label, tab.badge !== undefined && h("mg-badge", { variant: "info", value: tab.badge.value, label: tab.badge.label })));
113
+ })), this.tabs.map((_tab, index) => {
114
+ const tabIndex = index + 1;
115
+ return (h("article", { role: "tabpanel", id: `pannel-${tabIndex}`, hidden: tabIndex !== this.activeTab, "aria-labelledby": `${this.identifier}-${this.activeTab}`, tabindex: tabIndex === this.activeTab ? 0 : -1, class: "mg-tabs__content-container" }, h("slot", { name: `tab_content-${tabIndex}` })));
116
+ })));
117
+ }
118
+ get element() { return this; }
119
+ static get watchers() { return {
120
+ "items": ["validateItems"],
121
+ "activeTab": ["validateActiveTab"]
122
+ }; }
123
+ static get style() { return mgTabsCss; }
124
+ }, [6, "mg-tabs", {
125
+ "identifier": [1],
126
+ "label": [1],
127
+ "items": [16],
128
+ "activeTab": [1538, "active-tab"],
129
+ "tabs": [32],
130
+ "classList": [32]
131
+ }]);
132
+ function defineCustomElement$1() {
133
+ if (typeof customElements === "undefined") {
134
+ return;
135
+ }
136
+ const components = ["mg-tabs", "mg-badge", "mg-icon"];
137
+ components.forEach(tagName => { switch (tagName) {
138
+ case "mg-tabs":
139
+ if (!customElements.get(tagName)) {
140
+ customElements.define(tagName, MgTabs$1);
141
+ }
142
+ break;
143
+ case "mg-badge":
144
+ if (!customElements.get(tagName)) {
145
+ defineCustomElement$3();
146
+ }
147
+ break;
148
+ case "mg-icon":
149
+ if (!customElements.get(tagName)) {
150
+ defineCustomElement$2();
151
+ }
152
+ break;
153
+ } });
154
+ }
155
+ defineCustomElement$1();
156
+
157
+ const MgTabs = MgTabs$1;
158
+ const defineCustomElement = defineCustomElement$1;
159
+
160
+ export { MgTabs, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface MgTag extends Components.MgTag, HTMLElement {}
4
+ export const MgTag: {
5
+ prototype: MgTag;
6
+ new (): MgTag;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,76 @@
1
+ import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
+ import { C as ClassList } from './components.utils.js';
3
+
4
+ /**
5
+ * List of all possibles variants
6
+ */
7
+ const variants = ['primary', 'secondary', 'success', 'warning', 'danger', 'info'];
8
+
9
+ const mgTagCss = ".mg-tag{padding:calc((var(--mg-tag-height) - 0.2rem - var(--mg-tag-font-size) * var(--line-height)) / 2) 0.6rem;min-height:var(--mg-tag-height);-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:var(--mg-tag-border-radius);border:0.1rem solid;font-size:var(--mg-tag-font-size);font-weight:600;text-align:center}.mg-tag.mg-tag--primary{background-color:hsl(var(--color-dark));border-color:hsl(var(--color-dark));color:hsl(var(--color-light))}.mg-tag.mg-tag--primary.mg-tag--outline{background-color:transparent;color:hsl(var(--color-dark))}.mg-tag.mg-tag--secondary{background-color:hsl(var(--color-light));border-color:hsl(var(--color-light));color:hsl(var(--color-dark))}.mg-tag.mg-tag--secondary.mg-tag--outline{background-color:transparent;color:hsl(var(--color-light))}.mg-tag.mg-tag--success{background-color:hsl(var(--color-success));border-color:hsl(var(--color-success));color:hsl(var(--color-dark))}.mg-tag.mg-tag--success.mg-tag--outline{background-color:transparent;color:hsl(var(--color-success))}.mg-tag.mg-tag--warning{background-color:hsl(var(--color-warning));border-color:hsl(var(--color-warning));color:hsl(var(--color-dark))}.mg-tag.mg-tag--warning.mg-tag--outline{background-color:transparent;color:hsl(var(--color-warning))}.mg-tag.mg-tag--danger{background-color:hsl(var(--color-danger));border-color:hsl(var(--color-danger));color:hsl(var(--color-light))}.mg-tag.mg-tag--danger.mg-tag--outline{background-color:transparent;color:hsl(var(--color-danger))}.mg-tag.mg-tag--info{background-color:hsl(var(--color-info));border-color:hsl(var(--color-info));color:hsl(var(--color-light))}.mg-tag.mg-tag--info.mg-tag--outline{background-color:transparent;color:hsl(var(--color-info))}.mg-tag,mg-tag{display:inline-block;vertical-align:middle}";
10
+
11
+ const MgTag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
12
+ constructor() {
13
+ super();
14
+ this.__registerHost();
15
+ this.__attachShadow();
16
+ /**
17
+ * Define button variant
18
+ */
19
+ this.variant = variants[0];
20
+ /**
21
+ * Component classes
22
+ */
23
+ this.classList = new ClassList(['mg-tag']);
24
+ }
25
+ validateVariant(newValue) {
26
+ if (!variants.includes(newValue)) {
27
+ throw new Error(`<mg-tag> prop "variant" must be one of : ${variants.join(', ')}.`);
28
+ }
29
+ this.classList.add(`mg-tag--${this.variant}`);
30
+ }
31
+ validateOutline(newValue) {
32
+ if (newValue)
33
+ this.classList.add(`mg-tag--outline`);
34
+ }
35
+ /**
36
+ * Check if props are well configured on init
37
+ */
38
+ componentWillLoad() {
39
+ this.validateVariant(this.variant);
40
+ this.validateOutline(this.outline);
41
+ }
42
+ /**
43
+ * Render
44
+ */
45
+ render() {
46
+ return (h("span", { class: this.classList.join() }, h("slot", null)));
47
+ }
48
+ static get watchers() { return {
49
+ "variant": ["validateVariant"],
50
+ "outline": ["validateOutline"]
51
+ }; }
52
+ static get style() { return mgTagCss; }
53
+ }, [1, "mg-tag", {
54
+ "variant": [1],
55
+ "outline": [4],
56
+ "classList": [32]
57
+ }]);
58
+ function defineCustomElement$1() {
59
+ if (typeof customElements === "undefined") {
60
+ return;
61
+ }
62
+ const components = ["mg-tag"];
63
+ components.forEach(tagName => { switch (tagName) {
64
+ case "mg-tag":
65
+ if (!customElements.get(tagName)) {
66
+ customElements.define(tagName, MgTag$1);
67
+ }
68
+ break;
69
+ } });
70
+ }
71
+ defineCustomElement$1();
72
+
73
+ const MgTag = MgTag$1;
74
+ const defineCustomElement = defineCustomElement$1;
75
+
76
+ export { MgTag, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface MgTooltip extends Components.MgTooltip, HTMLElement {}
4
+ export const MgTooltip: {
5
+ prototype: MgTooltip;
6
+ new (): MgTooltip;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,6 @@
1
+ import { M as MgTooltip$1, d as defineCustomElement$1 } from './mg-tooltip2.js';
2
+
3
+ const MgTooltip = MgTooltip$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { MgTooltip, defineCustomElement };
@@ -0,0 +1,150 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { c as createID } from './components.utils.js';
3
+ import { c as createPopper } from './popper.js';
4
+
5
+ const mgTooltipCss = ".sc-mg-tooltip-h{display:inline-block}.mg-tooltip.sc-mg-tooltip{display:none;padding:0.5rem 0.8rem;z-index:9999;border-radius:var(--mg-tooltip-border-radius);background-color:hsl(var(--mg-tooltip-background-color));color:hsl(var(--mg-tooltip-font-color));text-align:start}.mg-tooltip[data-show].sc-mg-tooltip{display:block}.mg-tooltip.sc-mg-tooltip .mg-tooltip__arrow.sc-mg-tooltip,.mg-tooltip.sc-mg-tooltip .mg-tooltip__arrow.sc-mg-tooltip::before{position:absolute;width:0.8rem;height:0.8rem;z-index:9999;background:inherit}.mg-tooltip.sc-mg-tooltip .mg-tooltip__arrow.sc-mg-tooltip{visibility:hidden}.mg-tooltip.sc-mg-tooltip .mg-tooltip__arrow.sc-mg-tooltip::before{visibility:visible;content:\"\";-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mg-tooltip[data-popper-placement^=top].sc-mg-tooltip>.mg-tooltip__arrow.sc-mg-tooltip{bottom:-4px}.mg-tooltip[data-popper-placement^=bottom].sc-mg-tooltip>.mg-tooltip__arrow.sc-mg-tooltip{top:-4px}.mg-tooltip[data-popper-placement^=left].sc-mg-tooltip>.mg-tooltip__arrow.sc-mg-tooltip{right:-4px}.mg-tooltip[data-popper-placement^=right].sc-mg-tooltip>.mg-tooltip__arrow.sc-mg-tooltip{left:-4px}";
6
+
7
+ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
8
+ constructor() {
9
+ super();
10
+ this.__registerHost();
11
+ /**
12
+ * Sets an `id` attribute.
13
+ * Needed by the input for accessibility `aria-decribedby`.
14
+ */
15
+ this.identifier = createID('mg-tooltip');
16
+ /**
17
+ * Tooltip placement
18
+ */
19
+ this.placement = 'bottom';
20
+ /**
21
+ * Display tooltip
22
+ */
23
+ this.display = false;
24
+ /**
25
+ * Disable tooltip
26
+ */
27
+ this.disabled = false;
28
+ /**
29
+ * Show tooltip
30
+ * @returns {void}
31
+ */
32
+ this.show = () => {
33
+ // Make the tooltip visible
34
+ this.tooltip.setAttribute('data-show', '');
35
+ // Enable the event listeners
36
+ this.popper.setOptions(options => (Object.assign(Object.assign({}, options), { modifiers: [...options.modifiers, { name: 'eventListeners', enabled: true }] })));
37
+ // Update its position
38
+ this.popper.update();
39
+ };
40
+ /**
41
+ * Hide tooltip
42
+ * @returns {void}
43
+ */
44
+ this.hide = () => {
45
+ // Hide the tooltip
46
+ this.tooltip.removeAttribute('data-show');
47
+ // Disable the event listeners
48
+ this.popper.setOptions(options => (Object.assign(Object.assign({}, options), { modifiers: [...options.modifiers, { name: 'eventListeners', enabled: false }] })));
49
+ };
50
+ }
51
+ handleDisplay(newVal) {
52
+ if (newVal) {
53
+ this.show();
54
+ }
55
+ else {
56
+ this.hide();
57
+ }
58
+ }
59
+ /*************
60
+ * Lifecycle *
61
+ *************/
62
+ /**
63
+ * Get slotted element
64
+ * Check if it already contain an interactive element, if not we need to add a tabIndex attribute
65
+ * We need to attach the focused element to the tooltip (aria-describedby)
66
+ */
67
+ componentDidLoad() {
68
+ var _a;
69
+ // Get tooltip element
70
+ this.tooltip = this.element.querySelector(`#${this.identifier}`);
71
+ // get slotted element
72
+ const slotElement = this.element.firstElementChild;
73
+ // Get interactive element
74
+ const interactiveElements = ['a', 'button', 'input', 'textarea', 'select']; //! Might needs updates
75
+ const interactiveElement = this.element.querySelector(interactiveElements.join(',')) || ((_a = slotElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(interactiveElements.join(',')));
76
+ // define selected element to become tooltip selector
77
+ const tooltipedElement = interactiveElement || slotElement;
78
+ // Add tabindex to slotted element if we can't find any interactive element
79
+ if (interactiveElement === null || interactiveElement === undefined)
80
+ slotElement.tabIndex = 0;
81
+ // Set aria-describedby
82
+ const ariaDescribedby = slotElement.getAttribute('aria-describedby');
83
+ if (ariaDescribedby === null) {
84
+ tooltipedElement.setAttribute('aria-describedby', this.identifier);
85
+ }
86
+ else {
87
+ slotElement.setAttribute('aria-describedby', `${ariaDescribedby} ${this.identifier}`);
88
+ }
89
+ // Create popperjs tooltip
90
+ this.popper = createPopper(tooltipedElement, this.tooltip, {
91
+ placement: this.placement,
92
+ modifiers: [
93
+ {
94
+ name: 'offset',
95
+ options: {
96
+ offset: [0, 8],
97
+ },
98
+ },
99
+ ],
100
+ });
101
+ // Add events
102
+ ['mouseenter', 'focus'].forEach(event => {
103
+ tooltipedElement.addEventListener(event, () => {
104
+ if (!this.disabled)
105
+ this.display = true;
106
+ });
107
+ });
108
+ ['mouseleave', 'blur', 'keydown'].forEach(event => {
109
+ tooltipedElement.addEventListener(event, (e) => {
110
+ // we continue to process ONLY for KeyboardEvents 'Escape'
111
+ if (e.type === 'keydown' && e.code !== 'Escape') {
112
+ return;
113
+ }
114
+ if (!this.disabled)
115
+ this.display = false;
116
+ });
117
+ });
118
+ this.handleDisplay(this.display);
119
+ }
120
+ render() {
121
+ return (h(Host, null, h("slot", null), h("div", { role: "tooltip", id: this.identifier, class: "mg-tooltip", innerHTML: this.message }, h("div", { class: "mg-tooltip__arrow", "data-popper-arrow": true }))));
122
+ }
123
+ get element() { return this; }
124
+ static get watchers() { return {
125
+ "display": ["handleDisplay"]
126
+ }; }
127
+ static get style() { return mgTooltipCss; }
128
+ }, [6, "mg-tooltip", {
129
+ "identifier": [1],
130
+ "message": [1],
131
+ "placement": [1],
132
+ "display": [1028],
133
+ "disabled": [1028]
134
+ }]);
135
+ function defineCustomElement() {
136
+ if (typeof customElements === "undefined") {
137
+ return;
138
+ }
139
+ const components = ["mg-tooltip"];
140
+ components.forEach(tagName => { switch (tagName) {
141
+ case "mg-tooltip":
142
+ if (!customElements.get(tagName)) {
143
+ customElements.define(tagName, MgTooltip);
144
+ }
145
+ break;
146
+ } });
147
+ }
148
+ defineCustomElement();
149
+
150
+ export { MgTooltip as M, defineCustomElement as d };