@mgdis/mg-components 6.2.0 → 6.4.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-52d5f3d4.js → index-911898e4.js} +410 -266
- package/dist/cjs/index-911898e4.js.map +1 -0
- package/dist/cjs/{index-cc11af95.js → index-a3269bfc.js} +3 -3
- package/dist/cjs/{index-cc11af95.js.map → index-a3269bfc.js.map} +1 -1
- package/dist/cjs/{index.es-ac7c22e3.js → index.es-325100d7.js} +47 -47
- package/dist/cjs/index.es-325100d7.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/mg-action-more_36.cjs.entry.js +1414 -983
- package/dist/cjs/mg-action-more_36.cjs.entry.js.map +1 -1
- package/dist/cjs/mg-alert.cjs.entry.js +17 -12
- package/dist/cjs/mg-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/mg-components.cjs.js +3 -3
- package/dist/cjs/mg-components.cjs.js.map +1 -1
- package/dist/cjs/mg-loader.cjs.entry.js +6 -8
- package/dist/cjs/mg-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/mg-progress.cjs.entry.js +27 -12
- package/dist/cjs/mg-progress.cjs.entry.js.map +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js +10 -3
- package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js.map +1 -1
- package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +15 -4
- package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js.map +1 -1
- package/dist/collection/components/atoms/mg-badge/mg-badge.js +15 -4
- package/dist/collection/components/atoms/mg-badge/mg-badge.js.map +1 -1
- package/dist/collection/components/atoms/mg-button/mg-button.conf.js +4 -0
- package/dist/collection/components/atoms/mg-button/mg-button.conf.js.map +1 -1
- package/dist/collection/components/atoms/mg-button/mg-button.js +112 -12
- package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
- package/dist/collection/components/atoms/mg-card/mg-card.js +1 -1
- package/dist/collection/components/atoms/mg-divider/mg-divider.js +9 -1
- package/dist/collection/components/atoms/mg-divider/mg-divider.js.map +1 -1
- package/dist/collection/components/atoms/mg-icon/mg-icon.js +22 -6
- package/dist/collection/components/atoms/mg-icon/mg-icon.js.map +1 -1
- package/dist/collection/components/atoms/mg-tag/mg-tag.js +14 -4
- package/dist/collection/components/atoms/mg-tag/mg-tag.js.map +1 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +3 -4
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js.map +1 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +28 -6
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +50 -13
- package/dist/collection/components/molecules/inputs/mg-input/mg-input.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +29 -11
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +106 -33
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +99 -36
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +130 -35
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +87 -25
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +86 -26
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +92 -30
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +109 -32
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +109 -29
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +67 -21
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js.map +1 -1
- package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +16 -70
- package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js.map +1 -1
- package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +101 -89
- package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js.map +1 -1
- package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +194 -157
- package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js.map +1 -1
- package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +19 -8
- package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
- package/dist/collection/components/molecules/mg-alert/mg-alert.js +31 -6
- package/dist/collection/components/molecules/mg-alert/mg-alert.js.map +1 -1
- package/dist/collection/components/molecules/mg-details/mg-details.js +17 -5
- package/dist/collection/components/molecules/mg-details/mg-details.js.map +1 -1
- package/dist/collection/components/molecules/mg-form/mg-form.js +48 -16
- package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
- package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +13 -3
- package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js.map +1 -1
- package/dist/collection/components/molecules/mg-loader/mg-loader.js +5 -5
- package/dist/collection/components/molecules/mg-loader/mg-loader.js.map +1 -1
- package/dist/collection/components/molecules/mg-message/mg-message.js +22 -6
- package/dist/collection/components/molecules/mg-message/mg-message.js.map +1 -1
- package/dist/collection/components/molecules/mg-modal/mg-modal.js +54 -11
- package/dist/collection/components/molecules/mg-modal/mg-modal.js.map +1 -1
- package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +28 -9
- package/dist/collection/components/molecules/mg-pagination/mg-pagination.js.map +1 -1
- package/dist/collection/components/molecules/mg-panel/mg-panel.js +48 -13
- package/dist/collection/components/molecules/mg-panel/mg-panel.js.map +1 -1
- package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +10 -2
- package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js.map +1 -1
- package/dist/collection/components/molecules/mg-popover/mg-popover.js +61 -7
- package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
- package/dist/collection/components/molecules/mg-progress/mg-progress.js +26 -1
- package/dist/collection/components/molecules/mg-progress/mg-progress.js.map +1 -1
- package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +3 -2
- package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js.map +1 -1
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +28 -8
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
- package/dist/collection/utils/behaviors.utils.js +44 -107
- package/dist/collection/utils/behaviors.utils.js.map +1 -1
- package/dist/components/index.es.js +42 -42
- package/dist/components/index.es.js.map +1 -1
- package/dist/components/index2.js +2 -2
- package/dist/components/mg-action-more.js +15 -12
- package/dist/components/mg-action-more.js.map +1 -1
- package/dist/components/mg-alert.js +15 -10
- package/dist/components/mg-alert.js.map +1 -1
- package/dist/components/mg-badge2.js +13 -10
- package/dist/components/mg-badge2.js.map +1 -1
- package/dist/components/mg-button2.js +77 -16
- package/dist/components/mg-button2.js.map +1 -1
- package/dist/components/mg-card2.js +1 -1
- package/dist/components/mg-character-left2.js +8 -7
- package/dist/components/mg-character-left2.js.map +1 -1
- package/dist/components/mg-details.js +11 -7
- package/dist/components/mg-details.js.map +1 -1
- package/dist/components/mg-divider2.js +7 -1
- package/dist/components/mg-divider2.js.map +1 -1
- package/dist/components/mg-form.js +35 -21
- package/dist/components/mg-form.js.map +1 -1
- package/dist/components/mg-icon2.js +17 -11
- package/dist/components/mg-icon2.js.map +1 -1
- package/dist/components/mg-illustrated-message.js +10 -4
- package/dist/components/mg-illustrated-message.js.map +1 -1
- package/dist/components/mg-input-checkbox-paginated2.js +14 -10
- package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
- package/dist/components/mg-input-checkbox.js +73 -40
- package/dist/components/mg-input-checkbox.js.map +1 -1
- package/dist/components/mg-input-date.js +77 -46
- package/dist/components/mg-input-date.js.map +1 -1
- package/dist/components/mg-input-numeric.js +90 -45
- package/dist/components/mg-input-numeric.js.map +1 -1
- package/dist/components/mg-input-password.js +56 -28
- package/dist/components/mg-input-password.js.map +1 -1
- package/dist/components/mg-input-radio.js +59 -31
- package/dist/components/mg-input-radio.js.map +1 -1
- package/dist/components/mg-input-select2.js +60 -36
- package/dist/components/mg-input-select2.js.map +1 -1
- package/dist/components/mg-input-text2.js +71 -40
- package/dist/components/mg-input-text2.js.map +1 -1
- package/dist/components/mg-input-textarea.js +72 -36
- package/dist/components/mg-input-textarea.js.map +1 -1
- package/dist/components/mg-input-title2.js +11 -8
- package/dist/components/mg-input-title2.js.map +1 -1
- package/dist/components/mg-input-toggle.js +43 -25
- package/dist/components/mg-input-toggle.js.map +1 -1
- package/dist/components/mg-input2.js +37 -20
- package/dist/components/mg-input2.js.map +1 -1
- package/dist/components/mg-item-more2.js +146 -270
- package/dist/components/mg-item-more2.js.map +1 -1
- package/dist/components/mg-loader.js +4 -6
- package/dist/components/mg-loader.js.map +1 -1
- package/dist/components/mg-menu-item2.js +193 -149
- package/dist/components/mg-menu-item2.js.map +1 -1
- package/dist/components/mg-message2.js +21 -9
- package/dist/components/mg-message2.js.map +1 -1
- package/dist/components/mg-modal.js +36 -17
- package/dist/components/mg-modal.js.map +1 -1
- package/dist/components/mg-pagination2.js +21 -14
- package/dist/components/mg-pagination2.js.map +1 -1
- package/dist/components/mg-panel.js +37 -20
- package/dist/components/mg-panel.js.map +1 -1
- package/dist/components/mg-popover-content2.js +9 -3
- package/dist/components/mg-popover-content2.js.map +1 -1
- package/dist/components/mg-popover2.js +38 -10
- package/dist/components/mg-popover2.js.map +1 -1
- package/dist/components/mg-progress.js +26 -11
- package/dist/components/mg-progress.js.map +1 -1
- package/dist/components/mg-skip-links.js +2 -3
- package/dist/components/mg-skip-links.js.map +1 -1
- package/dist/components/mg-tabs.js +27 -17
- package/dist/components/mg-tabs.js.map +1 -1
- package/dist/components/mg-tag.js +12 -8
- package/dist/components/mg-tag.js.map +1 -1
- package/dist/components/mg-tooltip-content2.js +1 -2
- package/dist/components/mg-tooltip-content2.js.map +1 -1
- package/dist/components/mg-tooltip2.js +24 -12
- package/dist/components/mg-tooltip2.js.map +1 -1
- package/dist/esm/{index-81752ffe.js → index-1f32332a.js} +410 -266
- package/dist/esm/index-1f32332a.js.map +1 -0
- package/dist/esm/{index-f3d3fb70.js → index-9bd10f5d.js} +3 -3
- package/dist/esm/{index-f3d3fb70.js.map → index-9bd10f5d.js.map} +1 -1
- package/dist/esm/{index.es-940821a9.js → index.es-a2587b72.js} +43 -43
- package/dist/esm/index.es-a2587b72.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/mg-action-more_36.entry.js +1414 -983
- package/dist/esm/mg-action-more_36.entry.js.map +1 -1
- package/dist/esm/mg-alert.entry.js +17 -12
- package/dist/esm/mg-alert.entry.js.map +1 -1
- package/dist/esm/mg-components.js +4 -4
- package/dist/esm/mg-components.js.map +1 -1
- package/dist/esm/mg-loader.entry.js +6 -8
- package/dist/esm/mg-loader.entry.js.map +1 -1
- package/dist/esm/mg-progress.entry.js +27 -12
- package/dist/esm/mg-progress.entry.js.map +1 -1
- package/dist/mg-components/mg-components.esm.js +1 -1
- package/dist/mg-components/mg-components.esm.js.map +1 -1
- package/dist/mg-components/p-0ead5317.entry.js +2 -0
- package/dist/mg-components/{p-31e6c1a7.entry.js.map → p-0ead5317.entry.js.map} +1 -1
- package/dist/mg-components/p-35898742.js +3 -0
- package/dist/mg-components/p-35898742.js.map +1 -0
- package/dist/mg-components/p-3b052ac0.entry.js +2 -0
- package/dist/mg-components/p-3b052ac0.entry.js.map +1 -0
- package/dist/mg-components/p-6810a565.entry.js +2 -0
- package/dist/mg-components/p-6810a565.entry.js.map +1 -0
- package/dist/mg-components/{p-ee51ec5e.js → p-b986c107.js} +2 -2
- package/dist/mg-components/p-b986c107.js.map +1 -0
- package/dist/mg-components/{p-a49e2b74.js → p-dc436f3c.js} +2 -2
- package/dist/mg-components/p-f48d964f.entry.js +2 -0
- package/dist/mg-components/p-f48d964f.entry.js.map +1 -0
- package/dist/types/components/atoms/mg-button/mg-button.conf.d.ts +9 -1
- package/dist/types/components/atoms/mg-button/mg-button.d.ts +11 -1
- package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +6 -0
- package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.d.ts +1 -15
- package/dist/types/components/molecules/menu/mg-menu/mg-menu.d.ts +14 -30
- package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +46 -37
- package/dist/types/components/molecules/mg-alert/mg-alert.d.ts +4 -0
- package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +4 -0
- package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +4 -0
- package/dist/types/components.d.ts +33 -15
- package/dist/types/utils/behaviors.utils.d.ts +15 -44
- package/ide/intellij/web-types.json +39 -11
- package/ide/vscode/html-custom-data.json +28 -6
- package/package.json +27 -37
- package/dist/cjs/index-52d5f3d4.js.map +0 -1
- package/dist/cjs/index.es-ac7c22e3.js.map +0 -1
- package/dist/esm/index-81752ffe.js.map +0 -1
- package/dist/esm/index.es-940821a9.js.map +0 -1
- package/dist/mg-components/p-2298352f.js +0 -3
- package/dist/mg-components/p-2298352f.js.map +0 -1
- package/dist/mg-components/p-31e6c1a7.entry.js +0 -2
- package/dist/mg-components/p-67c9be27.entry.js +0 -2
- package/dist/mg-components/p-67c9be27.entry.js.map +0 -1
- package/dist/mg-components/p-95895169.entry.js +0 -2
- package/dist/mg-components/p-95895169.entry.js.map +0 -1
- package/dist/mg-components/p-abddacc2.entry.js +0 -2
- package/dist/mg-components/p-abddacc2.entry.js.map +0 -1
- package/dist/mg-components/p-ee51ec5e.js.map +0 -1
- /package/dist/mg-components/{p-a49e2b74.js.map → p-dc436f3c.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
-
import {
|
|
2
|
+
import { J as Je } from './index.es.js';
|
|
3
3
|
import { d as defineCustomElement$4, D as Direction, s as sizes } from './mg-menu-item2.js';
|
|
4
4
|
import { i as initLocales } from './index2.js';
|
|
5
5
|
import { d as defineCustomElement$8 } from './mg-badge2.js';
|
|
@@ -10,19 +10,13 @@ import { d as defineCustomElement$3 } from './mg-popover2.js';
|
|
|
10
10
|
import { d as defineCustomElement$2 } from './mg-popover-content2.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @param element - element to control type
|
|
15
|
-
* @returns truthy if element is mg-item-more
|
|
13
|
+
*
|
|
16
14
|
*/
|
|
17
|
-
const isMgItemMore = (element) => element.nodeName === 'MG-ITEM-MORE';
|
|
18
|
-
const OverflowBehaviorElements = {
|
|
19
|
-
BASE_INDEX: 'data-overflow-base-index',
|
|
20
|
-
PROXY_INDEX: 'data-overflow-proxy-index',
|
|
21
|
-
};
|
|
22
15
|
class OverflowBehavior {
|
|
23
|
-
constructor(
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
16
|
+
constructor(parentElement, itemMoreElement, itemMoreContainerElement) {
|
|
17
|
+
this.parentElement = parentElement;
|
|
18
|
+
this.itemMoreElement = itemMoreElement;
|
|
19
|
+
this.itemMoreContainerElement = itemMoreContainerElement;
|
|
26
20
|
/**********
|
|
27
21
|
* Public *
|
|
28
22
|
**********/
|
|
@@ -36,120 +30,63 @@ class OverflowBehavior {
|
|
|
36
30
|
* Internal *
|
|
37
31
|
************/
|
|
38
32
|
/**
|
|
39
|
-
*
|
|
40
|
-
* @param
|
|
41
|
-
|
|
42
|
-
this.run = (width) => {
|
|
43
|
-
if (this._moreElement === undefined) {
|
|
44
|
-
// set moreElement
|
|
45
|
-
this._moreElement = this.render();
|
|
46
|
-
// set children
|
|
47
|
-
this._baseChildren = this.getInteractiveItems(this.element);
|
|
48
|
-
if (isMgItemMore(this._moreElement)) {
|
|
49
|
-
this._proxyChildren = this.getInteractiveItems(this._moreElement.shadowRoot.querySelector('mg-menu'));
|
|
50
|
-
}
|
|
51
|
-
// update children
|
|
52
|
-
this._baseChildren.forEach((child, index) => {
|
|
53
|
-
child.setAttribute(OverflowBehaviorElements.BASE_INDEX, `${index}`);
|
|
54
|
-
// set moreElement children
|
|
55
|
-
this._proxyChildren[index].setAttribute(OverflowBehaviorElements.PROXY_INDEX, `${index}`);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
if (width !== undefined)
|
|
59
|
-
this.updateDisplayedItems(width);
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Get interactive children filtred by authorized nodeName ['MG-MENU-ITEM', 'MG-BUTTON']
|
|
63
|
-
* @param element - element to parse
|
|
64
|
-
* @returns children
|
|
65
|
-
*/
|
|
66
|
-
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)); };
|
|
67
|
-
/**
|
|
68
|
-
* Update displayed items in container from a given available space
|
|
69
|
-
* @param availableWidth - available width in container to display child items
|
|
33
|
+
* Utility method to know if element is HTMLMgItemMoreElement
|
|
34
|
+
* @param element - element to match with 'MORE' element
|
|
35
|
+
* @returns truthy if element is the 'MORE' element
|
|
70
36
|
*/
|
|
71
|
-
this.
|
|
72
|
-
this.restoreItems();
|
|
73
|
-
const acc = { accWidth: 0, previousItem: null };
|
|
74
|
-
[...this._baseChildren, this._moreElement].forEach((child) => {
|
|
75
|
-
acc.accWidth += child.offsetWidth;
|
|
76
|
-
const hasPreviuosItem = acc.previousItem !== null;
|
|
77
|
-
const isPreviousItemHidden = hasPreviuosItem && acc.previousItem.hasAttribute('hidden');
|
|
78
|
-
// if previous item is hidden AND is NOT more element we hide current
|
|
79
|
-
// OR if item has an overflow we hide current
|
|
80
|
-
// OR if current item is more element AND have NOT previous hidden items, current more element item is an hidden item
|
|
81
|
-
// ELSE current is a display item
|
|
82
|
-
this.toggleItem(child, (isPreviousItemHidden && !this.isMoreElement(child)) || this.isOverflowElement(acc.accWidth, child, availableWidth) || (this.isMoreElement(child) && !isPreviousItemHidden));
|
|
83
|
-
// update previous item with current item
|
|
84
|
-
acc.previousItem = child;
|
|
85
|
-
});
|
|
86
|
-
};
|
|
37
|
+
this.isMoreElement = (element) => element === this.itemMoreElement;
|
|
87
38
|
/**
|
|
88
39
|
* Utility method to know if item overflow partialy or totaly in the container
|
|
89
40
|
* @param cumulateWidth - previous sibling elements cumulate width + item width
|
|
90
41
|
* @param item - item HTML element
|
|
91
|
-
* @param availableWidth - container available width
|
|
92
42
|
* @returns truthy if element is overflow
|
|
93
43
|
*/
|
|
94
|
-
this.isOverflowElement = (cumulateWidth, item
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
};
|
|
102
|
-
/**
|
|
103
|
-
* Utility method to know if a given element is the 'MORE' element
|
|
104
|
-
* @param element - element to match with 'MORE' element
|
|
105
|
-
* @returns truthy if element is the 'MORE' element
|
|
106
|
-
*/
|
|
107
|
-
this.isMoreElement = (element) => element.nodeName === 'MG-ITEM-MORE';
|
|
108
|
-
/**
|
|
109
|
-
* Toggle display item element
|
|
110
|
-
* @param item - item to control
|
|
111
|
-
* @param isHidden - is item hidden
|
|
112
|
-
*/
|
|
113
|
-
this.toggleItem = (item, isHidden) => {
|
|
114
|
-
const mgActionMenuindex = Number(item.getAttribute(OverflowBehaviorElements.BASE_INDEX));
|
|
115
|
-
if (this.isMoreElement(item))
|
|
116
|
-
this.toggleElement(this._moreElement, isHidden);
|
|
117
|
-
else if (mgActionMenuindex >= 0) {
|
|
118
|
-
this.toggleElement(item, isHidden);
|
|
119
|
-
this.toggleElement(this._proxyChildren[mgActionMenuindex], !isHidden);
|
|
44
|
+
this.isOverflowElement = (cumulateWidth, item) => {
|
|
45
|
+
const displayMgItemMore = this.itemMoreContainerElement.children.length > 0;
|
|
46
|
+
if (!this.isMoreElement(item)) {
|
|
47
|
+
if (item.nextElementSibling.nodeName !== 'MG-ITEM-MORE' && !displayMgItemMore)
|
|
48
|
+
return cumulateWidth + this.itemMoreElement.offsetWidth > this._availableWidth;
|
|
49
|
+
else
|
|
50
|
+
return cumulateWidth > this._availableWidth;
|
|
120
51
|
}
|
|
121
|
-
};
|
|
122
|
-
/**
|
|
123
|
-
* Toggle element's hide attribute
|
|
124
|
-
* @param element - element to toggle
|
|
125
|
-
* @param isHidden - element is hidden
|
|
126
|
-
*/
|
|
127
|
-
this.toggleElement = (element, isHidden) => {
|
|
128
|
-
if (isHidden)
|
|
129
|
-
element.setAttribute('hidden', '');
|
|
130
52
|
else
|
|
131
|
-
|
|
53
|
+
return !displayMgItemMore;
|
|
132
54
|
};
|
|
133
55
|
/**
|
|
134
|
-
*
|
|
56
|
+
* Toogle item from isHidden condition
|
|
57
|
+
* @param item - item to update
|
|
58
|
+
* @param isHidden - item is hidden
|
|
135
59
|
*/
|
|
136
|
-
this.
|
|
137
|
-
|
|
60
|
+
this.toggleItem = (item, isHidden) => {
|
|
61
|
+
if (this.isMoreElement(item) && isHidden)
|
|
62
|
+
item.setAttribute('hidden', '');
|
|
63
|
+
else if (this.isMoreElement(item) && !isHidden)
|
|
64
|
+
item.removeAttribute('hidden');
|
|
65
|
+
else if (!this.isMoreElement(item) && isHidden)
|
|
66
|
+
this.itemMoreContainerElement.appendChild(item);
|
|
67
|
+
else if (!this.isMoreElement(item) && item.parentElement !== this.parentElement)
|
|
68
|
+
this.parentElement.insertBefore(item, this.itemMoreElement);
|
|
138
69
|
};
|
|
139
|
-
if (this.
|
|
140
|
-
|
|
141
|
-
this._resizeObserver = new ResizeObserver(entries => {
|
|
142
|
-
entries.forEach(entry => {
|
|
143
|
-
this.run(entry.contentRect.width);
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
this._resizeObserver.observe(this.element);
|
|
70
|
+
if (!this.parentElement || !this.itemMoreElement || !this.itemMoreContainerElement) {
|
|
71
|
+
throw new Error('OverflowBehavior - all construtor params are required');
|
|
147
72
|
}
|
|
148
|
-
this.
|
|
73
|
+
const items = Array.from(this.parentElement.children);
|
|
74
|
+
this._resizeObserver = new ResizeObserver(entries => {
|
|
75
|
+
this._availableWidth = entries.map(entry => entry.contentRect.width).sort((a, b) => a - b).shift();
|
|
76
|
+
// reset items
|
|
77
|
+
items.forEach(item => this.toggleItem(item, false));
|
|
78
|
+
let accWidth = 0;
|
|
79
|
+
items.forEach((item, index) => {
|
|
80
|
+
accWidth += item.offsetWidth;
|
|
81
|
+
if (index)
|
|
82
|
+
this.toggleItem(item, this.isOverflowElement(accWidth, item));
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
this._resizeObserver.observe(this.parentElement);
|
|
149
86
|
}
|
|
150
87
|
}
|
|
151
88
|
|
|
152
|
-
const mgMenuCss = ".mg-u-visually-hidden{position:absolute !important;overflow:hidden !important;width:.1rem !important;height:.1rem !important;padding:0 !important;border:0 !important;margin:-0.1rem !important;clip:rect(0.1rem, 0.1rem, 0.1rem, 0.1rem) !important;clip-path:inset(50%) !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion){*{animation:none !important;transition:none !important}}/*!\n * @prop --mg-c-menu-color-background: Defines the background color of the menu. Unset by default, fallback on `--mg-b-color-light`.\n */:host{display:flex;background-color:var(--mg-c-menu-color-background, var(--mg-b-color-light))}:host([direction=vertical]){height:100%;flex-direction:column;overflow-y:auto}";
|
|
89
|
+
const mgMenuCss = ".mg-u-visually-hidden{position:absolute !important;overflow:hidden !important;width:.1rem !important;height:.1rem !important;padding:0 !important;border:0 !important;margin:-0.1rem !important;clip:rect(0.1rem, 0.1rem, 0.1rem, 0.1rem) !important;clip-path:inset(50%) !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion){*{animation:none !important;transition:none !important}}/*!\n * @prop --mg-c-menu-color-background: Defines the background color of the menu. Unset by default, fallback on `--mg-b-color-light`.\n */:host{display:inline-flex;width:100%;background-color:var(--mg-c-menu-color-background, var(--mg-b-color-light))}:host([direction=vertical]){display:flex;height:100%;flex-direction:column;overflow-y:auto}";
|
|
153
90
|
const MgMenuStyle0 = mgMenuCss;
|
|
154
91
|
|
|
155
92
|
const MgMenu = /*@__PURE__*/ proxyCustomElement(class MgMenu extends HTMLElement {
|
|
@@ -161,100 +98,78 @@ const MgMenu = /*@__PURE__*/ proxyCustomElement(class MgMenu extends HTMLElement
|
|
|
161
98
|
* Internal *
|
|
162
99
|
************/
|
|
163
100
|
this.name = 'mg-menu';
|
|
164
|
-
this.menuItems = [];
|
|
165
|
-
this.focusedMenuItem = 0;
|
|
166
|
-
/*************
|
|
167
|
-
* Methods *
|
|
168
|
-
*************/
|
|
169
101
|
/**
|
|
170
|
-
*
|
|
171
|
-
* @param item - menu-item to close
|
|
172
|
-
* @param condition - addionnal condition
|
|
102
|
+
* Component display direction.
|
|
173
103
|
*/
|
|
174
|
-
this.
|
|
175
|
-
if (!this.isChildMenu && condition) {
|
|
176
|
-
item.expanded = false;
|
|
177
|
-
}
|
|
178
|
-
};
|
|
104
|
+
this.direction = Direction.HORIZONTAL;
|
|
179
105
|
/**
|
|
180
|
-
*
|
|
181
|
-
* @returns mg-menu-item element
|
|
106
|
+
* Define mg-menu size
|
|
182
107
|
*/
|
|
183
|
-
this.
|
|
108
|
+
this.size = 'medium';
|
|
109
|
+
/*************
|
|
110
|
+
* Methods *
|
|
111
|
+
*************/
|
|
184
112
|
/**
|
|
185
|
-
*
|
|
186
|
-
* @
|
|
187
|
-
* @param index - number
|
|
113
|
+
* Test if menu is a child menu
|
|
114
|
+
* @returns truthy if menu is a child menu
|
|
188
115
|
*/
|
|
189
|
-
this.
|
|
190
|
-
['click', 'focus'].forEach(trigger => {
|
|
191
|
-
item.shadowRoot.querySelector('button,a').addEventListener(trigger, () => {
|
|
192
|
-
this.focusedMenuItem = index;
|
|
193
|
-
// reset expanded on previous active menu item
|
|
194
|
-
const itemMoreMenuItem = this.getItemMoreMenuItem();
|
|
195
|
-
(![null, undefined].includes(itemMoreMenuItem) ? [...this.menuItems, itemMoreMenuItem] : this.menuItems).forEach((item, index) => {
|
|
196
|
-
this.closeMenuItem(item, index !== this.focusedMenuItem);
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
};
|
|
116
|
+
this.isChildMenu = () => this.element.closest('mg-menu-item') !== null;
|
|
201
117
|
/**
|
|
202
|
-
*
|
|
118
|
+
* Get menu children items
|
|
119
|
+
* @returns menu children mg-menu-item
|
|
203
120
|
*/
|
|
204
|
-
this.
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
121
|
+
this.getMenuItems = (menu = this.element) => {
|
|
122
|
+
var _a, _b;
|
|
123
|
+
const menuItems = Array.from(menu.children).filter(child => child.nodeName === 'MG-MENU-ITEM');
|
|
124
|
+
const itemMoreMenuItem = (_b = (_a = menu.querySelector('mg-item-more')) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('mg-menu-item');
|
|
125
|
+
if (itemMoreMenuItem) {
|
|
126
|
+
menuItems.push(itemMoreMenuItem);
|
|
127
|
+
}
|
|
128
|
+
return menuItems;
|
|
209
129
|
};
|
|
210
130
|
/**
|
|
211
|
-
*
|
|
131
|
+
* Update menu items
|
|
212
132
|
*/
|
|
213
|
-
this.
|
|
214
|
-
this.
|
|
133
|
+
this.updateMenuItems = () => {
|
|
134
|
+
this.getMenuItems().forEach((item) => {
|
|
135
|
+
item.dataset.styleDirection = this.direction;
|
|
136
|
+
});
|
|
137
|
+
// render mg-item-more to manage OverflowBehavior
|
|
138
|
+
this.renderMgItemMore();
|
|
215
139
|
};
|
|
216
140
|
/**
|
|
217
141
|
* render mg-item-more
|
|
218
142
|
*/
|
|
219
143
|
this.renderMgItemMore = () => {
|
|
220
144
|
var _a;
|
|
221
|
-
if (this.direction
|
|
145
|
+
if (this.direction === Direction.VERTICAL || this.direction === Direction.HORIZONTAL && this.isChildMenu() || this.element.children.length <= 1) {
|
|
222
146
|
return;
|
|
223
147
|
}
|
|
224
148
|
// Insert mg-item-more outside the mg-menu shadowdom
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
this.element.appendChild(
|
|
149
|
+
let itemMoreElement = this.element.querySelector('mg-item-more');
|
|
150
|
+
if (itemMoreElement === null) {
|
|
151
|
+
itemMoreElement = document.createElement('mg-item-more');
|
|
152
|
+
this.element.appendChild(itemMoreElement);
|
|
229
153
|
}
|
|
230
154
|
// update mg-item-more props
|
|
231
|
-
for (const
|
|
232
|
-
|
|
233
|
-
// to improve rendering we use HTML attributes as much as possible
|
|
234
|
-
if (['string', 'number'].includes(typeof newValue)) {
|
|
235
|
-
this.itemMoreElement.setAttribute(attribute, newValue);
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
this.itemMoreElement[attribute] = newValue;
|
|
239
|
-
}
|
|
155
|
+
for (const propertie in this.itemmore) {
|
|
156
|
+
itemMoreElement[propertie] = this.itemmore[propertie];
|
|
240
157
|
}
|
|
241
158
|
if (((_a = this.itemmore) === null || _a === void 0 ? void 0 : _a.size) === undefined)
|
|
242
|
-
|
|
159
|
+
itemMoreElement.size = this.size;
|
|
243
160
|
};
|
|
244
|
-
this.label = undefined;
|
|
245
|
-
this.direction = Direction.HORIZONTAL;
|
|
246
|
-
this.itemmore = undefined;
|
|
247
|
-
this.size = 'medium';
|
|
248
|
-
this.isChildMenu = undefined;
|
|
249
161
|
}
|
|
250
162
|
validateLabel(newValue) {
|
|
251
163
|
if (newValue === undefined && !this.element.hasAttribute('aria-label')) {
|
|
252
|
-
throw new Error(`<${this.name}> prop "label" is required. Passed value: ${
|
|
164
|
+
throw new Error(`<${this.name}> prop "label" is required. Passed value: ${Je(newValue)}.`);
|
|
253
165
|
}
|
|
254
166
|
}
|
|
255
167
|
validateDirection(newValue) {
|
|
256
168
|
if (![Direction.VERTICAL, Direction.HORIZONTAL].includes(newValue)) {
|
|
257
|
-
throw new Error(`<${this.name}> prop "direction" must be one of: ${Direction.HORIZONTAL}, ${Direction.VERTICAL}. Passed value: ${
|
|
169
|
+
throw new Error(`<${this.name}> prop "direction" must be one of: ${Direction.HORIZONTAL}, ${Direction.VERTICAL}. Passed value: ${Je(newValue)}.`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this.updateMenuItems();
|
|
258
173
|
}
|
|
259
174
|
}
|
|
260
175
|
validateItemMore(newValue) {
|
|
@@ -267,9 +182,30 @@ const MgMenu = /*@__PURE__*/ proxyCustomElement(class MgMenu extends HTMLElement
|
|
|
267
182
|
}
|
|
268
183
|
validateSize(newValue) {
|
|
269
184
|
if (!sizes.includes(newValue)) {
|
|
270
|
-
throw new Error(`<${this.name}> prop "size" must be one of: ${sizes.join(', ')}. Passed value: ${
|
|
185
|
+
throw new Error(`<${this.name}> prop "size" must be one of: ${sizes.join(', ')}. Passed value: ${Je(newValue)}.`);
|
|
271
186
|
}
|
|
272
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Define mg-menu-item listener when they are loaded
|
|
190
|
+
* @param event - mg-item-loaded "item-loaded" custom event
|
|
191
|
+
*/
|
|
192
|
+
updateItemListener(event) {
|
|
193
|
+
const itemToWatch = event.target.nodeName === 'MG-ITEM-MORE' ? event.target.shadowRoot.querySelector('mg-menu-item') : event.target;
|
|
194
|
+
['click', 'focus'].forEach(trigger => {
|
|
195
|
+
itemToWatch.addEventListener(trigger, () => {
|
|
196
|
+
const focusedItem = event.target.closest('mg-menu').querySelector('[data-has-focus]');
|
|
197
|
+
// exit process if new focused item in the current menu children
|
|
198
|
+
if (focusedItem === itemToWatch)
|
|
199
|
+
return;
|
|
200
|
+
// reset expanded on previous active menu item
|
|
201
|
+
if (focusedItem)
|
|
202
|
+
focusedItem.removeAttribute("data-has-focus");
|
|
203
|
+
// update focusedMenuItem with new value
|
|
204
|
+
itemToWatch.setAttribute('data-has-focus', 'true');
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
;
|
|
273
209
|
/*************
|
|
274
210
|
* Lifecycle *
|
|
275
211
|
*************/
|
|
@@ -284,37 +220,38 @@ const MgMenu = /*@__PURE__*/ proxyCustomElement(class MgMenu extends HTMLElement
|
|
|
284
220
|
}
|
|
285
221
|
/**
|
|
286
222
|
* Check if component slots configuration
|
|
287
|
-
* @returns timeout
|
|
288
223
|
*/
|
|
289
224
|
componentDidLoad() {
|
|
290
|
-
//
|
|
291
|
-
|
|
292
|
-
//
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
225
|
+
// set menu-items
|
|
226
|
+
this.updateMenuItems();
|
|
227
|
+
// add listener to close main menu when focus leave it
|
|
228
|
+
if (!this.isChildMenu() && this.direction === Direction.HORIZONTAL) {
|
|
229
|
+
document.addEventListener('focusin', (event) => {
|
|
230
|
+
const isElementChild = (element) => {
|
|
231
|
+
if (element === this.element)
|
|
232
|
+
return true;
|
|
233
|
+
else if (!element.parentElement)
|
|
234
|
+
return false;
|
|
235
|
+
else
|
|
236
|
+
return isElementChild(element.parentElement);
|
|
237
|
+
};
|
|
238
|
+
if (!event.target.closest('mg-menu') || !isElementChild(event.target)) {
|
|
239
|
+
const focusedItem = this.element.querySelector('[data-has-focus]');
|
|
240
|
+
// reset expanded on previous active menu item
|
|
241
|
+
if (focusedItem)
|
|
242
|
+
focusedItem.removeAttribute('data-has-focus');
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
// add mutation observer to improve global reactivity
|
|
247
|
+
new MutationObserver(this.updateMenuItems).observe(this.element, { childList: true });
|
|
311
248
|
}
|
|
312
249
|
/**
|
|
313
250
|
* Render
|
|
314
251
|
* @returns HTML Element
|
|
315
252
|
*/
|
|
316
253
|
render() {
|
|
317
|
-
return (h(Host, { key: '
|
|
254
|
+
return (h(Host, { key: 'eb78530a80f841391df90167523b6d446cd5405e', role: "list", "aria-label": this.label }, h("slot", { key: '1a8839c831a81915de8a5b03ebe1481a32762217' })));
|
|
318
255
|
}
|
|
319
256
|
get element() { return this; }
|
|
320
257
|
static get watchers() { return {
|
|
@@ -328,9 +265,8 @@ const MgMenu = /*@__PURE__*/ proxyCustomElement(class MgMenu extends HTMLElement
|
|
|
328
265
|
"label": [1],
|
|
329
266
|
"direction": [513],
|
|
330
267
|
"itemmore": [16],
|
|
331
|
-
"size": [1]
|
|
332
|
-
|
|
333
|
-
}, undefined, {
|
|
268
|
+
"size": [1]
|
|
269
|
+
}, [[0, "item-loaded", "updateItemListener"]], {
|
|
334
270
|
"label": ["validateLabel"],
|
|
335
271
|
"direction": ["validateDirection"],
|
|
336
272
|
"itemmore": ["validateItemMore"],
|
|
@@ -409,86 +345,27 @@ const MgItemMore = /*@__PURE__*/ proxyCustomElement(class MgItemMore extends HTM
|
|
|
409
345
|
************/
|
|
410
346
|
this.name = 'mg-item-more';
|
|
411
347
|
/**
|
|
412
|
-
*
|
|
413
|
-
* @param proxified - element to proxify from
|
|
348
|
+
* Define icon
|
|
414
349
|
*/
|
|
415
|
-
this.
|
|
416
|
-
const proxy = this.moreElementMenuItem.querySelector(`[identifier="${proxified.identifier}"]`);
|
|
417
|
-
if (proxy === null) {
|
|
418
|
-
return;
|
|
419
|
-
}
|
|
420
|
-
// remove proxy id to prevent duplicate key. default html id is: '';
|
|
421
|
-
if (me(proxy.id))
|
|
422
|
-
proxy.id = '';
|
|
423
|
-
const proxyClickHandler = () => {
|
|
424
|
-
this.parentMenu
|
|
425
|
-
.querySelector(`[identifier="${proxy.identifier}"]`)
|
|
426
|
-
.shadowRoot.querySelector('a, button')
|
|
427
|
-
.dispatchEvent(new MouseEvent('click', { bubbles: true }));
|
|
428
|
-
};
|
|
429
|
-
// Watch the `item-updated` event to keep element needeed properties and innerHTML in sync between the proxified and the proxy elements
|
|
430
|
-
const updateProxy = (element) => {
|
|
431
|
-
for (const key in element) {
|
|
432
|
-
if (['identifier', 'href', 'targer', 'status', 'expanded'].includes(key))
|
|
433
|
-
element[key] ? proxy.setAttribute(key, element[key]) : proxy.removeAttribute(key);
|
|
434
|
-
}
|
|
435
|
-
proxy.innerHTML = element.innerHTML;
|
|
436
|
-
// When `href` is updated we need to wait the full component re-render before update its handler
|
|
437
|
-
setTimeout(() => {
|
|
438
|
-
const interactiveElement = proxy.shadowRoot.querySelector('a, button');
|
|
439
|
-
interactiveElement === null || interactiveElement === void 0 ? void 0 : interactiveElement.removeEventListener('click', proxyClickHandler);
|
|
440
|
-
interactiveElement === null || interactiveElement === void 0 ? void 0 : interactiveElement.addEventListener('click', proxyClickHandler);
|
|
441
|
-
});
|
|
442
|
-
};
|
|
443
|
-
updateProxy(proxified);
|
|
444
|
-
proxified.addEventListener('item-updated', event => {
|
|
445
|
-
updateProxy(event.target);
|
|
446
|
-
});
|
|
447
|
-
// update click event listener on proxy item and mirror the event on the main menu element
|
|
448
|
-
// we need to wait mg-menu-item to be loaded to ensure the shadowroot is rendered
|
|
449
|
-
proxy.addEventListener('item-loaded', () => {
|
|
450
|
-
updateProxy(proxified);
|
|
451
|
-
});
|
|
452
|
-
};
|
|
453
|
-
/***********
|
|
454
|
-
* Methods *
|
|
455
|
-
***********/
|
|
350
|
+
this.icon = { icon: 'ellipsis-vertical' };
|
|
456
351
|
/**
|
|
457
|
-
*
|
|
458
|
-
* @returns mg-item-more element
|
|
352
|
+
* Define slot label element
|
|
459
353
|
*/
|
|
460
|
-
this.renderMgMenuItemOverflowElement = () => {
|
|
461
|
-
this.parentMenuItems.forEach((child) => {
|
|
462
|
-
// create item-more menu items element from main menu-items clones
|
|
463
|
-
this.moreElementMenuItem.querySelector('mg-menu').appendChild(child.cloneNode(true));
|
|
464
|
-
// we need to get all `mg-menu-item` linked to the cloned one to set mirror process
|
|
465
|
-
tt(() => {
|
|
466
|
-
this.setProxyElement(child);
|
|
467
|
-
if (child.querySelector('mg-menu') !== null) {
|
|
468
|
-
child.querySelectorAll('mg-menu-item').forEach(this.setProxyElement);
|
|
469
|
-
}
|
|
470
|
-
});
|
|
471
|
-
});
|
|
472
|
-
return this.element;
|
|
473
|
-
};
|
|
474
|
-
this.icon = { icon: 'ellipsis-vertical' };
|
|
475
354
|
this.slotlabel = { display: false };
|
|
476
|
-
this.size = undefined;
|
|
477
|
-
this.parentMenu = undefined;
|
|
478
355
|
}
|
|
479
356
|
validateIcon(newValue) {
|
|
480
357
|
if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.icon !== 'string'))
|
|
481
|
-
throw new Error(`<${this.name}> prop "icon" must match MgItemMore['icon'] type. Passed value: ${
|
|
358
|
+
throw new Error(`<${this.name}> prop "icon" must match MgItemMore['icon'] type. Passed value: ${Je(newValue)}.`);
|
|
482
359
|
}
|
|
483
360
|
validateSlotLabel(newValue) {
|
|
484
361
|
if (typeof newValue !== 'object' || (typeof newValue === 'object' && typeof newValue.display !== 'boolean'))
|
|
485
|
-
throw new Error(`<${this.name}> prop "slotlabel" must match MgItemMore['slotlabel'] type. Passed value: ${
|
|
362
|
+
throw new Error(`<${this.name}> prop "slotlabel" must match MgItemMore['slotlabel'] type. Passed value: ${Je(newValue)}.`);
|
|
486
363
|
else if (typeof newValue.label !== 'string')
|
|
487
364
|
this.slotlabel.label = this.messages.menuLabel;
|
|
488
365
|
}
|
|
489
366
|
validateSize(newValue) {
|
|
490
367
|
if (newValue && !sizes.includes(newValue))
|
|
491
|
-
throw new Error(`<${this.name}> prop "size" must match MgItemMore['size'] type. Passed value: ${
|
|
368
|
+
throw new Error(`<${this.name}> prop "size" must match MgItemMore['size'] type. Passed value: ${Je(newValue)}.`);
|
|
492
369
|
}
|
|
493
370
|
/*************
|
|
494
371
|
* Lifecycle *
|
|
@@ -519,8 +396,7 @@ const MgItemMore = /*@__PURE__*/ proxyCustomElement(class MgItemMore extends HTM
|
|
|
519
396
|
*/
|
|
520
397
|
componentDidUpdate() {
|
|
521
398
|
if (this.parentMenu && this.overflowBehavior === undefined) {
|
|
522
|
-
this.
|
|
523
|
-
this.overflowBehavior = new OverflowBehavior(this.parentMenu, this.renderMgMenuItemOverflowElement);
|
|
399
|
+
this.overflowBehavior = new OverflowBehavior(this.parentMenu, this.element, this.itemMoreContainer);
|
|
524
400
|
}
|
|
525
401
|
}
|
|
526
402
|
/**
|
|
@@ -535,11 +411,11 @@ const MgItemMore = /*@__PURE__*/ proxyCustomElement(class MgItemMore extends HTM
|
|
|
535
411
|
* @returns HTML Element
|
|
536
412
|
*/
|
|
537
413
|
render() {
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
} }
|
|
414
|
+
const menuItemIdentifier = "mg-item-more";
|
|
415
|
+
return (h(Host, { key: '522fc142a992fa450b2d102e2c053fcd25704dcc', role: "listitem", "data-mg-popover-guard": `${menuItemIdentifier}-popover` }, this.parentMenu && (h("mg-menu-item", { key: 'c05fb5c0379656b9634beca745b3b74d36c8e46c', "data-overflow-more": true, "data-size": this.parentMenu.size, "data-style-direction": Direction.HORIZONTAL, identifier: menuItemIdentifier }, h("mg-icon", { key: 'e40f07ce8c55c30ef79a42ddb973d884ab289427', icon: this.icon.icon, size: this.size, slot: "image" }), h("span", { key: '3b38b9362a023df9e53733bf810c4f37a0016a93', class: { 'mg-u-visually-hidden': !this.slotlabel.display }, slot: "label" }, this.slotlabel.label), h("mg-menu", { key: '4f20389326507261356d897dd25e676ac37ca5bb', direction: Direction.VERTICAL, label: this.messages.menuLabel, size: this.size, ref: (ref) => {
|
|
416
|
+
if (ref !== null)
|
|
417
|
+
this.itemMoreContainer = ref;
|
|
418
|
+
} })))));
|
|
543
419
|
}
|
|
544
420
|
get element() { return this; }
|
|
545
421
|
static get watchers() { return {
|