@mgdis/mg-components 5.7.0 → 5.8.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/loader.cjs.js +1 -1
- package/dist/cjs/mg-action-more_31.cjs.entry.js +216 -565
- package/dist/cjs/mg-components.cjs.js +1 -1
- package/dist/cjs/mg-item-more.cjs.entry.js +273 -0
- package/dist/cjs/mg-menu.conf-9afe6571.js +242 -0
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/atoms/mg-button/mg-button.js +24 -0
- package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +8 -0
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +6 -2
- package/dist/collection/components/molecules/menu/mg-menu/mg-menu.conf.js +0 -13
- package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +39 -67
- package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +3 -3
- package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +156 -77
- package/dist/collection/components/molecules/mg-item-more/mg-item-more.conf.js +1 -0
- package/dist/collection/components/molecules/mg-item-more/mg-item-more.css +30 -0
- package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +200 -0
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +0 -2
- package/dist/collection/styles/navigation-button.scss +1 -1
- package/dist/collection/utils/behaviors.utils.js +33 -29
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/mg-action-more.js +2 -1
- package/dist/components/mg-button2.js +4 -1
- package/dist/components/mg-icon2.js +8 -0
- package/dist/components/mg-item-more.d.ts +11 -0
- package/dist/components/mg-item-more.js +336 -0
- package/dist/components/mg-menu-item2.js +134 -250
- package/dist/components/mg-menu.conf.js +14 -0
- package/dist/components/mg-menu2.js +35 -102
- package/dist/components/mg-tabs.js +1 -1
- package/dist/components/mg-tooltip2.js +6 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mg-action-more_31.entry.js +185 -534
- package/dist/esm/mg-components.js +1 -1
- package/dist/esm/mg-item-more.entry.js +269 -0
- package/dist/esm/mg-menu.conf-881fbd82.js +235 -0
- package/dist/mg-components/mg-components.css +1 -1
- package/dist/mg-components/mg-components.esm.js +1 -1
- package/dist/mg-components/p-1221773c.entry.js +1 -0
- package/dist/mg-components/p-367f92d2.js +1 -0
- package/dist/mg-components/p-6aeded97.entry.js +1 -0
- package/dist/mg-components/styles/navigation-button.scss +1 -1
- package/dist/types/components/atoms/mg-button/mg-button.d.ts +5 -0
- package/dist/types/components/molecules/menu/mg-menu/mg-menu.conf.d.ts +3 -27
- package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +9 -27
- package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.conf.d.ts +5 -0
- package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +65 -16
- package/dist/types/components/molecules/mg-item-more/mg-item-more.conf.d.ts +26 -0
- package/dist/types/components/molecules/mg-item-more/mg-item-more.d.ts +74 -0
- package/dist/types/components.d.ts +66 -12
- package/dist/types/utils/behaviors.utils.d.ts +12 -5
- package/package.json +1 -1
- package/dist/mg-components/p-4cfd5423.entry.js +0 -1
|
@@ -17,7 +17,7 @@ const patchBrowser = () => {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(options => {
|
|
20
|
-
return index.bootstrapLazy([["mg-action-more_31.cjs",[[1,"mg-action-more",{"icon":[16],"button":[16],"items":[16],"displayChevron":[4,"display-chevron"],"expanded":[32]}],[1,"mg-panel",{"identifier":[1],"panelTitle":[1025,"panel-title"],"titlePattern":[1025,"title-pattern"],"titlePatternErrorMessage":[1025,"title-pattern-error-message"],"expanded":[1028],"expandToggleDisabled":[1028,"expand-toggle-disabled"],"titleEditable":[4,"title-editable"],"classList":[32],"isEditing":[32],"updatedPanelTitle":[32]}],[1,"mg-pagination",{"identifier":[1],"label":[1025],"hideNavigationLabels":[4,"hide-navigation-labels"],"totalPages":[2,"total-pages"],"currentPage":[1538,"current-page"]}],[1,"mg-input-textarea",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"maxlength":[2],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"pattern":[1],"patternErrorMessage":[1,"pattern-error-message"],"rows":[2],"tooltip":[1],"displayCharacterLeft":[4,"display-character-left"],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"resizable":[1],"classList":[32],"errorMessage":[32],"displayError":[64]}],[1,"mg-input-checkbox",{"value":[1040],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"inputVerticalList":[4,"input-vertical-list"],"required":[4],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"checkboxItems":[32],"displayError":[64]}],[1,"mg-input-date",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"required":[4],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"min":[1],"max":[1],"classList":[32],"errorMessage":[32],"displayError":[64]}],[1,"mg-input-numeric",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"tooltip":[1],"helpText":[1,"help-text"],"type":[1],"currency":[1],"max":[2],"min":[2],"integerLength":[2,"integer-length"],"decimalLength":[2,"decimal-length"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"hasFocus":[32],"displayError":[64]}],[1,"mg-input-password",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"displayError":[64]}],[1,"mg-input-radio",{"value":[1032],"items":[16],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"inputVerticalList":[4,"input-vertical-list"],"required":[4],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"options":[32],"displayError":[64]}],[1,"mg-input-toggle",{"value":[1032],"items":[16],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"isOnOff":[4,"is-on-off"],"isIcon":[4,"is-icon"],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"classList":[32],"options":[32],"checked":[32]}],[1,"mg-message",{"identifier":[1],"delay":[2],"variant":[1],"closeButton":[1028,"close-button"],"hide":[1028],"classList":[32],"hasActions":[32]}],[1,"mg-modal",{"identifier":[1],"modalTitle":[1,"modal-title"],"closeButton":[1028,"close-button"],"hide":[1028],"hasActions":[32],"hasContent":[32],"classList":[32]},[[8,"keydown","handleKeyDown"]]],[1,"mg-tabs",{"identifier":[1],"label":[1],"size":[1],"items":[16],"activeTab":[1538,"active-tab"],"tabs":[32],"classList":[32]}],[1,"mg-details",{"toggleClosed":[1,"toggle-closed"],"toggleOpened":[1,"toggle-opened"],"hideSummary":[4,"hide-summary"],"expanded":[1028]}],[1,"mg-divider",{"size":[1]}],[1,"mg-form",{"identifier":[1],"name":[1],"readonly":[4],"disabled":[4],"valid":[1028],"invalid":[1028],"classList":[32],"requiredMessage":[32],"displayError":[64]}],[1,"mg-illustrated-message",{"size":[1],"direction":[1]}],[1,"mg-skip-links",{"links":[1040]}],[1,"mg-tag",{"variant":[1],"outline":[4],"soft":[4],"classList":[32]}],[1,"mg-input-text",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"type":[1],"icon":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"maxlength":[2],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"pattern":[1],"patternErrorMessage":[1,"pattern-error-message"],"tooltip":[1],"displayCharacterLeft":[4,"display-character-left"],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"setFocus":[64],"displayError":[64]}],[1,"mg-input-select",{"value":[1032],"items":[16],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1025],"placeholderHide":[4,"placeholder-hide"],"placeholderDisabled":[4,"placeholder-disabled"],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"options":[32],"valueExist":[32],"readonlyValue":[32],"displayError":[64]}],[1,"mg-menu",{"
|
|
20
|
+
return index.bootstrapLazy([["mg-action-more_31.cjs",[[1,"mg-action-more",{"icon":[16],"button":[16],"items":[16],"displayChevron":[4,"display-chevron"],"expanded":[32]}],[1,"mg-panel",{"identifier":[1],"panelTitle":[1025,"panel-title"],"titlePattern":[1025,"title-pattern"],"titlePatternErrorMessage":[1025,"title-pattern-error-message"],"expanded":[1028],"expandToggleDisabled":[1028,"expand-toggle-disabled"],"titleEditable":[4,"title-editable"],"classList":[32],"isEditing":[32],"updatedPanelTitle":[32]}],[1,"mg-pagination",{"identifier":[1],"label":[1025],"hideNavigationLabels":[4,"hide-navigation-labels"],"totalPages":[2,"total-pages"],"currentPage":[1538,"current-page"]}],[1,"mg-input-textarea",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"maxlength":[2],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"pattern":[1],"patternErrorMessage":[1,"pattern-error-message"],"rows":[2],"tooltip":[1],"displayCharacterLeft":[4,"display-character-left"],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"resizable":[1],"classList":[32],"errorMessage":[32],"displayError":[64]}],[1,"mg-input-checkbox",{"value":[1040],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"inputVerticalList":[4,"input-vertical-list"],"required":[4],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"checkboxItems":[32],"displayError":[64]}],[1,"mg-input-date",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"required":[4],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"min":[1],"max":[1],"classList":[32],"errorMessage":[32],"displayError":[64]}],[1,"mg-input-numeric",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"tooltip":[1],"helpText":[1,"help-text"],"type":[1],"currency":[1],"max":[2],"min":[2],"integerLength":[2,"integer-length"],"decimalLength":[2,"decimal-length"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"hasFocus":[32],"displayError":[64]}],[1,"mg-input-password",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"displayError":[64]}],[1,"mg-input-radio",{"value":[1032],"items":[16],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"inputVerticalList":[4,"input-vertical-list"],"required":[4],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"options":[32],"displayError":[64]}],[1,"mg-input-toggle",{"value":[1032],"items":[16],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"isOnOff":[4,"is-on-off"],"isIcon":[4,"is-icon"],"readonly":[4],"disabled":[4],"tooltip":[1],"helpText":[1,"help-text"],"classList":[32],"options":[32],"checked":[32]}],[1,"mg-message",{"identifier":[1],"delay":[2],"variant":[1],"closeButton":[1028,"close-button"],"hide":[1028],"classList":[32],"hasActions":[32]}],[1,"mg-modal",{"identifier":[1],"modalTitle":[1,"modal-title"],"closeButton":[1028,"close-button"],"hide":[1028],"hasActions":[32],"hasContent":[32],"classList":[32]},[[8,"keydown","handleKeyDown"]]],[1,"mg-tabs",{"identifier":[1],"label":[1],"size":[1],"items":[16],"activeTab":[1538,"active-tab"],"tabs":[32],"classList":[32]}],[1,"mg-details",{"toggleClosed":[1,"toggle-closed"],"toggleOpened":[1,"toggle-opened"],"hideSummary":[4,"hide-summary"],"expanded":[1028]}],[1,"mg-divider",{"size":[1]}],[1,"mg-form",{"identifier":[1],"name":[1],"readonly":[4],"disabled":[4],"valid":[1028],"invalid":[1028],"classList":[32],"requiredMessage":[32],"displayError":[64]}],[1,"mg-illustrated-message",{"size":[1],"direction":[1]}],[1,"mg-skip-links",{"links":[1040]}],[1,"mg-tag",{"variant":[1],"outline":[4],"soft":[4],"classList":[32]}],[1,"mg-input-text",{"value":[1537],"identifier":[1],"name":[1],"label":[1],"type":[1],"icon":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1],"maxlength":[2],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"pattern":[1],"patternErrorMessage":[1,"pattern-error-message"],"tooltip":[1],"displayCharacterLeft":[4,"display-character-left"],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"setFocus":[64],"displayError":[64]}],[1,"mg-input-select",{"value":[1032],"items":[16],"identifier":[1],"name":[1],"label":[1],"labelOnTop":[4,"label-on-top"],"labelHide":[4,"label-hide"],"placeholder":[1025],"placeholderHide":[4,"placeholder-hide"],"placeholderDisabled":[4,"placeholder-disabled"],"required":[4],"readonly":[4],"disabled":[4],"mgWidth":[8,"mg-width"],"tooltip":[1],"helpText":[1,"help-text"],"valid":[1028],"invalid":[1028],"classList":[32],"errorMessage":[32],"options":[32],"valueExist":[32],"readonlyValue":[32],"displayError":[64]}],[1,"mg-menu-item",{"identifier":[1],"href":[1],"status":[1537],"expanded":[1028],"size":[32],"navigationButtonClassList":[32],"direction":[32],"isInMainMenu":[32],"isItemMore":[32],"hasChildren":[32],"displayNotificationBadge":[32]}],[1,"mg-menu",{"label":[1],"direction":[513],"itemMore":[16],"size":[1],"isChildMenu":[32]}],[1,"mg-popover",{"identifier":[1],"placement":[1],"arrowHide":[4,"arrow-hide"],"closeButton":[4,"close-button"],"display":[1028],"disabled":[1028],"classList":[32]}],[2,"mg-character-left",{"identifier":[1],"characters":[1],"maxlength":[2]}],[1,"mg-badge",{"value":[1032],"label":[1],"variant":[1],"outline":[4],"classList":[32]}],[1,"mg-card"],[1,"mg-button",{"variant":[1],"identifier":[1],"label":[1],"type":[1],"fullWidth":[1028,"full-width"],"form":[1025],"disabled":[1028],"isIcon":[4,"is-icon"],"disableOnClick":[4,"disable-on-click"],"loading":[32],"classList":[32]}],[6,"mg-input-title",{"identifier":[1],"required":[4],"isLegend":[4,"is-legend"],"tagName":[32]}],[1,"mg-tooltip",{"identifier":[1],"message":[1],"placement":[1],"display":[1028],"disabled":[1028]}],[1,"mg-icon",{"icon":[1],"size":[1],"variant":[1],"spin":[4],"classList":[32]}]]],["mg-item-more.cjs",[[1,"mg-item-more",{"icon":[16],"slotlabel":[16],"size":[1],"parentMenu":[32]}]]]], options);
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
exports.setNonce = index.setNonce;
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const index = require('./index-5e7ede97.js');
|
|
6
|
+
const mgMenu_conf = require('./mg-menu.conf-9afe6571.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* MgItemMore type guard
|
|
10
|
+
*
|
|
11
|
+
* @param {HTMLElement} element element to control type
|
|
12
|
+
* @returns {boolean} truthy if element is mg-item-more
|
|
13
|
+
*/
|
|
14
|
+
const isMgItemMore = (element) => element.nodeName === 'MG-ITEM-MORE';
|
|
15
|
+
var OverflowBehaviorElements;
|
|
16
|
+
(function (OverflowBehaviorElements) {
|
|
17
|
+
OverflowBehaviorElements["BASE_INDEX"] = "data-overflow-base-index";
|
|
18
|
+
OverflowBehaviorElements["PROXY_INDEX"] = "data-overflow-proxy-index";
|
|
19
|
+
})(OverflowBehaviorElements || (OverflowBehaviorElements = {}));
|
|
20
|
+
class OverflowBehavior {
|
|
21
|
+
constructor(element, render) {
|
|
22
|
+
this.element = element;
|
|
23
|
+
this.render = render;
|
|
24
|
+
/**********
|
|
25
|
+
* Public *
|
|
26
|
+
**********/
|
|
27
|
+
/**
|
|
28
|
+
* Disconnect ResizeObserver
|
|
29
|
+
*
|
|
30
|
+
* @returns {void}
|
|
31
|
+
*/
|
|
32
|
+
this.disconnect = () => {
|
|
33
|
+
this._resizeObserver.disconnect();
|
|
34
|
+
};
|
|
35
|
+
/************
|
|
36
|
+
* Internal *
|
|
37
|
+
************/
|
|
38
|
+
/**
|
|
39
|
+
* run overflow behavior
|
|
40
|
+
*
|
|
41
|
+
* @param {number} width width of the container. Optional.
|
|
42
|
+
* @returns {void}
|
|
43
|
+
*/
|
|
44
|
+
this.run = (width) => {
|
|
45
|
+
if (this._moreElement === undefined) {
|
|
46
|
+
// set moreElement
|
|
47
|
+
this._moreElement = this.render();
|
|
48
|
+
// set children
|
|
49
|
+
this._baseChildren = this.getInteractiveItems(this.element);
|
|
50
|
+
if (isMgItemMore(this._moreElement)) {
|
|
51
|
+
this._proxyChildren = this.getInteractiveItems(this._moreElement.shadowRoot.querySelector('mg-menu'));
|
|
52
|
+
}
|
|
53
|
+
// update children
|
|
54
|
+
this._baseChildren.forEach((child, index) => {
|
|
55
|
+
child.setAttribute(OverflowBehaviorElements.BASE_INDEX, `${index}`);
|
|
56
|
+
// set moreElement children
|
|
57
|
+
this._proxyChildren[index].setAttribute(OverflowBehaviorElements.PROXY_INDEX, `${index}`);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (width !== undefined)
|
|
61
|
+
this.updateDisplayedItems(width);
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Get interactive children filtred by authorized nodeName ['MG-MENU-ITEM', 'MG-BUTTON']
|
|
65
|
+
*
|
|
66
|
+
* @param {Element} element element to parse
|
|
67
|
+
* @returns {Element[]} children
|
|
68
|
+
*/
|
|
69
|
+
this.getInteractiveItems = (element) => { var _a; return (((_a = element.children) === null || _a === void 0 ? void 0 : _a.length) > 0 ? Array.from(element.children) : []).filter(element => ['MG-MENU-ITEM', 'MG-BUTTON'].includes(element.nodeName)); };
|
|
70
|
+
/**
|
|
71
|
+
* Update displayed items in container from a given available space
|
|
72
|
+
*
|
|
73
|
+
* @param {number} availableWidth available width in container to display child items
|
|
74
|
+
* @returns {void}
|
|
75
|
+
*/
|
|
76
|
+
this.updateDisplayedItems = (availableWidth) => {
|
|
77
|
+
this.restoreItems();
|
|
78
|
+
const acc = { accWidth: 0, previousItem: null };
|
|
79
|
+
[...this._baseChildren, this._moreElement].forEach((child) => {
|
|
80
|
+
acc.accWidth += child.offsetWidth;
|
|
81
|
+
const isPreviousItemHidden = acc.previousItem !== null && acc.previousItem.getAttribute('hidden') !== null;
|
|
82
|
+
// if previous item is hidden AND is NOT more element we hidde current
|
|
83
|
+
// OR if item has an overflow we hidde current
|
|
84
|
+
// OR if current item is more element AND have NOT previous hidden items, current more element item is an hidden item
|
|
85
|
+
// ELSE current is a display item
|
|
86
|
+
this.toggleItem(child, (isPreviousItemHidden && !this.isMoreElement(child)) || this.isOverflowElement(acc.accWidth, child, availableWidth) || (this.isMoreElement(child) && !isPreviousItemHidden));
|
|
87
|
+
// update previous item with current item
|
|
88
|
+
acc.previousItem = child;
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Utility method to know if item overflow partialy or totaly in the container
|
|
93
|
+
*
|
|
94
|
+
* @param {number} cumulateWidth previous sibling elements cumulate width + item width
|
|
95
|
+
* @param {HTMLElement} item item HTML element
|
|
96
|
+
* @param {number} availableWidth container available width
|
|
97
|
+
* @returns {boolean} truthy if element is overflow
|
|
98
|
+
*/
|
|
99
|
+
this.isOverflowElement = (cumulateWidth, item, availableWidth) => {
|
|
100
|
+
if (item.previousElementSibling === null || this.isMoreElement(item))
|
|
101
|
+
return false;
|
|
102
|
+
else if (!this.isMoreElement(item.nextElementSibling))
|
|
103
|
+
return cumulateWidth + this._moreElement.offsetWidth > availableWidth;
|
|
104
|
+
else
|
|
105
|
+
return cumulateWidth > availableWidth;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Utility method to know if a given element is the 'MORE' element
|
|
109
|
+
*
|
|
110
|
+
* @param {Element} element element to match with 'MORE' element
|
|
111
|
+
* @returns {boolean} truthy if element is the 'MORE' element
|
|
112
|
+
*/
|
|
113
|
+
this.isMoreElement = (element) => element.nodeName === 'MG-ITEM-MORE';
|
|
114
|
+
/**
|
|
115
|
+
* Toggle display item element
|
|
116
|
+
*
|
|
117
|
+
* @param {HTMLElement} item item to control
|
|
118
|
+
* @param {boolean} isHidden is item hidden
|
|
119
|
+
* @returns {void}
|
|
120
|
+
*/
|
|
121
|
+
this.toggleItem = (item, isHidden) => {
|
|
122
|
+
const mgActionMenuindex = Number(item.getAttribute(OverflowBehaviorElements.BASE_INDEX));
|
|
123
|
+
if (this.isMoreElement(item))
|
|
124
|
+
this.toggleElement(this._moreElement, isHidden);
|
|
125
|
+
else if (mgActionMenuindex >= 0) {
|
|
126
|
+
this.toggleElement(item, isHidden);
|
|
127
|
+
this.toggleElement(this._proxyChildren[mgActionMenuindex], !isHidden);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Toggle element's hidde attribute
|
|
132
|
+
*
|
|
133
|
+
* @param {Element} element element to toggle
|
|
134
|
+
* @param {boolean} isHidden element is hidden
|
|
135
|
+
* @returns {void}
|
|
136
|
+
*/
|
|
137
|
+
this.toggleElement = (element, isHidden) => {
|
|
138
|
+
if (isHidden)
|
|
139
|
+
element.setAttribute('hidden', '');
|
|
140
|
+
else
|
|
141
|
+
element.removeAttribute('hidden');
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Remove hidden attributes on all items
|
|
145
|
+
*
|
|
146
|
+
* @returns {void}
|
|
147
|
+
*/
|
|
148
|
+
this.restoreItems = () => {
|
|
149
|
+
[...this._baseChildren, this._moreElement].forEach(item => item.removeAttribute('hidden'));
|
|
150
|
+
};
|
|
151
|
+
if (this._resizeObserver === undefined) {
|
|
152
|
+
// add resize observer
|
|
153
|
+
this._resizeObserver = new ResizeObserver(entries => {
|
|
154
|
+
entries.forEach(entry => {
|
|
155
|
+
this.run(entry.contentRect.width);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
this._resizeObserver.observe(this.element);
|
|
159
|
+
}
|
|
160
|
+
this.run();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
const mgItemMoreCss = ".sr-only{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion){.mg-a11y-animation{animation:none !important;transition:none !important}}:host{display:flex}";
|
|
165
|
+
|
|
166
|
+
const MgItemMore = class {
|
|
167
|
+
constructor(hostRef) {
|
|
168
|
+
index.registerInstance(this, hostRef);
|
|
169
|
+
/************
|
|
170
|
+
* Internal *
|
|
171
|
+
************/
|
|
172
|
+
this.name = 'mg-item-more';
|
|
173
|
+
/***********
|
|
174
|
+
* Methods *
|
|
175
|
+
***********/
|
|
176
|
+
/**
|
|
177
|
+
* render mg-item-more overflow element
|
|
178
|
+
*
|
|
179
|
+
* @returns {HTMLMgItemMoreElement} mg-item-more element
|
|
180
|
+
*/
|
|
181
|
+
this.renderMgMenuItemOverflowElement = () => {
|
|
182
|
+
// create menu items proxy element from item clones
|
|
183
|
+
const moreElementMenuItem = this.element.shadowRoot.querySelector('mg-menu-item');
|
|
184
|
+
this.menuItems.forEach((child) => {
|
|
185
|
+
moreElementMenuItem.querySelector('mg-menu').appendChild(child.cloneNode(true));
|
|
186
|
+
});
|
|
187
|
+
const allMenuItem = Array.from(this.parentMenu.querySelectorAll('mg-menu-item:not([data-overflow-more])'));
|
|
188
|
+
Array.from(moreElementMenuItem.querySelectorAll('mg-menu-item:not([data-overflow-more])')).forEach((proxy, index) => {
|
|
189
|
+
// manage click on proxy to mirror it on initial element
|
|
190
|
+
proxy.addEventListener('click', () => {
|
|
191
|
+
(allMenuItem[index].shadowRoot.querySelector('a') || allMenuItem[index].shadowRoot.querySelector('button')).dispatchEvent(new MouseEvent('click', { bubbles: true }));
|
|
192
|
+
});
|
|
193
|
+
// add id suffix to prevent duplicate key. default html id is: '';
|
|
194
|
+
if (proxy.id.trim() !== '')
|
|
195
|
+
proxy.id = `${proxy.id}-proxy`;
|
|
196
|
+
// manage status change miror in proxy
|
|
197
|
+
allMenuItem[index].addEventListener('status-change', (event) => {
|
|
198
|
+
proxy.setAttribute('status', event.detail);
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
return this.element;
|
|
202
|
+
};
|
|
203
|
+
this.icon = { icon: 'ellipsis-vertical' };
|
|
204
|
+
this.slotlabel = { display: false };
|
|
205
|
+
this.size = undefined;
|
|
206
|
+
this.parentMenu = undefined;
|
|
207
|
+
}
|
|
208
|
+
validateIcon(newValue) {
|
|
209
|
+
if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.icon !== 'string'))
|
|
210
|
+
throw new Error(`<${this.name}> prop "icon" must match MgItemMore['icon'] type.`);
|
|
211
|
+
}
|
|
212
|
+
validateSlotLabel(newValue) {
|
|
213
|
+
if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.display !== 'boolean'))
|
|
214
|
+
throw new Error(`<${this.name}> prop "slotlabel" must match MgItemMore['slotlabel'] type.`);
|
|
215
|
+
else if (typeof newValue.label !== 'string')
|
|
216
|
+
this.slotlabel.label = this.messages.moreLabel;
|
|
217
|
+
}
|
|
218
|
+
validateSize(newValue) {
|
|
219
|
+
if (newValue && typeof newValue !== 'string')
|
|
220
|
+
throw new Error(`<${this.name}> prop "size" must match MgItemMore['size'] type.`);
|
|
221
|
+
}
|
|
222
|
+
/*************
|
|
223
|
+
* Lifecycle *
|
|
224
|
+
*************/
|
|
225
|
+
/**
|
|
226
|
+
* Disconnect overflow ResizeObserver
|
|
227
|
+
*
|
|
228
|
+
* @returns {void} run overflow resize obeserver disconnexion
|
|
229
|
+
*/
|
|
230
|
+
disconnectedCallback() {
|
|
231
|
+
this.overflowBehavior.disconnect();
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Set variables and validate props
|
|
235
|
+
*
|
|
236
|
+
* @returns {void}
|
|
237
|
+
*/
|
|
238
|
+
componentWillLoad() {
|
|
239
|
+
// init variables
|
|
240
|
+
this.messages = mgMenu_conf.initLocales(this.element).messages.plusMenu;
|
|
241
|
+
this.parentMenu = this.element.closest('mg-menu');
|
|
242
|
+
this.menuItems = Array.from(this.parentMenu.children).filter(item => item.nodeName === 'MG-MENU-ITEM');
|
|
243
|
+
// validate props
|
|
244
|
+
this.validateIcon(this.icon);
|
|
245
|
+
this.validateSlotLabel(this.slotlabel);
|
|
246
|
+
this.validateSize(this.size);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Add overflow behavior
|
|
250
|
+
*
|
|
251
|
+
* @returns {void}
|
|
252
|
+
*/
|
|
253
|
+
componentDidLoad() {
|
|
254
|
+
this.overflowBehavior = new OverflowBehavior(this.parentMenu, this.renderMgMenuItemOverflowElement);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Render
|
|
258
|
+
*
|
|
259
|
+
* @returns {HTMLElement} HTML Element
|
|
260
|
+
*/
|
|
261
|
+
render() {
|
|
262
|
+
return (index.h(index.Host, { role: "menuitem", "aria-haspopup": "true" }, index.h("mg-menu-item", { "data-overflow-more": true, "data-size": this.parentMenu.size }, index.h("mg-icon", { icon: this.icon.icon, slot: "image" }), index.h("span", { class: { 'sr-only': !this.slotlabel.display }, slot: "label" }, this.slotlabel.label), index.h("mg-menu", { direction: mgMenu_conf.Direction.VERTICAL, label: this.messages.moreLabel, size: this.size }))));
|
|
263
|
+
}
|
|
264
|
+
get element() { return index.getElement(this); }
|
|
265
|
+
static get watchers() { return {
|
|
266
|
+
"icon": ["validateIcon"],
|
|
267
|
+
"slotlabel": ["validateSlotLabel"],
|
|
268
|
+
"size": ["validateSize"]
|
|
269
|
+
}; }
|
|
270
|
+
};
|
|
271
|
+
MgItemMore.style = mgItemMoreCss;
|
|
272
|
+
|
|
273
|
+
exports.mg_item_more = MgItemMore;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const errors$1 = {
|
|
4
|
+
required: "This field is required.",
|
|
5
|
+
date: {
|
|
6
|
+
badInput: "The date format must be <span aria-hidden=\"true\">mm/dd/yyyy</span><span class=\"sr-only\">m m / d d / y y y y</span> and the date must be greater than {min}",
|
|
7
|
+
min: "The date cannot be earlier than {min}",
|
|
8
|
+
max: "The date cannot be later than {max}",
|
|
9
|
+
minMax: "The date must be between {min} and {max}"
|
|
10
|
+
},
|
|
11
|
+
numeric: {
|
|
12
|
+
min: "The value cannot be less than {min}",
|
|
13
|
+
max: "The value cannot be greater than {max}",
|
|
14
|
+
minMax: "The value must be between {min} et {max}"
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const nbCharLeft$1 = "{counter} characters left.";
|
|
18
|
+
const input$1 = {
|
|
19
|
+
select: {
|
|
20
|
+
placeholder: "Select a value"
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const form$1 = {
|
|
24
|
+
required: "Fields with a <strong class=\"is-asterisk\">*</strong> are required",
|
|
25
|
+
requiredSingle: "Field with a <strong class=\"is-asterisk\">*</strong> is required",
|
|
26
|
+
allRequired: "All fields are required",
|
|
27
|
+
allRequiredSingle: "The field is required"
|
|
28
|
+
};
|
|
29
|
+
const message$1 = {
|
|
30
|
+
closeButton: "Close message"
|
|
31
|
+
};
|
|
32
|
+
const modal$1 = {
|
|
33
|
+
closeButton: "Close modal"
|
|
34
|
+
};
|
|
35
|
+
const pagination$1 = {
|
|
36
|
+
label: "Pagination",
|
|
37
|
+
page: "page",
|
|
38
|
+
pages: "pages",
|
|
39
|
+
nextPage: "Next page",
|
|
40
|
+
previousPage: "Previous page",
|
|
41
|
+
selectPage: "Select the page to display."
|
|
42
|
+
};
|
|
43
|
+
const panel$1 = {
|
|
44
|
+
editLabel: "Edit section title."
|
|
45
|
+
};
|
|
46
|
+
const skipLinks$1 = {
|
|
47
|
+
navLabel: "Quick access"
|
|
48
|
+
};
|
|
49
|
+
const general$1 = {
|
|
50
|
+
confirm: "Confirm",
|
|
51
|
+
cancel: "Cancel",
|
|
52
|
+
close: "Close",
|
|
53
|
+
next: "next",
|
|
54
|
+
previous: "previous"
|
|
55
|
+
};
|
|
56
|
+
const plusMenu$1 = {
|
|
57
|
+
moreLabel: "Additional menu",
|
|
58
|
+
badgeLabel: "Include notification(s)"
|
|
59
|
+
};
|
|
60
|
+
const actionMore$1 = {
|
|
61
|
+
label: "Actions"
|
|
62
|
+
};
|
|
63
|
+
const en = {
|
|
64
|
+
errors: errors$1,
|
|
65
|
+
nbCharLeft: nbCharLeft$1,
|
|
66
|
+
input: input$1,
|
|
67
|
+
form: form$1,
|
|
68
|
+
message: message$1,
|
|
69
|
+
modal: modal$1,
|
|
70
|
+
pagination: pagination$1,
|
|
71
|
+
panel: panel$1,
|
|
72
|
+
skipLinks: skipLinks$1,
|
|
73
|
+
general: general$1,
|
|
74
|
+
plusMenu: plusMenu$1,
|
|
75
|
+
actionMore: actionMore$1
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const errors = {
|
|
79
|
+
required: "Ce champ est obligatoire.",
|
|
80
|
+
date: {
|
|
81
|
+
badInput: "Le format de la date doit être du type <span aria-hidden=\"true\">jj/mm/aaaa</span><span class=\"sr-only\">j j / m m / a a a a</span> et la date supérieure au {min}",
|
|
82
|
+
min: "La date ne peut pas être antérieure au {min}",
|
|
83
|
+
max: "La date ne peut pas être postérieure au {max}",
|
|
84
|
+
minMax: "La date doit être comprise entre le {min} et le {max}"
|
|
85
|
+
},
|
|
86
|
+
numeric: {
|
|
87
|
+
min: "La valeur ne peut pas être inférieure à {min}",
|
|
88
|
+
max: "La valeur ne peut pas être supérieure à {max}",
|
|
89
|
+
minMax: "La valeur doit être comprise entre {min} et {max}"
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const nbCharLeft = "{counter} caractères disponibles.";
|
|
93
|
+
const input = {
|
|
94
|
+
select: {
|
|
95
|
+
placeholder: "Sélectionnez une valeur"
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const form = {
|
|
99
|
+
required: "Les champs marqués d'un <strong class=\"is-asterisk\">*</strong> sont obligatoires",
|
|
100
|
+
requiredSingle: "Le champ marqué d'un <strong class=\"is-asterisk\">*</strong> est obligatoire",
|
|
101
|
+
allRequired: "Tous les champs sont obligatoires",
|
|
102
|
+
allRequiredSingle: "Le champ est obligatoire"
|
|
103
|
+
};
|
|
104
|
+
const message = {
|
|
105
|
+
closeButton: "Fermer le message"
|
|
106
|
+
};
|
|
107
|
+
const modal = {
|
|
108
|
+
closeButton: "Fermer la modale"
|
|
109
|
+
};
|
|
110
|
+
const pagination = {
|
|
111
|
+
label: "Pagination",
|
|
112
|
+
page: "page",
|
|
113
|
+
pages: "pages",
|
|
114
|
+
nextPage: "Page suivante",
|
|
115
|
+
previousPage: "Page précédente",
|
|
116
|
+
selectPage: "Sélectionner la page à afficher."
|
|
117
|
+
};
|
|
118
|
+
const panel = {
|
|
119
|
+
editLabel: "Modifier le titre de la section."
|
|
120
|
+
};
|
|
121
|
+
const skipLinks = {
|
|
122
|
+
navLabel: "Accès rapide"
|
|
123
|
+
};
|
|
124
|
+
const general = {
|
|
125
|
+
confirm: "Valider",
|
|
126
|
+
cancel: "Annuler",
|
|
127
|
+
close: "Fermer",
|
|
128
|
+
next: "suivant",
|
|
129
|
+
previous: "précédent"
|
|
130
|
+
};
|
|
131
|
+
const plusMenu = {
|
|
132
|
+
moreLabel: "Menu complémentaire",
|
|
133
|
+
badgeLabel: "Notification(s) incluse(s)"
|
|
134
|
+
};
|
|
135
|
+
const actionMore = {
|
|
136
|
+
label: "Actions"
|
|
137
|
+
};
|
|
138
|
+
const fr = {
|
|
139
|
+
errors: errors,
|
|
140
|
+
nbCharLeft: nbCharLeft,
|
|
141
|
+
input: input,
|
|
142
|
+
form: form,
|
|
143
|
+
message: message,
|
|
144
|
+
modal: modal,
|
|
145
|
+
pagination: pagination,
|
|
146
|
+
panel: panel,
|
|
147
|
+
skipLinks: skipLinks,
|
|
148
|
+
general: general,
|
|
149
|
+
plusMenu: plusMenu,
|
|
150
|
+
actionMore: actionMore
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Format number to the locale currency
|
|
155
|
+
*
|
|
156
|
+
* @param {number} number number to format
|
|
157
|
+
* @param {string} locale locale to apply
|
|
158
|
+
* @param {string} currency currency to apply
|
|
159
|
+
* @returns {string} formatted currency
|
|
160
|
+
*/
|
|
161
|
+
const localeCurrency = (number, locale, currency) => {
|
|
162
|
+
return new Intl.NumberFormat(locale, { style: 'currency', currency }).format(number);
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Format number to locale
|
|
166
|
+
*
|
|
167
|
+
* @param {number} number number to format
|
|
168
|
+
* @param {string} locale locale to apply
|
|
169
|
+
* @returns {string} formatted number
|
|
170
|
+
*/
|
|
171
|
+
const localeNumber = (number, locale) => {
|
|
172
|
+
return new Intl.NumberFormat(locale).format(number);
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Date RegExp
|
|
176
|
+
*/
|
|
177
|
+
const dateRegExp = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
|
|
178
|
+
/**
|
|
179
|
+
* Locale date format
|
|
180
|
+
*
|
|
181
|
+
* @param {string} date date to format
|
|
182
|
+
* @param {string} locale locale to apply
|
|
183
|
+
* @returns {string} formatted date
|
|
184
|
+
*/
|
|
185
|
+
const localeDate = (date, locale) => {
|
|
186
|
+
if (typeof date !== 'string' || date === '' || !dateRegExp.test(date)) {
|
|
187
|
+
return '';
|
|
188
|
+
}
|
|
189
|
+
return new Intl.DateTimeFormat(locale).format(new Date(date));
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Get locale and messages
|
|
193
|
+
* We load the defined locale but for now we only support the first subtag for messages
|
|
194
|
+
*
|
|
195
|
+
* @param {HTMLElement} element element we need to get the language
|
|
196
|
+
* @param {unknown} messages messages to use
|
|
197
|
+
* @param {string} defaultLocale default messages locale
|
|
198
|
+
* @returns {{ locale: string; messages: Record<string, unknown> }} messages object
|
|
199
|
+
*/
|
|
200
|
+
const getLocaleMessages = (element, messages, defaultLocale) => {
|
|
201
|
+
// Get local
|
|
202
|
+
const closestLangAttribute = element.closest('[lang]');
|
|
203
|
+
const closestLang = Intl.NumberFormat.supportedLocalesOf(closestLangAttribute === null || closestLangAttribute === void 0 ? void 0 : closestLangAttribute.lang);
|
|
204
|
+
const locale = closestLang.length > 0 ? closestLang[0] : navigator.language || defaultLocale;
|
|
205
|
+
// Only keep first subtag
|
|
206
|
+
const localeSubtag = locale.split('-').shift();
|
|
207
|
+
// Return
|
|
208
|
+
return {
|
|
209
|
+
locale,
|
|
210
|
+
messages: messages[localeSubtag] || messages[defaultLocale],
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
const defaultLocale = 'en';
|
|
215
|
+
const messages = { en, fr };
|
|
216
|
+
/**
|
|
217
|
+
* Get Intl object
|
|
218
|
+
*
|
|
219
|
+
* @param {HTMLElement} element element we need to get the language
|
|
220
|
+
* @returns {{ locale: string; messages: Record<string, unknown> }} messages object
|
|
221
|
+
*/
|
|
222
|
+
const initLocales = (element) => getLocaleMessages(element, messages, defaultLocale);
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Menu direction type
|
|
226
|
+
*/
|
|
227
|
+
exports.Direction = void 0;
|
|
228
|
+
(function (Direction) {
|
|
229
|
+
Direction["VERTICAL"] = "vertical";
|
|
230
|
+
Direction["HORIZONTAL"] = "horizontal";
|
|
231
|
+
})(exports.Direction || (exports.Direction = {}));
|
|
232
|
+
/**
|
|
233
|
+
* List of all possibles sizes
|
|
234
|
+
*/
|
|
235
|
+
const sizes = ['regular', 'medium', 'large'];
|
|
236
|
+
|
|
237
|
+
exports.dateRegExp = dateRegExp;
|
|
238
|
+
exports.initLocales = initLocales;
|
|
239
|
+
exports.localeCurrency = localeCurrency;
|
|
240
|
+
exports.localeDate = localeDate;
|
|
241
|
+
exports.localeNumber = localeNumber;
|
|
242
|
+
exports.sizes = sizes;
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
"./components/atoms/mg-button/mg-button.js",
|
|
5
5
|
"./components/atoms/mg-icon/mg-icon.js",
|
|
6
6
|
"./components/molecules/menu/mg-menu/mg-menu.js",
|
|
7
|
+
"./components/molecules/mg-item-more/mg-item-more.js",
|
|
8
|
+
"./components/molecules/mg-popover/mg-popover.js",
|
|
7
9
|
"./components/molecules/menu/mg-menu-item/mg-menu-item.js",
|
|
8
10
|
"./components/atoms/mg-card/mg-card.js",
|
|
9
11
|
"./components/atoms/mg-character-left/mg-character-left.js",
|
|
@@ -28,7 +30,6 @@
|
|
|
28
30
|
"./components/molecules/mg-modal/mg-modal.js",
|
|
29
31
|
"./components/molecules/mg-pagination/mg-pagination.js",
|
|
30
32
|
"./components/molecules/mg-panel/mg-panel.js",
|
|
31
|
-
"./components/molecules/mg-popover/mg-popover.js",
|
|
32
33
|
"./components/molecules/mg-skip-links/mg-skip-links.js",
|
|
33
34
|
"./components/molecules/mg-tabs/mg-tabs.js"
|
|
34
35
|
],
|
|
@@ -101,6 +101,8 @@ export class MgButton {
|
|
|
101
101
|
else {
|
|
102
102
|
this.classList.delete(this.classDisabled);
|
|
103
103
|
}
|
|
104
|
+
// emit value update
|
|
105
|
+
this.disabledChange.emit(isDisabled);
|
|
104
106
|
}
|
|
105
107
|
loadingHandler(newValue) {
|
|
106
108
|
// we add loading style if it newvalue is true else we remove it
|
|
@@ -326,6 +328,28 @@ export class MgButton {
|
|
|
326
328
|
"classList": {}
|
|
327
329
|
};
|
|
328
330
|
}
|
|
331
|
+
static get events() {
|
|
332
|
+
return [{
|
|
333
|
+
"method": "disabledChange",
|
|
334
|
+
"name": "disabled-change",
|
|
335
|
+
"bubbles": true,
|
|
336
|
+
"cancelable": true,
|
|
337
|
+
"composed": true,
|
|
338
|
+
"docs": {
|
|
339
|
+
"tags": [],
|
|
340
|
+
"text": "Emmited event when disabled change"
|
|
341
|
+
},
|
|
342
|
+
"complexType": {
|
|
343
|
+
"original": "MgButton['disabled']",
|
|
344
|
+
"resolved": "boolean",
|
|
345
|
+
"references": {
|
|
346
|
+
"MgButton": {
|
|
347
|
+
"location": "global"
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}];
|
|
352
|
+
}
|
|
329
353
|
static get elementRef() { return "element"; }
|
|
330
354
|
static get watchers() {
|
|
331
355
|
return [{
|