@mgdis/mg-components 6.16.0 → 6.18.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 (160) hide show
  1. package/dist/cjs/{index-T3-qWqFE.js → index-DCZEYvlH.js} +51 -28
  2. package/dist/cjs/{index-YM1EJx9X.js → index-TUElr4Wv.js} +10 -10
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/mg-action-more_37.cjs.entry.js +443 -228
  5. package/dist/cjs/mg-alert.cjs.entry.js +3 -3
  6. package/dist/cjs/mg-components.cjs.js +3 -3
  7. package/dist/cjs/mg-fieldset.cjs.entry.js +141 -0
  8. package/dist/cjs/mg-input-combobox.cjs.entry.js +73 -57
  9. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +36 -23
  10. package/dist/cjs/{mg-input.conf-WTsvDfpC.js → mg-input.conf-HYIzRsy7.js} +5 -0
  11. package/dist/cjs/mg-loader.cjs.entry.js +3 -3
  12. package/dist/cjs/mg-progress.cjs.entry.js +2 -2
  13. package/dist/collection/collection-manifest.json +2 -1
  14. package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js +5 -5
  15. package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +7 -7
  16. package/dist/collection/components/atoms/mg-badge/mg-badge.js +6 -6
  17. package/dist/collection/components/atoms/mg-button/mg-button.js +13 -13
  18. package/dist/collection/components/atoms/mg-card/mg-card.js +2 -2
  19. package/dist/collection/components/atoms/mg-divider/mg-divider.js +1 -1
  20. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +1 -1
  21. package/dist/collection/components/atoms/mg-icon/mg-icon.js +32 -26
  22. package/dist/collection/components/atoms/mg-tag/mg-tag.js +3 -3
  23. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +2 -2
  24. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +6 -6
  25. package/dist/collection/components/molecules/inputs/mg-input/mg-input.conf.js +4 -0
  26. package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +193 -33
  27. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +7 -9
  28. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +65 -46
  29. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +106 -86
  30. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +67 -65
  31. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +71 -66
  32. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +56 -38
  33. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +53 -35
  34. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +66 -47
  35. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +58 -40
  36. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +77 -59
  37. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +63 -45
  38. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +54 -30
  39. package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +2 -4
  40. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js +9 -6
  41. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +7 -7
  42. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +2 -5
  43. package/dist/collection/components/molecules/mg-alert/mg-alert.js +5 -5
  44. package/dist/collection/components/molecules/mg-details/mg-details.js +7 -7
  45. package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +404 -0
  46. package/dist/collection/components/molecules/mg-form/mg-form.js +26 -17
  47. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +3 -3
  48. package/dist/collection/components/molecules/mg-loader/mg-loader.js +4 -4
  49. package/dist/collection/components/molecules/mg-message/mg-message.js +4 -4
  50. package/dist/collection/components/molecules/mg-modal/mg-modal.js +8 -8
  51. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +7 -8
  52. package/dist/collection/components/molecules/mg-panel/mg-panel.js +53 -22
  53. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +2 -2
  54. package/dist/collection/components/molecules/mg-popover/mg-popover.js +7 -7
  55. package/dist/collection/components/molecules/mg-progress/mg-progress.js +7 -7
  56. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +1 -2
  57. package/dist/collection/components/molecules/mg-table/mg-table.js +2 -3
  58. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +7 -8
  59. package/dist/collection/locales/en/messages.json +5 -5
  60. package/dist/collection/locales/fr/messages.json +5 -5
  61. package/dist/components/index3.js +10 -10
  62. package/dist/components/mg-action-more.js +5 -3
  63. package/dist/components/mg-alert.js +5 -3
  64. package/dist/components/mg-badge2.js +4 -2
  65. package/dist/components/mg-button2.js +4 -2
  66. package/dist/components/mg-card2.js +4 -2
  67. package/dist/components/mg-character-left2.js +4 -2
  68. package/dist/components/mg-details.js +5 -3
  69. package/dist/components/mg-divider2.js +4 -2
  70. package/dist/components/mg-fieldset.d.ts +11 -0
  71. package/dist/components/mg-fieldset.js +209 -0
  72. package/dist/components/mg-form.js +8 -5
  73. package/dist/components/mg-icon2.js +29 -21
  74. package/dist/components/mg-illustrated-message.js +5 -3
  75. package/dist/components/mg-input-checkbox-paginated2.js +6 -6
  76. package/dist/components/mg-input-checkbox.js +32 -17
  77. package/dist/components/mg-input-combobox.js +75 -57
  78. package/dist/components/mg-input-date.js +39 -42
  79. package/dist/components/mg-input-numeric.js +30 -30
  80. package/dist/components/mg-input-password.js +26 -13
  81. package/dist/components/mg-input-radio.js +27 -13
  82. package/dist/components/mg-input-rich-text-editor.js +37 -22
  83. package/dist/components/mg-input-select2.js +28 -14
  84. package/dist/components/mg-input-text2.js +40 -26
  85. package/dist/components/mg-input-textarea.js +27 -14
  86. package/dist/components/mg-input-title2.js +4 -2
  87. package/dist/components/mg-input-toggle.js +39 -12
  88. package/dist/components/mg-input2.js +121 -20
  89. package/dist/components/mg-item-more2.js +13 -5
  90. package/dist/components/mg-loader2.js +5 -3
  91. package/dist/components/mg-menu-item2.js +4 -2
  92. package/dist/components/mg-message2.js +6 -4
  93. package/dist/components/mg-modal.js +6 -4
  94. package/dist/components/mg-pagination.js +4 -2
  95. package/dist/components/mg-panel.js +40 -9
  96. package/dist/components/mg-popover-content2.js +5 -3
  97. package/dist/components/mg-popover2.js +5 -3
  98. package/dist/components/mg-progress.js +5 -3
  99. package/dist/components/mg-skip-links.js +5 -3
  100. package/dist/components/mg-table.js +4 -2
  101. package/dist/components/mg-tabs2.js +5 -3
  102. package/dist/components/mg-tag.js +4 -2
  103. package/dist/components/mg-tooltip-content2.js +4 -2
  104. package/dist/components/mg-tooltip2.js +4 -2
  105. package/dist/esm/{index-WtiuOkLj.js → index-C7xjtdiw.js} +1 -1
  106. package/dist/esm/{index-Bab8_u8S.js → index-CNX6lq0x.js} +10 -10
  107. package/dist/esm/{index-JHj_9FSs.js → index-T6kOJXP1.js} +51 -28
  108. package/dist/esm/loader.js +3 -3
  109. package/dist/esm/mg-action-more_37.entry.js +444 -229
  110. package/dist/esm/mg-alert.entry.js +4 -4
  111. package/dist/esm/mg-components.js +4 -4
  112. package/dist/esm/mg-fieldset.entry.js +139 -0
  113. package/dist/esm/mg-input-combobox.entry.js +74 -58
  114. package/dist/esm/mg-input-rich-text-editor.entry.js +37 -24
  115. package/dist/esm/{mg-input.conf-CNgv8hc5.js → mg-input.conf-D9V2v4n2.js} +5 -1
  116. package/dist/esm/mg-loader.entry.js +4 -4
  117. package/dist/esm/mg-progress.entry.js +3 -3
  118. package/dist/mg-components/locales/en/messages.json +5 -5
  119. package/dist/mg-components/locales/fr/messages.json +5 -5
  120. package/dist/mg-components/mg-components.esm.js +1 -1
  121. package/dist/mg-components/p-2bab89c2.entry.js +1 -0
  122. package/dist/mg-components/{p-658f828c.entry.js → p-5abc77cd.entry.js} +1 -1
  123. package/dist/mg-components/p-7d2e43b2.entry.js +1 -0
  124. package/dist/mg-components/{p-c85b5d10.entry.js → p-92e5e5a6.entry.js} +1 -1
  125. package/dist/mg-components/{p-42a90251.entry.js → p-952288bd.entry.js} +1 -1
  126. package/dist/mg-components/{p-WtiuOkLj.js → p-C7xjtdiw.js} +1 -1
  127. package/dist/mg-components/p-CNX6lq0x.js +1 -0
  128. package/dist/mg-components/p-D9V2v4n2.js +1 -0
  129. package/dist/mg-components/p-T6kOJXP1.js +2 -0
  130. package/dist/mg-components/p-f2cddd52.entry.js +1 -0
  131. package/dist/mg-components/{p-82455ac7.entry.js → p-f6afaeb8.entry.js} +1 -1
  132. package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +1 -1
  133. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +0 -5
  134. package/dist/types/components/molecules/inputs/mg-input/mg-input.conf.d.ts +5 -0
  135. package/dist/types/components/molecules/inputs/mg-input/mg-input.d.ts +32 -1
  136. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +4 -3
  137. package/dist/types/components/molecules/inputs/mg-input-combobox/mg-input-combobox.d.ts +4 -2
  138. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +4 -2
  139. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +4 -2
  140. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +4 -2
  141. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +4 -2
  142. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.d.ts +4 -2
  143. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +4 -2
  144. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +4 -2
  145. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +4 -2
  146. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +4 -2
  147. package/dist/types/components/molecules/mg-fieldset/mg-fieldset.d.ts +105 -0
  148. package/dist/types/components/molecules/mg-form/mg-form.d.ts +1 -1
  149. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +8 -1
  150. package/dist/types/components.d.ts +168 -18
  151. package/dist/types/stencil-public-runtime.d.ts +39 -2
  152. package/dist/types/types/index.d.ts +1 -1
  153. package/ide/intellij/web-types.json +289 -181
  154. package/ide/vscode/html-custom-data.json +259 -18
  155. package/package.json +23 -23
  156. package/dist/mg-components/p-54156253.entry.js +0 -1
  157. package/dist/mg-components/p-Bab8_u8S.js +0 -1
  158. package/dist/mg-components/p-CNgv8hc5.js +0 -1
  159. package/dist/mg-components/p-JHj_9FSs.js +0 -2
  160. package/dist/mg-components/p-abbd151c.entry.js +0 -1
@@ -0,0 +1,404 @@
1
+ import { h } from "@stencil/core";
2
+ import { ClassList, isValidString } from "@mgdis/core-ui-helpers/dist/utils";
3
+ import { classReadonly } from "../inputs/mg-input/mg-input.conf";
4
+ export class MgFieldset {
5
+ constructor() {
6
+ /**
7
+ * Fieldset name
8
+ * If not set the value equals the identifier
9
+ */
10
+ this.name = this.identifier;
11
+ /**
12
+ * Define if legend is visible
13
+ */
14
+ this.legendHide = false;
15
+ /**
16
+ * Define if legend border is visible.
17
+ */
18
+ this.legendBorderDisplay = false;
19
+ /**
20
+ * Define if inputs are readonly
21
+ */
22
+ this.readonly = false;
23
+ /**
24
+ * Define if inputs are disabled
25
+ */
26
+ this.disabled = false;
27
+ /**
28
+ * Component classes
29
+ */
30
+ this.classCollection = new ClassList(['mg-c-input--fieldset']);
31
+ /**
32
+ * Check if fieldset is valid
33
+ */
34
+ this.checkValidity = () => {
35
+ var _a;
36
+ this.valid = !(this.mgInputs.some(input => input.invalid) || ((_a = this.errorMessage) === null || _a === void 0 ? void 0 : _a.length) > 0);
37
+ };
38
+ /**
39
+ * Set mgInputs
40
+ */
41
+ this.setMgInputs = () => {
42
+ // Get slotted mgInputs
43
+ this.mgInputs = Array.from(this.element.querySelectorAll('*')).filter((node) => node.nodeName.startsWith('MG-INPUT'));
44
+ // Set inputs readonly or disabled based on form configuration
45
+ // Othewise listen to events
46
+ this.mgInputs.forEach(input => {
47
+ if (this.readonly) {
48
+ input.readonly = true;
49
+ }
50
+ else if (this.disabled) {
51
+ input.disabled = true;
52
+ }
53
+ else {
54
+ input.addEventListener('input-valid', this.checkValidity);
55
+ }
56
+ });
57
+ };
58
+ }
59
+ watchLegendBorderDisplay(newValue) {
60
+ if (newValue && !isValidString(this.legendHeading)) {
61
+ throw new Error('<mg-fieldset> prop "legendBorderDisplay" must not be paired with the prop "legendHeading".');
62
+ }
63
+ }
64
+ watchReadonly(newValue) {
65
+ if (newValue) {
66
+ this.classCollection.add(classReadonly);
67
+ }
68
+ else {
69
+ this.classCollection.delete(classReadonly);
70
+ }
71
+ }
72
+ handleAttributeChange() {
73
+ this.setMgInputs();
74
+ }
75
+ /**
76
+ * Component is not a candidate for constraint validation.
77
+ * You can use this method to define the `errorMessage` and set the `valid` state to `false`.
78
+ * @param errorMessage - error message to display. Use a valid `string` to define an error or `undefined` to delete the error
79
+ */
80
+ async setCustomValidity(errorMessage) {
81
+ if (isValidString(errorMessage)) {
82
+ this.errorMessage = errorMessage;
83
+ }
84
+ else {
85
+ this.errorMessage = undefined;
86
+ }
87
+ this.checkValidity();
88
+ }
89
+ /**
90
+ * Display inputs error if it exists.
91
+ */
92
+ async displayError() {
93
+ if (!this.readonly) {
94
+ this.mgInputs.forEach(input => {
95
+ input.displayError();
96
+ });
97
+ }
98
+ }
99
+ /*************
100
+ * Lifecycle *
101
+ *************/
102
+ /**
103
+ * Check if component props are well configured on init
104
+ */
105
+ componentWillLoad() {
106
+ this.watchReadonly(this.readonly);
107
+ this.watchLegendBorderDisplay(this.legendBorderDisplay);
108
+ this.setMgInputs();
109
+ }
110
+ /**
111
+ * Add slot listeners
112
+ */
113
+ componentDidLoad() {
114
+ // Update mgInputs when mgForm content change
115
+ const observerOptions = { childList: true, subtree: true };
116
+ new MutationObserver(mutations => {
117
+ if (mutations.some(mutation => Object.keys(observerOptions).includes(mutation.type))) {
118
+ this.setMgInputs();
119
+ }
120
+ }).observe(this.element, observerOptions);
121
+ }
122
+ /**
123
+ * Render
124
+ * @returns HTML Element
125
+ */
126
+ render() {
127
+ return (h("mg-input", { key: 'b8b7c203bb2ed22cc9344389af5a6ae8d85af6d5', label: this.legend, identifier: this.identifier, class: this.classCollection.join(), labelOnTop: !this.legendHide, labelHeading: this.legendHeading, labelBorderDisplay: this.legendHeading && this.legendBorderDisplay, labelHide: this.legendHide, inputsOnBottom: this.legendHeading !== undefined, tooltip: this.tooltip, tooltipPosition: 'label', helpText: this.helpText, errorMessage: !this.valid && isValidString(this.errorMessage) ? this.errorMessage : undefined }, h("span", { key: 'c0e7480b14b0a8e136dd951bdce7275b65b59b48', class: "mg-c-input__input-group" }, h("slot", { key: '021e7b126cef9437e64622d8ef59219b09c06e9f' }))));
128
+ }
129
+ static get is() { return "mg-fieldset"; }
130
+ static get encapsulation() { return "shadow"; }
131
+ static get properties() {
132
+ return {
133
+ "identifier": {
134
+ "type": "string",
135
+ "mutable": false,
136
+ "complexType": {
137
+ "original": "string",
138
+ "resolved": "string",
139
+ "references": {}
140
+ },
141
+ "required": true,
142
+ "optional": false,
143
+ "docs": {
144
+ "tags": [],
145
+ "text": "Identifier is used for the element ID (id is a reserved prop in Stencil.js)"
146
+ },
147
+ "getter": false,
148
+ "setter": false,
149
+ "reflect": false,
150
+ "attribute": "identifier"
151
+ },
152
+ "name": {
153
+ "type": "string",
154
+ "mutable": false,
155
+ "complexType": {
156
+ "original": "string",
157
+ "resolved": "string",
158
+ "references": {}
159
+ },
160
+ "required": false,
161
+ "optional": false,
162
+ "docs": {
163
+ "tags": [],
164
+ "text": "Fieldset name\nIf not set the value equals the identifier"
165
+ },
166
+ "getter": false,
167
+ "setter": false,
168
+ "reflect": false,
169
+ "attribute": "name",
170
+ "defaultValue": "this.identifier"
171
+ },
172
+ "legend": {
173
+ "type": "string",
174
+ "mutable": false,
175
+ "complexType": {
176
+ "original": "string",
177
+ "resolved": "string",
178
+ "references": {}
179
+ },
180
+ "required": true,
181
+ "optional": false,
182
+ "docs": {
183
+ "tags": [],
184
+ "text": "Fieldset legend"
185
+ },
186
+ "getter": false,
187
+ "setter": false,
188
+ "reflect": false,
189
+ "attribute": "legend"
190
+ },
191
+ "legendHide": {
192
+ "type": "boolean",
193
+ "mutable": false,
194
+ "complexType": {
195
+ "original": "boolean",
196
+ "resolved": "boolean",
197
+ "references": {}
198
+ },
199
+ "required": false,
200
+ "optional": false,
201
+ "docs": {
202
+ "tags": [],
203
+ "text": "Define if legend is visible"
204
+ },
205
+ "getter": false,
206
+ "setter": false,
207
+ "reflect": false,
208
+ "attribute": "legend-hide",
209
+ "defaultValue": "false"
210
+ },
211
+ "legendHeading": {
212
+ "type": "string",
213
+ "mutable": false,
214
+ "complexType": {
215
+ "original": "labelHeading",
216
+ "resolved": "\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
217
+ "references": {
218
+ "labelHeading": {
219
+ "location": "import",
220
+ "path": "../inputs/mg-input/mg-input.conf",
221
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::labelHeading"
222
+ }
223
+ }
224
+ },
225
+ "required": false,
226
+ "optional": true,
227
+ "docs": {
228
+ "tags": [],
229
+ "text": "Define legend heading, use to define legend with associated semantic"
230
+ },
231
+ "getter": false,
232
+ "setter": false,
233
+ "reflect": false,
234
+ "attribute": "legend-heading"
235
+ },
236
+ "legendBorderDisplay": {
237
+ "type": "boolean",
238
+ "mutable": false,
239
+ "complexType": {
240
+ "original": "boolean",
241
+ "resolved": "boolean",
242
+ "references": {}
243
+ },
244
+ "required": false,
245
+ "optional": false,
246
+ "docs": {
247
+ "tags": [],
248
+ "text": "Define if legend border is visible."
249
+ },
250
+ "getter": false,
251
+ "setter": false,
252
+ "reflect": false,
253
+ "attribute": "legend-border-display",
254
+ "defaultValue": "false"
255
+ },
256
+ "readonly": {
257
+ "type": "boolean",
258
+ "mutable": false,
259
+ "complexType": {
260
+ "original": "boolean",
261
+ "resolved": "boolean",
262
+ "references": {}
263
+ },
264
+ "required": false,
265
+ "optional": false,
266
+ "docs": {
267
+ "tags": [],
268
+ "text": "Define if inputs are readonly"
269
+ },
270
+ "getter": false,
271
+ "setter": false,
272
+ "reflect": false,
273
+ "attribute": "readonly",
274
+ "defaultValue": "false"
275
+ },
276
+ "disabled": {
277
+ "type": "boolean",
278
+ "mutable": false,
279
+ "complexType": {
280
+ "original": "boolean",
281
+ "resolved": "boolean",
282
+ "references": {}
283
+ },
284
+ "required": false,
285
+ "optional": false,
286
+ "docs": {
287
+ "tags": [],
288
+ "text": "Define if inputs are disabled"
289
+ },
290
+ "getter": false,
291
+ "setter": false,
292
+ "reflect": false,
293
+ "attribute": "disabled",
294
+ "defaultValue": "false"
295
+ },
296
+ "tooltip": {
297
+ "type": "string",
298
+ "mutable": false,
299
+ "complexType": {
300
+ "original": "string",
301
+ "resolved": "string",
302
+ "references": {}
303
+ },
304
+ "required": false,
305
+ "optional": true,
306
+ "docs": {
307
+ "tags": [],
308
+ "text": "Add a tooltip message next to the fieldset"
309
+ },
310
+ "getter": false,
311
+ "setter": false,
312
+ "reflect": false,
313
+ "attribute": "tooltip"
314
+ },
315
+ "helpText": {
316
+ "type": "string",
317
+ "mutable": false,
318
+ "complexType": {
319
+ "original": "string",
320
+ "resolved": "string",
321
+ "references": {}
322
+ },
323
+ "required": false,
324
+ "optional": true,
325
+ "docs": {
326
+ "tags": [],
327
+ "text": "Add a help text under the fieldset, usually expected data format and example"
328
+ },
329
+ "getter": false,
330
+ "setter": false,
331
+ "reflect": false,
332
+ "attribute": "help-text"
333
+ }
334
+ };
335
+ }
336
+ static get states() {
337
+ return {
338
+ "errorMessage": {},
339
+ "valid": {},
340
+ "classCollection": {}
341
+ };
342
+ }
343
+ static get methods() {
344
+ return {
345
+ "setCustomValidity": {
346
+ "complexType": {
347
+ "signature": "(errorMessage?: string) => Promise<void>",
348
+ "parameters": [{
349
+ "name": "errorMessage",
350
+ "type": "string",
351
+ "docs": "- error message to display. Use a valid `string` to define an error or `undefined` to delete the error"
352
+ }],
353
+ "references": {
354
+ "Promise": {
355
+ "location": "global",
356
+ "id": "global::Promise"
357
+ }
358
+ },
359
+ "return": "Promise<void>"
360
+ },
361
+ "docs": {
362
+ "text": "Component is not a candidate for constraint validation.\nYou can use this method to define the `errorMessage` and set the `valid` state to `false`.",
363
+ "tags": [{
364
+ "name": "param",
365
+ "text": "errorMessage - error message to display. Use a valid `string` to define an error or `undefined` to delete the error"
366
+ }]
367
+ }
368
+ },
369
+ "displayError": {
370
+ "complexType": {
371
+ "signature": "() => Promise<void>",
372
+ "parameters": [],
373
+ "references": {
374
+ "Promise": {
375
+ "location": "global",
376
+ "id": "global::Promise"
377
+ }
378
+ },
379
+ "return": "Promise<void>"
380
+ },
381
+ "docs": {
382
+ "text": "Display inputs error if it exists.",
383
+ "tags": []
384
+ }
385
+ }
386
+ };
387
+ }
388
+ static get elementRef() { return "element"; }
389
+ static get watchers() {
390
+ return [{
391
+ "propName": "legendBorderDisplay",
392
+ "methodName": "watchLegendBorderDisplay"
393
+ }, {
394
+ "propName": "readonly",
395
+ "methodName": "watchReadonly"
396
+ }, {
397
+ "propName": "readonly",
398
+ "methodName": "handleAttributeChange"
399
+ }, {
400
+ "propName": "disabled",
401
+ "methodName": "handleAttributeChange"
402
+ }];
403
+ }
404
+ }
@@ -151,11 +151,12 @@ export class MgForm {
151
151
  this.setRequiredMessage();
152
152
  }
153
153
  /**
154
- * Display input error if it exists.
154
+ * Display inputs/fieldsets errors if it exists.
155
155
  */
156
156
  async displayError() {
157
157
  if (!this.readonly) {
158
- this.mgInputs.forEach(input => {
158
+ const mgFieldsets = Array.from(this.element.querySelectorAll('*')).filter((node) => node.nodeName.startsWith('MG-FIELDSET'));
159
+ [...mgFieldsets, ...this.mgInputs].forEach(input => {
159
160
  var _a;
160
161
  (_a = input.displayError) === null || _a === void 0 ? void 0 : _a.call(input);
161
162
  });
@@ -231,7 +232,7 @@ export class MgForm {
231
232
  * @returns HTML Element
232
233
  */
233
234
  render() {
234
- return (h("form", { key: 'd6842c8daef22c0a3747147d99d7bf6920f7623e', class: this.classCollection.join(), id: this.identifier, name: this.name, onSubmit: this.handleFormSubmit, role: this.ariaRole }, this.requiredMessageText && h("p", { key: 'cf5d9f380dfce313811df2dec390543ee19dffcb', innerHTML: this.requiredMessageText }), h("slot", { key: '2f03dd98f92469bc34b8bf9b8a8ef79cf8adf25c' }), !this.readonly && !this.disabled && h("slot", { key: 'c0f38f24c59d70703accf5fc63a2b58a92a952f0', name: "actions" })));
235
+ return (h("form", { key: '8b698b2a33af00e36691abab5adff5488b736218', class: this.classCollection.join(), id: this.identifier, name: this.name, onSubmit: this.handleFormSubmit, role: this.ariaRole }, this.requiredMessageText && h("p", { key: '2e1fb5c4030ecb99d1f18c57d5c3fe238db4d12e', innerHTML: this.requiredMessageText }), h("slot", { key: '568fb8ac9ab0e3521899c05472592ebd15cc91fa' }), !this.readonly && !this.disabled && h("slot", { key: 'd4f38320de58f3b1d491083a34d1b5366d22b935', name: "actions" })));
235
236
  }
236
237
  static get is() { return "mg-form"; }
237
238
  static get encapsulation() { return "shadow"; }
@@ -249,7 +250,6 @@ export class MgForm {
249
250
  return {
250
251
  "identifier": {
251
252
  "type": "string",
252
- "attribute": "identifier",
253
253
  "mutable": false,
254
254
  "complexType": {
255
255
  "original": "string",
@@ -265,11 +265,11 @@ export class MgForm {
265
265
  "getter": false,
266
266
  "setter": false,
267
267
  "reflect": false,
268
+ "attribute": "identifier",
268
269
  "defaultValue": "createID('mg-form')"
269
270
  },
270
271
  "name": {
271
272
  "type": "string",
272
- "attribute": "name",
273
273
  "mutable": false,
274
274
  "complexType": {
275
275
  "original": "string",
@@ -285,11 +285,11 @@ export class MgForm {
285
285
  "getter": false,
286
286
  "setter": false,
287
287
  "reflect": false,
288
+ "attribute": "name",
288
289
  "defaultValue": "this.identifier"
289
290
  },
290
291
  "readonly": {
291
292
  "type": "boolean",
292
- "attribute": "readonly",
293
293
  "mutable": false,
294
294
  "complexType": {
295
295
  "original": "boolean",
@@ -305,11 +305,11 @@ export class MgForm {
305
305
  "getter": false,
306
306
  "setter": false,
307
307
  "reflect": false,
308
+ "attribute": "readonly",
308
309
  "defaultValue": "false"
309
310
  },
310
311
  "requiredMessage": {
311
312
  "type": "string",
312
- "attribute": "required-message",
313
313
  "mutable": false,
314
314
  "complexType": {
315
315
  "original": "RequiredMessageStatusType",
@@ -330,11 +330,11 @@ export class MgForm {
330
330
  },
331
331
  "getter": false,
332
332
  "setter": false,
333
- "reflect": false
333
+ "reflect": false,
334
+ "attribute": "required-message"
334
335
  },
335
336
  "ariaRole": {
336
337
  "type": "string",
337
- "attribute": "aria-role",
338
338
  "mutable": false,
339
339
  "complexType": {
340
340
  "original": "AriaRoleType",
@@ -355,11 +355,11 @@ export class MgForm {
355
355
  },
356
356
  "getter": false,
357
357
  "setter": false,
358
- "reflect": false
358
+ "reflect": false,
359
+ "attribute": "aria-role"
359
360
  },
360
361
  "labelOnTop": {
361
362
  "type": "boolean",
362
- "attribute": "label-on-top",
363
363
  "mutable": false,
364
364
  "complexType": {
365
365
  "original": "boolean",
@@ -375,11 +375,11 @@ export class MgForm {
375
375
  "getter": false,
376
376
  "setter": false,
377
377
  "reflect": false,
378
+ "attribute": "label-on-top",
378
379
  "defaultValue": "false"
379
380
  },
380
381
  "disabled": {
381
382
  "type": "boolean",
382
- "attribute": "disabled",
383
383
  "mutable": false,
384
384
  "complexType": {
385
385
  "original": "boolean",
@@ -395,11 +395,11 @@ export class MgForm {
395
395
  "getter": false,
396
396
  "setter": false,
397
397
  "reflect": false,
398
+ "attribute": "disabled",
398
399
  "defaultValue": "false"
399
400
  },
400
401
  "valid": {
401
402
  "type": "boolean",
402
- "attribute": "valid",
403
403
  "mutable": true,
404
404
  "complexType": {
405
405
  "original": "boolean",
@@ -414,11 +414,11 @@ export class MgForm {
414
414
  },
415
415
  "getter": false,
416
416
  "setter": false,
417
- "reflect": false
417
+ "reflect": false,
418
+ "attribute": "valid"
418
419
  },
419
420
  "invalid": {
420
421
  "type": "boolean",
421
- "attribute": "invalid",
422
422
  "mutable": true,
423
423
  "complexType": {
424
424
  "original": "boolean",
@@ -433,7 +433,8 @@ export class MgForm {
433
433
  },
434
434
  "getter": false,
435
435
  "setter": false,
436
- "reflect": false
436
+ "reflect": false,
437
+ "attribute": "invalid"
437
438
  }
438
439
  };
439
440
  }
@@ -506,12 +507,20 @@ export class MgForm {
506
507
  "Promise": {
507
508
  "location": "global",
508
509
  "id": "global::Promise"
510
+ },
511
+ "Node": {
512
+ "location": "global",
513
+ "id": "global::Node"
514
+ },
515
+ "HTMLMgFieldsetElement": {
516
+ "location": "global",
517
+ "id": "global::HTMLMgFieldsetElement"
509
518
  }
510
519
  },
511
520
  "return": "Promise<void>"
512
521
  },
513
522
  "docs": {
514
- "text": "Display input error if it exists.",
523
+ "text": "Display inputs/fieldsets errors if it exists.",
515
524
  "tags": []
516
525
  }
517
526
  },
@@ -81,7 +81,7 @@ export class MgIllustratedMessage {
81
81
  * @returns HTML Element
82
82
  */
83
83
  render() {
84
- return (h("div", { key: 'b7cea46c2fad219e02009fa44c772c0a09a5234f', class: this.classCollection.join() }, h("div", { key: '56b956ee405886ef2de2ef413ac1bc6902f287b3', class: "mg-c-illustrated-message__illustration" }, h("slot", { key: '33183d226a2443ccf1763ebff4c48f670d1d77ec', name: "illustration" })), h("div", { key: '69a7e034da7e2aef8dc488f9275b4546e905513c', class: "mg-c-illustrated-message__slots" }, h("slot", { key: '0eb9d5126f3d13380ea0a13a9eb754a7543e4178', name: "title" }), h("slot", { key: '088d3bae3be0d5e5d9fc8c07fee42dda39177fd6', name: "details" }))));
84
+ return (h("div", { key: 'c9d8c8bfd2792b1cf5e78ab9d168d597b20e9a1e', class: this.classCollection.join() }, h("div", { key: 'cc8fa03147b9e59e6e8e015be9ed2b8dddd92ded', class: "mg-c-illustrated-message__illustration" }, h("slot", { key: '83a4ec2223c4e74511beb7c0abfa10e77cee425d', name: "illustration" })), h("div", { key: 'dbb4d13ca5324cab889fa2acc9b9b22522d7a8ec', class: "mg-c-illustrated-message__slots" }, h("slot", { key: '9e74d84becf29539ec9c37e8ad1e317714f3c86c', name: "title" }), h("slot", { key: 'ae97d25c19b76ca092560d2555ebd6a87f542ffe', name: "details" }))));
85
85
  }
86
86
  static get is() { return "mg-illustrated-message"; }
87
87
  static get encapsulation() { return "shadow"; }
@@ -99,7 +99,6 @@ export class MgIllustratedMessage {
99
99
  return {
100
100
  "size": {
101
101
  "type": "string",
102
- "attribute": "size",
103
102
  "mutable": false,
104
103
  "complexType": {
105
104
  "original": "IllustratedMessageSizeType",
@@ -121,11 +120,11 @@ export class MgIllustratedMessage {
121
120
  "getter": false,
122
121
  "setter": false,
123
122
  "reflect": false,
123
+ "attribute": "size",
124
124
  "defaultValue": "'medium'"
125
125
  },
126
126
  "direction": {
127
127
  "type": "string",
128
- "attribute": "direction",
129
128
  "mutable": false,
130
129
  "complexType": {
131
130
  "original": "IllustratedMessageDirectionType",
@@ -147,6 +146,7 @@ export class MgIllustratedMessage {
147
146
  "getter": false,
148
147
  "setter": false,
149
148
  "reflect": false,
149
+ "attribute": "direction",
150
150
  "defaultValue": "'vertical'"
151
151
  }
152
152
  };
@@ -29,7 +29,7 @@ export class MgLoader {
29
29
  * @returns HTML Element
30
30
  */
31
31
  render() {
32
- return (h("div", { key: 'b74028455b7003824fa5618b1751d05a91ab7071', class: "mg-c-loader", "aria-live": "polite" }, h("mg-icon", { key: '204acdb8f881b348148020214c05269878852c4f', icon: "loader", spin: true }), h("span", { key: '40f1792354df01ec9af61ab128575ea166f34cb5', class: { 'mg-u-visually-hidden': this.messageHide } }, this.message || this.messages.loader.inProgress)));
32
+ return (h("div", { key: '739b4cbacd8a8da056dbb1445c40fac2cf26766a', class: "mg-c-loader", "aria-live": "polite" }, h("mg-icon", { key: '95d3cbf26fcd6dbf0dad4853bf55aa66385f1aba', icon: "loader", spin: true }), h("span", { key: 'f6322cd3054d8976bd2ec24f86a2d6bb60ca7ae1', class: { 'mg-u-visually-hidden': this.messageHide } }, this.message || this.messages.loader.inProgress)));
33
33
  }
34
34
  static get is() { return "mg-loader"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -47,7 +47,6 @@ export class MgLoader {
47
47
  return {
48
48
  "message": {
49
49
  "type": "string",
50
- "attribute": "message",
51
50
  "mutable": false,
52
51
  "complexType": {
53
52
  "original": "string",
@@ -62,11 +61,11 @@ export class MgLoader {
62
61
  },
63
62
  "getter": false,
64
63
  "setter": false,
65
- "reflect": false
64
+ "reflect": false,
65
+ "attribute": "message"
66
66
  },
67
67
  "messageHide": {
68
68
  "type": "boolean",
69
- "attribute": "message-hide",
70
69
  "mutable": false,
71
70
  "complexType": {
72
71
  "original": "boolean",
@@ -82,6 +81,7 @@ export class MgLoader {
82
81
  "getter": false,
83
82
  "setter": false,
84
83
  "reflect": false,
84
+ "attribute": "message-hide",
85
85
  "defaultValue": "false"
86
86
  }
87
87
  };