@mgdis/mg-components 6.19.0 → 6.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/dist/cjs/{index-Bp6wZzau.js → index-C2viYwrR.js} +1757 -80
  2. package/dist/cjs/{index-TUElr4Wv.js → index-CCsGMNyq.js} +46 -0
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/mg-action-more_37.cjs.entry.js +735 -337
  5. package/dist/cjs/mg-alert.cjs.entry.js +17 -9
  6. package/dist/cjs/mg-components.cjs.js +3 -3
  7. package/dist/cjs/mg-fieldset.cjs.entry.js +24 -7
  8. package/dist/cjs/mg-input-combobox.cjs.entry.js +63 -29
  9. package/dist/cjs/mg-input-file.cjs.entry.js +384 -0
  10. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +30 -18
  11. package/dist/cjs/{mg-input.conf-D7jmj_lh.js → mg-input.conf-BNpeATnq.js} +7 -0
  12. package/dist/cjs/mg-loader.cjs.entry.js +8 -6
  13. package/dist/cjs/mg-progress.cjs.entry.js +19 -9
  14. package/dist/collection/collection-manifest.json +3 -2
  15. package/dist/collection/components/atoms/mg-icon/mg-icon.js +1 -1
  16. package/dist/collection/components/molecules/inputs/mg-input/mg-input.conf.js +6 -0
  17. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +1 -1
  18. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +15 -11
  19. package/dist/collection/components/molecules/inputs/mg-input-file/mg-input-file.js +877 -0
  20. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +1 -1
  21. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +1 -1
  22. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +1 -1
  23. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +12 -12
  24. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +1 -1
  25. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +2 -2
  26. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +1 -1
  27. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +72 -84
  28. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +1 -1
  29. package/dist/collection/components/molecules/mg-alert/mg-alert.js +1 -1
  30. package/dist/collection/components/molecules/mg-details/mg-details.js +1 -1
  31. package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +12 -3
  32. package/dist/collection/components/molecules/mg-form/mg-form.js +12 -2
  33. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +1 -1
  34. package/dist/collection/components/molecules/mg-loader/mg-loader.js +1 -1
  35. package/dist/collection/components/molecules/mg-message/mg-message.js +2 -2
  36. package/dist/collection/components/molecules/mg-modal/mg-modal.js +2 -2
  37. package/dist/collection/components/molecules/mg-panel/mg-panel.js +1 -1
  38. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +1 -1
  39. package/dist/collection/components/molecules/mg-popover/mg-popover.js +1 -1
  40. package/dist/collection/components/molecules/mg-progress/mg-progress.js +1 -1
  41. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +1 -1
  42. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +1 -1
  43. package/dist/collection/locales/en/messages.json +11 -0
  44. package/dist/collection/locales/fr/messages.json +11 -0
  45. package/dist/components/events.utils.js +1 -23
  46. package/dist/components/index.d.ts +2 -0
  47. package/dist/components/index.js +1 -1
  48. package/dist/components/index2.js +1 -408
  49. package/dist/components/index3.js +1 -476
  50. package/dist/components/mg-action-more.js +1 -254
  51. package/dist/components/mg-alert.js +1 -224
  52. package/dist/components/mg-badge.js +1 -6
  53. package/dist/components/mg-badge2.js +1 -113
  54. package/dist/components/mg-button.js +1 -6
  55. package/dist/components/mg-button2.js +1 -275
  56. package/dist/components/mg-card.js +1 -6
  57. package/dist/components/mg-card2.js +1 -92
  58. package/dist/components/mg-character-left.js +1 -6
  59. package/dist/components/mg-character-left2.js +1 -75
  60. package/dist/components/mg-details.js +1 -104
  61. package/dist/components/mg-divider.js +1 -6
  62. package/dist/components/mg-divider2.js +1 -49
  63. package/dist/components/mg-fieldset.js +1 -209
  64. package/dist/components/mg-form.js +1 -302
  65. package/dist/components/mg-icon.js +1 -6
  66. package/dist/components/mg-icon2.js +1 -188
  67. package/dist/components/mg-illustrated-message.js +1 -129
  68. package/dist/components/mg-input-checkbox-paginated.js +1 -6
  69. package/dist/components/mg-input-checkbox-paginated2.js +1 -135
  70. package/dist/components/mg-input-checkbox.js +1 -762
  71. package/dist/components/mg-input-combobox.js +1 -936
  72. package/dist/components/mg-input-date.js +1 -463
  73. package/dist/components/mg-input-file.d.ts +11 -0
  74. package/dist/components/mg-input-file.js +1 -0
  75. package/dist/components/mg-input-numeric.js +1 -592
  76. package/dist/components/mg-input-password.js +1 -360
  77. package/dist/components/mg-input-radio.js +1 -392
  78. package/dist/components/mg-input-rich-text-editor.js +1 -16797
  79. package/dist/components/mg-input-select.js +1 -6
  80. package/dist/components/mg-input-select2.js +1 -481
  81. package/dist/components/mg-input-text.js +1 -6
  82. package/dist/components/mg-input-text2.js +1 -514
  83. package/dist/components/mg-input-textarea.js +1 -412
  84. package/dist/components/mg-input-title.js +1 -6
  85. package/dist/components/mg-input-title2.js +1 -81
  86. package/dist/components/mg-input-toggle.js +1 -386
  87. package/dist/components/mg-input.conf.js +1 -0
  88. package/dist/components/mg-input.js +1 -6
  89. package/dist/components/mg-input2.js +1 -459
  90. package/dist/components/mg-item-more.js +1 -6
  91. package/dist/components/mg-item-more2.js +1 -505
  92. package/dist/components/mg-loader.js +1 -6
  93. package/dist/components/mg-loader2.js +1 -74
  94. package/dist/components/mg-menu-item.js +1 -6
  95. package/dist/components/mg-menu-item2.js +1 -485
  96. package/dist/components/mg-menu.js +1 -6
  97. package/dist/components/mg-message.js +1 -6
  98. package/dist/components/mg-message2.js +1 -146
  99. package/dist/components/mg-modal.js +1 -184
  100. package/dist/components/mg-pagination.js +1 -234
  101. package/dist/components/mg-panel.js +1 -350
  102. package/dist/components/mg-popover-content.js +1 -6
  103. package/dist/components/mg-popover-content2.js +1 -96
  104. package/dist/components/mg-popover.js +1 -6
  105. package/dist/components/mg-popover2.js +1 -312
  106. package/dist/components/mg-progress.js +1 -123
  107. package/dist/components/mg-skip-links.js +1 -78
  108. package/dist/components/mg-table.js +1 -319
  109. package/dist/components/mg-tabs.js +1 -6
  110. package/dist/components/mg-tabs2.js +1 -315
  111. package/dist/components/mg-tag.js +1 -133
  112. package/dist/components/mg-tooltip-content.js +1 -6
  113. package/dist/components/mg-tooltip-content2.js +1 -42
  114. package/dist/components/mg-tooltip.js +1 -6
  115. package/dist/components/mg-tooltip2.js +1 -421
  116. package/dist/components/popper.js +1 -1790
  117. package/dist/esm/{index-CNX6lq0x.js → index-D-uaxCxH.js} +46 -1
  118. package/dist/esm/{index-BluNKQ3L.js → index-DFwaH2hS.js} +1757 -80
  119. package/dist/esm/loader.js +3 -3
  120. package/dist/esm/mg-action-more_37.entry.js +735 -337
  121. package/dist/esm/mg-alert.entry.js +17 -9
  122. package/dist/esm/mg-components.js +4 -4
  123. package/dist/esm/mg-fieldset.entry.js +24 -7
  124. package/dist/esm/mg-input-combobox.entry.js +63 -29
  125. package/dist/esm/mg-input-file.entry.js +382 -0
  126. package/dist/esm/mg-input-rich-text-editor.entry.js +30 -18
  127. package/dist/esm/{mg-input.conf-DDnrE1hD.js → mg-input.conf-C9rmNQIL.js} +7 -1
  128. package/dist/esm/mg-loader.entry.js +8 -6
  129. package/dist/esm/mg-progress.entry.js +19 -9
  130. package/dist/mg-components/locales/en/messages.json +11 -0
  131. package/dist/mg-components/locales/fr/messages.json +11 -0
  132. package/dist/mg-components/mg-components.esm.js +1 -1
  133. package/dist/mg-components/{p-d5a276eb.entry.js → p-08fa327b.entry.js} +1 -1
  134. package/dist/mg-components/p-4175dcbe.entry.js +1 -0
  135. package/dist/mg-components/p-6b57f249.entry.js +1 -0
  136. package/dist/mg-components/p-6b655830.entry.js +1 -0
  137. package/dist/mg-components/p-988c282e.entry.js +1 -0
  138. package/dist/mg-components/p-C9rmNQIL.js +1 -0
  139. package/dist/mg-components/p-D-uaxCxH.js +1 -0
  140. package/dist/mg-components/p-DFwaH2hS.js +2 -0
  141. package/dist/mg-components/p-a79b1f19.entry.js +1 -0
  142. package/dist/mg-components/{p-916dfb6d.entry.js → p-c3d116b9.entry.js} +1 -1
  143. package/dist/mg-components/p-dd1934f4.entry.js +1 -0
  144. package/dist/types/components/molecules/inputs/mg-input/mg-input.conf.d.ts +7 -1
  145. package/dist/types/components/molecules/inputs/mg-input-file/mg-input-file.d.ts +210 -0
  146. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.d.ts +4 -4
  147. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +13 -16
  148. package/dist/types/components.d.ts +217 -18
  149. package/dist/types/stencil-public-runtime.d.ts +76 -12
  150. package/ide/intellij/web-types.json +373 -26
  151. package/ide/vscode/css-custom-data.json +12 -0
  152. package/ide/vscode/html-custom-data.json +341 -79
  153. package/package.json +22 -22
  154. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.scss +0 -1
  155. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.js +0 -1
  156. package/dist/mg-components/p-016bd291.entry.js +0 -1
  157. package/dist/mg-components/p-186a6139.entry.js +0 -1
  158. package/dist/mg-components/p-66a1cb83.entry.js +0 -1
  159. package/dist/mg-components/p-6efd819f.entry.js +0 -1
  160. package/dist/mg-components/p-BluNKQ3L.js +0 -2
  161. package/dist/mg-components/p-CNX6lq0x.js +0 -1
  162. package/dist/mg-components/p-DDnrE1hD.js +0 -1
  163. package/dist/mg-components/p-d2c72f09.entry.js +0 -1
  164. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +0 -8
@@ -1,312 +1 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { c as createID, a as isValideID, t as toString, g as getWindows } from './index2.js';
3
- import { d as defineCustomElement$4 } from './mg-button2.js';
4
- import { d as defineCustomElement$3 } from './mg-card2.js';
5
- import { d as defineCustomElement$2 } from './mg-icon2.js';
6
- import { d as defineCustomElement$1 } from './mg-popover-content2.js';
7
- import { c as createPopper } from './popper.js';
8
-
9
- const mgPopoverCss = "/*!\n * @prop --mg-c-popover-color-background: Defines the background color of the popover. Default value: `--mg-b-color-light`.\n * @prop --mg-c-popover-color-text: Defines the font color of the popover. Default value: `--mg-b-color-font-dark`.\n * @prop --mg-c-popover-title-font-size: Defines the font size of the popover title. Default value: `--mg-b-font-size-h5`.\n * @prop --mg-c-popover-padding-vertical: Defines the vertical padding of the popover. Default value: `unset`, fallback to `--mg-b-size-16`.\n * @prop --mg-c-popover-padding-horizontal: Defines the horizontal padding of the popover. Default value: `unset`, fallback to `--mg-b-size-16`.\n * @prop --mg-c-popover-max-width: Defines the max-width of the popover. Default value: `--mg-b-size-floating-element-max-width`.\n * @prop --mg-c-popover-border-radius: Defines the border-radius of the popover. Default value: `--mg-c-card-border-radius-default`.\n * @prop --mg-c-popover-min-width: Defines the min-width of the popover. Default value: `unset`.\n */:host{--mg-c-card-spacing:var(--mg-c-popover-padding-vertical, var(--mg-b-size-16)) var(--mg-c-popover-padding-horizontal, var(--mg-b-size-16));--mg-c-card-border:none;--mg-c-card-border-radius:var(--mg-c-popover-border-radius);--mg-c-card-color-background:var(--mg-c-popover-color-background);position:relative;display:contents}:host::slotted(*){display:inline-block}";
10
-
11
- const MgPopover = /*@__PURE__*/ proxyCustomElement(class MgPopover extends HTMLElement {
12
- constructor(registerHost) {
13
- super();
14
- if (registerHost !== false) {
15
- this.__registerHost();
16
- }
17
- this.__attachShadow();
18
- this.displayChange = createEvent(this, "display-change", 7);
19
- this.componentClose = createEvent(this, "component-close", 7);
20
- /**
21
- * Sets an `id` attribute.
22
- * Needed by the input for accessibility `aria-decribedby`.
23
- */
24
- this.identifier = createID('mg-popover');
25
- /**
26
- * Popover placement
27
- */
28
- this.placement = 'bottom';
29
- /**
30
- * Hide popover arrow
31
- */
32
- this.arrowHide = false;
33
- /**
34
- * Define if popover has a cross button
35
- */
36
- this.closeButton = false;
37
- /**
38
- * Display popover
39
- */
40
- this.display = false;
41
- /**
42
- * Disable popover
43
- */
44
- this.disabled = false;
45
- /**
46
- * Check if clicked outside of component
47
- * @param event - mouse event
48
- */
49
- this.clickOutside = (event) => {
50
- if (!this.disabled && event.target.closest('mg-popover') !== this.element && event.target.closest(`[data-mg-popover-guard="${this.identifier}"]`) === null) {
51
- this.display = false;
52
- }
53
- };
54
- /**
55
- * Show popover
56
- */
57
- this.show = () => {
58
- // Make the popover visible
59
- this.mgPopover.dataset.show = '';
60
- // Update aria-expanded
61
- this.interactiveElement.setAttribute('aria-expanded', 'true');
62
- // Enable the event listeners
63
- this.setPopperListeners(true);
64
- // hide when click outside
65
- // setTimeout is used to prevent event to trigger after creation
66
- setTimeout(() => {
67
- this.manageClickOutsideListeners('addEventListener');
68
- });
69
- };
70
- /**
71
- * Hide popover
72
- */
73
- this.hide = () => {
74
- // Hide the popover
75
- this.mgPopover.removeAttribute('data-show');
76
- // Update aria-expanded
77
- this.interactiveElement.setAttribute('aria-expanded', 'false');
78
- // Disable the event listeners
79
- this.setPopperListeners(false);
80
- // Remove event listener
81
- this.manageClickOutsideListeners('removeEventListener');
82
- };
83
- /**
84
- * Set popper listeners
85
- * @param newValue - if true enable popper listners
86
- */
87
- this.setPopperListeners = (newValue) => {
88
- this.popper.setOptions(options => (Object.assign(Object.assign({}, options), { modifiers: [...options.modifiers, { name: 'eventListeners', enabled: newValue }] })));
89
- };
90
- /**
91
- * Manage all clickOustside listeners
92
- * @param action - top process on elements listeners
93
- */
94
- this.manageClickOutsideListeners = (action) => {
95
- var _a, _b;
96
- // clickOutside listeners need to bind windows
97
- // AND as shawdowDom content is not include on windows listeners `event.target` we need to include popover guard content DOM if it's a web-component
98
- // by doing this we can get and parse all needeed document DOM elements in clickOutside callback event.details.
99
- // This result in the givern junction :
100
- // Windows > document > [data-mg-popover-guard] + [data-mg-popover-guard] > shadowRoot = Windows > document > [data-mg-popover-guard] > shadowRoot
101
- const guardChildren = Array.from(((_b = (_a = document.querySelector(`[data-mg-popover-guard="${this.identifier}"]`)) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.children) || new Set());
102
- [...guardChildren, ...this.windows].forEach((element) => {
103
- if (element !== null) {
104
- element[action]('click', this.clickOutside, false);
105
- }
106
- });
107
- };
108
- /**
109
- * Handle content hide event
110
- */
111
- this.handleHideContent = () => {
112
- this.display = false;
113
- this.componentClose.emit();
114
- };
115
- /**
116
- * Render popover content element
117
- */
118
- this.renderPopoverContent = () => {
119
- const mgPopoverContent = this.element.querySelector('mg-popover-content');
120
- if (mgPopoverContent === null) {
121
- this.mgPopoverContent = document.createElement('mg-popover-content');
122
- this.mgPopoverContent.setAttribute('slot', 'content');
123
- this.mgPopoverContent.setAttribute('id', this.identifier);
124
- this.mgPopoverContent.addEventListener('hide-content', this.handleHideContent);
125
- const arrow = document.createElement('div');
126
- arrow.setAttribute('slot', 'arrow');
127
- arrow.dataset.popperArrow = '';
128
- this.mgPopoverContent.appendChild(arrow);
129
- // insert elements in DOM
130
- ['[slot="title"]', '[slot="content"]:not(mg-popover-content)'].forEach(slotType => {
131
- Array.from(this.element.querySelectorAll(slotType)).forEach(slot => {
132
- this.mgPopoverContent.appendChild(slot);
133
- });
134
- });
135
- this.element.appendChild(this.mgPopoverContent);
136
- }
137
- else {
138
- mgPopoverContent.setAttribute('id', this.identifier);
139
- }
140
- };
141
- }
142
- validateIdentifier(newValue) {
143
- if (!isValideID(newValue)) {
144
- throw new Error(`<mg-popover> prop "identifier" value is invalid. Passed value: ${toString(newValue)}.`);
145
- }
146
- // use renderPopoverContent to update popover-content id
147
- this.renderPopoverContent();
148
- }
149
- validateArrowHide(newValue) {
150
- if (newValue)
151
- this.mgPopoverContent.dataset.arrowHide = '';
152
- else
153
- delete this.mgPopoverContent.dataset.arrowHide;
154
- }
155
- validateCloseButton(newValue) {
156
- this.mgPopoverContent.closeButton = newValue;
157
- }
158
- handleDisplay(newValue) {
159
- if (newValue) {
160
- this.show();
161
- }
162
- else {
163
- this.hide();
164
- }
165
- this.displayChange.emit(newValue);
166
- }
167
- /*************
168
- * Lifecycle *
169
- *************/
170
- /**
171
- * update popper position after props change on component did update hook to benefit from render ended
172
- */
173
- componentDidUpdate() {
174
- this.popper.update();
175
- }
176
- /**
177
- * Check if component props are well configured on init
178
- */
179
- componentWillLoad() {
180
- // Get windows to attach events
181
- this.windows = getWindows(window);
182
- // render mg-popover-content slot
183
- this.renderPopoverContent();
184
- this.validateCloseButton(this.closeButton);
185
- this.validateIdentifier(this.identifier);
186
- this.validateArrowHide(this.arrowHide);
187
- }
188
- /**
189
- * Check if component props are well configured on init
190
- */
191
- componentDidLoad() {
192
- // Get popover content
193
- this.mgPopover = this.element.querySelector(`#${this.identifier}`);
194
- //Get interactive element (first element without slot attribute)
195
- this.interactiveElement = this.element.querySelector(':not([slot])');
196
- // Add aria attributes
197
- this.interactiveElement.setAttribute('aria-controls', this.identifier);
198
- this.interactiveElement.setAttribute('aria-expanded', `${this.display}`);
199
- const fallbackPlacements = [];
200
- if (this.element.dataset.fallbackPlacement !== undefined) {
201
- fallbackPlacements.push(this.element.dataset.fallbackPlacement);
202
- }
203
- // Create popperjs popover
204
- this.popper = createPopper(this.interactiveElement, this.mgPopover, {
205
- placement: this.placement,
206
- strategy: 'fixed',
207
- modifiers: [
208
- {
209
- name: 'offset',
210
- options: {
211
- offset: [0, 0],
212
- },
213
- },
214
- {
215
- name: 'flip',
216
- options: {
217
- fallbackPlacements: [...fallbackPlacements, 'auto'],
218
- },
219
- },
220
- ],
221
- });
222
- // add resize observer
223
- [this.interactiveElement, this.element.querySelector('mg-popover-content')].forEach(element => {
224
- new ResizeObserver(() => {
225
- this.popper.update();
226
- }).observe(element);
227
- });
228
- // Add events to toggle display
229
- this.interactiveElement.addEventListener('click', () => {
230
- if (!this.disabled)
231
- this.display = !this.display;
232
- });
233
- this.element.addEventListener('click', (event) => {
234
- const target = event.target.closest('[popovertargetaction]');
235
- if (this.display === true && target !== null && target.getAttribute('popovertargetaction') === 'hide') {
236
- this.display = false;
237
- }
238
- });
239
- // Add events to hide popover
240
- this.element.addEventListener('keydown', e => {
241
- if (!this.disabled && e.code === 'Escape') {
242
- this.display = false;
243
- this.componentClose.emit();
244
- this.interactiveElement.focus();
245
- }
246
- });
247
- this.handleDisplay(this.display);
248
- }
249
- /**
250
- * Render
251
- * @returns HTML Element
252
- */
253
- render() {
254
- return (h(Host, { key: '2c1506b8e2da100519aeeae75fc5c378a81c473c' }, h("slot", { key: 'f9aea885e8cbc168614c05761829f0a0740eba9e' }), h("slot", { key: 'fa6106a660a73b3761d4783f8d46d401c47b4eb6', name: "content" })));
255
- }
256
- get element() { return this; }
257
- static get watchers() { return {
258
- "identifier": ["validateIdentifier"],
259
- "arrowHide": ["validateArrowHide"],
260
- "closeButton": ["validateCloseButton"],
261
- "display": ["handleDisplay"]
262
- }; }
263
- static get style() { return mgPopoverCss; }
264
- }, [257, "mg-popover", {
265
- "identifier": [1],
266
- "placement": [1],
267
- "arrowHide": [4, "arrow-hide"],
268
- "closeButton": [4, "close-button"],
269
- "display": [1028],
270
- "disabled": [4]
271
- }, undefined, {
272
- "identifier": ["validateIdentifier"],
273
- "arrowHide": ["validateArrowHide"],
274
- "closeButton": ["validateCloseButton"],
275
- "display": ["handleDisplay"]
276
- }]);
277
- function defineCustomElement() {
278
- if (typeof customElements === "undefined") {
279
- return;
280
- }
281
- const components = ["mg-popover", "mg-button", "mg-card", "mg-icon", "mg-popover-content"];
282
- components.forEach(tagName => { switch (tagName) {
283
- case "mg-popover":
284
- if (!customElements.get(tagName)) {
285
- customElements.define(tagName, MgPopover);
286
- }
287
- break;
288
- case "mg-button":
289
- if (!customElements.get(tagName)) {
290
- defineCustomElement$4();
291
- }
292
- break;
293
- case "mg-card":
294
- if (!customElements.get(tagName)) {
295
- defineCustomElement$3();
296
- }
297
- break;
298
- case "mg-icon":
299
- if (!customElements.get(tagName)) {
300
- defineCustomElement$2();
301
- }
302
- break;
303
- case "mg-popover-content":
304
- if (!customElements.get(tagName)) {
305
- defineCustomElement$1();
306
- }
307
- break;
308
- } });
309
- }
310
- defineCustomElement();
311
-
312
- export { MgPopover as M, defineCustomElement as d };
1
+ import{transformTag as t,proxyCustomElement as e,HTMLElement as i,createEvent as s,h as o,Host as a}from"@stencil/core/internal/client";import{c as r,a as n,t as d,g as h}from"./index2.js";import{d as c}from"./mg-button2.js";import{d as l}from"./mg-card2.js";import{d as p}from"./mg-icon2.js";import{d as m}from"./mg-popover-content2.js";import{c as v}from"./popper.js";const g=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.displayChange=s(this,"display-change",7),this.componentClose=s(this,"component-close",7),this.identifier=r("mg-popover"),this.placement="bottom",this.arrowHide=!1,this.closeButton=!1,this.display=!1,this.disabled=!1,this.clickOutside=t=>{this.disabled||t.target.closest("mg-popover")===this.element||null!==t.target.closest(`[data-mg-popover-guard="${this.identifier}"]`)||(this.display=!1)},this.show=()=>{this.mgPopover.dataset.show="",this.interactiveElement.setAttribute("aria-expanded","true"),this.setPopperListeners(!0),setTimeout((()=>{this.manageClickOutsideListeners("addEventListener")}))},this.hide=()=>{this.mgPopover.removeAttribute("data-show"),this.interactiveElement.setAttribute("aria-expanded","false"),this.setPopperListeners(!1),this.manageClickOutsideListeners("removeEventListener")},this.setPopperListeners=t=>{this.popper.setOptions((e=>Object.assign(Object.assign({},e),{modifiers:[...e.modifiers,{name:"eventListeners",enabled:t}]})))},this.manageClickOutsideListeners=t=>{var e,i;[...Array.from((null===(i=null===(e=document.querySelector(`[data-mg-popover-guard="${this.identifier}"]`))||void 0===e?void 0:e.shadowRoot)||void 0===i?void 0:i.children)||new Set),...this.windows].forEach((e=>{null!==e&&e[t]("click",this.clickOutside,!1)}))},this.handleHideContent=()=>{this.display=!1,this.componentClose.emit()},this.renderPopoverContent=()=>{const t=this.element.querySelector("mg-popover-content");if(null===t){this.mgPopoverContent=document.createElement("mg-popover-content"),this.mgPopoverContent.setAttribute("slot","content"),this.mgPopoverContent.setAttribute("id",this.identifier),this.mgPopoverContent.addEventListener("hide-content",this.handleHideContent);const t=document.createElement("div");t.setAttribute("slot","arrow"),t.dataset.popperArrow="",this.mgPopoverContent.appendChild(t),['[slot="title"]','[slot="content"]:not(mg-popover-content)'].forEach((t=>{Array.from(this.element.querySelectorAll(t)).forEach((t=>{this.mgPopoverContent.appendChild(t)}))})),this.element.appendChild(this.mgPopoverContent)}else t.setAttribute("id",this.identifier)}}validateIdentifier(t){if(!n(t))throw new Error(`<mg-popover> prop "identifier" value is invalid. Passed value: ${d(t)}.`);this.renderPopoverContent()}validateArrowHide(t){t?this.mgPopoverContent.dataset.arrowHide="":delete this.mgPopoverContent.dataset.arrowHide}validateCloseButton(t){this.mgPopoverContent.closeButton=t}handleDisplay(t){t?this.show():this.hide(),this.displayChange.emit(t)}componentDidUpdate(){this.popper.update()}componentWillLoad(){this.windows=h(window),this.renderPopoverContent(),this.validateCloseButton(this.closeButton),this.validateIdentifier(this.identifier),this.validateArrowHide(this.arrowHide)}componentDidLoad(){this.mgPopover=this.element.querySelector(`#${this.identifier}`),this.interactiveElement=this.element.querySelector(":not([slot])"),this.interactiveElement.setAttribute("aria-controls",this.identifier),this.interactiveElement.setAttribute("aria-expanded",`${this.display}`);const t=[];void 0!==this.element.dataset.fallbackPlacement&&t.push(this.element.dataset.fallbackPlacement),this.popper=v(this.interactiveElement,this.mgPopover,{placement:this.placement,strategy:"fixed",modifiers:[{name:"offset",options:{offset:[0,0]}},{name:"flip",options:{fallbackPlacements:[...t,"auto"]}}]}),[this.interactiveElement,this.element.querySelector("mg-popover-content")].forEach((t=>{new ResizeObserver((()=>{this.popper.update()})).observe(t)})),this.interactiveElement.addEventListener("click",(()=>{this.disabled||(this.display=!this.display)})),this.element.addEventListener("click",(t=>{const e=t.target.closest("[popovertargetaction]");!0===this.display&&null!==e&&"hide"===e.getAttribute("popovertargetaction")&&(this.display=!1)})),this.element.addEventListener("keydown",(t=>{this.disabled||"Escape"!==t.code||(this.display=!1,this.componentClose.emit(),this.interactiveElement.focus())})),this.handleDisplay(this.display)}render(){return o(a,{key:"c25d773831395cf154f85cda3be67af22d6d8767"},o("slot",{key:"c6fb5897222e527cc36c78e1f32aaadc4d3c4b01"}),o("slot",{key:"d7f682fdf78caa8491b8e9a74e6d5e91dbf5ef84",name:"content"}))}get element(){return this}static get watchers(){return{identifier:[{validateIdentifier:0}],arrowHide:[{validateArrowHide:0}],closeButton:[{validateCloseButton:0}],display:[{handleDisplay:0}]}}static get style(){return":host{--mg-c-card-spacing:var(--mg-c-popover-padding-vertical, var(--mg-b-size-16)) var(--mg-c-popover-padding-horizontal, var(--mg-b-size-16));--mg-c-card-border:none;--mg-c-card-border-radius:var(--mg-c-popover-border-radius);--mg-c-card-color-background:var(--mg-c-popover-color-background);position:relative;display:contents}:host::slotted(*){display:inline-block}"}},[257,"mg-popover",{identifier:[1],placement:[1],arrowHide:[4,"arrow-hide"],closeButton:[4,"close-button"],display:[1028],disabled:[4]},void 0,{identifier:[{validateIdentifier:0}],arrowHide:[{validateArrowHide:0}],closeButton:[{validateCloseButton:0}],display:[{handleDisplay:0}]}]);function u(){"undefined"!=typeof customElements&&["mg-popover","mg-button","mg-card","mg-icon","mg-popover-content"].forEach((e=>{switch(e){case"mg-popover":customElements.get(t(e))||customElements.define(t(e),g);break;case"mg-button":customElements.get(t(e))||c();break;case"mg-card":customElements.get(t(e))||l();break;case"mg-icon":customElements.get(t(e))||p();break;case"mg-popover-content":customElements.get(t(e))||m()}}))}u();export{g as M,u as d}
@@ -1,123 +1 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { i as isValidString, t as toString, q as isValidNumber } from './index2.js';
3
-
4
- /**
5
- * List of all possibles roles
6
- */
7
- const roles = ['progressbar', 'meter'];
8
-
9
- const mgProgressCss = "/*!\n * @prop --mg-c-progress-size: Defines the size of the progress bar. Default value is `--mg-b-size-8`.\n * @prop --mg-c-progress-border-color: Defines the color of the progress bar border. Default value is `--mg-b-color-neutral-80`.\n * @prop --mg-c-progress-bar-color-background: Defines the color of the progress bar. Default value is `--mg-b-color-neutral-30`.\n * @prop --mg-c-progress-fill-color-background: Defines the color of the progress bar fill background. Default value is `--mg-b-color-app`.\n */.mg-c-progress{min-width:calc(var(--mg-b-size-16)*4)}.mg-c-progress__bar{position:relative;overflow:hidden;height:var(--mg-c-progress-size);border-width:var(--mg-b-size-border);border-style:solid;border-color:var(--mg-c-progress-border-color);border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);background-color:var(--mg-c-progress-bar-color-background)}.mg-c-progress__fill{height:100%;border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);transition:width 300ms ease-in-out}.mg-c-progress__bar.mg-c-progress__bar--active .mg-c-progress__fill{background-color:var(--mg-c-progress-fill-color-background)}";
10
-
11
- const MgProgress$1 = /*@__PURE__*/ proxyCustomElement(class MgProgress extends HTMLElement {
12
- constructor(registerHost) {
13
- super();
14
- if (registerHost !== false) {
15
- this.__registerHost();
16
- }
17
- this.__attachShadow();
18
- /**
19
- * Define progress role
20
- * - `progressbar` to indicate a progress, such as loading or percent completion of a task
21
- * - `meter` to indicate a graphical display of a numeric value that varies within a defined range
22
- */
23
- this.ariaRole = 'progressbar';
24
- /**
25
- * Define current value
26
- * By default, it will be displayed as a percentage value.
27
- * If you don’t specify the min and max props, the value should be a number within the range of 0 to 100.
28
- */
29
- this.value = 0;
30
- /**
31
- * Define the minimum value in the range
32
- */
33
- this.min = 0;
34
- /**
35
- * Define the maximum value in the range
36
- */
37
- this.max = 100;
38
- }
39
- watchLabel(newValue) {
40
- if (!isValidString(newValue)) {
41
- throw new Error(`<mg-progress> prop "label" must be a valid string. Passed value: ${toString(newValue)}.`);
42
- }
43
- }
44
- watchAriaRole(newValue) {
45
- if (newValue && !roles.includes(newValue)) {
46
- throw new Error(`<mg-progress> prop "ariaRole" must be one of: ${roles.join(', ')}. Passed value: ${toString(newValue)}.`);
47
- }
48
- }
49
- watchValue(newValue) {
50
- if (newValue !== undefined && (!isValidNumber(newValue) || !(newValue >= this.min && newValue <= this.max)))
51
- throw new Error(`<mg-progress> prop “value” must be a number within the range ${this.min} to ${this.max}. Passed value: ${toString(newValue)}.`);
52
- }
53
- watchMin(newValue) {
54
- if (newValue !== 0 && newValue !== undefined && (!isValidNumber(newValue) || newValue >= this.max))
55
- throw new Error(`<mg-progress> prop “min” must be a number lower than: ${this.max}. Passed value: ${toString(newValue)}.`);
56
- }
57
- watchMax(newValue) {
58
- if (newValue !== 100 && newValue !== undefined && (!isValidNumber(newValue) || newValue <= this.min))
59
- throw new Error(`<mg-progress> prop “max” must be a number greater than: ${this.min}. Passed value: ${toString(newValue)}.`);
60
- }
61
- /*************
62
- * Lifecycle *
63
- *************/
64
- /**
65
- * Check if component props are well configured on init
66
- */
67
- componentWillLoad() {
68
- // validate props
69
- this.watchLabel(this.label);
70
- this.watchAriaRole(this.ariaRole);
71
- this.watchMin(this.min);
72
- this.watchMax(this.max);
73
- this.watchValue(this.value);
74
- }
75
- /**
76
- * Render
77
- * @returns HTML Element
78
- */
79
- render() {
80
- return (h(Host, { key: '8e6c727e9416fa777fd94b32d618a9137e8e08f7', role: this.ariaRole, "aria-label": this.label, "aria-valuenow": this.value, "aria-valuemin": this.min, "aria-valuemax": this.max }, h("div", { key: 'ac42ee9c5dda55d70aad7391895e4a013aaa27f9', class: "mg-c-progress" }, h("div", { key: '34c77bc6c133bc59b9daa68d7d6c8534f13f7d37', class: { 'mg-c-progress__bar': true, 'mg-c-progress__bar--active': this.value > this.min } }, h("div", { key: '7ea03a3f0c54ca0c81616c7c070d178a510dd7e1', class: "mg-c-progress__fill", style: {
81
- width: `${Math.round(((this.value - this.min) / (this.max - this.min)) * 100)}%`,
82
- } })))));
83
- }
84
- static get watchers() { return {
85
- "label": ["watchLabel"],
86
- "ariaRole": ["watchAriaRole"],
87
- "value": ["watchValue"],
88
- "min": ["watchMin"],
89
- "max": ["watchMax"]
90
- }; }
91
- static get style() { return mgProgressCss; }
92
- }, [257, "mg-progress", {
93
- "label": [1],
94
- "ariaRole": [1, "aria-role"],
95
- "value": [2],
96
- "min": [2],
97
- "max": [2]
98
- }, undefined, {
99
- "label": ["watchLabel"],
100
- "ariaRole": ["watchAriaRole"],
101
- "value": ["watchValue"],
102
- "min": ["watchMin"],
103
- "max": ["watchMax"]
104
- }]);
105
- function defineCustomElement$1() {
106
- if (typeof customElements === "undefined") {
107
- return;
108
- }
109
- const components = ["mg-progress"];
110
- components.forEach(tagName => { switch (tagName) {
111
- case "mg-progress":
112
- if (!customElements.get(tagName)) {
113
- customElements.define(tagName, MgProgress$1);
114
- }
115
- break;
116
- } });
117
- }
118
- defineCustomElement$1();
119
-
120
- const MgProgress = MgProgress$1;
121
- const defineCustomElement = defineCustomElement$1;
122
-
123
- export { MgProgress, defineCustomElement };
1
+ import{transformTag as r,proxyCustomElement as s,HTMLElement as e,h as a,Host as t}from"@stencil/core/internal/client";import{i,t as o,q as c}from"./index2.js";const l=["progressbar","meter"],h=s(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.ariaRole="progressbar",this.value=0,this.min=0,this.max=100}watchLabel(r){if(!i(r))throw Error(`<mg-progress> prop "label" must be a valid string. Passed value: ${o(r)}.`)}watchAriaRole(r){if(r&&!l.includes(r))throw Error(`<mg-progress> prop "ariaRole" must be one of: ${l.join(", ")}. Passed value: ${o(r)}.`)}watchValue(r){if(!(void 0===r||c(r)&&r>=this.min&&r<=this.max))throw Error(`<mg-progress> prop “value” must be a number within the range ${this.min} to ${this.max}. Passed value: ${o(r)}.`)}watchMin(r){if(0!==r&&void 0!==r&&(!c(r)||r>=this.max))throw Error(`<mg-progress> prop “min” must be a number lower than: ${this.max}. Passed value: ${o(r)}.`)}watchMax(r){if(100!==r&&void 0!==r&&(!c(r)||r<=this.min))throw Error(`<mg-progress> prop “max” must be a number greater than: ${this.min}. Passed value: ${o(r)}.`)}componentWillLoad(){this.watchLabel(this.label),this.watchAriaRole(this.ariaRole),this.watchMin(this.min),this.watchMax(this.max),this.watchValue(this.value)}render(){return a(t,{key:"e6d254a68f35c5019158ab17fcb0e4dfd1943ef8",role:this.ariaRole,"aria-label":this.label,"aria-valuenow":this.value,"aria-valuemin":this.min,"aria-valuemax":this.max},a("div",{key:"5b427579ad97336076504a45013a0be00673f9a9",class:"mg-c-progress"},a("div",{key:"76dbdf88550caf51890e10c45c034d73cd02db5d",class:{"mg-c-progress__bar":!0,"mg-c-progress__bar--active":this.value>this.min}},a("div",{key:"b0ab6f784cdb8cc25a40b83a0d97bcda5b5c1f9b",class:"mg-c-progress__fill",style:{width:Math.round((this.value-this.min)/(this.max-this.min)*100)+"%"}}))))}static get watchers(){return{label:[{watchLabel:0}],ariaRole:[{watchAriaRole:0}],value:[{watchValue:0}],min:[{watchMin:0}],max:[{watchMax:0}]}}static get style(){return".mg-c-progress{min-width:calc(var(--mg-b-size-16)*4)}.mg-c-progress__bar{position:relative;overflow:hidden;height:var(--mg-c-progress-size);border-width:var(--mg-b-size-border);border-style:solid;border-color:var(--mg-c-progress-border-color);border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);background-color:var(--mg-c-progress-bar-color-background)}.mg-c-progress__fill{height:100%;border-radius:calc((var(--mg-c-progress-size) + var(--mg-b-size-border)*2)/2);transition:width 300ms ease-in-out}.mg-c-progress__bar.mg-c-progress__bar--active .mg-c-progress__fill{background-color:var(--mg-c-progress-fill-color-background)}"}},[1,"mg-progress",{label:[1],ariaRole:[1,"aria-role"],value:[2],min:[2],max:[2]},void 0,{label:[{watchLabel:0}],ariaRole:[{watchAriaRole:0}],value:[{watchValue:0}],min:[{watchMin:0}],max:[{watchMax:0}]}]);function g(){"undefined"!=typeof customElements&&["mg-progress"].forEach((s=>{"mg-progress"===s&&(customElements.get(r(s))||customElements.define(r(s),h))}))}g();const m=h,b=g;export{m as MgProgress,b as defineCustomElement}
@@ -1,78 +1 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { i as initLocales } from './index3.js';
3
- import { i as isValidString } from './index2.js';
4
-
5
- const mgSkipLinksCss = ".mg-c-skip-links{position:absolute;display:flex;min-height:var(--mg-b-size-56);align-items:center;background:var(--mg-b-color-light);opacity:0;transform:translateY(-100%)}.mg-c-skip-links:focus-within{position:relative;opacity:1;transform:translateY(0)}.mg-c-skip-links__list{display:flex;flex-wrap:wrap;align-items:center;padding:0 var(--mg-b-size-16);margin:0;gap:var(--mg-b-spacing-actions);list-style:none}.mg-c-skip-links__link{display:inline-block;padding:var(--mg-b-size-8) var(--mg-b-size-16);color:var(--mg-b-color-dark)}.mg-c-skip-links__link:hover{background:hsl(var(--mg-b-color-dark-h), var(--mg-b-color-dark-s), var(--mg-b-color-dark-l), 10%)}";
6
-
7
- const MgSkipLinks$1 = /*@__PURE__*/ proxyCustomElement(class MgSkipLinks extends HTMLElement {
8
- constructor(registerHost) {
9
- super();
10
- if (registerHost !== false) {
11
- this.__registerHost();
12
- }
13
- this.__attachShadow();
14
- this.goToAnchor = createEvent(this, "go-to-anchor", 7);
15
- /***********
16
- * Methods *
17
- **********/
18
- /**
19
- * Handle link click and emit go-to-anchor event
20
- * @param event - mouse event
21
- */
22
- this.handleLinkCLick = (event) => {
23
- const element = event.currentTarget;
24
- element.blur();
25
- this.goToAnchor.emit(element.getAttribute('href'));
26
- };
27
- }
28
- validateLinks(links) {
29
- if (links === undefined || links.length === 0 || links.some(link => !isValidString(link.href) || !link.href.startsWith('#') || !isValidString(link.label))) {
30
- throw new Error(`<mg-skip-links> prop "links": Cannot be empty and each link must contains an href starting with a "#" and a non empty label attributes.`);
31
- }
32
- }
33
- /*************
34
- * Lifecycle *
35
- *************/
36
- /**
37
- * Check if props are well configured on init
38
- */
39
- componentWillLoad() {
40
- this.validateLinks(this.links);
41
- this.messages = initLocales(this.element).messages;
42
- }
43
- /**
44
- * Render
45
- * @returns HTML Element
46
- */
47
- render() {
48
- return (h("nav", { key: '5bf4427662bdca6512969bee91aa03f43a126743', class: "mg-c-skip-links", role: "navigation", "aria-label": this.messages.skipLinks.navLabel }, h("ul", { key: '1d2b2a56b3960f70a3d37b333c77bf686643e0fd', class: "mg-c-skip-links__list", role: "list" }, this.links.map(link => (h("li", { key: link.href }, h("a", { class: "mg-c-skip-links__link", href: link.href, onClick: this.handleLinkCLick }, link.label)))))));
49
- }
50
- get element() { return this; }
51
- static get watchers() { return {
52
- "links": ["validateLinks"]
53
- }; }
54
- static get style() { return mgSkipLinksCss; }
55
- }, [257, "mg-skip-links", {
56
- "links": [16]
57
- }, undefined, {
58
- "links": ["validateLinks"]
59
- }]);
60
- function defineCustomElement$1() {
61
- if (typeof customElements === "undefined") {
62
- return;
63
- }
64
- const components = ["mg-skip-links"];
65
- components.forEach(tagName => { switch (tagName) {
66
- case "mg-skip-links":
67
- if (!customElements.get(tagName)) {
68
- customElements.define(tagName, MgSkipLinks$1);
69
- }
70
- break;
71
- } });
72
- }
73
- defineCustomElement$1();
74
-
75
- const MgSkipLinks = MgSkipLinks$1;
76
- const defineCustomElement = defineCustomElement$1;
77
-
78
- export { MgSkipLinks, defineCustomElement };
1
+ import{transformTag as i,proxyCustomElement as s,HTMLElement as t,createEvent as n,h as e}from"@stencil/core/internal/client";import{i as a}from"./index3.js";import{i as l}from"./index2.js";const r=s(class extends t{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.goToAnchor=n(this,"go-to-anchor",7),this.handleLinkCLick=i=>{const s=i.currentTarget;s.blur(),this.goToAnchor.emit(s.getAttribute("href"))}}validateLinks(i){if(void 0===i||0===i.length||i.some((i=>!l(i.href)||!i.href.startsWith("#")||!l(i.label))))throw Error('<mg-skip-links> prop "links": Cannot be empty and each link must contains an href starting with a "#" and a non empty label attributes.')}componentWillLoad(){this.validateLinks(this.links),this.messages=a(this.element).messages}render(){return e("nav",{key:"9df42d332b207abf989ef73f3c83ebbcfcf222a6",class:"mg-c-skip-links",role:"navigation","aria-label":this.messages.skipLinks.navLabel},e("ul",{key:"0185490dbd3dfb08b534a898fe779850ce96c427",class:"mg-c-skip-links__list",role:"list"},this.links.map((i=>e("li",{key:i.href},e("a",{class:"mg-c-skip-links__link",href:i.href,onClick:this.handleLinkCLick},i.label))))))}get element(){return this}static get watchers(){return{links:[{validateLinks:0}]}}static get style(){return".mg-c-skip-links{position:absolute;display:flex;min-height:var(--mg-b-size-56);align-items:center;background:var(--mg-b-color-light);opacity:0;transform:translateY(-100%)}.mg-c-skip-links:focus-within{position:relative;opacity:1;transform:translateY(0)}.mg-c-skip-links__list{display:flex;flex-wrap:wrap;align-items:center;padding:0 var(--mg-b-size-16);margin:0;gap:var(--mg-b-spacing-actions);list-style:none}.mg-c-skip-links__link{display:inline-block;padding:var(--mg-b-size-8) var(--mg-b-size-16);color:var(--mg-b-color-dark)}.mg-c-skip-links__link:hover{background:hsl(var(--mg-b-color-dark-h), var(--mg-b-color-dark-s), var(--mg-b-color-dark-l), 10%)}"}},[1,"mg-skip-links",{links:[16]},void 0,{links:[{validateLinks:0}]}]);function o(){"undefined"!=typeof customElements&&["mg-skip-links"].forEach((s=>{"mg-skip-links"===s&&(customElements.get(i(s))||customElements.define(i(s),r))}))}o();const c=r,k=o;export{c as MgSkipLinks,k as defineCustomElement}