@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,49 +1 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
-
3
- const mgDividerCss = "/*!\n * @prop --mg-c-divider-color-background: Defines the background color of the divider. The default value is `color-mix(in srgb, var(--mg-b-color-dark), transparent 85%)`.\n * @prop --mg-c-divider-thickness: Defines the thickness of the divider. The default value is `--mg-b-size-border`.\n * @prop --mg-c-divider-spacing-vertical: Defines the vertical spacing of the divider. The default value is `--mg-b-size-40`.\n */.mg-c-divider{width:var(--mg-b-size-120);height:var(--mg-c-divider-thickness);margin:var(--mg-c-divider-spacing-vertical) auto;background-color:var(--mg-c-divider-color-background)}.mg-c-divider.mg-c-divider--full-width{width:100%}";
4
-
5
- const MgDivider = /*@__PURE__*/ proxyCustomElement(class MgDivider extends HTMLElement {
6
- constructor(registerHost) {
7
- super();
8
- if (registerHost !== false) {
9
- this.__registerHost();
10
- }
11
- this.__attachShadow();
12
- /**************
13
- * Decorators *
14
- **************/
15
- /**
16
- * Define component size
17
- */
18
- this.fullWidth = false;
19
- }
20
- /**
21
- * Render
22
- * @returns HTML Element
23
- */
24
- render() {
25
- return (h("div", { key: '60b987cb329c6db14c2cc4a665e7f32b2696a3ee', class: {
26
- 'mg-c-divider': true,
27
- 'mg-c-divider--full-width': this.fullWidth,
28
- } }));
29
- }
30
- static get style() { return mgDividerCss; }
31
- }, [257, "mg-divider", {
32
- "fullWidth": [4, "full-width"]
33
- }]);
34
- function defineCustomElement() {
35
- if (typeof customElements === "undefined") {
36
- return;
37
- }
38
- const components = ["mg-divider"];
39
- components.forEach(tagName => { switch (tagName) {
40
- case "mg-divider":
41
- if (!customElements.get(tagName)) {
42
- customElements.define(tagName, MgDivider);
43
- }
44
- break;
45
- } });
46
- }
47
- defineCustomElement();
48
-
49
- export { MgDivider as M, defineCustomElement as d };
1
+ import{transformTag as i,proxyCustomElement as e,HTMLElement as d,h as t}from"@stencil/core/internal/client";const r=e(class extends d{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.fullWidth=!1}render(){return t("div",{key:"60b987cb329c6db14c2cc4a665e7f32b2696a3ee",class:{"mg-c-divider":!0,"mg-c-divider--full-width":this.fullWidth}})}static get style(){return".mg-c-divider{width:var(--mg-b-size-120);height:var(--mg-c-divider-thickness);margin:var(--mg-c-divider-spacing-vertical) auto;background-color:var(--mg-c-divider-color-background)}.mg-c-divider.mg-c-divider--full-width{width:100%}"}},[1,"mg-divider",{fullWidth:[4,"full-width"]}]);function c(){"undefined"!=typeof customElements&&["mg-divider"].forEach((e=>{"mg-divider"===e&&(customElements.get(i(e))||customElements.define(i(e),r))}))}c();export{r as M,c as d}
@@ -1,209 +1 @@
1
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
- import { C as ClassList, i as isValidString } from './index2.js';
3
- import { d as defineCustomElement$5, c as classReadonly } from './mg-input2.js';
4
- import { d as defineCustomElement$6 } from './mg-icon2.js';
5
- import { d as defineCustomElement$4 } from './mg-input-title2.js';
6
- import { d as defineCustomElement$3 } from './mg-tooltip2.js';
7
- import { d as defineCustomElement$2 } from './mg-tooltip-content2.js';
8
-
9
- const MgFieldset$1 = /*@__PURE__*/ proxyCustomElement(class MgFieldset extends HTMLElement {
10
- constructor(registerHost) {
11
- super();
12
- if (registerHost !== false) {
13
- this.__registerHost();
14
- }
15
- this.__attachShadow();
16
- /**
17
- * Fieldset name
18
- * If not set the value equals the identifier
19
- */
20
- this.name = this.identifier;
21
- /**
22
- * Define if legend is visible
23
- */
24
- this.legendHide = false;
25
- /**
26
- * Define if legend border is visible.
27
- */
28
- this.legendBorderDisplay = false;
29
- /**
30
- * Define if inputs are readonly
31
- */
32
- this.readonly = false;
33
- /**
34
- * Define if inputs are disabled
35
- */
36
- this.disabled = false;
37
- /**
38
- * Component classes
39
- */
40
- this.classCollection = new ClassList(['mg-c-input--fieldset']);
41
- /**
42
- * Check if fieldset is valid
43
- */
44
- this.checkValidity = () => {
45
- var _a;
46
- this.valid = !(this.mgInputs.some(input => input.invalid) || ((_a = this.errorMessage) === null || _a === void 0 ? void 0 : _a.length) > 0);
47
- };
48
- /**
49
- * Set mgInputs
50
- */
51
- this.setMgInputs = () => {
52
- // Get slotted mgInputs
53
- this.mgInputs = Array.from(this.element.querySelectorAll('*')).filter((node) => node.nodeName.startsWith('MG-INPUT'));
54
- // Set inputs readonly or disabled based on form configuration
55
- // Othewise listen to events
56
- this.mgInputs.forEach(input => {
57
- if (this.readonly) {
58
- input.readonly = true;
59
- }
60
- else if (this.disabled) {
61
- input.disabled = true;
62
- }
63
- else {
64
- input.addEventListener('input-valid', this.checkValidity);
65
- }
66
- });
67
- };
68
- }
69
- watchLegendBorderDisplay(newValue) {
70
- if (newValue && !isValidString(this.legendHeading)) {
71
- throw new Error('<mg-fieldset> prop "legendBorderDisplay" must not be paired with the prop "legendHeading".');
72
- }
73
- }
74
- watchReadonly(newValue) {
75
- if (newValue) {
76
- this.classCollection.add(classReadonly);
77
- }
78
- else {
79
- this.classCollection.delete(classReadonly);
80
- }
81
- }
82
- handleAttributeChange() {
83
- this.setMgInputs();
84
- }
85
- /**
86
- * Component is not a candidate for constraint validation.
87
- * You can use this method to define the `errorMessage` and set the `valid` state to `false`.
88
- * @param errorMessage - error message to display. Use a valid `string` to define an error or `undefined` to delete the error
89
- */
90
- async setCustomValidity(errorMessage) {
91
- if (isValidString(errorMessage)) {
92
- this.errorMessage = errorMessage;
93
- }
94
- else {
95
- this.errorMessage = undefined;
96
- }
97
- this.checkValidity();
98
- }
99
- /**
100
- * Display inputs error if it exists.
101
- */
102
- async displayError() {
103
- if (!this.readonly) {
104
- this.mgInputs.forEach(input => {
105
- input.displayError();
106
- });
107
- }
108
- }
109
- /*************
110
- * Lifecycle *
111
- *************/
112
- /**
113
- * Check if component props are well configured on init
114
- */
115
- componentWillLoad() {
116
- this.watchReadonly(this.readonly);
117
- this.watchLegendBorderDisplay(this.legendBorderDisplay);
118
- this.setMgInputs();
119
- }
120
- /**
121
- * Add slot listeners
122
- */
123
- componentDidLoad() {
124
- // Update mgInputs when mgForm content change
125
- const observerOptions = { childList: true, subtree: true };
126
- new MutationObserver(mutations => {
127
- if (mutations.some(mutation => Object.keys(observerOptions).includes(mutation.type))) {
128
- this.setMgInputs();
129
- }
130
- }).observe(this.element, observerOptions);
131
- }
132
- /**
133
- * Render
134
- * @returns HTML Element
135
- */
136
- render() {
137
- 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' }))));
138
- }
139
- get element() { return this; }
140
- static get watchers() { return {
141
- "legendBorderDisplay": ["watchLegendBorderDisplay"],
142
- "readonly": ["watchReadonly", "handleAttributeChange"],
143
- "disabled": ["handleAttributeChange"]
144
- }; }
145
- }, [257, "mg-fieldset", {
146
- "identifier": [1],
147
- "name": [1],
148
- "legend": [1],
149
- "legendHide": [4, "legend-hide"],
150
- "legendHeading": [1, "legend-heading"],
151
- "legendBorderDisplay": [4, "legend-border-display"],
152
- "readonly": [4],
153
- "disabled": [4],
154
- "tooltip": [1],
155
- "helpText": [1, "help-text"],
156
- "errorMessage": [32],
157
- "valid": [32],
158
- "classCollection": [32],
159
- "setCustomValidity": [64],
160
- "displayError": [64]
161
- }, undefined, {
162
- "legendBorderDisplay": ["watchLegendBorderDisplay"],
163
- "readonly": ["watchReadonly", "handleAttributeChange"],
164
- "disabled": ["handleAttributeChange"]
165
- }]);
166
- function defineCustomElement$1() {
167
- if (typeof customElements === "undefined") {
168
- return;
169
- }
170
- const components = ["mg-fieldset", "mg-icon", "mg-input", "mg-input-title", "mg-tooltip", "mg-tooltip-content"];
171
- components.forEach(tagName => { switch (tagName) {
172
- case "mg-fieldset":
173
- if (!customElements.get(tagName)) {
174
- customElements.define(tagName, MgFieldset$1);
175
- }
176
- break;
177
- case "mg-icon":
178
- if (!customElements.get(tagName)) {
179
- defineCustomElement$6();
180
- }
181
- break;
182
- case "mg-input":
183
- if (!customElements.get(tagName)) {
184
- defineCustomElement$5();
185
- }
186
- break;
187
- case "mg-input-title":
188
- if (!customElements.get(tagName)) {
189
- defineCustomElement$4();
190
- }
191
- break;
192
- case "mg-tooltip":
193
- if (!customElements.get(tagName)) {
194
- defineCustomElement$3();
195
- }
196
- break;
197
- case "mg-tooltip-content":
198
- if (!customElements.get(tagName)) {
199
- defineCustomElement$2();
200
- }
201
- break;
202
- } });
203
- }
204
- defineCustomElement$1();
205
-
206
- const MgFieldset = MgFieldset$1;
207
- const defineCustomElement = defineCustomElement$1;
208
-
209
- export { MgFieldset, defineCustomElement };
1
+ import{transformTag as t,proxyCustomElement as e,HTMLElement as i,h as s}from"@stencil/core/internal/client";import{C as o,i as n}from"./index2.js";import{i as l,c as a}from"./mg-input.conf.js";import{d as r}from"./mg-icon2.js";import{d}from"./mg-input2.js";import{d as h}from"./mg-input-title2.js";import{d as c}from"./mg-tooltip2.js";import{d as m}from"./mg-tooltip-content2.js";const p=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.name=this.identifier,this.legendHide=!1,this.legendBorderDisplay=!1,this.readonly=!1,this.disabled=!1,this.classCollection=new o(["mg-c-input--fieldset"]),this.checkValidity=()=>{var t;this.valid=!(this.mgInputs.some((t=>t.invalid))||(null===(t=this.errorMessage)||void 0===t?void 0:t.length)>0)},this.setMgInputs=()=>{this.mgInputs=Array.from(this.element.querySelectorAll("*")).filter((t=>t.nodeName.startsWith("MG-INPUT"))),this.mgInputs.forEach((t=>{"MG-INPUT-FILE"===t.nodeName&&(this.readonly?t.setAttribute("hidden",""):t.removeAttribute("hidden")),this.readonly&&!l(t)?t.readonly=!0:this.disabled?t.disabled=!0:t.addEventListener("input-valid",this.checkValidity)}))}}watchLegendBorderDisplay(t){if(t&&!n(this.legendHeading))throw Error('<mg-fieldset> prop "legendBorderDisplay" must not be paired with the prop "legendHeading".')}watchReadonly(t){t?this.classCollection.add(a):this.classCollection.delete(a)}handleAttributeChange(){this.setMgInputs()}async setCustomValidity(t){this.errorMessage=n(t)?t:void 0,this.checkValidity()}async displayError(){this.readonly||this.mgInputs.forEach((t=>{t.displayError()}))}componentWillLoad(){this.watchReadonly(this.readonly),this.watchLegendBorderDisplay(this.legendBorderDisplay),this.setMgInputs()}componentDidLoad(){const t={childList:!0,subtree:!0};new MutationObserver((e=>{e.some((e=>Object.keys(t).includes(e.type)))&&this.setMgInputs()})).observe(this.element,t)}render(){return s("mg-input",{key:"31ccb9f783687845080fc7f184cc54b7343fab65",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:void 0!==this.legendHeading,tooltip:this.tooltip,tooltipPosition:"label",helpText:this.helpText,errorMessage:!this.valid&&n(this.errorMessage)?this.errorMessage:void 0},s("span",{key:"eedf1c66eaf88bee037c11b812844bb5a92175c1",class:"mg-c-input__input-group"},s("slot",{key:"a28f6759a63873ef4a228820b4310b42fcf1d3c7"})))}get element(){return this}static get watchers(){return{legendBorderDisplay:[{watchLegendBorderDisplay:0}],readonly:[{watchReadonly:0},{handleAttributeChange:0}],disabled:[{handleAttributeChange:0}]}}},[257,"mg-fieldset",{identifier:[1],name:[1],legend:[1],legendHide:[4,"legend-hide"],legendHeading:[1,"legend-heading"],legendBorderDisplay:[4,"legend-border-display"],readonly:[4],disabled:[4],tooltip:[1],helpText:[1,"help-text"],errorMessage:[32],valid:[32],classCollection:[32],setCustomValidity:[64],displayError:[64]},void 0,{legendBorderDisplay:[{watchLegendBorderDisplay:0}],readonly:[{watchReadonly:0},{handleAttributeChange:0}],disabled:[{handleAttributeChange:0}]}]);function g(){"undefined"!=typeof customElements&&["mg-fieldset","mg-icon","mg-input","mg-input-title","mg-tooltip","mg-tooltip-content"].forEach((e=>{switch(e){case"mg-fieldset":customElements.get(t(e))||customElements.define(t(e),p);break;case"mg-icon":customElements.get(t(e))||r();break;case"mg-input":customElements.get(t(e))||d();break;case"mg-input-title":customElements.get(t(e))||h();break;case"mg-tooltip":customElements.get(t(e))||c();break;case"mg-tooltip-content":customElements.get(t(e))||m()}}))}g();const u=p,b=g;export{u as MgFieldset,b as defineCustomElement}
@@ -1,302 +1 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
- import { c as createID, C as ClassList, a as isValideID, t as toString } from './index2.js';
3
- import { i as initLocales } from './index3.js';
4
-
5
- /**
6
- * List of all possibles roles
7
- */
8
- const roles = ['form', 'search', 'none', 'presentation'];
9
- /**
10
- * List of all possibles required message status
11
- */
12
- const requiredMessageStatus = ['default', 'hide'];
13
-
14
- const mgFormCss = ".mg-u-form-legacy{--mg-c-form-inputs-title-width:calc(100% / 3 - 20px)}.mg-u-is-asterisk{color:var(--mg-b-color-danger)}/*!\n * @prop --mg-c-form-inputs-title-width: Defines the width of the input title. Fallback on `calc(28 * var(--mg-b-size-8))`.\n */.mg-c-form{--mg-c-input-title-width:var(--mg-c-form-inputs-title-width, calc(28 * var(--mg-b-size-8)));--mg-c-input-margin-bottom:var(--mg-b-size-16);--mg-c-input-title-horizontal-space:var(--mg-b-size-32)}.mg-c-form.mg-c-form--all-required{--mg-c-input-title-display:none}.mg-c-form.mg-c-form--label-on-top{--mg-c-input-margin-bottom:var(--mg-b-size-24)}.mg-c-form>p{font-size:var(--mg-b-font-size-small)}";
15
-
16
- const MgForm$1 = /*@__PURE__*/ proxyCustomElement(class MgForm extends HTMLElement {
17
- constructor(registerHost) {
18
- super();
19
- if (registerHost !== false) {
20
- this.__registerHost();
21
- }
22
- this.__attachShadow();
23
- this.formValid = createEvent(this, "form-valid", 7);
24
- this.formSubmit = createEvent(this, "form-submit", 7);
25
- this.formReset = createEvent(this, "form-reset", 7);
26
- // Classes
27
- this.classAllRequired = 'mg-c-form--all-required';
28
- this.classLabelOnTop = 'mg-c-form--label-on-top';
29
- /**
30
- * Identifier is used for the element ID (id is a reserved prop in Stencil.js)
31
- * If not set, it will be created.
32
- */
33
- this.identifier = createID('mg-form');
34
- /**
35
- * Input name
36
- * If not set the value equals the identifier
37
- */
38
- this.name = this.identifier;
39
- /**
40
- * Define if form is readonly
41
- */
42
- this.readonly = false;
43
- /**
44
- * Define if slotted mg-component's label are displayed on top
45
- */
46
- this.labelOnTop = false;
47
- /**
48
- * Define if form is disabled
49
- */
50
- this.disabled = false;
51
- /**
52
- * Component classes
53
- */
54
- this.classCollection = new ClassList(['mg-c-form']);
55
- /**
56
- * Define required message based on mg-inputs required elements
57
- */
58
- this.setRequiredMessage = () => {
59
- // init required message
60
- this.requiredMessageText = null;
61
- this.classCollection.delete(this.classAllRequired);
62
- if (this.requiredMessage === 'hide')
63
- return;
64
- else if (this.requiredMessage === 'default') {
65
- this.requiredMessageText = this.messages.form.required;
66
- return;
67
- }
68
- // If the form is disabled or readonly none of them are required
69
- // Check if all fields are not editable (readonly or disabled)
70
- const isEditable = input => !(input.disabled || input.readonly);
71
- const isMgInputToggle = input => input.nodeName === 'MG-INPUT-TOGGLE';
72
- if (!this.disabled && !this.readonly && this.mgInputs.some(input => isEditable(input) && !isMgInputToggle(input))) {
73
- // Get editable inputs
74
- const editableInputs = this.mgInputs.filter(isEditable);
75
- // Get required inputs
76
- // mg-input-toggle can not be required
77
- const requiredInputs = editableInputs.filter(input => !isMgInputToggle(input) && input.required);
78
- // All inputs are required
79
- if ([requiredInputs.length, editableInputs.length].every(length => length === 1) ||
80
- (requiredInputs.length > 1 && requiredInputs.length === editableInputs.filter(input => !isMgInputToggle(input)).length)) {
81
- this.requiredMessageText = this.getRequiredMessageBasedOnCount(requiredInputs, 'allRequiredSingle', 'allRequired');
82
- this.classCollection.add(this.classAllRequired);
83
- }
84
- // Some fields are required
85
- else if (requiredInputs.length > 0) {
86
- this.requiredMessageText = this.getRequiredMessageBasedOnCount(requiredInputs, 'requiredSingle', 'required');
87
- }
88
- }
89
- };
90
- /**
91
- * Returns a required message based on the count of required inputs.
92
- * @param requiredInputs - An array of required input elements.
93
- * @param keySingle - The key for the singular message format.
94
- * @param keyPlural - The key for the plural message format.
95
- * @returns The appropriate required message based on the count of required inputs.
96
- */
97
- this.getRequiredMessageBasedOnCount = (requiredInputs, keySingle, keyPlural) => this.messages.form[requiredInputs.length === 1 ? keySingle : keyPlural];
98
- /**
99
- * Check if form is valid
100
- */
101
- this.checkValidity = () => {
102
- // Update required on input event
103
- this.setRequiredMessage();
104
- this.valid = !this.mgInputs.some(input => input.invalid);
105
- this.invalid = !this.valid;
106
- // We need to send valid event if it is the same value
107
- this.formValid.emit(this.valid);
108
- };
109
- /**
110
- * Handle Form Submit
111
- * @param event - submit event
112
- */
113
- this.handleFormSubmit = (event) => {
114
- event.preventDefault();
115
- this.formSubmit.emit();
116
- };
117
- /**
118
- * Set mgInputs
119
- */
120
- this.setMgInputs = () => {
121
- // Get slotted mgInputs
122
- this.mgInputs = Array.from(this.element.querySelectorAll('*')).filter((node) => node.nodeName.startsWith('MG-INPUT'));
123
- // Set inputs readonly or disabled based on form configuration
124
- // Othewise listen to events
125
- this.mgInputs.forEach(input => {
126
- if (this.labelOnTop) {
127
- input.labelOnTop = true;
128
- }
129
- if (this.readonly) {
130
- input.readonly = true;
131
- }
132
- else if (this.disabled) {
133
- input.disabled = true;
134
- }
135
- else {
136
- input.addEventListener('input-valid', this.checkValidity);
137
- }
138
- });
139
- };
140
- }
141
- watchIdentifier(newValue) {
142
- if (!isValideID(newValue)) {
143
- console.error(`<mg-form> prop "identifier" value is invalid. Passed value: ${toString(newValue)}.`);
144
- }
145
- }
146
- validateRequiredMessage(newValue) {
147
- if (newValue && !requiredMessageStatus.includes(newValue)) {
148
- throw new Error(`<mg-form> prop "requiredMessage" must be one of: ${requiredMessageStatus.join(', ')}. Passed value: ${toString(newValue)}.`);
149
- }
150
- }
151
- validateAriaRole(newValue) {
152
- if (newValue && !roles.includes(newValue)) {
153
- throw new Error(`<mg-form> prop "ariaRole" must be one of: ${roles.join(', ')}. Passed value: ${toString(newValue)}.`);
154
- }
155
- }
156
- handlelabelOnTop(newValue) {
157
- if (newValue) {
158
- this.classCollection.add(this.classLabelOnTop);
159
- }
160
- else {
161
- this.classCollection.delete(this.classLabelOnTop);
162
- }
163
- }
164
- handleAttributeChange() {
165
- this.setMgInputs();
166
- this.setRequiredMessage();
167
- }
168
- /**
169
- * Display inputs/fieldsets errors if it exists.
170
- */
171
- async displayError() {
172
- if (!this.readonly) {
173
- const mgFieldsets = Array.from(this.element.querySelectorAll('*')).filter((node) => node.nodeName.startsWith('MG-FIELDSET'));
174
- [...mgFieldsets, ...this.mgInputs].forEach(input => {
175
- var _a;
176
- (_a = input.displayError) === null || _a === void 0 ? void 0 : _a.call(input);
177
- });
178
- this.checkValidity();
179
- }
180
- }
181
- /**
182
- * Reset form inputs values, validity and error state
183
- */
184
- async reset() {
185
- if (!this.readonly) {
186
- await Promise.all(this.mgInputs.map(async (input) => {
187
- if (input.reset !== undefined) {
188
- await input.reset();
189
- }
190
- }));
191
- this.checkValidity();
192
- this.formReset.emit(true);
193
- }
194
- }
195
- /*************
196
- * Lifecycle *
197
- *************/
198
- /**
199
- * Check if component props are well configured on init
200
- */
201
- componentWillLoad() {
202
- // Get locales
203
- this.messages = initLocales(this.element).messages;
204
- this.watchIdentifier(this.identifier);
205
- this.validateAriaRole(this.ariaRole);
206
- this.validateRequiredMessage(this.requiredMessage);
207
- this.handlelabelOnTop(this.labelOnTop);
208
- // Get slotted mgButtons
209
- this.mgButtons = Array.from(this.element.querySelectorAll('mg-button'));
210
- // Set button form identifier
211
- this.mgButtons.forEach(mgButton => {
212
- mgButton.setAttribute('form', this.identifier);
213
- if (mgButton.type === 'reset') {
214
- mgButton.addEventListener('click', () => {
215
- this.reset();
216
- });
217
- }
218
- });
219
- // Set mgInputs
220
- this.setMgInputs();
221
- // Check validity when slotted mgInputs are ready
222
- Promise.all(this.mgInputs.map(async (input) => {
223
- try {
224
- await input.componentOnReady();
225
- }
226
- catch (_a) { } // prevent error with VueJS first render
227
- })).then(() => {
228
- // Define required message and check validity
229
- this.checkValidity();
230
- });
231
- }
232
- /**
233
- * Add slot listeners
234
- */
235
- componentDidLoad() {
236
- // Update mgInputs when mgForm content change
237
- const observerOptions = { childList: true, subtree: true };
238
- new MutationObserver(mutations => {
239
- if (mutations.some(mutation => Object.keys(observerOptions).includes(mutation.type))) {
240
- this.setMgInputs();
241
- this.checkValidity();
242
- }
243
- }).observe(this.element, observerOptions);
244
- }
245
- /**
246
- * Render
247
- * @returns HTML Element
248
- */
249
- render() {
250
- 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" })));
251
- }
252
- get element() { return this; }
253
- static get watchers() { return {
254
- "identifier": ["watchIdentifier"],
255
- "requiredMessage": ["validateRequiredMessage", "handleAttributeChange"],
256
- "ariaRole": ["validateAriaRole"],
257
- "labelOnTop": ["handlelabelOnTop"],
258
- "readonly": ["handleAttributeChange"],
259
- "disabled": ["handleAttributeChange"]
260
- }; }
261
- static get style() { return mgFormCss; }
262
- }, [257, "mg-form", {
263
- "identifier": [1],
264
- "name": [1],
265
- "readonly": [4],
266
- "requiredMessage": [1, "required-message"],
267
- "ariaRole": [1, "aria-role"],
268
- "labelOnTop": [4, "label-on-top"],
269
- "disabled": [4],
270
- "valid": [1028],
271
- "invalid": [1028],
272
- "classCollection": [32],
273
- "requiredMessageText": [32],
274
- "displayError": [64],
275
- "reset": [64]
276
- }, undefined, {
277
- "identifier": ["watchIdentifier"],
278
- "requiredMessage": ["validateRequiredMessage", "handleAttributeChange"],
279
- "ariaRole": ["validateAriaRole"],
280
- "labelOnTop": ["handlelabelOnTop"],
281
- "readonly": ["handleAttributeChange"],
282
- "disabled": ["handleAttributeChange"]
283
- }]);
284
- function defineCustomElement$1() {
285
- if (typeof customElements === "undefined") {
286
- return;
287
- }
288
- const components = ["mg-form"];
289
- components.forEach(tagName => { switch (tagName) {
290
- case "mg-form":
291
- if (!customElements.get(tagName)) {
292
- customElements.define(tagName, MgForm$1);
293
- }
294
- break;
295
- } });
296
- }
297
- defineCustomElement$1();
298
-
299
- const MgForm = MgForm$1;
300
- const defineCustomElement = defineCustomElement$1;
301
-
302
- export { MgForm, defineCustomElement };
1
+ import{transformTag as i,proxyCustomElement as t,HTMLElement as e,createEvent as s,h as r}from"@stencil/core/internal/client";import{c as a,C as h,a as o,t as n}from"./index2.js";import{i as l}from"./index3.js";import{i as d}from"./mg-input.conf.js";const m=["form","search","none","presentation"],c=["default","hide"],f=t(class extends e{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.formValid=s(this,"form-valid",7),this.formSubmit=s(this,"form-submit",7),this.formReset=s(this,"form-reset",7),this.classAllRequired="mg-c-form--all-required",this.classLabelOnTop="mg-c-form--label-on-top",this.identifier=a("mg-form"),this.name=this.identifier,this.readonly=!1,this.labelOnTop=!1,this.disabled=!1,this.classCollection=new h(["mg-c-form"]),this.setRequiredMessage=()=>{if(this.requiredMessageText=null,this.classCollection.delete(this.classAllRequired),"hide"===this.requiredMessage)return;if("default"===this.requiredMessage)return void(this.requiredMessageText=this.messages.form.required);const i=i=>!(i.disabled||i.readonly),t=i=>"MG-INPUT-TOGGLE"===i.nodeName;if(!this.disabled&&!this.readonly&&this.mgInputs.some((e=>i(e)&&!t(e)))){const e=this.mgInputs.filter(i),s=e.filter((i=>!t(i)&&i.required));[s.length,e.length].every((i=>1===i))||s.length>1&&s.length===e.filter((i=>!t(i))).length?(this.requiredMessageText=this.getRequiredMessageBasedOnCount(s,"allRequiredSingle","allRequired"),this.classCollection.add(this.classAllRequired)):s.length>0&&(this.requiredMessageText=this.getRequiredMessageBasedOnCount(s,"requiredSingle","required"))}},this.getRequiredMessageBasedOnCount=(i,t,e)=>this.messages.form[1===i.length?t:e],this.checkValidity=()=>{this.setRequiredMessage(),this.valid=!this.mgInputs.some((i=>i.invalid)),this.invalid=!this.valid,this.formValid.emit(this.valid)},this.handleFormSubmit=i=>{i.preventDefault(),this.formSubmit.emit()},this.setMgInputs=()=>{this.mgInputs=Array.from(this.element.querySelectorAll("*")).filter((i=>i.nodeName.startsWith("MG-INPUT"))),this.mgInputs.forEach((i=>{this.labelOnTop&&(i.labelOnTop=!0),"MG-INPUT-FILE"===i.nodeName&&(this.readonly?i.setAttribute("hidden",""):i.removeAttribute("hidden")),this.readonly&&!d(i)?i.readonly=!0:this.disabled?i.disabled=!0:i.addEventListener("input-valid",this.checkValidity)}))}}watchIdentifier(i){o(i)||console.error(`<mg-form> prop "identifier" value is invalid. Passed value: ${n(i)}.`)}validateRequiredMessage(i){if(i&&!c.includes(i))throw Error(`<mg-form> prop "requiredMessage" must be one of: ${c.join(", ")}. Passed value: ${n(i)}.`)}validateAriaRole(i){if(i&&!m.includes(i))throw Error(`<mg-form> prop "ariaRole" must be one of: ${m.join(", ")}. Passed value: ${n(i)}.`)}handlelabelOnTop(i){i?this.classCollection.add(this.classLabelOnTop):this.classCollection.delete(this.classLabelOnTop)}handleAttributeChange(){this.setMgInputs(),this.setRequiredMessage()}async displayError(){this.readonly||([...Array.from(this.element.querySelectorAll("*")).filter((i=>i.nodeName.startsWith("MG-FIELDSET"))),...this.mgInputs].forEach((i=>{var t;null===(t=i.displayError)||void 0===t||t.call(i)})),this.checkValidity())}async reset(){this.readonly||(await Promise.all(this.mgInputs.map((async i=>{void 0!==i.reset&&await i.reset()}))),this.checkValidity(),this.formReset.emit(!0))}componentWillLoad(){this.messages=l(this.element).messages,this.watchIdentifier(this.identifier),this.validateAriaRole(this.ariaRole),this.validateRequiredMessage(this.requiredMessage),this.handlelabelOnTop(this.labelOnTop),this.mgButtons=Array.from(this.element.querySelectorAll("mg-button")),this.mgButtons.forEach((i=>{i.setAttribute("form",this.identifier),"reset"===i.type&&i.addEventListener("click",(()=>{this.reset()}))})),this.setMgInputs(),Promise.all(this.mgInputs.map((async i=>{try{await i.componentOnReady()}catch(i){}}))).then((()=>{this.checkValidity()}))}componentDidLoad(){const i={childList:!0,subtree:!0};new MutationObserver((t=>{t.some((t=>Object.keys(i).includes(t.type)))&&(this.setMgInputs(),this.checkValidity())})).observe(this.element,i)}render(){return r("form",{key:"b2e3d218d978f1194b2c461ab75cae7d491bc2c3",class:this.classCollection.join(),id:this.identifier,name:this.name,onSubmit:this.handleFormSubmit,role:this.ariaRole},this.requiredMessageText&&r("p",{key:"dd6db1a740f5fe525c3b652c2128aba6185970b8",innerHTML:this.requiredMessageText}),r("slot",{key:"5221d0c8fa5e30749c82d01490b402d9e46a63cd"}),!this.readonly&&!this.disabled&&r("slot",{key:"fb2595b8c5df85b9cefac0f43e54e463d529fff4",name:"actions"}))}get element(){return this}static get watchers(){return{identifier:[{watchIdentifier:0}],requiredMessage:[{validateRequiredMessage:0},{handleAttributeChange:0}],ariaRole:[{validateAriaRole:0}],labelOnTop:[{handlelabelOnTop:0}],readonly:[{handleAttributeChange:0}],disabled:[{handleAttributeChange:0}]}}static get style(){return".mg-u-form-legacy{--mg-c-form-inputs-title-width:calc(100% / 3 - 20px)}.mg-u-is-asterisk{color:var(--mg-b-color-danger)}.mg-c-form{--mg-c-input-title-width:var(--mg-c-form-inputs-title-width, calc(28 * var(--mg-b-size-8)));--mg-c-input-margin-bottom:var(--mg-b-size-16);--mg-c-input-title-horizontal-space:var(--mg-b-size-32)}.mg-c-form.mg-c-form--all-required{--mg-c-input-title-display:none}.mg-c-form.mg-c-form--label-on-top{--mg-c-input-margin-bottom:var(--mg-b-size-24)}.mg-c-form>p{font-size:var(--mg-b-font-size-small)}"}},[257,"mg-form",{identifier:[1],name:[1],readonly:[4],requiredMessage:[1,"required-message"],ariaRole:[1,"aria-role"],labelOnTop:[4,"label-on-top"],disabled:[4],valid:[1028],invalid:[1028],classCollection:[32],requiredMessageText:[32],displayError:[64],reset:[64]},void 0,{identifier:[{watchIdentifier:0}],requiredMessage:[{validateRequiredMessage:0},{handleAttributeChange:0}],ariaRole:[{validateAriaRole:0}],labelOnTop:[{handlelabelOnTop:0}],readonly:[{handleAttributeChange:0}],disabled:[{handleAttributeChange:0}]}]);function u(){"undefined"!=typeof customElements&&["mg-form"].forEach((t=>{"mg-form"===t&&(customElements.get(i(t))||customElements.define(i(t),f))}))}u();const g=f,b=u;export{g as MgForm,b as defineCustomElement}
@@ -1,6 +1 @@
1
- import { M as MgIcon$1, d as defineCustomElement$1 } from './mg-icon2.js';
2
-
3
- const MgIcon = MgIcon$1;
4
- const defineCustomElement = defineCustomElement$1;
5
-
6
- export { MgIcon, defineCustomElement };
1
+ import{M as o,d as s}from"./mg-icon2.js";const m=o,r=s;export{m as MgIcon,r as defineCustomElement}