@mgdis/mg-components 5.17.0 → 5.19.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/{mg-menu.conf-43aacf30.js → components.utils-dc9c8a53.js} +160 -7
- package/dist/cjs/components.utils-dc9c8a53.js.map +1 -0
- package/dist/cjs/index-c042e24b.js +18 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mg-action-more_34.cjs.entry.js +761 -582
- package/dist/cjs/mg-action-more_34.cjs.entry.js.map +1 -1
- package/dist/cjs/mg-components.cjs.js +1 -1
- package/dist/cjs/mg-item-more.cjs.entry.js +5 -5
- package/dist/cjs/mg-item-more.cjs.entry.js.map +1 -1
- package/dist/collection/components/atoms/mg-badge/mg-badge.js +9 -9
- package/dist/collection/components/atoms/mg-badge/mg-badge.js.map +1 -1
- package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js +5 -5
- package/dist/collection/components/atoms/mg-badge/test/mg-badge.spec.js.map +1 -1
- package/dist/collection/components/atoms/mg-button/mg-button.js +12 -12
- package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
- package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js +4 -4
- package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js.map +1 -1
- package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js +3 -3
- package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js.map +1 -1
- package/dist/collection/components/atoms/mg-card/mg-card.js +9 -9
- package/dist/collection/components/atoms/mg-card/mg-card.js.map +1 -1
- package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +3 -3
- package/dist/collection/components/atoms/mg-character-left/mg-character-left.js.map +1 -1
- package/dist/collection/components/atoms/mg-divider/mg-divider.js +4 -4
- package/dist/collection/components/atoms/mg-divider/mg-divider.js.map +1 -1
- package/dist/collection/components/atoms/mg-icon/mg-icon.js +13 -15
- package/dist/collection/components/atoms/mg-icon/mg-icon.js.map +1 -1
- package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js +4 -4
- package/dist/collection/components/atoms/mg-icon/test/mg-icon.spec.js.map +1 -1
- package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +5 -4
- package/dist/collection/components/atoms/mg-input-title/mg-input-title.js.map +1 -1
- package/dist/collection/components/atoms/mg-tag/mg-tag.js +9 -9
- package/dist/collection/components/atoms/mg-tag/mg-tag.js.map +1 -1
- package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js +23 -0
- package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.playwright.js.map +1 -0
- package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js +5 -5
- package/dist/collection/components/atoms/mg-tag/test/mg-tag.spec.js.map +1 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +2 -2
- 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 +37 -17
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js.map +1 -1
- package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js +7 -1
- package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.e2e.js.map +1 -1
- package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js +9 -1
- package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/MgInput.js +12 -11
- package/dist/collection/components/molecules/inputs/MgInput.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +4 -4
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js.map +1 -1
- 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-paginated/mg-input-checkbox-paginated.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +111 -38
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js +21 -27
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.e2e.playwright.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js +62 -6
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +84 -13
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js +55 -0
- package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +115 -44
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js +55 -0
- package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +88 -15
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js +55 -0
- package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +87 -14
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.e2e.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js +60 -0
- package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +87 -14
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js +55 -0
- package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js +5 -0
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js.map +1 -0
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +151 -34
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js +147 -0
- package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.js.map +1 -0
- package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js +80 -7
- package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +110 -36
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js +69 -6
- package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +9 -9
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js.map +1 -1
- package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js +2 -2
- package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.spec.js.map +1 -1
- package/dist/collection/components/molecules/menu/mg-menu/mg-menu.js +2 -2
- 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 +8 -9
- 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 +6 -6
- package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
- package/dist/collection/components/molecules/mg-details/mg-details.js +5 -4
- package/dist/collection/components/molecules/mg-details/mg-details.js.map +1 -1
- package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js +1 -1
- package/dist/collection/components/molecules/mg-details/test/mg-details.spec.js.map +1 -1
- package/dist/collection/components/molecules/mg-form/mg-form.js +6 -6
- package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
- package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js +4 -4
- package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js.map +1 -1
- package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +7 -7
- package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js.map +1 -1
- package/dist/collection/components/molecules/mg-item-more/mg-item-more.js +5 -4
- package/dist/collection/components/molecules/mg-item-more/mg-item-more.js.map +1 -1
- package/dist/collection/components/molecules/mg-message/mg-message.js +8 -8
- package/dist/collection/components/molecules/mg-message/mg-message.js.map +1 -1
- package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js +11 -11
- package/dist/collection/components/molecules/mg-message/test/mg-message.spec.js.map +1 -1
- package/dist/collection/components/molecules/mg-modal/mg-modal.js +8 -8
- package/dist/collection/components/molecules/mg-modal/mg-modal.js.map +1 -1
- package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js +7 -7
- package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js.map +1 -1
- package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js +3 -3
- package/dist/collection/components/molecules/mg-modal/test/mg-modal.firefox.e2e.playwright.js.map +1 -1
- package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js +1 -1
- package/dist/collection/components/molecules/mg-modal/test/mg-modal.spec.js.map +1 -1
- package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +3 -3
- package/dist/collection/components/molecules/mg-pagination/mg-pagination.js.map +1 -1
- package/dist/collection/components/molecules/mg-panel/mg-panel.js +17 -15
- package/dist/collection/components/molecules/mg-panel/mg-panel.js.map +1 -1
- package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js +3 -3
- package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js.map +1 -1
- package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js +11 -21
- package/dist/collection/components/molecules/mg-panel/test/mg-panel.spec.js.map +1 -1
- package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +4 -4
- 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 +36 -16
- package/dist/collection/components/molecules/mg-popover/mg-popover.js.map +1 -1
- package/dist/collection/components/molecules/mg-popover/test/{mg-popover.e2e.js → mg-popover.e2e.playwright.js} +54 -62
- package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.playwright.js.map +1 -0
- package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js +12 -0
- package/dist/collection/components/molecules/mg-popover/test/mg-popover.spec.js.map +1 -1
- package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +5 -6
- 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 +34 -34
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.js.map +1 -1
- package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js +13 -13
- package/dist/collection/components/molecules/mg-tabs/test/mg-tabs.spec.js.map +1 -1
- package/dist/collection/locales/en/messages.json +3 -3
- package/dist/collection/locales/fr/messages.json +3 -3
- package/dist/collection/utils/components.utils.js +16 -0
- package/dist/collection/utils/components.utils.js.map +1 -1
- package/dist/collection/utils/components.utils.spec.js +22 -1
- package/dist/collection/utils/components.utils.spec.js.map +1 -1
- package/dist/collection/variables.css +1 -275
- package/dist/components/MgInput.js +17 -16
- package/dist/components/MgInput.js.map +1 -1
- package/dist/components/components.utils.js +17 -1
- package/dist/components/components.utils.js.map +1 -1
- package/dist/components/index2.js +6 -6
- package/dist/components/mg-action-more.js +5 -5
- package/dist/components/mg-action-more.js.map +1 -1
- package/dist/components/mg-badge2.js +8 -8
- package/dist/components/mg-badge2.js.map +1 -1
- package/dist/components/mg-button2.js +11 -11
- package/dist/components/mg-button2.js.map +1 -1
- package/dist/components/mg-card2.js +8 -8
- package/dist/components/mg-card2.js.map +1 -1
- package/dist/components/mg-character-left2.js +1 -1
- package/dist/components/mg-character-left2.js.map +1 -1
- package/dist/components/mg-details.js +4 -3
- package/dist/components/mg-details.js.map +1 -1
- package/dist/components/mg-divider.js +3 -3
- package/dist/components/mg-divider.js.map +1 -1
- package/dist/components/mg-form.js +4 -4
- package/dist/components/mg-form.js.map +1 -1
- package/dist/components/mg-icon2.js +12 -14
- package/dist/components/mg-icon2.js.map +1 -1
- package/dist/components/mg-illustrated-message.js +7 -7
- package/dist/components/mg-illustrated-message.js.map +1 -1
- package/dist/components/mg-input-checkbox-paginated2.js +8 -8
- package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
- package/dist/components/mg-input-checkbox.js +70 -34
- package/dist/components/mg-input-checkbox.js.map +1 -1
- package/dist/components/mg-input-date.js +45 -12
- package/dist/components/mg-input-date.js.map +1 -1
- package/dist/components/mg-input-numeric.js +76 -43
- package/dist/components/mg-input-numeric.js.map +1 -1
- package/dist/components/mg-input-password.js +49 -14
- package/dist/components/mg-input-password.js.map +1 -1
- package/dist/components/mg-input-radio.js +48 -13
- package/dist/components/mg-input-radio.js.map +1 -1
- package/dist/components/mg-input-select2.js +48 -13
- package/dist/components/mg-input-select2.js.map +1 -1
- package/dist/components/mg-input-text2.js +83 -33
- package/dist/components/mg-input-text2.js.map +1 -1
- package/dist/components/mg-input-textarea.js +69 -35
- package/dist/components/mg-input-textarea.js.map +1 -1
- package/dist/components/mg-input-title2.js +4 -3
- package/dist/components/mg-input-title2.js.map +1 -1
- package/dist/components/mg-input-toggle.js +9 -9
- package/dist/components/mg-input-toggle.js.map +1 -1
- package/dist/components/mg-item-more.js +4 -3
- package/dist/components/mg-item-more.js.map +1 -1
- package/dist/components/mg-menu-item2.js +7 -8
- package/dist/components/mg-menu-item2.js.map +1 -1
- package/dist/components/mg-menu2.js +1 -1
- package/dist/components/mg-menu2.js.map +1 -1
- package/dist/components/mg-message.js +7 -7
- package/dist/components/mg-message.js.map +1 -1
- package/dist/components/mg-modal.js +7 -7
- package/dist/components/mg-modal.js.map +1 -1
- package/dist/components/mg-pagination2.js +2 -2
- package/dist/components/mg-pagination2.js.map +1 -1
- package/dist/components/mg-panel.js +16 -15
- package/dist/components/mg-panel.js.map +1 -1
- package/dist/components/mg-popover-content2.js +4 -4
- package/dist/components/mg-popover-content2.js.map +1 -1
- package/dist/components/mg-popover2.js +33 -14
- package/dist/components/mg-popover2.js.map +1 -1
- package/dist/components/mg-skip-links.js +4 -5
- package/dist/components/mg-skip-links.js.map +1 -1
- package/dist/components/mg-tabs.js +33 -33
- package/dist/components/mg-tabs.js.map +1 -1
- package/dist/components/mg-tag.js +8 -8
- package/dist/components/mg-tag.js.map +1 -1
- package/dist/components/mg-tooltip-content2.js +1 -1
- package/dist/components/mg-tooltip-content2.js.map +1 -1
- package/dist/components/mg-tooltip2.js +34 -15
- package/dist/components/mg-tooltip2.js.map +1 -1
- package/dist/esm/{mg-menu.conf-012fc9b4.js → components.utils-0f76010d.js} +153 -8
- package/dist/esm/components.utils-0f76010d.js.map +1 -0
- package/dist/esm/index-ce01e63b.js +18 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mg-action-more_34.entry.js +697 -518
- package/dist/esm/mg-action-more_34.entry.js.map +1 -1
- package/dist/esm/mg-components.js +1 -1
- package/dist/esm/mg-item-more.entry.js +4 -4
- package/dist/esm/mg-item-more.entry.js.map +1 -1
- package/dist/mg-components/locales/en/messages.json +3 -3
- package/dist/mg-components/locales/fr/messages.json +3 -3
- package/dist/mg-components/mg-components.css +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-768fc594.entry.js +2 -0
- package/dist/mg-components/p-768fc594.entry.js.map +1 -0
- package/dist/mg-components/p-c9e2c669.js +2 -0
- package/dist/mg-components/p-c9e2c669.js.map +1 -0
- package/dist/mg-components/p-d2d6afec.entry.js +2 -0
- package/dist/mg-components/p-d2d6afec.entry.js.map +1 -0
- package/dist/mg-components/variables.css +1 -275
- package/dist/types/components/atoms/mg-card/mg-card.d.ts +1 -1
- package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +1 -1
- package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +4 -3
- package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.d.ts +1 -1
- package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +4 -4
- package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +22 -1
- package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +17 -2
- package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +35 -20
- package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +16 -1
- package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +16 -1
- package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +16 -1
- package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.conf.d.ts +12 -0
- package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +30 -6
- package/dist/types/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.playwright.d.ts +1 -0
- package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +17 -5
- package/dist/types/components/molecules/mg-action-more/mg-action-more.d.ts +2 -1
- package/dist/types/components/molecules/mg-form/mg-form.d.ts +1 -1
- package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +3 -3
- package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +2 -1
- package/dist/types/components/molecules/mg-popover/test/mg-popover.e2e.playwright.d.ts +1 -0
- package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +6 -5
- package/dist/types/components.d.ts +71 -13
- package/dist/types/utils/components.utils.d.ts +12 -0
- package/package.json +17 -18
- package/readme.md +0 -31
- package/dist/cjs/mg-menu.conf-43aacf30.js.map +0 -1
- package/dist/collection/components/atoms/mg-badge/mg-badge.css +0 -116
- package/dist/collection/components/atoms/mg-button/mg-button.css +0 -182
- package/dist/collection/components/atoms/mg-card/mg-card.css +0 -75
- package/dist/collection/components/atoms/mg-character-left/mg-character-left.css +0 -3
- package/dist/collection/components/atoms/mg-divider/mg-divider.css +0 -9
- package/dist/collection/components/atoms/mg-icon/mg-icon.css +0 -138
- package/dist/collection/components/atoms/mg-input-title/mg-input-title.css +0 -12
- package/dist/collection/components/atoms/mg-tag/mg-tag.css +0 -131
- package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.js +0 -37
- package/dist/collection/components/atoms/mg-tag/test/mg-tag.e2e.js.map +0 -1
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.css +0 -43
- package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.css +0 -3
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +0 -268
- package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +0 -211
- package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +0 -257
- package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +0 -254
- package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +0 -179
- package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +0 -264
- package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +0 -304
- package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.js +0 -171
- package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.e2e.js.map +0 -1
- package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +0 -303
- package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +0 -233
- package/dist/collection/components/molecules/menu/mg-menu/mg-menu.css +0 -37
- package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.css +0 -377
- package/dist/collection/components/molecules/mg-action-more/mg-action-more.css +0 -39
- package/dist/collection/components/molecules/mg-details/mg-details.css +0 -64
- package/dist/collection/components/molecules/mg-form/mg-form.css +0 -19
- package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.css +0 -45
- package/dist/collection/components/molecules/mg-item-more/mg-item-more.css +0 -30
- package/dist/collection/components/molecules/mg-message/mg-message.css +0 -82
- package/dist/collection/components/molecules/mg-modal/mg-modal.css +0 -67
- package/dist/collection/components/molecules/mg-pagination/mg-pagination.css +0 -47
- package/dist/collection/components/molecules/mg-panel/mg-panel.css +0 -64
- package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.css +0 -135
- package/dist/collection/components/molecules/mg-popover/mg-popover.css +0 -11
- package/dist/collection/components/molecules/mg-popover/test/mg-popover.e2e.js.map +0 -1
- package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.css +0 -28
- package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +0 -99
- package/dist/collection/styles/a11y.scss +0 -36
- package/dist/collection/styles/fonts.scss +0 -21
- package/dist/collection/styles/form.scss +0 -3
- package/dist/collection/styles/global.scss +0 -80
- package/dist/collection/styles/layout.scss +0 -29
- package/dist/collection/styles/main.scss +0 -23
- package/dist/collection/styles/mg-icon-animation.scss +0 -6
- package/dist/collection/styles/navigation-button.scss +0 -77
- package/dist/collection/styles/reset-mg-card-slotted-variables.scss +0 -11
- package/dist/collection/styles/typography.scss +0 -82
- package/dist/collection/styles/utilities.scss +0 -21
- package/dist/collection/test/typography.e2e.playwright.js +0 -12
- package/dist/collection/test/typography.e2e.playwright.js.map +0 -1
- package/dist/esm/mg-menu.conf-012fc9b4.js.map +0 -1
- package/dist/mg-components/p-1d7d6fa0.js +0 -2
- package/dist/mg-components/p-1d7d6fa0.js.map +0 -1
- package/dist/mg-components/p-9257e8f1.entry.js +0 -2
- package/dist/mg-components/p-9257e8f1.entry.js.map +0 -1
- package/dist/mg-components/p-caafc9cf.entry.js +0 -2
- package/dist/mg-components/p-caafc9cf.entry.js.map +0 -1
- package/dist/mg-components/styles/a11y.scss +0 -36
- package/dist/mg-components/styles/fonts.scss +0 -21
- package/dist/mg-components/styles/form.scss +0 -3
- package/dist/mg-components/styles/global.scss +0 -80
- package/dist/mg-components/styles/layout.scss +0 -29
- package/dist/mg-components/styles/main.scss +0 -23
- package/dist/mg-components/styles/mg-icon-animation.scss +0 -6
- package/dist/mg-components/styles/navigation-button.scss +0 -77
- package/dist/mg-components/styles/reset-mg-card-slotted-variables.scss +0 -11
- package/dist/mg-components/styles/typography.scss +0 -82
- package/dist/mg-components/styles/utilities.scss +0 -21
- /package/dist/types/{test/typography.e2e.playwright.d.ts → components/atoms/mg-tag/test/mg-tag.e2e.playwright.d.ts} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-c042e24b.js');
|
|
6
|
-
const
|
|
6
|
+
const components_utils = require('./components.utils-dc9c8a53.js');
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Available menu-item positions
|
|
@@ -24,136 +24,7 @@ var Status$1;
|
|
|
24
24
|
Status["ACTIVE"] = "active";
|
|
25
25
|
})(Status$1 || (Status$1 = {}));
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
* Create random ID
|
|
29
|
-
* @param prefix - add prefix to created ID
|
|
30
|
-
* @param length - ID length
|
|
31
|
-
* @returns ID
|
|
32
|
-
*/
|
|
33
|
-
const createID = (prefix = '', length = 10) => {
|
|
34
|
-
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
35
|
-
const charsLength = chars.length;
|
|
36
|
-
let ID = '';
|
|
37
|
-
let now = Date.now();
|
|
38
|
-
while (length > 0) {
|
|
39
|
-
now += Math.pow(10, 6); // Add 1 millisecond to the timestamp
|
|
40
|
-
const index = now % charsLength;
|
|
41
|
-
ID += chars.charAt(index);
|
|
42
|
-
length--;
|
|
43
|
-
}
|
|
44
|
-
return (prefix !== '' ? `${prefix}-` : '') + ID;
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Class to manage component classlist
|
|
48
|
-
* Set() are not working when imported in project
|
|
49
|
-
*/
|
|
50
|
-
class ClassList {
|
|
51
|
-
constructor(classlist = []) {
|
|
52
|
-
/**
|
|
53
|
-
* Add class
|
|
54
|
-
* @param className - class name to add
|
|
55
|
-
*/
|
|
56
|
-
this.add = (className) => {
|
|
57
|
-
if (!this.has(className)) {
|
|
58
|
-
this.classes.push(className);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Delete class
|
|
63
|
-
* @param className - class name to delete
|
|
64
|
-
*/
|
|
65
|
-
this.delete = (className) => {
|
|
66
|
-
const index = this.classes.indexOf(className);
|
|
67
|
-
if (index > -1) {
|
|
68
|
-
this.classes.splice(index, 1);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Check if class exist in list
|
|
73
|
-
* @param className - class name to check
|
|
74
|
-
* @returns class name is in the list
|
|
75
|
-
*/
|
|
76
|
-
this.has = (className) => {
|
|
77
|
-
return this.classes.includes(className);
|
|
78
|
-
};
|
|
79
|
-
/**
|
|
80
|
-
* Join classes seperated by spaces
|
|
81
|
-
* @returns joined values
|
|
82
|
-
*/
|
|
83
|
-
this.join = () => {
|
|
84
|
-
return this.classes.join(' ');
|
|
85
|
-
};
|
|
86
|
-
this.classes = classlist;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Check if all items are string
|
|
91
|
-
* @param items - items to check
|
|
92
|
-
* @returns all items are string
|
|
93
|
-
*/
|
|
94
|
-
const allItemsAreString = (items) => Array.isArray(items) && items.every(item => typeof item === 'string');
|
|
95
|
-
/**
|
|
96
|
-
* Check if element is a heading
|
|
97
|
-
* @param element - slotted element
|
|
98
|
-
* @param tagNames - allowed tag names list
|
|
99
|
-
* @returns element is a heading
|
|
100
|
-
*/
|
|
101
|
-
const isTagName = (element, tagNames) => {
|
|
102
|
-
return tagNames.includes(element === null || element === void 0 ? void 0 : element.tagName.toLowerCase());
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
* Focusable elements query selector
|
|
106
|
-
*/
|
|
107
|
-
const focusableElements = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), [identifier]';
|
|
108
|
-
/**
|
|
109
|
-
* Get windows
|
|
110
|
-
* @param localWindow - the window we are lookink for other windows
|
|
111
|
-
* @returns The list of windows found
|
|
112
|
-
*/
|
|
113
|
-
const getWindows = (localWindow) => {
|
|
114
|
-
const parentWindows = getParentWindows(localWindow);
|
|
115
|
-
const childWindows = getChildWindows(localWindow);
|
|
116
|
-
return [localWindow, ...parentWindows, ...childWindows];
|
|
117
|
-
};
|
|
118
|
-
/**
|
|
119
|
-
* Get parent windows
|
|
120
|
-
* @param localWindow - the window we are lookink for parents
|
|
121
|
-
* @param windows - The list of allready found windows
|
|
122
|
-
* @returns The list of windows found
|
|
123
|
-
*/
|
|
124
|
-
const getParentWindows = (localWindow, windows = []) => {
|
|
125
|
-
// Check if is in iframe
|
|
126
|
-
if (localWindow.self !== localWindow.top) {
|
|
127
|
-
// Check if we have permission to access parent
|
|
128
|
-
try {
|
|
129
|
-
const parentWindow = localWindow.parent;
|
|
130
|
-
windows.push(parentWindow);
|
|
131
|
-
return getParentWindows(parentWindow, windows);
|
|
132
|
-
}
|
|
133
|
-
catch (err) {
|
|
134
|
-
console.error('Different hosts between iframes:', err);
|
|
135
|
-
return windows;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return windows;
|
|
139
|
-
};
|
|
140
|
-
/**
|
|
141
|
-
* Get child windows
|
|
142
|
-
* @param localWindow - the window we are lookink for children
|
|
143
|
-
* @param windows - The list of allready found windows
|
|
144
|
-
* @returns The list of windows found
|
|
145
|
-
*/
|
|
146
|
-
const getChildWindows = (localWindow, windows = []) => {
|
|
147
|
-
if (localWindow.frames.length > 0) {
|
|
148
|
-
for (const childWindow of Array.from(localWindow.frames)) {
|
|
149
|
-
windows.push(childWindow);
|
|
150
|
-
getChildWindows(childWindow, windows);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return windows;
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
const mgActionMoreCss = ".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{--mg-popover-padding-vertical:1rem;--mg-popover-padding-horizontal:0;--mg-popover-max-width:unset}.mg-action-more__chevron{transition:200ms}.mg-action-more__chevron--rotate.mg-action-more__chevron{transform:rotate(180deg)}";
|
|
27
|
+
const mgActionMoreCss = ".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}}:host{--mg-popover-padding-vertical:1rem;--mg-popover-padding-horizontal:0;--mg-popover-max-width:unset}.mg-c-action-more__chevron{transition:200ms}.mg-c-action-more__chevron--rotate.mg-c-action-more__chevron{transform:rotate(180deg)}";
|
|
157
28
|
|
|
158
29
|
/**
|
|
159
30
|
* MgActionMore['items'] type guard
|
|
@@ -189,12 +60,13 @@ const MgActionMore = class {
|
|
|
189
60
|
* Internal *
|
|
190
61
|
************/
|
|
191
62
|
this.name = 'mg-action-more';
|
|
192
|
-
this.
|
|
63
|
+
this.classBase = 'mg-c-action-more';
|
|
64
|
+
this.mgPopoverIdentifier = components_utils.createID(this.name);
|
|
193
65
|
/************
|
|
194
66
|
* Methods *
|
|
195
67
|
***********/
|
|
196
68
|
/**
|
|
197
|
-
*
|
|
69
|
+
* Toggle expanded props
|
|
198
70
|
*/
|
|
199
71
|
this.toggleExpanded = () => {
|
|
200
72
|
this.expanded = !this.expanded;
|
|
@@ -257,7 +129,7 @@ const MgActionMore = class {
|
|
|
257
129
|
* Validate props
|
|
258
130
|
*/
|
|
259
131
|
componentWillLoad() {
|
|
260
|
-
this.messages =
|
|
132
|
+
this.messages = components_utils.initLocales(this.element).messages.actionMore;
|
|
261
133
|
this.validateItems(this.items);
|
|
262
134
|
this.validateButton(this.button);
|
|
263
135
|
this.validateIcon(this.icon);
|
|
@@ -272,12 +144,11 @@ const MgActionMore = class {
|
|
|
272
144
|
const buttonContent = [buttonLabel];
|
|
273
145
|
if (!this.button.isIcon && this.displayChevron) {
|
|
274
146
|
buttonContent.push(index.h("span", { class: {
|
|
275
|
-
[`${this.
|
|
276
|
-
[`${this.
|
|
277
|
-
'mg-a11y-animation': true,
|
|
147
|
+
[`${this.classBase}__chevron`]: true,
|
|
148
|
+
[`${this.classBase}__chevron--rotate`]: this.expanded === true,
|
|
278
149
|
} }, index.h("mg-icon", { icon: "chevron-down", size: "small" })));
|
|
279
150
|
}
|
|
280
|
-
return (index.h(index.Host, { "data-mg-popover-guard": this.mgPopoverIdentifier }, index.h("span", { class: "mg-action-more" }, index.h("mg-popover", { identifier: this.mgPopoverIdentifier, display: this.expanded, "onDisplay-change": this.handleDisplayChange }, index.h("mg-button", { variant: this.button.variant, isIcon: this.button.isIcon, type: "button", label: buttonLabel, onClick: this.handleButton }, this.icon && index.h("mg-icon", Object.assign({}, this.icon)), !this.button.isIcon && buttonContent), index.h("div", { slot: "content" }, index.h("mg-menu", { direction:
|
|
151
|
+
return (index.h(index.Host, { "data-mg-popover-guard": this.mgPopoverIdentifier }, index.h("span", { class: "mg-action-more" }, index.h("mg-popover", { identifier: this.mgPopoverIdentifier, display: this.expanded, "onDisplay-change": this.handleDisplayChange }, index.h("mg-button", { variant: this.button.variant, isIcon: this.button.isIcon, type: "button", label: buttonLabel, onClick: this.handleButton }, this.icon && index.h("mg-icon", Object.assign({}, this.icon)), !this.button.isIcon && buttonContent), index.h("div", { slot: "content" }, index.h("mg-menu", { direction: components_utils.Direction.VERTICAL, label: this.messages.label }, this.items.map(item => {
|
|
281
152
|
var _a;
|
|
282
153
|
return (
|
|
283
154
|
// eslint-disable-next-line react/jsx-no-bind
|
|
@@ -299,7 +170,7 @@ MgActionMore.style = mgActionMoreCss;
|
|
|
299
170
|
*/
|
|
300
171
|
const variants$5 = ['info', 'primary', 'secondary', 'success', 'warning', 'danger', 'text-color'];
|
|
301
172
|
|
|
302
|
-
const mgBadgeCss = ".
|
|
173
|
+
const mgBadgeCss = ".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}}.mg-c-badge{min-width:var(--mg-badge-size);height:var(--mg-badge-size);box-sizing:border-box;padding:0 .4rem;border:.1rem solid;border-radius:calc(var(--mg-badge-size)/2);font-size:var(--mg-badge-font-size);font-weight:600;line-height:var(--mg-badge-size);text-align:center}.mg-c-badge.mg-c-badge--primary{border-color:hsl(var(--color-dark));background-color:hsl(var(--color-dark));color:hsl(var(--color-light))}.mg-c-badge.mg-c-badge--primary.mg-c-badge--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-dark))}.mg-c-badge.mg-c-badge--secondary{border-color:hsl(var(--color-light));background-color:hsl(var(--color-light));color:hsl(var(--color-dark))}.mg-c-badge.mg-c-badge--secondary.mg-c-badge--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-light))}.mg-c-badge.mg-c-badge--success{border-color:hsl(var(--color-success));background-color:hsl(var(--color-success));color:hsl(var(--color-dark))}.mg-c-badge.mg-c-badge--success.mg-c-badge--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-success))}.mg-c-badge.mg-c-badge--warning{border-color:hsl(var(--color-warning));background-color:hsl(var(--color-warning));color:hsl(var(--color-dark))}.mg-c-badge.mg-c-badge--warning.mg-c-badge--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-warning))}.mg-c-badge.mg-c-badge--danger{border-color:hsl(var(--color-danger));background-color:hsl(var(--color-danger));color:hsl(var(--color-light))}.mg-c-badge.mg-c-badge--danger.mg-c-badge--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-danger))}.mg-c-badge.mg-c-badge--info{border-color:hsl(var(--color-info));background-color:hsl(var(--color-info));color:hsl(var(--color-light))}.mg-c-badge.mg-c-badge--info.mg-c-badge--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-info))}.mg-c-badge.mg-c-badge--text-color{border-color:currentcolor;background-color:currentcolor}.mg-c-badge.mg-c-badge--text-color .mg-c-badge__value{color:hsl(var(--mg-badge-text-color, var(--color-light)))}.mg-c-badge.mg-c-badge--text-color.mg-c-badge--outline{background-color:rgba(0,0,0,0)}.mg-c-badge.mg-c-badge--text-color.mg-c-badge--outline .mg-c-badge__value{color:currentcolor}.mg-c-badge,mg-badge{display:inline-flex;align-items:center;justify-content:center}";
|
|
303
174
|
|
|
304
175
|
const MgBadge = class {
|
|
305
176
|
constructor(hostRef) {
|
|
@@ -308,12 +179,12 @@ const MgBadge = class {
|
|
|
308
179
|
* Internal *
|
|
309
180
|
************/
|
|
310
181
|
// Classes
|
|
311
|
-
this.classOutline = `mg-badge--outline`;
|
|
182
|
+
this.classOutline = `mg-c-badge--outline`;
|
|
312
183
|
this.value = undefined;
|
|
313
184
|
this.label = undefined;
|
|
314
185
|
this.variant = variants$5[0];
|
|
315
186
|
this.outline = undefined;
|
|
316
|
-
this.classCollection = new ClassList(['mg-badge']);
|
|
187
|
+
this.classCollection = new components_utils.ClassList(['mg-c-badge']);
|
|
317
188
|
}
|
|
318
189
|
validateValue(newValue) {
|
|
319
190
|
if (`${newValue}`.match(/^(\d+\+*|[?*!a-z])$/i) === null) {
|
|
@@ -321,7 +192,7 @@ const MgBadge = class {
|
|
|
321
192
|
}
|
|
322
193
|
}
|
|
323
194
|
validateLabel(newValue) {
|
|
324
|
-
if (
|
|
195
|
+
if (!components_utils.isValidString(newValue)) {
|
|
325
196
|
throw new Error('<mg-badge> prop "label" is required.');
|
|
326
197
|
}
|
|
327
198
|
}
|
|
@@ -331,9 +202,9 @@ const MgBadge = class {
|
|
|
331
202
|
}
|
|
332
203
|
else {
|
|
333
204
|
if (oldValue !== undefined) {
|
|
334
|
-
this.classCollection.delete(`mg-badge--${oldValue}`);
|
|
205
|
+
this.classCollection.delete(`mg-c-badge--${oldValue}`);
|
|
335
206
|
}
|
|
336
|
-
this.classCollection.add(`mg-badge--${newValue}`);
|
|
207
|
+
this.classCollection.add(`mg-c-badge--${newValue}`);
|
|
337
208
|
}
|
|
338
209
|
}
|
|
339
210
|
validateOutline(newValue) {
|
|
@@ -356,7 +227,7 @@ const MgBadge = class {
|
|
|
356
227
|
* @returns HTML Element
|
|
357
228
|
*/
|
|
358
229
|
render() {
|
|
359
|
-
return (index.h("span", { class: this.classCollection.join() }, index.h("span", { class: "mg-badge__value" }, this.value), index.h("span", { class: "
|
|
230
|
+
return (index.h("span", { class: this.classCollection.join() }, index.h("span", { class: "mg-c-badge__value" }, this.value), index.h("span", { class: "mg-u-visually-hidden" }, this.label)));
|
|
360
231
|
}
|
|
361
232
|
static get watchers() { return {
|
|
362
233
|
"value": ["validateValue"],
|
|
@@ -372,7 +243,7 @@ MgBadge.style = mgBadgeCss;
|
|
|
372
243
|
*/
|
|
373
244
|
const variants$4 = ['primary', 'secondary', 'danger', 'danger-alt', 'info', 'flat', 'success', 'link'];
|
|
374
245
|
|
|
375
|
-
const mgButtonCss = ":host{display:inline-block;
|
|
246
|
+
const mgButtonCss = ":host{display:inline-block;max-width:100%;vertical-align:middle}:host(:hover) .mg-c-button--flat:not(.mg-c-button--disabled){background:hsl(var(--color-dark)/10%)}:host([full-width]){display:block}:host([disabled]),:host([aria-disabled=true]){pointer-events:none}.mg-c-button.mg-c-button--primary{border-color:hsl(var(--mg-button-primary-border-color, var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-border-variation) * 10%)));background:linear-gradient(to bottom, hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l)), hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), calc(var(--mg-button-primary-color-l) - var(--mg-button-gradient) * 10%)));color:hsl(var(--mg-button-primary-font-color))}:host(:hover) .mg-c-button--primary:not(.mg-c-button--disabled){background:hsl(var(--mg-button-primary-color-h), var(--mg-button-primary-color-s), var(--mg-button-primary-color-l))}.mg-c-button.mg-c-button--secondary{border-color:hsl(var(--mg-button-secondary-border-color, var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-border-variation) * 10%)));background:linear-gradient(to bottom, hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l)), hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), calc(var(--mg-button-secondary-color-l) - var(--mg-button-gradient) * 10%)));color:hsl(var(--mg-button-secondary-font-color))}:host(:hover) .mg-c-button--secondary:not(.mg-c-button--disabled){background:hsl(var(--mg-button-secondary-color-h), var(--mg-button-secondary-color-s), var(--mg-button-secondary-color-l))}.mg-c-button.mg-c-button--danger{border-color:hsl(var(--mg-button-danger-border-color, var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-border-variation) * 10%)));background:linear-gradient(to bottom, hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l)), hsl(var(--color-danger-h), var(--color-danger-s), calc(var(--color-danger-l) - var(--mg-button-gradient) * 10%)));color:hsl(var(--color-neutral))}:host(:hover) .mg-c-button--danger:not(.mg-c-button--disabled){background:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-c-button.mg-c-button--danger-alt{border-color:hsl(var(--mg-button-danger-alt-border-color, var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-border-variation) * 10%)));background:linear-gradient(to bottom, hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l)), hsl(var(--color-neutral-h), var(--color-neutral-s), calc(var(--color-neutral-l) - var(--mg-button-gradient) * 10%)));color:hsl(var(--color-danger))}:host(:hover) .mg-c-button--danger-alt:not(.mg-c-button--disabled){background:hsl(var(--color-neutral-h), var(--color-neutral-s), var(--color-neutral-l))}.mg-c-button.mg-c-button--info{border-color:hsl(var(--mg-button-info-border-color, var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-border-variation) * 10%)));background:linear-gradient(to bottom, hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l)), hsl(var(--color-info-h), var(--color-info-s), calc(var(--color-info-l) - var(--mg-button-gradient) * 10%)));color:hsl(var(--color-neutral))}:host(:hover) .mg-c-button--info:not(.mg-c-button--disabled){background:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-c-button.mg-c-button--success{border-color:hsl(var(--mg-button-success-border-color, var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-border-variation) * 10%)));background:linear-gradient(to bottom, hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l)), hsl(var(--color-success-h), var(--color-success-s), calc(var(--color-success-l) - var(--mg-button-gradient) * 10%)));color:hsl(var(--color-dark))}:host(:hover) .mg-c-button--success:not(.mg-c-button--disabled){background:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l))}.mg-c-button{position:relative;display:inline-flex;min-height:var(--default-size);box-sizing:border-box;align-items:center;padding:calc((var(--default-size) - .2rem - var(--font-size)*var(--line-height))/2) 1.1rem;border-width:var(--mg-button-border-top-width, 0.1rem) var(--mg-button-border-right-width, 0.1rem) var(--mg-button-border-bottom-width, 0.1rem) var(--mg-button-border-left-width, 0.1rem);border-style:solid;border-radius:var(--mg-button-border-radius-top-left, var(--mg-button-border-radius)) var(--mg-button-border-radius-top-right, var(--mg-button-border-radius)) var(--mg-button-border-radius-bottom-right, var(--mg-button-border-radius)) var(--mg-button-border-radius-bottom-left, var(--mg-button-border-radius));background-image:none;column-gap:.6rem;cursor:pointer;touch-action:manipulation;font-family:inherit;font-size:var(--font-size);font-weight:var(--mg-button-font-weight, normal);text-align:left;text-decoration:none}.mg-c-button.mg-c-button--disabled{cursor:default;opacity:var(--mg-button-disabled-opacity)}.mg-c-button.mg-c-button--icon{width:var(--default-size);height:var(--default-size);justify-content:center;padding:0;border-radius:var(--mg-button-border-radius-top-left, var(--mg-button-icon-border-radius)) var(--mg-button-border-radius-top-right, var(--mg-button-icon-border-radius)) var(--mg-button-border-radius-bottom-right, var(--mg-button-icon-border-radius)) var(--mg-button-border-radius-bottom-left, var(--mg-button-icon-border-radius));font-size:var(--font-size);line-height:var(--font-size)}.mg-c-button.mg-c-button--flat{border:none;background:none}.mg-c-button slot,.mg-c-button ::slotted(*:not(mg-icon)){font-family:inherit;font-size:var(--font-size);font-weight:var(--mg-button-font-weight, normal);text-align:left;text-decoration:none;display:flex;align-items:center;column-gap:.6rem}.mg-c-button.mg-c-button--link{min-height:unset;padding:unset;border:unset;border-radius:unset;background:unset;text-decoration:underline}.mg-c-button.mg-c-button--link slot{font-weight:600}.mg-c-button.mg-c-button--link:hover{text-decoration:none}.mg-c-button.mg-c-button--full-width{display:flex;justify-content:center}.mg-c-button mg-icon:only-child,.mg-c-button ::slotted(mg-icon){display:inline-flex;flex-shrink:0;margin:auto 0;line-height:1}.mg-c-button.mg-c-button--loading>mg-icon:first-of-type{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.mg-c-button.mg-c-button--loading .mg-c-button__content{opacity:0}:host(:focus-visible){outline:0}:host(:focus-visible) .mg-c-button{outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:.2rem}";
|
|
376
247
|
|
|
377
248
|
const MgButton = class {
|
|
378
249
|
constructor(hostRef) {
|
|
@@ -382,9 +253,9 @@ const MgButton = class {
|
|
|
382
253
|
* Internal *
|
|
383
254
|
************/
|
|
384
255
|
this.onClickElementFn = null;
|
|
385
|
-
this.classDisabled = 'mg-button--disabled';
|
|
386
|
-
this.classLoading = 'mg-button--loading';
|
|
387
|
-
this.classFullWidth = 'mg-button--full-width';
|
|
256
|
+
this.classDisabled = 'mg-c-button--disabled';
|
|
257
|
+
this.classLoading = 'mg-c-button--loading';
|
|
258
|
+
this.classFullWidth = 'mg-c-button--full-width';
|
|
388
259
|
/**
|
|
389
260
|
* Trigger actions onClick event
|
|
390
261
|
* @param event - click event
|
|
@@ -431,7 +302,7 @@ const MgButton = class {
|
|
|
431
302
|
this.isIcon = false;
|
|
432
303
|
this.disableOnClick = false;
|
|
433
304
|
this.loading = false;
|
|
434
|
-
this.classCollection = new ClassList(['mg-button']);
|
|
305
|
+
this.classCollection = new components_utils.ClassList(['mg-c-button']);
|
|
435
306
|
}
|
|
436
307
|
validateVariant(newValue, oldValue) {
|
|
437
308
|
if (!variants$4.includes(newValue)) {
|
|
@@ -439,9 +310,9 @@ const MgButton = class {
|
|
|
439
310
|
}
|
|
440
311
|
else {
|
|
441
312
|
if (oldValue !== undefined) {
|
|
442
|
-
this.classCollection.delete(`mg-button--${oldValue}`);
|
|
313
|
+
this.classCollection.delete(`mg-c-button--${oldValue}`);
|
|
443
314
|
}
|
|
444
|
-
this.classCollection.add(`mg-button--${newValue}`);
|
|
315
|
+
this.classCollection.add(`mg-c-button--${newValue}`);
|
|
445
316
|
}
|
|
446
317
|
}
|
|
447
318
|
validateFullWidth(newValue) {
|
|
@@ -489,8 +360,8 @@ const MgButton = class {
|
|
|
489
360
|
this.validateVariant(this.variant);
|
|
490
361
|
this.validateFullWidth(this.fullWidth);
|
|
491
362
|
if (this.isIcon) {
|
|
492
|
-
this.classCollection.add(`mg-button--icon`);
|
|
493
|
-
if (
|
|
363
|
+
this.classCollection.add(`mg-c-button--icon`);
|
|
364
|
+
if (!components_utils.isValidString(this.label)) {
|
|
494
365
|
throw new Error(`<mg-button> prop "label" is mandatory when prop "isIcon" is set to true.`);
|
|
495
366
|
}
|
|
496
367
|
}
|
|
@@ -503,7 +374,7 @@ const MgButton = class {
|
|
|
503
374
|
* @returns html element
|
|
504
375
|
*/
|
|
505
376
|
render() {
|
|
506
|
-
return (index.h(index.Host, { role: "button", tabIndex: 0, type: this.type, form: this.form, "full-width": this.fullWidth, "aria-label": this.label, "aria-disabled": this.disabled !== undefined && this.disabled.toString(), onClick: this.handleClick, onKeyup: this.handleKeyup, onKeydown: this.handleKeydown }, index.h("div", { class: this.classCollection.join(), id: this.identifier }, this.loading && index.h("mg-icon", { icon: "loader", spin: true }), index.h("div", { class: "mg-button__content" }, index.h("slot", null)))));
|
|
377
|
+
return (index.h(index.Host, { role: "button", tabIndex: 0, type: this.type, form: this.form, "full-width": this.fullWidth, "aria-label": this.label, "aria-disabled": this.disabled !== undefined && this.disabled.toString(), onClick: this.handleClick, onKeyup: this.handleKeyup, onKeydown: this.handleKeydown }, index.h("div", { class: this.classCollection.join(), id: this.identifier }, this.loading && index.h("mg-icon", { icon: "loader", spin: true }), index.h("div", { class: "mg-c-button__content" }, index.h("slot", null)))));
|
|
507
378
|
}
|
|
508
379
|
get element() { return index.getElement(this); }
|
|
509
380
|
static get watchers() { return {
|
|
@@ -524,7 +395,7 @@ const variants$3 = ['info', 'warning', 'success', 'danger', 'app'];
|
|
|
524
395
|
*/
|
|
525
396
|
const variantStyles$1 = ['bar-left', 'fill'];
|
|
526
397
|
|
|
527
|
-
const mgCardCss = ".mg-card{position:relative;
|
|
398
|
+
const mgCardCss = ".mg-c-card{position:relative;z-index:inherit;overflow:var(--mg-card-overflow, var(--mg-card-overflow-default));width:100%;min-width:var(--mg-card-min-width);max-width:var(--mg-card-max-width);box-sizing:border-box;padding:var(--mg-card-padding, var(--mg-card-padding-default));border:var(--mg-card-border, var(--mg-card-border-default));border-radius:var(--mg-card-border-radius, var(--mg-card-border-radius-default));background:var(--mg-card-background, var(--mg-card-background-default));box-shadow:var(--mg-card-box-shadow, var(--mg-card-box-shadow-default))}.mg-c-card ::slotted(*){--mg-card-border:var(--mg-card-border-default);--mg-card-padding:var(--mg-card-padding-default);--mg-card-border-radius:var(--mg-card-border-radius-default);--mg-card-background:var(--mg-card-background-default);--mg-card-box-shadow:var(--mg-card-box-shadow-default);--mg-card-max-width:unset;--mg-card-min-width:unset}.mg-c-card.mg-c-card--info{overflow:hidden}.mg-c-card.mg-c-card--info.mg-c-card--bar-left .mg-c-card__bar{background-color:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-c-card.mg-c-card--info.mg-c-card--fill{background-color:hsl(var(--color-info-h), var(--color-info-s), var(--mg-color-soft-l))}.mg-c-card.mg-c-card--warning{overflow:hidden}.mg-c-card.mg-c-card--warning.mg-c-card--bar-left .mg-c-card__bar{background-color:hsl(var(--color-warning-h), var(--color-warning-s), var(--color-warning-l))}.mg-c-card.mg-c-card--warning.mg-c-card--fill{background-color:hsl(var(--color-warning-h), var(--color-warning-s), var(--mg-color-soft-l))}.mg-c-card.mg-c-card--success{overflow:hidden}.mg-c-card.mg-c-card--success.mg-c-card--bar-left .mg-c-card__bar{background-color:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l))}.mg-c-card.mg-c-card--success.mg-c-card--fill{background-color:hsl(var(--color-success-h), var(--color-success-s), var(--mg-color-soft-l))}.mg-c-card.mg-c-card--danger{overflow:hidden}.mg-c-card.mg-c-card--danger.mg-c-card--bar-left .mg-c-card__bar{background-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-c-card.mg-c-card--danger.mg-c-card--fill{background-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--mg-color-soft-l))}.mg-c-card.mg-c-card--app{overflow:hidden}.mg-c-card.mg-c-card--app.mg-c-card--bar-left .mg-c-card__bar{background-color:hsl(var(--mg-color-app-h), var(--mg-color-app-s), var(--mg-color-app-l))}.mg-c-card.mg-c-card--app.mg-c-card--fill{background-color:hsl(var(--mg-color-app-h), var(--mg-color-app-s), var(--mg-color-soft-l))}.mg-c-card__bar{position:absolute;top:0;left:0;width:.3rem;height:100%}";
|
|
528
399
|
|
|
529
400
|
const MgCard = class {
|
|
530
401
|
constructor(hostRef) {
|
|
@@ -533,7 +404,7 @@ const MgCard = class {
|
|
|
533
404
|
* Private *
|
|
534
405
|
*************/
|
|
535
406
|
this.name = 'mg-card';
|
|
536
|
-
this.
|
|
407
|
+
this.classBase = 'mg-c-card';
|
|
537
408
|
/**
|
|
538
409
|
* Methode to set default varianStyle props
|
|
539
410
|
* needeed has stencil doesn't know that props is mutated when updated in prop watcher
|
|
@@ -544,17 +415,17 @@ const MgCard = class {
|
|
|
544
415
|
};
|
|
545
416
|
this.variant = undefined;
|
|
546
417
|
this.variantStyle = undefined;
|
|
547
|
-
this.classCollection = new ClassList([this.
|
|
418
|
+
this.classCollection = new components_utils.ClassList([this.classBase]);
|
|
548
419
|
}
|
|
549
420
|
validateVariant(newValue, oldValue) {
|
|
550
421
|
if (newValue && !variants$3.includes(newValue))
|
|
551
422
|
throw new Error(`<${this.name}> prop "variant" must match VariantType type.`);
|
|
552
423
|
if (Boolean(newValue)) {
|
|
553
424
|
this.setDefaultVariantStyle();
|
|
554
|
-
this.classCollection.add(`${this.
|
|
425
|
+
this.classCollection.add(`${this.classBase}--${newValue}`);
|
|
555
426
|
}
|
|
556
427
|
if (Boolean(oldValue))
|
|
557
|
-
this.classCollection.delete(`${this.
|
|
428
|
+
this.classCollection.delete(`${this.classBase}--${oldValue}`);
|
|
558
429
|
}
|
|
559
430
|
validateVariantStyle(newValue, oldValue) {
|
|
560
431
|
if (newValue && !variantStyles$1.includes(newValue))
|
|
@@ -562,9 +433,9 @@ const MgCard = class {
|
|
|
562
433
|
else if (Boolean(newValue) && !variants$3.includes(this.variant))
|
|
563
434
|
throw new Error(`<${this.name}> prop "variantStyle" must be paired with ${JSON.stringify(variants$3)} "variant" prop.`);
|
|
564
435
|
if (Boolean(newValue))
|
|
565
|
-
this.classCollection.add(`${this.
|
|
436
|
+
this.classCollection.add(`${this.classBase}--${newValue}`);
|
|
566
437
|
if (Boolean(oldValue))
|
|
567
|
-
this.classCollection.delete(`${this.
|
|
438
|
+
this.classCollection.delete(`${this.classBase}--${oldValue}`);
|
|
568
439
|
}
|
|
569
440
|
/*************
|
|
570
441
|
* Lifecycle *
|
|
@@ -582,7 +453,7 @@ const MgCard = class {
|
|
|
582
453
|
*/
|
|
583
454
|
render() {
|
|
584
455
|
var _a;
|
|
585
|
-
return (index.h("div", { class: this.classCollection.join() }, ((_a = this.variantStyle) === null || _a === void 0 ? void 0 : _a.startsWith('bar-')) && index.h("span", { class: "mg-card__bar" }), index.h("slot", null)));
|
|
456
|
+
return (index.h("div", { class: this.classCollection.join() }, ((_a = this.variantStyle) === null || _a === void 0 ? void 0 : _a.startsWith('bar-')) && index.h("span", { class: "mg-c-card__bar" }), index.h("slot", null)));
|
|
586
457
|
}
|
|
587
458
|
static get watchers() { return {
|
|
588
459
|
"variant": ["validateVariant"],
|
|
@@ -613,14 +484,14 @@ const MgCharacterLeft = class {
|
|
|
613
484
|
*/
|
|
614
485
|
componentWillLoad() {
|
|
615
486
|
this.validateMaxlength(this.maxlength);
|
|
616
|
-
this.messages =
|
|
487
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
617
488
|
}
|
|
618
489
|
/**
|
|
619
490
|
* Render component
|
|
620
491
|
* @returns HTML Element
|
|
621
492
|
*/
|
|
622
493
|
render() {
|
|
623
|
-
return (index.h("span", { id: this.identifier, "aria-live": "polite" }, index.h("span", { "aria-hidden": "true" }, this.maxlength - this.characters.length, "/", this.maxlength), index.h("span", { class: "
|
|
494
|
+
return (index.h("span", { id: this.identifier, "aria-live": "polite" }, index.h("span", { "aria-hidden": "true" }, this.maxlength - this.characters.length, "/", this.maxlength), index.h("span", { class: "mg-u-visually-hidden" }, this.messages.nbCharLeft.replace('{counter}', this.maxlength - this.characters.length))));
|
|
624
495
|
}
|
|
625
496
|
get element() { return index.getElement(this); }
|
|
626
497
|
static get watchers() { return {
|
|
@@ -629,7 +500,7 @@ const MgCharacterLeft = class {
|
|
|
629
500
|
};
|
|
630
501
|
MgCharacterLeft.style = mgCharacterLeftCss;
|
|
631
502
|
|
|
632
|
-
const mgDetailsCss = ".
|
|
503
|
+
const mgDetailsCss = ".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}}.mg-c-details summary{display:flex;align-items:baseline;cursor:pointer}.mg-c-details__toggle{display:flex;min-height:calc(var(--font-size)*var(--line-height));flex-shrink:0;align-items:center;align-self:flex-start;margin-left:1.5rem;gap:.6rem}.mg-c-details__toggle-icon.mg-c-details__toggle-icon--reverse{transform:rotate(180deg)}.mg-c-details__details{margin-top:var(--mg-details-spacing)}@media (width < 43.75rem){.mg-c-details__toggle>span{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}}";
|
|
633
504
|
|
|
634
505
|
const MgDetails = class {
|
|
635
506
|
constructor(hostRef) {
|
|
@@ -647,7 +518,7 @@ const MgDetails = class {
|
|
|
647
518
|
this.expanded = false;
|
|
648
519
|
}
|
|
649
520
|
validateTitles(newValue) {
|
|
650
|
-
if (
|
|
521
|
+
if (!components_utils.isValidString(newValue)) {
|
|
651
522
|
throw new Error('<mg-details> prop "toggleClosed" and "toggleOpened" must be defined.');
|
|
652
523
|
}
|
|
653
524
|
}
|
|
@@ -669,7 +540,7 @@ const MgDetails = class {
|
|
|
669
540
|
* @returns HTML Element
|
|
670
541
|
*/
|
|
671
542
|
render() {
|
|
672
|
-
return (index.h("details", { class: "mg-details", onToggle: this.handleToggle, open: this.expanded, ref: (el) => (this.details = el) }, index.h("summary", null, index.h("slot", { name: "summary" }), index.h("span", { class: "mg-details__toggle" }, index.h("mg-icon", { icon: "chevron-up", size: "small", class: { 'mg-details__toggle-icon': true, 'mg-details__toggle-icon--reverse': !this.expanded } }), index.h("span", { class: { '
|
|
543
|
+
return (index.h("details", { class: "mg-c-details", onToggle: this.handleToggle, open: this.expanded, ref: (el) => (this.details = el) }, index.h("summary", null, index.h("slot", { name: "summary" }), index.h("span", { class: "mg-c-details__toggle" }, index.h("mg-icon", { icon: "chevron-up", size: "small", class: { 'mg-c-details__toggle-icon': true, 'mg-c-details__toggle-icon--reverse': !this.expanded } }), index.h("span", { class: { 'mg-u-visually-hidden': this.hideSummary } }, this.expanded ? this.toggleOpened : this.toggleClosed))), index.h("div", { class: "mg-c-details__details" }, index.h("slot", { name: "details" }))));
|
|
673
544
|
}
|
|
674
545
|
static get watchers() { return {
|
|
675
546
|
"toggleClosed": ["validateTitles"],
|
|
@@ -679,7 +550,7 @@ const MgDetails = class {
|
|
|
679
550
|
};
|
|
680
551
|
MgDetails.style = mgDetailsCss;
|
|
681
552
|
|
|
682
|
-
const mgDividerCss = ".mg-divider{
|
|
553
|
+
const mgDividerCss = ".mg-c-divider{width:12rem;height:var(--mg-divider-thickness);margin:var(--mg-divider-vertical-spacing) auto;background-color:var(--mg-divider-background-color)}.mg-c-divider.mg-c-divider--full{width:100%}";
|
|
683
554
|
|
|
684
555
|
const MgDivider = class {
|
|
685
556
|
constructor(hostRef) {
|
|
@@ -692,14 +563,14 @@ const MgDivider = class {
|
|
|
692
563
|
*/
|
|
693
564
|
render() {
|
|
694
565
|
return (index.h("div", { class: {
|
|
695
|
-
'mg-divider': true,
|
|
696
|
-
'mg-divider--full': this.size === 'full',
|
|
566
|
+
'mg-c-divider': true,
|
|
567
|
+
'mg-c-divider--full': this.size === 'full',
|
|
697
568
|
} }));
|
|
698
569
|
}
|
|
699
570
|
};
|
|
700
571
|
MgDivider.style = mgDividerCss;
|
|
701
572
|
|
|
702
|
-
const mgFormCss = ".is-asterisk{color:hsl(var(--color-danger))}.mg-
|
|
573
|
+
const mgFormCss = ".mg-u-is-asterisk{color:hsl(var(--color-danger))}.mg-c-form{--mg-inputs-title-width:var(--mg-form-inputs-title-width, 15rem);--mg-inputs-margin-bottom:1.5rem;--mg-inputs-title-horizontal-space:3rem;--mg-inputs-shrink:0}.mg-c-form.mg-c-form--all-required{--mg-input-title-display:none}.mg-c-form>p{font-size:1.2rem}";
|
|
703
574
|
|
|
704
575
|
const MgForm = class {
|
|
705
576
|
constructor(hostRef) {
|
|
@@ -707,7 +578,7 @@ const MgForm = class {
|
|
|
707
578
|
this.formValid = index.createEvent(this, "form-valid", 7);
|
|
708
579
|
this.formSubmit = index.createEvent(this, "form-submit", 7);
|
|
709
580
|
// Classes
|
|
710
|
-
this.classAllRequired = 'mg-form--all-required';
|
|
581
|
+
this.classAllRequired = 'mg-c-form--all-required';
|
|
711
582
|
/**
|
|
712
583
|
* Define required message based on mg-inputs required elements
|
|
713
584
|
*/
|
|
@@ -781,13 +652,13 @@ const MgForm = class {
|
|
|
781
652
|
input.addEventListener('input-valid', this.checkValidity);
|
|
782
653
|
});
|
|
783
654
|
};
|
|
784
|
-
this.identifier = createID('mg-form');
|
|
655
|
+
this.identifier = components_utils.createID('mg-form');
|
|
785
656
|
this.name = this.identifier;
|
|
786
657
|
this.readonly = false;
|
|
787
658
|
this.disabled = false;
|
|
788
659
|
this.valid = undefined;
|
|
789
660
|
this.invalid = undefined;
|
|
790
|
-
this.classCollection = new ClassList(['mg-form']);
|
|
661
|
+
this.classCollection = new components_utils.ClassList(['mg-c-form']);
|
|
791
662
|
this.requiredMessage = undefined;
|
|
792
663
|
}
|
|
793
664
|
handleAttributeChange() {
|
|
@@ -795,7 +666,7 @@ const MgForm = class {
|
|
|
795
666
|
this.setRequiredMessage();
|
|
796
667
|
}
|
|
797
668
|
/**
|
|
798
|
-
*
|
|
669
|
+
* Display input error if it exists.
|
|
799
670
|
*/
|
|
800
671
|
async displayError() {
|
|
801
672
|
if (!this.readonly) {
|
|
@@ -813,7 +684,7 @@ const MgForm = class {
|
|
|
813
684
|
*/
|
|
814
685
|
componentWillLoad() {
|
|
815
686
|
// Get locales
|
|
816
|
-
this.messages =
|
|
687
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
817
688
|
// Get slotted mgButtons
|
|
818
689
|
this.mgButtons = Array.from(this.element.querySelectorAll('mg-button'));
|
|
819
690
|
// Set button form identifier
|
|
@@ -1249,7 +1120,7 @@ const icons = {
|
|
|
1249
1120
|
'wallet-outline': '<svg aria-hidden="true" viewBox="0 0 16 16"><path fill="currentColor" d="M12 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z"/><path fill="currentColor" fill-rule="evenodd" d="M1 12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1V4a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v8Zm12-8H2v1h11V4ZM2 6h12v6H2V6Z" clip-rule="evenodd"/></svg>'
|
|
1250
1121
|
};
|
|
1251
1122
|
|
|
1252
|
-
const mgIconCss = ".
|
|
1123
|
+
const mgIconCss = ".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}}:host{display:inline-flex;vertical-align:middle}.mg-c-icon{color:currentcolor}.mg-c-icon[size=small],.mg-c-icon.mg-c-icon--size-small{width:var(--mg-icon-small-size);height:var(--mg-icon-small-size)}.mg-c-icon[size=small][class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon),.mg-c-icon.mg-c-icon--size-small[class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon){padding:calc(var(--mg-icon-small-size)/2)}.mg-c-icon[size=regular],.mg-c-icon.mg-c-icon--size-regular{width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size)}.mg-c-icon[size=regular][class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon),.mg-c-icon.mg-c-icon--size-regular[class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon){padding:calc(var(--mg-icon-regular-size)/2)}.mg-c-icon[size=medium],.mg-c-icon.mg-c-icon--size-medium{width:var(--mg-icon-medium-size);height:var(--mg-icon-medium-size)}.mg-c-icon[size=medium][class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon),.mg-c-icon.mg-c-icon--size-medium[class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon){padding:calc(var(--mg-icon-medium-size)/2)}.mg-c-icon[size=large],.mg-c-icon.mg-c-icon--size-large{width:var(--mg-icon-large-size);height:var(--mg-icon-large-size)}.mg-c-icon[size=large][class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon),.mg-c-icon.mg-c-icon--size-large[class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon){padding:calc(var(--mg-icon-large-size)/2)}.mg-c-icon[size=extra-large],.mg-c-icon.mg-c-icon--size-extra-large{width:var(--mg-icon-extra-large-size);height:var(--mg-icon-extra-large-size)}.mg-c-icon[size=extra-large][class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon),.mg-c-icon.mg-c-icon--size-extra-large[class*=mg-c-icon--variant-]:not(.mg-c-icon--variant-style-icon){padding:calc(var(--mg-icon-extra-large-size)/2)}.mg-c-icon.mg-c-icon--variant-success.mg-c-icon--variant-style-icon{color:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l))}.mg-c-icon.mg-c-icon--variant-warning.mg-c-icon--variant-style-icon{color:hsl(var(--color-warning-h), var(--color-warning-s), var(--color-warning-l))}.mg-c-icon.mg-c-icon--variant-danger.mg-c-icon--variant-style-icon{color:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l))}.mg-c-icon.mg-c-icon--variant-info.mg-c-icon--variant-style-icon{color:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l))}.mg-c-icon.mg-c-icon--variant-app.mg-c-icon--variant-style-icon{color:hsl(var(--mg-color-app-h), var(--mg-color-app-s), var(--mg-color-app-l))}.mg-c-icon.mg-c-icon--variant-success.mg-c-icon--variant-style-background{background-color:hsl(var(--color-success-h), var(--color-success-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-warning.mg-c-icon--variant-style-background{background-color:hsl(var(--color-warning-h), var(--color-warning-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-danger.mg-c-icon--variant-style-background{background-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-info.mg-c-icon--variant-style-background{background-color:hsl(var(--color-info-h), var(--color-info-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-app.mg-c-icon--variant-style-background{background-color:hsl(var(--mg-color-app-h), var(--mg-color-app-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-success.mg-c-icon--variant-style-full{color:hsl(var(--color-success-h), var(--color-success-s), var(--color-success-l));background-color:hsl(var(--color-success-h), var(--color-success-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-warning.mg-c-icon--variant-style-full{color:hsl(var(--color-warning-h), var(--color-warning-s), var(--color-warning-l));background-color:hsl(var(--color-warning-h), var(--color-warning-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-danger.mg-c-icon--variant-style-full{color:hsl(var(--color-danger-h), var(--color-danger-s), var(--color-danger-l));background-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-info.mg-c-icon--variant-style-full{color:hsl(var(--color-info-h), var(--color-info-s), var(--color-info-l));background-color:hsl(var(--color-info-h), var(--color-info-s), var(--mg-color-soft-l))}.mg-c-icon.mg-c-icon--variant-app.mg-c-icon--variant-style-full{color:hsl(var(--mg-color-app-h), var(--mg-color-app-s), var(--mg-color-app-l));background-color:hsl(var(--mg-color-app-h), var(--mg-color-app-s), var(--mg-color-soft-l))}.mg-c-icon[class*=mg-c-icon--variant-]{border-radius:var(--mg-icon-border-radius)}.mg-c-icon--spin{animation-duration:.75s;animation-iteration-count:infinite;animation-name:rotate}@keyframes rotate{to{transform:rotate(360deg)}}";
|
|
1253
1124
|
|
|
1254
1125
|
const MgIcon = class {
|
|
1255
1126
|
constructor(hostRef) {
|
|
@@ -1279,15 +1150,15 @@ const MgIcon = class {
|
|
|
1279
1150
|
this.variant = undefined;
|
|
1280
1151
|
this.variantStyle = undefined;
|
|
1281
1152
|
this.spin = false;
|
|
1282
|
-
this.classCollection = new ClassList(['mg-icon']);
|
|
1153
|
+
this.classCollection = new components_utils.ClassList(['mg-c-icon']);
|
|
1283
1154
|
}
|
|
1284
1155
|
validateIcon(newValue, oldValue) {
|
|
1285
1156
|
if (!iconList.includes(newValue))
|
|
1286
1157
|
throw new Error(`<mg-icon> prop "icon" must be one of: ${iconList.join(', ')}`);
|
|
1287
1158
|
else {
|
|
1288
1159
|
if (oldValue !== undefined)
|
|
1289
|
-
this.classCollection.delete(`mg-icon--${oldValue}`);
|
|
1290
|
-
this.classCollection.add(`mg-icon--${newValue}`);
|
|
1160
|
+
this.classCollection.delete(`mg-c-icon--${oldValue}`);
|
|
1161
|
+
this.classCollection.add(`mg-c-icon--${newValue}`);
|
|
1291
1162
|
this.renderIcon(newValue);
|
|
1292
1163
|
}
|
|
1293
1164
|
}
|
|
@@ -1296,8 +1167,8 @@ const MgIcon = class {
|
|
|
1296
1167
|
throw new Error(`<mg-icon> prop "size" must be one of: ${sizes$1.join(', ')}`);
|
|
1297
1168
|
else {
|
|
1298
1169
|
if (oldValue !== undefined)
|
|
1299
|
-
this.classCollection.delete(`mg-icon--size-${oldValue}`);
|
|
1300
|
-
this.classCollection.add(`mg-icon--size-${newValue}`);
|
|
1170
|
+
this.classCollection.delete(`mg-c-icon--size-${oldValue}`);
|
|
1171
|
+
this.classCollection.add(`mg-c-icon--size-${newValue}`);
|
|
1301
1172
|
}
|
|
1302
1173
|
}
|
|
1303
1174
|
validateVariant(newValue, oldValue) {
|
|
@@ -1307,8 +1178,8 @@ const MgIcon = class {
|
|
|
1307
1178
|
else {
|
|
1308
1179
|
this.setDefaultVariantStyle();
|
|
1309
1180
|
if (oldValue !== undefined)
|
|
1310
|
-
this.classCollection.delete(`mg-icon--variant-${oldValue}`);
|
|
1311
|
-
this.classCollection.add(`mg-icon--variant-${newValue}`);
|
|
1181
|
+
this.classCollection.delete(`mg-c-icon--variant-${oldValue}`);
|
|
1182
|
+
this.classCollection.add(`mg-c-icon--variant-${newValue}`);
|
|
1312
1183
|
}
|
|
1313
1184
|
}
|
|
1314
1185
|
}
|
|
@@ -1318,19 +1189,17 @@ const MgIcon = class {
|
|
|
1318
1189
|
throw new Error(`<mg-icon> prop "variantStyle" must be one of: ${variantStyles.join(', ')}`);
|
|
1319
1190
|
else {
|
|
1320
1191
|
if (oldValue !== undefined)
|
|
1321
|
-
this.classCollection.delete(`mg-icon--variant-style-${oldValue}`);
|
|
1322
|
-
this.classCollection.add(`mg-icon--variant-style-${newValue}`);
|
|
1192
|
+
this.classCollection.delete(`mg-c-icon--variant-style-${oldValue}`);
|
|
1193
|
+
this.classCollection.add(`mg-c-icon--variant-style-${newValue}`);
|
|
1323
1194
|
}
|
|
1324
1195
|
}
|
|
1325
1196
|
}
|
|
1326
1197
|
handleSpin(newValue) {
|
|
1327
1198
|
if (newValue) {
|
|
1328
|
-
this.classCollection.add('mg-icon--spin');
|
|
1329
|
-
this.classCollection.add('mg-a11y-animation');
|
|
1199
|
+
this.classCollection.add('mg-c-icon--spin');
|
|
1330
1200
|
}
|
|
1331
1201
|
else {
|
|
1332
|
-
this.classCollection.delete('mg-icon--spin');
|
|
1333
|
-
this.classCollection.delete('mg-a11y-animation');
|
|
1202
|
+
this.classCollection.delete('mg-c-icon--spin');
|
|
1334
1203
|
}
|
|
1335
1204
|
}
|
|
1336
1205
|
/**
|
|
@@ -1362,7 +1231,7 @@ const MgIcon = class {
|
|
|
1362
1231
|
};
|
|
1363
1232
|
MgIcon.style = mgIconCss;
|
|
1364
1233
|
|
|
1365
|
-
const mgIllustratedMessageCss = ".mg-illustrated-message{display:flex;flex-direction:column;justify-content:center;
|
|
1234
|
+
const mgIllustratedMessageCss = ".mg-c-illustrated-message{display:flex;max-width:47.5rem;box-sizing:border-box;flex-direction:column;justify-content:center;padding:var(--mg-illustrated-message-padding-vertical) 1.5rem;margin:auto;gap:3em 7rem;text-align:center}.mg-c-illustrated-message__illustration{max-height:18.4rem}.mg-c-illustrated-message__illustration ::slotted([slot=illustration]){width:auto;max-width:100%;height:auto;max-height:18.4rem}.mg-c-illustrated-message__illustration.mg-c-illustrated-message__illustration--small{max-height:6rem}.mg-c-illustrated-message__illustration.mg-c-illustrated-message__illustration--small ::slotted([slot=illustration]){max-height:6rem}.mg-c-illustrated-message.mg-c-illustrated-message--horizontal{max-width:unset;flex-flow:row wrap;align-items:center}.mg-c-illustrated-message.mg-c-illustrated-message--horizontal .mg-c-illustrated-message__slots,.mg-c-illustrated-message.mg-c-illustrated-message--horizontal .mg-c-illustrated-message__illustration{max-width:47.5rem}.mg-c-illustrated-message__title ::slotted([slot=title]){margin:0;font-family:var(--font-family) !important;font-size:2rem !important;font-weight:400 !important}.mg-c-illustrated-message__details ::slotted([slot=details]){margin:2rem 0 0}";
|
|
1366
1235
|
|
|
1367
1236
|
const MgIllustratedMessage = class {
|
|
1368
1237
|
constructor(hostRef) {
|
|
@@ -1379,7 +1248,7 @@ const MgIllustratedMessage = class {
|
|
|
1379
1248
|
componentDidLoad() {
|
|
1380
1249
|
const headingTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
1381
1250
|
const slottedIllustrations = this.element.querySelectorAll('[slot="illustration"]');
|
|
1382
|
-
if (!isTagName(this.element.querySelector('[slot="title"]'), headingTags)) {
|
|
1251
|
+
if (!components_utils.isTagName(this.element.querySelector('[slot="title"]'), headingTags)) {
|
|
1383
1252
|
throw new Error(`<mg-illustrated-message> Slotted title must be a heading: ${headingTags.join(', ')}`);
|
|
1384
1253
|
}
|
|
1385
1254
|
else if (slottedIllustrations.length !== 1) {
|
|
@@ -1393,12 +1262,12 @@ const MgIllustratedMessage = class {
|
|
|
1393
1262
|
*/
|
|
1394
1263
|
render() {
|
|
1395
1264
|
return (index.h("div", { class: {
|
|
1396
|
-
'mg-illustrated-message': true,
|
|
1397
|
-
'mg-illustrated-message--horizontal': this.direction === 'horizontal',
|
|
1265
|
+
'mg-c-illustrated-message': true,
|
|
1266
|
+
'mg-c-illustrated-message--horizontal': this.direction === 'horizontal',
|
|
1398
1267
|
} }, index.h("div", { class: {
|
|
1399
|
-
'mg-illustrated-message__illustration': true,
|
|
1400
|
-
'mg-illustrated-message__illustration--small': this.size === 'small',
|
|
1401
|
-
} }, index.h("slot", { name: "illustration" })), index.h("div", { class: "mg-illustrated-message__slots" }, index.h("div", { class: "mg-illustrated-message__title" }, index.h("slot", { name: "title" })), index.h("div", { class: "mg-illustrated-message__details" }, index.h("slot", { name: "details" })))));
|
|
1268
|
+
'mg-c-illustrated-message__illustration': true,
|
|
1269
|
+
'mg-c-illustrated-message__illustration--small': this.size === 'small',
|
|
1270
|
+
} }, index.h("slot", { name: "illustration" })), index.h("div", { class: "mg-c-illustrated-message__slots" }, index.h("div", { class: "mg-c-illustrated-message__title" }, index.h("slot", { name: "title" })), index.h("div", { class: "mg-c-illustrated-message__details" }, index.h("slot", { name: "details" })))));
|
|
1402
1271
|
}
|
|
1403
1272
|
get element() { return index.getElement(this); }
|
|
1404
1273
|
};
|
|
@@ -1430,20 +1299,20 @@ const applyAriadescribedBy = (children, ariaDescribedbyIDs, utils) => utils.map(
|
|
|
1430
1299
|
* @param props - MgInput Interface Props
|
|
1431
1300
|
*/
|
|
1432
1301
|
const manageClasses = (props) => {
|
|
1433
|
-
props.classCollection.add('mg-input');
|
|
1302
|
+
props.classCollection.add('mg-c-input');
|
|
1434
1303
|
if (props.labelOnTop)
|
|
1435
|
-
props.classCollection.add('mg-input--label-on-top');
|
|
1304
|
+
props.classCollection.add('mg-c-input--label-on-top');
|
|
1436
1305
|
else
|
|
1437
|
-
props.classCollection.delete('mg-input--label-on-top');
|
|
1306
|
+
props.classCollection.delete('mg-c-input--label-on-top');
|
|
1438
1307
|
if (props.readonly)
|
|
1439
|
-
props.classCollection.add('mg-input--readonly');
|
|
1308
|
+
props.classCollection.add('mg-c-input--readonly');
|
|
1440
1309
|
else
|
|
1441
|
-
props.classCollection.delete('mg-input--readonly');
|
|
1310
|
+
props.classCollection.delete('mg-c-input--readonly');
|
|
1442
1311
|
widths.forEach(width => {
|
|
1443
|
-
props.classCollection.delete(`mg-input--width-${width}`);
|
|
1312
|
+
props.classCollection.delete(`mg-c-input--width-${width}`);
|
|
1444
1313
|
});
|
|
1445
1314
|
if (props.mgWidth !== undefined)
|
|
1446
|
-
props.classCollection.add(`mg-input--width-${props.mgWidth}`);
|
|
1315
|
+
props.classCollection.add(`mg-c-input--width-${props.mgWidth}`);
|
|
1447
1316
|
};
|
|
1448
1317
|
/**
|
|
1449
1318
|
* Get tagname
|
|
@@ -1462,10 +1331,10 @@ const MgInput = (props, children, utils) => {
|
|
|
1462
1331
|
/**
|
|
1463
1332
|
* Check required properties
|
|
1464
1333
|
*/
|
|
1465
|
-
if (
|
|
1334
|
+
if (!components_utils.isValidString(props.identifier)) {
|
|
1466
1335
|
throw new Error('<mg-input> prop "identifier" is required.');
|
|
1467
1336
|
}
|
|
1468
|
-
if (
|
|
1337
|
+
if (!components_utils.isValidString(props.label)) {
|
|
1469
1338
|
throw new Error('<mg-input> prop "label" is required.');
|
|
1470
1339
|
}
|
|
1471
1340
|
if (props.labelOnTop && props.labelHide) {
|
|
@@ -1521,19 +1390,19 @@ const MgInput = (props, children, utils) => {
|
|
|
1521
1390
|
* Display asterisk only if not disabled and not readonly
|
|
1522
1391
|
* @returns mg-input-title
|
|
1523
1392
|
*/
|
|
1524
|
-
const getInputTitle = () => (index.h("mg-input-title", { identifier: props.identifier, class: props.labelHide ? '
|
|
1393
|
+
const getInputTitle = () => (index.h("mg-input-title", { identifier: props.identifier, class: props.labelHide ? 'mg-u-visually-hidden' : undefined, required: props.required && !props.disabled && !props.readonly, "is-legend": props.isFieldset }, props.label));
|
|
1525
1394
|
return (index.h(TagName, { class: props.classCollection.join() },
|
|
1526
|
-
props.labelOnTop ? (index.h("div", { class: "mg-input__title" },
|
|
1395
|
+
props.labelOnTop ? (index.h("div", { class: "mg-c-input__title" },
|
|
1527
1396
|
getInputTitle(),
|
|
1528
1397
|
!props.readonly && props.tooltip && getTooltip())) : (getInputTitle()),
|
|
1529
|
-
props.readonly ? (index.h("div", { class: "mg-input__input-container" },
|
|
1398
|
+
props.readonly ? (index.h("div", { class: "mg-c-input__input-container" },
|
|
1530
1399
|
index.h("strong", null, props.readonlyValue),
|
|
1531
|
-
children.filter(child => child
|
|
1532
|
-
index.h("div", { class: { 'mg-input__input': true, 'mg-input__input--has-error': props.errorMessage !== undefined } },
|
|
1400
|
+
children.filter(child => Object.values(child).includes('append-input')))) : (index.h("div", { class: "mg-c-input__input-container" },
|
|
1401
|
+
index.h("div", { class: { 'mg-c-input__input': true, 'mg-c-input__input--has-error': props.errorMessage !== undefined } },
|
|
1533
1402
|
applyAriadescribedBy(children, ariaDescribedbyIDs, utils),
|
|
1534
1403
|
!props.labelOnTop && props.tooltip && getTooltip()),
|
|
1535
|
-
props.helpText && index.h("div", { id: helpTextId, class: "mg-input__help-text", innerHTML: props.helpText }),
|
|
1536
|
-
props.errorMessage && !props.readonly && !props.disabled && (index.h("div", { id: helpTextErrorId, class: "mg-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
|
|
1404
|
+
props.helpText && index.h("div", { id: helpTextId, class: "mg-c-input__help-text", innerHTML: props.helpText }),
|
|
1405
|
+
props.errorMessage && !props.readonly && !props.disabled && (index.h("div", { id: helpTextErrorId, class: "mg-c-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
|
|
1537
1406
|
};
|
|
1538
1407
|
|
|
1539
1408
|
/**
|
|
@@ -1565,16 +1434,16 @@ var SectionTitleKind;
|
|
|
1565
1434
|
const MgInputCheckboxList = (props) => (
|
|
1566
1435
|
// eslint-disable-next-line jsx-a11y/no-redundant-roles
|
|
1567
1436
|
index.h("ul", { class: {
|
|
1568
|
-
'mg-input__input-group-container': true,
|
|
1569
|
-
'mg-input__input-group-container--vertical': props.inputVerticalList || (props.type === 'multi' && !props.readonly),
|
|
1570
|
-
'mg-input__input-checkbox-multi-inputs': props.type === 'multi' && !props.readonly,
|
|
1437
|
+
'mg-c-input__input-group-container': true,
|
|
1438
|
+
'mg-c-input__input-group-container--vertical': props.inputVerticalList || (props.type === 'multi' && !props.readonly),
|
|
1439
|
+
'mg-c-input__input-checkbox-multi-inputs': props.type === 'multi' && !props.readonly,
|
|
1571
1440
|
}, role: "list", "aria-describedby": props.displaySearchInput ? 'search-results' : undefined, "aria-label": props.displaySearchInput ? props.messages.searchResults : undefined, "aria-live": props.displaySearchInput ? 'polite' : undefined, id: props.id }, props.checkboxes
|
|
1572
1441
|
.filter(item => !props.readonly || item.value)
|
|
1573
|
-
.map(input => (index.h("li", { key: input.
|
|
1574
|
-
index.h("input", { type: "checkbox", id: input.
|
|
1575
|
-
index.h("label", { htmlFor: input.
|
|
1442
|
+
.map(input => (index.h("li", { key: input._id, class: { 'mg-c-input__input-group': true, 'mg-c-input__input-group--disabled': props.disabled || input.disabled } },
|
|
1443
|
+
index.h("input", { type: "checkbox", id: input._id, name: props.name, value: input.value && input.value.toString(), checked: Boolean(input.value), required: input.required, disabled: props.readonly || props.disabled || input.disabled, indeterminate: input.value === null, onInput: input._handleInput, onBlur: input._handleBlur, onKeyDown: input._handleKeydown }),
|
|
1444
|
+
index.h("label", { htmlFor: input._id }, input.title))))));
|
|
1576
1445
|
|
|
1577
|
-
const mgInputCheckboxCss = ":host{display:block}.mg-input{display:flex;
|
|
1446
|
+
const mgInputCheckboxCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__input-group-container{display:flex;flex-wrap:wrap;padding:0;margin:0;margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);column-gap:2.3rem;list-style:none;row-gap:1rem}.mg-c-input__input-group-container--vertical{flex-direction:column}fieldset.mg-c-input{padding:0;border:0;margin-right:0;margin-left:0}fieldset.mg-c-input input[type=radio],fieldset.mg-c-input input[type=checkbox]{width:var(--mg-input-check-size);height:var(--mg-input-check-size);flex-shrink:0;margin:calc((var(--font-size)*var(--line-height) - var(--mg-input-check-size))/2) .6rem 0 0}fieldset.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-group-container{margin-top:.7rem}.mg-c-input__input-container mg-tooltip{margin-left:3rem}.mg-c-input__input-group{display:flex;align-items:start}.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}}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi{display:flex;flex-wrap:wrap;gap:calc(var(--mg-inputs-spacer)*1.2)}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi--with-values.mg-c-input__input-checkbox-multi{gap:.4rem}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-values-container{display:flex;flex-flow:row wrap;gap:calc(0.4rem * 1);padding:0;margin:0;list-style:none}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-value{display:inline-flex;min-width:var(--default-size);min-height:var(--default-size);box-sizing:border-box;align-items:center;justify-content:center;padding:calc((var(--default-size) - .2rem - var(--font-size)*var(--line-height))/2) 1.1rem;border-radius:.3rem;background-color:hsl(var(--mg-color-dark-5-hsl));font-size:var(--font-size)}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-no-result{text-align:center}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-text,.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-title{display:inline;margin:0;color:hsl(var(--mg-color-dark-40-hsl))}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-title{margin:0 1.1rem}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-sections{display:flex;flex-flow:column wrap;gap:calc(0.4rem * 1)}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-sections-container{display:flex;flex-flow:column nowrap;gap:calc(0.4rem * 0);max-height:80vh;padding-right:1rem;overflow-y:auto}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-section-header{display:flex;flex-flow:row wrap;gap:calc(0.4rem * 2);min-height:var(--default-size);align-items:center}.mg-c-input.mg-c-input--checkbox-multi .mg-c-input__input-checkbox-multi-inputs{padding:.4rem calc(0.4rem * 2) .4rem calc(0.4rem / 2);margin:0}.mg-c-input.mg-c-input--checkbox-multi:not(.mg-c-input--label-on-top) mg-tooltip{margin-left:var(--mg-inputs-spacer)}.mg-c-input.mg-c-input--checkbox-multi mg-popover{--mg-popover-min-width:7rem;--mg-card-padding:calc(0.4rem * 2)}.mg-c-input.mg-c-input--checkbox-multi mg-popover-content [slot=content]{display:flex;flex-flow:column wrap;gap:calc(0.4rem * 2)}.mg-c-input.mg-c-input--checkbox-multi mg-popover-content [slot=content] .mg-c-input__input-group{margin-left:calc(0.4rem * 2)}.mg-c-input.mg-c-input--checkbox-multi mg-input-text{--mg-inputs-margin-bottom:0}";
|
|
1578
1447
|
|
|
1579
1448
|
/**
|
|
1580
1449
|
* type CheckboxItem validation function
|
|
@@ -1590,8 +1459,9 @@ const MgInputCheckbox = class {
|
|
|
1590
1459
|
this.inputValid = index.createEvent(this, "input-valid", 7);
|
|
1591
1460
|
// hasDisplayedError (triggered by blur event)
|
|
1592
1461
|
this.hasDisplayedError = false;
|
|
1462
|
+
this.mode = 'custom';
|
|
1593
1463
|
// style
|
|
1594
|
-
this.baseClassName = 'mg-input--checkbox';
|
|
1464
|
+
this.baseClassName = 'mg-c-input--checkbox';
|
|
1595
1465
|
// "multi" setup
|
|
1596
1466
|
this.multiStart = 5;
|
|
1597
1467
|
this.searchStart = 10;
|
|
@@ -1600,7 +1470,7 @@ const MgInputCheckbox = class {
|
|
|
1600
1470
|
* @param event - input event
|
|
1601
1471
|
*/
|
|
1602
1472
|
this.handleInput = (event) => {
|
|
1603
|
-
this.updateCheckboxItems('value', Boolean(event.target.checked), item => item.
|
|
1473
|
+
this.updateCheckboxItems('value', Boolean(event.target.checked), item => item._id === event.target.id);
|
|
1604
1474
|
this.updateValues();
|
|
1605
1475
|
this.checkValidity();
|
|
1606
1476
|
};
|
|
@@ -1664,7 +1534,13 @@ const MgInputCheckbox = class {
|
|
|
1664
1534
|
* Update values
|
|
1665
1535
|
*/
|
|
1666
1536
|
this.updateValues = () => {
|
|
1667
|
-
this.value = this.checkboxItems.map(o =>
|
|
1537
|
+
this.value = this.checkboxItems.map(o => {
|
|
1538
|
+
delete o._handleBlur;
|
|
1539
|
+
delete o._handleInput;
|
|
1540
|
+
delete o._handleKeydown;
|
|
1541
|
+
delete o._id;
|
|
1542
|
+
return o;
|
|
1543
|
+
});
|
|
1668
1544
|
};
|
|
1669
1545
|
/**
|
|
1670
1546
|
* get invalid element
|
|
@@ -1678,7 +1554,7 @@ const MgInputCheckbox = class {
|
|
|
1678
1554
|
* Method to update searchResults
|
|
1679
1555
|
*/
|
|
1680
1556
|
this.updateSearchResults = () => {
|
|
1681
|
-
this.searchResults = this.checkboxItems.filter(item => item.title
|
|
1557
|
+
this.searchResults = this.checkboxItems.filter(item => components_utils.cleanString(item.title).includes(components_utils.cleanString(this.searchValue)));
|
|
1682
1558
|
};
|
|
1683
1559
|
/**
|
|
1684
1560
|
* Methode to validate if one of inputs value is checked id required
|
|
@@ -1689,10 +1565,7 @@ const MgInputCheckbox = class {
|
|
|
1689
1565
|
* Check if input is valid
|
|
1690
1566
|
*/
|
|
1691
1567
|
this.checkValidity = () => {
|
|
1692
|
-
this.
|
|
1693
|
-
this.invalid = !this.valid;
|
|
1694
|
-
// We need to send valid event even if it is the same value
|
|
1695
|
-
this.inputValid.emit(this.valid);
|
|
1568
|
+
this.setValidity(this.readonly || this.disabled || (this.getInvalidElement() === undefined && this.validateRequired()));
|
|
1696
1569
|
};
|
|
1697
1570
|
/**
|
|
1698
1571
|
* Render button text
|
|
@@ -1710,12 +1583,17 @@ const MgInputCheckbox = class {
|
|
|
1710
1583
|
/**
|
|
1711
1584
|
* Set input error message
|
|
1712
1585
|
* @param displayError - dispay error condition
|
|
1586
|
+
* @param errorMessage - errorMessage override
|
|
1713
1587
|
*/
|
|
1714
|
-
this.setErrorMessage = (displayError = true) => {
|
|
1588
|
+
this.setErrorMessage = (displayError = true, errorMessage) => {
|
|
1715
1589
|
// Set error message
|
|
1716
1590
|
this.errorMessage = undefined;
|
|
1717
|
-
if (displayError && !this.valid
|
|
1718
|
-
|
|
1591
|
+
if (displayError && !this.valid) {
|
|
1592
|
+
if (errorMessage !== undefined)
|
|
1593
|
+
this.errorMessage = errorMessage;
|
|
1594
|
+
else if (!this.validateRequired())
|
|
1595
|
+
this.errorMessage = this.messages.errors.required;
|
|
1596
|
+
}
|
|
1719
1597
|
};
|
|
1720
1598
|
/**
|
|
1721
1599
|
* Method to get mg-popover identifier
|
|
@@ -1728,7 +1606,7 @@ const MgInputCheckbox = class {
|
|
|
1728
1606
|
*/
|
|
1729
1607
|
this.getDisplayItems = () => (this.searchValue.length > 0 ? this.searchResults : this.checkboxItems);
|
|
1730
1608
|
this.value = undefined;
|
|
1731
|
-
this.type =
|
|
1609
|
+
this.type = undefined;
|
|
1732
1610
|
this.identifier = undefined;
|
|
1733
1611
|
this.name = this.identifier;
|
|
1734
1612
|
this.label = undefined;
|
|
@@ -1743,7 +1621,7 @@ const MgInputCheckbox = class {
|
|
|
1743
1621
|
this.helpText = undefined;
|
|
1744
1622
|
this.valid = undefined;
|
|
1745
1623
|
this.invalid = undefined;
|
|
1746
|
-
this.classCollection = new ClassList([this.baseClassName]);
|
|
1624
|
+
this.classCollection = new components_utils.ClassList([this.baseClassName]);
|
|
1747
1625
|
this.errorMessage = undefined;
|
|
1748
1626
|
this.checkboxItems = [];
|
|
1749
1627
|
this.displaySearchInput = undefined;
|
|
@@ -1752,16 +1630,7 @@ const MgInputCheckbox = class {
|
|
|
1752
1630
|
}
|
|
1753
1631
|
validateValue(newValue) {
|
|
1754
1632
|
if (isCheckboxItems(newValue)) {
|
|
1755
|
-
this.checkboxItems = newValue.map((item, index) => ({
|
|
1756
|
-
id: `${this.identifier}_${index}`,
|
|
1757
|
-
title: item.title,
|
|
1758
|
-
value: item.value,
|
|
1759
|
-
disabled: item.disabled,
|
|
1760
|
-
required: item.required,
|
|
1761
|
-
handleInput: this.handleInput.bind(this),
|
|
1762
|
-
handleBlur: this.handleBlur.bind(this),
|
|
1763
|
-
handleKeydown: this.handleKeydown.bind(this),
|
|
1764
|
-
}));
|
|
1633
|
+
this.checkboxItems = newValue.map((item, index) => (Object.assign(Object.assign({}, item), { _id: `${this.identifier}_${index}`, _handleInput: this.handleInput.bind(this), _handleBlur: this.handleBlur.bind(this), _handleKeydown: this.handleKeydown.bind(this) })));
|
|
1765
1634
|
this.valueChange.emit(newValue);
|
|
1766
1635
|
}
|
|
1767
1636
|
else {
|
|
@@ -1769,9 +1638,13 @@ const MgInputCheckbox = class {
|
|
|
1769
1638
|
}
|
|
1770
1639
|
}
|
|
1771
1640
|
validateType(newValue) {
|
|
1772
|
-
if (!checkboxTypes.includes(newValue)) {
|
|
1641
|
+
if (newValue !== undefined && !checkboxTypes.includes(newValue)) {
|
|
1773
1642
|
throw new Error('<mg-input-checkbox> prop "type" must be a CheckboxType.');
|
|
1774
1643
|
}
|
|
1644
|
+
else if (newValue === undefined) {
|
|
1645
|
+
this.mode = 'auto';
|
|
1646
|
+
this.type = checkboxTypes[0];
|
|
1647
|
+
}
|
|
1775
1648
|
else {
|
|
1776
1649
|
const className = `${this.baseClassName}-multi`;
|
|
1777
1650
|
if (newValue === 'multi') {
|
|
@@ -1803,9 +1676,9 @@ const MgInputCheckbox = class {
|
|
|
1803
1676
|
this.classCollection.delete(className);
|
|
1804
1677
|
}
|
|
1805
1678
|
validateCheckboxItems(newValue) {
|
|
1806
|
-
if (newValue.length > this.multiStart)
|
|
1679
|
+
if (this.mode === 'auto' && newValue.length > this.multiStart)
|
|
1807
1680
|
this.type = 'multi';
|
|
1808
|
-
if (newValue.length > this.searchStart) {
|
|
1681
|
+
if (this.mode === 'auto' || (this.type === 'multi' && newValue.length > this.searchStart)) {
|
|
1809
1682
|
this.displaySearchInput = this.type === 'multi';
|
|
1810
1683
|
// refresh search values
|
|
1811
1684
|
this.updateSearchResults();
|
|
@@ -1816,13 +1689,44 @@ const MgInputCheckbox = class {
|
|
|
1816
1689
|
this.updateSearchResults();
|
|
1817
1690
|
}
|
|
1818
1691
|
/**
|
|
1819
|
-
*
|
|
1692
|
+
* Display input error if it exists.
|
|
1820
1693
|
*/
|
|
1821
1694
|
async displayError() {
|
|
1822
1695
|
this.checkValidity();
|
|
1823
1696
|
this.setErrorMessage();
|
|
1824
1697
|
this.hasDisplayedError = this.invalid;
|
|
1825
1698
|
}
|
|
1699
|
+
/**
|
|
1700
|
+
* Set an error and display a custom error message.
|
|
1701
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
1702
|
+
* It must be paired with an error message to display for the given context.
|
|
1703
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
1704
|
+
* @param valid - value indicating the validity
|
|
1705
|
+
* @param errorMessage - the error message to display
|
|
1706
|
+
*/
|
|
1707
|
+
async setError(valid, errorMessage) {
|
|
1708
|
+
if (typeof valid !== 'boolean') {
|
|
1709
|
+
throw new Error('<mg-input-checkbox> method "setError()" param "valid" must be a boolean');
|
|
1710
|
+
}
|
|
1711
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
1712
|
+
throw new Error('<mg-input-checkbox> method "setError()" param "errorMessage" must be a string');
|
|
1713
|
+
}
|
|
1714
|
+
else {
|
|
1715
|
+
this.setValidity(valid);
|
|
1716
|
+
this.setErrorMessage(undefined, valid ? undefined : errorMessage);
|
|
1717
|
+
this.hasDisplayedError = this.invalid;
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
/**
|
|
1721
|
+
* Method to set validity values
|
|
1722
|
+
* @param newValue - valid new value
|
|
1723
|
+
*/
|
|
1724
|
+
setValidity(newValue) {
|
|
1725
|
+
this.valid = newValue;
|
|
1726
|
+
this.invalid = !this.valid;
|
|
1727
|
+
// We need to send valid event even if it is the same value
|
|
1728
|
+
this.inputValid.emit(this.valid);
|
|
1729
|
+
}
|
|
1826
1730
|
/**
|
|
1827
1731
|
* Update ckecboxes item
|
|
1828
1732
|
* @param key - property to update
|
|
@@ -1845,7 +1749,7 @@ const MgInputCheckbox = class {
|
|
|
1845
1749
|
*/
|
|
1846
1750
|
componentWillLoad() {
|
|
1847
1751
|
// Get locales
|
|
1848
|
-
this.messages =
|
|
1752
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
1849
1753
|
// Validate
|
|
1850
1754
|
this.validateType(this.type);
|
|
1851
1755
|
this.validateValue(this.value);
|
|
@@ -1873,9 +1777,9 @@ const MgInputCheckbox = class {
|
|
|
1873
1777
|
*/
|
|
1874
1778
|
renderCheckboxMultiDisplaySelectedValues(selectedValuesNb) {
|
|
1875
1779
|
if (this.displaySelectedValues) {
|
|
1876
|
-
return (selectedValuesNb > 0 && (index.h("ul", { role: "list", class: "mg-input__input-checkbox-multi-values-container" }, this.checkboxItems
|
|
1780
|
+
return (selectedValuesNb > 0 && (index.h("ul", { role: "list", class: "mg-c-input__input-checkbox-multi-values-container" }, this.checkboxItems
|
|
1877
1781
|
.filter(({ value }) => value)
|
|
1878
|
-
.map(({ title }) => (index.h("li", { class: "mg-input__input-checkbox-multi-value", key: title }, title))))));
|
|
1782
|
+
.map(({ title }) => (index.h("li", { class: "mg-c-input__input-checkbox-multi-value", key: title }, title))))));
|
|
1879
1783
|
}
|
|
1880
1784
|
else {
|
|
1881
1785
|
return index.h("strong", null, this.messages.input.checkbox[selectedValuesNb > 1 ? 'selectedValues' : 'selectedValue'].replace('{nb}', selectedValuesNb));
|
|
@@ -1909,13 +1813,13 @@ const MgInputCheckbox = class {
|
|
|
1909
1813
|
renderCheckboxMulti() {
|
|
1910
1814
|
const selectedValuesNb = this.checkboxItems.filter(({ value }) => value).length;
|
|
1911
1815
|
const checkboxes = this.getDisplayItems();
|
|
1912
|
-
return (index.h("div", { class: { 'mg-input__input-container': true, 'mg-input__input-checkbox-multi': true, 'mg-input__input-checkbox-multi--with-values': this.displaySelectedValues } }, this.renderCheckboxMultiDisplaySelectedValues(selectedValuesNb), index.h("mg-popover", { arrowHide: true, identifier: this.getMgPopoverIdentifier(), "onDisplay-change": this.handleMgPopoverDisplayChange, ref: (el) => {
|
|
1816
|
+
return (index.h("div", { class: { 'mg-c-input__input-container': true, 'mg-c-input__input-checkbox-multi': true, 'mg-c-input__input-checkbox-multi--with-values': this.displaySelectedValues } }, this.renderCheckboxMultiDisplaySelectedValues(selectedValuesNb), index.h("mg-popover", { arrowHide: true, identifier: this.getMgPopoverIdentifier(), "onDisplay-change": this.handleMgPopoverDisplayChange, ref: (el) => {
|
|
1913
1817
|
if (Boolean(el))
|
|
1914
1818
|
this.mgPopover = el;
|
|
1915
1819
|
} }, index.h("mg-button", { variant: "secondary" }, index.h("mg-icon", { icon: "list" }), this.renderButtonText(selectedValuesNb)), index.h("div", { slot: "content" }, this.displaySearchInput && [
|
|
1916
1820
|
index.h("mg-input-text", { key: "input-search", identifier: `${this.identifier}-input-search`, icon: "magnifying-glass", type: "search", placeholder: this.messages.input.checkbox.label, label: this.messages.input.checkbox.label, mgWidth: "full", value: this.searchValue, labelHide: true, displayCharacterLeft: false, name: "q", "onValue-change": this.handleSearchChange, "aria-controls": "search-results items-list" }),
|
|
1917
|
-
index.h("p", { key: "search-results", role: "status", class: "
|
|
1918
|
-
], this.displaySearchInput ? (index.h("div", { class: "mg-input__input-checkbox-multi-sections-container" }, this.renderCheckboxBySection(checkboxes))) : (index.h(MgInputCheckboxList, { checkboxes: checkboxes, inputVerticalList: true, type: this.type, readonly: this.readonly, displaySearchInput: this.displaySearchInput, messages: this.messages.input.checkbox, id: "checkboxes-list", disabled: this.disabled, name: this.name })), this.displaySearchInput && checkboxes.length === 0 && index.h("p", { class: "mg-input__input-checkbox-multi-no-result" }, this.messages.input.checkbox.noResult)))));
|
|
1821
|
+
index.h("p", { key: "search-results", role: "status", class: "mg-u-visually-hidden", id: "search-results" }, `${checkboxes.length} ${this.messages.input.checkbox[checkboxes.length > 0 ? 'results' : 'result']}`),
|
|
1822
|
+
], this.displaySearchInput ? (index.h("div", { class: "mg-c-input__input-checkbox-multi-sections-container" }, this.renderCheckboxBySection(checkboxes))) : (index.h(MgInputCheckboxList, { checkboxes: checkboxes, inputVerticalList: true, type: this.type, readonly: this.readonly, displaySearchInput: this.displaySearchInput, messages: this.messages.input.checkbox, id: "checkboxes-list", disabled: this.disabled, name: this.name })), this.displaySearchInput && checkboxes.length === 0 && index.h("p", { class: "mg-c-input__input-checkbox-multi-no-result" }, this.messages.input.checkbox.noResult)))));
|
|
1919
1823
|
}
|
|
1920
1824
|
/**
|
|
1921
1825
|
* Render
|
|
@@ -1956,7 +1860,7 @@ const MgInputCheckboxPaginated = class {
|
|
|
1956
1860
|
this.massAction.emit(this.sectionKind);
|
|
1957
1861
|
};
|
|
1958
1862
|
/**
|
|
1959
|
-
*
|
|
1863
|
+
* Toggle items button handler
|
|
1960
1864
|
*/
|
|
1961
1865
|
this.handleToggleClick = () => {
|
|
1962
1866
|
this.expanded = !this.expanded;
|
|
@@ -2033,7 +1937,7 @@ const MgInputCheckboxPaginated = class {
|
|
|
2033
1937
|
const [checkboxItemsFromIndex, checkboxItemsToIndex] = this.getFromToIndexes();
|
|
2034
1938
|
const itemsContainerId = `items-${this.sectionKind}-container`;
|
|
2035
1939
|
const getText = (checkboxes) => index.h("em", null, `${this.messages[checkboxes.length > 1 ? 'titlePlurial' : 'title']} (${checkboxes.length})`);
|
|
2036
|
-
return (index.h(index.Host, { hidden: this.checkboxes.length < 1 }, index.h("div", { class: "mg-input__input-checkbox-multi-section-header" }, this.titleKind === SectionTitleKind.BUTTON ? (index.h("mg-button", { variant: "flat", onClick: this.handleToggleClick, "aria-controls": itemsContainerId, "aria-expanded": this.expanded.toString() }, index.h("mg-icon", { icon: this.expanded ? 'chevron-up' : 'chevron-down', size: "small" }), index.h("span", { class: "mg-input__input-checkbox-multi-text" }, getText(this.checkboxes)))) : (index.h("p", { class: "mg-input__input-checkbox-multi-title" }, getText(this.checkboxes))), ((this.sectionKind === SectionKind.SELECTED && this.expanded) || this.sectionKind === SectionKind.NOT_SELECTED) && (index.h("mg-button", { variant: "link", onClick: this.massActionHandler }, this.messages.action)), this.expanded && this.getPageCount(this.checkboxes) > 1 && (index.h("mg-pagination", { key: "search-pagination", totalPages: this.getPageCount(this.checkboxes), currentPage: this.currentPage > 1 ? this.currentPage : 1, "onCurrent-page-change": this.handleCurrentPageChange, hideNavigationLabels: true, hidePageCount: true, identifier: `input-checkbox-pagination-${this.sectionKind}` }))), index.h("div", { hidden: !this.expanded, id: itemsContainerId, class: "mg-input__input-checkbox-multi-section-content" }, index.h(MgInputCheckboxList, { checkboxes: this.getArrayRange(this.checkboxes, checkboxItemsFromIndex, checkboxItemsToIndex), inputVerticalList: true, type: 'multi', displaySearchInput: true, messages: this.messages, id: `items-${this.sectionKind}`, readonly: this.readonly, disabled: this.disabled, name: this.name }))));
|
|
1940
|
+
return (index.h(index.Host, { hidden: this.checkboxes.length < 1 }, index.h("div", { class: "mg-c-input__input-checkbox-multi-section-header" }, this.titleKind === SectionTitleKind.BUTTON ? (index.h("mg-button", { variant: "flat", onClick: this.handleToggleClick, "aria-controls": itemsContainerId, "aria-expanded": this.expanded.toString() }, index.h("mg-icon", { icon: this.expanded ? 'chevron-up' : 'chevron-down', size: "small" }), index.h("span", { class: "mg-c-input__input-checkbox-multi-text" }, getText(this.checkboxes)))) : (index.h("p", { class: "mg-c-input__input-checkbox-multi-title" }, getText(this.checkboxes))), ((this.sectionKind === SectionKind.SELECTED && this.expanded) || this.sectionKind === SectionKind.NOT_SELECTED) && (index.h("mg-button", { variant: "link", onClick: this.massActionHandler }, this.messages.action)), this.expanded && this.getPageCount(this.checkboxes) > 1 && (index.h("mg-pagination", { key: "search-pagination", totalPages: this.getPageCount(this.checkboxes), currentPage: this.currentPage > 1 ? this.currentPage : 1, "onCurrent-page-change": this.handleCurrentPageChange, hideNavigationLabels: true, hidePageCount: true, identifier: `input-checkbox-pagination-${this.sectionKind}` }))), index.h("div", { hidden: !this.expanded, id: itemsContainerId, class: "mg-c-input__input-checkbox-multi-section-content" }, index.h(MgInputCheckboxList, { checkboxes: this.getArrayRange(this.checkboxes, checkboxItemsFromIndex, checkboxItemsToIndex), inputVerticalList: true, type: 'multi', displaySearchInput: true, messages: this.messages, id: `items-${this.sectionKind}`, readonly: this.readonly, disabled: this.disabled, name: this.name }))));
|
|
2037
1941
|
}
|
|
2038
1942
|
static get watchers() { return {
|
|
2039
1943
|
"checkboxes": ["validateCheckboxes"],
|
|
@@ -2049,7 +1953,7 @@ var InputError$1;
|
|
|
2049
1953
|
InputError["REQUIRED"] = "required";
|
|
2050
1954
|
})(InputError$1 || (InputError$1 = {}));
|
|
2051
1955
|
|
|
2052
|
-
const mgInputDateCss = ":host{display:block}.mg-input{display:flex;
|
|
1956
|
+
const mgInputDateCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__box{height:var(--default-size);box-sizing:border-box;padding:calc((var(--default-size) - var(--font-size)*var(--line-height))/2) var(--mg-inputs-spacer);border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:var(--mg-inputs-border-radius);background-color:hsl(var(--color-light));color:hsl(var(--color-dark));font-family:inherit;font-size:var(--font-size);text-align:var(--mg-inputs-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-inputs-color);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 .6rem hsl(var(--mg-inputs-color-shadow-focus-hsl)/50%)}.mg-c-input__box:disabled{opacity:.3}.mg-c-input.mg-c-input--label-on-top .mg-c-input__box{width:auto;max-width:100%}.mg-c-input.mg-c-input--is-input-group-append{--mg-button-border-radius-top-left:0;--mg-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:-0.1rem;border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--is-input-group-append.mg-c-input--readonly slot[name=append-input]{display:none}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-button-border-radius-top-right:0;--mg-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-button-border-radius-top-right:var(--mg-inputs-border-radius);--mg-button-border-radius-bottom-right:var(--mg-inputs-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){padding-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.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}}";
|
|
2053
1957
|
|
|
2054
1958
|
const MgInputDate = class {
|
|
2055
1959
|
constructor(hostRef) {
|
|
@@ -2079,10 +1983,7 @@ const MgInputDate = class {
|
|
|
2079
1983
|
*/
|
|
2080
1984
|
this.checkValidity = () => {
|
|
2081
1985
|
var _a;
|
|
2082
|
-
this.
|
|
2083
|
-
this.invalid = !this.valid;
|
|
2084
|
-
// We need to send valid event even if it is the same value
|
|
2085
|
-
this.inputValid.emit(this.valid);
|
|
1986
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true));
|
|
2086
1987
|
};
|
|
2087
1988
|
/**
|
|
2088
1989
|
* get input error code
|
|
@@ -2111,25 +2012,29 @@ const MgInputDate = class {
|
|
|
2111
2012
|
};
|
|
2112
2013
|
/**
|
|
2113
2014
|
* Check input errors
|
|
2015
|
+
* @param errorMessage - errorMessage override
|
|
2114
2016
|
*/
|
|
2115
|
-
this.setErrorMessage = () => {
|
|
2017
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2116
2018
|
var _a;
|
|
2117
2019
|
// Set error message
|
|
2118
2020
|
this.errorMessage = undefined;
|
|
2119
2021
|
if (!this.valid) {
|
|
2120
2022
|
const inputError = this.getInputError();
|
|
2023
|
+
if (errorMessage !== undefined) {
|
|
2024
|
+
this.errorMessage = errorMessage;
|
|
2025
|
+
}
|
|
2121
2026
|
// required
|
|
2122
|
-
if (inputError === InputError$1.REQUIRED) {
|
|
2027
|
+
else if (inputError === InputError$1.REQUIRED) {
|
|
2123
2028
|
this.errorMessage = this.messages.errors[inputError];
|
|
2124
2029
|
}
|
|
2125
2030
|
// min, max & minMax
|
|
2126
2031
|
else if ([InputError$1.MIN, InputError$1.MAX, InputError$1.MINMAX].includes(inputError)) {
|
|
2127
|
-
this.errorMessage = this.messages.errors.date[inputError].replace('{min}',
|
|
2032
|
+
this.errorMessage = this.messages.errors.date[inputError].replace('{min}', components_utils.localeDate(this.min, this.locale)).replace('{max}', components_utils.localeDate(this.max, this.locale));
|
|
2128
2033
|
}
|
|
2129
2034
|
// wrong date format
|
|
2130
2035
|
// element.validity.badInput is default error message
|
|
2131
2036
|
else {
|
|
2132
|
-
this.errorMessage = this.messages.errors.date.badInput.replace('{min}', ((_a = this.min) === null || _a === void 0 ? void 0 : _a.length) > 0 ?
|
|
2037
|
+
this.errorMessage = this.messages.errors.date.badInput.replace('{min}', ((_a = this.min) === null || _a === void 0 ? void 0 : _a.length) > 0 ? components_utils.localeDate(this.min, this.locale) : components_utils.localeDate('1900-01-01', this.locale));
|
|
2133
2038
|
}
|
|
2134
2039
|
}
|
|
2135
2040
|
};
|
|
@@ -2148,14 +2053,14 @@ const MgInputDate = class {
|
|
|
2148
2053
|
this.invalid = undefined;
|
|
2149
2054
|
this.min = undefined;
|
|
2150
2055
|
this.max = undefined;
|
|
2151
|
-
this.classCollection = new ClassList(['mg-input--date']);
|
|
2056
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--date']);
|
|
2152
2057
|
this.errorMessage = undefined;
|
|
2153
2058
|
}
|
|
2154
2059
|
validateValue(newValue) {
|
|
2155
2060
|
// When the input is not fully completed or has been cleared, the value becomes an empty string.
|
|
2156
2061
|
if (newValue === '')
|
|
2157
2062
|
newValue = null;
|
|
2158
|
-
if (newValue !== undefined && newValue !== null && (typeof newValue !== 'string' || !
|
|
2063
|
+
if (newValue !== undefined && newValue !== null && (typeof newValue !== 'string' || !components_utils.dateRegExp.test(newValue))) {
|
|
2159
2064
|
throw new Error("<mg-input-date> props 'value' doesn't match pattern: yyyy-mm-dd");
|
|
2160
2065
|
}
|
|
2161
2066
|
else {
|
|
@@ -2173,18 +2078,49 @@ const MgInputDate = class {
|
|
|
2173
2078
|
}
|
|
2174
2079
|
}
|
|
2175
2080
|
validateMinMax(newValue) {
|
|
2176
|
-
if ((newValue === null || newValue === void 0 ? void 0 : newValue.length) === 0 || ((newValue === null || newValue === void 0 ? void 0 : newValue.length) > 0 && !(typeof newValue === 'string' &&
|
|
2081
|
+
if ((newValue === null || newValue === void 0 ? void 0 : newValue.length) === 0 || ((newValue === null || newValue === void 0 ? void 0 : newValue.length) > 0 && !(typeof newValue === 'string' && components_utils.dateRegExp.test(newValue)))) {
|
|
2177
2082
|
throw new Error("<mg-input-date> props 'min/max' doesn't match pattern: yyyy-mm-dd");
|
|
2178
2083
|
}
|
|
2179
2084
|
}
|
|
2180
2085
|
/**
|
|
2181
|
-
*
|
|
2086
|
+
* Display input error if it exists.
|
|
2182
2087
|
*/
|
|
2183
2088
|
async displayError() {
|
|
2184
2089
|
this.checkValidity();
|
|
2185
2090
|
this.setErrorMessage();
|
|
2186
2091
|
this.hasDisplayedError = this.invalid;
|
|
2187
2092
|
}
|
|
2093
|
+
/**
|
|
2094
|
+
* Set an error and display a custom error message.
|
|
2095
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2096
|
+
* It must be paired with an error message to display for the given context.
|
|
2097
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2098
|
+
* @param valid - value indicating the validity
|
|
2099
|
+
* @param errorMessage - the error message to display
|
|
2100
|
+
*/
|
|
2101
|
+
async setError(valid, errorMessage) {
|
|
2102
|
+
if (typeof valid !== 'boolean') {
|
|
2103
|
+
throw new Error('<mg-input-date> method "setError()" param "valid" must be a boolean');
|
|
2104
|
+
}
|
|
2105
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
2106
|
+
throw new Error('<mg-input-date> method "setError()" param "errorMessage" must be a string');
|
|
2107
|
+
}
|
|
2108
|
+
else {
|
|
2109
|
+
this.setValidity(valid);
|
|
2110
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2111
|
+
this.hasDisplayedError = this.invalid;
|
|
2112
|
+
}
|
|
2113
|
+
}
|
|
2114
|
+
/**
|
|
2115
|
+
* Method to set validity values
|
|
2116
|
+
* @param newValue - valid new value
|
|
2117
|
+
*/
|
|
2118
|
+
setValidity(newValue) {
|
|
2119
|
+
this.valid = newValue;
|
|
2120
|
+
this.invalid = !this.valid;
|
|
2121
|
+
// We need to send valid event even if it is the same value
|
|
2122
|
+
this.inputValid.emit(this.valid);
|
|
2123
|
+
}
|
|
2188
2124
|
/*************
|
|
2189
2125
|
* Lifecycle *
|
|
2190
2126
|
*************/
|
|
@@ -2194,7 +2130,7 @@ const MgInputDate = class {
|
|
|
2194
2130
|
*/
|
|
2195
2131
|
componentWillLoad() {
|
|
2196
2132
|
// Get locales
|
|
2197
|
-
const locales =
|
|
2133
|
+
const locales = components_utils.initLocales(this.element);
|
|
2198
2134
|
this.locale = locales.locale;
|
|
2199
2135
|
this.messages = locales.messages;
|
|
2200
2136
|
// Validate
|
|
@@ -2213,7 +2149,7 @@ const MgInputDate = class {
|
|
|
2213
2149
|
* @returns HTML Element
|
|
2214
2150
|
*/
|
|
2215
2151
|
render() {
|
|
2216
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: undefined, disabled: this.disabled, value: this.value, readonlyValue:
|
|
2152
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: undefined, disabled: this.disabled, value: this.value, readonlyValue: components_utils.localeDate(this.value, this.locale), tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("input", { type: "date", class: "mg-c-input__box", min: this.min, max: this.max, value: this.value, id: this.identifier, name: this.name, disabled: this.disabled, required: this.required, onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
|
|
2217
2153
|
if (el !== null)
|
|
2218
2154
|
this.input = el;
|
|
2219
2155
|
} })));
|
|
@@ -2242,7 +2178,7 @@ var InputError;
|
|
|
2242
2178
|
InputError["REQUIRED"] = "required";
|
|
2243
2179
|
})(InputError || (InputError = {}));
|
|
2244
2180
|
|
|
2245
|
-
const mgInputNumericCss = ":host{display:block}.mg-input{display:flex;
|
|
2181
|
+
const mgInputNumericCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__box{height:var(--default-size);box-sizing:border-box;padding:calc((var(--default-size) - var(--font-size)*var(--line-height))/2) var(--mg-inputs-spacer);border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:var(--mg-inputs-border-radius);background-color:hsl(var(--color-light));color:hsl(var(--color-dark));font-family:inherit;font-size:var(--font-size);text-align:var(--mg-inputs-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-inputs-color);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 .6rem hsl(var(--mg-inputs-color-shadow-focus-hsl)/50%)}.mg-c-input__box:disabled{opacity:.3}.mg-c-input.mg-c-input--label-on-top .mg-c-input__box{width:auto;max-width:100%}.mg-c-input.mg-c-input--is-input-group-append{--mg-button-border-radius-top-left:0;--mg-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:-0.1rem;border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--is-input-group-append.mg-c-input--readonly slot[name=append-input]{display:none}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-button-border-radius-top-right:0;--mg-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-button-border-radius-top-right:var(--mg-inputs-border-radius);--mg-button-border-radius-bottom-right:var(--mg-inputs-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){padding-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input:not(.mg-c-input--label-on-top) .mg-c-input__box{width:100%;min-width:5rem;max-width:calc(17.7rem + var(--mg-inputs-spacer)*2)}.mg-c-input.mg-c-input--width-full:not(.mg-c-input--label-on-top){justify-content:space-between}.mg-c-input.mg-c-input--width-full.mg-c-input--label-on-top .mg-c-input__box{width:100%}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container{width:100%;flex:auto}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container .mg-c-input__box{max-width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__input{width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__with-character-left{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__box{min-width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-4 .mg-c-input__input-container .mg-c-input__box{max-width:7rem}.mg-c-input.mg-c-input--width-2 .mg-c-input__input-container .mg-c-input__box{max-width:5rem}.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}}.mg-c-input .mg-c-input__box{text-align:var(--mg-inputs-text-align, right)}";
|
|
2246
2182
|
|
|
2247
2183
|
const MgInputNumeric = class {
|
|
2248
2184
|
constructor(hostRef) {
|
|
@@ -2282,20 +2218,21 @@ const MgInputNumeric = class {
|
|
|
2282
2218
|
* Check if input is valid
|
|
2283
2219
|
*/
|
|
2284
2220
|
this.checkValidity = () => {
|
|
2285
|
-
this.
|
|
2286
|
-
this.invalid = !this.valid;
|
|
2287
|
-
// We need to send valid event even if it is the same value
|
|
2288
|
-
this.inputValid.emit(this.valid);
|
|
2221
|
+
this.setValidity(this.readonly || this.disabled || this.getInputError() === null);
|
|
2289
2222
|
};
|
|
2290
2223
|
/**
|
|
2291
2224
|
* Set input error message
|
|
2225
|
+
* @param errorMessage - errorMessage override
|
|
2292
2226
|
*/
|
|
2293
|
-
this.setErrorMessage = () => {
|
|
2227
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2294
2228
|
// Set error message
|
|
2295
2229
|
this.errorMessage = undefined;
|
|
2296
2230
|
if (!this.valid) {
|
|
2297
2231
|
const inputError = this.getInputError();
|
|
2298
|
-
if (
|
|
2232
|
+
if (errorMessage !== undefined) {
|
|
2233
|
+
this.errorMessage = errorMessage;
|
|
2234
|
+
}
|
|
2235
|
+
else if (inputError === InputError.REQUIRED) {
|
|
2299
2236
|
this.errorMessage = this.messages.errors[inputError];
|
|
2300
2237
|
}
|
|
2301
2238
|
else {
|
|
@@ -2336,14 +2273,14 @@ const MgInputNumeric = class {
|
|
|
2336
2273
|
* @param value - value to format
|
|
2337
2274
|
* @returns formated local value
|
|
2338
2275
|
*/
|
|
2339
|
-
this.formatValue = (value) => (this.type === 'currency' ?
|
|
2276
|
+
this.formatValue = (value) => (this.type === 'currency' ? components_utils.localeCurrency(value, this.locale, this.currency) : components_utils.localeNumber(value, this.locale));
|
|
2340
2277
|
/**
|
|
2341
2278
|
* Validate append slot
|
|
2342
2279
|
*/
|
|
2343
2280
|
this.validateAppendSlot = () => {
|
|
2344
2281
|
const slotAppendInput = this.element.querySelector('[slot="append-input"]');
|
|
2345
2282
|
if (slotAppendInput !== null) {
|
|
2346
|
-
this.classCollection.add(slotAppendInput.nodeName === 'MG-BUTTON' ? 'mg-input--is-input-group-append' : 'mg-input--is-append-input-slot-content');
|
|
2283
|
+
this.classCollection.add(slotAppendInput.nodeName === 'MG-BUTTON' ? 'mg-c-input--is-input-group-append' : 'mg-c-input--is-append-input-slot-content');
|
|
2347
2284
|
}
|
|
2348
2285
|
};
|
|
2349
2286
|
this.value = undefined;
|
|
@@ -2367,7 +2304,7 @@ const MgInputNumeric = class {
|
|
|
2367
2304
|
this.decimalLength = 2;
|
|
2368
2305
|
this.valid = undefined;
|
|
2369
2306
|
this.invalid = undefined;
|
|
2370
|
-
this.classCollection = new ClassList(['mg-input--numeric']);
|
|
2307
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--numeric']);
|
|
2371
2308
|
this.errorMessage = undefined;
|
|
2372
2309
|
this.hasFocus = false;
|
|
2373
2310
|
}
|
|
@@ -2389,36 +2326,6 @@ const MgInputNumeric = class {
|
|
|
2389
2326
|
this.updateValues(newValue);
|
|
2390
2327
|
}
|
|
2391
2328
|
}
|
|
2392
|
-
/**
|
|
2393
|
-
* Checks if the given value is valid according to the defined rules.
|
|
2394
|
-
* @param value - The input value to validate.
|
|
2395
|
-
* @param regex - The regular expression for validation.
|
|
2396
|
-
* @param integer - The integer part of the value.
|
|
2397
|
-
* @param decimal - The decimal part of the value.
|
|
2398
|
-
* @returns Returns true if the value is valid, otherwise false.
|
|
2399
|
-
*/
|
|
2400
|
-
isValidValue(value, regex, integer, decimal) {
|
|
2401
|
-
return ['', '-'].includes(value) || (value.match(regex) && integer.length <= this.integerLength && decimal.length <= (this.type === 'integer' ? 0 : this.decimalLength));
|
|
2402
|
-
}
|
|
2403
|
-
/**
|
|
2404
|
-
* Handles invalid input values and returns a corrected value.
|
|
2405
|
-
* @returns The corrected value.
|
|
2406
|
-
*/
|
|
2407
|
-
handleInvalidValue() {
|
|
2408
|
-
return this.storedValue !== undefined ? this.storedValue : null;
|
|
2409
|
-
}
|
|
2410
|
-
/**
|
|
2411
|
-
* Updates the component values based on the validated input value.
|
|
2412
|
-
* @param newValue - The validated input value.
|
|
2413
|
-
*/
|
|
2414
|
-
updateValues(newValue) {
|
|
2415
|
-
this.value = newValue;
|
|
2416
|
-
if (this.input !== undefined)
|
|
2417
|
-
this.input.value = this.value;
|
|
2418
|
-
this.numericValue = !['', null].includes(this.value) ? parseFloat(this.value.replace(',', '.')) : null;
|
|
2419
|
-
this.valueChange.emit(this.numericValue);
|
|
2420
|
-
this.readonlyValue = this.numericValue !== null ? this.formatValue(this.numericValue) : '';
|
|
2421
|
-
}
|
|
2422
2329
|
handleValidityChange(newValue, _oldValue, prop) {
|
|
2423
2330
|
if (this.input !== undefined) {
|
|
2424
2331
|
this.input[prop] = newValue;
|
|
@@ -2445,13 +2352,74 @@ const MgInputNumeric = class {
|
|
|
2445
2352
|
}
|
|
2446
2353
|
}
|
|
2447
2354
|
/**
|
|
2448
|
-
*
|
|
2355
|
+
* Display input error if it exists.
|
|
2449
2356
|
*/
|
|
2450
2357
|
async displayError() {
|
|
2451
2358
|
this.checkValidity();
|
|
2452
2359
|
this.setErrorMessage();
|
|
2453
2360
|
this.hasDisplayedError = this.invalid;
|
|
2454
2361
|
}
|
|
2362
|
+
/**
|
|
2363
|
+
* Set an error and display a custom error message.
|
|
2364
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2365
|
+
* It must be paired with an error message to display for the given context.
|
|
2366
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2367
|
+
* @param valid - value indicating the validity
|
|
2368
|
+
* @param errorMessage - the error message to display
|
|
2369
|
+
*/
|
|
2370
|
+
async setError(valid, errorMessage) {
|
|
2371
|
+
if (typeof valid !== 'boolean') {
|
|
2372
|
+
throw new Error('<mg-input-numeric> method "setError()" param "valid" must be a boolean');
|
|
2373
|
+
}
|
|
2374
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
2375
|
+
throw new Error('<mg-input-numeric> method "setError()" param "errorMessage" must be a string');
|
|
2376
|
+
}
|
|
2377
|
+
else {
|
|
2378
|
+
this.setValidity(valid);
|
|
2379
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2380
|
+
this.hasDisplayedError = this.invalid;
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2383
|
+
/**
|
|
2384
|
+
* Method to set validity values
|
|
2385
|
+
* @param newValue - valid new value
|
|
2386
|
+
*/
|
|
2387
|
+
setValidity(newValue) {
|
|
2388
|
+
this.valid = newValue;
|
|
2389
|
+
this.invalid = !this.valid;
|
|
2390
|
+
// We need to send valid event even if it is the same value
|
|
2391
|
+
this.inputValid.emit(this.valid);
|
|
2392
|
+
}
|
|
2393
|
+
/**
|
|
2394
|
+
* Checks if the given value is valid according to the defined rules.
|
|
2395
|
+
* @param value - The input value to validate.
|
|
2396
|
+
* @param regex - The regular expression for validation.
|
|
2397
|
+
* @param integer - The integer part of the value.
|
|
2398
|
+
* @param decimal - The decimal part of the value.
|
|
2399
|
+
* @returns Returns true if the value is valid, otherwise false.
|
|
2400
|
+
*/
|
|
2401
|
+
isValidValue(value, regex, integer, decimal) {
|
|
2402
|
+
return ['', '-'].includes(value) || (value.match(regex) && integer.length <= this.integerLength && decimal.length <= (this.type === 'integer' ? 0 : this.decimalLength));
|
|
2403
|
+
}
|
|
2404
|
+
/**
|
|
2405
|
+
* Handles invalid input values and returns a corrected value.
|
|
2406
|
+
* @returns The corrected value.
|
|
2407
|
+
*/
|
|
2408
|
+
handleInvalidValue() {
|
|
2409
|
+
return this.storedValue !== undefined ? this.storedValue : null;
|
|
2410
|
+
}
|
|
2411
|
+
/**
|
|
2412
|
+
* Updates the component values based on the validated input value.
|
|
2413
|
+
* @param newValue - The validated input value.
|
|
2414
|
+
*/
|
|
2415
|
+
updateValues(newValue) {
|
|
2416
|
+
this.value = newValue;
|
|
2417
|
+
if (this.input !== undefined)
|
|
2418
|
+
this.input.value = this.value;
|
|
2419
|
+
this.numericValue = !['', null].includes(this.value) ? parseFloat(this.value.replace(',', '.')) : null;
|
|
2420
|
+
this.valueChange.emit(this.numericValue);
|
|
2421
|
+
this.readonlyValue = this.numericValue !== null ? this.formatValue(this.numericValue) : '';
|
|
2422
|
+
}
|
|
2455
2423
|
/**
|
|
2456
2424
|
* Displayed value in input
|
|
2457
2425
|
* Change on focus/blur
|
|
@@ -2469,7 +2437,7 @@ const MgInputNumeric = class {
|
|
|
2469
2437
|
*/
|
|
2470
2438
|
componentWillLoad() {
|
|
2471
2439
|
// Get locales
|
|
2472
|
-
const locales =
|
|
2440
|
+
const locales = components_utils.initLocales(this.element);
|
|
2473
2441
|
this.locale = locales.locale;
|
|
2474
2442
|
this.messages = locales.messages;
|
|
2475
2443
|
// Validate component config
|
|
@@ -2491,7 +2459,7 @@ const MgInputNumeric = class {
|
|
|
2491
2459
|
* @returns HTML Element
|
|
2492
2460
|
*/
|
|
2493
2461
|
render() {
|
|
2494
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: this.readonlyValue, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("input", { type: "text", class: "mg-input__box", value: this.displayValue(), id: this.identifier, name: this.name, placeholder: this.placeholder, title: this.placeholder, disabled: this.disabled, required: this.required, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, ref: (el) => {
|
|
2462
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: this.readonlyValue, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("input", { type: "text", class: "mg-c-input__box", value: this.displayValue(), id: this.identifier, name: this.name, placeholder: this.placeholder, title: this.placeholder, disabled: this.disabled, required: this.required, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, ref: (el) => {
|
|
2495
2463
|
if (el !== null)
|
|
2496
2464
|
this.input = el;
|
|
2497
2465
|
} }), index.h("slot", { name: "append-input" })));
|
|
@@ -2509,7 +2477,7 @@ const MgInputNumeric = class {
|
|
|
2509
2477
|
};
|
|
2510
2478
|
MgInputNumeric.style = mgInputNumericCss;
|
|
2511
2479
|
|
|
2512
|
-
const mgInputPasswordCss = ":host{display:block}.mg-input{display:flex;
|
|
2480
|
+
const mgInputPasswordCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__box{height:var(--default-size);box-sizing:border-box;padding:calc((var(--default-size) - var(--font-size)*var(--line-height))/2) var(--mg-inputs-spacer);border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:var(--mg-inputs-border-radius);background-color:hsl(var(--color-light));color:hsl(var(--color-dark));font-family:inherit;font-size:var(--font-size);text-align:var(--mg-inputs-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-inputs-color);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 .6rem hsl(var(--mg-inputs-color-shadow-focus-hsl)/50%)}.mg-c-input__box:disabled{opacity:.3}.mg-c-input.mg-c-input--label-on-top .mg-c-input__box{width:auto;max-width:100%}.mg-c-input.mg-c-input--is-input-group-append{--mg-button-border-radius-top-left:0;--mg-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:-0.1rem;border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--is-input-group-append.mg-c-input--readonly slot[name=append-input]{display:none}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-button-border-radius-top-right:0;--mg-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-button-border-radius-top-right:var(--mg-inputs-border-radius);--mg-button-border-radius-bottom-right:var(--mg-inputs-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){padding-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input:not(.mg-c-input--label-on-top) .mg-c-input__box{width:100%;min-width:5rem;max-width:calc(17.7rem + var(--mg-inputs-spacer)*2)}.mg-c-input.mg-c-input--width-full:not(.mg-c-input--label-on-top){justify-content:space-between}.mg-c-input.mg-c-input--width-full.mg-c-input--label-on-top .mg-c-input__box{width:100%}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container{width:100%;flex:auto}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container .mg-c-input__box{max-width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__input{width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__with-character-left{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__box{min-width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-4 .mg-c-input__input-container .mg-c-input__box{max-width:7rem}.mg-c-input.mg-c-input--width-2 .mg-c-input__input-container .mg-c-input__box{max-width:5rem}.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}}";
|
|
2513
2481
|
|
|
2514
2482
|
const MgInputPassword = class {
|
|
2515
2483
|
constructor(hostRef) {
|
|
@@ -2539,20 +2507,23 @@ const MgInputPassword = class {
|
|
|
2539
2507
|
*/
|
|
2540
2508
|
this.checkValidity = () => {
|
|
2541
2509
|
var _a;
|
|
2542
|
-
this.
|
|
2543
|
-
this.invalid = !this.valid;
|
|
2544
|
-
// We need to send valid event even if it is the same value
|
|
2545
|
-
this.inputValid.emit(this.valid);
|
|
2510
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true));
|
|
2546
2511
|
};
|
|
2547
2512
|
/**
|
|
2548
2513
|
* Set input error message
|
|
2514
|
+
* @param errorMessage - errorMessage override
|
|
2549
2515
|
*/
|
|
2550
|
-
this.setErrorMessage = () => {
|
|
2516
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2551
2517
|
// Set error message
|
|
2552
2518
|
this.errorMessage = undefined;
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2519
|
+
if (!this.valid) {
|
|
2520
|
+
if (errorMessage !== undefined) {
|
|
2521
|
+
this.errorMessage = errorMessage;
|
|
2522
|
+
}
|
|
2523
|
+
// required
|
|
2524
|
+
else if (this.input.validity.valueMissing) {
|
|
2525
|
+
this.errorMessage = this.messages.errors.required;
|
|
2526
|
+
}
|
|
2556
2527
|
}
|
|
2557
2528
|
};
|
|
2558
2529
|
this.value = undefined;
|
|
@@ -2570,7 +2541,7 @@ const MgInputPassword = class {
|
|
|
2570
2541
|
this.helpText = undefined;
|
|
2571
2542
|
this.valid = undefined;
|
|
2572
2543
|
this.invalid = undefined;
|
|
2573
|
-
this.classCollection = new ClassList(['mg-input--password']);
|
|
2544
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--password']);
|
|
2574
2545
|
this.errorMessage = undefined;
|
|
2575
2546
|
}
|
|
2576
2547
|
handleValue(newValue) {
|
|
@@ -2587,13 +2558,44 @@ const MgInputPassword = class {
|
|
|
2587
2558
|
}
|
|
2588
2559
|
}
|
|
2589
2560
|
/**
|
|
2590
|
-
*
|
|
2561
|
+
* Display input error if it exists.
|
|
2591
2562
|
*/
|
|
2592
2563
|
async displayError() {
|
|
2593
2564
|
this.checkValidity();
|
|
2594
2565
|
this.setErrorMessage();
|
|
2595
2566
|
this.hasDisplayedError = this.invalid;
|
|
2596
2567
|
}
|
|
2568
|
+
/**
|
|
2569
|
+
* Set an error and display a custom error message.
|
|
2570
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2571
|
+
* It must be paired with an error message to display for the given context.
|
|
2572
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2573
|
+
* @param valid - value indicating the validity
|
|
2574
|
+
* @param errorMessage - the error message to display
|
|
2575
|
+
*/
|
|
2576
|
+
async setError(valid, errorMessage) {
|
|
2577
|
+
if (typeof valid !== 'boolean') {
|
|
2578
|
+
throw new Error('<mg-input-password> method "setError()" param "valid" must be a boolean');
|
|
2579
|
+
}
|
|
2580
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
2581
|
+
throw new Error('<mg-input-password> method "setError()" param "errorMessage" must be a string');
|
|
2582
|
+
}
|
|
2583
|
+
else {
|
|
2584
|
+
this.setValidity(valid);
|
|
2585
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2586
|
+
this.hasDisplayedError = this.invalid;
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2589
|
+
/**
|
|
2590
|
+
* Method to set validity values
|
|
2591
|
+
* @param newValue - valid new value
|
|
2592
|
+
*/
|
|
2593
|
+
setValidity(newValue) {
|
|
2594
|
+
this.valid = newValue;
|
|
2595
|
+
this.invalid = !this.valid;
|
|
2596
|
+
// We need to send valid event even if it is the same value
|
|
2597
|
+
this.inputValid.emit(this.valid);
|
|
2598
|
+
}
|
|
2597
2599
|
/*************
|
|
2598
2600
|
* Lifecycle *
|
|
2599
2601
|
*************/
|
|
@@ -2603,7 +2605,7 @@ const MgInputPassword = class {
|
|
|
2603
2605
|
*/
|
|
2604
2606
|
componentWillLoad() {
|
|
2605
2607
|
// Get locales
|
|
2606
|
-
this.messages =
|
|
2608
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
2607
2609
|
// Check validity when component is ready
|
|
2608
2610
|
// return a promise to process action only in the FIRST render().
|
|
2609
2611
|
// https://stenciljs.com/docs/component-lifecycle#componentwillload
|
|
@@ -2616,7 +2618,7 @@ const MgInputPassword = class {
|
|
|
2616
2618
|
* @returns HTML Element
|
|
2617
2619
|
*/
|
|
2618
2620
|
render() {
|
|
2619
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: this.value !== undefined ? '•'.repeat(this.value.length) : undefined, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("input", { type: "password", class: "mg-input__box", value: this.value, id: this.identifier, name: this.name, placeholder: this.placeholder, title: this.placeholder, disabled: this.disabled, required: this.required, onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
|
|
2621
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: this.value !== undefined ? '•'.repeat(this.value.length) : undefined, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("input", { type: "password", class: "mg-c-input__box", value: this.value, id: this.identifier, name: this.name, placeholder: this.placeholder, title: this.placeholder, disabled: this.disabled, required: this.required, onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
|
|
2620
2622
|
if (el !== null)
|
|
2621
2623
|
this.input = el;
|
|
2622
2624
|
} })));
|
|
@@ -2631,7 +2633,7 @@ const MgInputPassword = class {
|
|
|
2631
2633
|
};
|
|
2632
2634
|
MgInputPassword.style = mgInputPasswordCss;
|
|
2633
2635
|
|
|
2634
|
-
const mgInputRadioCss = ":host{display:block}.mg-input{display:flex;
|
|
2636
|
+
const mgInputRadioCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__input-group-container{display:flex;flex-wrap:wrap;padding:0;margin:0;margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);column-gap:2.3rem;list-style:none;row-gap:1rem}.mg-c-input__input-group-container--vertical{flex-direction:column}fieldset.mg-c-input{padding:0;border:0;margin-right:0;margin-left:0}fieldset.mg-c-input input[type=radio],fieldset.mg-c-input input[type=checkbox]{width:var(--mg-input-check-size);height:var(--mg-input-check-size);flex-shrink:0;margin:calc((var(--font-size)*var(--line-height) - var(--mg-input-check-size))/2) .6rem 0 0}fieldset.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-group-container{margin-top:.7rem}.mg-c-input__input-container mg-tooltip{margin-left:3rem}.mg-c-input__input-group{display:flex;align-items:start}.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}}";
|
|
2635
2637
|
|
|
2636
2638
|
/**
|
|
2637
2639
|
* type Option validation function
|
|
@@ -2670,20 +2672,23 @@ const MgInputRadio = class {
|
|
|
2670
2672
|
* Check if input is valid
|
|
2671
2673
|
*/
|
|
2672
2674
|
this.checkValidity = () => {
|
|
2673
|
-
this.
|
|
2674
|
-
this.invalid = !this.valid;
|
|
2675
|
-
// We need to send valid event even if it is the same value
|
|
2676
|
-
this.inputValid.emit(this.valid);
|
|
2675
|
+
this.setValidity(this.readonly || this.disabled || this.getInvalidElement() === undefined);
|
|
2677
2676
|
};
|
|
2678
2677
|
/**
|
|
2679
2678
|
* Set input error message
|
|
2679
|
+
* @param errorMessage - errorMessage override
|
|
2680
2680
|
*/
|
|
2681
|
-
this.setErrorMessage = () => {
|
|
2681
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2682
2682
|
const invalidElement = this.getInvalidElement();
|
|
2683
2683
|
// Set error message
|
|
2684
2684
|
this.errorMessage = undefined;
|
|
2685
|
-
if (!this.valid
|
|
2686
|
-
|
|
2685
|
+
if (!this.valid) {
|
|
2686
|
+
if (errorMessage !== undefined) {
|
|
2687
|
+
this.errorMessage = errorMessage;
|
|
2688
|
+
}
|
|
2689
|
+
else if (invalidElement.validity.valueMissing) {
|
|
2690
|
+
this.errorMessage = this.messages.errors.required;
|
|
2691
|
+
}
|
|
2687
2692
|
}
|
|
2688
2693
|
};
|
|
2689
2694
|
/**
|
|
@@ -2706,7 +2711,7 @@ const MgInputRadio = class {
|
|
|
2706
2711
|
this.helpText = undefined;
|
|
2707
2712
|
this.valid = undefined;
|
|
2708
2713
|
this.invalid = undefined;
|
|
2709
|
-
this.classCollection = new ClassList(['mg-input--radio']);
|
|
2714
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--radio']);
|
|
2710
2715
|
this.errorMessage = undefined;
|
|
2711
2716
|
this.options = undefined;
|
|
2712
2717
|
}
|
|
@@ -2719,7 +2724,7 @@ const MgInputRadio = class {
|
|
|
2719
2724
|
throw new Error('<mg-input-radio> prop "items" require at least 2 items.');
|
|
2720
2725
|
}
|
|
2721
2726
|
// String array
|
|
2722
|
-
else if (allItemsAreString(newValue)) {
|
|
2727
|
+
else if (components_utils.allItemsAreString(newValue)) {
|
|
2723
2728
|
this.options = newValue.map(item => ({ title: item, value: item, disabled: this.disabled }));
|
|
2724
2729
|
}
|
|
2725
2730
|
// Object array
|
|
@@ -2741,13 +2746,44 @@ const MgInputRadio = class {
|
|
|
2741
2746
|
}
|
|
2742
2747
|
}
|
|
2743
2748
|
/**
|
|
2744
|
-
*
|
|
2749
|
+
* Display input error if it exists.
|
|
2745
2750
|
*/
|
|
2746
2751
|
async displayError() {
|
|
2747
2752
|
this.checkValidity();
|
|
2748
2753
|
this.setErrorMessage();
|
|
2749
2754
|
this.hasDisplayedError = this.invalid;
|
|
2750
2755
|
}
|
|
2756
|
+
/**
|
|
2757
|
+
* Set an error and display a custom error message.
|
|
2758
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2759
|
+
* It must be paired with an error message to display for the given context.
|
|
2760
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2761
|
+
* @param valid - value indicating the validity
|
|
2762
|
+
* @param errorMessage - the error message to display
|
|
2763
|
+
*/
|
|
2764
|
+
async setError(valid, errorMessage) {
|
|
2765
|
+
if (typeof valid !== 'boolean') {
|
|
2766
|
+
throw new Error('<mg-input-radio> method "setError()" param "valid" must be a boolean');
|
|
2767
|
+
}
|
|
2768
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
2769
|
+
throw new Error('<mg-input-radio> method "setError()" param "errorMessage" must be a string');
|
|
2770
|
+
}
|
|
2771
|
+
else {
|
|
2772
|
+
this.setValidity(valid);
|
|
2773
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2774
|
+
this.hasDisplayedError = this.invalid;
|
|
2775
|
+
}
|
|
2776
|
+
}
|
|
2777
|
+
/**
|
|
2778
|
+
* Method to set validity values
|
|
2779
|
+
* @param newValue - valid new value
|
|
2780
|
+
*/
|
|
2781
|
+
setValidity(newValue) {
|
|
2782
|
+
this.valid = newValue;
|
|
2783
|
+
this.invalid = !this.valid;
|
|
2784
|
+
// We need to send valid event even if it is the same value
|
|
2785
|
+
this.inputValid.emit(this.valid);
|
|
2786
|
+
}
|
|
2751
2787
|
/*************
|
|
2752
2788
|
* Lifecycle *
|
|
2753
2789
|
*************/
|
|
@@ -2757,7 +2793,7 @@ const MgInputRadio = class {
|
|
|
2757
2793
|
*/
|
|
2758
2794
|
componentWillLoad() {
|
|
2759
2795
|
// Get locales
|
|
2760
|
-
this.messages =
|
|
2796
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
2761
2797
|
// Validate
|
|
2762
2798
|
this.validateItems(this.items);
|
|
2763
2799
|
// Check validity when component is ready
|
|
@@ -2772,7 +2808,7 @@ const MgInputRadio = class {
|
|
|
2772
2808
|
* @returns HTML Element
|
|
2773
2809
|
*/
|
|
2774
2810
|
render() {
|
|
2775
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, disabled: this.disabled, readonly: this.readonly, mgWidth: undefined, value: this.value, readonlyValue: this.value, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: true }, index.h("ul", { class: { 'mg-input__input-group-container': true, 'mg-input__input-group-container--vertical': this.inputVerticalList }, role: "list" }, this.options.map((input, index$1) => (index.h("li", { key: input.title, class: { 'mg-input__input-group': true, 'mg-input__input-group--disabled': this.disabled || input.disabled } }, index.h("input", { type: "radio", id: this.identifier + '_' + index$1, name: this.identifier, value: index$1, checked: JSON.stringify(this.value) === JSON.stringify(this.options[index$1].value), disabled: this.disabled || input.disabled, required: this.required, onBlur: this.handleBlur, onInput: this.handleInput, ref: (el) => {
|
|
2811
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, disabled: this.disabled, readonly: this.readonly, mgWidth: undefined, value: this.value, readonlyValue: this.value, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: true }, index.h("ul", { class: { 'mg-c-input__input-group-container': true, 'mg-c-input__input-group-container--vertical': this.inputVerticalList }, role: "list" }, this.options.map((input, index$1) => (index.h("li", { key: input.title, class: { 'mg-c-input__input-group': true, 'mg-c-input__input-group--disabled': this.disabled || input.disabled } }, index.h("input", { type: "radio", id: this.identifier + '_' + index$1, name: this.identifier, value: index$1, checked: JSON.stringify(this.value) === JSON.stringify(this.options[index$1].value), disabled: this.disabled || input.disabled, required: this.required, onBlur: this.handleBlur, onInput: this.handleInput, ref: (el) => {
|
|
2776
2812
|
if (el !== null)
|
|
2777
2813
|
this.inputs[index$1] = el;
|
|
2778
2814
|
} }), index.h("label", { htmlFor: this.identifier + '_' + index$1 }, input.title)))))));
|
|
@@ -2788,7 +2824,7 @@ const MgInputRadio = class {
|
|
|
2788
2824
|
};
|
|
2789
2825
|
MgInputRadio.style = mgInputRadioCss;
|
|
2790
2826
|
|
|
2791
|
-
const mgInputSelectCss = ":host{display:block}.mg-input{display:flex;
|
|
2827
|
+
const mgInputSelectCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__box{height:var(--default-size);box-sizing:border-box;padding:calc((var(--default-size) - var(--font-size)*var(--line-height))/2) var(--mg-inputs-spacer);border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:var(--mg-inputs-border-radius);background-color:hsl(var(--color-light));color:hsl(var(--color-dark));font-family:inherit;font-size:var(--font-size);text-align:var(--mg-inputs-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-inputs-color);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 .6rem hsl(var(--mg-inputs-color-shadow-focus-hsl)/50%)}.mg-c-input__box:disabled{opacity:.3}.mg-c-input.mg-c-input--label-on-top .mg-c-input__box{width:auto;max-width:100%}.mg-c-input.mg-c-input--is-input-group-append{--mg-button-border-radius-top-left:0;--mg-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:-0.1rem;border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--is-input-group-append.mg-c-input--readonly slot[name=append-input]{display:none}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-button-border-radius-top-right:0;--mg-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-button-border-radius-top-right:var(--mg-inputs-border-radius);--mg-button-border-radius-bottom-right:var(--mg-inputs-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){padding-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input:not(.mg-c-input--label-on-top) .mg-c-input__box{width:100%;min-width:5rem;max-width:calc(17.7rem + var(--mg-inputs-spacer)*2)}.mg-c-input.mg-c-input--width-full:not(.mg-c-input--label-on-top){justify-content:space-between}.mg-c-input.mg-c-input--width-full.mg-c-input--label-on-top .mg-c-input__box{width:100%}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container{width:100%;flex:auto}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container .mg-c-input__box{max-width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__input{width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__with-character-left{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__box{min-width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-4 .mg-c-input__input-container .mg-c-input__box{max-width:7rem}.mg-c-input.mg-c-input--width-2 .mg-c-input__input-container .mg-c-input__box{max-width:5rem}.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}}.mg-c-input__box{width:100%;padding-top:0;padding-right:1rem;padding-bottom:0}:host(:not([mg-width])) .mg-c-input--select:not(.mg-c-input--label-on-top) .mg-c-input__box{max-width:unset}";
|
|
2792
2828
|
|
|
2793
2829
|
/**
|
|
2794
2830
|
* Check if item is a well configured option
|
|
@@ -2868,7 +2904,7 @@ const MgInputSelect = class {
|
|
|
2868
2904
|
if (this.input.value === '') {
|
|
2869
2905
|
this.setValue(null);
|
|
2870
2906
|
}
|
|
2871
|
-
else if (allItemsAreString(this.items) && this.items.includes(this.input.value)) {
|
|
2907
|
+
else if (components_utils.allItemsAreString(this.items) && this.items.includes(this.input.value)) {
|
|
2872
2908
|
this.setValue(this.input.value);
|
|
2873
2909
|
}
|
|
2874
2910
|
else if (allItemsAreOptions(this.items) && typeof this.input.value === 'string' && this.items.some(this.isInputValue)) {
|
|
@@ -2896,19 +2932,22 @@ const MgInputSelect = class {
|
|
|
2896
2932
|
*/
|
|
2897
2933
|
this.checkValidity = () => {
|
|
2898
2934
|
var _a;
|
|
2899
|
-
this.
|
|
2900
|
-
this.invalid = !this.valid;
|
|
2901
|
-
// We need to send valid event even if it is the same value
|
|
2902
|
-
this.inputValid.emit(this.valid);
|
|
2935
|
+
this.setValidity(!this.isDisabledValue() && (this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true)));
|
|
2903
2936
|
};
|
|
2904
2937
|
/**
|
|
2905
2938
|
* Set input error message
|
|
2939
|
+
* @param errorMessage - errorMessage override
|
|
2906
2940
|
*/
|
|
2907
|
-
this.setErrorMessage = () => {
|
|
2941
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2908
2942
|
// Set error message
|
|
2909
2943
|
this.errorMessage = undefined;
|
|
2910
|
-
if (!this.valid
|
|
2911
|
-
|
|
2944
|
+
if (!this.valid) {
|
|
2945
|
+
if (errorMessage !== undefined) {
|
|
2946
|
+
this.errorMessage = errorMessage;
|
|
2947
|
+
}
|
|
2948
|
+
else if (this.input.validity.valueMissing) {
|
|
2949
|
+
this.errorMessage = this.messages.errors.required;
|
|
2950
|
+
}
|
|
2912
2951
|
}
|
|
2913
2952
|
};
|
|
2914
2953
|
/**
|
|
@@ -2935,7 +2974,7 @@ const MgInputSelect = class {
|
|
|
2935
2974
|
this.helpText = undefined;
|
|
2936
2975
|
this.valid = undefined;
|
|
2937
2976
|
this.invalid = undefined;
|
|
2938
|
-
this.classCollection = new ClassList(['mg-input--select']);
|
|
2977
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--select']);
|
|
2939
2978
|
this.errorMessage = undefined;
|
|
2940
2979
|
this.options = undefined;
|
|
2941
2980
|
this.valueExist = undefined;
|
|
@@ -2943,7 +2982,7 @@ const MgInputSelect = class {
|
|
|
2943
2982
|
}
|
|
2944
2983
|
validateValue(newValue) {
|
|
2945
2984
|
var _a, _b;
|
|
2946
|
-
if (allItemsAreString(this.items) && typeof newValue === 'string') {
|
|
2985
|
+
if (components_utils.allItemsAreString(this.items) && typeof newValue === 'string') {
|
|
2947
2986
|
this.readonlyValue = Boolean((_a = this.input) === null || _a === void 0 ? void 0 : _a.value) ? this.input.value : newValue;
|
|
2948
2987
|
}
|
|
2949
2988
|
else if (allItemsAreOptions(this.items)) {
|
|
@@ -2960,7 +2999,7 @@ const MgInputSelect = class {
|
|
|
2960
2999
|
this.options = [];
|
|
2961
3000
|
}
|
|
2962
3001
|
// String array
|
|
2963
|
-
else if (allItemsAreString(newValue)) {
|
|
3002
|
+
else if (components_utils.allItemsAreString(newValue)) {
|
|
2964
3003
|
if (typeof this.value === 'string')
|
|
2965
3004
|
this.valueExist = newValue.includes(this.value);
|
|
2966
3005
|
this.options = newValue.map(item => ({ title: item, value: item }));
|
|
@@ -2992,13 +3031,44 @@ const MgInputSelect = class {
|
|
|
2992
3031
|
}
|
|
2993
3032
|
}
|
|
2994
3033
|
/**
|
|
2995
|
-
*
|
|
3034
|
+
* Display input error if it exists.
|
|
2996
3035
|
*/
|
|
2997
3036
|
async displayError() {
|
|
2998
3037
|
this.checkValidity();
|
|
2999
3038
|
this.setErrorMessage();
|
|
3000
3039
|
this.hasDisplayedError = this.invalid;
|
|
3001
3040
|
}
|
|
3041
|
+
/**
|
|
3042
|
+
* Set an error and display a custom error message.
|
|
3043
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
3044
|
+
* It must be paired with an error message to display for the given context.
|
|
3045
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
3046
|
+
* @param valid - value indicating the validity
|
|
3047
|
+
* @param errorMessage - the error message to display
|
|
3048
|
+
*/
|
|
3049
|
+
async setError(valid, errorMessage) {
|
|
3050
|
+
if (typeof valid !== 'boolean') {
|
|
3051
|
+
throw new Error('<mg-input-select> method "setError()" param "valid" must be a boolean');
|
|
3052
|
+
}
|
|
3053
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
3054
|
+
throw new Error('<mg-input-select> method "setError()" param "errorMessage" must be a string');
|
|
3055
|
+
}
|
|
3056
|
+
else {
|
|
3057
|
+
this.setValidity(valid);
|
|
3058
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
3059
|
+
this.hasDisplayedError = this.invalid;
|
|
3060
|
+
}
|
|
3061
|
+
}
|
|
3062
|
+
/**
|
|
3063
|
+
* Method to set validity values
|
|
3064
|
+
* @param newValue - valid new value
|
|
3065
|
+
*/
|
|
3066
|
+
setValidity(newValue) {
|
|
3067
|
+
this.valid = newValue;
|
|
3068
|
+
this.invalid = !this.valid;
|
|
3069
|
+
// We need to send valid event even if it is the same value
|
|
3070
|
+
this.inputValid.emit(this.valid);
|
|
3071
|
+
}
|
|
3002
3072
|
/*************
|
|
3003
3073
|
* Lifecycle *
|
|
3004
3074
|
*************/
|
|
@@ -3008,7 +3078,7 @@ const MgInputSelect = class {
|
|
|
3008
3078
|
*/
|
|
3009
3079
|
componentWillLoad() {
|
|
3010
3080
|
// Get locales
|
|
3011
|
-
this.messages =
|
|
3081
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
3012
3082
|
// Validate
|
|
3013
3083
|
this.validateItems(this.items);
|
|
3014
3084
|
this.validateValue(this.value);
|
|
@@ -3028,7 +3098,7 @@ const MgInputSelect = class {
|
|
|
3028
3098
|
* @returns HTML Element
|
|
3029
3099
|
*/
|
|
3030
3100
|
render() {
|
|
3031
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: undefined, readonlyValue: this.readonlyValue, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("select", { class: "mg-input__box", id: this.identifier, name: this.name, title: this.placeholder, disabled: this.disabled, required: this.required, onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
|
|
3101
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: undefined, readonlyValue: this.readonlyValue, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("select", { class: "mg-c-input__box", id: this.identifier, name: this.name, title: this.placeholder, disabled: this.disabled, required: this.required, onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
|
|
3032
3102
|
if (el !== null)
|
|
3033
3103
|
this.input = el;
|
|
3034
3104
|
} }, (!this.placeholderHide || !this.valueExist) && ( // In case passed value does not match any option we display the placeholder
|
|
@@ -3045,8 +3115,9 @@ const MgInputSelect = class {
|
|
|
3045
3115
|
};
|
|
3046
3116
|
MgInputSelect.style = mgInputSelectCss;
|
|
3047
3117
|
|
|
3048
|
-
const mgInputTextCss = ":host{display:block}.mg-input{display:flex;
|
|
3118
|
+
const mgInputTextCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__box{height:var(--default-size);box-sizing:border-box;padding:calc((var(--default-size) - var(--font-size)*var(--line-height))/2) var(--mg-inputs-spacer);border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:var(--mg-inputs-border-radius);background-color:hsl(var(--color-light));color:hsl(var(--color-dark));font-family:inherit;font-size:var(--font-size);text-align:var(--mg-inputs-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-inputs-color);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 .6rem hsl(var(--mg-inputs-color-shadow-focus-hsl)/50%)}.mg-c-input__box:disabled{opacity:.3}.mg-c-input.mg-c-input--label-on-top .mg-c-input__box{width:auto;max-width:100%}.mg-c-input.mg-c-input--is-input-group-append{--mg-button-border-radius-top-left:0;--mg-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:-0.1rem;border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--is-input-group-append.mg-c-input--readonly slot[name=append-input]{display:none}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-button-border-radius-top-right:0;--mg-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-button-border-radius-top-right:var(--mg-inputs-border-radius);--mg-button-border-radius-bottom-right:var(--mg-inputs-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){padding-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input:not(.mg-c-input--label-on-top) .mg-c-input__box{width:100%;min-width:5rem;max-width:calc(17.7rem + var(--mg-inputs-spacer)*2)}.mg-c-input.mg-c-input--width-full:not(.mg-c-input--label-on-top){justify-content:space-between}.mg-c-input.mg-c-input--width-full.mg-c-input--label-on-top .mg-c-input__box{width:100%}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container{width:100%;flex:auto}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container .mg-c-input__box{max-width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__input{width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__with-character-left{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__box{min-width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-4 .mg-c-input__input-container .mg-c-input__box{max-width:7rem}.mg-c-input.mg-c-input--width-2 .mg-c-input__input-container .mg-c-input__box{max-width:5rem}.mg-c-input mg-character-left{font-size:1.1rem;opacity:.6}.mg-c-input.mg-c-input--has-display-character-left .mg-c-input__input+.mg-c-input__help-text,.mg-c-input.mg-c-input--has-display-character-left .mg-c-input__input+.mg-c-input__error{margin-top:0}.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}}.mg-c-input__with-character-left{position:relative;display:inline-flex}.mg-c-input--width-full .mg-c-input__with-character-left{width:100%}.mg-c-input.mg-u-is-focused .mg-c-input__with-character-left .mg-c-input__box{padding-right:calc(var(--mg-character-left-message-length)*1ch + .8rem)}.mg-c-input__with-character-left mg-character-left{position:absolute;top:50%;right:1rem;display:none;font-size:1.1rem;opacity:.6;transform:translateY(-50%)}.mg-c-input.mg-u-is-focused .mg-c-input__with-character-left mg-character-left{display:block}.mg-c-input.mg-c-input--has-icon .mg-c-input__with-character-left>mg-icon{position:absolute;top:50%;left:var(--mg-inputs-spacer);color:var(--mg-inputs-color);transform:translateY(-50%)}.mg-c-input.mg-c-input--has-icon .mg-c-input__with-character-left .mg-c-input__box{padding-left:calc(var(--mg-icon-regular-size) + var(--mg-inputs-spacer)*2)}";
|
|
3049
3119
|
|
|
3120
|
+
const isDatalistOption = (options) => Array.isArray(options) && options.every(option => typeof option === 'string');
|
|
3050
3121
|
const MgInputText = class {
|
|
3051
3122
|
constructor(hostRef) {
|
|
3052
3123
|
index.registerInstance(this, hostRef);
|
|
@@ -3056,9 +3127,9 @@ const MgInputText = class {
|
|
|
3056
3127
|
* Internal *
|
|
3057
3128
|
************/
|
|
3058
3129
|
// Classes
|
|
3059
|
-
this.classFocus = 'is-focused';
|
|
3060
|
-
this.classIsInputGroupAppend = 'mg-input--is-input-group-append';
|
|
3061
|
-
this.classHasIcon = 'mg-input--has-icon';
|
|
3130
|
+
this.classFocus = 'mg-u-is-focused';
|
|
3131
|
+
this.classIsInputGroupAppend = 'mg-c-input--is-input-group-append';
|
|
3132
|
+
this.classHasIcon = 'mg-c-input--has-icon';
|
|
3062
3133
|
// hasDisplayedError (triggered by blur event)
|
|
3063
3134
|
this.hasDisplayedError = false;
|
|
3064
3135
|
/**
|
|
@@ -3076,7 +3147,7 @@ const MgInputText = class {
|
|
|
3076
3147
|
*/
|
|
3077
3148
|
this.handleFocus = () => {
|
|
3078
3149
|
this.classCollection.add(this.classFocus);
|
|
3079
|
-
this.classCollection = new ClassList(this.classCollection.classes);
|
|
3150
|
+
this.classCollection = new components_utils.ClassList(this.classCollection.classes);
|
|
3080
3151
|
};
|
|
3081
3152
|
/**
|
|
3082
3153
|
* Handle blur event
|
|
@@ -3084,7 +3155,7 @@ const MgInputText = class {
|
|
|
3084
3155
|
this.handleBlur = () => {
|
|
3085
3156
|
// Manage focus
|
|
3086
3157
|
this.classCollection.delete(this.classFocus);
|
|
3087
|
-
this.classCollection = new ClassList(this.classCollection.classes);
|
|
3158
|
+
this.classCollection = new components_utils.ClassList(this.classCollection.classes);
|
|
3088
3159
|
// Display Error
|
|
3089
3160
|
this.displayError();
|
|
3090
3161
|
};
|
|
@@ -3093,19 +3164,21 @@ const MgInputText = class {
|
|
|
3093
3164
|
*/
|
|
3094
3165
|
this.checkValidity = () => {
|
|
3095
3166
|
var _a;
|
|
3096
|
-
this.
|
|
3097
|
-
this.invalid = !this.valid;
|
|
3098
|
-
// We need to send valid event even if it is the same value
|
|
3099
|
-
this.inputValid.emit(this.valid);
|
|
3167
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true));
|
|
3100
3168
|
};
|
|
3101
3169
|
/**
|
|
3102
3170
|
* Set input error message
|
|
3171
|
+
* @param errorMessage - errorMessage override
|
|
3103
3172
|
*/
|
|
3104
|
-
this.setErrorMessage = () => {
|
|
3173
|
+
this.setErrorMessage = (errorMessage) => {
|
|
3105
3174
|
// Set error message
|
|
3106
3175
|
this.errorMessage = undefined;
|
|
3176
|
+
// Does have a custom error message
|
|
3177
|
+
if (!this.valid && errorMessage !== undefined) {
|
|
3178
|
+
this.errorMessage = errorMessage;
|
|
3179
|
+
}
|
|
3107
3180
|
// Does not match pattern
|
|
3108
|
-
if (!this.valid && this.input.validity.patternMismatch) {
|
|
3181
|
+
else if (!this.valid && this.input.validity.patternMismatch) {
|
|
3109
3182
|
this.errorMessage = this.patternErrorMessage;
|
|
3110
3183
|
}
|
|
3111
3184
|
// required
|
|
@@ -3113,30 +3186,24 @@ const MgInputText = class {
|
|
|
3113
3186
|
this.errorMessage = this.messages.errors.required;
|
|
3114
3187
|
}
|
|
3115
3188
|
};
|
|
3116
|
-
/**
|
|
3117
|
-
* Validate pattern configuration
|
|
3118
|
-
*/
|
|
3119
|
-
this.validatePattern = () => {
|
|
3120
|
-
if (this.pattern !== undefined &&
|
|
3121
|
-
typeof this.pattern === 'string' &&
|
|
3122
|
-
this.pattern !== '' &&
|
|
3123
|
-
(this.patternErrorMessage === undefined || typeof this.patternErrorMessage !== 'string' || this.patternErrorMessage === '')) {
|
|
3124
|
-
throw new Error('<mg-input-text> prop "pattern" must be paired with the prop "patternErrorMessage"');
|
|
3125
|
-
}
|
|
3126
|
-
};
|
|
3127
3189
|
/**
|
|
3128
3190
|
* Validate append slot
|
|
3129
3191
|
*/
|
|
3130
3192
|
this.validateAppendSlot = () => {
|
|
3131
3193
|
const slotAppendInput = Array.from(this.element.querySelectorAll('[slot="append-input"]'));
|
|
3132
3194
|
if (slotAppendInput.length === 1) {
|
|
3133
|
-
this.classCollection.add(slotAppendInput[0].nodeName === 'MG-BUTTON' ? this.classIsInputGroupAppend : 'mg-input--is-append-input-slot-content');
|
|
3195
|
+
this.classCollection.add(slotAppendInput[0].nodeName === 'MG-BUTTON' ? this.classIsInputGroupAppend : 'mg-c-input--is-append-input-slot-content');
|
|
3134
3196
|
}
|
|
3135
3197
|
else if (slotAppendInput.filter(slot => slot.nodeName === 'MG-BUTTON').length > 1) {
|
|
3136
3198
|
this.classCollection.add(this.classIsInputGroupAppend);
|
|
3137
|
-
this.classCollection.add('mg-input--has-buttons-group-append');
|
|
3199
|
+
this.classCollection.add('mg-c-input--has-buttons-group-append');
|
|
3138
3200
|
}
|
|
3139
3201
|
};
|
|
3202
|
+
/**
|
|
3203
|
+
* Methode to control datalist display condition
|
|
3204
|
+
* @returns true if display condition success
|
|
3205
|
+
*/
|
|
3206
|
+
this.hasDatalist = () => isDatalistOption(this.datalistoptions) && this.datalistoptions.length > 0;
|
|
3140
3207
|
this.value = undefined;
|
|
3141
3208
|
this.identifier = undefined;
|
|
3142
3209
|
this.name = this.identifier;
|
|
@@ -3146,6 +3213,7 @@ const MgInputText = class {
|
|
|
3146
3213
|
this.labelOnTop = undefined;
|
|
3147
3214
|
this.labelHide = false;
|
|
3148
3215
|
this.placeholder = undefined;
|
|
3216
|
+
this.datalistoptions = undefined;
|
|
3149
3217
|
this.maxlength = 400;
|
|
3150
3218
|
this.required = false;
|
|
3151
3219
|
this.readonly = false;
|
|
@@ -3158,7 +3226,7 @@ const MgInputText = class {
|
|
|
3158
3226
|
this.helpText = undefined;
|
|
3159
3227
|
this.valid = undefined;
|
|
3160
3228
|
this.invalid = undefined;
|
|
3161
|
-
this.classCollection = new ClassList(['mg-input--text']);
|
|
3229
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--text']);
|
|
3162
3230
|
this.errorMessage = undefined;
|
|
3163
3231
|
}
|
|
3164
3232
|
handleValue(newValue) {
|
|
@@ -3172,6 +3240,11 @@ const MgInputText = class {
|
|
|
3172
3240
|
this.classCollection.delete(this.classHasIcon);
|
|
3173
3241
|
}
|
|
3174
3242
|
}
|
|
3243
|
+
validateDatalistoptions(newValue) {
|
|
3244
|
+
if (Boolean(newValue) && !isDatalistOption(newValue)) {
|
|
3245
|
+
throw new Error('<mg-input-text> prop "datalistoptions" values must be the same type, DatalistOption.');
|
|
3246
|
+
}
|
|
3247
|
+
}
|
|
3175
3248
|
handleValidityChange(newValue, _oldValue, prop) {
|
|
3176
3249
|
if (this.input !== undefined) {
|
|
3177
3250
|
this.input[prop] = newValue;
|
|
@@ -3182,6 +3255,11 @@ const MgInputText = class {
|
|
|
3182
3255
|
}
|
|
3183
3256
|
}
|
|
3184
3257
|
}
|
|
3258
|
+
validatePattern(newValue) {
|
|
3259
|
+
if (newValue !== undefined && !(components_utils.isValidString(this.pattern) && components_utils.isValidString(this.patternErrorMessage))) {
|
|
3260
|
+
throw new Error('<mg-input-text> props "pattern" and "patternErrorMessage" must be non-empty string and paired.');
|
|
3261
|
+
}
|
|
3262
|
+
}
|
|
3185
3263
|
/**
|
|
3186
3264
|
* Public method to play input focus
|
|
3187
3265
|
*/
|
|
@@ -3189,13 +3267,44 @@ const MgInputText = class {
|
|
|
3189
3267
|
this.input.focus();
|
|
3190
3268
|
}
|
|
3191
3269
|
/**
|
|
3192
|
-
*
|
|
3270
|
+
* Display input error if it exists.
|
|
3193
3271
|
*/
|
|
3194
3272
|
async displayError() {
|
|
3195
3273
|
this.checkValidity();
|
|
3196
3274
|
this.setErrorMessage();
|
|
3197
3275
|
this.hasDisplayedError = this.invalid;
|
|
3198
3276
|
}
|
|
3277
|
+
/**
|
|
3278
|
+
* Set an error and display a custom error message.
|
|
3279
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
3280
|
+
* It must be paired with an error message to display for the given context.
|
|
3281
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
3282
|
+
* @param valid - value indicating the validity
|
|
3283
|
+
* @param errorMessage - the error message to display
|
|
3284
|
+
*/
|
|
3285
|
+
async setError(valid, errorMessage) {
|
|
3286
|
+
if (typeof valid !== 'boolean') {
|
|
3287
|
+
throw new Error('<mg-input-text> method "setError()" param "valid" must be a boolean');
|
|
3288
|
+
}
|
|
3289
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
3290
|
+
throw new Error('<mg-input-text> method "setError()" param "errorMessage" must be a string');
|
|
3291
|
+
}
|
|
3292
|
+
else {
|
|
3293
|
+
this.setValidity(valid);
|
|
3294
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
3295
|
+
this.hasDisplayedError = this.invalid;
|
|
3296
|
+
}
|
|
3297
|
+
}
|
|
3298
|
+
/**
|
|
3299
|
+
* Method to set validity values
|
|
3300
|
+
* @param newValue - valid new value
|
|
3301
|
+
*/
|
|
3302
|
+
setValidity(newValue) {
|
|
3303
|
+
this.valid = newValue;
|
|
3304
|
+
this.invalid = !this.valid;
|
|
3305
|
+
// We need to send valid event even if it is the same value
|
|
3306
|
+
this.inputValid.emit(this.valid);
|
|
3307
|
+
}
|
|
3199
3308
|
/*************
|
|
3200
3309
|
* Lifecycle *
|
|
3201
3310
|
*************/
|
|
@@ -3205,11 +3314,14 @@ const MgInputText = class {
|
|
|
3205
3314
|
*/
|
|
3206
3315
|
componentWillLoad() {
|
|
3207
3316
|
// Get locales
|
|
3208
|
-
this.messages =
|
|
3317
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
3209
3318
|
this.characterLeftId = `${this.identifier}-character-left`;
|
|
3319
|
+
this.datalistId = `${this.identifier}-datalist`;
|
|
3210
3320
|
// Validate
|
|
3211
3321
|
this.validateIcon(this.icon);
|
|
3212
|
-
this.
|
|
3322
|
+
this.validateDatalistoptions(this.datalistoptions);
|
|
3323
|
+
this.validatePattern(this.pattern);
|
|
3324
|
+
this.validatePattern(this.patternErrorMessage);
|
|
3213
3325
|
this.validateAppendSlot();
|
|
3214
3326
|
// Check validity when component is ready
|
|
3215
3327
|
// return a promise to process action only in the FIRST render().
|
|
@@ -3223,27 +3335,30 @@ const MgInputText = class {
|
|
|
3223
3335
|
* @returns HTML Element
|
|
3224
3336
|
*/
|
|
3225
3337
|
render() {
|
|
3226
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [this.characterLeftId], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: undefined, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("div", { class: "mg-input__with-character-left", style: {
|
|
3338
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [this.characterLeftId], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: undefined, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("div", { class: "mg-c-input__with-character-left", style: {
|
|
3227
3339
|
'--mg-character-left-message-length': (this.displayCharacterLeft
|
|
3228
3340
|
? (this.maxlength - (this.value || '').length).toString().length + this.maxlength.toString().length + 1
|
|
3229
3341
|
: 0).toString(),
|
|
3230
|
-
} }, this.icon !== undefined && index.h("mg-icon", { icon: this.icon }), index.h("input", { type: this.type, class: "mg-input__box", value: this.value, id: this.identifier, name: this.name, placeholder: this.placeholder, title: this.placeholder, maxlength: this.maxlength, disabled: this.disabled, required: this.required, pattern: this.pattern, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, ref: (el) => {
|
|
3342
|
+
} }, this.icon !== undefined && index.h("mg-icon", { icon: this.icon }), index.h("input", { type: this.type, class: "mg-c-input__box", value: this.value, id: this.identifier, list: this.hasDatalist() ? this.datalistId : undefined, autocomplete: this.hasDatalist() ? 'off' : undefined, name: this.name, placeholder: this.placeholder, title: this.placeholder, maxlength: this.maxlength, disabled: this.disabled, required: this.required, pattern: this.pattern, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, ref: (el) => {
|
|
3231
3343
|
if (el !== null)
|
|
3232
3344
|
this.input = el;
|
|
3233
|
-
} }), this.displayCharacterLeft && this.maxlength > 0 && (index.h("mg-character-left", { identifier: this.characterLeftId, characters: this.value, maxlength: this.maxlength }))), index.h("slot", { name: "append-input" })));
|
|
3345
|
+
} }), this.hasDatalist() && (index.h("datalist", { id: this.datalistId }, this.datalistoptions.map(option => (index.h("option", { value: option, key: option }))))), this.displayCharacterLeft && this.maxlength > 0 && (index.h("mg-character-left", { identifier: this.characterLeftId, characters: this.value, maxlength: this.maxlength }))), index.h("slot", { name: "append-input" })));
|
|
3234
3346
|
}
|
|
3235
3347
|
get element() { return index.getElement(this); }
|
|
3236
3348
|
static get watchers() { return {
|
|
3237
3349
|
"value": ["handleValue"],
|
|
3238
3350
|
"icon": ["validateIcon"],
|
|
3351
|
+
"datalistoptions": ["validateDatalistoptions"],
|
|
3239
3352
|
"required": ["handleValidityChange"],
|
|
3240
3353
|
"readonly": ["handleValidityChange"],
|
|
3241
|
-
"disabled": ["handleValidityChange"]
|
|
3354
|
+
"disabled": ["handleValidityChange"],
|
|
3355
|
+
"pattern": ["validatePattern"],
|
|
3356
|
+
"patternErrorMessage": ["validatePattern"]
|
|
3242
3357
|
}; }
|
|
3243
3358
|
};
|
|
3244
3359
|
MgInputText.style = mgInputTextCss;
|
|
3245
3360
|
|
|
3246
|
-
const mgInputTextareaCss = ":host{display:block}.mg-input{display:flex;
|
|
3361
|
+
const mgInputTextareaCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.mg-c-input__box{height:var(--default-size);box-sizing:border-box;padding:calc((var(--default-size) - var(--font-size)*var(--line-height))/2) var(--mg-inputs-spacer);border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:var(--mg-inputs-border-radius);background-color:hsl(var(--color-light));color:hsl(var(--color-dark));font-family:inherit;font-size:var(--font-size);text-align:var(--mg-inputs-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-inputs-color);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 .6rem hsl(var(--mg-inputs-color-shadow-focus-hsl)/50%)}.mg-c-input__box:disabled{opacity:.3}.mg-c-input.mg-c-input--label-on-top .mg-c-input__box{width:auto;max-width:100%}.mg-c-input.mg-c-input--is-input-group-append{--mg-button-border-radius-top-left:0;--mg-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:-0.1rem;border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--is-input-group-append.mg-c-input--readonly slot[name=append-input]{display:none}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-button-border-radius-top-right:0;--mg-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-button-border-radius-top-right:var(--mg-inputs-border-radius);--mg-button-border-radius-bottom-right:var(--mg-inputs-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){padding-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input:not(.mg-c-input--label-on-top) .mg-c-input__box{width:100%;min-width:5rem;max-width:calc(17.7rem + var(--mg-inputs-spacer)*2)}.mg-c-input.mg-c-input--width-full:not(.mg-c-input--label-on-top){justify-content:space-between}.mg-c-input.mg-c-input--width-full.mg-c-input--label-on-top .mg-c-input__box{width:100%}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container{width:100%;flex:auto}.mg-c-input.mg-c-input--width-full .mg-c-input__input-container .mg-c-input__box{max-width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__input{width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__with-character-left{width:100%}.mg-c-input.mg-c-input--width-16 .mg-c-input__input-container .mg-c-input__box{min-width:100%;max-width:21rem}.mg-c-input.mg-c-input--width-4 .mg-c-input__input-container .mg-c-input__box{max-width:7rem}.mg-c-input.mg-c-input--width-2 .mg-c-input__input-container .mg-c-input__box{max-width:5rem}.mg-c-input mg-character-left{font-size:1.1rem;opacity:.6}.mg-c-input.mg-c-input--has-display-character-left .mg-c-input__input+.mg-c-input__help-text,.mg-c-input.mg-c-input--has-display-character-left .mg-c-input__input+.mg-c-input__error{margin-top:0}.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}}.mg-c-input__box{display:block;height:auto;resize:none}.mg-c-input__box.mg-c-input__box--resizable{resize:both}.mg-c-input__box.mg-c-input__box--resizable-horizontal{resize:horizontal}.mg-c-input__box.mg-c-input__box--resizable-vertical{resize:vertical}.mg-c-input__with-character-left{width:100%}.mg-c-input__with-character-left mg-character-left{display:block;margin-top:.2rem;text-align:end;visibility:hidden}.mg-c-input.mg-u-is-focused .mg-c-input__with-character-left mg-character-left{visibility:visible}@-moz-document url-prefix(){.mg-c-input__box{overflow-x:hidden}}";
|
|
3247
3362
|
|
|
3248
3363
|
const MgInputTextarea = class {
|
|
3249
3364
|
constructor(hostRef) {
|
|
@@ -3254,8 +3369,8 @@ const MgInputTextarea = class {
|
|
|
3254
3369
|
* Internal *
|
|
3255
3370
|
************/
|
|
3256
3371
|
// Classes
|
|
3257
|
-
this.classFocus = 'is-focused';
|
|
3258
|
-
this.classHasDisplayCharacterLeft = 'mg-input--has-display-character-left';
|
|
3372
|
+
this.classFocus = 'mg-u-is-focused';
|
|
3373
|
+
this.classHasDisplayCharacterLeft = 'mg-c-input--has-display-character-left';
|
|
3259
3374
|
// hasDisplayedError (triggered by blur event)
|
|
3260
3375
|
this.hasDisplayedError = false;
|
|
3261
3376
|
/**
|
|
@@ -3273,7 +3388,7 @@ const MgInputTextarea = class {
|
|
|
3273
3388
|
*/
|
|
3274
3389
|
this.handleFocus = () => {
|
|
3275
3390
|
this.classCollection.add(this.classFocus);
|
|
3276
|
-
this.classCollection = new ClassList(this.classCollection.classes);
|
|
3391
|
+
this.classCollection = new components_utils.ClassList(this.classCollection.classes);
|
|
3277
3392
|
};
|
|
3278
3393
|
/**
|
|
3279
3394
|
* Handle blur event
|
|
@@ -3281,7 +3396,7 @@ const MgInputTextarea = class {
|
|
|
3281
3396
|
this.handleBlur = () => {
|
|
3282
3397
|
// Manage focus
|
|
3283
3398
|
this.classCollection.delete(this.classFocus);
|
|
3284
|
-
this.classCollection = new ClassList(this.classCollection.classes);
|
|
3399
|
+
this.classCollection = new components_utils.ClassList(this.classCollection.classes);
|
|
3285
3400
|
// Display Error
|
|
3286
3401
|
this.displayError();
|
|
3287
3402
|
};
|
|
@@ -3296,35 +3411,27 @@ const MgInputTextarea = class {
|
|
|
3296
3411
|
*/
|
|
3297
3412
|
this.checkValidity = () => {
|
|
3298
3413
|
var _a;
|
|
3299
|
-
this.
|
|
3300
|
-
this.invalid = !this.valid;
|
|
3301
|
-
// We need to send valid event even if it is the same value
|
|
3302
|
-
this.inputValid.emit(this.valid);
|
|
3414
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined && this.input.checkValidity() && this.getPatternValidity()));
|
|
3303
3415
|
};
|
|
3304
3416
|
/**
|
|
3305
3417
|
* Set input error message
|
|
3418
|
+
* @param errorMessage - errorMessage override
|
|
3306
3419
|
*/
|
|
3307
|
-
this.setErrorMessage = () => {
|
|
3420
|
+
this.setErrorMessage = (errorMessage) => {
|
|
3308
3421
|
// Set error message
|
|
3309
3422
|
this.errorMessage = undefined;
|
|
3310
3423
|
// Does not match pattern
|
|
3311
|
-
if (!this.valid
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
this.validatePattern = () => {
|
|
3323
|
-
if (this.pattern !== undefined &&
|
|
3324
|
-
typeof this.pattern === 'string' &&
|
|
3325
|
-
this.pattern !== '' &&
|
|
3326
|
-
(this.patternErrorMessage === undefined || typeof this.patternErrorMessage !== 'string' || this.patternErrorMessage === '')) {
|
|
3327
|
-
throw new Error('<mg-input-textarea> prop "pattern" must be paired with the prop "patternErrorMessage"');
|
|
3424
|
+
if (!this.valid) {
|
|
3425
|
+
if (errorMessage !== undefined) {
|
|
3426
|
+
this.errorMessage = errorMessage;
|
|
3427
|
+
}
|
|
3428
|
+
else if (!this.getPatternValidity()) {
|
|
3429
|
+
this.errorMessage = this.patternErrorMessage;
|
|
3430
|
+
}
|
|
3431
|
+
// required
|
|
3432
|
+
else if (this.input.validity.valueMissing) {
|
|
3433
|
+
this.errorMessage = this.messages.errors.required;
|
|
3434
|
+
}
|
|
3328
3435
|
}
|
|
3329
3436
|
};
|
|
3330
3437
|
this.value = undefined;
|
|
@@ -3348,7 +3455,7 @@ const MgInputTextarea = class {
|
|
|
3348
3455
|
this.valid = undefined;
|
|
3349
3456
|
this.invalid = undefined;
|
|
3350
3457
|
this.resizable = 'none';
|
|
3351
|
-
this.classCollection = new ClassList(['mg-input--textarea']);
|
|
3458
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--textarea']);
|
|
3352
3459
|
this.errorMessage = undefined;
|
|
3353
3460
|
}
|
|
3354
3461
|
handleValue(newValue) {
|
|
@@ -3365,6 +3472,11 @@ const MgInputTextarea = class {
|
|
|
3365
3472
|
}
|
|
3366
3473
|
}
|
|
3367
3474
|
}
|
|
3475
|
+
validatePattern(newValue) {
|
|
3476
|
+
if (newValue !== undefined && !(components_utils.isValidString(this.pattern) && components_utils.isValidString(this.patternErrorMessage))) {
|
|
3477
|
+
throw new Error('<mg-input-textarea> props "pattern" and "patternErrorMessage" must be non-empty string and paired.');
|
|
3478
|
+
}
|
|
3479
|
+
}
|
|
3368
3480
|
validateDisplayCharacterLeft(newValue) {
|
|
3369
3481
|
if (newValue) {
|
|
3370
3482
|
this.classCollection.add(this.classHasDisplayCharacterLeft);
|
|
@@ -3374,13 +3486,44 @@ const MgInputTextarea = class {
|
|
|
3374
3486
|
}
|
|
3375
3487
|
}
|
|
3376
3488
|
/**
|
|
3377
|
-
*
|
|
3489
|
+
* Display input error if it exists.
|
|
3378
3490
|
*/
|
|
3379
3491
|
async displayError() {
|
|
3380
3492
|
this.checkValidity();
|
|
3381
3493
|
this.setErrorMessage();
|
|
3382
3494
|
this.hasDisplayedError = this.invalid;
|
|
3383
3495
|
}
|
|
3496
|
+
/**
|
|
3497
|
+
* Set an error and display a custom error message.
|
|
3498
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
3499
|
+
* It must be paired with an error message to display for the given context.
|
|
3500
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
3501
|
+
* @param valid - value indicating the validity
|
|
3502
|
+
* @param errorMessage - the error message to display
|
|
3503
|
+
*/
|
|
3504
|
+
async setError(valid, errorMessage) {
|
|
3505
|
+
if (typeof valid !== 'boolean') {
|
|
3506
|
+
throw new Error('<mg-input-textarea> method "setError()" param "valid" must be a boolean');
|
|
3507
|
+
}
|
|
3508
|
+
else if (!components_utils.isValidString(errorMessage)) {
|
|
3509
|
+
throw new Error('<mg-input-textarea> method "setError()" param "errorMessage" must be a string');
|
|
3510
|
+
}
|
|
3511
|
+
else {
|
|
3512
|
+
this.setValidity(valid);
|
|
3513
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
3514
|
+
this.hasDisplayedError = this.invalid;
|
|
3515
|
+
}
|
|
3516
|
+
}
|
|
3517
|
+
/**
|
|
3518
|
+
* Method to set validity values
|
|
3519
|
+
* @param newValue - valid new value
|
|
3520
|
+
*/
|
|
3521
|
+
setValidity(newValue) {
|
|
3522
|
+
this.valid = newValue;
|
|
3523
|
+
this.invalid = !this.valid;
|
|
3524
|
+
// We need to send valid event even if it is the same value
|
|
3525
|
+
this.inputValid.emit(this.valid);
|
|
3526
|
+
}
|
|
3384
3527
|
/*************
|
|
3385
3528
|
* Lifecycle *
|
|
3386
3529
|
*************/
|
|
@@ -3390,11 +3533,12 @@ const MgInputTextarea = class {
|
|
|
3390
3533
|
*/
|
|
3391
3534
|
componentWillLoad() {
|
|
3392
3535
|
// Get locales
|
|
3393
|
-
this.messages =
|
|
3536
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
3394
3537
|
this.characterLeftId = `${this.identifier}-character-left`;
|
|
3395
3538
|
// Validate
|
|
3396
3539
|
this.validateDisplayCharacterLeft(this.displayCharacterLeft);
|
|
3397
|
-
this.validatePattern();
|
|
3540
|
+
this.validatePattern(this.pattern);
|
|
3541
|
+
this.validatePattern(this.patternErrorMessage);
|
|
3398
3542
|
// Check validity when component is ready
|
|
3399
3543
|
// return a promise to process action only in the FIRST render().
|
|
3400
3544
|
// https://stenciljs.com/docs/component-lifecycle#componentwillload
|
|
@@ -3407,11 +3551,11 @@ const MgInputTextarea = class {
|
|
|
3407
3551
|
* @returns HTML Element
|
|
3408
3552
|
*/
|
|
3409
3553
|
render() {
|
|
3410
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [this.characterLeftId], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: undefined, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("div", { class: "mg-input__with-character-left" }, index.h("textarea", { class: {
|
|
3411
|
-
'mg-input__box': true,
|
|
3412
|
-
'mg-input__box--resizable': this.resizable === 'both',
|
|
3413
|
-
'mg-input__box--resizable-horizontal': this.resizable === 'horizontal',
|
|
3414
|
-
'mg-input__box--resizable-vertical': this.resizable === 'vertical',
|
|
3554
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [this.characterLeftId], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, readonly: this.readonly, mgWidth: this.mgWidth, disabled: this.disabled, value: this.value, readonlyValue: undefined, tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, index.h("div", { class: "mg-c-input__with-character-left" }, index.h("textarea", { class: {
|
|
3555
|
+
'mg-c-input__box': true,
|
|
3556
|
+
'mg-c-input__box--resizable': this.resizable === 'both',
|
|
3557
|
+
'mg-c-input__box--resizable-horizontal': this.resizable === 'horizontal',
|
|
3558
|
+
'mg-c-input__box--resizable-vertical': this.resizable === 'vertical',
|
|
3415
3559
|
}, value: this.value, id: this.identifier, name: this.name, placeholder: this.placeholder, title: this.placeholder, rows: this.rows, maxlength: this.maxlength, disabled: this.disabled, required: this.required, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, ref: (el) => {
|
|
3416
3560
|
if (el !== null)
|
|
3417
3561
|
this.input = el;
|
|
@@ -3423,12 +3567,14 @@ const MgInputTextarea = class {
|
|
|
3423
3567
|
"required": ["handleValidityChange"],
|
|
3424
3568
|
"readonly": ["handleValidityChange"],
|
|
3425
3569
|
"disabled": ["handleValidityChange"],
|
|
3570
|
+
"pattern": ["validatePattern"],
|
|
3571
|
+
"patternErrorMessage": ["validatePattern"],
|
|
3426
3572
|
"displayCharacterLeft": ["validateDisplayCharacterLeft"]
|
|
3427
3573
|
}; }
|
|
3428
3574
|
};
|
|
3429
3575
|
MgInputTextarea.style = mgInputTextareaCss;
|
|
3430
3576
|
|
|
3431
|
-
const mgInputTitleCss = ".is-asterisk.sc-mg-input-title{color:hsl(var(--color-danger))}legend.mg-input-title.sc-mg-input-title{padding-
|
|
3577
|
+
const mgInputTitleCss = ".mg-u-is-asterisk.sc-mg-input-title{color:hsl(var(--color-danger))}legend.mg-c-input-title.sc-mg-input-title{padding-right:0;padding-left:0}.mg-c-input-title__required.sc-mg-input-title{display:var(--mg-input-title-display, unset)}";
|
|
3432
3578
|
|
|
3433
3579
|
const MgInputTitle = class {
|
|
3434
3580
|
constructor(hostRef) {
|
|
@@ -3439,7 +3585,7 @@ const MgInputTitle = class {
|
|
|
3439
3585
|
this.tagName = 'label';
|
|
3440
3586
|
}
|
|
3441
3587
|
validateIdentifier(newValue) {
|
|
3442
|
-
if (
|
|
3588
|
+
if (!components_utils.isValidString(newValue)) {
|
|
3443
3589
|
throw new Error('<mg-input-title> prop "identifier" is required.');
|
|
3444
3590
|
}
|
|
3445
3591
|
}
|
|
@@ -3463,7 +3609,7 @@ const MgInputTitle = class {
|
|
|
3463
3609
|
render() {
|
|
3464
3610
|
const TagName = this.tagName;
|
|
3465
3611
|
// \u00A0 represent a
|
|
3466
|
-
return (index.h(TagName, { class: "mg-input-title", htmlFor: this.isLegend ? undefined : this.identifier }, index.h("slot", null), this.required && (index.h("span", { class: "mg-input-title__required" }, "\u00A0", index.h("span", { class: "is-asterisk" }, "*")))));
|
|
3612
|
+
return (index.h(TagName, { class: "mg-c-input-title", htmlFor: this.isLegend ? undefined : this.identifier }, index.h("slot", null), this.required && (index.h("span", { class: "mg-c-input-title__required" }, "\u00A0", index.h("span", { class: "mg-u-is-asterisk" }, "*")))));
|
|
3467
3613
|
}
|
|
3468
3614
|
static get watchers() { return {
|
|
3469
3615
|
"identifier": ["validateIdentifier"],
|
|
@@ -3472,7 +3618,7 @@ const MgInputTitle = class {
|
|
|
3472
3618
|
};
|
|
3473
3619
|
MgInputTitle.style = mgInputTitleCss;
|
|
3474
3620
|
|
|
3475
|
-
const mgInputToggleCss = ":host{display:block}.mg-input{display:flex;
|
|
3621
|
+
const mgInputToggleCss = ":host{display:block}.mg-c-input__input mg-icon,.mg-c-input__error mg-icon{display:flex}.mg-c-input{display:flex;max-width:100%;min-height:var(--default-size);align-items:flex-start;margin-bottom:var(--mg-inputs-margin-bottom, 0)}.mg-c-input mg-input-title{width:var(--mg-inputs-title-width, auto);flex-shrink:var(--mg-inputs-shrink, 1);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2);margin-right:var(--mg-inputs-title-horizontal-space, var(--mg-inputs-spacer));text-align:right}.mg-c-input__error{display:inline-block;padding:.3rem .8rem;border-radius:.3rem;margin-top:.2rem;background:hsl(var(--mg-inputs-error-bg-color));color:hsl(var(--color-danger))}.mg-c-input__input-container{min-height:var(--default-size)}.mg-c-input__input-container>strong{display:inline-block;min-height:var(--font-size);margin-top:calc((var(--default-size) - var(--font-size)*var(--line-height))/2)}.mg-c-input__input-container mg-tooltip{display:inline-flex;width:var(--mg-icon-regular-size);height:var(--mg-icon-regular-size);margin-left:var(--mg-inputs-spacer)}.mg-c-input__input-container .mg-c-input__help-text,.mg-c-input__input-container .mg-c-input__error{font-size:1.2rem;text-align:start}.mg-c-input.mg-c-input--label-on-top{flex-direction:column}.mg-c-input.mg-c-input--label-on-top .mg-c-input__input-container{width:100%}.mg-c-input__title{display:flex;align-items:baseline;margin-bottom:.3rem}.mg-c-input__title mg-input-title{width:auto;flex-shrink:1;margin-top:0;margin-right:var(--mg-inputs-spacer);text-align:left}.mg-c-input__title mg-tooltip{margin-top:0}.mg-c-input__title mg-icon{display:inline-flex;vertical-align:text-bottom}.mg-c-input__input{display:flex}.mg-c-input__input mg-tooltip{margin-top:calc((var(--default-size) - var(--mg-icon-regular-size))/2)}.mg-c-input__input.mg-c-input__input--has-error .mg-c-input__box{border-color:hsl(var(--color-danger))}.mg-c-input__input+.mg-c-input__help-text,.mg-c-input__input+.mg-c-input__error{margin-top:.5rem}.mg-c-input__input .mg-c-input__box:disabled,.mg-c-input__input-group--disabled label,.mg-c-input.mg-c-input--toggle-disabled .mg-c-input__input .mg-c-input__button-toggle,.mg-c-input.mg-c-input--checkbox-multi-disabled .mg-c-input__input strong{opacity:var(--mg-disabled-opacity)}.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}}.mg-c-input__toggle-item-container{overflow:hidden;box-sizing:border-box;padding:.5rem .9rem;border:0;border-radius:calc((var(--font-size)*var(--line-height) + 1rem)/var(--mg-input-toggle-border-radius-ratio));background-color:unset;color:hsl(var(--color-dark));font-weight:unset;text-overflow:ellipsis;white-space:nowrap}.mg-c-input__toggle-item-container:first-of-type{background-color:hsl(var(--color-info-h), calc(var(--color-info-s) - 64%), calc(var(--color-info-l) + 55%));color:hsl(var(--color-info));font-weight:600}.mg-c-input__button-toggle{display:flex;min-width:0;padding:.2rem;border-width:var(--mg-inputs-border-width);border-style:solid;border-color:var(--mg-inputs-color);border-radius:calc((var(--font-size)*var(--line-height) + 2*(.7rem + var(--mg-inputs-border-width)))/var(--mg-input-toggle-border-radius-ratio));background-color:hsl(var(--color-light));cursor:pointer;font-family:var(--font-family);font-size:inherit;line-height:inherit}.mg-c-input__button-toggle:disabled{cursor:default}.mg-c-input.mg-c-input--toggle .mg-c-input__input-container{min-width:0;flex:auto}.mg-c-input.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:first-of-type{background-color:unset;color:hsl(var(--color-dark));font-weight:unset}.mg-c-input.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:last-of-type{background-color:hsl(var(--color-info-h), calc(var(--color-info-s) - 64%), calc(var(--color-info-l) + 55%));color:hsl(var(--color-info));font-weight:600}.mg-c-input.mg-c-input--toggle-icon .mg-c-input__toggle-item-container{display:flex;width:calc(var(--font-size)*var(--line-height) + 1rem);height:calc(var(--font-size)*var(--line-height) + 1rem);align-items:center;justify-content:center;padding:0;visibility:hidden}.mg-c-input.mg-c-input--toggle-icon .mg-c-input__toggle-item-container:first-of-type{visibility:visible}.mg-c-input.mg-c-input--toggle-icon .mg-c-input__toggle-item-container ::slotted(mg-icon){display:flex}.mg-c-input.mg-c-input--toggle-icon.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:first-of-type{visibility:hidden}.mg-c-input.mg-c-input--toggle-icon.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:last-of-type{visibility:visible}.mg-c-input.mg-c-input--toggle-readonly .mg-c-input__button-toggle{border-color:rgba(0,0,0,0);background-color:rgba(0,0,0,0);cursor:initial}.mg-c-input.mg-c-input--toggle-readonly .mg-c-input__toggle-item-container:last-of-type{display:none}.mg-c-input.mg-c-input--toggle-readonly.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:first-of-type{display:none}.mg-c-input.mg-c-input--toggle-readonly.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:last-of-type{display:flex}.mg-c-input.mg-c-input--toggle-on-off .mg-c-input__toggle-item-container:first-of-type{background-color:hsl(var(--color-dark-h), calc(var(--color-dark-s) - 30%), calc(var(--color-dark-l) + 75%));color:hsl(var(--color-dark));font-weight:600}.mg-c-input.mg-c-input--toggle-on-off.mg-c-input--toggle-is-active .mg-c-input__toggle-item-container:first-of-type{background-color:unset;color:hsl(var(--color-dark));font-weight:unset}";
|
|
3476
3622
|
|
|
3477
3623
|
/**
|
|
3478
3624
|
* type Option validation function
|
|
@@ -3489,11 +3635,11 @@ const MgInputToggle = class {
|
|
|
3489
3635
|
* Internal *
|
|
3490
3636
|
************/
|
|
3491
3637
|
// Classes
|
|
3492
|
-
this.classReadonly = 'mg-input--toggle-readonly';
|
|
3493
|
-
this.classDisabled = 'mg-input--toggle-disabled';
|
|
3494
|
-
this.classIsActive = 'mg-input--toggle-is-active';
|
|
3495
|
-
this.classOnOff = 'mg-input--toggle-on-off';
|
|
3496
|
-
this.classIcon = 'mg-input--toggle-icon';
|
|
3638
|
+
this.classReadonly = 'mg-c-input--toggle-readonly';
|
|
3639
|
+
this.classDisabled = 'mg-c-input--toggle-disabled';
|
|
3640
|
+
this.classIsActive = 'mg-c-input--toggle-is-active';
|
|
3641
|
+
this.classOnOff = 'mg-c-input--toggle-on-off';
|
|
3642
|
+
this.classIcon = 'mg-c-input--toggle-icon';
|
|
3497
3643
|
/**
|
|
3498
3644
|
* Change checked value
|
|
3499
3645
|
*/
|
|
@@ -3527,7 +3673,7 @@ const MgInputToggle = class {
|
|
|
3527
3673
|
this.disabled = false;
|
|
3528
3674
|
this.tooltip = undefined;
|
|
3529
3675
|
this.helpText = undefined;
|
|
3530
|
-
this.classCollection = new ClassList(['mg-input--toggle']);
|
|
3676
|
+
this.classCollection = new components_utils.ClassList(['mg-c-input--toggle']);
|
|
3531
3677
|
this.options = undefined;
|
|
3532
3678
|
this.checked = false;
|
|
3533
3679
|
}
|
|
@@ -3542,7 +3688,7 @@ const MgInputToggle = class {
|
|
|
3542
3688
|
throw new Error('<mg-input-toggle> prop "items" require 2 items.');
|
|
3543
3689
|
}
|
|
3544
3690
|
// String array
|
|
3545
|
-
else if (allItemsAreString(newValue)) {
|
|
3691
|
+
else if (components_utils.allItemsAreString(newValue)) {
|
|
3546
3692
|
this.options = newValue.map(item => ({ title: item, value: item }));
|
|
3547
3693
|
}
|
|
3548
3694
|
// Object array
|
|
@@ -3632,7 +3778,7 @@ const MgInputToggle = class {
|
|
|
3632
3778
|
* @returns HTML Element
|
|
3633
3779
|
*/
|
|
3634
3780
|
render() {
|
|
3635
|
-
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: undefined, readonly: undefined, mgWidth: undefined, disabled: this.disabled, value: this.value, readonlyValue: undefined, tooltip: !this.readonly && this.tooltip, helpText: this.helpText, errorMessage: undefined, isFieldset: false }, index.h("button", { type: "button", role: "switch", "aria-checked": this.checked.toString(), "aria-readonly": this.disabled || this.readonly, id: this.identifier, class: "mg-input__button-toggle", disabled: this.disabled || this.readonly, onClick: this.toggleChecked }, index.h("span", { "aria-hidden": "true", class: "mg-input__toggle-item-container" }, index.h("slot", { name: "item-1" })), index.h("span", { "aria-hidden": "true", class: "mg-input__toggle-item-container" }, index.h("slot", { name: "item-2" })))));
|
|
3781
|
+
return (index.h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: undefined, readonly: undefined, mgWidth: undefined, disabled: this.disabled, value: this.value, readonlyValue: undefined, tooltip: !this.readonly && this.tooltip, helpText: this.helpText, errorMessage: undefined, isFieldset: false }, index.h("button", { type: "button", role: "switch", "aria-checked": this.checked.toString(), "aria-readonly": this.disabled || this.readonly, id: this.identifier, class: "mg-c-input__button-toggle", disabled: this.disabled || this.readonly, onClick: this.toggleChecked }, index.h("span", { "aria-hidden": "true", class: "mg-c-input__toggle-item-container" }, index.h("slot", { name: "item-1" })), index.h("span", { "aria-hidden": "true", class: "mg-c-input__toggle-item-container" }, index.h("slot", { name: "item-2" })))));
|
|
3636
3782
|
}
|
|
3637
3783
|
get element() { return index.getElement(this); }
|
|
3638
3784
|
static get watchers() { return {
|
|
@@ -3647,7 +3793,7 @@ const MgInputToggle = class {
|
|
|
3647
3793
|
};
|
|
3648
3794
|
MgInputToggle.style = mgInputToggleCss;
|
|
3649
3795
|
|
|
3650
|
-
const mgMenuCss = ".
|
|
3796
|
+
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}}:host{display:flex;background-color:hsl(var(--mg-menu-background-color-hsl, var(--color-light)))}:host([direction=vertical]){height:100%;flex-direction:column;overflow-y:auto}";
|
|
3651
3797
|
|
|
3652
3798
|
const MgMenu = class {
|
|
3653
3799
|
constructor(hostRef) {
|
|
@@ -3725,7 +3871,7 @@ const MgMenu = class {
|
|
|
3725
3871
|
this.element.appendChild(mgItemMore);
|
|
3726
3872
|
};
|
|
3727
3873
|
this.label = undefined;
|
|
3728
|
-
this.direction =
|
|
3874
|
+
this.direction = components_utils.Direction.HORIZONTAL;
|
|
3729
3875
|
this.itemmore = undefined;
|
|
3730
3876
|
this.size = 'regular';
|
|
3731
3877
|
this.isChildMenu = undefined;
|
|
@@ -3736,18 +3882,18 @@ const MgMenu = class {
|
|
|
3736
3882
|
}
|
|
3737
3883
|
}
|
|
3738
3884
|
validateDirection(newValue) {
|
|
3739
|
-
if (![
|
|
3740
|
-
throw new Error(`<${this.name}> prop "direction" must be one of: ${
|
|
3885
|
+
if (![components_utils.Direction.VERTICAL, components_utils.Direction.HORIZONTAL].includes(newValue)) {
|
|
3886
|
+
throw new Error(`<${this.name}> prop "direction" must be one of: ${components_utils.Direction.HORIZONTAL}, ${components_utils.Direction.VERTICAL}.`);
|
|
3741
3887
|
}
|
|
3742
3888
|
}
|
|
3743
3889
|
validateItemMore(newValue) {
|
|
3744
|
-
if (newValue !== undefined && this.direction !==
|
|
3745
|
-
throw new Error(`<${this.name}> prop "itemmore" must be paired with direction ${
|
|
3890
|
+
if (newValue !== undefined && this.direction !== components_utils.Direction.HORIZONTAL) {
|
|
3891
|
+
throw new Error(`<${this.name}> prop "itemmore" must be paired with direction ${components_utils.Direction.HORIZONTAL}.`);
|
|
3746
3892
|
}
|
|
3747
3893
|
}
|
|
3748
3894
|
validateSize(newValue) {
|
|
3749
|
-
if (!
|
|
3750
|
-
throw new Error(`<${this.name}> prop "size" must be one of: ${
|
|
3895
|
+
if (!components_utils.sizes.includes(newValue)) {
|
|
3896
|
+
throw new Error(`<${this.name}> prop "size" must be one of: ${components_utils.sizes.join(', ')}.`);
|
|
3751
3897
|
}
|
|
3752
3898
|
}
|
|
3753
3899
|
/*************
|
|
@@ -3775,7 +3921,7 @@ const MgMenu = class {
|
|
|
3775
3921
|
this.menuItems = Array.from(this.element.children).filter(child => child.nodeName === 'MG-MENU-ITEM');
|
|
3776
3922
|
this.isChildMenu = this.element.closest('mg-menu-item') !== null;
|
|
3777
3923
|
// add mg-item-more to manage OverflowBehavior
|
|
3778
|
-
if (this.direction ===
|
|
3924
|
+
if (this.direction === components_utils.Direction.HORIZONTAL && !this.isChildMenu)
|
|
3779
3925
|
this.renderMgItemMore();
|
|
3780
3926
|
// use mutation observer to improve reactivity
|
|
3781
3927
|
new MutationObserver(entries => {
|
|
@@ -3815,7 +3961,7 @@ const MgMenu = class {
|
|
|
3815
3961
|
};
|
|
3816
3962
|
MgMenu.style = mgMenuCss;
|
|
3817
3963
|
|
|
3818
|
-
const mgMenuItemCss = ".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}}.mg-menu-item.mg-menu-item--size-regular .mg-menu-item__navigation-button,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding:1rem 2rem;height:3.8rem}.mg-menu-item.mg-menu-item--size-regular .mg-menu-item__navigation-button,.mg-menu-item.mg-menu-item--size-regular .mg-menu-item__navigation-button ::slotted([slot=label]),.mg-menu-item.mg-menu-item--size-regular .mg-menu-item__navigation-button ::slotted([slot=metadata]),.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular ::slotted([slot=label]),.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular ::slotted([slot=metadata]){font-size:var(--font-size)}.mg-menu-item.mg-menu-item--size-regular .mg-menu-item__navigation-button.mg-menu-item__navigation-button--horizontal,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular.mg-menu-item__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-menu-item.mg-menu-item--size-regular .mg-menu-item__navigation-button.mg-menu-item__navigation-button--vertical,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular.mg-menu-item__navigation-button--vertical{padding-left:calc(2rem - 0.3rem)}.mg-menu-item.mg-menu-item--size-medium .mg-menu-item__navigation-button,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding:1rem 3rem;height:5.1rem}.mg-menu-item.mg-menu-item--size-medium .mg-menu-item__navigation-button,.mg-menu-item.mg-menu-item--size-medium .mg-menu-item__navigation-button ::slotted([slot=label]),.mg-menu-item.mg-menu-item--size-medium .mg-menu-item__navigation-button ::slotted([slot=metadata]),.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium ::slotted([slot=label]),.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium ::slotted([slot=metadata]){font-size:calc(var(--font-size) + 0.2rem)}.mg-menu-item.mg-menu-item--size-medium .mg-menu-item__navigation-button.mg-menu-item__navigation-button--horizontal,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium.mg-menu-item__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-menu-item.mg-menu-item--size-medium .mg-menu-item__navigation-button.mg-menu-item__navigation-button--vertical,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium.mg-menu-item__navigation-button--vertical{padding-left:calc(3rem - 0.3rem)}.mg-menu-item.mg-menu-item--size-large .mg-menu-item__navigation-button,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding:1rem 4rem;height:7.1rem}.mg-menu-item.mg-menu-item--size-large .mg-menu-item__navigation-button,.mg-menu-item.mg-menu-item--size-large .mg-menu-item__navigation-button ::slotted([slot=label]),.mg-menu-item.mg-menu-item--size-large .mg-menu-item__navigation-button ::slotted([slot=metadata]),.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large ::slotted([slot=label]),.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large ::slotted([slot=metadata]){font-size:calc(var(--font-size) + 0.2rem)}.mg-menu-item.mg-menu-item--size-large .mg-menu-item__navigation-button.mg-menu-item__navigation-button--horizontal,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large.mg-menu-item__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-menu-item.mg-menu-item--size-large .mg-menu-item__navigation-button.mg-menu-item__navigation-button--vertical,.mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large.mg-menu-item__navigation-button--vertical{padding-left:calc(4rem - 0.3rem)}.mg-menu-item__navigation-button{display:flex;align-items:center;column-gap:var(--mg-menu-item-navigation-button-column-gap, 1rem);background-color:unset;border:none;font-family:var(--font-family);font-weight:400;color:hsl(var(--mg-menu-item-color-hsl, var(--color-dark)));line-height:var(--line-height);text-decoration:none;white-space:nowrap;box-sizing:border-box;cursor:pointer}.mg-menu-item__navigation-button:disabled,.mg-menu-item__navigation-button--disabled{cursor:default;opacity:var(--mg-disabled-opacity)}.mg-menu-item__navigation-button:focus-visible{z-index:10}.mg-menu-item__navigation-button:hover:not(.mg-menu-item__navigation-button--disabled),.mg-menu-item__navigation-button:focus-visible:not(.mg-menu-item__navigation-button--disabled){background-color:hsl(var(--mg-menu-item-focused-background-color-hsl), 0.1)}.mg-menu-item__navigation-button.mg-menu-item__navigation-button--active{color:hsl(var(--mg-menu-item-color-active-hsl));font-weight:600}.mg-menu-item__navigation-button.mg-menu-item__navigation-button--active.mg-menu-item__navigation-button--horizontal{border-bottom-color:hsl(var(--mg-menu-item-border-color-active-hsl))}.mg-menu-item__navigation-button.mg-menu-item__navigation-button--active.mg-menu-item__navigation-button--vertical{border-left-color:hsl(var(--mg-menu-item-border-color-active-hsl))}.mg-menu-item__navigation-button.mg-menu-item__navigation-button--hidden{display:none}.mg-menu-item__navigation-button.mg-menu-item__navigation-button--horizontal{border-bottom:0.3rem solid transparent}.mg-menu-item__navigation-button.mg-menu-item__navigation-button--vertical{border-left:0.3rem solid transparent}:host([data-style-direction-vertical][data-level=\"1\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding-left:calc(1 * 2rem - 0.3rem)}:host([data-level=\"1\"]) .mg-menu-item__collapse-container{z-index:calc(1 * 10)}:host([data-style-direction-vertical][data-level=\"2\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding-left:calc(2 * 2rem - 0.3rem)}:host([data-level=\"2\"]) .mg-menu-item__collapse-container{z-index:calc(2 * 10)}:host([data-style-direction-vertical][data-level=\"3\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding-left:calc(3 * 2rem - 0.3rem)}:host([data-level=\"3\"]) .mg-menu-item__collapse-container{z-index:calc(3 * 10)}:host([data-style-direction-vertical][data-level=\"4\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding-left:calc(4 * 2rem - 0.3rem)}:host([data-level=\"4\"]) .mg-menu-item__collapse-container{z-index:calc(4 * 10)}:host([data-style-direction-vertical][data-level=\"5\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding-left:calc(5 * 2rem - 0.3rem)}:host([data-level=\"5\"]) .mg-menu-item__collapse-container{z-index:calc(5 * 10)}:host([data-style-direction-vertical][data-level=\"6\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-regular{padding-left:calc(6 * 2rem - 0.3rem)}:host([data-level=\"6\"]) .mg-menu-item__collapse-container{z-index:calc(6 * 10)}:host([data-style-direction-vertical][data-level=\"1\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding-left:calc(1 * 3rem - 0.3rem)}:host([data-level=\"1\"]) .mg-menu-item__collapse-container{z-index:calc(1 * 10)}:host([data-style-direction-vertical][data-level=\"2\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding-left:calc(2 * 3rem - 0.3rem)}:host([data-level=\"2\"]) .mg-menu-item__collapse-container{z-index:calc(2 * 10)}:host([data-style-direction-vertical][data-level=\"3\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding-left:calc(3 * 3rem - 0.3rem)}:host([data-level=\"3\"]) .mg-menu-item__collapse-container{z-index:calc(3 * 10)}:host([data-style-direction-vertical][data-level=\"4\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding-left:calc(4 * 3rem - 0.3rem)}:host([data-level=\"4\"]) .mg-menu-item__collapse-container{z-index:calc(4 * 10)}:host([data-style-direction-vertical][data-level=\"5\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding-left:calc(5 * 3rem - 0.3rem)}:host([data-level=\"5\"]) .mg-menu-item__collapse-container{z-index:calc(5 * 10)}:host([data-style-direction-vertical][data-level=\"6\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-medium{padding-left:calc(6 * 3rem - 0.3rem)}:host([data-level=\"6\"]) .mg-menu-item__collapse-container{z-index:calc(6 * 10)}:host([data-style-direction-vertical][data-level=\"1\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding-left:calc(1 * 4rem - 0.3rem)}:host([data-level=\"1\"]) .mg-menu-item__collapse-container{z-index:calc(1 * 10)}:host([data-style-direction-vertical][data-level=\"2\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding-left:calc(2 * 4rem - 0.3rem)}:host([data-level=\"2\"]) .mg-menu-item__collapse-container{z-index:calc(2 * 10)}:host([data-style-direction-vertical][data-level=\"3\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding-left:calc(3 * 4rem - 0.3rem)}:host([data-level=\"3\"]) .mg-menu-item__collapse-container{z-index:calc(3 * 10)}:host([data-style-direction-vertical][data-level=\"4\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding-left:calc(4 * 4rem - 0.3rem)}:host([data-level=\"4\"]) .mg-menu-item__collapse-container{z-index:calc(4 * 10)}:host([data-style-direction-vertical][data-level=\"5\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding-left:calc(5 * 4rem - 0.3rem)}:host([data-level=\"5\"]) .mg-menu-item__collapse-container{z-index:calc(5 * 10)}:host([data-style-direction-vertical][data-level=\"6\"]) .mg-menu-item__navigation-button.mg-menu-item__navigation-button--size-large{padding-left:calc(6 * 4rem - 0.3rem)}:host([data-level=\"6\"]) .mg-menu-item__collapse-container{z-index:calc(6 * 10)}:host{position:relative;display:flex;--mg-popover-padding-vertical:0;--mg-popover-padding-horizontal:0;--mg-popover-max-width:unset}:host([data-style-direction-vertical]){flex-direction:column}:host([data-style-direction-vertical]) .mg-menu-item__navigation-button{width:100%}:host([data-style-direction-vertical]) .mg-menu-item__collapse-container{left:unset;top:unset;position:unset;width:unset}:host([data-style-direction-vertical]) .mg-menu-item-chevron{margin-left:auto}:host([data-style-direction-horizontal]) .mg-menu-item__collapse-container.mg-menu-item__collapse-container--first-level,:host([data-overflow-more]) .mg-menu-item__collapse-container.mg-menu-item__collapse-container--first-level{background-color:hsl(var(--color-light))}:host([data-style-direction-horizontal]) .mg-menu-item__collapse-container.mg-menu-item__collapse-container--first-level ::slotted(mg-menu),:host([data-overflow-more]) .mg-menu-item__collapse-container.mg-menu-item__collapse-container--first-level ::slotted(mg-menu){padding:1rem 0}:host([data-overflow-more]){--mg-menu-item-navigation-button-column-gap:0}:host([data-overflow-more]) .mg-menu-item__navigation-button-chevron{display:none}:host([data-overflow-more]) .mg-menu-item__navigation-button-text-content ::slotted([slot=information]){margin-left:0}:host([data-overflow-more]) ::slotted(mg-menu){--mg-menu-item-navigation-button-column-gap:1rem}.mg-menu-item{max-width:var(--mg-menu-item-navigation-button-max-width)}.mg-menu-item__collapse-container{width:max-content;z-index:10}.mg-menu-item__navigation-button-center{min-width:0}.mg-menu-item__navigation-button-text-content{width:100%;display:flex;align-items:center}.mg-menu-item__navigation-button-text-content-notification,.mg-menu-item__navigation-button-text-content ::slotted([slot=information]){margin-left:1rem;font-size:var(--font-size)}.mg-menu-item__navigation-button-chevron{margin-left:auto;transition:200ms}.mg-menu-item__navigation-button-chevron--rotate.mg-menu-item__navigation-button-chevron{transform:rotate(180deg)}::slotted([slot=label]),::slotted([slot=metadata]){display:block;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::slotted(*){display:flex;flex-direction:column}:host([status=disabled]){pointer-events:none}:host([hidden]){display:none}";
|
|
3964
|
+
const mgMenuItemCss = ".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}}.mg-c-menu-item.mg-c-menu-item--size-regular .mg-c-menu-item__navigation-button,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{height:3.8rem;padding:1rem 2rem}.mg-c-menu-item.mg-c-menu-item--size-regular .mg-c-menu-item__navigation-button,.mg-c-menu-item.mg-c-menu-item--size-regular .mg-c-menu-item__navigation-button ::slotted([slot=label]),.mg-c-menu-item.mg-c-menu-item--size-regular .mg-c-menu-item__navigation-button ::slotted([slot=metadata]),.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular ::slotted([slot=label]),.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular ::slotted([slot=metadata]){font-size:var(--font-size)}.mg-c-menu-item.mg-c-menu-item--size-regular .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--horizontal,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular.mg-c-menu-item__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-c-menu-item.mg-c-menu-item--size-regular .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--vertical,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular.mg-c-menu-item__navigation-button--vertical{padding-left:calc(2rem - 0.3rem)}.mg-c-menu-item.mg-c-menu-item--size-medium .mg-c-menu-item__navigation-button,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{height:5.1rem;padding:1rem 3rem}.mg-c-menu-item.mg-c-menu-item--size-medium .mg-c-menu-item__navigation-button,.mg-c-menu-item.mg-c-menu-item--size-medium .mg-c-menu-item__navigation-button ::slotted([slot=label]),.mg-c-menu-item.mg-c-menu-item--size-medium .mg-c-menu-item__navigation-button ::slotted([slot=metadata]),.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium ::slotted([slot=label]),.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium ::slotted([slot=metadata]){font-size:calc(var(--font-size) + .2rem)}.mg-c-menu-item.mg-c-menu-item--size-medium .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--horizontal,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium.mg-c-menu-item__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-c-menu-item.mg-c-menu-item--size-medium .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--vertical,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium.mg-c-menu-item__navigation-button--vertical{padding-left:calc(3rem - 0.3rem)}.mg-c-menu-item.mg-c-menu-item--size-large .mg-c-menu-item__navigation-button,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{height:7.1rem;padding:1rem 4rem}.mg-c-menu-item.mg-c-menu-item--size-large .mg-c-menu-item__navigation-button,.mg-c-menu-item.mg-c-menu-item--size-large .mg-c-menu-item__navigation-button ::slotted([slot=label]),.mg-c-menu-item.mg-c-menu-item--size-large .mg-c-menu-item__navigation-button ::slotted([slot=metadata]),.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large ::slotted([slot=label]),.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large ::slotted([slot=metadata]){font-size:calc(var(--font-size) + .2rem)}.mg-c-menu-item.mg-c-menu-item--size-large .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--horizontal,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large.mg-c-menu-item__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-c-menu-item.mg-c-menu-item--size-large .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--vertical,.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large.mg-c-menu-item__navigation-button--vertical{padding-left:calc(4rem - 0.3rem)}.mg-c-menu-item__navigation-button{display:flex;box-sizing:border-box;align-items:center;border:none;background-color:unset;color:hsl(var(--mg-menu-item-color-hsl, var(--color-dark)));column-gap:var(--mg-menu-item-navigation-button-column-gap, 1rem);cursor:pointer;font-family:var(--font-family);font-weight:400;line-height:var(--line-height);text-decoration:none;white-space:nowrap}.mg-c-menu-item__navigation-button:disabled,.mg-c-menu-item__navigation-button--disabled{cursor:default;opacity:var(--mg-disabled-opacity)}.mg-c-menu-item__navigation-button:focus-visible{z-index:10}.mg-c-menu-item__navigation-button:hover:not(.mg-c-menu-item__navigation-button--disabled),.mg-c-menu-item__navigation-button:focus-visible:not(.mg-c-menu-item__navigation-button--disabled){background-color:hsl(var(--mg-menu-item-focused-background-color-hsl)/10%)}.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--active{color:hsl(var(--mg-menu-item-color-active-hsl));font-weight:600}.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--active.mg-c-menu-item__navigation-button--horizontal{border-bottom-color:hsl(var(--mg-menu-item-border-color-active-hsl))}.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--active.mg-c-menu-item__navigation-button--vertical{border-left-color:hsl(var(--mg-menu-item-border-color-active-hsl))}.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--hidden{display:none}.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--horizontal{border-bottom:.3rem solid rgba(0,0,0,0)}.mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--vertical{border-left:.3rem solid rgba(0,0,0,0)}:host([data-style-direction-vertical][data-level=\"1\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{padding-left:calc(1 * 2rem - 0.3rem)}:host([data-level=\"1\"]) .mg-c-menu-item__collapse-container{z-index:calc(1 * 10)}:host([data-style-direction-vertical][data-level=\"2\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{padding-left:calc(2 * 2rem - 0.3rem)}:host([data-level=\"2\"]) .mg-c-menu-item__collapse-container{z-index:calc(2 * 10)}:host([data-style-direction-vertical][data-level=\"3\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{padding-left:calc(3 * 2rem - 0.3rem)}:host([data-level=\"3\"]) .mg-c-menu-item__collapse-container{z-index:calc(3 * 10)}:host([data-style-direction-vertical][data-level=\"4\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{padding-left:calc(4 * 2rem - 0.3rem)}:host([data-level=\"4\"]) .mg-c-menu-item__collapse-container{z-index:calc(4 * 10)}:host([data-style-direction-vertical][data-level=\"5\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{padding-left:calc(5 * 2rem - 0.3rem)}:host([data-level=\"5\"]) .mg-c-menu-item__collapse-container{z-index:calc(5 * 10)}:host([data-style-direction-vertical][data-level=\"6\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-regular{padding-left:calc(6 * 2rem - 0.3rem)}:host([data-level=\"6\"]) .mg-c-menu-item__collapse-container{z-index:calc(6 * 10)}:host([data-style-direction-vertical][data-level=\"1\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{padding-left:calc(1 * 3rem - 0.3rem)}:host([data-level=\"1\"]) .mg-c-menu-item__collapse-container{z-index:calc(1 * 10)}:host([data-style-direction-vertical][data-level=\"2\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{padding-left:calc(2 * 3rem - 0.3rem)}:host([data-level=\"2\"]) .mg-c-menu-item__collapse-container{z-index:calc(2 * 10)}:host([data-style-direction-vertical][data-level=\"3\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{padding-left:calc(3 * 3rem - 0.3rem)}:host([data-level=\"3\"]) .mg-c-menu-item__collapse-container{z-index:calc(3 * 10)}:host([data-style-direction-vertical][data-level=\"4\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{padding-left:calc(4 * 3rem - 0.3rem)}:host([data-level=\"4\"]) .mg-c-menu-item__collapse-container{z-index:calc(4 * 10)}:host([data-style-direction-vertical][data-level=\"5\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{padding-left:calc(5 * 3rem - 0.3rem)}:host([data-level=\"5\"]) .mg-c-menu-item__collapse-container{z-index:calc(5 * 10)}:host([data-style-direction-vertical][data-level=\"6\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-medium{padding-left:calc(6 * 3rem - 0.3rem)}:host([data-level=\"6\"]) .mg-c-menu-item__collapse-container{z-index:calc(6 * 10)}:host([data-style-direction-vertical][data-level=\"1\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{padding-left:calc(1 * 4rem - 0.3rem)}:host([data-level=\"1\"]) .mg-c-menu-item__collapse-container{z-index:calc(1 * 10)}:host([data-style-direction-vertical][data-level=\"2\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{padding-left:calc(2 * 4rem - 0.3rem)}:host([data-level=\"2\"]) .mg-c-menu-item__collapse-container{z-index:calc(2 * 10)}:host([data-style-direction-vertical][data-level=\"3\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{padding-left:calc(3 * 4rem - 0.3rem)}:host([data-level=\"3\"]) .mg-c-menu-item__collapse-container{z-index:calc(3 * 10)}:host([data-style-direction-vertical][data-level=\"4\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{padding-left:calc(4 * 4rem - 0.3rem)}:host([data-level=\"4\"]) .mg-c-menu-item__collapse-container{z-index:calc(4 * 10)}:host([data-style-direction-vertical][data-level=\"5\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{padding-left:calc(5 * 4rem - 0.3rem)}:host([data-level=\"5\"]) .mg-c-menu-item__collapse-container{z-index:calc(5 * 10)}:host([data-style-direction-vertical][data-level=\"6\"]) .mg-c-menu-item__navigation-button.mg-c-menu-item__navigation-button--size-large{padding-left:calc(6 * 4rem - 0.3rem)}:host([data-level=\"6\"]) .mg-c-menu-item__collapse-container{z-index:calc(6 * 10)}.mg-c-menu-item{max-width:var(--mg-menu-item-navigation-button-max-width)}.mg-c-menu-item__collapse-container{z-index:10;width:max-content}.mg-c-menu-item__navigation-button-center{min-width:0}.mg-c-menu-item__navigation-button-text-content{display:flex;width:100%;align-items:center}.mg-c-menu-item__navigation-button-text-content-notification,.mg-c-menu-item__navigation-button-text-content ::slotted([slot=information]){margin-left:1rem;font-size:var(--font-size)}.mg-c-menu-item__navigation-button-chevron{margin-left:auto;transition:200ms}.mg-c-menu-item__navigation-button-chevron--rotate.mg-c-menu-item__navigation-button-chevron{transform:rotate(180deg)}:host{position:relative;display:flex;--mg-popover-padding-vertical:0;--mg-popover-padding-horizontal:0;--mg-popover-max-width:unset}:host([data-style-direction-vertical]){flex-direction:column}:host([data-style-direction-vertical]) .mg-c-menu-item__navigation-button{width:100%}:host([data-style-direction-vertical]) .mg-c-menu-item__collapse-container{position:unset;top:unset;left:unset;width:unset}:host([data-style-direction-vertical]) .mg-c-menu-item-chevron{margin-left:auto}:host([data-overflow-more]){--mg-menu-item-navigation-button-column-gap:0}:host([data-overflow-more]) .mg-c-menu-item__navigation-button-chevron{display:none}:host([data-overflow-more]) .mg-c-menu-item__navigation-button-text-content ::slotted([slot=information]){margin-left:0}:host([data-overflow-more]) ::slotted(mg-menu){--mg-menu-item-navigation-button-column-gap:1rem}:host([data-style-direction-horizontal]) .mg-c-menu-item__collapse-container.mg-c-menu-item__collapse-container--first-level,:host([data-overflow-more]) .mg-c-menu-item__collapse-container.mg-c-menu-item__collapse-container--first-level{background-color:hsl(var(--color-light))}:host([data-style-direction-horizontal]) .mg-c-menu-item__collapse-container.mg-c-menu-item__collapse-container--first-level ::slotted(mg-menu),:host([data-overflow-more]) .mg-c-menu-item__collapse-container.mg-c-menu-item__collapse-container--first-level ::slotted(mg-menu){padding:1rem 0}::slotted([slot=label]),::slotted([slot=metadata]){display:block;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}::slotted(*){display:flex;flex-direction:column}:host([status=disabled]){pointer-events:none}:host([hidden]){display:none}";
|
|
3819
3965
|
|
|
3820
3966
|
const MgMenuItem = class {
|
|
3821
3967
|
constructor(hostRef) {
|
|
@@ -3826,7 +3972,7 @@ const MgMenuItem = class {
|
|
|
3826
3972
|
* Internal *
|
|
3827
3973
|
************/
|
|
3828
3974
|
this.name = 'mg-menu-item';
|
|
3829
|
-
this.navigationButton =
|
|
3975
|
+
this.navigationButton = 'mg-c-menu-item__navigation-button';
|
|
3830
3976
|
/***********
|
|
3831
3977
|
* Methods *
|
|
3832
3978
|
**********/
|
|
@@ -3879,7 +4025,7 @@ const MgMenuItem = class {
|
|
|
3879
4025
|
throw new Error(`<${this.name}> slot "label" is required.`);
|
|
3880
4026
|
['label', 'metadata'].forEach(slot => {
|
|
3881
4027
|
Array.from(this.element.querySelectorAll(`[slot="${slot}"]`)).forEach(element => {
|
|
3882
|
-
if (element.textContent
|
|
4028
|
+
if (!components_utils.isValidString(element.textContent))
|
|
3883
4029
|
throw new Error(`<${this.name}> slot "${slot}" must have text content.`);
|
|
3884
4030
|
if ((guard && element.getAttribute('title') === null) || !guard)
|
|
3885
4031
|
element.setAttribute('title', element.textContent);
|
|
@@ -3919,7 +4065,7 @@ const MgMenuItem = class {
|
|
|
3919
4065
|
* Condition to know if component should display a mg-popover
|
|
3920
4066
|
* @returns truthy if component display popover
|
|
3921
4067
|
*/
|
|
3922
|
-
this.displayPopover = () => this.isDirection(
|
|
4068
|
+
this.displayPopover = () => this.isDirection(components_utils.Direction.HORIZONTAL) && this.hasChildren && this.href === undefined;
|
|
3923
4069
|
/************
|
|
3924
4070
|
* Handlers *
|
|
3925
4071
|
************/
|
|
@@ -3948,12 +4094,12 @@ const MgMenuItem = class {
|
|
|
3948
4094
|
* @returns HTML Element
|
|
3949
4095
|
*/
|
|
3950
4096
|
this.renderSlot = () => index.h("slot", null);
|
|
3951
|
-
this.identifier = createID('mg-menu-item');
|
|
4097
|
+
this.identifier = components_utils.createID('mg-menu-item');
|
|
3952
4098
|
this.href = undefined;
|
|
3953
4099
|
this.status = Status$1.VISIBLE;
|
|
3954
4100
|
this.expanded = false;
|
|
3955
4101
|
this.size = 'regular';
|
|
3956
|
-
this.navigationButtonClassList = new ClassList([this.navigationButton]);
|
|
4102
|
+
this.navigationButtonClassList = new components_utils.ClassList([this.navigationButton]);
|
|
3957
4103
|
this.direction = undefined;
|
|
3958
4104
|
this.isInMainMenu = undefined;
|
|
3959
4105
|
this.isItemMore = undefined;
|
|
@@ -3998,7 +4144,7 @@ const MgMenuItem = class {
|
|
|
3998
4144
|
this.element.setAttribute(`data-style-direction-${newValue}`, '');
|
|
3999
4145
|
this.navigationButtonClassList.add(`${this.navigationButton}--${newValue}`);
|
|
4000
4146
|
// manage all sub levels child menu-items level with data-level attribut
|
|
4001
|
-
if (this.isDirection(
|
|
4147
|
+
if (this.isDirection(components_utils.Direction.VERTICAL, newValue)) {
|
|
4002
4148
|
Array.from(this.element.querySelectorAll('mg-menu-item')).forEach(item => {
|
|
4003
4149
|
item.dataset.level = `${(Number(item.dataset.level) || 1) + 1}`;
|
|
4004
4150
|
});
|
|
@@ -4028,7 +4174,7 @@ const MgMenuItem = class {
|
|
|
4028
4174
|
// has children items that is NOT [slot='image' | 'information' | 'label' | 'metadata'] element
|
|
4029
4175
|
// we store only matching elements
|
|
4030
4176
|
this.hasChildren = Array.from(this.element.children).some(child => !['image', 'information', 'label', 'metadata'].includes(child.getAttribute('slot')));
|
|
4031
|
-
this.badgeLabel =
|
|
4177
|
+
this.badgeLabel = components_utils.initLocales(this.element).messages.plusMenu.badgeLabel;
|
|
4032
4178
|
this.isItemMore = this.element.dataset.overflowMore !== undefined;
|
|
4033
4179
|
// Validate props
|
|
4034
4180
|
this.validateStatus(this.status);
|
|
@@ -4049,7 +4195,7 @@ const MgMenuItem = class {
|
|
|
4049
4195
|
return setTimeout(() => {
|
|
4050
4196
|
// define menu-item context states
|
|
4051
4197
|
const menu = this.element.closest('mg-menu');
|
|
4052
|
-
this.direction = this.isItemMore || menu === null ?
|
|
4198
|
+
this.direction = this.isItemMore || menu === null ? components_utils.Direction.HORIZONTAL : menu.direction;
|
|
4053
4199
|
this.isInMainMenu = menu !== null && this.element.parentElement.closest('mg-menu-item') === null;
|
|
4054
4200
|
if ((menu === null || menu === void 0 ? void 0 : menu.size) !== undefined)
|
|
4055
4201
|
this.size = menu.size;
|
|
@@ -4058,7 +4204,7 @@ const MgMenuItem = class {
|
|
|
4058
4204
|
// when main menu item contain an active item it will get the active style
|
|
4059
4205
|
// AND if item is in vertical menu it will be expanded
|
|
4060
4206
|
if (this.hasActiveChild() && this.isInMainMenu)
|
|
4061
|
-
this.expanded = this.isDirection(
|
|
4207
|
+
this.expanded = this.isDirection(components_utils.Direction.VERTICAL);
|
|
4062
4208
|
this.updateStatus([Status$1.ACTIVE]);
|
|
4063
4209
|
this.updateDisplayNotificationBadge();
|
|
4064
4210
|
this.updatePopoverGuard();
|
|
@@ -4081,10 +4227,9 @@ const MgMenuItem = class {
|
|
|
4081
4227
|
*/
|
|
4082
4228
|
renderInteractiveElement() {
|
|
4083
4229
|
const TagName = this.href !== undefined ? 'a' : 'button';
|
|
4084
|
-
return (index.h(TagName, { href: this.href, class: this.navigationButtonClassList.join(), tabindex: [Status$1.DISABLED, Status$1.HIDDEN].includes(this.status) ? -1 : undefined, disabled: this.status === Status$1.DISABLED, hidden: this.status === Status$1.HIDDEN, "aria-expanded": this.hasChildren && this.expanded.toString(), "aria-current": this.status === Status$1.ACTIVE && 'page', onClick: this.handleElementCLick }, index.h("slot", { name: "image" }), index.h("div", { class: `${this.navigationButton}-center` }, index.h("div", { class: `${this.navigationButton}-text-content` }, index.h("slot", { name: "label" }), !this.displayNotificationBadge && index.h("slot", { name: "information" }), this.displayNotificationBadge && (index.h("span", { class:
|
|
4230
|
+
return (index.h(TagName, { href: this.href, class: this.navigationButtonClassList.join(), tabindex: [Status$1.DISABLED, Status$1.HIDDEN].includes(this.status) ? -1 : undefined, disabled: this.status === Status$1.DISABLED, hidden: this.status === Status$1.HIDDEN, "aria-expanded": this.hasChildren && this.expanded.toString(), "aria-current": this.status === Status$1.ACTIVE && 'page', onClick: this.handleElementCLick }, index.h("slot", { name: "image" }), index.h("div", { class: `${this.navigationButton}-center` }, index.h("div", { class: `${this.navigationButton}-text-content` }, index.h("slot", { name: "label" }), !this.displayNotificationBadge && index.h("slot", { name: "information" }), this.displayNotificationBadge && (index.h("span", { class: `${this.navigationButton}-text-content-notification` }, index.h("mg-badge", { label: this.badgeLabel, value: "!", variant: "text-color", slot: "information" })))), this.size !== 'regular' && index.h("slot", { name: "metadata" })), this.hasChildren && this.href === undefined && (index.h("span", { class: {
|
|
4085
4231
|
[`${this.navigationButton}-chevron`]: true,
|
|
4086
4232
|
[`${this.navigationButton}-chevron--rotate`]: this.expanded === true,
|
|
4087
|
-
'mg-a11y-animation': true,
|
|
4088
4233
|
} }, index.h("mg-icon", { icon: "chevron-down", size: "small" })))));
|
|
4089
4234
|
}
|
|
4090
4235
|
/**
|
|
@@ -4093,8 +4238,8 @@ const MgMenuItem = class {
|
|
|
4093
4238
|
*/
|
|
4094
4239
|
render() {
|
|
4095
4240
|
const getContainerClasses = () => ({
|
|
4096
|
-
[
|
|
4097
|
-
[
|
|
4241
|
+
['mg-c-menu-item__collapse-container']: true,
|
|
4242
|
+
['mg-c-menu-item__collapse-container--first-level']: (this.isInMainMenu || this.isItemMore) && this.isDirection(components_utils.Direction.HORIZONTAL),
|
|
4098
4243
|
});
|
|
4099
4244
|
return (index.h(index.Host, { role: this.isItemMore ? 'presentation' : 'listitem' }, this.displayPopover() ? (index.h("mg-popover", { display: this.expanded, placement: "bottom-start", arrowHide: true, "onDisplay-change": this.handlePopoverDisplay, identifier: this.getPopoverIdentifier() }, this.renderInteractiveElement(), index.h("div", { class: getContainerClasses(), slot: "content" }, this.renderSlot()))) : ([
|
|
4100
4245
|
this.renderInteractiveElement(),
|
|
@@ -4117,7 +4262,7 @@ MgMenuItem.style = mgMenuItemCss;
|
|
|
4117
4262
|
*/
|
|
4118
4263
|
const variants$1 = ['info', 'warning', 'success', 'danger'];
|
|
4119
4264
|
|
|
4120
|
-
const mgMessageCss = ":host{--mg-card-padding:0;--mg-card-border-radius:var(--mg-message-border-radius);--mg-card-border:none;--mg-card-overflow:hidden}:host([hide]){display:none}.mg-message{display:inline-block;min-height:var(--default-size)}.mg-message.mg-message--info .mg-message__icon{color:hsl(var(--color-info))}.mg-message.mg-message--warning .mg-message__icon{color:hsl(var(--color-warning))}.mg-message.mg-message--success .mg-message__icon{color:hsl(var(--color-success))}.mg-message.mg-message--danger .mg-message__icon{color:hsl(var(--color-danger))}.mg-message.mg-message--close-button{--mg-card-padding:0 3.4rem 0 0}.mg-message.mg-message--hide{display:none}.mg-message ::slotted(*){
|
|
4265
|
+
const mgMessageCss = ":host{--mg-card-padding:0;--mg-card-border-radius:var(--mg-message-border-radius);--mg-card-border:none;--mg-card-overflow:hidden}:host([hide]){display:none}.mg-c-message{display:inline-block;min-height:var(--default-size)}.mg-c-message.mg-c-message--info .mg-c-message__icon{color:hsl(var(--color-info))}.mg-c-message.mg-c-message--warning .mg-c-message__icon{color:hsl(var(--color-warning))}.mg-c-message.mg-c-message--success .mg-c-message__icon{color:hsl(var(--color-success))}.mg-c-message.mg-c-message--danger .mg-c-message__icon{color:hsl(var(--color-danger))}.mg-c-message.mg-c-message--close-button{--mg-card-padding:0 3.4rem 0 0}.mg-c-message.mg-c-message--hide{display:none}.mg-c-message ::slotted(*){padding:0;margin:0}.mg-c-message__icon{position:absolute;top:calc((var(--default-size) - var(--mg-icon-regular-size))/2);left:1.3rem;line-height:1}.mg-c-message__content{display:flex;flex-wrap:wrap;align-content:stretch;justify-content:flex-end;padding:0 1rem 0 3.8rem}.mg-c-message__content-slot{flex-grow:1;margin:.84rem 0}.mg-c-message__content-separator{display:inline-block;width:4.5rem;height:0}.mg-c-message__content-actions-slot{padding:1rem 0;text-align:right}.mg-c-message__close-button{position:absolute;top:0;right:0}.mg-c-message ::slotted(*){--mg-card-border:var(--mg-card-border-default);--mg-card-padding:var(--mg-card-padding-default);--mg-card-border-radius:var(--mg-card-border-radius-default);--mg-card-background:var(--mg-card-background-default);--mg-card-box-shadow:var(--mg-card-box-shadow-default);--mg-card-max-width:unset;--mg-card-min-width:unset}.mg-c-message,.mg-c-message mg-message{max-width:100%}";
|
|
4121
4266
|
|
|
4122
4267
|
const MgMessage = class {
|
|
4123
4268
|
constructor(hostRef) {
|
|
@@ -4128,7 +4273,7 @@ const MgMessage = class {
|
|
|
4128
4273
|
* Internal *
|
|
4129
4274
|
************/
|
|
4130
4275
|
// Classes
|
|
4131
|
-
this.classHide = 'mg-message--hide';
|
|
4276
|
+
this.classHide = 'mg-c-message--hide';
|
|
4132
4277
|
// IDs
|
|
4133
4278
|
this.closeButtonId = '';
|
|
4134
4279
|
// Stored timer setted when hide action is run from setTimeOut
|
|
@@ -4187,12 +4332,12 @@ const MgMessage = class {
|
|
|
4187
4332
|
return 'exclamation-circle';
|
|
4188
4333
|
}
|
|
4189
4334
|
};
|
|
4190
|
-
this.identifier = createID('mg-message');
|
|
4335
|
+
this.identifier = components_utils.createID('mg-message');
|
|
4191
4336
|
this.delay = undefined;
|
|
4192
4337
|
this.variant = variants$1[0];
|
|
4193
4338
|
this.closeButton = false;
|
|
4194
4339
|
this.hide = false;
|
|
4195
|
-
this.classCollection = new ClassList(['mg-message']);
|
|
4340
|
+
this.classCollection = new components_utils.ClassList(['mg-c-message']);
|
|
4196
4341
|
this.hasActions = false;
|
|
4197
4342
|
}
|
|
4198
4343
|
validateDelay(newValue) {
|
|
@@ -4206,9 +4351,9 @@ const MgMessage = class {
|
|
|
4206
4351
|
}
|
|
4207
4352
|
else {
|
|
4208
4353
|
if (oldValue !== undefined) {
|
|
4209
|
-
this.classCollection.delete(`mg-message--${oldValue}`);
|
|
4354
|
+
this.classCollection.delete(`mg-c-message--${oldValue}`);
|
|
4210
4355
|
}
|
|
4211
|
-
this.classCollection.add(`mg-message--${newValue}`);
|
|
4356
|
+
this.classCollection.add(`mg-c-message--${newValue}`);
|
|
4212
4357
|
}
|
|
4213
4358
|
}
|
|
4214
4359
|
validateCloseButton(newValue) {
|
|
@@ -4250,14 +4395,14 @@ const MgMessage = class {
|
|
|
4250
4395
|
*/
|
|
4251
4396
|
componentWillLoad() {
|
|
4252
4397
|
// Get locales
|
|
4253
|
-
this.messages =
|
|
4398
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
4254
4399
|
// Validate
|
|
4255
4400
|
this.validateVariant(this.variant);
|
|
4256
4401
|
// Check if close button is an can be activated
|
|
4257
4402
|
this.hasActions = this.element.querySelector('[slot="actions"]') !== null;
|
|
4258
4403
|
this.validateCloseButton(this.closeButton);
|
|
4259
4404
|
if (this.closeButton) {
|
|
4260
|
-
this.classCollection.add('mg-message--close-button');
|
|
4405
|
+
this.classCollection.add('mg-c-message--close-button');
|
|
4261
4406
|
this.closeButtonId = `${this.identifier}-close-button`;
|
|
4262
4407
|
}
|
|
4263
4408
|
this.validateDelay(this.delay);
|
|
@@ -4268,7 +4413,7 @@ const MgMessage = class {
|
|
|
4268
4413
|
* @returns HTML Element
|
|
4269
4414
|
*/
|
|
4270
4415
|
render() {
|
|
4271
|
-
return (index.h("div", { id: this.identifier, class: this.classCollection.join(), role: this.variant === 'info' ? 'status' : 'alert' }, index.h("mg-card", { variant: this.variant, "variant-style": "bar-left" }, index.h("span", { class: "mg-message__icon" }, index.h("mg-icon", { icon: this.getIcon() })), index.h("div", { class: "mg-message__content" }, index.h("span", { class: "mg-message__content-slot" }, index.h("slot", null)), this.hasActions && index.h("span", { class: "mg-message__content-separator" }), this.hasActions && (index.h("span", { class: "mg-message__content-actions-slot" }, index.h("slot", { name: "actions" })))), this.closeButton && (index.h("span", { class: "mg-message__close-button" }, index.h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: this.messages.message.closeButton, onClick: this.handleClose }, index.h("mg-icon", { icon: "cross" })))))));
|
|
4416
|
+
return (index.h("div", { id: this.identifier, class: this.classCollection.join(), role: this.variant === 'info' ? 'status' : 'alert' }, index.h("mg-card", { variant: this.variant, "variant-style": "bar-left" }, index.h("span", { class: "mg-c-message__icon" }, index.h("mg-icon", { icon: this.getIcon() })), index.h("div", { class: "mg-c-message__content" }, index.h("span", { class: "mg-c-message__content-slot" }, index.h("slot", null)), this.hasActions && index.h("span", { class: "mg-c-message__content-separator" }), this.hasActions && (index.h("span", { class: "mg-c-message__content-actions-slot" }, index.h("slot", { name: "actions" })))), this.closeButton && (index.h("span", { class: "mg-c-message__close-button" }, index.h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: this.messages.message.closeButton, onClick: this.handleClose }, index.h("mg-icon", { icon: "cross" })))))));
|
|
4272
4417
|
}
|
|
4273
4418
|
get element() { return index.getElement(this); }
|
|
4274
4419
|
static get watchers() { return {
|
|
@@ -4285,7 +4430,7 @@ MgMessage.style = mgMessageCss;
|
|
|
4285
4430
|
*/
|
|
4286
4431
|
const dialogRoles = ['dialog', 'alertdialog'];
|
|
4287
4432
|
|
|
4288
|
-
const mgModalCss = ":host{--mg-card-border-radius:var(--mg-modal-border-radius);--mg-card-padding:1.5rem 2.5rem;--mg-card-border:none}.mg-modal{
|
|
4433
|
+
const mgModalCss = ":host{--mg-card-border-radius:var(--mg-modal-border-radius);--mg-card-padding:1.5rem 2.5rem;--mg-card-border:none}.mg-c-modal{position:fixed;z-index:2000;display:flex;align-items:center;justify-content:center;padding:2rem 0;background-color:hsl(var(--color-light)/85%);inset:0}.mg-c-modal mg-card{display:flex;width:60rem;max-width:100%;max-height:100%}.mg-c-modal__dialog{position:relative;display:flex;height:fit-content;max-height:100%;flex-direction:column;align-self:center;row-gap:3rem}.mg-c-modal__header{margin-bottom:.5rem}.mg-c-modal__title{margin:0;font-family:var(--font-family-heading);font-size:var(--mg-modal-title-font-size);font-weight:600}.mg-c-modal__close-button{height:var(--mg-modal-title-font-size);margin-top:calc((var(--default-size) - var(--mg-modal-title-font-size)*var(--line-height))/2*-1);margin-right:calc((var(--default-size) - var(--mg-icon-regular-size))/2*-1);float:right}.mg-c-modal__content{overflow-y:auto}.mg-c-modal__content::slotted(*){font-size:var(--mg-modal-content-font-size)}.mg-c-modal.mg-c-modal--hide{display:none}.mg-c-modal ::slotted(*){--mg-card-border:var(--mg-card-border-default);--mg-card-padding:var(--mg-card-padding-default);--mg-card-border-radius:var(--mg-card-border-radius-default);--mg-card-background:var(--mg-card-background-default);--mg-card-box-shadow:var(--mg-card-box-shadow-default);--mg-card-max-width:unset;--mg-card-min-width:unset}";
|
|
4289
4434
|
|
|
4290
4435
|
const MgModal = class {
|
|
4291
4436
|
constructor(hostRef) {
|
|
@@ -4298,7 +4443,7 @@ const MgModal = class {
|
|
|
4298
4443
|
// Modal focusable elements
|
|
4299
4444
|
this.modalFocusableElements = [];
|
|
4300
4445
|
// Classes
|
|
4301
|
-
this.classHide = 'mg-modal--hide';
|
|
4446
|
+
this.classHide = 'mg-c-modal--hide';
|
|
4302
4447
|
// IDs
|
|
4303
4448
|
this.titleId = '';
|
|
4304
4449
|
/**
|
|
@@ -4331,11 +4476,11 @@ const MgModal = class {
|
|
|
4331
4476
|
*/
|
|
4332
4477
|
this.setFocus = () => {
|
|
4333
4478
|
// Get all focusable elements
|
|
4334
|
-
const allFocusableElements = Array.from(this.element.querySelectorAll(focusableElements));
|
|
4479
|
+
const allFocusableElements = Array.from(this.element.querySelectorAll(components_utils.focusableElements));
|
|
4335
4480
|
// If at least one
|
|
4336
4481
|
if (allFocusableElements.length > 0) {
|
|
4337
4482
|
this.modalFocusableElements = allFocusableElements.reduce((acc, focusableElement) => {
|
|
4338
|
-
acc.push(focusableElement.shadowRoot !== null ? focusableElement.shadowRoot.querySelector(focusableElements) || focusableElement : focusableElement);
|
|
4483
|
+
acc.push(focusableElement.shadowRoot !== null ? focusableElement.shadowRoot.querySelector(components_utils.focusableElements) || focusableElement : focusableElement);
|
|
4339
4484
|
return acc;
|
|
4340
4485
|
}, []);
|
|
4341
4486
|
// When close button is enabled it's the first focusable element.
|
|
@@ -4357,21 +4502,21 @@ const MgModal = class {
|
|
|
4357
4502
|
this.handleClose = () => {
|
|
4358
4503
|
this.hide = true;
|
|
4359
4504
|
};
|
|
4360
|
-
this.identifier = createID('mg-modal');
|
|
4505
|
+
this.identifier = components_utils.createID('mg-modal');
|
|
4361
4506
|
this.dialogRole = dialogRoles[0];
|
|
4362
4507
|
this.modalTitle = undefined;
|
|
4363
4508
|
this.closeButton = false;
|
|
4364
4509
|
this.hide = undefined;
|
|
4365
4510
|
this.hasActions = false;
|
|
4366
4511
|
this.hasContent = false;
|
|
4367
|
-
this.classCollection = new ClassList(['mg-modal']);
|
|
4512
|
+
this.classCollection = new components_utils.ClassList(['mg-c-modal']);
|
|
4368
4513
|
}
|
|
4369
4514
|
validateDialogRole(newValue) {
|
|
4370
4515
|
if (!dialogRoles.includes(newValue))
|
|
4371
4516
|
throw new Error(`<mg-modal> prop "dialogRole" must be one of: ${dialogRoles.join(', ')}.`);
|
|
4372
4517
|
}
|
|
4373
4518
|
validateModalTitle(newValue) {
|
|
4374
|
-
if (
|
|
4519
|
+
if (!components_utils.isValidString(newValue)) {
|
|
4375
4520
|
throw new Error('<mg-modal> prop "modalTitle" is required.');
|
|
4376
4521
|
}
|
|
4377
4522
|
}
|
|
@@ -4413,7 +4558,7 @@ const MgModal = class {
|
|
|
4413
4558
|
// Store body overflow
|
|
4414
4559
|
this.bodyOverflow = document.body.style.overflow;
|
|
4415
4560
|
// Get locales
|
|
4416
|
-
this.messages =
|
|
4561
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
4417
4562
|
// Validate
|
|
4418
4563
|
this.hasActions = this.element.querySelector('[slot="actions"]') !== null;
|
|
4419
4564
|
this.hasContent = this.element.querySelector('[slot="content"]') !== null;
|
|
@@ -4439,14 +4584,14 @@ const MgModal = class {
|
|
|
4439
4584
|
* @returns HTML Element
|
|
4440
4585
|
*/
|
|
4441
4586
|
render() {
|
|
4442
|
-
return (index.h("div", { role: this.dialogRole, id: this.identifier, class: this.classCollection.join(), tabindex: "-1", "aria-labelledby": this.titleId, "aria-modal": "true", "aria-hidden": this.hide }, index.h("mg-card", null, index.h("div", { class: "mg-modal__dialog" }, index.h("header", { class: "mg-modal__header" }, this.closeButton && (index.h("span", { class: "mg-modal__close-button" }, index.h("mg-button", { identifier: `${this.identifier}-close-button`, "is-icon": true, variant: "flat", label: this.messages.modal.closeButton, onClick: this.handleClose, ref: (el) => {
|
|
4587
|
+
return (index.h("div", { role: this.dialogRole, id: this.identifier, class: this.classCollection.join(), tabindex: "-1", "aria-labelledby": this.titleId, "aria-modal": "true", "aria-hidden": this.hide }, index.h("mg-card", null, index.h("div", { class: "mg-c-modal__dialog" }, index.h("header", { class: "mg-c-modal__header" }, this.closeButton && (index.h("span", { class: "mg-c-modal__close-button" }, index.h("mg-button", { identifier: `${this.identifier}-close-button`, "is-icon": true, variant: "flat", label: this.messages.modal.closeButton, onClick: this.handleClose, ref: (el) => {
|
|
4443
4588
|
if (el !== null) {
|
|
4444
4589
|
// store closeButton Element
|
|
4445
4590
|
this.closeButtonElement = el;
|
|
4446
4591
|
// add close button element to modalFocusableElements when it is render
|
|
4447
4592
|
this.modalFocusableElements.unshift(this.closeButtonElement);
|
|
4448
4593
|
}
|
|
4449
|
-
} }, index.h("mg-icon", { icon: "cross" })))), index.h("h1", { class: "mg-modal__title", id: this.titleId }, this.modalTitle)), this.hasContent && (index.h("article", { class: "mg-modal__content" }, index.h("slot", { name: "content" }))), this.hasActions && (index.h("footer", { class: "mg-modal__footer" }, index.h("slot", { name: "actions" })))))));
|
|
4594
|
+
} }, index.h("mg-icon", { icon: "cross" })))), index.h("h1", { class: "mg-c-modal__title", id: this.titleId }, this.modalTitle)), this.hasContent && (index.h("article", { class: "mg-c-modal__content" }, index.h("slot", { name: "content" }))), this.hasActions && (index.h("footer", { class: "mg-c-modal__footer" }, index.h("slot", { name: "actions" })))))));
|
|
4450
4595
|
}
|
|
4451
4596
|
get element() { return index.getElement(this); }
|
|
4452
4597
|
static get watchers() { return {
|
|
@@ -4463,7 +4608,7 @@ var NavigationAction;
|
|
|
4463
4608
|
NavigationAction["PREVIOUS"] = "previous";
|
|
4464
4609
|
})(NavigationAction || (NavigationAction = {}));
|
|
4465
4610
|
|
|
4466
|
-
const mgPaginationCss = ".
|
|
4611
|
+
const mgPaginationCss = ".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}}.mg-c-pagination{display:flex;flex-direction:row;align-items:center}.mg-c-pagination mg-input-select{margin-right:.5rem}.mg-c-pagination mg-button{display:flex}.mg-c-pagination mg-button:first-of-type{margin-right:1rem}.mg-c-pagination mg-button:last-of-type{margin-left:1rem}.mg-c-pagination.mg-c-pagination--hide-page-count mg-button{margin:0}";
|
|
4467
4612
|
|
|
4468
4613
|
/**
|
|
4469
4614
|
* Range generator
|
|
@@ -4517,7 +4662,7 @@ const MgPagination = class {
|
|
|
4517
4662
|
this.handleGoToPage = (action, disabled) => {
|
|
4518
4663
|
!disabled && this.goToPage(action === NavigationAction.NEXT ? this.currentPage + 1 : this.currentPage - 1);
|
|
4519
4664
|
};
|
|
4520
|
-
this.identifier = createID('mg-pagination');
|
|
4665
|
+
this.identifier = components_utils.createID('mg-pagination');
|
|
4521
4666
|
this.label = undefined;
|
|
4522
4667
|
this.hideNavigationLabels = undefined;
|
|
4523
4668
|
this.hidePageCount = undefined;
|
|
@@ -4546,7 +4691,7 @@ const MgPagination = class {
|
|
|
4546
4691
|
*/
|
|
4547
4692
|
componentWillLoad() {
|
|
4548
4693
|
// Get locales
|
|
4549
|
-
this.messages =
|
|
4694
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
4550
4695
|
// Validate
|
|
4551
4696
|
this.validateTotalPages(this.totalPages);
|
|
4552
4697
|
this.validateCurrentPage(this.currentPage);
|
|
@@ -4563,7 +4708,7 @@ const MgPagination = class {
|
|
|
4563
4708
|
const navigationActionButton = (disabled, action) => (index.h("mg-button", { identifier: `${this.identifier}-button-${action}`, label: this.messages.pagination[`${action}Page`],
|
|
4564
4709
|
// eslint-disable-next-line react/jsx-no-bind
|
|
4565
4710
|
onClick: () => this.handleGoToPage(action, disabled), disabled: disabled, variant: "flat", isIcon: this.hideNavigationLabels }, action === NavigationAction.PREVIOUS && index.h("mg-icon", { icon: "chevron-left" }), !this.hideNavigationLabels && this.messages.general[action], action === NavigationAction.NEXT && index.h("mg-icon", { icon: "chevron-right" })));
|
|
4566
|
-
return (index.h(index.Host, { hidden: this.totalPages < 2 }, index.h("nav", { "aria-label": this.label, id: this.identifier, class: { 'mg-pagination': true, 'mg-pagination--hide-page-count': this.hidePageCount } }, navigationActionButton(this.currentPage <= 1, NavigationAction.PREVIOUS), !this.hidePageCount && (index.h("mg-input-select", { identifier: `${this.identifier}-select`, items: range(1, this.totalPages).map(page => page.toString()), label: this.messages.pagination.selectPage, "label-hide": true, "on-value-change": this.handleSelect, value: this.currentPage.toString(), "placeholder-hide": true })), index.h("span", { class: "
|
|
4711
|
+
return (index.h(index.Host, { hidden: this.totalPages < 2 }, index.h("nav", { "aria-label": this.label, id: this.identifier, class: { 'mg-c-pagination': true, 'mg-c-pagination--hide-page-count': this.hidePageCount } }, navigationActionButton(this.currentPage <= 1, NavigationAction.PREVIOUS), !this.hidePageCount && (index.h("mg-input-select", { identifier: `${this.identifier}-select`, items: range(1, this.totalPages).map(page => page.toString()), label: this.messages.pagination.selectPage, "label-hide": true, "on-value-change": this.handleSelect, value: this.currentPage.toString(), "placeholder-hide": true })), index.h("span", { class: "mg-u-visually-hidden" }, this.messages.pagination.page, " ", this.currentPage), index.h("span", { class: { 'mg-u-visually-hidden': this.hidePageCount } }, "/ ", this.totalPages, " ", this.totalPages > 1 ? this.messages.pagination.pages : this.messages.pagination.page), navigationActionButton(this.currentPage >= this.totalPages, NavigationAction.NEXT))));
|
|
4567
4712
|
}
|
|
4568
4713
|
get element() { return index.getElement(this); }
|
|
4569
4714
|
static get watchers() { return {
|
|
@@ -4582,7 +4727,7 @@ const expandToggleDisplays = ['text', 'icon'];
|
|
|
4582
4727
|
*/
|
|
4583
4728
|
const titlePositions = ['left', 'right'];
|
|
4584
4729
|
|
|
4585
|
-
const mgPanelCss = ":host{--mg-card-border:none;--mg-card-padding:0;--mg-card-border-radius:var(--mg-panel-border-radius);--mg-card-background:hsl(var(--mg-panel-background));--mg-card-box-shadow:var(--mg-panel-box-shadow)}.mg-panel__header{display:flex;flex-wrap:wrap;justify-content:space-between;padding:0 1rem 0
|
|
4730
|
+
const mgPanelCss = ":host{--mg-card-border:none;--mg-card-padding:0;--mg-card-border-radius:var(--mg-panel-border-radius);--mg-card-background:hsl(var(--mg-panel-background));--mg-card-box-shadow:var(--mg-panel-box-shadow)}.mg-c-panel__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;padding:0 1rem 0 .3rem}.mg-c-panel__header.mg-c-panel__header--reverse{padding-right:.3rem;padding-left:1rem}.mg-c-panel__header-title,.mg-c-panel__header-content{display:flex;margin:.3rem 0}.mg-c-panel__header-content{min-height:var(--default-size);flex:1 auto;align-items:center;padding-left:.3rem}.mg-c-panel__header-title mg-input-text{flex-grow:1;margin-left:.3rem}.mg-c-panel__header-title mg-button+mg-button:not([slot=append-input]){margin-left:.3rem}.mg-c-panel__header-title.mg-c-panel__header-title--full{flex:1 1 auto}.mg-c-panel__collapse-button-content{--font-size:1.4rem;--mg-button-font-weight:600}.mg-c-panel__collapse-button-icon.mg-c-panel__collapse-button-icon--reverse{transform:rotate(180deg)}.mg-c-panel__content{padding:var(--mg-panel-content-padding)}.mg-c-panel ::slotted([slot=header-right]){display:flex;flex-wrap:wrap;margin-left:auto;gap:1rem}.mg-c-panel ::slotted(*){--mg-card-border:var(--mg-card-border-default);--mg-card-padding:var(--mg-card-padding-default);--mg-card-border-radius:var(--mg-card-border-radius-default);--mg-card-background:var(--mg-card-background-default);--mg-card-box-shadow:var(--mg-card-box-shadow-default);--mg-card-max-width:unset;--mg-card-min-width:unset}";
|
|
4586
4731
|
|
|
4587
4732
|
const MgPanel = class {
|
|
4588
4733
|
constructor(hostRef) {
|
|
@@ -4645,7 +4790,7 @@ const MgPanel = class {
|
|
|
4645
4790
|
* Render collapse button
|
|
4646
4791
|
* @returns collpase button
|
|
4647
4792
|
*/
|
|
4648
|
-
this.renderCollapseButton = () => (index.h("mg-button", { onClick: this.handleCollapseButton, variant: "flat", identifier: `${this.identifier}-collapse-button`, "aria-expanded": this.expanded !== undefined && this.expanded.toString(), "aria-controls": `${this.identifier}-content`, disabled: this.expandToggleDisabled, isIcon: this.expandToggleDisplay === 'icon', label: this.panelTitle }, index.h("span", { class: "mg-panel__collapse-button-content" }, index.h("mg-icon", { icon: "chevron-up", class: { 'mg-panel__collapse-button-icon': true, 'mg-panel__collapse-button-icon--reverse': !this.expanded } }), !this.isEditing && this.expandToggleDisplay !== 'icon' && this.panelTitle)));
|
|
4793
|
+
this.renderCollapseButton = () => (index.h("mg-button", { onClick: this.handleCollapseButton, variant: "flat", identifier: `${this.identifier}-collapse-button`, "aria-expanded": this.expanded !== undefined && this.expanded.toString(), "aria-controls": `${this.identifier}-content`, disabled: this.expandToggleDisabled, isIcon: this.expandToggleDisplay === 'icon', label: this.panelTitle }, index.h("span", { class: "mg-c-panel__collapse-button-content" }, index.h("mg-icon", { icon: "chevron-up", class: { 'mg-c-panel__collapse-button-icon': true, 'mg-c-panel__collapse-button-icon--reverse': !this.expanded } }), !this.isEditing && this.expandToggleDisplay !== 'icon' && this.panelTitle)));
|
|
4649
4794
|
/**
|
|
4650
4795
|
* Render edit button
|
|
4651
4796
|
* @returns edit Button
|
|
@@ -4676,12 +4821,12 @@ const MgPanel = class {
|
|
|
4676
4821
|
*/
|
|
4677
4822
|
this.renderHeaderChildren = () => {
|
|
4678
4823
|
const children = [
|
|
4679
|
-
index.h("div", { class: { 'mg-panel__header-title': true, 'mg-panel__header-title--full': this.isEditing, 'mg-panel__header-title--reverse': this.titlePosition === 'right' }, key: this.panelTitle }, this.renderTitle()),
|
|
4680
|
-
index.h("div", { class: "mg-panel__header-content", key: "slot-header" }, index.h("slot", { name: "header-right" })),
|
|
4824
|
+
index.h("div", { class: { 'mg-c-panel__header-title': true, 'mg-c-panel__header-title--full': this.isEditing, 'mg-c-panel__header-title--reverse': this.titlePosition === 'right' }, key: this.panelTitle }, this.renderTitle()),
|
|
4825
|
+
index.h("div", { class: "mg-c-panel__header-content", key: "slot-header" }, index.h("slot", { name: "header-right" })),
|
|
4681
4826
|
];
|
|
4682
4827
|
return this.titlePosition === 'right' ? children.reverse() : children;
|
|
4683
4828
|
};
|
|
4684
|
-
this.identifier = createID('mg-panel');
|
|
4829
|
+
this.identifier = components_utils.createID('mg-panel');
|
|
4685
4830
|
this.panelTitle = undefined;
|
|
4686
4831
|
this.titlePattern = undefined;
|
|
4687
4832
|
this.titlePatternErrorMessage = undefined;
|
|
@@ -4690,20 +4835,18 @@ const MgPanel = class {
|
|
|
4690
4835
|
this.expanded = false;
|
|
4691
4836
|
this.expandToggleDisplay = expandToggleDisplays[0];
|
|
4692
4837
|
this.expandToggleDisabled = undefined;
|
|
4693
|
-
this.classCollection = new ClassList(['mg-panel']);
|
|
4838
|
+
this.classCollection = new components_utils.ClassList(['mg-c-panel']);
|
|
4694
4839
|
this.isEditing = false;
|
|
4695
4840
|
this.updatedPanelTitle = undefined;
|
|
4696
4841
|
}
|
|
4697
4842
|
validatePanelTitle(newValue) {
|
|
4698
|
-
if (
|
|
4843
|
+
if (!components_utils.isValidString(newValue))
|
|
4699
4844
|
throw new Error('<mg-panel> prop "panelTitle" is required.');
|
|
4700
4845
|
this.titleChange.emit(newValue);
|
|
4701
4846
|
}
|
|
4702
|
-
|
|
4847
|
+
validateTitlePattern(newValue) {
|
|
4703
4848
|
if (newValue !== undefined && !this.titleEditable)
|
|
4704
|
-
throw new Error(
|
|
4705
|
-
if (newValue !== undefined && (this.titlePatternErrorMessage === undefined || this.titlePatternErrorMessage.trim() === ''))
|
|
4706
|
-
throw new Error('<mg-panel> prop "titlePattern" must be paired with the prop "titlePatternErrorMessage".');
|
|
4849
|
+
throw new Error(`<mg-panel> prop "titleEditable" must be set to "true".`);
|
|
4707
4850
|
}
|
|
4708
4851
|
validateTitlePosition(newValue) {
|
|
4709
4852
|
if (!titlePositions.includes(newValue))
|
|
@@ -4726,9 +4869,10 @@ const MgPanel = class {
|
|
|
4726
4869
|
*/
|
|
4727
4870
|
componentWillLoad() {
|
|
4728
4871
|
// Get locales
|
|
4729
|
-
this.messages =
|
|
4872
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
4730
4873
|
// Validate
|
|
4731
|
-
this.
|
|
4874
|
+
this.validateTitlePattern(this.titlePattern);
|
|
4875
|
+
this.validateTitlePattern(this.titlePatternErrorMessage);
|
|
4732
4876
|
this.validatePanelTitle(this.panelTitle);
|
|
4733
4877
|
this.validateExpandToggleDisplay(this.expandToggleDisplay);
|
|
4734
4878
|
this.validateTitlePosition(this.titlePosition);
|
|
@@ -4747,12 +4891,13 @@ const MgPanel = class {
|
|
|
4747
4891
|
*/
|
|
4748
4892
|
render() {
|
|
4749
4893
|
const headerId = `${this.identifier}-header`;
|
|
4750
|
-
return (index.h("section", { class: this.classCollection.join(), id: this.identifier }, index.h("mg-card", null, index.h("header", { class: { 'mg-panel__header': true, 'mg-panel__header--reverse': this.titlePosition === 'right' }, id: headerId }, this.renderHeaderChildren()), index.h("article", { class: "mg-panel__content", id: `${this.identifier}-content`, "aria-labelledby": headerId, hidden: !this.expanded }, index.h("slot", null)))));
|
|
4894
|
+
return (index.h("section", { class: this.classCollection.join(), id: this.identifier }, index.h("mg-card", null, index.h("header", { class: { 'mg-c-panel__header': true, 'mg-c-panel__header--reverse': this.titlePosition === 'right' }, id: headerId }, this.renderHeaderChildren()), index.h("article", { class: "mg-c-panel__content", id: `${this.identifier}-content`, "aria-labelledby": headerId, hidden: !this.expanded }, index.h("slot", null)))));
|
|
4751
4895
|
}
|
|
4752
4896
|
get element() { return index.getElement(this); }
|
|
4753
4897
|
static get watchers() { return {
|
|
4754
4898
|
"panelTitle": ["validatePanelTitle"],
|
|
4755
|
-
"titlePattern": ["
|
|
4899
|
+
"titlePattern": ["validateTitlePattern"],
|
|
4900
|
+
"titlePatternErrorMessage": ["validateTitlePattern"],
|
|
4756
4901
|
"titlePosition": ["validateTitlePosition"],
|
|
4757
4902
|
"expanded": ["handleExpanded"],
|
|
4758
4903
|
"expandToggleDisplay": ["validateExpandToggleDisplay"]
|
|
@@ -6612,29 +6757,39 @@ const MgPopover = class {
|
|
|
6612
6757
|
* Render popover content element
|
|
6613
6758
|
*/
|
|
6614
6759
|
this.renderPopoverContent = () => {
|
|
6615
|
-
|
|
6616
|
-
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
6760
|
+
const mgPopoverContent = this.element.querySelector('mg-popover-content');
|
|
6761
|
+
if (mgPopoverContent === null) {
|
|
6762
|
+
this.mgPopoverContent = document.createElement('mg-popover-content');
|
|
6763
|
+
this.mgPopoverContent.setAttribute('slot', 'content');
|
|
6764
|
+
this.mgPopoverContent.setAttribute('id', this.identifier);
|
|
6765
|
+
this.mgPopoverContent.addEventListener('hide-content', this.handleHideContent);
|
|
6766
|
+
const arrow = document.createElement('div');
|
|
6767
|
+
arrow.setAttribute('slot', 'arrow');
|
|
6768
|
+
arrow.dataset.popperArrow = '';
|
|
6769
|
+
this.mgPopoverContent.appendChild(arrow);
|
|
6770
|
+
// insert elements in DOM
|
|
6771
|
+
['[slot="title"]', '[slot="content"]:not(mg-popover-content)'].forEach(slotType => {
|
|
6772
|
+
Array.from(this.element.querySelectorAll(slotType)).forEach(slot => {
|
|
6773
|
+
this.mgPopoverContent.appendChild(slot);
|
|
6774
|
+
});
|
|
6627
6775
|
});
|
|
6628
|
-
|
|
6629
|
-
|
|
6776
|
+
this.element.appendChild(this.mgPopoverContent);
|
|
6777
|
+
}
|
|
6778
|
+
else {
|
|
6779
|
+
mgPopoverContent.setAttribute('id', this.identifier);
|
|
6780
|
+
}
|
|
6630
6781
|
};
|
|
6631
|
-
this.identifier = createID('mg-popover');
|
|
6782
|
+
this.identifier = components_utils.createID('mg-popover');
|
|
6632
6783
|
this.placement = 'bottom';
|
|
6633
6784
|
this.arrowHide = false;
|
|
6634
6785
|
this.closeButton = false;
|
|
6635
6786
|
this.display = false;
|
|
6636
6787
|
this.disabled = false;
|
|
6637
6788
|
}
|
|
6789
|
+
validateIdentifier() {
|
|
6790
|
+
// use renderPopoverContent to update popover-content id
|
|
6791
|
+
this.renderPopoverContent();
|
|
6792
|
+
}
|
|
6638
6793
|
validateArrowHide(newValue) {
|
|
6639
6794
|
if (newValue)
|
|
6640
6795
|
this.mgPopoverContent.dataset.arrowHide = '';
|
|
@@ -6667,10 +6822,11 @@ const MgPopover = class {
|
|
|
6667
6822
|
*/
|
|
6668
6823
|
componentWillLoad() {
|
|
6669
6824
|
// Get windows to attach events
|
|
6670
|
-
this.windows = getWindows(window);
|
|
6825
|
+
this.windows = components_utils.getWindows(window);
|
|
6671
6826
|
// render mg-popover-content slot
|
|
6672
6827
|
this.renderPopoverContent();
|
|
6673
6828
|
this.validateCloseButton(this.closeButton);
|
|
6829
|
+
this.validateIdentifier();
|
|
6674
6830
|
this.validateArrowHide(this.arrowHide);
|
|
6675
6831
|
}
|
|
6676
6832
|
/**
|
|
@@ -6695,6 +6851,12 @@ const MgPopover = class {
|
|
|
6695
6851
|
offset: [0, 0],
|
|
6696
6852
|
},
|
|
6697
6853
|
},
|
|
6854
|
+
{
|
|
6855
|
+
name: 'flip',
|
|
6856
|
+
options: {
|
|
6857
|
+
fallbackPlacements: ['auto'],
|
|
6858
|
+
},
|
|
6859
|
+
},
|
|
6698
6860
|
],
|
|
6699
6861
|
});
|
|
6700
6862
|
// add resize observer
|
|
@@ -6724,6 +6886,7 @@ const MgPopover = class {
|
|
|
6724
6886
|
}
|
|
6725
6887
|
get element() { return index.getElement(this); }
|
|
6726
6888
|
static get watchers() { return {
|
|
6889
|
+
"identifier": ["validateIdentifier"],
|
|
6727
6890
|
"arrowHide": ["validateArrowHide"],
|
|
6728
6891
|
"closeButton": ["validateCloseButton"],
|
|
6729
6892
|
"display": ["handleDisplay"]
|
|
@@ -6731,7 +6894,7 @@ const MgPopover = class {
|
|
|
6731
6894
|
};
|
|
6732
6895
|
MgPopover.style = mgPopoverCss;
|
|
6733
6896
|
|
|
6734
|
-
const mgPopoverContentCss = ":host{display:none;padding:1rem;
|
|
6897
|
+
const mgPopoverContentCss = ":host{position:relative;z-index:2000;display:none;padding:1rem;color:hsl(var(--mg-popover-font-color))}:host([data-show]){display:block}:host([data-popper-placement^=left-start]),:host([data-popper-placement^=left-end]),:host([data-popper-placement^=right-start]),:host([data-popper-placement^=right-end]){padding:0 1rem}.mg-c-popover-content{--mg-card-max-width:var(--mg-popover-max-width);--mg-card-min-width:var(--mg-popover-min-width)}.mg-c-popover-content mg-button{margin-top:calc(0rem - (var(--default-size) - var(--mg-popover-title-font-size)*var(--line-height))/2);margin-right:calc(0rem - (var(--default-size) - var(--mg-icon-regular-size))/2);margin-left:3rem;float:right}.mg-c-popover-content__title ::slotted([slot=title]){margin:0 0 1rem !important;font-size:var(--mg-popover-title-font-size) !important;font-weight:600 !important}.mg-c-popover-content ::slotted(*){--mg-card-border:var(--mg-card-border-default);--mg-card-padding:var(--mg-card-padding-default);--mg-card-border-radius:var(--mg-card-border-radius-default);--mg-card-background:var(--mg-card-background-default);--mg-card-box-shadow:var(--mg-card-box-shadow-default);--mg-card-max-width:unset;--mg-card-min-width:unset}:host([data-popper-placement^=top][data-arrow-hide]){padding-bottom:0}:host([data-popper-placement^=bottom][data-arrow-hide]){padding-top:0}:host([data-popper-placement$=end][data-arrow-hide]),:host([data-popper-placement^=left][data-arrow-hide]){padding-right:0}:host([data-popper-placement$=start][data-arrow-hide]),:host([data-popper-placement^=right][data-arrow-hide]){padding-left:0}::slotted([slot=arrow]){position:absolute;width:calc(3rem + 2*var(--mg-card-border-radius) + 2rem);height:calc(3rem + 2*var(--mg-card-border-radius) + 2rem);visibility:hidden}::slotted([slot=arrow])::before{position:absolute;content:\"\";visibility:visible}:host([data-arrow-hide]) ::slotted([slot=arrow]){display:none}:host([data-popper-placement^=top]) ::slotted([slot=arrow]),:host([data-popper-placement^=bottom]) ::slotted([slot=arrow]){height:1rem}:host([data-popper-placement^=top]) ::slotted([slot=arrow])::before,:host([data-popper-placement^=bottom]) ::slotted([slot=arrow])::before{left:calc(var(--mg-card-border-radius) + 1rem);border-right:calc(3rem / 2) solid rgba(0,0,0,0);border-left:calc(3rem / 2) solid rgba(0,0,0,0)}:host([data-popper-placement^=top]) ::slotted([slot=arrow]){bottom:.1rem;filter:drop-shadow(0 0.5rem 0.25rem hsl(var(--color-dark)/15%))}:host([data-popper-placement^=top]) ::slotted([slot=arrow])::before{border-top:1rem solid hsl(var(--mg-popover-background-color))}:host([data-popper-placement^=bottom]) ::slotted([slot=arrow]){top:.1rem;filter:drop-shadow(0 -0.5rem 0.25rem hsl(var(--color-dark)/15%))}:host([data-popper-placement^=bottom]) ::slotted([slot=arrow])::before{border-bottom:1rem solid hsl(var(--mg-popover-background-color))}:host([data-popper-placement^=left]) ::slotted([slot=arrow]),:host([data-popper-placement^=right]) ::slotted([slot=arrow]){width:1rem}:host([data-popper-placement^=left]) ::slotted([slot=arrow])::before,:host([data-popper-placement^=right]) ::slotted([slot=arrow])::before{top:calc(var(--mg-card-border-radius) + 1rem);border-top:calc(3rem / 2) solid rgba(0,0,0,0);border-bottom:calc(3rem / 2) solid rgba(0,0,0,0)}:host([data-popper-placement^=left]) ::slotted([slot=arrow]){right:.1rem;filter:drop-shadow(0.5rem 0 0.25rem hsl(var(--color-dark)/15%))}:host([data-popper-placement^=left]) ::slotted([slot=arrow])::before{border-left:1rem solid hsl(var(--mg-popover-background-color))}:host([data-popper-placement^=right]) ::slotted([slot=arrow]){left:.1rem;filter:drop-shadow(-0.5rem 0 0.25rem hsl(var(--color-dark)/15%))}:host([data-popper-placement^=right]) ::slotted([slot=arrow])::before{border-right:1rem solid hsl(var(--mg-popover-background-color))}:host([data-popper-placement^=left-start]) ::slotted([slot=arrow]),:host([data-popper-placement^=left-end]) ::slotted([slot=arrow]),:host([data-popper-placement^=right-start]) ::slotted([slot=arrow]),:host([data-popper-placement^=right-end]) ::slotted([slot=arrow]){height:calc(3rem + 2*var(--mg-card-border-radius))}:host([data-popper-placement^=left-start]) ::slotted([slot=arrow])::before,:host([data-popper-placement^=left-end]) ::slotted([slot=arrow])::before,:host([data-popper-placement^=right-start]) ::slotted([slot=arrow])::before,:host([data-popper-placement^=right-end]) ::slotted([slot=arrow])::before{top:var(--mg-card-border-radius)}";
|
|
6735
6898
|
|
|
6736
6899
|
const MgPopoverContent = class {
|
|
6737
6900
|
constructor(hostRef) {
|
|
@@ -6744,7 +6907,7 @@ const MgPopoverContent = class {
|
|
|
6744
6907
|
this.hideContent.emit();
|
|
6745
6908
|
};
|
|
6746
6909
|
this.closeButton = false;
|
|
6747
|
-
this.classCollection = new ClassList(['mg-popover-content']);
|
|
6910
|
+
this.classCollection = new components_utils.ClassList(['mg-c-popover-content']);
|
|
6748
6911
|
}
|
|
6749
6912
|
/*************
|
|
6750
6913
|
* Lifecycle *
|
|
@@ -6754,7 +6917,7 @@ const MgPopoverContent = class {
|
|
|
6754
6917
|
*/
|
|
6755
6918
|
componentWillLoad() {
|
|
6756
6919
|
// Get locales
|
|
6757
|
-
this.messages =
|
|
6920
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
6758
6921
|
}
|
|
6759
6922
|
/**
|
|
6760
6923
|
* Check if component slots are valide
|
|
@@ -6762,7 +6925,7 @@ const MgPopoverContent = class {
|
|
|
6762
6925
|
componentDidLoad() {
|
|
6763
6926
|
const headingTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
6764
6927
|
const slottedTitleElement = this.element.querySelector('[slot="title"]');
|
|
6765
|
-
if (slottedTitleElement && !isTagName(slottedTitleElement, headingTags)) {
|
|
6928
|
+
if (slottedTitleElement && !components_utils.isTagName(slottedTitleElement, headingTags)) {
|
|
6766
6929
|
throw new Error(`<mg-popover> Slotted title must be a heading: ${headingTags.join(', ')}`);
|
|
6767
6930
|
}
|
|
6768
6931
|
}
|
|
@@ -6771,13 +6934,13 @@ const MgPopoverContent = class {
|
|
|
6771
6934
|
* @returns HTML Element
|
|
6772
6935
|
*/
|
|
6773
6936
|
render() {
|
|
6774
|
-
return (index.h(index.Host, null, index.h("mg-card", { class: this.classCollection.join() }, this.closeButton && (index.h("mg-button", { "is-icon": true, variant: "flat", label: this.messages.general.close, onClick: this.handleCloseButton }, index.h("mg-icon", { icon: "cross" }))), index.h("div", { class: "mg-popover-content__title" }, index.h("slot", { name: "title" })), index.h("slot", { name: "content" })), index.h("slot", { name: "arrow" })));
|
|
6937
|
+
return (index.h(index.Host, null, index.h("mg-card", { class: this.classCollection.join() }, this.closeButton && (index.h("mg-button", { "is-icon": true, variant: "flat", label: this.messages.general.close, onClick: this.handleCloseButton }, index.h("mg-icon", { icon: "cross" }))), index.h("div", { class: "mg-c-popover-content__title" }, index.h("slot", { name: "title" })), index.h("slot", { name: "content" })), index.h("slot", { name: "arrow" })));
|
|
6775
6938
|
}
|
|
6776
6939
|
get element() { return index.getElement(this); }
|
|
6777
6940
|
};
|
|
6778
6941
|
MgPopoverContent.style = mgPopoverContentCss;
|
|
6779
6942
|
|
|
6780
|
-
const mgSkipLinksCss = ".mg-skip-links{position:absolute;
|
|
6943
|
+
const mgSkipLinksCss = ".mg-c-skip-links{position:absolute;background:hsl(var(--color-light));opacity:0;transform:translateY(-100%)}.mg-c-skip-links:focus-within{position:relative;opacity:1;transform:translateY(0)}.mg-c-skip-links__list{display:flex;flex-wrap:wrap;align-items:center;padding:.64rem 1.8rem;margin:0;gap:.6rem;list-style:none}.mg-c-skip-links__link{display:inline-block;padding:1.2rem;color:hsl(var(--color-dark))}.mg-c-skip-links__link:hover{background:hsl(var(--color-dark)/10%)}";
|
|
6781
6944
|
|
|
6782
6945
|
const MgSkipLinks = class {
|
|
6783
6946
|
constructor(hostRef) {
|
|
@@ -6797,9 +6960,7 @@ const MgSkipLinks = class {
|
|
|
6797
6960
|
this.links = undefined;
|
|
6798
6961
|
}
|
|
6799
6962
|
validateLinks(links) {
|
|
6800
|
-
if (links === undefined ||
|
|
6801
|
-
links.length === 0 ||
|
|
6802
|
-
links.some(link => link.href === undefined || !link.href.startsWith('#') || link.label === undefined || link.label.trim() === '')) {
|
|
6963
|
+
if (links === undefined || links.length === 0 || links.some(link => !components_utils.isValidString(link.href) || !link.href.startsWith('#') || !components_utils.isValidString(link.label))) {
|
|
6803
6964
|
throw new Error(`<mg-skip-links> prop "links": Cannot be empty and each link must contains an href starting with a "#" and a non empty label attributes.`);
|
|
6804
6965
|
}
|
|
6805
6966
|
}
|
|
@@ -6811,14 +6972,14 @@ const MgSkipLinks = class {
|
|
|
6811
6972
|
*/
|
|
6812
6973
|
componentWillLoad() {
|
|
6813
6974
|
this.validateLinks(this.links);
|
|
6814
|
-
this.messages =
|
|
6975
|
+
this.messages = components_utils.initLocales(this.element).messages;
|
|
6815
6976
|
}
|
|
6816
6977
|
/**
|
|
6817
6978
|
* Render
|
|
6818
6979
|
* @returns HTML Element
|
|
6819
6980
|
*/
|
|
6820
6981
|
render() {
|
|
6821
|
-
return (index.h("nav", { class: "mg-skip-links", role: "navigation", "aria-label": this.messages.skipLinks.navLabel }, index.h("ul", { class: "mg-skip-links__list", role: "list" }, this.links.map(link => (index.h("li", { key: link.href }, index.h("a", { class: "mg-skip-links__link", href: link.href, onClick: this.handleLinkCLick }, link.label)))))));
|
|
6982
|
+
return (index.h("nav", { class: "mg-c-skip-links", role: "navigation", "aria-label": this.messages.skipLinks.navLabel }, index.h("ul", { class: "mg-c-skip-links__list", role: "list" }, this.links.map(link => (index.h("li", { key: link.href }, index.h("a", { class: "mg-c-skip-links__link", href: link.href, onClick: this.handleLinkCLick }, link.label)))))));
|
|
6822
6983
|
}
|
|
6823
6984
|
get element() { return index.getElement(this); }
|
|
6824
6985
|
static get watchers() { return {
|
|
@@ -6842,7 +7003,7 @@ var Status;
|
|
|
6842
7003
|
*/
|
|
6843
7004
|
const sizes = ['regular', 'large'];
|
|
6844
7005
|
|
|
6845
|
-
const mgTabsCss = ".mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button,.mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular{padding:1rem 2rem}.mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button,.mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button ::slotted([slot=label]),.mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button ::slotted([slot=metadata]),.mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular,.mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular ::slotted([slot=label]),.mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular ::slotted([slot=metadata]){font-size:var(--font-size)}.mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button.mg-tabs__navigation-button--horizontal,.mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular.mg-tabs__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-tabs.mg-tabs--size-regular .mg-tabs__navigation-button.mg-tabs__navigation-button--vertical,.mg-tabs__navigation-button.mg-tabs__navigation-button--size-regular.mg-tabs__navigation-button--vertical{padding-left:calc(2rem - 0.3rem)}.mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button,.mg-tabs__navigation-button.mg-tabs__navigation-button--size-large{padding:1.5rem 3rem}.mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button,.mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button ::slotted([slot=label]),.mg-tabs.mg-tabs--size-large .mg-tabs__navigation-button ::slotted([slot=metadata]),.mg-tabs__navigation-button.mg-tabs__navigation-button--size-large,.mg-tabs__navigation-button.mg-tabs__navigation-button--size-large ::slotted([slot=label]),.mg-tabs__navigation-button.mg-tabs__navigation-button--size-large ::slotted([slot=metadata]){font-size:calc(var(--font-size) +
|
|
7006
|
+
const mgTabsCss = ".mg-c-tabs.mg-c-tabs--size-regular .mg-c-tabs__navigation-button,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-regular{padding:1rem 2rem}.mg-c-tabs.mg-c-tabs--size-regular .mg-c-tabs__navigation-button,.mg-c-tabs.mg-c-tabs--size-regular .mg-c-tabs__navigation-button ::slotted([slot=label]),.mg-c-tabs.mg-c-tabs--size-regular .mg-c-tabs__navigation-button ::slotted([slot=metadata]),.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-regular,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-regular ::slotted([slot=label]),.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-regular ::slotted([slot=metadata]){font-size:var(--font-size)}.mg-c-tabs.mg-c-tabs--size-regular .mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--horizontal,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-regular.mg-c-tabs__navigation-button--horizontal{padding-bottom:calc(1rem - 0.3rem)}.mg-c-tabs.mg-c-tabs--size-regular .mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--vertical,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-regular.mg-c-tabs__navigation-button--vertical{padding-left:calc(2rem - 0.3rem)}.mg-c-tabs.mg-c-tabs--size-large .mg-c-tabs__navigation-button,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-large{padding:1.5rem 3rem}.mg-c-tabs.mg-c-tabs--size-large .mg-c-tabs__navigation-button,.mg-c-tabs.mg-c-tabs--size-large .mg-c-tabs__navigation-button ::slotted([slot=label]),.mg-c-tabs.mg-c-tabs--size-large .mg-c-tabs__navigation-button ::slotted([slot=metadata]),.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-large,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-large ::slotted([slot=label]),.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-large ::slotted([slot=metadata]){font-size:calc(var(--font-size) + .2rem)}.mg-c-tabs.mg-c-tabs--size-large .mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--horizontal,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-large.mg-c-tabs__navigation-button--horizontal{padding-bottom:calc(1.5rem - 0.3rem)}.mg-c-tabs.mg-c-tabs--size-large .mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--vertical,.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--size-large.mg-c-tabs__navigation-button--vertical{padding-left:calc(3rem - 0.3rem)}.mg-c-tabs__navigation-button{display:flex;box-sizing:border-box;align-items:center;border:none;background-color:unset;color:hsl(var(--mg-tabs-color-hsl, var(--color-dark)));column-gap:var(--mg-tabs-navigation-button-column-gap, 1rem);cursor:pointer;font-family:var(--font-family);font-weight:400;line-height:var(--line-height);text-decoration:none;white-space:nowrap}.mg-c-tabs__navigation-button:disabled,.mg-c-tabs__navigation-button--disabled{cursor:default;opacity:var(--mg-disabled-opacity)}.mg-c-tabs__navigation-button:focus-visible{z-index:10}.mg-c-tabs__navigation-button:hover:not(.mg-c-tabs__navigation-button--disabled),.mg-c-tabs__navigation-button:focus-visible:not(.mg-c-tabs__navigation-button--disabled){background-color:hsl(var(--mg-tabs-focused-background-color-hsl)/10%)}.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--active{color:hsl(var(--mg-tabs-color-active-hsl));font-weight:600}.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--active.mg-c-tabs__navigation-button--horizontal{border-bottom-color:hsl(var(--mg-tabs-border-color-active-hsl))}.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--active.mg-c-tabs__navigation-button--vertical{border-left-color:hsl(var(--mg-tabs-border-color-active-hsl))}.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--hidden{display:none}.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--horizontal{border-bottom:.3rem solid rgba(0,0,0,0)}.mg-c-tabs__navigation-button.mg-c-tabs__navigation-button--vertical{border-left:.3rem solid rgba(0,0,0,0)}.mg-c-tabs__header{display:flex;flex-flow:row wrap;border-bottom:var(--mg-tabs-border-bottom)}.mg-c-tabs__content-container:focus-visible{outline:none}.mg-c-tabs__navigation-button-text{flex:0 0 content}";
|
|
6846
7007
|
|
|
6847
7008
|
/**
|
|
6848
7009
|
* type TabItem validation function
|
|
@@ -6859,8 +7020,14 @@ const MgTabs = class {
|
|
|
6859
7020
|
************/
|
|
6860
7021
|
// classes
|
|
6861
7022
|
this.tabPanel = 'panel';
|
|
6862
|
-
this.buttonTabBaseClass = 'mg-tabs__navigation-button';
|
|
7023
|
+
this.buttonTabBaseClass = 'mg-c-tabs__navigation-button';
|
|
6863
7024
|
this.startIndex = 1;
|
|
7025
|
+
/**
|
|
7026
|
+
* Validate that new tab status can be `Status.ACTIVE`
|
|
7027
|
+
* @param tab - tab item
|
|
7028
|
+
* @returns true when tab match condition to get a `Status.ACTIVE`
|
|
7029
|
+
*/
|
|
7030
|
+
this.isActivableTab = (tab) => [undefined, Status.ACTIVE, Status.VISIBLE].includes(tab.status);
|
|
6864
7031
|
/**
|
|
6865
7032
|
* Method to know if given tab has the given status
|
|
6866
7033
|
* @param tab - item tab key to set to ACTIVE status
|
|
@@ -6881,19 +7048,13 @@ const MgTabs = class {
|
|
|
6881
7048
|
* @returns index
|
|
6882
7049
|
*/
|
|
6883
7050
|
this.getTabItemIndex = (index) => index + this.startIndex;
|
|
6884
|
-
/**
|
|
6885
|
-
* Method to get the active-tab value
|
|
6886
|
-
* @returns of the active-tab
|
|
6887
|
-
*/
|
|
6888
|
-
this.getActiveTab = () => this.activeTab || this.getTabItemIndex(this.tabs.map((tab, index) => (Object.assign(Object.assign({}, tab), { index }))).find(tab => this.tabHasStatus(tab, Status.ACTIVE)).index);
|
|
6889
7051
|
/**
|
|
6890
7052
|
* Handle click events on tabs
|
|
6891
7053
|
* @param event - mouse event
|
|
6892
7054
|
*/
|
|
6893
7055
|
this.handleClick = (event) => {
|
|
6894
7056
|
const tabId = event.currentTarget.dataset.index;
|
|
6895
|
-
|
|
6896
|
-
if (this.tabHasStatus(tab, Status.HIDDEN) || this.tabHasStatus(tab, Status.DISABLED)) {
|
|
7057
|
+
if (!this.isActivableTab(this.tabs[Number(tabId) - this.startIndex])) {
|
|
6897
7058
|
event.preventDefault();
|
|
6898
7059
|
}
|
|
6899
7060
|
else {
|
|
@@ -6953,7 +7114,7 @@ const MgTabs = class {
|
|
|
6953
7114
|
setTimeout(() => {
|
|
6954
7115
|
this.tabFocus = undefined;
|
|
6955
7116
|
Array.from(this.element.shadowRoot.querySelectorAll('[data-index]')).forEach((tab, index) => {
|
|
6956
|
-
tab.setAttribute('tabindex', this.
|
|
7117
|
+
tab.setAttribute('tabindex', this.activeTab - this.startIndex !== index ? '-1' : '0');
|
|
6957
7118
|
});
|
|
6958
7119
|
}, 0);
|
|
6959
7120
|
};
|
|
@@ -6965,16 +7126,16 @@ const MgTabs = class {
|
|
|
6965
7126
|
if (slots.length !== this.tabs.length)
|
|
6966
7127
|
throw new Error('<mg-tabs> Must have slots counts equal to tabs count.');
|
|
6967
7128
|
};
|
|
6968
|
-
this.identifier = createID('mg-tabs');
|
|
7129
|
+
this.identifier = components_utils.createID('mg-tabs');
|
|
6969
7130
|
this.label = undefined;
|
|
6970
7131
|
this.size = 'regular';
|
|
6971
7132
|
this.items = undefined;
|
|
6972
7133
|
this.activeTab = undefined;
|
|
6973
7134
|
this.tabs = [];
|
|
6974
|
-
this.classCollection = new ClassList(['mg-tabs']);
|
|
7135
|
+
this.classCollection = new components_utils.ClassList(['mg-c-tabs']);
|
|
6975
7136
|
}
|
|
6976
7137
|
validateLabel(newValue) {
|
|
6977
|
-
if (
|
|
7138
|
+
if (!components_utils.isValidString(newValue)) {
|
|
6978
7139
|
throw new Error('<mg-tabs> prop "label" is required.');
|
|
6979
7140
|
}
|
|
6980
7141
|
}
|
|
@@ -6982,42 +7143,42 @@ const MgTabs = class {
|
|
|
6982
7143
|
if (!sizes.includes(newValue)) {
|
|
6983
7144
|
throw new Error(`<mg-tabs> prop "size" must be one of: ${sizes.join(', ')}`);
|
|
6984
7145
|
}
|
|
6985
|
-
this.classCollection.add(`mg-tabs--size-${this.size}`);
|
|
7146
|
+
this.classCollection.add(`mg-c-tabs--size-${this.size}`);
|
|
6986
7147
|
}
|
|
6987
7148
|
validateItems(newValue) {
|
|
6988
7149
|
// String array
|
|
6989
|
-
if (allItemsAreString(newValue))
|
|
6990
|
-
this.tabs = newValue.map(
|
|
6991
|
-
}
|
|
7150
|
+
if (components_utils.allItemsAreString(newValue))
|
|
7151
|
+
this.tabs = newValue.map(item => ({ label: item, status: Status.VISIBLE }));
|
|
6992
7152
|
// Object array
|
|
6993
|
-
else if (newValue && newValue.length > 0 && newValue.every(
|
|
7153
|
+
else if (Array.isArray(newValue) && newValue.length > 0 && newValue.every(isTabItem))
|
|
6994
7154
|
this.tabs = newValue;
|
|
6995
|
-
|
|
6996
|
-
if (this.tabs.find(tab => this.tabHasStatus(tab, Status.ACTIVE)) === undefined)
|
|
6997
|
-
this.tabs[0].status = Status.ACTIVE;
|
|
6998
|
-
}
|
|
6999
|
-
else {
|
|
7155
|
+
else
|
|
7000
7156
|
throw new Error('<mg-tabs> prop "items" is required and all items must be the same type: TabItem.');
|
|
7001
|
-
}
|
|
7002
7157
|
}
|
|
7003
7158
|
validateActiveTab(newValue) {
|
|
7004
|
-
|
|
7159
|
+
// when `active-tab` is undefined we set default value by searching an item with `Status.ACTIVE` or we use the `startIndex` has fallback value
|
|
7160
|
+
// after setting new value to `active-tab` the validate will be triggered again with the updated value and process the tab update
|
|
7161
|
+
if (newValue === undefined) {
|
|
7162
|
+
this.activeTab = this.tabs.some(tab => this.tabHasStatus(tab, Status.ACTIVE))
|
|
7163
|
+
? this.getTabItemIndex(this.tabs.findIndex(tab => this.tabHasStatus(tab, Status.ACTIVE)))
|
|
7164
|
+
: this.startIndex;
|
|
7165
|
+
}
|
|
7166
|
+
else if (typeof newValue === 'number' && newValue >= this.startIndex && newValue <= this.tabs.length && this.isActivableTab(this.tabs[newValue - this.startIndex])) {
|
|
7167
|
+
// if new 'active-tab' is activable we update tab status to ACTIVE and toggle past ACTIVE to VISIBLE
|
|
7005
7168
|
this.tabs.forEach((tab, index) => {
|
|
7006
7169
|
const isNewActiveTab = index === newValue - this.startIndex;
|
|
7007
7170
|
// reset active tabs
|
|
7008
7171
|
if (this.tabHasStatus(tab, Status.ACTIVE) && !isNewActiveTab)
|
|
7009
7172
|
tab.status = Status.VISIBLE;
|
|
7010
7173
|
// set active tab from given tab key
|
|
7011
|
-
else if (
|
|
7174
|
+
else if (this.isActivableTab(tab) && isNewActiveTab)
|
|
7012
7175
|
tab.status = Status.ACTIVE;
|
|
7013
7176
|
});
|
|
7014
7177
|
// emit change active tab key event
|
|
7015
|
-
|
|
7016
|
-
this.activeTabChange.emit(newValue);
|
|
7017
|
-
}
|
|
7178
|
+
this.activeTabChange.emit(newValue);
|
|
7018
7179
|
}
|
|
7019
|
-
else
|
|
7020
|
-
throw new Error(
|
|
7180
|
+
else {
|
|
7181
|
+
throw new Error(`<mg-tabs> prop "activeTab" must be a number between ${this.startIndex} and ${this.tabs.length} and new value must be "activable".`);
|
|
7021
7182
|
}
|
|
7022
7183
|
}
|
|
7023
7184
|
/*************
|
|
@@ -7048,13 +7209,13 @@ const MgTabs = class {
|
|
|
7048
7209
|
* @returns HTML Element
|
|
7049
7210
|
*/
|
|
7050
7211
|
render() {
|
|
7051
|
-
return (index.h("div", { class: this.classCollection.join() }, index.h("header", { role: "tablist", "aria-label": this.label, class: "mg-tabs__header" }, this.tabs.map((tab, index$1) => (index.h("button", { key: tab.label, role: "tab", id: this.getElementId(this.identifier, index$1), class: {
|
|
7212
|
+
return (index.h("div", { class: this.classCollection.join() }, index.h("header", { role: "tablist", "aria-label": this.label, class: "mg-c-tabs__header" }, this.tabs.map((tab, index$1) => (index.h("button", { key: tab.label, role: "tab", id: this.getElementId(this.identifier, index$1), class: {
|
|
7052
7213
|
[`${this.buttonTabBaseClass}`]: true,
|
|
7053
7214
|
[`${this.buttonTabBaseClass}--horizontal`]: true,
|
|
7054
7215
|
[`${this.getNavigationButtonClass(Status.ACTIVE)}`]: this.tabHasStatus(tab, Status.ACTIVE),
|
|
7055
7216
|
[`${this.getNavigationButtonClass(Status.DISABLED)}`]: this.tabHasStatus(tab, Status.DISABLED),
|
|
7056
7217
|
[`${this.getNavigationButtonClass(Status.HIDDEN)}`]: this.tabHasStatus(tab, Status.HIDDEN),
|
|
7057
|
-
}, tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, "aria-selected": this.tabHasStatus(tab, Status.ACTIVE).toString(), "aria-controls": this.getElementId(this.tabPanel, index$1), "aria-disabled": this.tabHasStatus(tab, Status.DISABLED), onClick: this.handleClick, onKeyDown: this.handleKeydown, "data-index": this.getTabItemIndex(index$1) }, tab.icon !== undefined && index.h("mg-icon", { icon: tab.icon }), tab.label, tab.badge !== undefined && index.h("mg-badge", { variant: "text-color", value: tab.badge.value, label: tab.badge.label, outline: tab.badge.role === 'information' }))))), this.tabs.map((tab, index$1) => (index.h("article", { key: tab.label, role: "tabpanel", id: this.getElementId(this.tabPanel, index$1), hidden: !this.tabHasStatus(tab, Status.ACTIVE), "aria-labelledby": this.getElementId(this.identifier, index$1), tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, class: "mg-tabs__content-container" }, index.h("slot", { name: this.getElementId('tab_content', index$1) }))))));
|
|
7218
|
+
}, tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, "aria-selected": this.tabHasStatus(tab, Status.ACTIVE).toString(), "aria-controls": this.getElementId(this.tabPanel, index$1), "aria-disabled": this.tabHasStatus(tab, Status.DISABLED), onClick: this.handleClick, onKeyDown: this.handleKeydown, "data-index": this.getTabItemIndex(index$1) }, tab.icon !== undefined && index.h("mg-icon", { icon: tab.icon }), tab.label, tab.badge !== undefined && index.h("mg-badge", { variant: "text-color", value: tab.badge.value, label: tab.badge.label, outline: tab.badge.role === 'information' }))))), this.tabs.map((tab, index$1) => (index.h("article", { key: tab.label, role: "tabpanel", id: this.getElementId(this.tabPanel, index$1), hidden: !this.tabHasStatus(tab, Status.ACTIVE), "aria-labelledby": this.getElementId(this.identifier, index$1), tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, class: "mg-c-tabs__content-container" }, index.h("slot", { name: this.getElementId('tab_content', index$1) }))))));
|
|
7058
7219
|
}
|
|
7059
7220
|
get element() { return index.getElement(this); }
|
|
7060
7221
|
static get watchers() { return {
|
|
@@ -7071,7 +7232,7 @@ MgTabs.style = mgTabsCss;
|
|
|
7071
7232
|
*/
|
|
7072
7233
|
const variants = ['primary', 'secondary', 'success', 'warning', 'danger', 'info'];
|
|
7073
7234
|
|
|
7074
|
-
const mgTagCss = ".mg-tag{padding:calc((var(--mg-tag-height) -
|
|
7235
|
+
const mgTagCss = ":host{display:inline-block}.mg-c-tag{display:inline-flex;min-height:var(--mg-tag-height);box-sizing:border-box;align-items:center;padding:calc((var(--mg-tag-height) - .2rem - var(--mg-tag-font-size)*var(--line-height))/2) .6rem;border:.1rem solid;border-radius:var(--mg-tag-border-radius);font-size:var(--mg-tag-font-size);font-weight:600;text-align:center;vertical-align:middle}.mg-c-tag.mg-c-tag--primary{border-color:hsl(var(--color-dark));background-color:hsl(var(--color-dark));color:hsl(var(--color-light))}.mg-c-tag.mg-c-tag--primary.mg-c-tag--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-dark))}.mg-c-tag.mg-c-tag--primary.mg-c-tag--soft{border-color:hsl(var(--color-dark-h), var(--color-dark-s), var(--mg-color-soft-l));background-color:hsl(var(--color-dark-h), var(--color-dark-s), var(--mg-color-soft-l));color:hsl(var(--color-dark));font-weight:400}.mg-c-tag.mg-c-tag--primary.mg-c-tag--soft ::slotted(mg-icon){color:hsl(var(--color-dark))}.mg-c-tag.mg-c-tag--secondary{border-color:hsl(var(--color-light));background-color:hsl(var(--color-light));color:hsl(var(--color-dark))}.mg-c-tag.mg-c-tag--secondary.mg-c-tag--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-light))}.mg-c-tag.mg-c-tag--secondary.mg-c-tag--soft{border-color:hsl(var(--color-light-h), var(--color-light-s), var(--mg-color-soft-l));background-color:hsl(var(--color-light-h), var(--color-light-s), var(--mg-color-soft-l));color:hsl(var(--color-dark));font-weight:400}.mg-c-tag.mg-c-tag--secondary.mg-c-tag--soft ::slotted(mg-icon){color:hsl(var(--color-dark))}.mg-c-tag.mg-c-tag--success{border-color:hsl(var(--color-success));background-color:hsl(var(--color-success));color:hsl(var(--color-dark))}.mg-c-tag.mg-c-tag--success.mg-c-tag--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-success))}.mg-c-tag.mg-c-tag--success.mg-c-tag--soft{border-color:hsl(var(--color-success-h), var(--color-success-s), var(--mg-color-soft-l));background-color:hsl(var(--color-success-h), var(--color-success-s), var(--mg-color-soft-l));color:hsl(var(--color-dark));font-weight:400}.mg-c-tag.mg-c-tag--success.mg-c-tag--soft ::slotted(mg-icon){color:hsl(var(--color-success))}.mg-c-tag.mg-c-tag--warning{border-color:hsl(var(--color-warning));background-color:hsl(var(--color-warning));color:hsl(var(--color-dark))}.mg-c-tag.mg-c-tag--warning.mg-c-tag--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-warning))}.mg-c-tag.mg-c-tag--warning.mg-c-tag--soft{border-color:hsl(var(--color-warning-h), var(--color-warning-s), var(--mg-color-soft-l));background-color:hsl(var(--color-warning-h), var(--color-warning-s), var(--mg-color-soft-l));color:hsl(var(--color-dark));font-weight:400}.mg-c-tag.mg-c-tag--warning.mg-c-tag--soft ::slotted(mg-icon){color:hsl(var(--color-warning))}.mg-c-tag.mg-c-tag--danger{border-color:hsl(var(--color-danger));background-color:hsl(var(--color-danger));color:hsl(var(--color-light))}.mg-c-tag.mg-c-tag--danger.mg-c-tag--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-danger))}.mg-c-tag.mg-c-tag--danger.mg-c-tag--soft{border-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--mg-color-soft-l));background-color:hsl(var(--color-danger-h), var(--color-danger-s), var(--mg-color-soft-l));color:hsl(var(--color-dark));font-weight:400}.mg-c-tag.mg-c-tag--danger.mg-c-tag--soft ::slotted(mg-icon){color:hsl(var(--color-danger))}.mg-c-tag.mg-c-tag--info{border-color:hsl(var(--color-info));background-color:hsl(var(--color-info));color:hsl(var(--color-light))}.mg-c-tag.mg-c-tag--info.mg-c-tag--outline{background-color:rgba(0,0,0,0);color:hsl(var(--color-info))}.mg-c-tag.mg-c-tag--info.mg-c-tag--soft{border-color:hsl(var(--color-info-h), var(--color-info-s), var(--mg-color-soft-l));background-color:hsl(var(--color-info-h), var(--color-info-s), var(--mg-color-soft-l));color:hsl(var(--color-dark));font-weight:400}.mg-c-tag.mg-c-tag--info.mg-c-tag--soft ::slotted(mg-icon){color:hsl(var(--color-info))}::slotted(mg-icon){margin-right:.4rem}slot{display:inline-flex;align-items:center}";
|
|
7075
7236
|
|
|
7076
7237
|
const MgTag = class {
|
|
7077
7238
|
constructor(hostRef) {
|
|
@@ -7080,12 +7241,12 @@ const MgTag = class {
|
|
|
7080
7241
|
* Internal *
|
|
7081
7242
|
************/
|
|
7082
7243
|
// Classes
|
|
7083
|
-
this.classOutline = 'mg-tag--outline';
|
|
7084
|
-
this.classSoft = 'mg-tag--soft';
|
|
7244
|
+
this.classOutline = 'mg-c-tag--outline';
|
|
7245
|
+
this.classSoft = 'mg-c-tag--soft';
|
|
7085
7246
|
this.variant = variants[0];
|
|
7086
7247
|
this.outline = undefined;
|
|
7087
7248
|
this.soft = undefined;
|
|
7088
|
-
this.classCollection = new ClassList(['mg-tag']);
|
|
7249
|
+
this.classCollection = new components_utils.ClassList(['mg-c-tag']);
|
|
7089
7250
|
}
|
|
7090
7251
|
validateVariant(newValue, oldValue) {
|
|
7091
7252
|
if (!variants.includes(newValue)) {
|
|
@@ -7093,9 +7254,9 @@ const MgTag = class {
|
|
|
7093
7254
|
}
|
|
7094
7255
|
else {
|
|
7095
7256
|
if (oldValue !== undefined) {
|
|
7096
|
-
this.classCollection.delete(`mg-tag--${oldValue}`);
|
|
7257
|
+
this.classCollection.delete(`mg-c-tag--${oldValue}`);
|
|
7097
7258
|
}
|
|
7098
|
-
this.classCollection.add(`mg-tag--${newValue}`);
|
|
7259
|
+
this.classCollection.add(`mg-c-tag--${newValue}`);
|
|
7099
7260
|
}
|
|
7100
7261
|
}
|
|
7101
7262
|
validateOutline(newValue) {
|
|
@@ -7122,7 +7283,7 @@ const MgTag = class {
|
|
|
7122
7283
|
* @param textContent - html element textContent property
|
|
7123
7284
|
*/
|
|
7124
7285
|
validateTextContent(textContent) {
|
|
7125
|
-
if (
|
|
7286
|
+
if (!components_utils.isValidString(textContent))
|
|
7126
7287
|
throw new Error('<mg-tag> slot must contain a text content.');
|
|
7127
7288
|
}
|
|
7128
7289
|
/*************
|
|
@@ -7263,12 +7424,12 @@ const MgTooltip = class {
|
|
|
7263
7424
|
this.setMgButtonWrapper = (mgButton) => {
|
|
7264
7425
|
if (mgButton.disabled) {
|
|
7265
7426
|
const div = document.createElement('div');
|
|
7266
|
-
div.classList.add('mg-tooltip__mg-button-wrapper');
|
|
7427
|
+
div.classList.add('mg-c-tooltip__mg-button-wrapper');
|
|
7267
7428
|
mgButton.parentNode.insertBefore(div, mgButton);
|
|
7268
7429
|
div.appendChild(mgButton);
|
|
7269
7430
|
this.tooltipedElement = div;
|
|
7270
7431
|
}
|
|
7271
|
-
else if (mgButton.parentElement.classList.contains('mg-tooltip__mg-button-wrapper')) {
|
|
7432
|
+
else if (mgButton.parentElement.classList.contains('mg-c-tooltip__mg-button-wrapper')) {
|
|
7272
7433
|
this.element.firstElementChild.replaceWith(mgButton);
|
|
7273
7434
|
this.tooltipedElement = mgButton;
|
|
7274
7435
|
}
|
|
@@ -7306,6 +7467,12 @@ const MgTooltip = class {
|
|
|
7306
7467
|
offset: [0, 8],
|
|
7307
7468
|
},
|
|
7308
7469
|
},
|
|
7470
|
+
{
|
|
7471
|
+
name: 'flip',
|
|
7472
|
+
options: {
|
|
7473
|
+
fallbackPlacements: ['auto'],
|
|
7474
|
+
},
|
|
7475
|
+
},
|
|
7309
7476
|
],
|
|
7310
7477
|
});
|
|
7311
7478
|
// Manage tooltipedElement focus/blur events
|
|
@@ -7337,14 +7504,18 @@ const MgTooltip = class {
|
|
|
7337
7504
|
});
|
|
7338
7505
|
});
|
|
7339
7506
|
};
|
|
7340
|
-
this.identifier = createID('mg-tooltip');
|
|
7507
|
+
this.identifier = components_utils.createID('mg-tooltip');
|
|
7341
7508
|
this.message = undefined;
|
|
7342
7509
|
this.placement = 'bottom';
|
|
7343
7510
|
this.display = false;
|
|
7344
7511
|
this.disabled = false;
|
|
7345
7512
|
}
|
|
7513
|
+
validateIdentifier() {
|
|
7514
|
+
// use renderTooltipContent to update tooltip-content id
|
|
7515
|
+
this.renderTooltipContent();
|
|
7516
|
+
}
|
|
7346
7517
|
validateMessage(newValue) {
|
|
7347
|
-
if (
|
|
7518
|
+
if (!components_utils.isValidString(newValue)) {
|
|
7348
7519
|
throw new Error('<mg-tooltip> prop "message" is required.');
|
|
7349
7520
|
}
|
|
7350
7521
|
this.mgTooltipContent.message = newValue;
|
|
@@ -7368,16 +7539,22 @@ const MgTooltip = class {
|
|
|
7368
7539
|
/**
|
|
7369
7540
|
* Render tooltip content element
|
|
7370
7541
|
*/
|
|
7371
|
-
|
|
7372
|
-
const mgTooltipContent =
|
|
7373
|
-
mgTooltipContent
|
|
7374
|
-
|
|
7375
|
-
|
|
7376
|
-
|
|
7377
|
-
|
|
7378
|
-
|
|
7379
|
-
|
|
7380
|
-
|
|
7542
|
+
renderTooltipContent() {
|
|
7543
|
+
const mgTooltipContent = this.element.querySelector('mg-tooltip-content');
|
|
7544
|
+
if (mgTooltipContent === null) {
|
|
7545
|
+
const mgTooltipContent = document.createElement('mg-tooltip-content');
|
|
7546
|
+
mgTooltipContent.setAttribute('slot', 'content');
|
|
7547
|
+
mgTooltipContent.setAttribute('id', this.identifier);
|
|
7548
|
+
const arrow = document.createElement('div');
|
|
7549
|
+
arrow.setAttribute('slot', 'arrow');
|
|
7550
|
+
arrow.dataset.popperArrow = '';
|
|
7551
|
+
mgTooltipContent.appendChild(arrow);
|
|
7552
|
+
// append tooltip element to component
|
|
7553
|
+
this.element.appendChild(mgTooltipContent);
|
|
7554
|
+
}
|
|
7555
|
+
else {
|
|
7556
|
+
mgTooltipContent.setAttribute('id', this.identifier);
|
|
7557
|
+
}
|
|
7381
7558
|
}
|
|
7382
7559
|
/*************
|
|
7383
7560
|
* Lifecycle *
|
|
@@ -7387,13 +7564,14 @@ const MgTooltip = class {
|
|
|
7387
7564
|
*/
|
|
7388
7565
|
componentWillLoad() {
|
|
7389
7566
|
// Get windows to attach events
|
|
7390
|
-
this.windows = getWindows(window);
|
|
7567
|
+
this.windows = components_utils.getWindows(window);
|
|
7391
7568
|
// Get tooltip element
|
|
7392
|
-
this.
|
|
7569
|
+
this.renderTooltipContent();
|
|
7393
7570
|
this.mgTooltipContent = this.element.querySelector(`#${this.identifier}`);
|
|
7394
7571
|
//validate properties
|
|
7395
7572
|
this.validateDisabled(this.disabled);
|
|
7396
7573
|
this.validateMessage(this.message);
|
|
7574
|
+
this.validateIdentifier();
|
|
7397
7575
|
}
|
|
7398
7576
|
/**
|
|
7399
7577
|
* Get slotted element
|
|
@@ -7405,7 +7583,7 @@ const MgTooltip = class {
|
|
|
7405
7583
|
// get slotted element wich is not the tooltip
|
|
7406
7584
|
const slotElement = this.element.querySelector(`*:not(#${this.identifier})`);
|
|
7407
7585
|
// Get interactive element
|
|
7408
|
-
const interactiveElement = slotElement.matches(focusableElements) ? slotElement : (_a = slotElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(focusableElements);
|
|
7586
|
+
const interactiveElement = slotElement.matches(components_utils.focusableElements) ? slotElement : (_a = slotElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(components_utils.focusableElements);
|
|
7409
7587
|
// define selected element to become tooltip selector
|
|
7410
7588
|
this.tooltipedElement = interactiveElement || slotElement;
|
|
7411
7589
|
// Check if slotted element is a disabled mg-button
|
|
@@ -7441,6 +7619,7 @@ const MgTooltip = class {
|
|
|
7441
7619
|
}
|
|
7442
7620
|
get element() { return index.getElement(this); }
|
|
7443
7621
|
static get watchers() { return {
|
|
7622
|
+
"identifier": ["validateIdentifier"],
|
|
7444
7623
|
"message": ["validateMessage"],
|
|
7445
7624
|
"display": ["handleDisplay"],
|
|
7446
7625
|
"disabled": ["validateDisabled"]
|
|
@@ -7448,7 +7627,7 @@ const MgTooltip = class {
|
|
|
7448
7627
|
};
|
|
7449
7628
|
MgTooltip.style = mgTooltipCss;
|
|
7450
7629
|
|
|
7451
|
-
const mgTooltipContentCss = ":host{display:none;padding
|
|
7630
|
+
const mgTooltipContentCss = ":host{z-index:1000;display:none;max-width:40rem;box-sizing:border-box;padding:.5rem .8rem;border-radius:var(--mg-tooltip-border-radius);background-color:hsl(var(--mg-tooltip-background-color));color:hsl(var(--mg-tooltip-font-color));text-align:start}:host([data-show]){display:block}::slotted([slot=arrow]){visibility:hidden}::slotted([slot=arrow])::before{content:\"\";transform:rotate(45deg);visibility:visible}::slotted([slot=arrow]),::slotted([slot=arrow])::before{position:absolute;z-index:9999;width:.8rem;height:.8rem;background-color:hsl(var(--mg-tooltip-background-color))}:host([data-popper-placement^=top])>::slotted([slot=arrow]){bottom:-0.4rem}:host([data-popper-placement^=bottom])>::slotted([slot=arrow]){top:-0.4rem}:host([data-popper-placement^=left])>::slotted([slot=arrow]){right:-0.4rem}:host([data-popper-placement^=right])>::slotted([slot=arrow]){left:-0.4rem}";
|
|
7452
7631
|
|
|
7453
7632
|
const MgTooltipContent = class {
|
|
7454
7633
|
constructor(hostRef) {
|