@mgdis/mg-components 6.20.0 → 6.22.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.
- package/dist/cjs/{index-TUElr4Wv.js → index-BxB20_Vw.js} +54 -0
- package/dist/cjs/{index-Bp6wZzau.js → index-C2viYwrR.js} +1761 -80
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/mg-action-more_37.cjs.entry.js +761 -371
- package/dist/cjs/mg-alert.cjs.entry.js +17 -9
- package/dist/cjs/mg-breadcrumb.cjs.entry.js +63 -0
- package/dist/cjs/mg-components.cjs.js +3 -3
- package/dist/cjs/mg-fieldset.cjs.entry.js +24 -7
- package/dist/cjs/mg-input-combobox.cjs.entry.js +49 -19
- package/dist/cjs/mg-input-file.cjs.entry.js +384 -0
- package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +40096 -15821
- package/dist/cjs/{mg-input.conf-D7jmj_lh.js → mg-input.conf-BNpeATnq.js} +7 -0
- package/dist/cjs/mg-loader.cjs.entry.js +8 -6
- package/dist/cjs/mg-progress.cjs.entry.js +19 -9
- package/dist/collection/assets/icons/index.js +1 -1
- package/dist/collection/collection-manifest.json +5 -3
- package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js +1 -1
- package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +1 -1
- package/dist/collection/components/atoms/mg-card/mg-card.js +1 -1
- package/dist/collection/components/atoms/mg-divider/mg-divider.js +1 -1
- package/dist/collection/components/atoms/mg-icon/mg-icon.js +2 -2
- package/dist/collection/components/atoms/mg-tag/mg-tag.js +1 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +1 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input/mg-input.conf.js +6 -0
- package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +2 -2
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +2 -2
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-file/mg-input-file.js +877 -0
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +2 -2
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/custom-properties.scss +212 -0
- package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.js +1 -0
- package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/index.js +300 -94
- package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.conf.js +29 -0
- package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +163 -53
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +2 -2
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +1 -1
- package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +3 -36
- package/dist/collection/components/molecules/menus/mg-menu/mg-menu.conf.js +0 -4
- package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js +21 -43
- package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +65 -38
- package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +2 -2
- package/dist/collection/components/molecules/mg-alert/mg-alert.js +1 -1
- package/dist/collection/components/molecules/mg-breadcrumb/mg-breadcrumb.conf.js +1 -0
- package/dist/collection/components/molecules/mg-breadcrumb/mg-breadcrumb.js +92 -0
- package/dist/collection/components/molecules/mg-details/mg-details.js +1 -1
- package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +12 -3
- package/dist/collection/components/molecules/mg-form/mg-form.js +12 -2
- package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +1 -1
- package/dist/collection/components/molecules/mg-loader/mg-loader.js +1 -1
- package/dist/collection/components/molecules/mg-message/mg-message.js +2 -2
- package/dist/collection/components/molecules/mg-modal/mg-modal.js +2 -2
- package/dist/collection/components/molecules/mg-panel/mg-panel.js +1 -1
- package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +1 -1
- package/dist/collection/components/molecules/mg-popover/mg-popover.js +1 -1
- package/dist/collection/components/molecules/mg-progress/mg-progress.js +1 -1
- package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +1 -1
- package/dist/collection/components/molecules/mg-table/mg-table.js +37 -0
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +0 -4
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +13 -33
- package/dist/collection/locales/en/messages.json +14 -0
- package/dist/collection/locales/fr/messages.json +14 -0
- package/dist/components/events.utils.js +1 -23
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -1
- package/dist/components/index2.js +1 -408
- package/dist/components/index3.js +1 -476
- package/dist/components/mg-action-more.js +1 -254
- package/dist/components/mg-alert.js +1 -224
- package/dist/components/mg-badge.js +1 -6
- package/dist/components/mg-badge2.js +1 -113
- package/dist/components/mg-breadcrumb.d.ts +11 -0
- package/dist/components/mg-breadcrumb.js +1 -0
- package/dist/components/mg-button.js +1 -6
- package/dist/components/mg-button2.js +1 -275
- package/dist/components/mg-card.js +1 -6
- package/dist/components/mg-card2.js +1 -92
- package/dist/components/mg-character-left.js +1 -6
- package/dist/components/mg-character-left2.js +1 -75
- package/dist/components/mg-details.js +1 -104
- package/dist/components/mg-divider.js +1 -6
- package/dist/components/mg-divider2.js +1 -49
- package/dist/components/mg-fieldset.js +1 -209
- package/dist/components/mg-form.js +1 -302
- package/dist/components/mg-icon.js +1 -6
- package/dist/components/mg-icon2.js +1 -188
- package/dist/components/mg-illustrated-message.js +1 -129
- package/dist/components/mg-input-checkbox-paginated.js +1 -6
- package/dist/components/mg-input-checkbox-paginated2.js +1 -135
- package/dist/components/mg-input-checkbox.js +1 -762
- package/dist/components/mg-input-combobox.js +1 -940
- package/dist/components/mg-input-date.js +1 -463
- package/dist/components/mg-input-file.d.ts +11 -0
- package/dist/components/mg-input-file.js +1 -0
- package/dist/components/mg-input-numeric.js +1 -592
- package/dist/components/mg-input-password.js +1 -360
- package/dist/components/mg-input-radio.js +1 -392
- package/dist/components/mg-input-rich-text-editor.js +1663 -16797
- package/dist/components/mg-input-select.js +1 -6
- package/dist/components/mg-input-select2.js +1 -481
- package/dist/components/mg-input-text.js +1 -6
- package/dist/components/mg-input-text2.js +1 -514
- package/dist/components/mg-input-textarea.js +1 -412
- package/dist/components/mg-input-title.js +1 -6
- package/dist/components/mg-input-title2.js +1 -81
- package/dist/components/mg-input-toggle.js +1 -371
- package/dist/components/mg-input.conf.js +1 -0
- package/dist/components/mg-input.js +1 -6
- package/dist/components/mg-input2.js +1 -459
- package/dist/components/mg-item-more.js +1 -6
- package/dist/components/mg-item-more2.js +1 -505
- package/dist/components/mg-loader.js +1 -6
- package/dist/components/mg-loader2.js +1 -74
- package/dist/components/mg-menu-item.js +1 -6
- package/dist/components/mg-menu-item2.js +1 -485
- package/dist/components/mg-menu.js +1 -6
- package/dist/components/mg-message.js +1 -6
- package/dist/components/mg-message2.js +1 -146
- package/dist/components/mg-modal.js +1 -184
- package/dist/components/mg-pagination.js +1 -234
- package/dist/components/mg-panel.js +1 -350
- package/dist/components/mg-popover-content.js +1 -6
- package/dist/components/mg-popover-content2.js +1 -96
- package/dist/components/mg-popover.js +1 -6
- package/dist/components/mg-popover2.js +1 -312
- package/dist/components/mg-progress.js +1 -123
- package/dist/components/mg-skip-links.js +1 -78
- package/dist/components/mg-table.js +1 -319
- package/dist/components/mg-tabs.js +1 -6
- package/dist/components/mg-tabs2.js +1 -315
- package/dist/components/mg-tag.js +1 -133
- package/dist/components/mg-tooltip-content.js +1 -6
- package/dist/components/mg-tooltip-content2.js +1 -42
- package/dist/components/mg-tooltip.js +1 -6
- package/dist/components/mg-tooltip2.js +1 -421
- package/dist/components/popper.js +1 -1790
- package/dist/esm/{index-BluNKQ3L.js → index-DFwaH2hS.js} +1761 -80
- package/dist/esm/{index-CNX6lq0x.js → index-DSEloqPn.js} +54 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/mg-action-more_37.entry.js +761 -371
- package/dist/esm/mg-alert.entry.js +17 -9
- package/dist/esm/mg-breadcrumb.entry.js +61 -0
- package/dist/esm/mg-components.js +4 -4
- package/dist/esm/mg-fieldset.entry.js +24 -7
- package/dist/esm/mg-input-combobox.entry.js +49 -19
- package/dist/esm/mg-input-file.entry.js +382 -0
- package/dist/esm/mg-input-rich-text-editor.entry.js +40083 -15808
- package/dist/esm/{mg-input.conf-DDnrE1hD.js → mg-input.conf-C9rmNQIL.js} +7 -1
- package/dist/esm/mg-loader.entry.js +8 -6
- package/dist/esm/mg-progress.entry.js +19 -9
- package/dist/mg-components/locales/en/messages.json +14 -0
- package/dist/mg-components/locales/fr/messages.json +14 -0
- package/dist/mg-components/mg-components.esm.js +1 -1
- package/dist/mg-components/p-0482eb9f.entry.js +1 -0
- package/dist/mg-components/{p-7132bca1.entry.js → p-2ee92f38.entry.js} +1 -1
- package/dist/mg-components/{p-916dfb6d.entry.js → p-3b653226.entry.js} +1 -1
- package/dist/mg-components/p-5745fbea.entry.js +1 -0
- package/dist/mg-components/p-C9rmNQIL.js +1 -0
- package/dist/mg-components/p-DFwaH2hS.js +2 -0
- package/dist/mg-components/p-DSEloqPn.js +1 -0
- package/dist/mg-components/p-adec7fcc.entry.js +1 -0
- package/dist/mg-components/p-c63f97f0.entry.js +1658 -0
- package/dist/mg-components/p-c8c8cfc1.entry.js +1 -0
- package/dist/mg-components/p-cc793586.entry.js +1 -0
- package/dist/mg-components/p-d5e69c95.entry.js +1 -0
- package/dist/types/assets/icons/index.d.ts +2 -0
- package/dist/types/components/molecules/inputs/mg-input/mg-input.conf.d.ts +7 -1
- package/dist/types/components/molecules/inputs/mg-input-file/mg-input-file.d.ts +210 -0
- package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.d.ts +17 -0
- package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/editor/index.d.ts +27 -19
- package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.conf.d.ts +3 -0
- package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.d.ts +50 -16
- package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.conf.d.ts +0 -5
- package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.d.ts +1 -6
- package/dist/types/components/molecules/menus/mg-menu/mg-menu.conf.d.ts +2 -10
- package/dist/types/components/molecules/menus/mg-menu/mg-menu.d.ts +7 -7
- package/dist/types/components/molecules/menus/mg-menu-item/mg-menu-item.d.ts +12 -8
- package/dist/types/components/molecules/mg-breadcrumb/mg-breadcrumb.conf.d.ts +18 -0
- package/dist/types/components/molecules/mg-breadcrumb/mg-breadcrumb.d.ts +34 -0
- package/dist/types/components/molecules/mg-table/mg-table.d.ts +6 -0
- package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +1 -9
- package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +4 -4
- package/dist/types/components.d.ts +302 -46
- package/dist/types/stencil-public-runtime.d.ts +76 -12
- package/ide/intellij/web-types.json +483 -51
- package/ide/vscode/css-custom-data.json +10 -2
- package/ide/vscode/html-custom-data.json +445 -104
- package/package.json +24 -23
- package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.scss +0 -1
- package/dist/mg-components/p-016bd291.entry.js +0 -1
- package/dist/mg-components/p-186a6139.entry.js +0 -1
- package/dist/mg-components/p-BluNKQ3L.js +0 -2
- package/dist/mg-components/p-CNX6lq0x.js +0 -1
- package/dist/mg-components/p-DDnrE1hD.js +0 -1
- package/dist/mg-components/p-cd061b38.entry.js +0 -1
- package/dist/mg-components/p-d2c72f09.entry.js +0 -1
- package/dist/mg-components/p-d5a276eb.entry.js +0 -1
- package/ide/vscode/custom.css-data.json +0 -425
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
const MgDivider = MgDivider$1;
|
|
4
|
-
const defineCustomElement = defineCustomElement$1;
|
|
5
|
-
|
|
6
|
-
export { MgDivider, defineCustomElement };
|
|
1
|
+
import{M as o,d as r}from"./mg-divider2.js";const s=o,d=r;export{s as MgDivider,d as defineCustomElement}
|
|
@@ -1,49 +1 @@
|
|
|
1
|
-
import
|
|
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:"a1b0e3b95ed9f52febab9f8d50b4053d1c13f7fb",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
|
|
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 d,c as a}from"./mg-input.conf.js";import{d as l}from"./mg-icon2.js";import{d as r}from"./mg-input2.js";import{d as h}from"./mg-input-title2.js";import{d as m}from"./mg-tooltip2.js";import{d as c}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&&!d(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:"b0b16a170de87de91fa02a38371eb3dd6fe995d7",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:"c449a5235da7b190d8d311469d15cebcfaf3badc",class:"mg-c-input__input-group"},s("slot",{key:"6d8c60e2555bfd65c8c146233dc840a2d73597d5"})))}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))||l();break;case"mg-input":customElements.get(t(e))||r();break;case"mg-input-title":customElements.get(t(e))||h();break;case"mg-tooltip":customElements.get(t(e))||m();break;case"mg-tooltip-content":customElements.get(t(e))||c()}}))}g();const u=p,b=g;export{u as MgFieldset,b as defineCustomElement}
|
|
@@ -1,302 +1 @@
|
|
|
1
|
-
import
|
|
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:"b1a6b50f2bbb9b71cecd23d419771cf1b40e13b4",class:this.classCollection.join(),id:this.identifier,name:this.name,onSubmit:this.handleFormSubmit,role:this.ariaRole},this.requiredMessageText&&r("p",{key:"9c878f3730a06e1b683240057511b588edf5e887",innerHTML:this.requiredMessageText}),r("slot",{key:"3cf5ca0f07e2f3573615cf6566e230f4d5678b31"}),!this.readonly&&!this.disabled&&r("slot",{key:"6cbfd58e9600f7a9d9b55ec23bdd64877c03f0d7",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
|
|
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}
|