@mgdis/mg-components 6.9.0 → 6.10.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 (207) hide show
  1. package/dist/cjs/events.utils-D5SAtkpQ.js +28 -0
  2. package/dist/cjs/events.utils-D5SAtkpQ.js.map +1 -0
  3. package/dist/cjs/index-CATFkm3O.js +4 -0
  4. package/dist/cjs/{index-CTU2m-sy.js → index-CfIlskRh.js} +20 -6
  5. package/dist/cjs/{index-CTU2m-sy.js.map → index-CfIlskRh.js.map} +1 -1
  6. package/dist/cjs/index.es-BCLy9yYb.js +250 -0
  7. package/dist/cjs/index.es-BCLy9yYb.js.map +1 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/mg-action-more_37.cjs.entry.js +382 -373
  10. package/dist/cjs/mg-action-more_37.cjs.entry.js.map +1 -1
  11. package/dist/cjs/mg-alert.cjs.entry.js +7 -7
  12. package/dist/cjs/mg-components.cjs.js +1 -1
  13. package/dist/cjs/mg-input-combobox.cjs.entry.js +774 -0
  14. package/dist/cjs/mg-input-combobox.cjs.entry.js.map +1 -0
  15. package/dist/cjs/mg-input-combobox.entry.cjs.js.map +1 -0
  16. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +16 -14
  17. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js.map +1 -1
  18. package/dist/cjs/mg-input-rich-text-editor.entry.cjs.js.map +1 -1
  19. package/dist/cjs/mg-loader.cjs.entry.js +5 -5
  20. package/dist/cjs/mg-progress.cjs.entry.js +11 -11
  21. package/dist/collection/collection-manifest.json +1 -0
  22. package/dist/collection/components/atoms/mg-button/mg-button.js +3 -2
  23. package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
  24. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +47 -57
  25. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js.map +1 -1
  26. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.conf.js +2 -0
  27. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.conf.js.map +1 -0
  28. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +1443 -0
  29. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js.map +1 -0
  30. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +1 -1
  31. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +2 -2
  32. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
  33. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +1 -1
  34. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +1 -1
  35. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.scss +1 -0
  36. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +3 -3
  37. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js.map +1 -1
  38. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +1 -1
  39. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +1 -1
  40. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +1 -1
  41. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +1 -1
  42. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js +2 -2
  43. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js.map +1 -1
  44. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +3 -3
  45. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js.map +1 -1
  46. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +2 -2
  47. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
  48. package/dist/collection/components/molecules/mg-alert/mg-alert.js +1 -1
  49. package/dist/collection/components/molecules/mg-details/mg-details.js +1 -1
  50. package/dist/collection/components/molecules/mg-form/mg-form.js +1 -1
  51. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +1 -1
  52. package/dist/collection/components/molecules/mg-loader/mg-loader.js +1 -1
  53. package/dist/collection/components/molecules/mg-message/mg-message.js +2 -2
  54. package/dist/collection/components/molecules/mg-modal/mg-modal.js +2 -2
  55. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +3 -3
  56. package/dist/collection/components/molecules/mg-panel/mg-panel.js +1 -1
  57. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +1 -1
  58. package/dist/collection/components/molecules/mg-popover/mg-popover.js +55 -81
  59. package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
  60. package/dist/collection/components/molecules/mg-progress/mg-progress.js +1 -1
  61. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +1 -1
  62. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +6 -5
  63. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
  64. package/dist/collection/locales/en/messages.json +8 -1
  65. package/dist/collection/locales/fr/messages.json +8 -1
  66. package/dist/collection/utils/behaviors.utils.js +3 -3
  67. package/dist/collection/utils/behaviors.utils.js.map +1 -1
  68. package/dist/collection/utils/events.utils.js +22 -0
  69. package/dist/collection/utils/events.utils.js.map +1 -0
  70. package/dist/collection/utils/floating-ui.utils.js +46 -2
  71. package/dist/collection/utils/floating-ui.utils.js.map +1 -1
  72. package/dist/components/events.utils.js +26 -0
  73. package/dist/components/events.utils.js.map +1 -0
  74. package/dist/components/floating-ui.utils.js +47 -3
  75. package/dist/components/floating-ui.utils.js.map +1 -1
  76. package/dist/components/index.es.js +136 -43
  77. package/dist/components/index.es.js.map +1 -1
  78. package/dist/components/index2.js +18 -4
  79. package/dist/components/index2.js.map +1 -1
  80. package/dist/components/mg-action-more.js +8 -8
  81. package/dist/components/mg-action-more.js.map +1 -1
  82. package/dist/components/mg-alert.js +6 -6
  83. package/dist/components/mg-badge2.js +6 -6
  84. package/dist/components/mg-button2.js +9 -8
  85. package/dist/components/mg-button2.js.map +1 -1
  86. package/dist/components/mg-character-left2.js +4 -4
  87. package/dist/components/mg-details.js +4 -4
  88. package/dist/components/mg-details.js.map +1 -1
  89. package/dist/components/mg-form.js +8 -8
  90. package/dist/components/mg-icon2.js +6 -6
  91. package/dist/components/mg-illustrated-message.js +6 -6
  92. package/dist/components/mg-input-checkbox.js +9 -9
  93. package/dist/components/mg-input-combobox.d.ts +11 -0
  94. package/dist/components/mg-input-combobox.js +897 -0
  95. package/dist/components/mg-input-combobox.js.map +1 -0
  96. package/dist/components/mg-input-date.js +18 -18
  97. package/dist/components/mg-input-date.js.map +1 -1
  98. package/dist/components/mg-input-numeric.js +16 -16
  99. package/dist/components/mg-input-numeric.js.map +1 -1
  100. package/dist/components/mg-input-password.js +5 -5
  101. package/dist/components/mg-input-password.js.map +1 -1
  102. package/dist/components/mg-input-radio.js +8 -8
  103. package/dist/components/mg-input-rich-text-editor.js +15 -13
  104. package/dist/components/mg-input-rich-text-editor.js.map +1 -1
  105. package/dist/components/mg-input-select2.js +9 -9
  106. package/dist/components/mg-input-select2.js.map +1 -1
  107. package/dist/components/mg-input-text2.js +11 -11
  108. package/dist/components/mg-input-text2.js.map +1 -1
  109. package/dist/components/mg-input-textarea.js +9 -9
  110. package/dist/components/mg-input-textarea.js.map +1 -1
  111. package/dist/components/mg-input-title2.js +4 -4
  112. package/dist/components/mg-input-toggle.js +7 -7
  113. package/dist/components/mg-input2.js +8 -8
  114. package/dist/components/mg-item-more2.js +12 -12
  115. package/dist/components/mg-item-more2.js.map +1 -1
  116. package/dist/components/mg-loader.js +1 -70
  117. package/dist/components/mg-loader.js.map +1 -1
  118. package/dist/components/mg-loader2.js +75 -0
  119. package/dist/components/mg-loader2.js.map +1 -0
  120. package/dist/components/mg-menu-item2.js +13 -13
  121. package/dist/components/mg-menu-item2.js.map +1 -1
  122. package/dist/components/mg-message2.js +6 -6
  123. package/dist/components/mg-modal.js +10 -10
  124. package/dist/components/mg-pagination2.js +9 -9
  125. package/dist/components/mg-panel.js +10 -10
  126. package/dist/components/mg-popover-content2.js +5 -5
  127. package/dist/components/mg-popover-content2.js.map +1 -1
  128. package/dist/components/mg-popover2.js +60 -86
  129. package/dist/components/mg-popover2.js.map +1 -1
  130. package/dist/components/mg-progress.js +11 -11
  131. package/dist/components/mg-skip-links.js +3 -3
  132. package/dist/components/mg-table.js +6 -6
  133. package/dist/components/mg-tabs.js +18 -17
  134. package/dist/components/mg-tabs.js.map +1 -1
  135. package/dist/components/mg-tag.js +4 -4
  136. package/dist/components/mg-tooltip-content2.js +1 -1
  137. package/dist/components/mg-tooltip-content2.js.map +1 -1
  138. package/dist/components/mg-tooltip2.js +56 -66
  139. package/dist/components/mg-tooltip2.js.map +1 -1
  140. package/dist/esm/events.utils-yMGqY8YG.js +26 -0
  141. package/dist/esm/events.utils-yMGqY8YG.js.map +1 -0
  142. package/dist/esm/index-CAuxALt5.js +4 -0
  143. package/dist/esm/{index-SQlkEaXW.js → index-DmsGewMC.js} +20 -6
  144. package/dist/esm/{index-SQlkEaXW.js.map → index-DmsGewMC.js.map} +1 -1
  145. package/dist/esm/index.es-rLV3KFPd.js +223 -0
  146. package/dist/esm/index.es-rLV3KFPd.js.map +1 -0
  147. package/dist/esm/loader.js +1 -1
  148. package/dist/esm/mg-action-more_37.entry.js +383 -374
  149. package/dist/esm/mg-action-more_37.entry.js.map +1 -1
  150. package/dist/esm/mg-alert.entry.js +7 -7
  151. package/dist/esm/mg-components.js +1 -1
  152. package/dist/esm/mg-input-combobox.entry.js +772 -0
  153. package/dist/esm/mg-input-combobox.entry.js.map +1 -0
  154. package/dist/esm/mg-input-rich-text-editor.entry.js +17 -15
  155. package/dist/esm/mg-input-rich-text-editor.entry.js.map +1 -1
  156. package/dist/esm/{mg-input.conf-BtkqaBXm.js → mg-input.conf-CNgv8hc5.js} +3 -3
  157. package/dist/esm/{mg-input.conf-BtkqaBXm.js.map → mg-input.conf-CNgv8hc5.js.map} +1 -1
  158. package/dist/esm/mg-loader.entry.js +5 -5
  159. package/dist/esm/mg-progress.entry.js +11 -11
  160. package/dist/mg-components/locales/en/messages.json +8 -1
  161. package/dist/mg-components/locales/fr/messages.json +8 -1
  162. package/dist/mg-components/mg-components.esm.js +1 -1
  163. package/dist/mg-components/mg-input-combobox.entry.esm.js.map +1 -0
  164. package/dist/mg-components/mg-input-rich-text-editor.entry.esm.js.map +1 -1
  165. package/dist/mg-components/p-0f761c6c.entry.js +2 -0
  166. package/dist/mg-components/p-0f761c6c.entry.js.map +1 -0
  167. package/dist/mg-components/{p-650d6986.entry.js → p-73099ed7.entry.js} +3 -3
  168. package/dist/mg-components/p-73099ed7.entry.js.map +1 -0
  169. package/dist/mg-components/p-88f77de2.entry.js +2 -0
  170. package/dist/mg-components/{p-680948e3.entry.js.map → p-88f77de2.entry.js.map} +1 -1
  171. package/dist/mg-components/p-CNgv8hc5.js +2 -0
  172. package/dist/mg-components/{p-BtkqaBXm.js.map → p-CNgv8hc5.js.map} +1 -1
  173. package/dist/mg-components/p-DK9teKTo.js +2 -0
  174. package/dist/mg-components/{p-CqGbLOnN.js.map → p-DK9teKTo.js.map} +1 -1
  175. package/dist/mg-components/{p-583b3769.entry.js → p-ad66e7b3.entry.js} +2 -2
  176. package/dist/mg-components/p-cdbe689e.entry.js +2 -0
  177. package/dist/mg-components/{p-9acc6504.entry.js.map → p-cdbe689e.entry.js.map} +1 -1
  178. package/dist/mg-components/p-d3a868f0.entry.js +2 -0
  179. package/dist/mg-components/p-d3a868f0.entry.js.map +1 -0
  180. package/dist/mg-components/p-rLV3KFPd.js +2 -0
  181. package/dist/mg-components/p-rLV3KFPd.js.map +1 -0
  182. package/dist/mg-components/p-yMGqY8YG.js +2 -0
  183. package/dist/mg-components/p-yMGqY8YG.js.map +1 -0
  184. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +6 -5
  185. package/dist/types/components/molecules/inputs/mg-input-combobox/mg-input-combobox.conf.d.ts +24 -0
  186. package/dist/types/components/molecules/inputs/mg-input-combobox/mg-input-combobox.d.ts +340 -0
  187. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +5 -9
  188. package/dist/types/components.d.ts +247 -2
  189. package/dist/types/utils/events.utils.d.ts +4 -0
  190. package/dist/types/utils/floating-ui.utils.d.ts +9 -1
  191. package/ide/intellij/web-types.json +400 -1
  192. package/ide/vscode/html-custom-data.json +332 -0
  193. package/package.json +12 -12
  194. package/dist/cjs/index.es-jXqiN1uw.js +0 -152
  195. package/dist/cjs/index.es-jXqiN1uw.js.map +0 -1
  196. package/dist/esm/index.es-DDBtzymI.js +0 -130
  197. package/dist/esm/index.es-DDBtzymI.js.map +0 -1
  198. package/dist/mg-components/p-650d6986.entry.js.map +0 -1
  199. package/dist/mg-components/p-680948e3.entry.js +0 -2
  200. package/dist/mg-components/p-9acc6504.entry.js +0 -2
  201. package/dist/mg-components/p-BtkqaBXm.js +0 -2
  202. package/dist/mg-components/p-CqGbLOnN.js +0 -2
  203. package/dist/mg-components/p-DDBtzymI.js +0 -2
  204. package/dist/mg-components/p-DDBtzymI.js.map +0 -1
  205. package/dist/mg-components/p-c0fb6f62.entry.js +0 -2
  206. package/dist/mg-components/p-c0fb6f62.entry.js.map +0 -1
  207. /package/dist/mg-components/{p-583b3769.entry.js.map → p-ad66e7b3.entry.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { x as xt, M as Mt, O as Ot, z as zt, L as Le, R as Rt, j as jt } from './index.es.js';
3
- import { b as autoUpdate, c as computePosition, o as offset, f as flip, d as shift, e as arrow, i as isFloatingUIPlacement, l as limitShift } from './floating-ui.utils.js';
2
+ import { P as Pt, X as Xt, U as Ut, G as Gt, D as De, B as Bt, c as Ht } from './index.es.js';
3
+ import { b as autoUpdate, c as computePosition, g as getTransformation, n as numberToPx, i as isFloatingUIPlacement, o as offset, f as flip, d as shift, e as arrow, l as limitShift } from './floating-ui.utils.js';
4
4
  import { d as defineCustomElement$1 } from './mg-tooltip-content2.js';
5
5
 
6
6
  const Guard = {
@@ -27,7 +27,7 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
27
27
  * Sets an `id` attribute.
28
28
  * Needed by the input for accessibility `aria-decribedby`.
29
29
  */
30
- this.identifier = xt('mg-tooltip');
30
+ this.identifier = Pt('mg-tooltip');
31
31
  /**
32
32
  * Tooltip placement
33
33
  */
@@ -47,12 +47,13 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
47
47
  // Make the tooltip visible
48
48
  this.mgTooltipContent.dataset.show = '';
49
49
  // hide when click outside on nextTick to prevent event to trigger after creation
50
- Mt(() => {
50
+ Xt(() => {
51
51
  this.windows.forEach((localWindow) => {
52
52
  localWindow.addEventListener('click', this.handleClickOutside, false);
53
53
  localWindow.addEventListener('keydown', this.handlePressEscape, false);
54
54
  });
55
55
  });
56
+ this.updateTooltip();
56
57
  };
57
58
  /**
58
59
  * Hide tooltip
@@ -90,8 +91,9 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
90
91
  * @param condition - additionnal condition to apply display prop newValue
91
92
  */
92
93
  this.setDisplay = (newValue, condition = true) => {
93
- if (!this.disabled && condition)
94
+ if (!this.disabled && condition && this.display !== newValue) {
94
95
  this.display = newValue;
96
+ }
95
97
  };
96
98
  /**
97
99
  * Action for tooltip element and tooltiped element mouse listener
@@ -149,52 +151,43 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
149
151
  }
150
152
  };
151
153
  /**
152
- * Set Floating UI instance
153
- * @param strategy - Floating UI strategy to apply on instance
154
+ * Update tooltip position
155
+ * @returns autoUpdate function
154
156
  */
155
- this.setFloatingUI = (strategy) => {
156
- // Initial styles configuration
157
+ this.updateTooltip = () => autoUpdate(this.tooltipedElement, this.mgTooltipContent, async () => {
158
+ // Placement
159
+ const { x, y, placement, middlewareData } = await computePosition(this.tooltipedElement, this.mgTooltipContent, {
160
+ placement: this.placement,
161
+ strategy: this.tooltipStrategy,
162
+ middleware: [
163
+ offset(8),
164
+ flip(),
165
+ shift({
166
+ limiter: limitShift(),
167
+ }),
168
+ arrow({ element: this.arrowElement }),
169
+ ],
170
+ });
171
+ // Positioning
157
172
  Object.assign(this.mgTooltipContent.style, {
158
- position: strategy,
159
- top: '0',
160
- left: '0',
161
- transform: 'translate(0, 0)',
173
+ position: this.tooltipStrategy,
174
+ transform: getTransformation(x, y),
162
175
  });
163
- // Create Floating UI instance with autoUpdate
164
- this.floatingUICleanup = autoUpdate(this.tooltipedElement, this.mgTooltipContent, () => {
165
- computePosition(this.tooltipedElement, this.mgTooltipContent, {
166
- placement: this.placement,
167
- strategy,
168
- middleware: [offset(8), flip(), shift({ limiter: limitShift() }), arrow({ element: this.mgTooltipContent.querySelector('[data-floating-arrow]') })],
169
- }).then(({ x, y, placement, middlewareData }) => {
170
- Object.assign(this.mgTooltipContent.style, {
171
- transform: !isNaN(x) && !isNaN(y) ? `translate(${x}px, ${y}px)` : undefined,
172
- });
173
- // Update arrow style
174
- const { x: arrowX, y: arrowY } = middlewareData.arrow;
175
- const staticSide = {
176
- top: 'bottom',
177
- right: 'left',
178
- bottom: 'top',
179
- left: 'right',
180
- }[placement.split('-')[0]];
181
- const arrowElement = this.mgTooltipContent.querySelector('[data-floating-arrow]');
182
- // https://floating-ui.com/docs/arrow
183
- // Unlike the floating element, which has both coordinates defined at all times, the arrow only has one defined.
184
- // Due to this, either x or y will be undefined, depending on the side of placement.
185
- // The above code uses `isNaN` to check for null and undefined simultaneously.
186
- // Don’t remove `isNaN`, because either value can be falsy (0), causing a bug!
187
- const numberToPx = (number) => (!isNaN(number) ? `${number}px` : '');
188
- Object.assign(arrowElement.style, {
189
- left: numberToPx(arrowX),
190
- top: numberToPx(arrowY),
191
- [staticSide]: '-4px',
192
- position: 'absolute',
193
- });
194
- this.mgTooltipContent.setAttribute('data-placement', placement);
195
- });
176
+ // Arrow positioning
177
+ const { x: arrowX, y: arrowY } = middlewareData.arrow;
178
+ const staticSide = {
179
+ top: 'bottom',
180
+ right: 'left',
181
+ bottom: 'top',
182
+ left: 'right',
183
+ }[placement.split('-')[0]];
184
+ Object.assign(this.arrowElement.style, {
185
+ left: numberToPx(arrowX),
186
+ top: numberToPx(arrowY),
187
+ [staticSide]: '-4px',
196
188
  });
197
- };
189
+ this.mgTooltipContent.setAttribute('data-placement', placement);
190
+ });
198
191
  /**
199
192
  * Define selected element to become tooltip selector and init listeners
200
193
  * @param element - tooltiped element
@@ -236,18 +229,15 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
236
229
  // set guard when one of mutations is for a disabled with disabled-on-click
237
230
  if (mutationList.some((mutation) => mutation.target.disabled && mutation.target.disableOnClick)) {
238
231
  this.guard = Guard.DISABLE_ON_CLICK;
239
- }
240
- // when the disabled-on-click guard is running we stop process
241
- if (this.guard === Guard.DISABLE_ON_CLICK)
242
232
  return;
233
+ }
243
234
  // update button wrapper
244
235
  this.setMgButtonWrapper(mgButton);
245
236
  // Since Firefox doesn't trigger a "blur" event when the "disabled" attribute is added or removed from a button
246
237
  // we have to manually unlock the guard because the "blur" handler of the tooltipedElement won't do it.
247
238
  this.resetGuard();
248
239
  // update Floating UI instance
249
- this.floatingUICleanup();
250
- this.setFloatingUI(this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed');
240
+ this.updateTooltip();
251
241
  }).observe(mgButton, { attributes: true });
252
242
  };
253
243
  /**
@@ -266,15 +256,15 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
266
256
  };
267
257
  }
268
258
  watchIdentifier(newValue) {
269
- if (!Ot(newValue)) {
270
- throw new Error(`<mg-tooltip> prop "identifier" value is invalid. Passed value: ${zt(newValue)}.`);
259
+ if (!Ut(newValue)) {
260
+ throw new Error(`<mg-tooltip> prop "identifier" value is invalid. Passed value: ${Gt(newValue)}.`);
271
261
  }
272
262
  // use renderTooltipContent to update tooltip-content id
273
263
  this.renderTooltipContent();
274
264
  }
275
265
  watchMessage(newValue) {
276
- if (!Le(newValue)) {
277
- throw new Error(`<mg-tooltip> prop "message" is required and must be a string. Passed value: ${zt(newValue)}.`);
266
+ if (!De(newValue)) {
267
+ throw new Error(`<mg-tooltip> prop "message" is required and must be a string. Passed value: ${Gt(newValue)}.`);
278
268
  }
279
269
  if (this.mgTooltipContent !== undefined)
280
270
  this.mgTooltipContent.message = newValue;
@@ -333,7 +323,7 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
333
323
  */
334
324
  componentWillLoad() {
335
325
  // Get windows to attach events
336
- this.windows = Rt(window);
326
+ this.windows = Bt(window);
337
327
  // Get tooltip element
338
328
  this.renderTooltipContent();
339
329
  //validate properties
@@ -341,6 +331,8 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
341
331
  this.watchDisabled(this.disabled);
342
332
  this.watchMessage(this.message);
343
333
  this.watchIdentifier(this.identifier);
334
+ // define if the tooltip is inside a popover
335
+ this.tooltipStrategy = this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed';
344
336
  }
345
337
  /**
346
338
  * Get slotted element
@@ -352,8 +344,10 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
352
344
  // get slotted element wich is not the tooltip
353
345
  const slotElement = this.element.querySelector(`*:not(#${this.identifier})`);
354
346
  // Get interactive element
355
- const interactiveElement = slotElement.matches(jt) ? slotElement : (_a = slotElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(jt);
347
+ const interactiveElement = slotElement.matches(Ht) ? slotElement : (_a = slotElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(Ht);
356
348
  this.setTooltipedElement(interactiveElement || slotElement);
349
+ // Set arrow element
350
+ this.arrowElement = this.mgTooltipContent.querySelector('[data-floating-arrow]');
357
351
  // Check if slotted element is a disabled mg-button
358
352
  // In this case we wrap the mg-button into a div to enable the tooltip
359
353
  if (isButton(slotElement)) {
@@ -369,8 +363,6 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
369
363
  }
370
364
  // apply a11y aria
371
365
  this.setAriaDescribedby(slotElement);
372
- // set Tooltip
373
- this.setFloatingUI(this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed');
374
366
  // add document keyboard handler
375
367
  document.addEventListener('keydown', this.handlePressEscape);
376
368
  // check props
@@ -380,28 +372,26 @@ const MgTooltip = /*@__PURE__*/ proxyCustomElement(class MgTooltip extends HTMLE
380
372
  * update popper position after props change on component did update hook to benefit from render ended
381
373
  */
382
374
  componentDidUpdate() {
383
- this.floatingUICleanup();
384
- this.setFloatingUI(this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed');
375
+ this.updateTooltip();
385
376
  }
386
377
  /**
387
378
  * remove listeners
388
379
  */
389
380
  disconnectedCallback() {
390
- var _a;
381
+ var _a, _b;
391
382
  document.removeEventListener('keydown', this.handlePressEscape);
392
383
  (_a = this.windows) === null || _a === void 0 ? void 0 : _a.forEach((localWindow) => {
393
384
  localWindow.removeEventListener('click', this.handleClickOutside, false);
394
385
  localWindow.removeEventListener('keydown', this.handlePressEscape, false);
395
386
  });
396
- // cleanup Floating UI
397
- this.floatingUICleanup();
387
+ (_b = this.updateTooltip) === null || _b === void 0 ? void 0 : _b.call(this);
398
388
  }
399
389
  /**
400
390
  * Render
401
391
  * @returns HTML Element
402
392
  */
403
393
  render() {
404
- return (h(Host, { key: '31d97272cfd3448abf9ed9cda62fdec0a356d422' }, h("slot", { key: '8fbf8343471f53591caacc3ff4c4b8aaf4577c4f' }), h("slot", { key: '6f4eab4c33e9ec07e0fe7ffa63de4921f4b27e0c', name: "content" })));
394
+ return (h(Host, { key: 'dab470c730b1541ab5be487222da8ba3643501ae' }, h("slot", { key: 'a6f5d444e3521d93cf9f39ccffcd68cfde4f8101' }), h("slot", { key: 'ba4d98f953453a710379cb4ce28f1c468a34ffc4', name: "content" })));
405
395
  }
406
396
  get element() { return this; }
407
397
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"mg-tooltip2.js","mappings":"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","names":["__stencil_proxyCustomElement","createID","nextTick","isValideID","toString","isValidString","getWindows","focusableElements"],"sources":["src/components/atoms/mg-tooltip/mg-tooltip.conf.tsx","../styles/dist/components/mg-tooltip.css?tag=mg-tooltip&encapsulation=shadow","src/components/atoms/mg-tooltip/mg-tooltip.tsx"],"sourcesContent":["import { type ExtendedPlacement, placements } from '../../../utils/floating-ui.utils';\nexport * from '../../../utils/floating-ui.utils';\n\nexport type GuardType = 'focus' | 'hoverTooltip' | 'hoverTooltiped' | 'disableOnClick';\n\nexport const Guard: Record<string, GuardType> = {\n FOCUS: 'focus',\n HOVER_TOOLTIP_ELEMENT: 'hoverTooltip',\n HOVER_TOOLTIPED_ELEMENT: 'hoverTooltiped',\n DISABLE_ON_CLICK: 'disableOnClick',\n};\n\n/**\n * Placement type from placements\n */\nexport type TooltipPlacementType = ExtendedPlacement & (typeof placements)[number];\n","/*!\n * @prop --mg-c-tooltip-border-radius: Defines the border radius of the tooltip. Default value: `--mg-b-size-radius`.\n * @prop --mg-c-tooltip-color-background: Defines the background color of the tooltip. Default value: `--mg-b-color-dark`.\n * @prop --mg-c-tooltip-color-text: Defines the font color of the tooltip. Default value: `--mg-b-color-light`.\n */:host{display:inline-block}/*# sourceMappingURL=mg-tooltip.css.map */\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\nimport { createID, focusableElements, getWindows, isValideID, isValidString, nextTick, toString } from '@mgdis/stencil-helpers';\nimport { computePosition, autoUpdate, flip, shift, limitShift, offset, arrow, type Strategy, type Placement } from '@floating-ui/dom';\nimport { type GuardType, Guard, type TooltipPlacementType, isFloatingUIPlacement } from './mg-tooltip.conf';\n\n/**\n * HTMLMgButtonElement type guard\n * @param element - element to check\n * @returns return true if type is HTMLMgButtonElement\n */\nconst isButton = (element: unknown): element is HTMLMgButtonElement => typeof element === 'object' && ['MG-BUTTON', 'BUTTON'].includes((element as Element).tagName);\n\n/**\n * @slot - Element that will display the tooltip\n */\n@Component({\n tag: 'mg-tooltip',\n styleUrl: '../../../../node_modules/@mgdis/styles/dist/components/mg-tooltip.css',\n shadow: true,\n})\nexport class MgTooltip {\n /************\n * Internal *\n ************/\n\n private floatingUICleanup: ReturnType<typeof autoUpdate>;\n private mgTooltipContent: HTMLMgTooltipContentElement;\n private tooltipedElement: HTMLElement;\n private windows: Window[];\n private hasCustomTabIndex: boolean;\n\n // tooltip actions guards\n private guard: GuardType;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgTooltipElement;\n\n /**\n * Sets an `id` attribute.\n * Needed by the input for accessibility `aria-decribedby`.\n */\n @Prop() identifier: string = createID('mg-tooltip');\n @Watch('identifier')\n watchIdentifier(newValue: MgTooltip['identifier']): void {\n if (!isValideID(newValue)) {\n throw new Error(`<mg-tooltip> prop \"identifier\" value is invalid. Passed value: ${toString(newValue)}.`);\n }\n // use renderTooltipContent to update tooltip-content id\n this.renderTooltipContent();\n }\n\n /**\n * Displayed message in the tooltip\n */\n @Prop() message!: string;\n @Watch('message')\n watchMessage(newValue: MgTooltip['message']): void {\n if (!isValidString(newValue)) {\n throw new Error(`<mg-tooltip> prop \"message\" is required and must be a string. Passed value: ${toString(newValue)}.`);\n }\n if (this.mgTooltipContent !== undefined) this.mgTooltipContent.message = newValue;\n }\n\n /**\n * Tooltip placement\n */\n @Prop({ mutable: true }) placement: TooltipPlacementType = 'bottom';\n @Watch('placement')\n watchPlacement(newValue): void {\n if (!isFloatingUIPlacement(newValue)) this.placement = 'bottom';\n }\n\n /**\n * Display tooltip\n */\n @Prop({ mutable: true }) display = false;\n @Watch('display')\n watchDisplay(newValue: MgTooltip['display']): void {\n if (newValue) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Disable tooltip\n */\n @Prop() disabled = false;\n @Watch('disabled')\n watchDisabled(newValue: MgTooltip['disabled']): void {\n if (this.hasCustomTabIndex) {\n if (newValue) this.tooltipedElement.removeAttribute('tabindex');\n else if (!this.tooltipedElement.hasAttribute('tabindex')) this.tooltipedElement.setAttribute('tabindex', '0');\n }\n }\n\n /**\n * Show tooltip\n */\n private show = (): void => {\n // Make the tooltip visible\n this.mgTooltipContent.dataset.show = '';\n // hide when click outside on nextTick to prevent event to trigger after creation\n nextTick(() => {\n this.windows.forEach((localWindow: Window) => {\n localWindow.addEventListener('click', this.handleClickOutside, false);\n localWindow.addEventListener('keydown', this.handlePressEscape, false);\n });\n });\n };\n\n /**\n * Hide tooltip\n */\n private hide = (): void => {\n // Hide the tooltip\n this.mgTooltipContent.removeAttribute('data-show');\n // Remove event listener\n this.windows.forEach((localWindow: Window) => {\n localWindow.removeEventListener('click', this.handleClickOutside, false);\n localWindow.removeEventListener('keyboard', this.handlePressEscape, false);\n });\n };\n\n /**\n * Check if clicked outside of component and hide tooltip\n * @param event - mouse event\n */\n private handleClickOutside = (event: MouseEvent & { target: HTMLElement }): void => {\n if (event.target.closest('mg-tooltip') !== this.element) this.setDisplay(false);\n };\n\n /**\n * Check if 'Escape' key is pressed of component and hide tooltip\n * @param event - keyboard event\n */\n private handlePressEscape = (event: KeyboardEvent): void => {\n if (event.code === 'Escape') {\n this.setDisplay(false);\n this.resetGuard();\n }\n };\n\n /**\n * Method to set display prop\n * @param newValue - display prop new value\n * @param condition - additionnal condition to apply display prop newValue\n */\n private setDisplay = (newValue: MgTooltip['display'], condition = true): void => {\n if (!this.disabled && condition) this.display = newValue;\n };\n\n /**\n * Action for tooltip element and tooltiped element mouse listener\n * @param elementGuard - tooltip element guard\n * @param eventName - event name\n * @param conditionalGuard - guard condition\n */\n private tooltipMouseListenerAction = (elementGuard: GuardType, eventName: 'mouseenter' | 'mouseleave', conditionalGuard: GuardType): void => {\n // active FOCUS guard cancel process\n if ([Guard.FOCUS, Guard.DISABLE_ON_CLICK].includes(this.guard)) {\n return;\n }\n\n // Update guard by element guard\n this.guard = elementGuard;\n\n if (eventName !== 'mouseenter') {\n // process action in the next event loop macro task\n setTimeout(() => {\n this.setDisplay(false, this.guard !== conditionalGuard);\n this.resetGuard();\n }, 100);\n } else if (this.guard === Guard.HOVER_TOOLTIPED_ELEMENT) {\n this.setDisplay(true);\n }\n };\n\n /**\n * Method to reset guard value\n */\n private resetGuard = (): void => {\n this.guard = undefined;\n };\n\n /**\n * Update slot content when it is a mg-button\n * @param mgButton - slotted mg-button\n */\n private setMgButtonWrapper = (mgButton: HTMLMgButtonElement): void => {\n const buttonWrapperClass = 'mg-c-tooltip__mg-button-wrapper';\n const hasButtonWrapper = mgButton.parentElement.classList.contains(buttonWrapperClass);\n // For disabled mg-button, we need to wrap it in a new element\n // We bind handlers to this new element to keep listener features as workaround to disabled mg-button `pointer-events: none`\n // AND to prevent multiple nested wrappers from rendering when a new render is called with a disabled mg-button\n if (mgButton.disabled && !hasButtonWrapper) {\n // wrap mg-button in a div\n const div = document.createElement('div');\n div.classList.add(buttonWrapperClass);\n mgButton.parentNode.insertBefore(div, mgButton);\n div.appendChild(mgButton);\n\n // update tooltipElement\n this.setTooltipedElement(div);\n } else if (!mgButton.disabled && hasButtonWrapper) {\n this.element.firstElementChild.replaceWith(mgButton);\n\n // update tooltipElement\n this.setTooltipedElement(mgButton);\n }\n };\n\n /**\n * Set Floating UI instance\n * @param strategy - Floating UI strategy to apply on instance\n */\n private setFloatingUI = (strategy: Strategy): void => {\n // Initial styles configuration\n Object.assign(this.mgTooltipContent.style, {\n position: strategy,\n top: '0',\n left: '0',\n transform: 'translate(0, 0)',\n });\n\n // Create Floating UI instance with autoUpdate\n this.floatingUICleanup = autoUpdate(this.tooltipedElement, this.mgTooltipContent, () => {\n computePosition(this.tooltipedElement, this.mgTooltipContent, {\n placement: this.placement as Placement,\n strategy,\n middleware: [offset(8), flip(), shift({ limiter: limitShift() }), arrow({ element: this.mgTooltipContent.querySelector('[data-floating-arrow]') })],\n }).then(({ x, y, placement, middlewareData }) => {\n Object.assign(this.mgTooltipContent.style, {\n transform: !isNaN(x) && !isNaN(y) ? `translate(${x}px, ${y}px)` : undefined,\n });\n\n // Update arrow style\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n const arrowElement: HTMLElement = this.mgTooltipContent.querySelector('[data-floating-arrow]');\n // https://floating-ui.com/docs/arrow\n // Unlike the floating element, which has both coordinates defined at all times, the arrow only has one defined.\n // Due to this, either x or y will be undefined, depending on the side of placement.\n // The above code uses `isNaN` to check for null and undefined simultaneously.\n // Don’t remove `isNaN`, because either value can be falsy (0), causing a bug!\n const numberToPx = (number: number): string => (!isNaN(number) ? `${number}px` : '');\n\n Object.assign(arrowElement.style, {\n left: numberToPx(arrowX),\n top: numberToPx(arrowY),\n [staticSide]: '-4px',\n position: 'absolute',\n });\n\n this.mgTooltipContent.setAttribute('data-placement', placement);\n });\n });\n };\n\n /**\n * Define selected element to become tooltip selector and init listeners\n * @param element - tooltiped element\n */\n private setTooltipedElement = (element: HTMLElement): void => {\n this.tooltipedElement = element;\n\n // Manage tooltipedElement focus events\n this.tooltipedElement.addEventListener('focus', () => {\n this.guard = Guard.FOCUS;\n this.setDisplay(true);\n });\n\n // as `click` event is the composition of `mousedown` and `mouseup` event,\n // and `click` event trigger `focus` event after a success `mousedown` wich set the `guard` to `Guard.FOCUS`\n // we reset the guard on `mouseup` event to unlock tooltip\n this.tooltipedElement.addEventListener('mouseup', () => {\n this.resetGuard();\n });\n\n this.tooltipedElement.addEventListener('blur', () => {\n this.resetGuard();\n this.setDisplay(false);\n });\n\n // manage tooltipElement & tooltipedElement mouseenter/mouseleave events\n this.tooltipedElement.addEventListener('mouseenter', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIPED_ELEMENT, 'mouseenter', Guard.HOVER_TOOLTIP_ELEMENT);\n });\n\n this.tooltipedElement.addEventListener('mouseleave', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIPED_ELEMENT, 'mouseleave', Guard.HOVER_TOOLTIP_ELEMENT);\n });\n };\n\n /**\n * Set button mutation observer\n * @param mgButton - mg-button to observe\n */\n private setMgButtonMutationObserver = (mgButton: HTMLMgButtonElement): void => {\n new MutationObserver(mutationList => {\n // stop process when none of mutations attributed is disabled\n if (!mutationList.some(mutation => ['aria-disabled', 'disabled'].includes(mutation.attributeName))) return;\n\n // set guard when one of mutations is for a disabled with disabled-on-click\n if (mutationList.some((mutation: MutationRecord & { target: HTMLMgButtonElement }) => mutation.target.disabled && mutation.target.disableOnClick)) {\n this.guard = Guard.DISABLE_ON_CLICK;\n }\n\n // when the disabled-on-click guard is running we stop process\n if (this.guard === Guard.DISABLE_ON_CLICK) return;\n\n // update button wrapper\n this.setMgButtonWrapper(mgButton);\n\n // Since Firefox doesn't trigger a \"blur\" event when the \"disabled\" attribute is added or removed from a button\n // we have to manually unlock the guard because the \"blur\" handler of the tooltipedElement won't do it.\n this.resetGuard();\n\n // update Floating UI instance\n this.floatingUICleanup();\n this.setFloatingUI(this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed');\n }).observe(mgButton, { attributes: true });\n };\n\n /**\n * Set tooltiped element aria-describedby\n * @param element - element to update\n */\n private setAriaDescribedby = (element: HTMLElement): void => {\n // Set aria-describedby\n if (!element.hasAttribute('aria-describedby')) {\n this.tooltipedElement.setAttribute('aria-describedby', this.identifier);\n } else {\n // We ensure to have uniq ids\n element.setAttribute('aria-describedby', `${[...new Set([...element.getAttribute('aria-describedby').split(' '), this.identifier])].join(' ')}`);\n }\n };\n\n /**\n * Render tooltip content element and init listeners\n */\n private renderTooltipContent(): void {\n if (this.mgTooltipContent !== undefined) {\n this.mgTooltipContent.setAttribute('id', this.identifier);\n } else {\n this.mgTooltipContent = document.createElement('mg-tooltip-content');\n this.mgTooltipContent.setAttribute('slot', 'content');\n this.mgTooltipContent.setAttribute('id', this.identifier);\n\n const arrow = document.createElement('div');\n arrow.setAttribute('slot', 'arrow');\n arrow.dataset.floatingArrow = '';\n this.mgTooltipContent.appendChild(arrow);\n\n // manage tooltipElement & tooltipedElement mouseenter/mouseleave events\n this.mgTooltipContent.addEventListener('mouseenter', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIP_ELEMENT, 'mouseenter', Guard.HOVER_TOOLTIPED_ELEMENT);\n });\n this.mgTooltipContent.addEventListener('mouseleave', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIP_ELEMENT, 'mouseleave', Guard.HOVER_TOOLTIPED_ELEMENT);\n });\n\n // append tooltip element to component\n this.element.appendChild(this.mgTooltipContent);\n }\n }\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * set variables\n */\n componentWillLoad(): void {\n // Get windows to attach events\n this.windows = getWindows(window);\n\n // Get tooltip element\n this.renderTooltipContent();\n\n //validate properties\n this.watchPlacement(this.placement);\n this.watchDisabled(this.disabled);\n this.watchMessage(this.message);\n this.watchIdentifier(this.identifier);\n }\n\n /**\n * Get slotted element\n * Check if it already contain an interactive element, if not we need to add a tabIndex attribute\n * We need to attach the focused element to the tooltip (aria-describedby)\n */\n componentDidLoad(): void {\n // get slotted element wich is not the tooltip\n const slotElement: HTMLElement = this.element.querySelector(`*:not(#${this.identifier})`);\n\n // Get interactive element\n const interactiveElement: HTMLElement = slotElement.matches(focusableElements) ? slotElement : slotElement.shadowRoot?.querySelector(focusableElements);\n\n this.setTooltipedElement(interactiveElement || slotElement);\n\n // Check if slotted element is a disabled mg-button\n // In this case we wrap the mg-button into a div to enable the tooltip\n if (isButton(slotElement)) {\n this.setMgButtonMutationObserver(slotElement);\n this.setMgButtonWrapper(slotElement);\n }\n\n // Add tabindex to slotted element if we can't find any interactive element\n if (!this.disabled && [undefined, null].includes(interactiveElement)) {\n this.hasCustomTabIndex = true;\n slotElement.tabIndex = 0;\n // Add role on non-interactive element to work with \"aria-describedby\" for screen readers\n slotElement.setAttribute('role', 'button');\n }\n\n // apply a11y aria\n this.setAriaDescribedby(slotElement);\n\n // set Tooltip\n this.setFloatingUI(this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed');\n\n // add document keyboard handler\n document.addEventListener('keydown', this.handlePressEscape);\n\n // check props\n this.watchDisplay(this.display);\n }\n\n /**\n * update popper position after props change on component did update hook to benefit from render ended\n */\n componentDidUpdate(): void {\n this.floatingUICleanup();\n this.setFloatingUI(this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed');\n }\n\n /**\n * remove listeners\n */\n disconnectedCallback(): void {\n document.removeEventListener('keydown', this.handlePressEscape);\n this.windows?.forEach((localWindow: Window) => {\n localWindow.removeEventListener('click', this.handleClickOutside, false);\n localWindow.removeEventListener('keydown', this.handlePressEscape, false);\n });\n // cleanup Floating UI\n this.floatingUICleanup();\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <Host>\n <slot></slot>\n <slot name=\"content\"></slot>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"mg-tooltip2.js","mappings":"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","names":["__stencil_proxyCustomElement","createID","nextTick","isValideID","toString","isValidString","getWindows","focusableElements"],"sources":["src/components/atoms/mg-tooltip/mg-tooltip.conf.tsx","../styles/dist/components/mg-tooltip.css?tag=mg-tooltip&encapsulation=shadow","src/components/atoms/mg-tooltip/mg-tooltip.tsx"],"sourcesContent":["import { type ExtendedPlacement, placements } from '../../../utils/floating-ui.utils';\nexport * from '../../../utils/floating-ui.utils';\n\nexport type GuardType = 'focus' | 'hoverTooltip' | 'hoverTooltiped' | 'disableOnClick';\n\nexport const Guard: Record<string, GuardType> = {\n FOCUS: 'focus',\n HOVER_TOOLTIP_ELEMENT: 'hoverTooltip',\n HOVER_TOOLTIPED_ELEMENT: 'hoverTooltiped',\n DISABLE_ON_CLICK: 'disableOnClick',\n};\n\n/**\n * Placement type from placements\n */\nexport type TooltipPlacementType = ExtendedPlacement & (typeof placements)[number];\n","/*!\n * @prop --mg-c-tooltip-border-radius: Defines the border radius of the tooltip. Default value: `--mg-b-size-radius`.\n * @prop --mg-c-tooltip-color-background: Defines the background color of the tooltip. Default value: `--mg-b-color-dark`.\n * @prop --mg-c-tooltip-color-text: Defines the font color of the tooltip. Default value: `--mg-b-color-light`.\n */:host{display:inline-block}/*# sourceMappingURL=mg-tooltip.css.map */\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\nimport { createID, focusableElements, getWindows, isValideID, isValidString, nextTick, toString } from '@mgdis/stencil-helpers';\nimport { computePosition, autoUpdate, flip, shift, limitShift, offset, arrow, type Strategy, type Placement } from '@floating-ui/dom';\nimport { type GuardType, Guard, type TooltipPlacementType, isFloatingUIPlacement, getTransformation, numberToPx } from './mg-tooltip.conf';\n\n/**\n * HTMLMgButtonElement type guard\n * @param element - element to check\n * @returns return true if type is HTMLMgButtonElement\n */\nconst isButton = (element: unknown): element is HTMLMgButtonElement => typeof element === 'object' && ['MG-BUTTON', 'BUTTON'].includes((element as Element).tagName);\n\n/**\n * @slot - Element that will display the tooltip\n */\n@Component({\n tag: 'mg-tooltip',\n styleUrl: '../../../../node_modules/@mgdis/styles/dist/components/mg-tooltip.css',\n shadow: true,\n})\nexport class MgTooltip {\n /************\n * Internal *\n ************/\n\n private mgTooltipContent: HTMLMgTooltipContentElement;\n private tooltipedElement: HTMLElement;\n private arrowElement: HTMLElement;\n private windows: Window[];\n private hasCustomTabIndex: boolean;\n private tooltipStrategy: Strategy;\n\n // tooltip actions guards\n private guard: GuardType;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgTooltipElement;\n\n /**\n * Sets an `id` attribute.\n * Needed by the input for accessibility `aria-decribedby`.\n */\n @Prop() identifier: string = createID('mg-tooltip');\n @Watch('identifier')\n watchIdentifier(newValue: MgTooltip['identifier']): void {\n if (!isValideID(newValue)) {\n throw new Error(`<mg-tooltip> prop \"identifier\" value is invalid. Passed value: ${toString(newValue)}.`);\n }\n // use renderTooltipContent to update tooltip-content id\n this.renderTooltipContent();\n }\n\n /**\n * Displayed message in the tooltip\n */\n @Prop() message!: string;\n @Watch('message')\n watchMessage(newValue: MgTooltip['message']): void {\n if (!isValidString(newValue)) {\n throw new Error(`<mg-tooltip> prop \"message\" is required and must be a string. Passed value: ${toString(newValue)}.`);\n }\n if (this.mgTooltipContent !== undefined) this.mgTooltipContent.message = newValue;\n }\n\n /**\n * Tooltip placement\n */\n @Prop({ mutable: true }) placement: TooltipPlacementType = 'bottom';\n @Watch('placement')\n watchPlacement(newValue: TooltipPlacementType): void {\n if (!isFloatingUIPlacement(newValue)) this.placement = 'bottom';\n }\n\n /**\n * Display tooltip\n */\n @Prop({ mutable: true }) display = false;\n @Watch('display')\n watchDisplay(newValue: MgTooltip['display']): void {\n if (newValue) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Disable tooltip\n */\n @Prop() disabled = false;\n @Watch('disabled')\n watchDisabled(newValue: MgTooltip['disabled']): void {\n if (this.hasCustomTabIndex) {\n if (newValue) this.tooltipedElement.removeAttribute('tabindex');\n else if (!this.tooltipedElement.hasAttribute('tabindex')) this.tooltipedElement.setAttribute('tabindex', '0');\n }\n }\n\n /**\n * Show tooltip\n */\n private show = (): void => {\n // Make the tooltip visible\n this.mgTooltipContent.dataset.show = '';\n // hide when click outside on nextTick to prevent event to trigger after creation\n nextTick(() => {\n this.windows.forEach((localWindow: Window) => {\n localWindow.addEventListener('click', this.handleClickOutside, false);\n localWindow.addEventListener('keydown', this.handlePressEscape, false);\n });\n });\n this.updateTooltip();\n };\n\n /**\n * Hide tooltip\n */\n private hide = (): void => {\n // Hide the tooltip\n this.mgTooltipContent.removeAttribute('data-show');\n // Remove event listener\n this.windows.forEach((localWindow: Window) => {\n localWindow.removeEventListener('click', this.handleClickOutside, false);\n localWindow.removeEventListener('keyboard', this.handlePressEscape, false);\n });\n };\n\n /**\n * Check if clicked outside of component and hide tooltip\n * @param event - mouse event\n */\n private handleClickOutside = (event: MouseEvent & { target: HTMLElement }): void => {\n if (event.target.closest('mg-tooltip') !== this.element) this.setDisplay(false);\n };\n\n /**\n * Check if 'Escape' key is pressed of component and hide tooltip\n * @param event - keyboard event\n */\n private handlePressEscape = (event: KeyboardEvent): void => {\n if (event.code === 'Escape') {\n this.setDisplay(false);\n this.resetGuard();\n }\n };\n\n /**\n * Method to set display prop\n * @param newValue - display prop new value\n * @param condition - additionnal condition to apply display prop newValue\n */\n private setDisplay = (newValue: MgTooltip['display'], condition = true): void => {\n if (!this.disabled && condition && this.display !== newValue) {\n this.display = newValue;\n }\n };\n\n /**\n * Action for tooltip element and tooltiped element mouse listener\n * @param elementGuard - tooltip element guard\n * @param eventName - event name\n * @param conditionalGuard - guard condition\n */\n private tooltipMouseListenerAction = (elementGuard: GuardType, eventName: 'mouseenter' | 'mouseleave', conditionalGuard: GuardType): void => {\n // active FOCUS guard cancel process\n if ([Guard.FOCUS, Guard.DISABLE_ON_CLICK].includes(this.guard)) {\n return;\n }\n\n // Update guard by element guard\n this.guard = elementGuard;\n\n if (eventName !== 'mouseenter') {\n // process action in the next event loop macro task\n setTimeout(() => {\n this.setDisplay(false, this.guard !== conditionalGuard);\n this.resetGuard();\n }, 100);\n } else if (this.guard === Guard.HOVER_TOOLTIPED_ELEMENT) {\n this.setDisplay(true);\n }\n };\n\n /**\n * Method to reset guard value\n */\n private resetGuard = (): void => {\n this.guard = undefined;\n };\n\n /**\n * Update slot content when it is a mg-button\n * @param mgButton - slotted mg-button\n */\n private setMgButtonWrapper = (mgButton: HTMLMgButtonElement): void => {\n const buttonWrapperClass = 'mg-c-tooltip__mg-button-wrapper';\n const hasButtonWrapper = mgButton.parentElement.classList.contains(buttonWrapperClass);\n // For disabled mg-button, we need to wrap it in a new element\n // We bind handlers to this new element to keep listener features as workaround to disabled mg-button `pointer-events: none`\n // AND to prevent multiple nested wrappers from rendering when a new render is called with a disabled mg-button\n if (mgButton.disabled && !hasButtonWrapper) {\n // wrap mg-button in a div\n const div = document.createElement('div');\n div.classList.add(buttonWrapperClass);\n mgButton.parentNode.insertBefore(div, mgButton);\n div.appendChild(mgButton);\n\n // update tooltipElement\n this.setTooltipedElement(div);\n } else if (!mgButton.disabled && hasButtonWrapper) {\n this.element.firstElementChild.replaceWith(mgButton);\n\n // update tooltipElement\n this.setTooltipedElement(mgButton);\n }\n };\n\n /**\n * Update tooltip position\n * @returns autoUpdate function\n */\n private updateTooltip = () =>\n autoUpdate(this.tooltipedElement, this.mgTooltipContent, async () => {\n // Placement\n const { x, y, placement, middlewareData } = await computePosition(this.tooltipedElement, this.mgTooltipContent, {\n placement: this.placement as Placement,\n strategy: this.tooltipStrategy,\n middleware: [\n offset(8),\n flip(),\n shift({\n limiter: limitShift(),\n }),\n arrow({ element: this.arrowElement }),\n ],\n });\n\n // Positioning\n Object.assign(this.mgTooltipContent.style, {\n position: this.tooltipStrategy,\n transform: getTransformation(x, y),\n });\n\n // Arrow positioning\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]];\n\n Object.assign(this.arrowElement.style, {\n left: numberToPx(arrowX),\n top: numberToPx(arrowY),\n [staticSide]: '-4px',\n });\n\n this.mgTooltipContent.setAttribute('data-placement', placement);\n });\n\n /**\n * Define selected element to become tooltip selector and init listeners\n * @param element - tooltiped element\n */\n private setTooltipedElement = (element: HTMLElement): void => {\n this.tooltipedElement = element;\n\n // Manage tooltipedElement focus events\n this.tooltipedElement.addEventListener('focus', () => {\n this.guard = Guard.FOCUS;\n this.setDisplay(true);\n });\n\n // as `click` event is the composition of `mousedown` and `mouseup` event,\n // and `click` event trigger `focus` event after a success `mousedown` wich set the `guard` to `Guard.FOCUS`\n // we reset the guard on `mouseup` event to unlock tooltip\n this.tooltipedElement.addEventListener('mouseup', () => {\n this.resetGuard();\n });\n\n this.tooltipedElement.addEventListener('blur', () => {\n this.resetGuard();\n this.setDisplay(false);\n });\n\n // manage tooltipElement & tooltipedElement mouseenter/mouseleave events\n this.tooltipedElement.addEventListener('mouseenter', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIPED_ELEMENT, 'mouseenter', Guard.HOVER_TOOLTIP_ELEMENT);\n });\n\n this.tooltipedElement.addEventListener('mouseleave', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIPED_ELEMENT, 'mouseleave', Guard.HOVER_TOOLTIP_ELEMENT);\n });\n };\n\n /**\n * Set button mutation observer\n * @param mgButton - mg-button to observe\n */\n private setMgButtonMutationObserver = (mgButton: HTMLMgButtonElement): void => {\n new MutationObserver(mutationList => {\n // stop process when none of mutations attributed is disabled\n if (!mutationList.some(mutation => ['aria-disabled', 'disabled'].includes(mutation.attributeName))) return;\n\n // set guard when one of mutations is for a disabled with disabled-on-click\n if (mutationList.some((mutation: MutationRecord & { target: HTMLMgButtonElement }) => mutation.target.disabled && mutation.target.disableOnClick)) {\n this.guard = Guard.DISABLE_ON_CLICK;\n return;\n }\n\n // update button wrapper\n this.setMgButtonWrapper(mgButton);\n\n // Since Firefox doesn't trigger a \"blur\" event when the \"disabled\" attribute is added or removed from a button\n // we have to manually unlock the guard because the \"blur\" handler of the tooltipedElement won't do it.\n this.resetGuard();\n\n // update Floating UI instance\n this.updateTooltip();\n }).observe(mgButton, { attributes: true });\n };\n\n /**\n * Set tooltiped element aria-describedby\n * @param element - element to update\n */\n private setAriaDescribedby = (element: HTMLElement): void => {\n // Set aria-describedby\n if (!element.hasAttribute('aria-describedby')) {\n this.tooltipedElement.setAttribute('aria-describedby', this.identifier);\n } else {\n // We ensure to have uniq ids\n element.setAttribute('aria-describedby', `${[...new Set([...element.getAttribute('aria-describedby').split(' '), this.identifier])].join(' ')}`);\n }\n };\n\n /**\n * Render tooltip content element and init listeners\n */\n private renderTooltipContent(): void {\n if (this.mgTooltipContent !== undefined) {\n this.mgTooltipContent.setAttribute('id', this.identifier);\n } else {\n this.mgTooltipContent = document.createElement('mg-tooltip-content');\n this.mgTooltipContent.setAttribute('slot', 'content');\n this.mgTooltipContent.setAttribute('id', this.identifier);\n\n const arrow = document.createElement('div');\n arrow.setAttribute('slot', 'arrow');\n arrow.dataset.floatingArrow = '';\n this.mgTooltipContent.appendChild(arrow);\n\n // manage tooltipElement & tooltipedElement mouseenter/mouseleave events\n this.mgTooltipContent.addEventListener('mouseenter', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIP_ELEMENT, 'mouseenter', Guard.HOVER_TOOLTIPED_ELEMENT);\n });\n this.mgTooltipContent.addEventListener('mouseleave', () => {\n this.tooltipMouseListenerAction(Guard.HOVER_TOOLTIP_ELEMENT, 'mouseleave', Guard.HOVER_TOOLTIPED_ELEMENT);\n });\n\n // append tooltip element to component\n this.element.appendChild(this.mgTooltipContent);\n }\n }\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * set variables\n */\n componentWillLoad(): void {\n // Get windows to attach events\n this.windows = getWindows(window);\n\n // Get tooltip element\n this.renderTooltipContent();\n\n //validate properties\n this.watchPlacement(this.placement);\n this.watchDisabled(this.disabled);\n this.watchMessage(this.message);\n this.watchIdentifier(this.identifier);\n\n // define if the tooltip is inside a popover\n this.tooltipStrategy = this.element.closest('mg-popover') !== null ? 'absolute' : 'fixed';\n }\n\n /**\n * Get slotted element\n * Check if it already contain an interactive element, if not we need to add a tabIndex attribute\n * We need to attach the focused element to the tooltip (aria-describedby)\n */\n componentDidLoad(): void {\n // get slotted element wich is not the tooltip\n const slotElement: HTMLElement = this.element.querySelector(`*:not(#${this.identifier})`);\n\n // Get interactive element\n const interactiveElement: HTMLElement = slotElement.matches(focusableElements) ? slotElement : slotElement.shadowRoot?.querySelector(focusableElements);\n\n this.setTooltipedElement(interactiveElement || slotElement);\n\n // Set arrow element\n this.arrowElement = this.mgTooltipContent.querySelector('[data-floating-arrow]');\n\n // Check if slotted element is a disabled mg-button\n // In this case we wrap the mg-button into a div to enable the tooltip\n if (isButton(slotElement)) {\n this.setMgButtonMutationObserver(slotElement);\n this.setMgButtonWrapper(slotElement);\n }\n\n // Add tabindex to slotted element if we can't find any interactive element\n if (!this.disabled && [undefined, null].includes(interactiveElement)) {\n this.hasCustomTabIndex = true;\n slotElement.tabIndex = 0;\n // Add role on non-interactive element to work with \"aria-describedby\" for screen readers\n slotElement.setAttribute('role', 'button');\n }\n\n // apply a11y aria\n this.setAriaDescribedby(slotElement);\n\n // add document keyboard handler\n document.addEventListener('keydown', this.handlePressEscape);\n\n // check props\n this.watchDisplay(this.display);\n }\n\n /**\n * update popper position after props change on component did update hook to benefit from render ended\n */\n componentDidUpdate(): void {\n this.updateTooltip();\n }\n\n /**\n * remove listeners\n */\n disconnectedCallback(): void {\n document.removeEventListener('keydown', this.handlePressEscape);\n this.windows?.forEach((localWindow: Window) => {\n localWindow.removeEventListener('click', this.handleClickOutside, false);\n localWindow.removeEventListener('keydown', this.handlePressEscape, false);\n });\n this.updateTooltip?.();\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <Host>\n <slot></slot>\n <slot name=\"content\"></slot>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Keyboard keys
3
+ */
4
+ const Keys = {
5
+ TAB: 'Tab',
6
+ ENTER: 'Enter',
7
+ DOWN: 'Down',
8
+ UP: 'Up',
9
+ LEFT: 'Left',
10
+ RIGHT: 'Right',
11
+ ARROWDOWN: 'ArrowDown',
12
+ ARROWUP: 'ArrowUp',
13
+ ARROWRIGHT: 'ArrowRight',
14
+ ARROWLEFT: 'ArrowLeft',
15
+ HOME: 'Home',
16
+ END: 'End',
17
+ ESC: 'Esc',
18
+ ESCAPE: 'Escape',
19
+ NUMPADENTER: 'NumpadEnter',
20
+ SPACE: 'Space',
21
+ };
22
+
23
+ export { Keys as K };
24
+ //# sourceMappingURL=events.utils-yMGqY8YG.js.map
25
+
26
+ //# sourceMappingURL=events.utils-yMGqY8YG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.utils-yMGqY8YG.js","sources":["src/utils/events.utils.ts"],"sourcesContent":["/**\n * Keyboard keys\n */\nexport const Keys: Record<string, KeyboardEvent['key']> = {\n TAB: 'Tab',\n ENTER: 'Enter',\n DOWN: 'Down',\n UP: 'Up',\n LEFT: 'Left',\n RIGHT: 'Right',\n ARROWDOWN: 'ArrowDown',\n ARROWUP: 'ArrowUp',\n ARROWRIGHT: 'ArrowRight',\n ARROWLEFT: 'ArrowLeft',\n HOME: 'Home',\n END: 'End',\n ESC: 'Esc',\n ESCAPE: 'Escape',\n NUMPADENTER: 'NumpadEnter',\n SPACE: 'Space',\n};\n"],"names":[],"mappings":"AAAA;;AAEG;AACU,MAAA,IAAI,GAAyC;AACxD,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,KAAK,EAAE,OAAO;;;;;"}
@@ -63,6 +63,10 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
63
63
  }
64
64
  switch(bundleId) {
65
65
 
66
+ case 'mg-input-combobox':
67
+ return import(
68
+ /* webpackMode: "lazy" */
69
+ './mg-input-combobox.entry.js').then(processMod, consoleError);
66
70
  case 'mg-loader':
67
71
  return import(
68
72
  /* webpackMode: "lazy" */
@@ -1,4 +1,4 @@
1
- import { J as Jt } from './index.es-DDBtzymI.js';
1
+ import { u as ur } from './index.es-rLV3KFPd.js';
2
2
 
3
3
  const errors$1 = {
4
4
  required: "This field is required."
@@ -61,6 +61,12 @@ const input$1 = {
61
61
  display: "Display password value",
62
62
  hide: "Hide password value"
63
63
  },
64
+ combobox: {
65
+ notFound: "No elements match your input",
66
+ notAvailable: "No elements available",
67
+ loadMore: "Load more",
68
+ search: "Search…"
69
+ },
64
70
  text: {
65
71
  helpText: {
66
72
  email: "Expected format: name@example.com",
@@ -107,7 +113,8 @@ const general$1 = {
107
113
  cancel: "Cancel",
108
114
  close: "Close",
109
115
  next: "next",
110
- previous: "previous"
116
+ previous: "previous",
117
+ reset: "reset"
111
118
  };
112
119
  const menuItem$1 = {
113
120
  badgeLabel: "Include notification(s)",
@@ -204,6 +211,12 @@ const input = {
204
211
  display: "Afficher le mot de passe",
205
212
  hide: "Masquer le mot de passe"
206
213
  },
214
+ combobox: {
215
+ notFound: "Aucun élément ne correspondont a votre saisie",
216
+ notAvailable: "Aucun élément disponible",
217
+ loadMore: "Afficher plus",
218
+ search: "Recherche…"
219
+ },
207
220
  text: {
208
221
  helpText: {
209
222
  email: "Format attendu&nbsp;: nom@exemple.fr",
@@ -250,7 +263,8 @@ const general = {
250
263
  cancel: "Annuler",
251
264
  close: "Fermer",
252
265
  next: "suivant",
253
- previous: "précédent"
266
+ previous: "précédent",
267
+ reset: "réinitialiser"
254
268
  };
255
269
  const menuItem = {
256
270
  badgeLabel: "Notification(s) incluse(s)",
@@ -293,9 +307,9 @@ const messages = { en, fr };
293
307
  * @param element - element we need to get the language
294
308
  * @returns messages object
295
309
  */
296
- const initLocales = Jt(messages, defaultLocale);
310
+ const initLocales = ur(messages, defaultLocale);
297
311
 
298
312
  export { initLocales as i };
299
- //# sourceMappingURL=index-SQlkEaXW.js.map
313
+ //# sourceMappingURL=index-DmsGewMC.js.map
300
314
 
301
- //# sourceMappingURL=index-SQlkEaXW.js.map
315
+ //# sourceMappingURL=index-DmsGewMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-SQlkEaXW.js","sources":["src/locales/index.ts"],"sourcesContent":["import en from './en/messages.json';\nimport fr from './fr/messages.json';\nimport { defineLocales } from '@mgdis/stencil-helpers';\n\nconst defaultLocale = 'en';\nconst messages = { en, fr };\n\n/**\n * Get Intl object\n * @param element - element we need to get the language\n * @returns messages object\n */\nexport const initLocales = defineLocales(messages, defaultLocale);\n"],"names":["defineLocales"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,aAAa,GAAG,IAAI;AAC1B,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AAE3B;;;;AAIG;AACU,MAAA,WAAW,GAAGA,EAAa,CAAC,QAAQ,EAAE,aAAa;;;;"}
1
+ {"version":3,"file":"index-DmsGewMC.js","sources":["src/locales/index.ts"],"sourcesContent":["import en from './en/messages.json';\nimport fr from './fr/messages.json';\nimport { defineLocales } from '@mgdis/stencil-helpers';\n\nconst defaultLocale = 'en';\nconst messages = { en, fr };\n\n/**\n * Get Intl object\n * @param element - element we need to get the language\n * @returns messages object\n */\nexport const initLocales = defineLocales(messages, defaultLocale);\n"],"names":["defineLocales"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,aAAa,GAAG,IAAI;AAC1B,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;AAE3B;;;;AAIG;AACU,MAAA,WAAW,GAAGA,EAAa,CAAC,QAAQ,EAAE,aAAa;;;;"}