@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host, g as getElement, c as createEvent } from './index-ce01e63b.js';
|
|
2
|
-
import { i as initLocales, D as Direction, l as localeDate,
|
|
2
|
+
import { c as createID, i as initLocales, D as Direction, C as ClassList, a as isValidString, b as isTagName, d as cleanString, l as localeDate, e as dateRegExp, f as localeCurrency, g as localeNumber, h as allItemsAreString, s as sizes$2, j as focusableElements, k as getWindows } from './components.utils-0f76010d.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Available menu-item positions
|
|
@@ -20,136 +20,7 @@ var Status$1;
|
|
|
20
20
|
Status["ACTIVE"] = "active";
|
|
21
21
|
})(Status$1 || (Status$1 = {}));
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
* Create random ID
|
|
25
|
-
* @param prefix - add prefix to created ID
|
|
26
|
-
* @param length - ID length
|
|
27
|
-
* @returns ID
|
|
28
|
-
*/
|
|
29
|
-
const createID = (prefix = '', length = 10) => {
|
|
30
|
-
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
31
|
-
const charsLength = chars.length;
|
|
32
|
-
let ID = '';
|
|
33
|
-
let now = Date.now();
|
|
34
|
-
while (length > 0) {
|
|
35
|
-
now += Math.pow(10, 6); // Add 1 millisecond to the timestamp
|
|
36
|
-
const index = now % charsLength;
|
|
37
|
-
ID += chars.charAt(index);
|
|
38
|
-
length--;
|
|
39
|
-
}
|
|
40
|
-
return (prefix !== '' ? `${prefix}-` : '') + ID;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Class to manage component classlist
|
|
44
|
-
* Set() are not working when imported in project
|
|
45
|
-
*/
|
|
46
|
-
class ClassList {
|
|
47
|
-
constructor(classlist = []) {
|
|
48
|
-
/**
|
|
49
|
-
* Add class
|
|
50
|
-
* @param className - class name to add
|
|
51
|
-
*/
|
|
52
|
-
this.add = (className) => {
|
|
53
|
-
if (!this.has(className)) {
|
|
54
|
-
this.classes.push(className);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Delete class
|
|
59
|
-
* @param className - class name to delete
|
|
60
|
-
*/
|
|
61
|
-
this.delete = (className) => {
|
|
62
|
-
const index = this.classes.indexOf(className);
|
|
63
|
-
if (index > -1) {
|
|
64
|
-
this.classes.splice(index, 1);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Check if class exist in list
|
|
69
|
-
* @param className - class name to check
|
|
70
|
-
* @returns class name is in the list
|
|
71
|
-
*/
|
|
72
|
-
this.has = (className) => {
|
|
73
|
-
return this.classes.includes(className);
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Join classes seperated by spaces
|
|
77
|
-
* @returns joined values
|
|
78
|
-
*/
|
|
79
|
-
this.join = () => {
|
|
80
|
-
return this.classes.join(' ');
|
|
81
|
-
};
|
|
82
|
-
this.classes = classlist;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Check if all items are string
|
|
87
|
-
* @param items - items to check
|
|
88
|
-
* @returns all items are string
|
|
89
|
-
*/
|
|
90
|
-
const allItemsAreString = (items) => Array.isArray(items) && items.every(item => typeof item === 'string');
|
|
91
|
-
/**
|
|
92
|
-
* Check if element is a heading
|
|
93
|
-
* @param element - slotted element
|
|
94
|
-
* @param tagNames - allowed tag names list
|
|
95
|
-
* @returns element is a heading
|
|
96
|
-
*/
|
|
97
|
-
const isTagName = (element, tagNames) => {
|
|
98
|
-
return tagNames.includes(element === null || element === void 0 ? void 0 : element.tagName.toLowerCase());
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Focusable elements query selector
|
|
102
|
-
*/
|
|
103
|
-
const focusableElements = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), [identifier]';
|
|
104
|
-
/**
|
|
105
|
-
* Get windows
|
|
106
|
-
* @param localWindow - the window we are lookink for other windows
|
|
107
|
-
* @returns The list of windows found
|
|
108
|
-
*/
|
|
109
|
-
const getWindows = (localWindow) => {
|
|
110
|
-
const parentWindows = getParentWindows(localWindow);
|
|
111
|
-
const childWindows = getChildWindows(localWindow);
|
|
112
|
-
return [localWindow, ...parentWindows, ...childWindows];
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* Get parent windows
|
|
116
|
-
* @param localWindow - the window we are lookink for parents
|
|
117
|
-
* @param windows - The list of allready found windows
|
|
118
|
-
* @returns The list of windows found
|
|
119
|
-
*/
|
|
120
|
-
const getParentWindows = (localWindow, windows = []) => {
|
|
121
|
-
// Check if is in iframe
|
|
122
|
-
if (localWindow.self !== localWindow.top) {
|
|
123
|
-
// Check if we have permission to access parent
|
|
124
|
-
try {
|
|
125
|
-
const parentWindow = localWindow.parent;
|
|
126
|
-
windows.push(parentWindow);
|
|
127
|
-
return getParentWindows(parentWindow, windows);
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
console.error('Different hosts between iframes:', err);
|
|
131
|
-
return windows;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
return windows;
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* Get child windows
|
|
138
|
-
* @param localWindow - the window we are lookink for children
|
|
139
|
-
* @param windows - The list of allready found windows
|
|
140
|
-
* @returns The list of windows found
|
|
141
|
-
*/
|
|
142
|
-
const getChildWindows = (localWindow, windows = []) => {
|
|
143
|
-
if (localWindow.frames.length > 0) {
|
|
144
|
-
for (const childWindow of Array.from(localWindow.frames)) {
|
|
145
|
-
windows.push(childWindow);
|
|
146
|
-
getChildWindows(childWindow, windows);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return windows;
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
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)}";
|
|
23
|
+
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)}";
|
|
153
24
|
|
|
154
25
|
/**
|
|
155
26
|
* MgActionMore['items'] type guard
|
|
@@ -185,12 +56,13 @@ const MgActionMore = class {
|
|
|
185
56
|
* Internal *
|
|
186
57
|
************/
|
|
187
58
|
this.name = 'mg-action-more';
|
|
59
|
+
this.classBase = 'mg-c-action-more';
|
|
188
60
|
this.mgPopoverIdentifier = createID(this.name);
|
|
189
61
|
/************
|
|
190
62
|
* Methods *
|
|
191
63
|
***********/
|
|
192
64
|
/**
|
|
193
|
-
*
|
|
65
|
+
* Toggle expanded props
|
|
194
66
|
*/
|
|
195
67
|
this.toggleExpanded = () => {
|
|
196
68
|
this.expanded = !this.expanded;
|
|
@@ -268,9 +140,8 @@ const MgActionMore = class {
|
|
|
268
140
|
const buttonContent = [buttonLabel];
|
|
269
141
|
if (!this.button.isIcon && this.displayChevron) {
|
|
270
142
|
buttonContent.push(h("span", { class: {
|
|
271
|
-
[`${this.
|
|
272
|
-
[`${this.
|
|
273
|
-
'mg-a11y-animation': true,
|
|
143
|
+
[`${this.classBase}__chevron`]: true,
|
|
144
|
+
[`${this.classBase}__chevron--rotate`]: this.expanded === true,
|
|
274
145
|
} }, h("mg-icon", { icon: "chevron-down", size: "small" })));
|
|
275
146
|
}
|
|
276
147
|
return (h(Host, { "data-mg-popover-guard": this.mgPopoverIdentifier }, h("span", { class: "mg-action-more" }, h("mg-popover", { identifier: this.mgPopoverIdentifier, display: this.expanded, "onDisplay-change": this.handleDisplayChange }, h("mg-button", { variant: this.button.variant, isIcon: this.button.isIcon, type: "button", label: buttonLabel, onClick: this.handleButton }, this.icon && h("mg-icon", Object.assign({}, this.icon)), !this.button.isIcon && buttonContent), h("div", { slot: "content" }, h("mg-menu", { direction: Direction.VERTICAL, label: this.messages.label }, this.items.map(item => {
|
|
@@ -295,7 +166,7 @@ MgActionMore.style = mgActionMoreCss;
|
|
|
295
166
|
*/
|
|
296
167
|
const variants$5 = ['info', 'primary', 'secondary', 'success', 'warning', 'danger', 'text-color'];
|
|
297
168
|
|
|
298
|
-
const mgBadgeCss = ".
|
|
169
|
+
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}";
|
|
299
170
|
|
|
300
171
|
const MgBadge = class {
|
|
301
172
|
constructor(hostRef) {
|
|
@@ -304,12 +175,12 @@ const MgBadge = class {
|
|
|
304
175
|
* Internal *
|
|
305
176
|
************/
|
|
306
177
|
// Classes
|
|
307
|
-
this.classOutline = `mg-badge--outline`;
|
|
178
|
+
this.classOutline = `mg-c-badge--outline`;
|
|
308
179
|
this.value = undefined;
|
|
309
180
|
this.label = undefined;
|
|
310
181
|
this.variant = variants$5[0];
|
|
311
182
|
this.outline = undefined;
|
|
312
|
-
this.classCollection = new ClassList(['mg-badge']);
|
|
183
|
+
this.classCollection = new ClassList(['mg-c-badge']);
|
|
313
184
|
}
|
|
314
185
|
validateValue(newValue) {
|
|
315
186
|
if (`${newValue}`.match(/^(\d+\+*|[?*!a-z])$/i) === null) {
|
|
@@ -317,7 +188,7 @@ const MgBadge = class {
|
|
|
317
188
|
}
|
|
318
189
|
}
|
|
319
190
|
validateLabel(newValue) {
|
|
320
|
-
if (
|
|
191
|
+
if (!isValidString(newValue)) {
|
|
321
192
|
throw new Error('<mg-badge> prop "label" is required.');
|
|
322
193
|
}
|
|
323
194
|
}
|
|
@@ -327,9 +198,9 @@ const MgBadge = class {
|
|
|
327
198
|
}
|
|
328
199
|
else {
|
|
329
200
|
if (oldValue !== undefined) {
|
|
330
|
-
this.classCollection.delete(`mg-badge--${oldValue}`);
|
|
201
|
+
this.classCollection.delete(`mg-c-badge--${oldValue}`);
|
|
331
202
|
}
|
|
332
|
-
this.classCollection.add(`mg-badge--${newValue}`);
|
|
203
|
+
this.classCollection.add(`mg-c-badge--${newValue}`);
|
|
333
204
|
}
|
|
334
205
|
}
|
|
335
206
|
validateOutline(newValue) {
|
|
@@ -352,7 +223,7 @@ const MgBadge = class {
|
|
|
352
223
|
* @returns HTML Element
|
|
353
224
|
*/
|
|
354
225
|
render() {
|
|
355
|
-
return (h("span", { class: this.classCollection.join() }, h("span", { class: "mg-badge__value" }, this.value), h("span", { class: "
|
|
226
|
+
return (h("span", { class: this.classCollection.join() }, h("span", { class: "mg-c-badge__value" }, this.value), h("span", { class: "mg-u-visually-hidden" }, this.label)));
|
|
356
227
|
}
|
|
357
228
|
static get watchers() { return {
|
|
358
229
|
"value": ["validateValue"],
|
|
@@ -368,7 +239,7 @@ MgBadge.style = mgBadgeCss;
|
|
|
368
239
|
*/
|
|
369
240
|
const variants$4 = ['primary', 'secondary', 'danger', 'danger-alt', 'info', 'flat', 'success', 'link'];
|
|
370
241
|
|
|
371
|
-
const mgButtonCss = ":host{display:inline-block;
|
|
242
|
+
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}";
|
|
372
243
|
|
|
373
244
|
const MgButton = class {
|
|
374
245
|
constructor(hostRef) {
|
|
@@ -378,9 +249,9 @@ const MgButton = class {
|
|
|
378
249
|
* Internal *
|
|
379
250
|
************/
|
|
380
251
|
this.onClickElementFn = null;
|
|
381
|
-
this.classDisabled = 'mg-button--disabled';
|
|
382
|
-
this.classLoading = 'mg-button--loading';
|
|
383
|
-
this.classFullWidth = 'mg-button--full-width';
|
|
252
|
+
this.classDisabled = 'mg-c-button--disabled';
|
|
253
|
+
this.classLoading = 'mg-c-button--loading';
|
|
254
|
+
this.classFullWidth = 'mg-c-button--full-width';
|
|
384
255
|
/**
|
|
385
256
|
* Trigger actions onClick event
|
|
386
257
|
* @param event - click event
|
|
@@ -427,7 +298,7 @@ const MgButton = class {
|
|
|
427
298
|
this.isIcon = false;
|
|
428
299
|
this.disableOnClick = false;
|
|
429
300
|
this.loading = false;
|
|
430
|
-
this.classCollection = new ClassList(['mg-button']);
|
|
301
|
+
this.classCollection = new ClassList(['mg-c-button']);
|
|
431
302
|
}
|
|
432
303
|
validateVariant(newValue, oldValue) {
|
|
433
304
|
if (!variants$4.includes(newValue)) {
|
|
@@ -435,9 +306,9 @@ const MgButton = class {
|
|
|
435
306
|
}
|
|
436
307
|
else {
|
|
437
308
|
if (oldValue !== undefined) {
|
|
438
|
-
this.classCollection.delete(`mg-button--${oldValue}`);
|
|
309
|
+
this.classCollection.delete(`mg-c-button--${oldValue}`);
|
|
439
310
|
}
|
|
440
|
-
this.classCollection.add(`mg-button--${newValue}`);
|
|
311
|
+
this.classCollection.add(`mg-c-button--${newValue}`);
|
|
441
312
|
}
|
|
442
313
|
}
|
|
443
314
|
validateFullWidth(newValue) {
|
|
@@ -485,8 +356,8 @@ const MgButton = class {
|
|
|
485
356
|
this.validateVariant(this.variant);
|
|
486
357
|
this.validateFullWidth(this.fullWidth);
|
|
487
358
|
if (this.isIcon) {
|
|
488
|
-
this.classCollection.add(`mg-button--icon`);
|
|
489
|
-
if (
|
|
359
|
+
this.classCollection.add(`mg-c-button--icon`);
|
|
360
|
+
if (!isValidString(this.label)) {
|
|
490
361
|
throw new Error(`<mg-button> prop "label" is mandatory when prop "isIcon" is set to true.`);
|
|
491
362
|
}
|
|
492
363
|
}
|
|
@@ -499,7 +370,7 @@ const MgButton = class {
|
|
|
499
370
|
* @returns html element
|
|
500
371
|
*/
|
|
501
372
|
render() {
|
|
502
|
-
return (h(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 }, h("div", { class: this.classCollection.join(), id: this.identifier }, this.loading && h("mg-icon", { icon: "loader", spin: true }), h("div", { class: "mg-button__content" }, h("slot", null)))));
|
|
373
|
+
return (h(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 }, h("div", { class: this.classCollection.join(), id: this.identifier }, this.loading && h("mg-icon", { icon: "loader", spin: true }), h("div", { class: "mg-c-button__content" }, h("slot", null)))));
|
|
503
374
|
}
|
|
504
375
|
get element() { return getElement(this); }
|
|
505
376
|
static get watchers() { return {
|
|
@@ -520,7 +391,7 @@ const variants$3 = ['info', 'warning', 'success', 'danger', 'app'];
|
|
|
520
391
|
*/
|
|
521
392
|
const variantStyles$1 = ['bar-left', 'fill'];
|
|
522
393
|
|
|
523
|
-
const mgCardCss = ".mg-card{position:relative;
|
|
394
|
+
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%}";
|
|
524
395
|
|
|
525
396
|
const MgCard = class {
|
|
526
397
|
constructor(hostRef) {
|
|
@@ -529,7 +400,7 @@ const MgCard = class {
|
|
|
529
400
|
* Private *
|
|
530
401
|
*************/
|
|
531
402
|
this.name = 'mg-card';
|
|
532
|
-
this.
|
|
403
|
+
this.classBase = 'mg-c-card';
|
|
533
404
|
/**
|
|
534
405
|
* Methode to set default varianStyle props
|
|
535
406
|
* needeed has stencil doesn't know that props is mutated when updated in prop watcher
|
|
@@ -540,17 +411,17 @@ const MgCard = class {
|
|
|
540
411
|
};
|
|
541
412
|
this.variant = undefined;
|
|
542
413
|
this.variantStyle = undefined;
|
|
543
|
-
this.classCollection = new ClassList([this.
|
|
414
|
+
this.classCollection = new ClassList([this.classBase]);
|
|
544
415
|
}
|
|
545
416
|
validateVariant(newValue, oldValue) {
|
|
546
417
|
if (newValue && !variants$3.includes(newValue))
|
|
547
418
|
throw new Error(`<${this.name}> prop "variant" must match VariantType type.`);
|
|
548
419
|
if (Boolean(newValue)) {
|
|
549
420
|
this.setDefaultVariantStyle();
|
|
550
|
-
this.classCollection.add(`${this.
|
|
421
|
+
this.classCollection.add(`${this.classBase}--${newValue}`);
|
|
551
422
|
}
|
|
552
423
|
if (Boolean(oldValue))
|
|
553
|
-
this.classCollection.delete(`${this.
|
|
424
|
+
this.classCollection.delete(`${this.classBase}--${oldValue}`);
|
|
554
425
|
}
|
|
555
426
|
validateVariantStyle(newValue, oldValue) {
|
|
556
427
|
if (newValue && !variantStyles$1.includes(newValue))
|
|
@@ -558,9 +429,9 @@ const MgCard = class {
|
|
|
558
429
|
else if (Boolean(newValue) && !variants$3.includes(this.variant))
|
|
559
430
|
throw new Error(`<${this.name}> prop "variantStyle" must be paired with ${JSON.stringify(variants$3)} "variant" prop.`);
|
|
560
431
|
if (Boolean(newValue))
|
|
561
|
-
this.classCollection.add(`${this.
|
|
432
|
+
this.classCollection.add(`${this.classBase}--${newValue}`);
|
|
562
433
|
if (Boolean(oldValue))
|
|
563
|
-
this.classCollection.delete(`${this.
|
|
434
|
+
this.classCollection.delete(`${this.classBase}--${oldValue}`);
|
|
564
435
|
}
|
|
565
436
|
/*************
|
|
566
437
|
* Lifecycle *
|
|
@@ -578,7 +449,7 @@ const MgCard = class {
|
|
|
578
449
|
*/
|
|
579
450
|
render() {
|
|
580
451
|
var _a;
|
|
581
|
-
return (h("div", { class: this.classCollection.join() }, ((_a = this.variantStyle) === null || _a === void 0 ? void 0 : _a.startsWith('bar-')) && h("span", { class: "mg-card__bar" }), h("slot", null)));
|
|
452
|
+
return (h("div", { class: this.classCollection.join() }, ((_a = this.variantStyle) === null || _a === void 0 ? void 0 : _a.startsWith('bar-')) && h("span", { class: "mg-c-card__bar" }), h("slot", null)));
|
|
582
453
|
}
|
|
583
454
|
static get watchers() { return {
|
|
584
455
|
"variant": ["validateVariant"],
|
|
@@ -616,7 +487,7 @@ const MgCharacterLeft = class {
|
|
|
616
487
|
* @returns HTML Element
|
|
617
488
|
*/
|
|
618
489
|
render() {
|
|
619
|
-
return (h("span", { id: this.identifier, "aria-live": "polite" }, h("span", { "aria-hidden": "true" }, this.maxlength - this.characters.length, "/", this.maxlength), h("span", { class: "
|
|
490
|
+
return (h("span", { id: this.identifier, "aria-live": "polite" }, h("span", { "aria-hidden": "true" }, this.maxlength - this.characters.length, "/", this.maxlength), h("span", { class: "mg-u-visually-hidden" }, this.messages.nbCharLeft.replace('{counter}', this.maxlength - this.characters.length))));
|
|
620
491
|
}
|
|
621
492
|
get element() { return getElement(this); }
|
|
622
493
|
static get watchers() { return {
|
|
@@ -625,7 +496,7 @@ const MgCharacterLeft = class {
|
|
|
625
496
|
};
|
|
626
497
|
MgCharacterLeft.style = mgCharacterLeftCss;
|
|
627
498
|
|
|
628
|
-
const mgDetailsCss = ".
|
|
499
|
+
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}}";
|
|
629
500
|
|
|
630
501
|
const MgDetails = class {
|
|
631
502
|
constructor(hostRef) {
|
|
@@ -643,7 +514,7 @@ const MgDetails = class {
|
|
|
643
514
|
this.expanded = false;
|
|
644
515
|
}
|
|
645
516
|
validateTitles(newValue) {
|
|
646
|
-
if (newValue
|
|
517
|
+
if (!isValidString(newValue)) {
|
|
647
518
|
throw new Error('<mg-details> prop "toggleClosed" and "toggleOpened" must be defined.');
|
|
648
519
|
}
|
|
649
520
|
}
|
|
@@ -665,7 +536,7 @@ const MgDetails = class {
|
|
|
665
536
|
* @returns HTML Element
|
|
666
537
|
*/
|
|
667
538
|
render() {
|
|
668
|
-
return (h("details", { class: "mg-details", onToggle: this.handleToggle, open: this.expanded, ref: (el) => (this.details = el) }, h("summary", null, h("slot", { name: "summary" }), h("span", { class: "mg-details__toggle" }, h("mg-icon", { icon: "chevron-up", size: "small", class: { 'mg-details__toggle-icon': true, 'mg-details__toggle-icon--reverse': !this.expanded } }), h("span", { class: { '
|
|
539
|
+
return (h("details", { class: "mg-c-details", onToggle: this.handleToggle, open: this.expanded, ref: (el) => (this.details = el) }, h("summary", null, h("slot", { name: "summary" }), h("span", { class: "mg-c-details__toggle" }, h("mg-icon", { icon: "chevron-up", size: "small", class: { 'mg-c-details__toggle-icon': true, 'mg-c-details__toggle-icon--reverse': !this.expanded } }), h("span", { class: { 'mg-u-visually-hidden': this.hideSummary } }, this.expanded ? this.toggleOpened : this.toggleClosed))), h("div", { class: "mg-c-details__details" }, h("slot", { name: "details" }))));
|
|
669
540
|
}
|
|
670
541
|
static get watchers() { return {
|
|
671
542
|
"toggleClosed": ["validateTitles"],
|
|
@@ -675,7 +546,7 @@ const MgDetails = class {
|
|
|
675
546
|
};
|
|
676
547
|
MgDetails.style = mgDetailsCss;
|
|
677
548
|
|
|
678
|
-
const mgDividerCss = ".mg-divider{
|
|
549
|
+
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%}";
|
|
679
550
|
|
|
680
551
|
const MgDivider = class {
|
|
681
552
|
constructor(hostRef) {
|
|
@@ -688,14 +559,14 @@ const MgDivider = class {
|
|
|
688
559
|
*/
|
|
689
560
|
render() {
|
|
690
561
|
return (h("div", { class: {
|
|
691
|
-
'mg-divider': true,
|
|
692
|
-
'mg-divider--full': this.size === 'full',
|
|
562
|
+
'mg-c-divider': true,
|
|
563
|
+
'mg-c-divider--full': this.size === 'full',
|
|
693
564
|
} }));
|
|
694
565
|
}
|
|
695
566
|
};
|
|
696
567
|
MgDivider.style = mgDividerCss;
|
|
697
568
|
|
|
698
|
-
const mgFormCss = ".is-asterisk{color:hsl(var(--color-danger))}.mg-
|
|
569
|
+
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}";
|
|
699
570
|
|
|
700
571
|
const MgForm = class {
|
|
701
572
|
constructor(hostRef) {
|
|
@@ -703,7 +574,7 @@ const MgForm = class {
|
|
|
703
574
|
this.formValid = createEvent(this, "form-valid", 7);
|
|
704
575
|
this.formSubmit = createEvent(this, "form-submit", 7);
|
|
705
576
|
// Classes
|
|
706
|
-
this.classAllRequired = 'mg-form--all-required';
|
|
577
|
+
this.classAllRequired = 'mg-c-form--all-required';
|
|
707
578
|
/**
|
|
708
579
|
* Define required message based on mg-inputs required elements
|
|
709
580
|
*/
|
|
@@ -783,7 +654,7 @@ const MgForm = class {
|
|
|
783
654
|
this.disabled = false;
|
|
784
655
|
this.valid = undefined;
|
|
785
656
|
this.invalid = undefined;
|
|
786
|
-
this.classCollection = new ClassList(['mg-form']);
|
|
657
|
+
this.classCollection = new ClassList(['mg-c-form']);
|
|
787
658
|
this.requiredMessage = undefined;
|
|
788
659
|
}
|
|
789
660
|
handleAttributeChange() {
|
|
@@ -791,7 +662,7 @@ const MgForm = class {
|
|
|
791
662
|
this.setRequiredMessage();
|
|
792
663
|
}
|
|
793
664
|
/**
|
|
794
|
-
*
|
|
665
|
+
* Display input error if it exists.
|
|
795
666
|
*/
|
|
796
667
|
async displayError() {
|
|
797
668
|
if (!this.readonly) {
|
|
@@ -1245,7 +1116,7 @@ const icons = {
|
|
|
1245
1116
|
'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>'
|
|
1246
1117
|
};
|
|
1247
1118
|
|
|
1248
|
-
const mgIconCss = ".
|
|
1119
|
+
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)}}";
|
|
1249
1120
|
|
|
1250
1121
|
const MgIcon = class {
|
|
1251
1122
|
constructor(hostRef) {
|
|
@@ -1275,15 +1146,15 @@ const MgIcon = class {
|
|
|
1275
1146
|
this.variant = undefined;
|
|
1276
1147
|
this.variantStyle = undefined;
|
|
1277
1148
|
this.spin = false;
|
|
1278
|
-
this.classCollection = new ClassList(['mg-icon']);
|
|
1149
|
+
this.classCollection = new ClassList(['mg-c-icon']);
|
|
1279
1150
|
}
|
|
1280
1151
|
validateIcon(newValue, oldValue) {
|
|
1281
1152
|
if (!iconList.includes(newValue))
|
|
1282
1153
|
throw new Error(`<mg-icon> prop "icon" must be one of: ${iconList.join(', ')}`);
|
|
1283
1154
|
else {
|
|
1284
1155
|
if (oldValue !== undefined)
|
|
1285
|
-
this.classCollection.delete(`mg-icon--${oldValue}`);
|
|
1286
|
-
this.classCollection.add(`mg-icon--${newValue}`);
|
|
1156
|
+
this.classCollection.delete(`mg-c-icon--${oldValue}`);
|
|
1157
|
+
this.classCollection.add(`mg-c-icon--${newValue}`);
|
|
1287
1158
|
this.renderIcon(newValue);
|
|
1288
1159
|
}
|
|
1289
1160
|
}
|
|
@@ -1292,8 +1163,8 @@ const MgIcon = class {
|
|
|
1292
1163
|
throw new Error(`<mg-icon> prop "size" must be one of: ${sizes$1.join(', ')}`);
|
|
1293
1164
|
else {
|
|
1294
1165
|
if (oldValue !== undefined)
|
|
1295
|
-
this.classCollection.delete(`mg-icon--size-${oldValue}`);
|
|
1296
|
-
this.classCollection.add(`mg-icon--size-${newValue}`);
|
|
1166
|
+
this.classCollection.delete(`mg-c-icon--size-${oldValue}`);
|
|
1167
|
+
this.classCollection.add(`mg-c-icon--size-${newValue}`);
|
|
1297
1168
|
}
|
|
1298
1169
|
}
|
|
1299
1170
|
validateVariant(newValue, oldValue) {
|
|
@@ -1303,8 +1174,8 @@ const MgIcon = class {
|
|
|
1303
1174
|
else {
|
|
1304
1175
|
this.setDefaultVariantStyle();
|
|
1305
1176
|
if (oldValue !== undefined)
|
|
1306
|
-
this.classCollection.delete(`mg-icon--variant-${oldValue}`);
|
|
1307
|
-
this.classCollection.add(`mg-icon--variant-${newValue}`);
|
|
1177
|
+
this.classCollection.delete(`mg-c-icon--variant-${oldValue}`);
|
|
1178
|
+
this.classCollection.add(`mg-c-icon--variant-${newValue}`);
|
|
1308
1179
|
}
|
|
1309
1180
|
}
|
|
1310
1181
|
}
|
|
@@ -1314,19 +1185,17 @@ const MgIcon = class {
|
|
|
1314
1185
|
throw new Error(`<mg-icon> prop "variantStyle" must be one of: ${variantStyles.join(', ')}`);
|
|
1315
1186
|
else {
|
|
1316
1187
|
if (oldValue !== undefined)
|
|
1317
|
-
this.classCollection.delete(`mg-icon--variant-style-${oldValue}`);
|
|
1318
|
-
this.classCollection.add(`mg-icon--variant-style-${newValue}`);
|
|
1188
|
+
this.classCollection.delete(`mg-c-icon--variant-style-${oldValue}`);
|
|
1189
|
+
this.classCollection.add(`mg-c-icon--variant-style-${newValue}`);
|
|
1319
1190
|
}
|
|
1320
1191
|
}
|
|
1321
1192
|
}
|
|
1322
1193
|
handleSpin(newValue) {
|
|
1323
1194
|
if (newValue) {
|
|
1324
|
-
this.classCollection.add('mg-icon--spin');
|
|
1325
|
-
this.classCollection.add('mg-a11y-animation');
|
|
1195
|
+
this.classCollection.add('mg-c-icon--spin');
|
|
1326
1196
|
}
|
|
1327
1197
|
else {
|
|
1328
|
-
this.classCollection.delete('mg-icon--spin');
|
|
1329
|
-
this.classCollection.delete('mg-a11y-animation');
|
|
1198
|
+
this.classCollection.delete('mg-c-icon--spin');
|
|
1330
1199
|
}
|
|
1331
1200
|
}
|
|
1332
1201
|
/**
|
|
@@ -1358,7 +1227,7 @@ const MgIcon = class {
|
|
|
1358
1227
|
};
|
|
1359
1228
|
MgIcon.style = mgIconCss;
|
|
1360
1229
|
|
|
1361
|
-
const mgIllustratedMessageCss = ".mg-illustrated-message{display:flex;flex-direction:column;justify-content:center;
|
|
1230
|
+
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}";
|
|
1362
1231
|
|
|
1363
1232
|
const MgIllustratedMessage = class {
|
|
1364
1233
|
constructor(hostRef) {
|
|
@@ -1389,12 +1258,12 @@ const MgIllustratedMessage = class {
|
|
|
1389
1258
|
*/
|
|
1390
1259
|
render() {
|
|
1391
1260
|
return (h("div", { class: {
|
|
1392
|
-
'mg-illustrated-message': true,
|
|
1393
|
-
'mg-illustrated-message--horizontal': this.direction === 'horizontal',
|
|
1261
|
+
'mg-c-illustrated-message': true,
|
|
1262
|
+
'mg-c-illustrated-message--horizontal': this.direction === 'horizontal',
|
|
1394
1263
|
} }, h("div", { class: {
|
|
1395
|
-
'mg-illustrated-message__illustration': true,
|
|
1396
|
-
'mg-illustrated-message__illustration--small': this.size === 'small',
|
|
1397
|
-
} }, h("slot", { name: "illustration" })), h("div", { class: "mg-illustrated-message__slots" }, h("div", { class: "mg-illustrated-message__title" }, h("slot", { name: "title" })), h("div", { class: "mg-illustrated-message__details" }, h("slot", { name: "details" })))));
|
|
1264
|
+
'mg-c-illustrated-message__illustration': true,
|
|
1265
|
+
'mg-c-illustrated-message__illustration--small': this.size === 'small',
|
|
1266
|
+
} }, h("slot", { name: "illustration" })), h("div", { class: "mg-c-illustrated-message__slots" }, h("div", { class: "mg-c-illustrated-message__title" }, h("slot", { name: "title" })), h("div", { class: "mg-c-illustrated-message__details" }, h("slot", { name: "details" })))));
|
|
1398
1267
|
}
|
|
1399
1268
|
get element() { return getElement(this); }
|
|
1400
1269
|
};
|
|
@@ -1426,20 +1295,20 @@ const applyAriadescribedBy = (children, ariaDescribedbyIDs, utils) => utils.map(
|
|
|
1426
1295
|
* @param props - MgInput Interface Props
|
|
1427
1296
|
*/
|
|
1428
1297
|
const manageClasses = (props) => {
|
|
1429
|
-
props.classCollection.add('mg-input');
|
|
1298
|
+
props.classCollection.add('mg-c-input');
|
|
1430
1299
|
if (props.labelOnTop)
|
|
1431
|
-
props.classCollection.add('mg-input--label-on-top');
|
|
1300
|
+
props.classCollection.add('mg-c-input--label-on-top');
|
|
1432
1301
|
else
|
|
1433
|
-
props.classCollection.delete('mg-input--label-on-top');
|
|
1302
|
+
props.classCollection.delete('mg-c-input--label-on-top');
|
|
1434
1303
|
if (props.readonly)
|
|
1435
|
-
props.classCollection.add('mg-input--readonly');
|
|
1304
|
+
props.classCollection.add('mg-c-input--readonly');
|
|
1436
1305
|
else
|
|
1437
|
-
props.classCollection.delete('mg-input--readonly');
|
|
1306
|
+
props.classCollection.delete('mg-c-input--readonly');
|
|
1438
1307
|
widths.forEach(width => {
|
|
1439
|
-
props.classCollection.delete(`mg-input--width-${width}`);
|
|
1308
|
+
props.classCollection.delete(`mg-c-input--width-${width}`);
|
|
1440
1309
|
});
|
|
1441
1310
|
if (props.mgWidth !== undefined)
|
|
1442
|
-
props.classCollection.add(`mg-input--width-${props.mgWidth}`);
|
|
1311
|
+
props.classCollection.add(`mg-c-input--width-${props.mgWidth}`);
|
|
1443
1312
|
};
|
|
1444
1313
|
/**
|
|
1445
1314
|
* Get tagname
|
|
@@ -1458,10 +1327,10 @@ const MgInput = (props, children, utils) => {
|
|
|
1458
1327
|
/**
|
|
1459
1328
|
* Check required properties
|
|
1460
1329
|
*/
|
|
1461
|
-
if (
|
|
1330
|
+
if (!isValidString(props.identifier)) {
|
|
1462
1331
|
throw new Error('<mg-input> prop "identifier" is required.');
|
|
1463
1332
|
}
|
|
1464
|
-
if (
|
|
1333
|
+
if (!isValidString(props.label)) {
|
|
1465
1334
|
throw new Error('<mg-input> prop "label" is required.');
|
|
1466
1335
|
}
|
|
1467
1336
|
if (props.labelOnTop && props.labelHide) {
|
|
@@ -1517,19 +1386,19 @@ const MgInput = (props, children, utils) => {
|
|
|
1517
1386
|
* Display asterisk only if not disabled and not readonly
|
|
1518
1387
|
* @returns mg-input-title
|
|
1519
1388
|
*/
|
|
1520
|
-
const getInputTitle = () => (h("mg-input-title", { identifier: props.identifier, class: props.labelHide ? '
|
|
1389
|
+
const getInputTitle = () => (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));
|
|
1521
1390
|
return (h(TagName, { class: props.classCollection.join() },
|
|
1522
|
-
props.labelOnTop ? (h("div", { class: "mg-input__title" },
|
|
1391
|
+
props.labelOnTop ? (h("div", { class: "mg-c-input__title" },
|
|
1523
1392
|
getInputTitle(),
|
|
1524
1393
|
!props.readonly && props.tooltip && getTooltip())) : (getInputTitle()),
|
|
1525
|
-
props.readonly ? (h("div", { class: "mg-input__input-container" },
|
|
1394
|
+
props.readonly ? (h("div", { class: "mg-c-input__input-container" },
|
|
1526
1395
|
h("strong", null, props.readonlyValue),
|
|
1527
|
-
children.filter(child => child
|
|
1528
|
-
h("div", { class: { 'mg-input__input': true, 'mg-input__input--has-error': props.errorMessage !== undefined } },
|
|
1396
|
+
children.filter(child => Object.values(child).includes('append-input')))) : (h("div", { class: "mg-c-input__input-container" },
|
|
1397
|
+
h("div", { class: { 'mg-c-input__input': true, 'mg-c-input__input--has-error': props.errorMessage !== undefined } },
|
|
1529
1398
|
applyAriadescribedBy(children, ariaDescribedbyIDs, utils),
|
|
1530
1399
|
!props.labelOnTop && props.tooltip && getTooltip()),
|
|
1531
|
-
props.helpText && h("div", { id: helpTextId, class: "mg-input__help-text", innerHTML: props.helpText }),
|
|
1532
|
-
props.errorMessage && !props.readonly && !props.disabled && (h("div", { id: helpTextErrorId, class: "mg-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
|
|
1400
|
+
props.helpText && h("div", { id: helpTextId, class: "mg-c-input__help-text", innerHTML: props.helpText }),
|
|
1401
|
+
props.errorMessage && !props.readonly && !props.disabled && (h("div", { id: helpTextErrorId, class: "mg-c-input__error", innerHTML: props.errorMessage, "aria-live": "assertive" }))))));
|
|
1533
1402
|
};
|
|
1534
1403
|
|
|
1535
1404
|
/**
|
|
@@ -1561,16 +1430,16 @@ var SectionTitleKind;
|
|
|
1561
1430
|
const MgInputCheckboxList = (props) => (
|
|
1562
1431
|
// eslint-disable-next-line jsx-a11y/no-redundant-roles
|
|
1563
1432
|
h("ul", { class: {
|
|
1564
|
-
'mg-input__input-group-container': true,
|
|
1565
|
-
'mg-input__input-group-container--vertical': props.inputVerticalList || (props.type === 'multi' && !props.readonly),
|
|
1566
|
-
'mg-input__input-checkbox-multi-inputs': props.type === 'multi' && !props.readonly,
|
|
1433
|
+
'mg-c-input__input-group-container': true,
|
|
1434
|
+
'mg-c-input__input-group-container--vertical': props.inputVerticalList || (props.type === 'multi' && !props.readonly),
|
|
1435
|
+
'mg-c-input__input-checkbox-multi-inputs': props.type === 'multi' && !props.readonly,
|
|
1567
1436
|
}, 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
|
|
1568
1437
|
.filter(item => !props.readonly || item.value)
|
|
1569
|
-
.map(input => (h("li", { key: input.
|
|
1570
|
-
h("input", { type: "checkbox", id: input.
|
|
1571
|
-
h("label", { htmlFor: input.
|
|
1438
|
+
.map(input => (h("li", { key: input._id, class: { 'mg-c-input__input-group': true, 'mg-c-input__input-group--disabled': props.disabled || input.disabled } },
|
|
1439
|
+
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 }),
|
|
1440
|
+
h("label", { htmlFor: input._id }, input.title))))));
|
|
1572
1441
|
|
|
1573
|
-
const mgInputCheckboxCss = ":host{display:block}.mg-input{display:flex;
|
|
1442
|
+
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}";
|
|
1574
1443
|
|
|
1575
1444
|
/**
|
|
1576
1445
|
* type CheckboxItem validation function
|
|
@@ -1586,8 +1455,9 @@ const MgInputCheckbox = class {
|
|
|
1586
1455
|
this.inputValid = createEvent(this, "input-valid", 7);
|
|
1587
1456
|
// hasDisplayedError (triggered by blur event)
|
|
1588
1457
|
this.hasDisplayedError = false;
|
|
1458
|
+
this.mode = 'custom';
|
|
1589
1459
|
// style
|
|
1590
|
-
this.baseClassName = 'mg-input--checkbox';
|
|
1460
|
+
this.baseClassName = 'mg-c-input--checkbox';
|
|
1591
1461
|
// "multi" setup
|
|
1592
1462
|
this.multiStart = 5;
|
|
1593
1463
|
this.searchStart = 10;
|
|
@@ -1596,7 +1466,7 @@ const MgInputCheckbox = class {
|
|
|
1596
1466
|
* @param event - input event
|
|
1597
1467
|
*/
|
|
1598
1468
|
this.handleInput = (event) => {
|
|
1599
|
-
this.updateCheckboxItems('value', Boolean(event.target.checked), item => item.
|
|
1469
|
+
this.updateCheckboxItems('value', Boolean(event.target.checked), item => item._id === event.target.id);
|
|
1600
1470
|
this.updateValues();
|
|
1601
1471
|
this.checkValidity();
|
|
1602
1472
|
};
|
|
@@ -1660,7 +1530,13 @@ const MgInputCheckbox = class {
|
|
|
1660
1530
|
* Update values
|
|
1661
1531
|
*/
|
|
1662
1532
|
this.updateValues = () => {
|
|
1663
|
-
this.value = this.checkboxItems.map(o =>
|
|
1533
|
+
this.value = this.checkboxItems.map(o => {
|
|
1534
|
+
delete o._handleBlur;
|
|
1535
|
+
delete o._handleInput;
|
|
1536
|
+
delete o._handleKeydown;
|
|
1537
|
+
delete o._id;
|
|
1538
|
+
return o;
|
|
1539
|
+
});
|
|
1664
1540
|
};
|
|
1665
1541
|
/**
|
|
1666
1542
|
* get invalid element
|
|
@@ -1674,7 +1550,7 @@ const MgInputCheckbox = class {
|
|
|
1674
1550
|
* Method to update searchResults
|
|
1675
1551
|
*/
|
|
1676
1552
|
this.updateSearchResults = () => {
|
|
1677
|
-
this.searchResults = this.checkboxItems.filter(item => item.title
|
|
1553
|
+
this.searchResults = this.checkboxItems.filter(item => cleanString(item.title).includes(cleanString(this.searchValue)));
|
|
1678
1554
|
};
|
|
1679
1555
|
/**
|
|
1680
1556
|
* Methode to validate if one of inputs value is checked id required
|
|
@@ -1685,10 +1561,7 @@ const MgInputCheckbox = class {
|
|
|
1685
1561
|
* Check if input is valid
|
|
1686
1562
|
*/
|
|
1687
1563
|
this.checkValidity = () => {
|
|
1688
|
-
this.
|
|
1689
|
-
this.invalid = !this.valid;
|
|
1690
|
-
// We need to send valid event even if it is the same value
|
|
1691
|
-
this.inputValid.emit(this.valid);
|
|
1564
|
+
this.setValidity(this.readonly || this.disabled || (this.getInvalidElement() === undefined && this.validateRequired()));
|
|
1692
1565
|
};
|
|
1693
1566
|
/**
|
|
1694
1567
|
* Render button text
|
|
@@ -1706,12 +1579,17 @@ const MgInputCheckbox = class {
|
|
|
1706
1579
|
/**
|
|
1707
1580
|
* Set input error message
|
|
1708
1581
|
* @param displayError - dispay error condition
|
|
1582
|
+
* @param errorMessage - errorMessage override
|
|
1709
1583
|
*/
|
|
1710
|
-
this.setErrorMessage = (displayError = true) => {
|
|
1584
|
+
this.setErrorMessage = (displayError = true, errorMessage) => {
|
|
1711
1585
|
// Set error message
|
|
1712
1586
|
this.errorMessage = undefined;
|
|
1713
|
-
if (displayError && !this.valid
|
|
1714
|
-
|
|
1587
|
+
if (displayError && !this.valid) {
|
|
1588
|
+
if (errorMessage !== undefined)
|
|
1589
|
+
this.errorMessage = errorMessage;
|
|
1590
|
+
else if (!this.validateRequired())
|
|
1591
|
+
this.errorMessage = this.messages.errors.required;
|
|
1592
|
+
}
|
|
1715
1593
|
};
|
|
1716
1594
|
/**
|
|
1717
1595
|
* Method to get mg-popover identifier
|
|
@@ -1724,7 +1602,7 @@ const MgInputCheckbox = class {
|
|
|
1724
1602
|
*/
|
|
1725
1603
|
this.getDisplayItems = () => (this.searchValue.length > 0 ? this.searchResults : this.checkboxItems);
|
|
1726
1604
|
this.value = undefined;
|
|
1727
|
-
this.type =
|
|
1605
|
+
this.type = undefined;
|
|
1728
1606
|
this.identifier = undefined;
|
|
1729
1607
|
this.name = this.identifier;
|
|
1730
1608
|
this.label = undefined;
|
|
@@ -1748,16 +1626,7 @@ const MgInputCheckbox = class {
|
|
|
1748
1626
|
}
|
|
1749
1627
|
validateValue(newValue) {
|
|
1750
1628
|
if (isCheckboxItems(newValue)) {
|
|
1751
|
-
this.checkboxItems = newValue.map((item, index) => ({
|
|
1752
|
-
id: `${this.identifier}_${index}`,
|
|
1753
|
-
title: item.title,
|
|
1754
|
-
value: item.value,
|
|
1755
|
-
disabled: item.disabled,
|
|
1756
|
-
required: item.required,
|
|
1757
|
-
handleInput: this.handleInput.bind(this),
|
|
1758
|
-
handleBlur: this.handleBlur.bind(this),
|
|
1759
|
-
handleKeydown: this.handleKeydown.bind(this),
|
|
1760
|
-
}));
|
|
1629
|
+
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) })));
|
|
1761
1630
|
this.valueChange.emit(newValue);
|
|
1762
1631
|
}
|
|
1763
1632
|
else {
|
|
@@ -1765,9 +1634,13 @@ const MgInputCheckbox = class {
|
|
|
1765
1634
|
}
|
|
1766
1635
|
}
|
|
1767
1636
|
validateType(newValue) {
|
|
1768
|
-
if (!checkboxTypes.includes(newValue)) {
|
|
1637
|
+
if (newValue !== undefined && !checkboxTypes.includes(newValue)) {
|
|
1769
1638
|
throw new Error('<mg-input-checkbox> prop "type" must be a CheckboxType.');
|
|
1770
1639
|
}
|
|
1640
|
+
else if (newValue === undefined) {
|
|
1641
|
+
this.mode = 'auto';
|
|
1642
|
+
this.type = checkboxTypes[0];
|
|
1643
|
+
}
|
|
1771
1644
|
else {
|
|
1772
1645
|
const className = `${this.baseClassName}-multi`;
|
|
1773
1646
|
if (newValue === 'multi') {
|
|
@@ -1799,9 +1672,9 @@ const MgInputCheckbox = class {
|
|
|
1799
1672
|
this.classCollection.delete(className);
|
|
1800
1673
|
}
|
|
1801
1674
|
validateCheckboxItems(newValue) {
|
|
1802
|
-
if (newValue.length > this.multiStart)
|
|
1675
|
+
if (this.mode === 'auto' && newValue.length > this.multiStart)
|
|
1803
1676
|
this.type = 'multi';
|
|
1804
|
-
if (newValue.length > this.searchStart) {
|
|
1677
|
+
if (this.mode === 'auto' || (this.type === 'multi' && newValue.length > this.searchStart)) {
|
|
1805
1678
|
this.displaySearchInput = this.type === 'multi';
|
|
1806
1679
|
// refresh search values
|
|
1807
1680
|
this.updateSearchResults();
|
|
@@ -1812,13 +1685,44 @@ const MgInputCheckbox = class {
|
|
|
1812
1685
|
this.updateSearchResults();
|
|
1813
1686
|
}
|
|
1814
1687
|
/**
|
|
1815
|
-
*
|
|
1688
|
+
* Display input error if it exists.
|
|
1816
1689
|
*/
|
|
1817
1690
|
async displayError() {
|
|
1818
1691
|
this.checkValidity();
|
|
1819
1692
|
this.setErrorMessage();
|
|
1820
1693
|
this.hasDisplayedError = this.invalid;
|
|
1821
1694
|
}
|
|
1695
|
+
/**
|
|
1696
|
+
* Set an error and display a custom error message.
|
|
1697
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
1698
|
+
* It must be paired with an error message to display for the given context.
|
|
1699
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
1700
|
+
* @param valid - value indicating the validity
|
|
1701
|
+
* @param errorMessage - the error message to display
|
|
1702
|
+
*/
|
|
1703
|
+
async setError(valid, errorMessage) {
|
|
1704
|
+
if (typeof valid !== 'boolean') {
|
|
1705
|
+
throw new Error('<mg-input-checkbox> method "setError()" param "valid" must be a boolean');
|
|
1706
|
+
}
|
|
1707
|
+
else if (!isValidString(errorMessage)) {
|
|
1708
|
+
throw new Error('<mg-input-checkbox> method "setError()" param "errorMessage" must be a string');
|
|
1709
|
+
}
|
|
1710
|
+
else {
|
|
1711
|
+
this.setValidity(valid);
|
|
1712
|
+
this.setErrorMessage(undefined, valid ? undefined : errorMessage);
|
|
1713
|
+
this.hasDisplayedError = this.invalid;
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
/**
|
|
1717
|
+
* Method to set validity values
|
|
1718
|
+
* @param newValue - valid new value
|
|
1719
|
+
*/
|
|
1720
|
+
setValidity(newValue) {
|
|
1721
|
+
this.valid = newValue;
|
|
1722
|
+
this.invalid = !this.valid;
|
|
1723
|
+
// We need to send valid event even if it is the same value
|
|
1724
|
+
this.inputValid.emit(this.valid);
|
|
1725
|
+
}
|
|
1822
1726
|
/**
|
|
1823
1727
|
* Update ckecboxes item
|
|
1824
1728
|
* @param key - property to update
|
|
@@ -1869,9 +1773,9 @@ const MgInputCheckbox = class {
|
|
|
1869
1773
|
*/
|
|
1870
1774
|
renderCheckboxMultiDisplaySelectedValues(selectedValuesNb) {
|
|
1871
1775
|
if (this.displaySelectedValues) {
|
|
1872
|
-
return (selectedValuesNb > 0 && (h("ul", { role: "list", class: "mg-input__input-checkbox-multi-values-container" }, this.checkboxItems
|
|
1776
|
+
return (selectedValuesNb > 0 && (h("ul", { role: "list", class: "mg-c-input__input-checkbox-multi-values-container" }, this.checkboxItems
|
|
1873
1777
|
.filter(({ value }) => value)
|
|
1874
|
-
.map(({ title }) => (h("li", { class: "mg-input__input-checkbox-multi-value", key: title }, title))))));
|
|
1778
|
+
.map(({ title }) => (h("li", { class: "mg-c-input__input-checkbox-multi-value", key: title }, title))))));
|
|
1875
1779
|
}
|
|
1876
1780
|
else {
|
|
1877
1781
|
return h("strong", null, this.messages.input.checkbox[selectedValuesNb > 1 ? 'selectedValues' : 'selectedValue'].replace('{nb}', selectedValuesNb));
|
|
@@ -1905,13 +1809,13 @@ const MgInputCheckbox = class {
|
|
|
1905
1809
|
renderCheckboxMulti() {
|
|
1906
1810
|
const selectedValuesNb = this.checkboxItems.filter(({ value }) => value).length;
|
|
1907
1811
|
const checkboxes = this.getDisplayItems();
|
|
1908
|
-
return (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), h("mg-popover", { arrowHide: true, identifier: this.getMgPopoverIdentifier(), "onDisplay-change": this.handleMgPopoverDisplayChange, ref: (el) => {
|
|
1812
|
+
return (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), h("mg-popover", { arrowHide: true, identifier: this.getMgPopoverIdentifier(), "onDisplay-change": this.handleMgPopoverDisplayChange, ref: (el) => {
|
|
1909
1813
|
if (Boolean(el))
|
|
1910
1814
|
this.mgPopover = el;
|
|
1911
1815
|
} }, h("mg-button", { variant: "secondary" }, h("mg-icon", { icon: "list" }), this.renderButtonText(selectedValuesNb)), h("div", { slot: "content" }, this.displaySearchInput && [
|
|
1912
1816
|
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" }),
|
|
1913
|
-
h("p", { key: "search-results", role: "status", class: "
|
|
1914
|
-
], this.displaySearchInput ? (h("div", { class: "mg-input__input-checkbox-multi-sections-container" }, this.renderCheckboxBySection(checkboxes))) : (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 && h("p", { class: "mg-input__input-checkbox-multi-no-result" }, this.messages.input.checkbox.noResult)))));
|
|
1817
|
+
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']}`),
|
|
1818
|
+
], this.displaySearchInput ? (h("div", { class: "mg-c-input__input-checkbox-multi-sections-container" }, this.renderCheckboxBySection(checkboxes))) : (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 && h("p", { class: "mg-c-input__input-checkbox-multi-no-result" }, this.messages.input.checkbox.noResult)))));
|
|
1915
1819
|
}
|
|
1916
1820
|
/**
|
|
1917
1821
|
* Render
|
|
@@ -1952,7 +1856,7 @@ const MgInputCheckboxPaginated = class {
|
|
|
1952
1856
|
this.massAction.emit(this.sectionKind);
|
|
1953
1857
|
};
|
|
1954
1858
|
/**
|
|
1955
|
-
*
|
|
1859
|
+
* Toggle items button handler
|
|
1956
1860
|
*/
|
|
1957
1861
|
this.handleToggleClick = () => {
|
|
1958
1862
|
this.expanded = !this.expanded;
|
|
@@ -2029,7 +1933,7 @@ const MgInputCheckboxPaginated = class {
|
|
|
2029
1933
|
const [checkboxItemsFromIndex, checkboxItemsToIndex] = this.getFromToIndexes();
|
|
2030
1934
|
const itemsContainerId = `items-${this.sectionKind}-container`;
|
|
2031
1935
|
const getText = (checkboxes) => h("em", null, `${this.messages[checkboxes.length > 1 ? 'titlePlurial' : 'title']} (${checkboxes.length})`);
|
|
2032
|
-
return (h(Host, { hidden: this.checkboxes.length < 1 }, h("div", { class: "mg-input__input-checkbox-multi-section-header" }, this.titleKind === SectionTitleKind.BUTTON ? (h("mg-button", { variant: "flat", onClick: this.handleToggleClick, "aria-controls": itemsContainerId, "aria-expanded": this.expanded.toString() }, h("mg-icon", { icon: this.expanded ? 'chevron-up' : 'chevron-down', size: "small" }), h("span", { class: "mg-input__input-checkbox-multi-text" }, getText(this.checkboxes)))) : (h("p", { class: "mg-input__input-checkbox-multi-title" }, getText(this.checkboxes))), ((this.sectionKind === SectionKind.SELECTED && this.expanded) || this.sectionKind === SectionKind.NOT_SELECTED) && (h("mg-button", { variant: "link", onClick: this.massActionHandler }, this.messages.action)), this.expanded && this.getPageCount(this.checkboxes) > 1 && (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}` }))), h("div", { hidden: !this.expanded, id: itemsContainerId, class: "mg-input__input-checkbox-multi-section-content" }, 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 }))));
|
|
1936
|
+
return (h(Host, { hidden: this.checkboxes.length < 1 }, h("div", { class: "mg-c-input__input-checkbox-multi-section-header" }, this.titleKind === SectionTitleKind.BUTTON ? (h("mg-button", { variant: "flat", onClick: this.handleToggleClick, "aria-controls": itemsContainerId, "aria-expanded": this.expanded.toString() }, h("mg-icon", { icon: this.expanded ? 'chevron-up' : 'chevron-down', size: "small" }), h("span", { class: "mg-c-input__input-checkbox-multi-text" }, getText(this.checkboxes)))) : (h("p", { class: "mg-c-input__input-checkbox-multi-title" }, getText(this.checkboxes))), ((this.sectionKind === SectionKind.SELECTED && this.expanded) || this.sectionKind === SectionKind.NOT_SELECTED) && (h("mg-button", { variant: "link", onClick: this.massActionHandler }, this.messages.action)), this.expanded && this.getPageCount(this.checkboxes) > 1 && (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}` }))), h("div", { hidden: !this.expanded, id: itemsContainerId, class: "mg-c-input__input-checkbox-multi-section-content" }, 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 }))));
|
|
2033
1937
|
}
|
|
2034
1938
|
static get watchers() { return {
|
|
2035
1939
|
"checkboxes": ["validateCheckboxes"],
|
|
@@ -2045,7 +1949,7 @@ var InputError$1;
|
|
|
2045
1949
|
InputError["REQUIRED"] = "required";
|
|
2046
1950
|
})(InputError$1 || (InputError$1 = {}));
|
|
2047
1951
|
|
|
2048
|
-
const mgInputDateCss = ":host{display:block}.mg-input{display:flex;
|
|
1952
|
+
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}}";
|
|
2049
1953
|
|
|
2050
1954
|
const MgInputDate = class {
|
|
2051
1955
|
constructor(hostRef) {
|
|
@@ -2075,10 +1979,7 @@ const MgInputDate = class {
|
|
|
2075
1979
|
*/
|
|
2076
1980
|
this.checkValidity = () => {
|
|
2077
1981
|
var _a;
|
|
2078
|
-
this.
|
|
2079
|
-
this.invalid = !this.valid;
|
|
2080
|
-
// We need to send valid event even if it is the same value
|
|
2081
|
-
this.inputValid.emit(this.valid);
|
|
1982
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true));
|
|
2082
1983
|
};
|
|
2083
1984
|
/**
|
|
2084
1985
|
* get input error code
|
|
@@ -2107,15 +2008,19 @@ const MgInputDate = class {
|
|
|
2107
2008
|
};
|
|
2108
2009
|
/**
|
|
2109
2010
|
* Check input errors
|
|
2011
|
+
* @param errorMessage - errorMessage override
|
|
2110
2012
|
*/
|
|
2111
|
-
this.setErrorMessage = () => {
|
|
2013
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2112
2014
|
var _a;
|
|
2113
2015
|
// Set error message
|
|
2114
2016
|
this.errorMessage = undefined;
|
|
2115
2017
|
if (!this.valid) {
|
|
2116
2018
|
const inputError = this.getInputError();
|
|
2019
|
+
if (errorMessage !== undefined) {
|
|
2020
|
+
this.errorMessage = errorMessage;
|
|
2021
|
+
}
|
|
2117
2022
|
// required
|
|
2118
|
-
if (inputError === InputError$1.REQUIRED) {
|
|
2023
|
+
else if (inputError === InputError$1.REQUIRED) {
|
|
2119
2024
|
this.errorMessage = this.messages.errors[inputError];
|
|
2120
2025
|
}
|
|
2121
2026
|
// min, max & minMax
|
|
@@ -2144,7 +2049,7 @@ const MgInputDate = class {
|
|
|
2144
2049
|
this.invalid = undefined;
|
|
2145
2050
|
this.min = undefined;
|
|
2146
2051
|
this.max = undefined;
|
|
2147
|
-
this.classCollection = new ClassList(['mg-input--date']);
|
|
2052
|
+
this.classCollection = new ClassList(['mg-c-input--date']);
|
|
2148
2053
|
this.errorMessage = undefined;
|
|
2149
2054
|
}
|
|
2150
2055
|
validateValue(newValue) {
|
|
@@ -2174,13 +2079,44 @@ const MgInputDate = class {
|
|
|
2174
2079
|
}
|
|
2175
2080
|
}
|
|
2176
2081
|
/**
|
|
2177
|
-
*
|
|
2082
|
+
* Display input error if it exists.
|
|
2178
2083
|
*/
|
|
2179
2084
|
async displayError() {
|
|
2180
2085
|
this.checkValidity();
|
|
2181
2086
|
this.setErrorMessage();
|
|
2182
2087
|
this.hasDisplayedError = this.invalid;
|
|
2183
2088
|
}
|
|
2089
|
+
/**
|
|
2090
|
+
* Set an error and display a custom error message.
|
|
2091
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2092
|
+
* It must be paired with an error message to display for the given context.
|
|
2093
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2094
|
+
* @param valid - value indicating the validity
|
|
2095
|
+
* @param errorMessage - the error message to display
|
|
2096
|
+
*/
|
|
2097
|
+
async setError(valid, errorMessage) {
|
|
2098
|
+
if (typeof valid !== 'boolean') {
|
|
2099
|
+
throw new Error('<mg-input-date> method "setError()" param "valid" must be a boolean');
|
|
2100
|
+
}
|
|
2101
|
+
else if (!isValidString(errorMessage)) {
|
|
2102
|
+
throw new Error('<mg-input-date> method "setError()" param "errorMessage" must be a string');
|
|
2103
|
+
}
|
|
2104
|
+
else {
|
|
2105
|
+
this.setValidity(valid);
|
|
2106
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2107
|
+
this.hasDisplayedError = this.invalid;
|
|
2108
|
+
}
|
|
2109
|
+
}
|
|
2110
|
+
/**
|
|
2111
|
+
* Method to set validity values
|
|
2112
|
+
* @param newValue - valid new value
|
|
2113
|
+
*/
|
|
2114
|
+
setValidity(newValue) {
|
|
2115
|
+
this.valid = newValue;
|
|
2116
|
+
this.invalid = !this.valid;
|
|
2117
|
+
// We need to send valid event even if it is the same value
|
|
2118
|
+
this.inputValid.emit(this.valid);
|
|
2119
|
+
}
|
|
2184
2120
|
/*************
|
|
2185
2121
|
* Lifecycle *
|
|
2186
2122
|
*************/
|
|
@@ -2209,7 +2145,7 @@ const MgInputDate = class {
|
|
|
2209
2145
|
* @returns HTML Element
|
|
2210
2146
|
*/
|
|
2211
2147
|
render() {
|
|
2212
|
-
return (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: localeDate(this.value, this.locale), tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, h("input", { type: "date", class: "mg-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) => {
|
|
2148
|
+
return (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: localeDate(this.value, this.locale), tooltip: this.tooltip, helpText: this.helpText, errorMessage: this.errorMessage, isFieldset: false }, 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) => {
|
|
2213
2149
|
if (el !== null)
|
|
2214
2150
|
this.input = el;
|
|
2215
2151
|
} })));
|
|
@@ -2238,7 +2174,7 @@ var InputError;
|
|
|
2238
2174
|
InputError["REQUIRED"] = "required";
|
|
2239
2175
|
})(InputError || (InputError = {}));
|
|
2240
2176
|
|
|
2241
|
-
const mgInputNumericCss = ":host{display:block}.mg-input{display:flex;
|
|
2177
|
+
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)}";
|
|
2242
2178
|
|
|
2243
2179
|
const MgInputNumeric = class {
|
|
2244
2180
|
constructor(hostRef) {
|
|
@@ -2278,20 +2214,21 @@ const MgInputNumeric = class {
|
|
|
2278
2214
|
* Check if input is valid
|
|
2279
2215
|
*/
|
|
2280
2216
|
this.checkValidity = () => {
|
|
2281
|
-
this.
|
|
2282
|
-
this.invalid = !this.valid;
|
|
2283
|
-
// We need to send valid event even if it is the same value
|
|
2284
|
-
this.inputValid.emit(this.valid);
|
|
2217
|
+
this.setValidity(this.readonly || this.disabled || this.getInputError() === null);
|
|
2285
2218
|
};
|
|
2286
2219
|
/**
|
|
2287
2220
|
* Set input error message
|
|
2221
|
+
* @param errorMessage - errorMessage override
|
|
2288
2222
|
*/
|
|
2289
|
-
this.setErrorMessage = () => {
|
|
2223
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2290
2224
|
// Set error message
|
|
2291
2225
|
this.errorMessage = undefined;
|
|
2292
2226
|
if (!this.valid) {
|
|
2293
2227
|
const inputError = this.getInputError();
|
|
2294
|
-
if (
|
|
2228
|
+
if (errorMessage !== undefined) {
|
|
2229
|
+
this.errorMessage = errorMessage;
|
|
2230
|
+
}
|
|
2231
|
+
else if (inputError === InputError.REQUIRED) {
|
|
2295
2232
|
this.errorMessage = this.messages.errors[inputError];
|
|
2296
2233
|
}
|
|
2297
2234
|
else {
|
|
@@ -2339,7 +2276,7 @@ const MgInputNumeric = class {
|
|
|
2339
2276
|
this.validateAppendSlot = () => {
|
|
2340
2277
|
const slotAppendInput = this.element.querySelector('[slot="append-input"]');
|
|
2341
2278
|
if (slotAppendInput !== null) {
|
|
2342
|
-
this.classCollection.add(slotAppendInput.nodeName === 'MG-BUTTON' ? 'mg-input--is-input-group-append' : 'mg-input--is-append-input-slot-content');
|
|
2279
|
+
this.classCollection.add(slotAppendInput.nodeName === 'MG-BUTTON' ? 'mg-c-input--is-input-group-append' : 'mg-c-input--is-append-input-slot-content');
|
|
2343
2280
|
}
|
|
2344
2281
|
};
|
|
2345
2282
|
this.value = undefined;
|
|
@@ -2363,7 +2300,7 @@ const MgInputNumeric = class {
|
|
|
2363
2300
|
this.decimalLength = 2;
|
|
2364
2301
|
this.valid = undefined;
|
|
2365
2302
|
this.invalid = undefined;
|
|
2366
|
-
this.classCollection = new ClassList(['mg-input--numeric']);
|
|
2303
|
+
this.classCollection = new ClassList(['mg-c-input--numeric']);
|
|
2367
2304
|
this.errorMessage = undefined;
|
|
2368
2305
|
this.hasFocus = false;
|
|
2369
2306
|
}
|
|
@@ -2385,36 +2322,6 @@ const MgInputNumeric = class {
|
|
|
2385
2322
|
this.updateValues(newValue);
|
|
2386
2323
|
}
|
|
2387
2324
|
}
|
|
2388
|
-
/**
|
|
2389
|
-
* Checks if the given value is valid according to the defined rules.
|
|
2390
|
-
* @param value - The input value to validate.
|
|
2391
|
-
* @param regex - The regular expression for validation.
|
|
2392
|
-
* @param integer - The integer part of the value.
|
|
2393
|
-
* @param decimal - The decimal part of the value.
|
|
2394
|
-
* @returns Returns true if the value is valid, otherwise false.
|
|
2395
|
-
*/
|
|
2396
|
-
isValidValue(value, regex, integer, decimal) {
|
|
2397
|
-
return ['', '-'].includes(value) || (value.match(regex) && integer.length <= this.integerLength && decimal.length <= (this.type === 'integer' ? 0 : this.decimalLength));
|
|
2398
|
-
}
|
|
2399
|
-
/**
|
|
2400
|
-
* Handles invalid input values and returns a corrected value.
|
|
2401
|
-
* @returns The corrected value.
|
|
2402
|
-
*/
|
|
2403
|
-
handleInvalidValue() {
|
|
2404
|
-
return this.storedValue !== undefined ? this.storedValue : null;
|
|
2405
|
-
}
|
|
2406
|
-
/**
|
|
2407
|
-
* Updates the component values based on the validated input value.
|
|
2408
|
-
* @param newValue - The validated input value.
|
|
2409
|
-
*/
|
|
2410
|
-
updateValues(newValue) {
|
|
2411
|
-
this.value = newValue;
|
|
2412
|
-
if (this.input !== undefined)
|
|
2413
|
-
this.input.value = this.value;
|
|
2414
|
-
this.numericValue = !['', null].includes(this.value) ? parseFloat(this.value.replace(',', '.')) : null;
|
|
2415
|
-
this.valueChange.emit(this.numericValue);
|
|
2416
|
-
this.readonlyValue = this.numericValue !== null ? this.formatValue(this.numericValue) : '';
|
|
2417
|
-
}
|
|
2418
2325
|
handleValidityChange(newValue, _oldValue, prop) {
|
|
2419
2326
|
if (this.input !== undefined) {
|
|
2420
2327
|
this.input[prop] = newValue;
|
|
@@ -2441,13 +2348,74 @@ const MgInputNumeric = class {
|
|
|
2441
2348
|
}
|
|
2442
2349
|
}
|
|
2443
2350
|
/**
|
|
2444
|
-
*
|
|
2351
|
+
* Display input error if it exists.
|
|
2445
2352
|
*/
|
|
2446
2353
|
async displayError() {
|
|
2447
2354
|
this.checkValidity();
|
|
2448
2355
|
this.setErrorMessage();
|
|
2449
2356
|
this.hasDisplayedError = this.invalid;
|
|
2450
2357
|
}
|
|
2358
|
+
/**
|
|
2359
|
+
* Set an error and display a custom error message.
|
|
2360
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2361
|
+
* It must be paired with an error message to display for the given context.
|
|
2362
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2363
|
+
* @param valid - value indicating the validity
|
|
2364
|
+
* @param errorMessage - the error message to display
|
|
2365
|
+
*/
|
|
2366
|
+
async setError(valid, errorMessage) {
|
|
2367
|
+
if (typeof valid !== 'boolean') {
|
|
2368
|
+
throw new Error('<mg-input-numeric> method "setError()" param "valid" must be a boolean');
|
|
2369
|
+
}
|
|
2370
|
+
else if (!isValidString(errorMessage)) {
|
|
2371
|
+
throw new Error('<mg-input-numeric> method "setError()" param "errorMessage" must be a string');
|
|
2372
|
+
}
|
|
2373
|
+
else {
|
|
2374
|
+
this.setValidity(valid);
|
|
2375
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2376
|
+
this.hasDisplayedError = this.invalid;
|
|
2377
|
+
}
|
|
2378
|
+
}
|
|
2379
|
+
/**
|
|
2380
|
+
* Method to set validity values
|
|
2381
|
+
* @param newValue - valid new value
|
|
2382
|
+
*/
|
|
2383
|
+
setValidity(newValue) {
|
|
2384
|
+
this.valid = newValue;
|
|
2385
|
+
this.invalid = !this.valid;
|
|
2386
|
+
// We need to send valid event even if it is the same value
|
|
2387
|
+
this.inputValid.emit(this.valid);
|
|
2388
|
+
}
|
|
2389
|
+
/**
|
|
2390
|
+
* Checks if the given value is valid according to the defined rules.
|
|
2391
|
+
* @param value - The input value to validate.
|
|
2392
|
+
* @param regex - The regular expression for validation.
|
|
2393
|
+
* @param integer - The integer part of the value.
|
|
2394
|
+
* @param decimal - The decimal part of the value.
|
|
2395
|
+
* @returns Returns true if the value is valid, otherwise false.
|
|
2396
|
+
*/
|
|
2397
|
+
isValidValue(value, regex, integer, decimal) {
|
|
2398
|
+
return ['', '-'].includes(value) || (value.match(regex) && integer.length <= this.integerLength && decimal.length <= (this.type === 'integer' ? 0 : this.decimalLength));
|
|
2399
|
+
}
|
|
2400
|
+
/**
|
|
2401
|
+
* Handles invalid input values and returns a corrected value.
|
|
2402
|
+
* @returns The corrected value.
|
|
2403
|
+
*/
|
|
2404
|
+
handleInvalidValue() {
|
|
2405
|
+
return this.storedValue !== undefined ? this.storedValue : null;
|
|
2406
|
+
}
|
|
2407
|
+
/**
|
|
2408
|
+
* Updates the component values based on the validated input value.
|
|
2409
|
+
* @param newValue - The validated input value.
|
|
2410
|
+
*/
|
|
2411
|
+
updateValues(newValue) {
|
|
2412
|
+
this.value = newValue;
|
|
2413
|
+
if (this.input !== undefined)
|
|
2414
|
+
this.input.value = this.value;
|
|
2415
|
+
this.numericValue = !['', null].includes(this.value) ? parseFloat(this.value.replace(',', '.')) : null;
|
|
2416
|
+
this.valueChange.emit(this.numericValue);
|
|
2417
|
+
this.readonlyValue = this.numericValue !== null ? this.formatValue(this.numericValue) : '';
|
|
2418
|
+
}
|
|
2451
2419
|
/**
|
|
2452
2420
|
* Displayed value in input
|
|
2453
2421
|
* Change on focus/blur
|
|
@@ -2487,7 +2455,7 @@ const MgInputNumeric = class {
|
|
|
2487
2455
|
* @returns HTML Element
|
|
2488
2456
|
*/
|
|
2489
2457
|
render() {
|
|
2490
|
-
return (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 }, 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) => {
|
|
2458
|
+
return (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 }, 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) => {
|
|
2491
2459
|
if (el !== null)
|
|
2492
2460
|
this.input = el;
|
|
2493
2461
|
} }), h("slot", { name: "append-input" })));
|
|
@@ -2505,7 +2473,7 @@ const MgInputNumeric = class {
|
|
|
2505
2473
|
};
|
|
2506
2474
|
MgInputNumeric.style = mgInputNumericCss;
|
|
2507
2475
|
|
|
2508
|
-
const mgInputPasswordCss = ":host{display:block}.mg-input{display:flex;
|
|
2476
|
+
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}}";
|
|
2509
2477
|
|
|
2510
2478
|
const MgInputPassword = class {
|
|
2511
2479
|
constructor(hostRef) {
|
|
@@ -2535,20 +2503,23 @@ const MgInputPassword = class {
|
|
|
2535
2503
|
*/
|
|
2536
2504
|
this.checkValidity = () => {
|
|
2537
2505
|
var _a;
|
|
2538
|
-
this.
|
|
2539
|
-
this.invalid = !this.valid;
|
|
2540
|
-
// We need to send valid event even if it is the same value
|
|
2541
|
-
this.inputValid.emit(this.valid);
|
|
2506
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true));
|
|
2542
2507
|
};
|
|
2543
2508
|
/**
|
|
2544
2509
|
* Set input error message
|
|
2510
|
+
* @param errorMessage - errorMessage override
|
|
2545
2511
|
*/
|
|
2546
|
-
this.setErrorMessage = () => {
|
|
2512
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2547
2513
|
// Set error message
|
|
2548
2514
|
this.errorMessage = undefined;
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2515
|
+
if (!this.valid) {
|
|
2516
|
+
if (errorMessage !== undefined) {
|
|
2517
|
+
this.errorMessage = errorMessage;
|
|
2518
|
+
}
|
|
2519
|
+
// required
|
|
2520
|
+
else if (this.input.validity.valueMissing) {
|
|
2521
|
+
this.errorMessage = this.messages.errors.required;
|
|
2522
|
+
}
|
|
2552
2523
|
}
|
|
2553
2524
|
};
|
|
2554
2525
|
this.value = undefined;
|
|
@@ -2566,7 +2537,7 @@ const MgInputPassword = class {
|
|
|
2566
2537
|
this.helpText = undefined;
|
|
2567
2538
|
this.valid = undefined;
|
|
2568
2539
|
this.invalid = undefined;
|
|
2569
|
-
this.classCollection = new ClassList(['mg-input--password']);
|
|
2540
|
+
this.classCollection = new ClassList(['mg-c-input--password']);
|
|
2570
2541
|
this.errorMessage = undefined;
|
|
2571
2542
|
}
|
|
2572
2543
|
handleValue(newValue) {
|
|
@@ -2583,13 +2554,44 @@ const MgInputPassword = class {
|
|
|
2583
2554
|
}
|
|
2584
2555
|
}
|
|
2585
2556
|
/**
|
|
2586
|
-
*
|
|
2557
|
+
* Display input error if it exists.
|
|
2587
2558
|
*/
|
|
2588
2559
|
async displayError() {
|
|
2589
2560
|
this.checkValidity();
|
|
2590
2561
|
this.setErrorMessage();
|
|
2591
2562
|
this.hasDisplayedError = this.invalid;
|
|
2592
2563
|
}
|
|
2564
|
+
/**
|
|
2565
|
+
* Set an error and display a custom error message.
|
|
2566
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2567
|
+
* It must be paired with an error message to display for the given context.
|
|
2568
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2569
|
+
* @param valid - value indicating the validity
|
|
2570
|
+
* @param errorMessage - the error message to display
|
|
2571
|
+
*/
|
|
2572
|
+
async setError(valid, errorMessage) {
|
|
2573
|
+
if (typeof valid !== 'boolean') {
|
|
2574
|
+
throw new Error('<mg-input-password> method "setError()" param "valid" must be a boolean');
|
|
2575
|
+
}
|
|
2576
|
+
else if (!isValidString(errorMessage)) {
|
|
2577
|
+
throw new Error('<mg-input-password> method "setError()" param "errorMessage" must be a string');
|
|
2578
|
+
}
|
|
2579
|
+
else {
|
|
2580
|
+
this.setValidity(valid);
|
|
2581
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2582
|
+
this.hasDisplayedError = this.invalid;
|
|
2583
|
+
}
|
|
2584
|
+
}
|
|
2585
|
+
/**
|
|
2586
|
+
* Method to set validity values
|
|
2587
|
+
* @param newValue - valid new value
|
|
2588
|
+
*/
|
|
2589
|
+
setValidity(newValue) {
|
|
2590
|
+
this.valid = newValue;
|
|
2591
|
+
this.invalid = !this.valid;
|
|
2592
|
+
// We need to send valid event even if it is the same value
|
|
2593
|
+
this.inputValid.emit(this.valid);
|
|
2594
|
+
}
|
|
2593
2595
|
/*************
|
|
2594
2596
|
* Lifecycle *
|
|
2595
2597
|
*************/
|
|
@@ -2612,7 +2614,7 @@ const MgInputPassword = class {
|
|
|
2612
2614
|
* @returns HTML Element
|
|
2613
2615
|
*/
|
|
2614
2616
|
render() {
|
|
2615
|
-
return (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 }, 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) => {
|
|
2617
|
+
return (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 }, 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) => {
|
|
2616
2618
|
if (el !== null)
|
|
2617
2619
|
this.input = el;
|
|
2618
2620
|
} })));
|
|
@@ -2627,7 +2629,7 @@ const MgInputPassword = class {
|
|
|
2627
2629
|
};
|
|
2628
2630
|
MgInputPassword.style = mgInputPasswordCss;
|
|
2629
2631
|
|
|
2630
|
-
const mgInputRadioCss = ":host{display:block}.mg-input{display:flex;
|
|
2632
|
+
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}}";
|
|
2631
2633
|
|
|
2632
2634
|
/**
|
|
2633
2635
|
* type Option validation function
|
|
@@ -2666,20 +2668,23 @@ const MgInputRadio = class {
|
|
|
2666
2668
|
* Check if input is valid
|
|
2667
2669
|
*/
|
|
2668
2670
|
this.checkValidity = () => {
|
|
2669
|
-
this.
|
|
2670
|
-
this.invalid = !this.valid;
|
|
2671
|
-
// We need to send valid event even if it is the same value
|
|
2672
|
-
this.inputValid.emit(this.valid);
|
|
2671
|
+
this.setValidity(this.readonly || this.disabled || this.getInvalidElement() === undefined);
|
|
2673
2672
|
};
|
|
2674
2673
|
/**
|
|
2675
2674
|
* Set input error message
|
|
2675
|
+
* @param errorMessage - errorMessage override
|
|
2676
2676
|
*/
|
|
2677
|
-
this.setErrorMessage = () => {
|
|
2677
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2678
2678
|
const invalidElement = this.getInvalidElement();
|
|
2679
2679
|
// Set error message
|
|
2680
2680
|
this.errorMessage = undefined;
|
|
2681
|
-
if (!this.valid
|
|
2682
|
-
|
|
2681
|
+
if (!this.valid) {
|
|
2682
|
+
if (errorMessage !== undefined) {
|
|
2683
|
+
this.errorMessage = errorMessage;
|
|
2684
|
+
}
|
|
2685
|
+
else if (invalidElement.validity.valueMissing) {
|
|
2686
|
+
this.errorMessage = this.messages.errors.required;
|
|
2687
|
+
}
|
|
2683
2688
|
}
|
|
2684
2689
|
};
|
|
2685
2690
|
/**
|
|
@@ -2702,7 +2707,7 @@ const MgInputRadio = class {
|
|
|
2702
2707
|
this.helpText = undefined;
|
|
2703
2708
|
this.valid = undefined;
|
|
2704
2709
|
this.invalid = undefined;
|
|
2705
|
-
this.classCollection = new ClassList(['mg-input--radio']);
|
|
2710
|
+
this.classCollection = new ClassList(['mg-c-input--radio']);
|
|
2706
2711
|
this.errorMessage = undefined;
|
|
2707
2712
|
this.options = undefined;
|
|
2708
2713
|
}
|
|
@@ -2737,13 +2742,44 @@ const MgInputRadio = class {
|
|
|
2737
2742
|
}
|
|
2738
2743
|
}
|
|
2739
2744
|
/**
|
|
2740
|
-
*
|
|
2745
|
+
* Display input error if it exists.
|
|
2741
2746
|
*/
|
|
2742
2747
|
async displayError() {
|
|
2743
2748
|
this.checkValidity();
|
|
2744
2749
|
this.setErrorMessage();
|
|
2745
2750
|
this.hasDisplayedError = this.invalid;
|
|
2746
2751
|
}
|
|
2752
|
+
/**
|
|
2753
|
+
* Set an error and display a custom error message.
|
|
2754
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
2755
|
+
* It must be paired with an error message to display for the given context.
|
|
2756
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
2757
|
+
* @param valid - value indicating the validity
|
|
2758
|
+
* @param errorMessage - the error message to display
|
|
2759
|
+
*/
|
|
2760
|
+
async setError(valid, errorMessage) {
|
|
2761
|
+
if (typeof valid !== 'boolean') {
|
|
2762
|
+
throw new Error('<mg-input-radio> method "setError()" param "valid" must be a boolean');
|
|
2763
|
+
}
|
|
2764
|
+
else if (!isValidString(errorMessage)) {
|
|
2765
|
+
throw new Error('<mg-input-radio> method "setError()" param "errorMessage" must be a string');
|
|
2766
|
+
}
|
|
2767
|
+
else {
|
|
2768
|
+
this.setValidity(valid);
|
|
2769
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
2770
|
+
this.hasDisplayedError = this.invalid;
|
|
2771
|
+
}
|
|
2772
|
+
}
|
|
2773
|
+
/**
|
|
2774
|
+
* Method to set validity values
|
|
2775
|
+
* @param newValue - valid new value
|
|
2776
|
+
*/
|
|
2777
|
+
setValidity(newValue) {
|
|
2778
|
+
this.valid = newValue;
|
|
2779
|
+
this.invalid = !this.valid;
|
|
2780
|
+
// We need to send valid event even if it is the same value
|
|
2781
|
+
this.inputValid.emit(this.valid);
|
|
2782
|
+
}
|
|
2747
2783
|
/*************
|
|
2748
2784
|
* Lifecycle *
|
|
2749
2785
|
*************/
|
|
@@ -2768,7 +2804,7 @@ const MgInputRadio = class {
|
|
|
2768
2804
|
* @returns HTML Element
|
|
2769
2805
|
*/
|
|
2770
2806
|
render() {
|
|
2771
|
-
return (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 }, h("ul", { class: { 'mg-input__input-group-container': true, 'mg-input__input-group-container--vertical': this.inputVerticalList }, role: "list" }, this.options.map((input, index) => (h("li", { key: input.title, class: { 'mg-input__input-group': true, 'mg-input__input-group--disabled': this.disabled || input.disabled } }, h("input", { type: "radio", id: this.identifier + '_' + index, name: this.identifier, value: index, checked: JSON.stringify(this.value) === JSON.stringify(this.options[index].value), disabled: this.disabled || input.disabled, required: this.required, onBlur: this.handleBlur, onInput: this.handleInput, ref: (el) => {
|
|
2807
|
+
return (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 }, 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) => (h("li", { key: input.title, class: { 'mg-c-input__input-group': true, 'mg-c-input__input-group--disabled': this.disabled || input.disabled } }, h("input", { type: "radio", id: this.identifier + '_' + index, name: this.identifier, value: index, checked: JSON.stringify(this.value) === JSON.stringify(this.options[index].value), disabled: this.disabled || input.disabled, required: this.required, onBlur: this.handleBlur, onInput: this.handleInput, ref: (el) => {
|
|
2772
2808
|
if (el !== null)
|
|
2773
2809
|
this.inputs[index] = el;
|
|
2774
2810
|
} }), h("label", { htmlFor: this.identifier + '_' + index }, input.title)))))));
|
|
@@ -2784,7 +2820,7 @@ const MgInputRadio = class {
|
|
|
2784
2820
|
};
|
|
2785
2821
|
MgInputRadio.style = mgInputRadioCss;
|
|
2786
2822
|
|
|
2787
|
-
const mgInputSelectCss = ":host{display:block}.mg-input{display:flex;
|
|
2823
|
+
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}";
|
|
2788
2824
|
|
|
2789
2825
|
/**
|
|
2790
2826
|
* Check if item is a well configured option
|
|
@@ -2892,19 +2928,22 @@ const MgInputSelect = class {
|
|
|
2892
2928
|
*/
|
|
2893
2929
|
this.checkValidity = () => {
|
|
2894
2930
|
var _a;
|
|
2895
|
-
this.
|
|
2896
|
-
this.invalid = !this.valid;
|
|
2897
|
-
// We need to send valid event even if it is the same value
|
|
2898
|
-
this.inputValid.emit(this.valid);
|
|
2931
|
+
this.setValidity(!this.isDisabledValue() && (this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true)));
|
|
2899
2932
|
};
|
|
2900
2933
|
/**
|
|
2901
2934
|
* Set input error message
|
|
2935
|
+
* @param errorMessage - errorMessage override
|
|
2902
2936
|
*/
|
|
2903
|
-
this.setErrorMessage = () => {
|
|
2937
|
+
this.setErrorMessage = (errorMessage) => {
|
|
2904
2938
|
// Set error message
|
|
2905
2939
|
this.errorMessage = undefined;
|
|
2906
|
-
if (!this.valid
|
|
2907
|
-
|
|
2940
|
+
if (!this.valid) {
|
|
2941
|
+
if (errorMessage !== undefined) {
|
|
2942
|
+
this.errorMessage = errorMessage;
|
|
2943
|
+
}
|
|
2944
|
+
else if (this.input.validity.valueMissing) {
|
|
2945
|
+
this.errorMessage = this.messages.errors.required;
|
|
2946
|
+
}
|
|
2908
2947
|
}
|
|
2909
2948
|
};
|
|
2910
2949
|
/**
|
|
@@ -2931,7 +2970,7 @@ const MgInputSelect = class {
|
|
|
2931
2970
|
this.helpText = undefined;
|
|
2932
2971
|
this.valid = undefined;
|
|
2933
2972
|
this.invalid = undefined;
|
|
2934
|
-
this.classCollection = new ClassList(['mg-input--select']);
|
|
2973
|
+
this.classCollection = new ClassList(['mg-c-input--select']);
|
|
2935
2974
|
this.errorMessage = undefined;
|
|
2936
2975
|
this.options = undefined;
|
|
2937
2976
|
this.valueExist = undefined;
|
|
@@ -2988,13 +3027,44 @@ const MgInputSelect = class {
|
|
|
2988
3027
|
}
|
|
2989
3028
|
}
|
|
2990
3029
|
/**
|
|
2991
|
-
*
|
|
3030
|
+
* Display input error if it exists.
|
|
2992
3031
|
*/
|
|
2993
3032
|
async displayError() {
|
|
2994
3033
|
this.checkValidity();
|
|
2995
3034
|
this.setErrorMessage();
|
|
2996
3035
|
this.hasDisplayedError = this.invalid;
|
|
2997
3036
|
}
|
|
3037
|
+
/**
|
|
3038
|
+
* Set an error and display a custom error message.
|
|
3039
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
3040
|
+
* It must be paired with an error message to display for the given context.
|
|
3041
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
3042
|
+
* @param valid - value indicating the validity
|
|
3043
|
+
* @param errorMessage - the error message to display
|
|
3044
|
+
*/
|
|
3045
|
+
async setError(valid, errorMessage) {
|
|
3046
|
+
if (typeof valid !== 'boolean') {
|
|
3047
|
+
throw new Error('<mg-input-select> method "setError()" param "valid" must be a boolean');
|
|
3048
|
+
}
|
|
3049
|
+
else if (!isValidString(errorMessage)) {
|
|
3050
|
+
throw new Error('<mg-input-select> method "setError()" param "errorMessage" must be a string');
|
|
3051
|
+
}
|
|
3052
|
+
else {
|
|
3053
|
+
this.setValidity(valid);
|
|
3054
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
3055
|
+
this.hasDisplayedError = this.invalid;
|
|
3056
|
+
}
|
|
3057
|
+
}
|
|
3058
|
+
/**
|
|
3059
|
+
* Method to set validity values
|
|
3060
|
+
* @param newValue - valid new value
|
|
3061
|
+
*/
|
|
3062
|
+
setValidity(newValue) {
|
|
3063
|
+
this.valid = newValue;
|
|
3064
|
+
this.invalid = !this.valid;
|
|
3065
|
+
// We need to send valid event even if it is the same value
|
|
3066
|
+
this.inputValid.emit(this.valid);
|
|
3067
|
+
}
|
|
2998
3068
|
/*************
|
|
2999
3069
|
* Lifecycle *
|
|
3000
3070
|
*************/
|
|
@@ -3024,7 +3094,7 @@ const MgInputSelect = class {
|
|
|
3024
3094
|
* @returns HTML Element
|
|
3025
3095
|
*/
|
|
3026
3096
|
render() {
|
|
3027
|
-
return (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 }, 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) => {
|
|
3097
|
+
return (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 }, 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) => {
|
|
3028
3098
|
if (el !== null)
|
|
3029
3099
|
this.input = el;
|
|
3030
3100
|
} }, (!this.placeholderHide || !this.valueExist) && ( // In case passed value does not match any option we display the placeholder
|
|
@@ -3041,8 +3111,9 @@ const MgInputSelect = class {
|
|
|
3041
3111
|
};
|
|
3042
3112
|
MgInputSelect.style = mgInputSelectCss;
|
|
3043
3113
|
|
|
3044
|
-
const mgInputTextCss = ":host{display:block}.mg-input{display:flex;
|
|
3114
|
+
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)}";
|
|
3045
3115
|
|
|
3116
|
+
const isDatalistOption = (options) => Array.isArray(options) && options.every(option => typeof option === 'string');
|
|
3046
3117
|
const MgInputText = class {
|
|
3047
3118
|
constructor(hostRef) {
|
|
3048
3119
|
registerInstance(this, hostRef);
|
|
@@ -3052,9 +3123,9 @@ const MgInputText = class {
|
|
|
3052
3123
|
* Internal *
|
|
3053
3124
|
************/
|
|
3054
3125
|
// Classes
|
|
3055
|
-
this.classFocus = 'is-focused';
|
|
3056
|
-
this.classIsInputGroupAppend = 'mg-input--is-input-group-append';
|
|
3057
|
-
this.classHasIcon = 'mg-input--has-icon';
|
|
3126
|
+
this.classFocus = 'mg-u-is-focused';
|
|
3127
|
+
this.classIsInputGroupAppend = 'mg-c-input--is-input-group-append';
|
|
3128
|
+
this.classHasIcon = 'mg-c-input--has-icon';
|
|
3058
3129
|
// hasDisplayedError (triggered by blur event)
|
|
3059
3130
|
this.hasDisplayedError = false;
|
|
3060
3131
|
/**
|
|
@@ -3089,19 +3160,21 @@ const MgInputText = class {
|
|
|
3089
3160
|
*/
|
|
3090
3161
|
this.checkValidity = () => {
|
|
3091
3162
|
var _a;
|
|
3092
|
-
this.
|
|
3093
|
-
this.invalid = !this.valid;
|
|
3094
|
-
// We need to send valid event even if it is the same value
|
|
3095
|
-
this.inputValid.emit(this.valid);
|
|
3163
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined ? this.input.checkValidity() : true));
|
|
3096
3164
|
};
|
|
3097
3165
|
/**
|
|
3098
3166
|
* Set input error message
|
|
3167
|
+
* @param errorMessage - errorMessage override
|
|
3099
3168
|
*/
|
|
3100
|
-
this.setErrorMessage = () => {
|
|
3169
|
+
this.setErrorMessage = (errorMessage) => {
|
|
3101
3170
|
// Set error message
|
|
3102
3171
|
this.errorMessage = undefined;
|
|
3172
|
+
// Does have a custom error message
|
|
3173
|
+
if (!this.valid && errorMessage !== undefined) {
|
|
3174
|
+
this.errorMessage = errorMessage;
|
|
3175
|
+
}
|
|
3103
3176
|
// Does not match pattern
|
|
3104
|
-
if (!this.valid && this.input.validity.patternMismatch) {
|
|
3177
|
+
else if (!this.valid && this.input.validity.patternMismatch) {
|
|
3105
3178
|
this.errorMessage = this.patternErrorMessage;
|
|
3106
3179
|
}
|
|
3107
3180
|
// required
|
|
@@ -3109,30 +3182,24 @@ const MgInputText = class {
|
|
|
3109
3182
|
this.errorMessage = this.messages.errors.required;
|
|
3110
3183
|
}
|
|
3111
3184
|
};
|
|
3112
|
-
/**
|
|
3113
|
-
* Validate pattern configuration
|
|
3114
|
-
*/
|
|
3115
|
-
this.validatePattern = () => {
|
|
3116
|
-
if (this.pattern !== undefined &&
|
|
3117
|
-
typeof this.pattern === 'string' &&
|
|
3118
|
-
this.pattern !== '' &&
|
|
3119
|
-
(this.patternErrorMessage === undefined || typeof this.patternErrorMessage !== 'string' || this.patternErrorMessage === '')) {
|
|
3120
|
-
throw new Error('<mg-input-text> prop "pattern" must be paired with the prop "patternErrorMessage"');
|
|
3121
|
-
}
|
|
3122
|
-
};
|
|
3123
3185
|
/**
|
|
3124
3186
|
* Validate append slot
|
|
3125
3187
|
*/
|
|
3126
3188
|
this.validateAppendSlot = () => {
|
|
3127
3189
|
const slotAppendInput = Array.from(this.element.querySelectorAll('[slot="append-input"]'));
|
|
3128
3190
|
if (slotAppendInput.length === 1) {
|
|
3129
|
-
this.classCollection.add(slotAppendInput[0].nodeName === 'MG-BUTTON' ? this.classIsInputGroupAppend : 'mg-input--is-append-input-slot-content');
|
|
3191
|
+
this.classCollection.add(slotAppendInput[0].nodeName === 'MG-BUTTON' ? this.classIsInputGroupAppend : 'mg-c-input--is-append-input-slot-content');
|
|
3130
3192
|
}
|
|
3131
3193
|
else if (slotAppendInput.filter(slot => slot.nodeName === 'MG-BUTTON').length > 1) {
|
|
3132
3194
|
this.classCollection.add(this.classIsInputGroupAppend);
|
|
3133
|
-
this.classCollection.add('mg-input--has-buttons-group-append');
|
|
3195
|
+
this.classCollection.add('mg-c-input--has-buttons-group-append');
|
|
3134
3196
|
}
|
|
3135
3197
|
};
|
|
3198
|
+
/**
|
|
3199
|
+
* Methode to control datalist display condition
|
|
3200
|
+
* @returns true if display condition success
|
|
3201
|
+
*/
|
|
3202
|
+
this.hasDatalist = () => isDatalistOption(this.datalistoptions) && this.datalistoptions.length > 0;
|
|
3136
3203
|
this.value = undefined;
|
|
3137
3204
|
this.identifier = undefined;
|
|
3138
3205
|
this.name = this.identifier;
|
|
@@ -3142,6 +3209,7 @@ const MgInputText = class {
|
|
|
3142
3209
|
this.labelOnTop = undefined;
|
|
3143
3210
|
this.labelHide = false;
|
|
3144
3211
|
this.placeholder = undefined;
|
|
3212
|
+
this.datalistoptions = undefined;
|
|
3145
3213
|
this.maxlength = 400;
|
|
3146
3214
|
this.required = false;
|
|
3147
3215
|
this.readonly = false;
|
|
@@ -3154,7 +3222,7 @@ const MgInputText = class {
|
|
|
3154
3222
|
this.helpText = undefined;
|
|
3155
3223
|
this.valid = undefined;
|
|
3156
3224
|
this.invalid = undefined;
|
|
3157
|
-
this.classCollection = new ClassList(['mg-input--text']);
|
|
3225
|
+
this.classCollection = new ClassList(['mg-c-input--text']);
|
|
3158
3226
|
this.errorMessage = undefined;
|
|
3159
3227
|
}
|
|
3160
3228
|
handleValue(newValue) {
|
|
@@ -3168,6 +3236,11 @@ const MgInputText = class {
|
|
|
3168
3236
|
this.classCollection.delete(this.classHasIcon);
|
|
3169
3237
|
}
|
|
3170
3238
|
}
|
|
3239
|
+
validateDatalistoptions(newValue) {
|
|
3240
|
+
if (Boolean(newValue) && !isDatalistOption(newValue)) {
|
|
3241
|
+
throw new Error('<mg-input-text> prop "datalistoptions" values must be the same type, DatalistOption.');
|
|
3242
|
+
}
|
|
3243
|
+
}
|
|
3171
3244
|
handleValidityChange(newValue, _oldValue, prop) {
|
|
3172
3245
|
if (this.input !== undefined) {
|
|
3173
3246
|
this.input[prop] = newValue;
|
|
@@ -3178,6 +3251,11 @@ const MgInputText = class {
|
|
|
3178
3251
|
}
|
|
3179
3252
|
}
|
|
3180
3253
|
}
|
|
3254
|
+
validatePattern(newValue) {
|
|
3255
|
+
if (newValue !== undefined && !(isValidString(this.pattern) && isValidString(this.patternErrorMessage))) {
|
|
3256
|
+
throw new Error('<mg-input-text> props "pattern" and "patternErrorMessage" must be non-empty string and paired.');
|
|
3257
|
+
}
|
|
3258
|
+
}
|
|
3181
3259
|
/**
|
|
3182
3260
|
* Public method to play input focus
|
|
3183
3261
|
*/
|
|
@@ -3185,13 +3263,44 @@ const MgInputText = class {
|
|
|
3185
3263
|
this.input.focus();
|
|
3186
3264
|
}
|
|
3187
3265
|
/**
|
|
3188
|
-
*
|
|
3266
|
+
* Display input error if it exists.
|
|
3189
3267
|
*/
|
|
3190
3268
|
async displayError() {
|
|
3191
3269
|
this.checkValidity();
|
|
3192
3270
|
this.setErrorMessage();
|
|
3193
3271
|
this.hasDisplayedError = this.invalid;
|
|
3194
3272
|
}
|
|
3273
|
+
/**
|
|
3274
|
+
* Set an error and display a custom error message.
|
|
3275
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
3276
|
+
* It must be paired with an error message to display for the given context.
|
|
3277
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
3278
|
+
* @param valid - value indicating the validity
|
|
3279
|
+
* @param errorMessage - the error message to display
|
|
3280
|
+
*/
|
|
3281
|
+
async setError(valid, errorMessage) {
|
|
3282
|
+
if (typeof valid !== 'boolean') {
|
|
3283
|
+
throw new Error('<mg-input-text> method "setError()" param "valid" must be a boolean');
|
|
3284
|
+
}
|
|
3285
|
+
else if (!isValidString(errorMessage)) {
|
|
3286
|
+
throw new Error('<mg-input-text> method "setError()" param "errorMessage" must be a string');
|
|
3287
|
+
}
|
|
3288
|
+
else {
|
|
3289
|
+
this.setValidity(valid);
|
|
3290
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
3291
|
+
this.hasDisplayedError = this.invalid;
|
|
3292
|
+
}
|
|
3293
|
+
}
|
|
3294
|
+
/**
|
|
3295
|
+
* Method to set validity values
|
|
3296
|
+
* @param newValue - valid new value
|
|
3297
|
+
*/
|
|
3298
|
+
setValidity(newValue) {
|
|
3299
|
+
this.valid = newValue;
|
|
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);
|
|
3303
|
+
}
|
|
3195
3304
|
/*************
|
|
3196
3305
|
* Lifecycle *
|
|
3197
3306
|
*************/
|
|
@@ -3203,9 +3312,12 @@ const MgInputText = class {
|
|
|
3203
3312
|
// Get locales
|
|
3204
3313
|
this.messages = initLocales(this.element).messages;
|
|
3205
3314
|
this.characterLeftId = `${this.identifier}-character-left`;
|
|
3315
|
+
this.datalistId = `${this.identifier}-datalist`;
|
|
3206
3316
|
// Validate
|
|
3207
3317
|
this.validateIcon(this.icon);
|
|
3208
|
-
this.
|
|
3318
|
+
this.validateDatalistoptions(this.datalistoptions);
|
|
3319
|
+
this.validatePattern(this.pattern);
|
|
3320
|
+
this.validatePattern(this.patternErrorMessage);
|
|
3209
3321
|
this.validateAppendSlot();
|
|
3210
3322
|
// Check validity when component is ready
|
|
3211
3323
|
// return a promise to process action only in the FIRST render().
|
|
@@ -3219,27 +3331,30 @@ const MgInputText = class {
|
|
|
3219
3331
|
* @returns HTML Element
|
|
3220
3332
|
*/
|
|
3221
3333
|
render() {
|
|
3222
|
-
return (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 }, h("div", { class: "mg-input__with-character-left", style: {
|
|
3334
|
+
return (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 }, h("div", { class: "mg-c-input__with-character-left", style: {
|
|
3223
3335
|
'--mg-character-left-message-length': (this.displayCharacterLeft
|
|
3224
3336
|
? (this.maxlength - (this.value || '').length).toString().length + this.maxlength.toString().length + 1
|
|
3225
3337
|
: 0).toString(),
|
|
3226
|
-
} }, this.icon !== undefined && h("mg-icon", { icon: this.icon }), 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) => {
|
|
3338
|
+
} }, this.icon !== undefined && h("mg-icon", { icon: this.icon }), 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) => {
|
|
3227
3339
|
if (el !== null)
|
|
3228
3340
|
this.input = el;
|
|
3229
|
-
} }), this.displayCharacterLeft && this.maxlength > 0 && (h("mg-character-left", { identifier: this.characterLeftId, characters: this.value, maxlength: this.maxlength }))), h("slot", { name: "append-input" })));
|
|
3341
|
+
} }), this.hasDatalist() && (h("datalist", { id: this.datalistId }, this.datalistoptions.map(option => (h("option", { value: option, key: option }))))), this.displayCharacterLeft && this.maxlength > 0 && (h("mg-character-left", { identifier: this.characterLeftId, characters: this.value, maxlength: this.maxlength }))), h("slot", { name: "append-input" })));
|
|
3230
3342
|
}
|
|
3231
3343
|
get element() { return getElement(this); }
|
|
3232
3344
|
static get watchers() { return {
|
|
3233
3345
|
"value": ["handleValue"],
|
|
3234
3346
|
"icon": ["validateIcon"],
|
|
3347
|
+
"datalistoptions": ["validateDatalistoptions"],
|
|
3235
3348
|
"required": ["handleValidityChange"],
|
|
3236
3349
|
"readonly": ["handleValidityChange"],
|
|
3237
|
-
"disabled": ["handleValidityChange"]
|
|
3350
|
+
"disabled": ["handleValidityChange"],
|
|
3351
|
+
"pattern": ["validatePattern"],
|
|
3352
|
+
"patternErrorMessage": ["validatePattern"]
|
|
3238
3353
|
}; }
|
|
3239
3354
|
};
|
|
3240
3355
|
MgInputText.style = mgInputTextCss;
|
|
3241
3356
|
|
|
3242
|
-
const mgInputTextareaCss = ":host{display:block}.mg-input{display:flex;
|
|
3357
|
+
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}}";
|
|
3243
3358
|
|
|
3244
3359
|
const MgInputTextarea = class {
|
|
3245
3360
|
constructor(hostRef) {
|
|
@@ -3250,8 +3365,8 @@ const MgInputTextarea = class {
|
|
|
3250
3365
|
* Internal *
|
|
3251
3366
|
************/
|
|
3252
3367
|
// Classes
|
|
3253
|
-
this.classFocus = 'is-focused';
|
|
3254
|
-
this.classHasDisplayCharacterLeft = 'mg-input--has-display-character-left';
|
|
3368
|
+
this.classFocus = 'mg-u-is-focused';
|
|
3369
|
+
this.classHasDisplayCharacterLeft = 'mg-c-input--has-display-character-left';
|
|
3255
3370
|
// hasDisplayedError (triggered by blur event)
|
|
3256
3371
|
this.hasDisplayedError = false;
|
|
3257
3372
|
/**
|
|
@@ -3292,35 +3407,27 @@ const MgInputTextarea = class {
|
|
|
3292
3407
|
*/
|
|
3293
3408
|
this.checkValidity = () => {
|
|
3294
3409
|
var _a;
|
|
3295
|
-
this.
|
|
3296
|
-
this.invalid = !this.valid;
|
|
3297
|
-
// We need to send valid event even if it is the same value
|
|
3298
|
-
this.inputValid.emit(this.valid);
|
|
3410
|
+
this.setValidity(this.readonly || this.disabled || (((_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity) !== undefined && this.input.checkValidity() && this.getPatternValidity()));
|
|
3299
3411
|
};
|
|
3300
3412
|
/**
|
|
3301
3413
|
* Set input error message
|
|
3414
|
+
* @param errorMessage - errorMessage override
|
|
3302
3415
|
*/
|
|
3303
|
-
this.setErrorMessage = () => {
|
|
3416
|
+
this.setErrorMessage = (errorMessage) => {
|
|
3304
3417
|
// Set error message
|
|
3305
3418
|
this.errorMessage = undefined;
|
|
3306
3419
|
// Does not match pattern
|
|
3307
|
-
if (!this.valid
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
this.validatePattern = () => {
|
|
3319
|
-
if (this.pattern !== undefined &&
|
|
3320
|
-
typeof this.pattern === 'string' &&
|
|
3321
|
-
this.pattern !== '' &&
|
|
3322
|
-
(this.patternErrorMessage === undefined || typeof this.patternErrorMessage !== 'string' || this.patternErrorMessage === '')) {
|
|
3323
|
-
throw new Error('<mg-input-textarea> prop "pattern" must be paired with the prop "patternErrorMessage"');
|
|
3420
|
+
if (!this.valid) {
|
|
3421
|
+
if (errorMessage !== undefined) {
|
|
3422
|
+
this.errorMessage = errorMessage;
|
|
3423
|
+
}
|
|
3424
|
+
else if (!this.getPatternValidity()) {
|
|
3425
|
+
this.errorMessage = this.patternErrorMessage;
|
|
3426
|
+
}
|
|
3427
|
+
// required
|
|
3428
|
+
else if (this.input.validity.valueMissing) {
|
|
3429
|
+
this.errorMessage = this.messages.errors.required;
|
|
3430
|
+
}
|
|
3324
3431
|
}
|
|
3325
3432
|
};
|
|
3326
3433
|
this.value = undefined;
|
|
@@ -3344,7 +3451,7 @@ const MgInputTextarea = class {
|
|
|
3344
3451
|
this.valid = undefined;
|
|
3345
3452
|
this.invalid = undefined;
|
|
3346
3453
|
this.resizable = 'none';
|
|
3347
|
-
this.classCollection = new ClassList(['mg-input--textarea']);
|
|
3454
|
+
this.classCollection = new ClassList(['mg-c-input--textarea']);
|
|
3348
3455
|
this.errorMessage = undefined;
|
|
3349
3456
|
}
|
|
3350
3457
|
handleValue(newValue) {
|
|
@@ -3361,6 +3468,11 @@ const MgInputTextarea = class {
|
|
|
3361
3468
|
}
|
|
3362
3469
|
}
|
|
3363
3470
|
}
|
|
3471
|
+
validatePattern(newValue) {
|
|
3472
|
+
if (newValue !== undefined && !(isValidString(this.pattern) && isValidString(this.patternErrorMessage))) {
|
|
3473
|
+
throw new Error('<mg-input-textarea> props "pattern" and "patternErrorMessage" must be non-empty string and paired.');
|
|
3474
|
+
}
|
|
3475
|
+
}
|
|
3364
3476
|
validateDisplayCharacterLeft(newValue) {
|
|
3365
3477
|
if (newValue) {
|
|
3366
3478
|
this.classCollection.add(this.classHasDisplayCharacterLeft);
|
|
@@ -3370,13 +3482,44 @@ const MgInputTextarea = class {
|
|
|
3370
3482
|
}
|
|
3371
3483
|
}
|
|
3372
3484
|
/**
|
|
3373
|
-
*
|
|
3485
|
+
* Display input error if it exists.
|
|
3374
3486
|
*/
|
|
3375
3487
|
async displayError() {
|
|
3376
3488
|
this.checkValidity();
|
|
3377
3489
|
this.setErrorMessage();
|
|
3378
3490
|
this.hasDisplayedError = this.invalid;
|
|
3379
3491
|
}
|
|
3492
|
+
/**
|
|
3493
|
+
* Set an error and display a custom error message.
|
|
3494
|
+
* This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.
|
|
3495
|
+
* It must be paired with an error message to display for the given context.
|
|
3496
|
+
* When used to set validity to `false`, you should use this method again to reset the validity to `true`.
|
|
3497
|
+
* @param valid - value indicating the validity
|
|
3498
|
+
* @param errorMessage - the error message to display
|
|
3499
|
+
*/
|
|
3500
|
+
async setError(valid, errorMessage) {
|
|
3501
|
+
if (typeof valid !== 'boolean') {
|
|
3502
|
+
throw new Error('<mg-input-textarea> method "setError()" param "valid" must be a boolean');
|
|
3503
|
+
}
|
|
3504
|
+
else if (!isValidString(errorMessage)) {
|
|
3505
|
+
throw new Error('<mg-input-textarea> method "setError()" param "errorMessage" must be a string');
|
|
3506
|
+
}
|
|
3507
|
+
else {
|
|
3508
|
+
this.setValidity(valid);
|
|
3509
|
+
this.setErrorMessage(valid ? undefined : errorMessage);
|
|
3510
|
+
this.hasDisplayedError = this.invalid;
|
|
3511
|
+
}
|
|
3512
|
+
}
|
|
3513
|
+
/**
|
|
3514
|
+
* Method to set validity values
|
|
3515
|
+
* @param newValue - valid new value
|
|
3516
|
+
*/
|
|
3517
|
+
setValidity(newValue) {
|
|
3518
|
+
this.valid = newValue;
|
|
3519
|
+
this.invalid = !this.valid;
|
|
3520
|
+
// We need to send valid event even if it is the same value
|
|
3521
|
+
this.inputValid.emit(this.valid);
|
|
3522
|
+
}
|
|
3380
3523
|
/*************
|
|
3381
3524
|
* Lifecycle *
|
|
3382
3525
|
*************/
|
|
@@ -3390,7 +3533,8 @@ const MgInputTextarea = class {
|
|
|
3390
3533
|
this.characterLeftId = `${this.identifier}-character-left`;
|
|
3391
3534
|
// Validate
|
|
3392
3535
|
this.validateDisplayCharacterLeft(this.displayCharacterLeft);
|
|
3393
|
-
this.validatePattern();
|
|
3536
|
+
this.validatePattern(this.pattern);
|
|
3537
|
+
this.validatePattern(this.patternErrorMessage);
|
|
3394
3538
|
// Check validity when component is ready
|
|
3395
3539
|
// return a promise to process action only in the FIRST render().
|
|
3396
3540
|
// https://stenciljs.com/docs/component-lifecycle#componentwillload
|
|
@@ -3403,11 +3547,11 @@ const MgInputTextarea = class {
|
|
|
3403
3547
|
* @returns HTML Element
|
|
3404
3548
|
*/
|
|
3405
3549
|
render() {
|
|
3406
|
-
return (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 }, h("div", { class: "mg-input__with-character-left" }, h("textarea", { class: {
|
|
3407
|
-
'mg-input__box': true,
|
|
3408
|
-
'mg-input__box--resizable': this.resizable === 'both',
|
|
3409
|
-
'mg-input__box--resizable-horizontal': this.resizable === 'horizontal',
|
|
3410
|
-
'mg-input__box--resizable-vertical': this.resizable === 'vertical',
|
|
3550
|
+
return (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 }, h("div", { class: "mg-c-input__with-character-left" }, h("textarea", { class: {
|
|
3551
|
+
'mg-c-input__box': true,
|
|
3552
|
+
'mg-c-input__box--resizable': this.resizable === 'both',
|
|
3553
|
+
'mg-c-input__box--resizable-horizontal': this.resizable === 'horizontal',
|
|
3554
|
+
'mg-c-input__box--resizable-vertical': this.resizable === 'vertical',
|
|
3411
3555
|
}, 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) => {
|
|
3412
3556
|
if (el !== null)
|
|
3413
3557
|
this.input = el;
|
|
@@ -3419,12 +3563,14 @@ const MgInputTextarea = class {
|
|
|
3419
3563
|
"required": ["handleValidityChange"],
|
|
3420
3564
|
"readonly": ["handleValidityChange"],
|
|
3421
3565
|
"disabled": ["handleValidityChange"],
|
|
3566
|
+
"pattern": ["validatePattern"],
|
|
3567
|
+
"patternErrorMessage": ["validatePattern"],
|
|
3422
3568
|
"displayCharacterLeft": ["validateDisplayCharacterLeft"]
|
|
3423
3569
|
}; }
|
|
3424
3570
|
};
|
|
3425
3571
|
MgInputTextarea.style = mgInputTextareaCss;
|
|
3426
3572
|
|
|
3427
|
-
const mgInputTitleCss = ".is-asterisk.sc-mg-input-title{color:hsl(var(--color-danger))}legend.mg-input-title.sc-mg-input-title{padding-
|
|
3573
|
+
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)}";
|
|
3428
3574
|
|
|
3429
3575
|
const MgInputTitle = class {
|
|
3430
3576
|
constructor(hostRef) {
|
|
@@ -3435,7 +3581,7 @@ const MgInputTitle = class {
|
|
|
3435
3581
|
this.tagName = 'label';
|
|
3436
3582
|
}
|
|
3437
3583
|
validateIdentifier(newValue) {
|
|
3438
|
-
if (
|
|
3584
|
+
if (!isValidString(newValue)) {
|
|
3439
3585
|
throw new Error('<mg-input-title> prop "identifier" is required.');
|
|
3440
3586
|
}
|
|
3441
3587
|
}
|
|
@@ -3459,7 +3605,7 @@ const MgInputTitle = class {
|
|
|
3459
3605
|
render() {
|
|
3460
3606
|
const TagName = this.tagName;
|
|
3461
3607
|
// \u00A0 represent a
|
|
3462
|
-
return (h(TagName, { class: "mg-input-title", htmlFor: this.isLegend ? undefined : this.identifier }, h("slot", null), this.required && (h("span", { class: "mg-input-title__required" }, "\u00A0", h("span", { class: "is-asterisk" }, "*")))));
|
|
3608
|
+
return (h(TagName, { class: "mg-c-input-title", htmlFor: this.isLegend ? undefined : this.identifier }, h("slot", null), this.required && (h("span", { class: "mg-c-input-title__required" }, "\u00A0", h("span", { class: "mg-u-is-asterisk" }, "*")))));
|
|
3463
3609
|
}
|
|
3464
3610
|
static get watchers() { return {
|
|
3465
3611
|
"identifier": ["validateIdentifier"],
|
|
@@ -3468,7 +3614,7 @@ const MgInputTitle = class {
|
|
|
3468
3614
|
};
|
|
3469
3615
|
MgInputTitle.style = mgInputTitleCss;
|
|
3470
3616
|
|
|
3471
|
-
const mgInputToggleCss = ":host{display:block}.mg-input{display:flex;
|
|
3617
|
+
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}";
|
|
3472
3618
|
|
|
3473
3619
|
/**
|
|
3474
3620
|
* type Option validation function
|
|
@@ -3485,11 +3631,11 @@ const MgInputToggle = class {
|
|
|
3485
3631
|
* Internal *
|
|
3486
3632
|
************/
|
|
3487
3633
|
// Classes
|
|
3488
|
-
this.classReadonly = 'mg-input--toggle-readonly';
|
|
3489
|
-
this.classDisabled = 'mg-input--toggle-disabled';
|
|
3490
|
-
this.classIsActive = 'mg-input--toggle-is-active';
|
|
3491
|
-
this.classOnOff = 'mg-input--toggle-on-off';
|
|
3492
|
-
this.classIcon = 'mg-input--toggle-icon';
|
|
3634
|
+
this.classReadonly = 'mg-c-input--toggle-readonly';
|
|
3635
|
+
this.classDisabled = 'mg-c-input--toggle-disabled';
|
|
3636
|
+
this.classIsActive = 'mg-c-input--toggle-is-active';
|
|
3637
|
+
this.classOnOff = 'mg-c-input--toggle-on-off';
|
|
3638
|
+
this.classIcon = 'mg-c-input--toggle-icon';
|
|
3493
3639
|
/**
|
|
3494
3640
|
* Change checked value
|
|
3495
3641
|
*/
|
|
@@ -3523,7 +3669,7 @@ const MgInputToggle = class {
|
|
|
3523
3669
|
this.disabled = false;
|
|
3524
3670
|
this.tooltip = undefined;
|
|
3525
3671
|
this.helpText = undefined;
|
|
3526
|
-
this.classCollection = new ClassList(['mg-input--toggle']);
|
|
3672
|
+
this.classCollection = new ClassList(['mg-c-input--toggle']);
|
|
3527
3673
|
this.options = undefined;
|
|
3528
3674
|
this.checked = false;
|
|
3529
3675
|
}
|
|
@@ -3628,7 +3774,7 @@ const MgInputToggle = class {
|
|
|
3628
3774
|
* @returns HTML Element
|
|
3629
3775
|
*/
|
|
3630
3776
|
render() {
|
|
3631
|
-
return (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 }, 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 }, h("span", { "aria-hidden": "true", class: "mg-input__toggle-item-container" }, h("slot", { name: "item-1" })), h("span", { "aria-hidden": "true", class: "mg-input__toggle-item-container" }, h("slot", { name: "item-2" })))));
|
|
3777
|
+
return (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 }, 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 }, h("span", { "aria-hidden": "true", class: "mg-c-input__toggle-item-container" }, h("slot", { name: "item-1" })), h("span", { "aria-hidden": "true", class: "mg-c-input__toggle-item-container" }, h("slot", { name: "item-2" })))));
|
|
3632
3778
|
}
|
|
3633
3779
|
get element() { return getElement(this); }
|
|
3634
3780
|
static get watchers() { return {
|
|
@@ -3643,7 +3789,7 @@ const MgInputToggle = class {
|
|
|
3643
3789
|
};
|
|
3644
3790
|
MgInputToggle.style = mgInputToggleCss;
|
|
3645
3791
|
|
|
3646
|
-
const mgMenuCss = ".
|
|
3792
|
+
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}";
|
|
3647
3793
|
|
|
3648
3794
|
const MgMenu = class {
|
|
3649
3795
|
constructor(hostRef) {
|
|
@@ -3811,7 +3957,7 @@ const MgMenu = class {
|
|
|
3811
3957
|
};
|
|
3812
3958
|
MgMenu.style = mgMenuCss;
|
|
3813
3959
|
|
|
3814
|
-
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}";
|
|
3960
|
+
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}";
|
|
3815
3961
|
|
|
3816
3962
|
const MgMenuItem = class {
|
|
3817
3963
|
constructor(hostRef) {
|
|
@@ -3822,7 +3968,7 @@ const MgMenuItem = class {
|
|
|
3822
3968
|
* Internal *
|
|
3823
3969
|
************/
|
|
3824
3970
|
this.name = 'mg-menu-item';
|
|
3825
|
-
this.navigationButton =
|
|
3971
|
+
this.navigationButton = 'mg-c-menu-item__navigation-button';
|
|
3826
3972
|
/***********
|
|
3827
3973
|
* Methods *
|
|
3828
3974
|
**********/
|
|
@@ -3875,7 +4021,7 @@ const MgMenuItem = class {
|
|
|
3875
4021
|
throw new Error(`<${this.name}> slot "label" is required.`);
|
|
3876
4022
|
['label', 'metadata'].forEach(slot => {
|
|
3877
4023
|
Array.from(this.element.querySelectorAll(`[slot="${slot}"]`)).forEach(element => {
|
|
3878
|
-
if (element.textContent
|
|
4024
|
+
if (!isValidString(element.textContent))
|
|
3879
4025
|
throw new Error(`<${this.name}> slot "${slot}" must have text content.`);
|
|
3880
4026
|
if ((guard && element.getAttribute('title') === null) || !guard)
|
|
3881
4027
|
element.setAttribute('title', element.textContent);
|
|
@@ -4077,10 +4223,9 @@ const MgMenuItem = class {
|
|
|
4077
4223
|
*/
|
|
4078
4224
|
renderInteractiveElement() {
|
|
4079
4225
|
const TagName = this.href !== undefined ? 'a' : 'button';
|
|
4080
|
-
return (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 }, h("slot", { name: "image" }), h("div", { class: `${this.navigationButton}-center` }, h("div", { class: `${this.navigationButton}-text-content` }, h("slot", { name: "label" }), !this.displayNotificationBadge && h("slot", { name: "information" }), this.displayNotificationBadge && (h("span", { class:
|
|
4226
|
+
return (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 }, h("slot", { name: "image" }), h("div", { class: `${this.navigationButton}-center` }, h("div", { class: `${this.navigationButton}-text-content` }, h("slot", { name: "label" }), !this.displayNotificationBadge && h("slot", { name: "information" }), this.displayNotificationBadge && (h("span", { class: `${this.navigationButton}-text-content-notification` }, h("mg-badge", { label: this.badgeLabel, value: "!", variant: "text-color", slot: "information" })))), this.size !== 'regular' && h("slot", { name: "metadata" })), this.hasChildren && this.href === undefined && (h("span", { class: {
|
|
4081
4227
|
[`${this.navigationButton}-chevron`]: true,
|
|
4082
4228
|
[`${this.navigationButton}-chevron--rotate`]: this.expanded === true,
|
|
4083
|
-
'mg-a11y-animation': true,
|
|
4084
4229
|
} }, h("mg-icon", { icon: "chevron-down", size: "small" })))));
|
|
4085
4230
|
}
|
|
4086
4231
|
/**
|
|
@@ -4089,8 +4234,8 @@ const MgMenuItem = class {
|
|
|
4089
4234
|
*/
|
|
4090
4235
|
render() {
|
|
4091
4236
|
const getContainerClasses = () => ({
|
|
4092
|
-
[
|
|
4093
|
-
[
|
|
4237
|
+
['mg-c-menu-item__collapse-container']: true,
|
|
4238
|
+
['mg-c-menu-item__collapse-container--first-level']: (this.isInMainMenu || this.isItemMore) && this.isDirection(Direction.HORIZONTAL),
|
|
4094
4239
|
});
|
|
4095
4240
|
return (h(Host, { role: this.isItemMore ? 'presentation' : 'listitem' }, this.displayPopover() ? (h("mg-popover", { display: this.expanded, placement: "bottom-start", arrowHide: true, "onDisplay-change": this.handlePopoverDisplay, identifier: this.getPopoverIdentifier() }, this.renderInteractiveElement(), h("div", { class: getContainerClasses(), slot: "content" }, this.renderSlot()))) : ([
|
|
4096
4241
|
this.renderInteractiveElement(),
|
|
@@ -4113,7 +4258,7 @@ MgMenuItem.style = mgMenuItemCss;
|
|
|
4113
4258
|
*/
|
|
4114
4259
|
const variants$1 = ['info', 'warning', 'success', 'danger'];
|
|
4115
4260
|
|
|
4116
|
-
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(*){
|
|
4261
|
+
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%}";
|
|
4117
4262
|
|
|
4118
4263
|
const MgMessage = class {
|
|
4119
4264
|
constructor(hostRef) {
|
|
@@ -4124,7 +4269,7 @@ const MgMessage = class {
|
|
|
4124
4269
|
* Internal *
|
|
4125
4270
|
************/
|
|
4126
4271
|
// Classes
|
|
4127
|
-
this.classHide = 'mg-message--hide';
|
|
4272
|
+
this.classHide = 'mg-c-message--hide';
|
|
4128
4273
|
// IDs
|
|
4129
4274
|
this.closeButtonId = '';
|
|
4130
4275
|
// Stored timer setted when hide action is run from setTimeOut
|
|
@@ -4188,7 +4333,7 @@ const MgMessage = class {
|
|
|
4188
4333
|
this.variant = variants$1[0];
|
|
4189
4334
|
this.closeButton = false;
|
|
4190
4335
|
this.hide = false;
|
|
4191
|
-
this.classCollection = new ClassList(['mg-message']);
|
|
4336
|
+
this.classCollection = new ClassList(['mg-c-message']);
|
|
4192
4337
|
this.hasActions = false;
|
|
4193
4338
|
}
|
|
4194
4339
|
validateDelay(newValue) {
|
|
@@ -4202,9 +4347,9 @@ const MgMessage = class {
|
|
|
4202
4347
|
}
|
|
4203
4348
|
else {
|
|
4204
4349
|
if (oldValue !== undefined) {
|
|
4205
|
-
this.classCollection.delete(`mg-message--${oldValue}`);
|
|
4350
|
+
this.classCollection.delete(`mg-c-message--${oldValue}`);
|
|
4206
4351
|
}
|
|
4207
|
-
this.classCollection.add(`mg-message--${newValue}`);
|
|
4352
|
+
this.classCollection.add(`mg-c-message--${newValue}`);
|
|
4208
4353
|
}
|
|
4209
4354
|
}
|
|
4210
4355
|
validateCloseButton(newValue) {
|
|
@@ -4253,7 +4398,7 @@ const MgMessage = class {
|
|
|
4253
4398
|
this.hasActions = this.element.querySelector('[slot="actions"]') !== null;
|
|
4254
4399
|
this.validateCloseButton(this.closeButton);
|
|
4255
4400
|
if (this.closeButton) {
|
|
4256
|
-
this.classCollection.add('mg-message--close-button');
|
|
4401
|
+
this.classCollection.add('mg-c-message--close-button');
|
|
4257
4402
|
this.closeButtonId = `${this.identifier}-close-button`;
|
|
4258
4403
|
}
|
|
4259
4404
|
this.validateDelay(this.delay);
|
|
@@ -4264,7 +4409,7 @@ const MgMessage = class {
|
|
|
4264
4409
|
* @returns HTML Element
|
|
4265
4410
|
*/
|
|
4266
4411
|
render() {
|
|
4267
|
-
return (h("div", { id: this.identifier, class: this.classCollection.join(), role: this.variant === 'info' ? 'status' : 'alert' }, h("mg-card", { variant: this.variant, "variant-style": "bar-left" }, h("span", { class: "mg-message__icon" }, h("mg-icon", { icon: this.getIcon() })), h("div", { class: "mg-message__content" }, h("span", { class: "mg-message__content-slot" }, h("slot", null)), this.hasActions && h("span", { class: "mg-message__content-separator" }), this.hasActions && (h("span", { class: "mg-message__content-actions-slot" }, h("slot", { name: "actions" })))), this.closeButton && (h("span", { class: "mg-message__close-button" }, h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: this.messages.message.closeButton, onClick: this.handleClose }, h("mg-icon", { icon: "cross" })))))));
|
|
4412
|
+
return (h("div", { id: this.identifier, class: this.classCollection.join(), role: this.variant === 'info' ? 'status' : 'alert' }, h("mg-card", { variant: this.variant, "variant-style": "bar-left" }, h("span", { class: "mg-c-message__icon" }, h("mg-icon", { icon: this.getIcon() })), h("div", { class: "mg-c-message__content" }, h("span", { class: "mg-c-message__content-slot" }, h("slot", null)), this.hasActions && h("span", { class: "mg-c-message__content-separator" }), this.hasActions && (h("span", { class: "mg-c-message__content-actions-slot" }, h("slot", { name: "actions" })))), this.closeButton && (h("span", { class: "mg-c-message__close-button" }, h("mg-button", { identifier: this.closeButtonId, "is-icon": true, variant: "flat", label: this.messages.message.closeButton, onClick: this.handleClose }, h("mg-icon", { icon: "cross" })))))));
|
|
4268
4413
|
}
|
|
4269
4414
|
get element() { return getElement(this); }
|
|
4270
4415
|
static get watchers() { return {
|
|
@@ -4281,7 +4426,7 @@ MgMessage.style = mgMessageCss;
|
|
|
4281
4426
|
*/
|
|
4282
4427
|
const dialogRoles = ['dialog', 'alertdialog'];
|
|
4283
4428
|
|
|
4284
|
-
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{
|
|
4429
|
+
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}";
|
|
4285
4430
|
|
|
4286
4431
|
const MgModal = class {
|
|
4287
4432
|
constructor(hostRef) {
|
|
@@ -4294,7 +4439,7 @@ const MgModal = class {
|
|
|
4294
4439
|
// Modal focusable elements
|
|
4295
4440
|
this.modalFocusableElements = [];
|
|
4296
4441
|
// Classes
|
|
4297
|
-
this.classHide = 'mg-modal--hide';
|
|
4442
|
+
this.classHide = 'mg-c-modal--hide';
|
|
4298
4443
|
// IDs
|
|
4299
4444
|
this.titleId = '';
|
|
4300
4445
|
/**
|
|
@@ -4360,14 +4505,14 @@ const MgModal = class {
|
|
|
4360
4505
|
this.hide = undefined;
|
|
4361
4506
|
this.hasActions = false;
|
|
4362
4507
|
this.hasContent = false;
|
|
4363
|
-
this.classCollection = new ClassList(['mg-modal']);
|
|
4508
|
+
this.classCollection = new ClassList(['mg-c-modal']);
|
|
4364
4509
|
}
|
|
4365
4510
|
validateDialogRole(newValue) {
|
|
4366
4511
|
if (!dialogRoles.includes(newValue))
|
|
4367
4512
|
throw new Error(`<mg-modal> prop "dialogRole" must be one of: ${dialogRoles.join(', ')}.`);
|
|
4368
4513
|
}
|
|
4369
4514
|
validateModalTitle(newValue) {
|
|
4370
|
-
if (
|
|
4515
|
+
if (!isValidString(newValue)) {
|
|
4371
4516
|
throw new Error('<mg-modal> prop "modalTitle" is required.');
|
|
4372
4517
|
}
|
|
4373
4518
|
}
|
|
@@ -4435,14 +4580,14 @@ const MgModal = class {
|
|
|
4435
4580
|
* @returns HTML Element
|
|
4436
4581
|
*/
|
|
4437
4582
|
render() {
|
|
4438
|
-
return (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 }, h("mg-card", null, h("div", { class: "mg-modal__dialog" }, h("header", { class: "mg-modal__header" }, this.closeButton && (h("span", { class: "mg-modal__close-button" }, h("mg-button", { identifier: `${this.identifier}-close-button`, "is-icon": true, variant: "flat", label: this.messages.modal.closeButton, onClick: this.handleClose, ref: (el) => {
|
|
4583
|
+
return (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 }, h("mg-card", null, h("div", { class: "mg-c-modal__dialog" }, h("header", { class: "mg-c-modal__header" }, this.closeButton && (h("span", { class: "mg-c-modal__close-button" }, h("mg-button", { identifier: `${this.identifier}-close-button`, "is-icon": true, variant: "flat", label: this.messages.modal.closeButton, onClick: this.handleClose, ref: (el) => {
|
|
4439
4584
|
if (el !== null) {
|
|
4440
4585
|
// store closeButton Element
|
|
4441
4586
|
this.closeButtonElement = el;
|
|
4442
4587
|
// add close button element to modalFocusableElements when it is render
|
|
4443
4588
|
this.modalFocusableElements.unshift(this.closeButtonElement);
|
|
4444
4589
|
}
|
|
4445
|
-
} }, h("mg-icon", { icon: "cross" })))), h("h1", { class: "mg-modal__title", id: this.titleId }, this.modalTitle)), this.hasContent && (h("article", { class: "mg-modal__content" }, h("slot", { name: "content" }))), this.hasActions && (h("footer", { class: "mg-modal__footer" }, h("slot", { name: "actions" })))))));
|
|
4590
|
+
} }, h("mg-icon", { icon: "cross" })))), h("h1", { class: "mg-c-modal__title", id: this.titleId }, this.modalTitle)), this.hasContent && (h("article", { class: "mg-c-modal__content" }, h("slot", { name: "content" }))), this.hasActions && (h("footer", { class: "mg-c-modal__footer" }, h("slot", { name: "actions" })))))));
|
|
4446
4591
|
}
|
|
4447
4592
|
get element() { return getElement(this); }
|
|
4448
4593
|
static get watchers() { return {
|
|
@@ -4459,7 +4604,7 @@ var NavigationAction;
|
|
|
4459
4604
|
NavigationAction["PREVIOUS"] = "previous";
|
|
4460
4605
|
})(NavigationAction || (NavigationAction = {}));
|
|
4461
4606
|
|
|
4462
|
-
const mgPaginationCss = ".
|
|
4607
|
+
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}";
|
|
4463
4608
|
|
|
4464
4609
|
/**
|
|
4465
4610
|
* Range generator
|
|
@@ -4559,7 +4704,7 @@ const MgPagination = class {
|
|
|
4559
4704
|
const navigationActionButton = (disabled, action) => (h("mg-button", { identifier: `${this.identifier}-button-${action}`, label: this.messages.pagination[`${action}Page`],
|
|
4560
4705
|
// eslint-disable-next-line react/jsx-no-bind
|
|
4561
4706
|
onClick: () => this.handleGoToPage(action, disabled), disabled: disabled, variant: "flat", isIcon: this.hideNavigationLabels }, action === NavigationAction.PREVIOUS && h("mg-icon", { icon: "chevron-left" }), !this.hideNavigationLabels && this.messages.general[action], action === NavigationAction.NEXT && h("mg-icon", { icon: "chevron-right" })));
|
|
4562
|
-
return (h(Host, { hidden: this.totalPages < 2 }, 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 && (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 })), h("span", { class: "
|
|
4707
|
+
return (h(Host, { hidden: this.totalPages < 2 }, 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 && (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 })), h("span", { class: "mg-u-visually-hidden" }, this.messages.pagination.page, " ", this.currentPage), 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))));
|
|
4563
4708
|
}
|
|
4564
4709
|
get element() { return getElement(this); }
|
|
4565
4710
|
static get watchers() { return {
|
|
@@ -4578,7 +4723,7 @@ const expandToggleDisplays = ['text', 'icon'];
|
|
|
4578
4723
|
*/
|
|
4579
4724
|
const titlePositions = ['left', 'right'];
|
|
4580
4725
|
|
|
4581
|
-
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
|
|
4726
|
+
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}";
|
|
4582
4727
|
|
|
4583
4728
|
const MgPanel = class {
|
|
4584
4729
|
constructor(hostRef) {
|
|
@@ -4641,7 +4786,7 @@ const MgPanel = class {
|
|
|
4641
4786
|
* Render collapse button
|
|
4642
4787
|
* @returns collpase button
|
|
4643
4788
|
*/
|
|
4644
|
-
this.renderCollapseButton = () => (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 }, h("span", { class: "mg-panel__collapse-button-content" }, 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)));
|
|
4789
|
+
this.renderCollapseButton = () => (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 }, h("span", { class: "mg-c-panel__collapse-button-content" }, 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)));
|
|
4645
4790
|
/**
|
|
4646
4791
|
* Render edit button
|
|
4647
4792
|
* @returns edit Button
|
|
@@ -4672,8 +4817,8 @@ const MgPanel = class {
|
|
|
4672
4817
|
*/
|
|
4673
4818
|
this.renderHeaderChildren = () => {
|
|
4674
4819
|
const children = [
|
|
4675
|
-
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()),
|
|
4676
|
-
h("div", { class: "mg-panel__header-content", key: "slot-header" }, h("slot", { name: "header-right" })),
|
|
4820
|
+
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()),
|
|
4821
|
+
h("div", { class: "mg-c-panel__header-content", key: "slot-header" }, h("slot", { name: "header-right" })),
|
|
4677
4822
|
];
|
|
4678
4823
|
return this.titlePosition === 'right' ? children.reverse() : children;
|
|
4679
4824
|
};
|
|
@@ -4686,20 +4831,18 @@ const MgPanel = class {
|
|
|
4686
4831
|
this.expanded = false;
|
|
4687
4832
|
this.expandToggleDisplay = expandToggleDisplays[0];
|
|
4688
4833
|
this.expandToggleDisabled = undefined;
|
|
4689
|
-
this.classCollection = new ClassList(['mg-panel']);
|
|
4834
|
+
this.classCollection = new ClassList(['mg-c-panel']);
|
|
4690
4835
|
this.isEditing = false;
|
|
4691
4836
|
this.updatedPanelTitle = undefined;
|
|
4692
4837
|
}
|
|
4693
4838
|
validatePanelTitle(newValue) {
|
|
4694
|
-
if (
|
|
4839
|
+
if (!isValidString(newValue))
|
|
4695
4840
|
throw new Error('<mg-panel> prop "panelTitle" is required.');
|
|
4696
4841
|
this.titleChange.emit(newValue);
|
|
4697
4842
|
}
|
|
4698
|
-
|
|
4843
|
+
validateTitlePattern(newValue) {
|
|
4699
4844
|
if (newValue !== undefined && !this.titleEditable)
|
|
4700
|
-
throw new Error(
|
|
4701
|
-
if (newValue !== undefined && (this.titlePatternErrorMessage === undefined || this.titlePatternErrorMessage.trim() === ''))
|
|
4702
|
-
throw new Error('<mg-panel> prop "titlePattern" must be paired with the prop "titlePatternErrorMessage".');
|
|
4845
|
+
throw new Error(`<mg-panel> prop "titleEditable" must be set to "true".`);
|
|
4703
4846
|
}
|
|
4704
4847
|
validateTitlePosition(newValue) {
|
|
4705
4848
|
if (!titlePositions.includes(newValue))
|
|
@@ -4724,7 +4867,8 @@ const MgPanel = class {
|
|
|
4724
4867
|
// Get locales
|
|
4725
4868
|
this.messages = initLocales(this.element).messages;
|
|
4726
4869
|
// Validate
|
|
4727
|
-
this.
|
|
4870
|
+
this.validateTitlePattern(this.titlePattern);
|
|
4871
|
+
this.validateTitlePattern(this.titlePatternErrorMessage);
|
|
4728
4872
|
this.validatePanelTitle(this.panelTitle);
|
|
4729
4873
|
this.validateExpandToggleDisplay(this.expandToggleDisplay);
|
|
4730
4874
|
this.validateTitlePosition(this.titlePosition);
|
|
@@ -4743,12 +4887,13 @@ const MgPanel = class {
|
|
|
4743
4887
|
*/
|
|
4744
4888
|
render() {
|
|
4745
4889
|
const headerId = `${this.identifier}-header`;
|
|
4746
|
-
return (h("section", { class: this.classCollection.join(), id: this.identifier }, h("mg-card", null, h("header", { class: { 'mg-panel__header': true, 'mg-panel__header--reverse': this.titlePosition === 'right' }, id: headerId }, this.renderHeaderChildren()), h("article", { class: "mg-panel__content", id: `${this.identifier}-content`, "aria-labelledby": headerId, hidden: !this.expanded }, h("slot", null)))));
|
|
4890
|
+
return (h("section", { class: this.classCollection.join(), id: this.identifier }, h("mg-card", null, h("header", { class: { 'mg-c-panel__header': true, 'mg-c-panel__header--reverse': this.titlePosition === 'right' }, id: headerId }, this.renderHeaderChildren()), h("article", { class: "mg-c-panel__content", id: `${this.identifier}-content`, "aria-labelledby": headerId, hidden: !this.expanded }, h("slot", null)))));
|
|
4747
4891
|
}
|
|
4748
4892
|
get element() { return getElement(this); }
|
|
4749
4893
|
static get watchers() { return {
|
|
4750
4894
|
"panelTitle": ["validatePanelTitle"],
|
|
4751
|
-
"titlePattern": ["
|
|
4895
|
+
"titlePattern": ["validateTitlePattern"],
|
|
4896
|
+
"titlePatternErrorMessage": ["validateTitlePattern"],
|
|
4752
4897
|
"titlePosition": ["validateTitlePosition"],
|
|
4753
4898
|
"expanded": ["handleExpanded"],
|
|
4754
4899
|
"expandToggleDisplay": ["validateExpandToggleDisplay"]
|
|
@@ -6608,21 +6753,27 @@ const MgPopover = class {
|
|
|
6608
6753
|
* Render popover content element
|
|
6609
6754
|
*/
|
|
6610
6755
|
this.renderPopoverContent = () => {
|
|
6611
|
-
|
|
6612
|
-
|
|
6613
|
-
|
|
6614
|
-
|
|
6615
|
-
|
|
6616
|
-
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6756
|
+
const mgPopoverContent = this.element.querySelector('mg-popover-content');
|
|
6757
|
+
if (mgPopoverContent === null) {
|
|
6758
|
+
this.mgPopoverContent = document.createElement('mg-popover-content');
|
|
6759
|
+
this.mgPopoverContent.setAttribute('slot', 'content');
|
|
6760
|
+
this.mgPopoverContent.setAttribute('id', this.identifier);
|
|
6761
|
+
this.mgPopoverContent.addEventListener('hide-content', this.handleHideContent);
|
|
6762
|
+
const arrow = document.createElement('div');
|
|
6763
|
+
arrow.setAttribute('slot', 'arrow');
|
|
6764
|
+
arrow.dataset.popperArrow = '';
|
|
6765
|
+
this.mgPopoverContent.appendChild(arrow);
|
|
6766
|
+
// insert elements in DOM
|
|
6767
|
+
['[slot="title"]', '[slot="content"]:not(mg-popover-content)'].forEach(slotType => {
|
|
6768
|
+
Array.from(this.element.querySelectorAll(slotType)).forEach(slot => {
|
|
6769
|
+
this.mgPopoverContent.appendChild(slot);
|
|
6770
|
+
});
|
|
6623
6771
|
});
|
|
6624
|
-
|
|
6625
|
-
|
|
6772
|
+
this.element.appendChild(this.mgPopoverContent);
|
|
6773
|
+
}
|
|
6774
|
+
else {
|
|
6775
|
+
mgPopoverContent.setAttribute('id', this.identifier);
|
|
6776
|
+
}
|
|
6626
6777
|
};
|
|
6627
6778
|
this.identifier = createID('mg-popover');
|
|
6628
6779
|
this.placement = 'bottom';
|
|
@@ -6631,6 +6782,10 @@ const MgPopover = class {
|
|
|
6631
6782
|
this.display = false;
|
|
6632
6783
|
this.disabled = false;
|
|
6633
6784
|
}
|
|
6785
|
+
validateIdentifier() {
|
|
6786
|
+
// use renderPopoverContent to update popover-content id
|
|
6787
|
+
this.renderPopoverContent();
|
|
6788
|
+
}
|
|
6634
6789
|
validateArrowHide(newValue) {
|
|
6635
6790
|
if (newValue)
|
|
6636
6791
|
this.mgPopoverContent.dataset.arrowHide = '';
|
|
@@ -6667,6 +6822,7 @@ const MgPopover = class {
|
|
|
6667
6822
|
// render mg-popover-content slot
|
|
6668
6823
|
this.renderPopoverContent();
|
|
6669
6824
|
this.validateCloseButton(this.closeButton);
|
|
6825
|
+
this.validateIdentifier();
|
|
6670
6826
|
this.validateArrowHide(this.arrowHide);
|
|
6671
6827
|
}
|
|
6672
6828
|
/**
|
|
@@ -6691,6 +6847,12 @@ const MgPopover = class {
|
|
|
6691
6847
|
offset: [0, 0],
|
|
6692
6848
|
},
|
|
6693
6849
|
},
|
|
6850
|
+
{
|
|
6851
|
+
name: 'flip',
|
|
6852
|
+
options: {
|
|
6853
|
+
fallbackPlacements: ['auto'],
|
|
6854
|
+
},
|
|
6855
|
+
},
|
|
6694
6856
|
],
|
|
6695
6857
|
});
|
|
6696
6858
|
// add resize observer
|
|
@@ -6720,6 +6882,7 @@ const MgPopover = class {
|
|
|
6720
6882
|
}
|
|
6721
6883
|
get element() { return getElement(this); }
|
|
6722
6884
|
static get watchers() { return {
|
|
6885
|
+
"identifier": ["validateIdentifier"],
|
|
6723
6886
|
"arrowHide": ["validateArrowHide"],
|
|
6724
6887
|
"closeButton": ["validateCloseButton"],
|
|
6725
6888
|
"display": ["handleDisplay"]
|
|
@@ -6727,7 +6890,7 @@ const MgPopover = class {
|
|
|
6727
6890
|
};
|
|
6728
6891
|
MgPopover.style = mgPopoverCss;
|
|
6729
6892
|
|
|
6730
|
-
const mgPopoverContentCss = ":host{display:none;padding:1rem;
|
|
6893
|
+
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)}";
|
|
6731
6894
|
|
|
6732
6895
|
const MgPopoverContent = class {
|
|
6733
6896
|
constructor(hostRef) {
|
|
@@ -6740,7 +6903,7 @@ const MgPopoverContent = class {
|
|
|
6740
6903
|
this.hideContent.emit();
|
|
6741
6904
|
};
|
|
6742
6905
|
this.closeButton = false;
|
|
6743
|
-
this.classCollection = new ClassList(['mg-popover-content']);
|
|
6906
|
+
this.classCollection = new ClassList(['mg-c-popover-content']);
|
|
6744
6907
|
}
|
|
6745
6908
|
/*************
|
|
6746
6909
|
* Lifecycle *
|
|
@@ -6767,13 +6930,13 @@ const MgPopoverContent = class {
|
|
|
6767
6930
|
* @returns HTML Element
|
|
6768
6931
|
*/
|
|
6769
6932
|
render() {
|
|
6770
|
-
return (h(Host, null, h("mg-card", { class: this.classCollection.join() }, this.closeButton && (h("mg-button", { "is-icon": true, variant: "flat", label: this.messages.general.close, onClick: this.handleCloseButton }, h("mg-icon", { icon: "cross" }))), h("div", { class: "mg-popover-content__title" }, h("slot", { name: "title" })), h("slot", { name: "content" })), h("slot", { name: "arrow" })));
|
|
6933
|
+
return (h(Host, null, h("mg-card", { class: this.classCollection.join() }, this.closeButton && (h("mg-button", { "is-icon": true, variant: "flat", label: this.messages.general.close, onClick: this.handleCloseButton }, h("mg-icon", { icon: "cross" }))), h("div", { class: "mg-c-popover-content__title" }, h("slot", { name: "title" })), h("slot", { name: "content" })), h("slot", { name: "arrow" })));
|
|
6771
6934
|
}
|
|
6772
6935
|
get element() { return getElement(this); }
|
|
6773
6936
|
};
|
|
6774
6937
|
MgPopoverContent.style = mgPopoverContentCss;
|
|
6775
6938
|
|
|
6776
|
-
const mgSkipLinksCss = ".mg-skip-links{position:absolute;
|
|
6939
|
+
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%)}";
|
|
6777
6940
|
|
|
6778
6941
|
const MgSkipLinks = class {
|
|
6779
6942
|
constructor(hostRef) {
|
|
@@ -6793,9 +6956,7 @@ const MgSkipLinks = class {
|
|
|
6793
6956
|
this.links = undefined;
|
|
6794
6957
|
}
|
|
6795
6958
|
validateLinks(links) {
|
|
6796
|
-
if (links === undefined ||
|
|
6797
|
-
links.length === 0 ||
|
|
6798
|
-
links.some(link => link.href === undefined || !link.href.startsWith('#') || link.label === undefined || link.label.trim() === '')) {
|
|
6959
|
+
if (links === undefined || links.length === 0 || links.some(link => !isValidString(link.href) || !link.href.startsWith('#') || !isValidString(link.label))) {
|
|
6799
6960
|
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.`);
|
|
6800
6961
|
}
|
|
6801
6962
|
}
|
|
@@ -6814,7 +6975,7 @@ const MgSkipLinks = class {
|
|
|
6814
6975
|
* @returns HTML Element
|
|
6815
6976
|
*/
|
|
6816
6977
|
render() {
|
|
6817
|
-
return (h("nav", { class: "mg-skip-links", role: "navigation", "aria-label": this.messages.skipLinks.navLabel }, h("ul", { class: "mg-skip-links__list", role: "list" }, this.links.map(link => (h("li", { key: link.href }, h("a", { class: "mg-skip-links__link", href: link.href, onClick: this.handleLinkCLick }, link.label)))))));
|
|
6978
|
+
return (h("nav", { class: "mg-c-skip-links", role: "navigation", "aria-label": this.messages.skipLinks.navLabel }, h("ul", { class: "mg-c-skip-links__list", role: "list" }, this.links.map(link => (h("li", { key: link.href }, h("a", { class: "mg-c-skip-links__link", href: link.href, onClick: this.handleLinkCLick }, link.label)))))));
|
|
6818
6979
|
}
|
|
6819
6980
|
get element() { return getElement(this); }
|
|
6820
6981
|
static get watchers() { return {
|
|
@@ -6838,7 +6999,7 @@ var Status;
|
|
|
6838
6999
|
*/
|
|
6839
7000
|
const sizes = ['regular', 'large'];
|
|
6840
7001
|
|
|
6841
|
-
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) +
|
|
7002
|
+
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}";
|
|
6842
7003
|
|
|
6843
7004
|
/**
|
|
6844
7005
|
* type TabItem validation function
|
|
@@ -6855,8 +7016,14 @@ const MgTabs = class {
|
|
|
6855
7016
|
************/
|
|
6856
7017
|
// classes
|
|
6857
7018
|
this.tabPanel = 'panel';
|
|
6858
|
-
this.buttonTabBaseClass = 'mg-tabs__navigation-button';
|
|
7019
|
+
this.buttonTabBaseClass = 'mg-c-tabs__navigation-button';
|
|
6859
7020
|
this.startIndex = 1;
|
|
7021
|
+
/**
|
|
7022
|
+
* Validate that new tab status can be `Status.ACTIVE`
|
|
7023
|
+
* @param tab - tab item
|
|
7024
|
+
* @returns true when tab match condition to get a `Status.ACTIVE`
|
|
7025
|
+
*/
|
|
7026
|
+
this.isActivableTab = (tab) => [undefined, Status.ACTIVE, Status.VISIBLE].includes(tab.status);
|
|
6860
7027
|
/**
|
|
6861
7028
|
* Method to know if given tab has the given status
|
|
6862
7029
|
* @param tab - item tab key to set to ACTIVE status
|
|
@@ -6877,19 +7044,13 @@ const MgTabs = class {
|
|
|
6877
7044
|
* @returns index
|
|
6878
7045
|
*/
|
|
6879
7046
|
this.getTabItemIndex = (index) => index + this.startIndex;
|
|
6880
|
-
/**
|
|
6881
|
-
* Method to get the active-tab value
|
|
6882
|
-
* @returns of the active-tab
|
|
6883
|
-
*/
|
|
6884
|
-
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);
|
|
6885
7047
|
/**
|
|
6886
7048
|
* Handle click events on tabs
|
|
6887
7049
|
* @param event - mouse event
|
|
6888
7050
|
*/
|
|
6889
7051
|
this.handleClick = (event) => {
|
|
6890
7052
|
const tabId = event.currentTarget.dataset.index;
|
|
6891
|
-
|
|
6892
|
-
if (this.tabHasStatus(tab, Status.HIDDEN) || this.tabHasStatus(tab, Status.DISABLED)) {
|
|
7053
|
+
if (!this.isActivableTab(this.tabs[Number(tabId) - this.startIndex])) {
|
|
6893
7054
|
event.preventDefault();
|
|
6894
7055
|
}
|
|
6895
7056
|
else {
|
|
@@ -6949,7 +7110,7 @@ const MgTabs = class {
|
|
|
6949
7110
|
setTimeout(() => {
|
|
6950
7111
|
this.tabFocus = undefined;
|
|
6951
7112
|
Array.from(this.element.shadowRoot.querySelectorAll('[data-index]')).forEach((tab, index) => {
|
|
6952
|
-
tab.setAttribute('tabindex', this.
|
|
7113
|
+
tab.setAttribute('tabindex', this.activeTab - this.startIndex !== index ? '-1' : '0');
|
|
6953
7114
|
});
|
|
6954
7115
|
}, 0);
|
|
6955
7116
|
};
|
|
@@ -6967,10 +7128,10 @@ const MgTabs = class {
|
|
|
6967
7128
|
this.items = undefined;
|
|
6968
7129
|
this.activeTab = undefined;
|
|
6969
7130
|
this.tabs = [];
|
|
6970
|
-
this.classCollection = new ClassList(['mg-tabs']);
|
|
7131
|
+
this.classCollection = new ClassList(['mg-c-tabs']);
|
|
6971
7132
|
}
|
|
6972
7133
|
validateLabel(newValue) {
|
|
6973
|
-
if (
|
|
7134
|
+
if (!isValidString(newValue)) {
|
|
6974
7135
|
throw new Error('<mg-tabs> prop "label" is required.');
|
|
6975
7136
|
}
|
|
6976
7137
|
}
|
|
@@ -6978,42 +7139,42 @@ const MgTabs = class {
|
|
|
6978
7139
|
if (!sizes.includes(newValue)) {
|
|
6979
7140
|
throw new Error(`<mg-tabs> prop "size" must be one of: ${sizes.join(', ')}`);
|
|
6980
7141
|
}
|
|
6981
|
-
this.classCollection.add(`mg-tabs--size-${this.size}`);
|
|
7142
|
+
this.classCollection.add(`mg-c-tabs--size-${this.size}`);
|
|
6982
7143
|
}
|
|
6983
7144
|
validateItems(newValue) {
|
|
6984
7145
|
// String array
|
|
6985
|
-
if (allItemsAreString(newValue))
|
|
6986
|
-
this.tabs = newValue.map(
|
|
6987
|
-
}
|
|
7146
|
+
if (allItemsAreString(newValue))
|
|
7147
|
+
this.tabs = newValue.map(item => ({ label: item, status: Status.VISIBLE }));
|
|
6988
7148
|
// Object array
|
|
6989
|
-
else if (newValue && newValue.length > 0 && newValue.every(
|
|
7149
|
+
else if (Array.isArray(newValue) && newValue.length > 0 && newValue.every(isTabItem))
|
|
6990
7150
|
this.tabs = newValue;
|
|
6991
|
-
|
|
6992
|
-
if (this.tabs.find(tab => this.tabHasStatus(tab, Status.ACTIVE)) === undefined)
|
|
6993
|
-
this.tabs[0].status = Status.ACTIVE;
|
|
6994
|
-
}
|
|
6995
|
-
else {
|
|
7151
|
+
else
|
|
6996
7152
|
throw new Error('<mg-tabs> prop "items" is required and all items must be the same type: TabItem.');
|
|
6997
|
-
}
|
|
6998
7153
|
}
|
|
6999
7154
|
validateActiveTab(newValue) {
|
|
7000
|
-
|
|
7155
|
+
// when `active-tab` is undefined we set default value by searching an item with `Status.ACTIVE` or we use the `startIndex` has fallback value
|
|
7156
|
+
// after setting new value to `active-tab` the validate will be triggered again with the updated value and process the tab update
|
|
7157
|
+
if (newValue === undefined) {
|
|
7158
|
+
this.activeTab = this.tabs.some(tab => this.tabHasStatus(tab, Status.ACTIVE))
|
|
7159
|
+
? this.getTabItemIndex(this.tabs.findIndex(tab => this.tabHasStatus(tab, Status.ACTIVE)))
|
|
7160
|
+
: this.startIndex;
|
|
7161
|
+
}
|
|
7162
|
+
else if (typeof newValue === 'number' && newValue >= this.startIndex && newValue <= this.tabs.length && this.isActivableTab(this.tabs[newValue - this.startIndex])) {
|
|
7163
|
+
// if new 'active-tab' is activable we update tab status to ACTIVE and toggle past ACTIVE to VISIBLE
|
|
7001
7164
|
this.tabs.forEach((tab, index) => {
|
|
7002
7165
|
const isNewActiveTab = index === newValue - this.startIndex;
|
|
7003
7166
|
// reset active tabs
|
|
7004
7167
|
if (this.tabHasStatus(tab, Status.ACTIVE) && !isNewActiveTab)
|
|
7005
7168
|
tab.status = Status.VISIBLE;
|
|
7006
7169
|
// set active tab from given tab key
|
|
7007
|
-
else if (
|
|
7170
|
+
else if (this.isActivableTab(tab) && isNewActiveTab)
|
|
7008
7171
|
tab.status = Status.ACTIVE;
|
|
7009
7172
|
});
|
|
7010
7173
|
// emit change active tab key event
|
|
7011
|
-
|
|
7012
|
-
this.activeTabChange.emit(newValue);
|
|
7013
|
-
}
|
|
7174
|
+
this.activeTabChange.emit(newValue);
|
|
7014
7175
|
}
|
|
7015
|
-
else
|
|
7016
|
-
throw new Error(
|
|
7176
|
+
else {
|
|
7177
|
+
throw new Error(`<mg-tabs> prop "activeTab" must be a number between ${this.startIndex} and ${this.tabs.length} and new value must be "activable".`);
|
|
7017
7178
|
}
|
|
7018
7179
|
}
|
|
7019
7180
|
/*************
|
|
@@ -7044,13 +7205,13 @@ const MgTabs = class {
|
|
|
7044
7205
|
* @returns HTML Element
|
|
7045
7206
|
*/
|
|
7046
7207
|
render() {
|
|
7047
|
-
return (h("div", { class: this.classCollection.join() }, h("header", { role: "tablist", "aria-label": this.label, class: "mg-tabs__header" }, this.tabs.map((tab, index) => (h("button", { key: tab.label, role: "tab", id: this.getElementId(this.identifier, index), class: {
|
|
7208
|
+
return (h("div", { class: this.classCollection.join() }, h("header", { role: "tablist", "aria-label": this.label, class: "mg-c-tabs__header" }, this.tabs.map((tab, index) => (h("button", { key: tab.label, role: "tab", id: this.getElementId(this.identifier, index), class: {
|
|
7048
7209
|
[`${this.buttonTabBaseClass}`]: true,
|
|
7049
7210
|
[`${this.buttonTabBaseClass}--horizontal`]: true,
|
|
7050
7211
|
[`${this.getNavigationButtonClass(Status.ACTIVE)}`]: this.tabHasStatus(tab, Status.ACTIVE),
|
|
7051
7212
|
[`${this.getNavigationButtonClass(Status.DISABLED)}`]: this.tabHasStatus(tab, Status.DISABLED),
|
|
7052
7213
|
[`${this.getNavigationButtonClass(Status.HIDDEN)}`]: this.tabHasStatus(tab, Status.HIDDEN),
|
|
7053
|
-
}, tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, "aria-selected": this.tabHasStatus(tab, Status.ACTIVE).toString(), "aria-controls": this.getElementId(this.tabPanel, index), "aria-disabled": this.tabHasStatus(tab, Status.DISABLED), onClick: this.handleClick, onKeyDown: this.handleKeydown, "data-index": this.getTabItemIndex(index) }, tab.icon !== undefined && h("mg-icon", { icon: tab.icon }), tab.label, tab.badge !== undefined && h("mg-badge", { variant: "text-color", value: tab.badge.value, label: tab.badge.label, outline: tab.badge.role === 'information' }))))), this.tabs.map((tab, index) => (h("article", { key: tab.label, role: "tabpanel", id: this.getElementId(this.tabPanel, index), hidden: !this.tabHasStatus(tab, Status.ACTIVE), "aria-labelledby": this.getElementId(this.identifier, index), tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, class: "mg-tabs__content-container" }, h("slot", { name: this.getElementId('tab_content', index) }))))));
|
|
7214
|
+
}, tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, "aria-selected": this.tabHasStatus(tab, Status.ACTIVE).toString(), "aria-controls": this.getElementId(this.tabPanel, index), "aria-disabled": this.tabHasStatus(tab, Status.DISABLED), onClick: this.handleClick, onKeyDown: this.handleKeydown, "data-index": this.getTabItemIndex(index) }, tab.icon !== undefined && h("mg-icon", { icon: tab.icon }), tab.label, tab.badge !== undefined && h("mg-badge", { variant: "text-color", value: tab.badge.value, label: tab.badge.label, outline: tab.badge.role === 'information' }))))), this.tabs.map((tab, index) => (h("article", { key: tab.label, role: "tabpanel", id: this.getElementId(this.tabPanel, index), hidden: !this.tabHasStatus(tab, Status.ACTIVE), "aria-labelledby": this.getElementId(this.identifier, index), tabindex: this.tabHasStatus(tab, Status.ACTIVE) ? 0 : -1, class: "mg-c-tabs__content-container" }, h("slot", { name: this.getElementId('tab_content', index) }))))));
|
|
7054
7215
|
}
|
|
7055
7216
|
get element() { return getElement(this); }
|
|
7056
7217
|
static get watchers() { return {
|
|
@@ -7067,7 +7228,7 @@ MgTabs.style = mgTabsCss;
|
|
|
7067
7228
|
*/
|
|
7068
7229
|
const variants = ['primary', 'secondary', 'success', 'warning', 'danger', 'info'];
|
|
7069
7230
|
|
|
7070
|
-
const mgTagCss = ".mg-tag{padding:calc((var(--mg-tag-height) -
|
|
7231
|
+
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}";
|
|
7071
7232
|
|
|
7072
7233
|
const MgTag = class {
|
|
7073
7234
|
constructor(hostRef) {
|
|
@@ -7076,12 +7237,12 @@ const MgTag = class {
|
|
|
7076
7237
|
* Internal *
|
|
7077
7238
|
************/
|
|
7078
7239
|
// Classes
|
|
7079
|
-
this.classOutline = 'mg-tag--outline';
|
|
7080
|
-
this.classSoft = 'mg-tag--soft';
|
|
7240
|
+
this.classOutline = 'mg-c-tag--outline';
|
|
7241
|
+
this.classSoft = 'mg-c-tag--soft';
|
|
7081
7242
|
this.variant = variants[0];
|
|
7082
7243
|
this.outline = undefined;
|
|
7083
7244
|
this.soft = undefined;
|
|
7084
|
-
this.classCollection = new ClassList(['mg-tag']);
|
|
7245
|
+
this.classCollection = new ClassList(['mg-c-tag']);
|
|
7085
7246
|
}
|
|
7086
7247
|
validateVariant(newValue, oldValue) {
|
|
7087
7248
|
if (!variants.includes(newValue)) {
|
|
@@ -7089,9 +7250,9 @@ const MgTag = class {
|
|
|
7089
7250
|
}
|
|
7090
7251
|
else {
|
|
7091
7252
|
if (oldValue !== undefined) {
|
|
7092
|
-
this.classCollection.delete(`mg-tag--${oldValue}`);
|
|
7253
|
+
this.classCollection.delete(`mg-c-tag--${oldValue}`);
|
|
7093
7254
|
}
|
|
7094
|
-
this.classCollection.add(`mg-tag--${newValue}`);
|
|
7255
|
+
this.classCollection.add(`mg-c-tag--${newValue}`);
|
|
7095
7256
|
}
|
|
7096
7257
|
}
|
|
7097
7258
|
validateOutline(newValue) {
|
|
@@ -7118,7 +7279,7 @@ const MgTag = class {
|
|
|
7118
7279
|
* @param textContent - html element textContent property
|
|
7119
7280
|
*/
|
|
7120
7281
|
validateTextContent(textContent) {
|
|
7121
|
-
if (
|
|
7282
|
+
if (!isValidString(textContent))
|
|
7122
7283
|
throw new Error('<mg-tag> slot must contain a text content.');
|
|
7123
7284
|
}
|
|
7124
7285
|
/*************
|
|
@@ -7259,12 +7420,12 @@ const MgTooltip = class {
|
|
|
7259
7420
|
this.setMgButtonWrapper = (mgButton) => {
|
|
7260
7421
|
if (mgButton.disabled) {
|
|
7261
7422
|
const div = document.createElement('div');
|
|
7262
|
-
div.classList.add('mg-tooltip__mg-button-wrapper');
|
|
7423
|
+
div.classList.add('mg-c-tooltip__mg-button-wrapper');
|
|
7263
7424
|
mgButton.parentNode.insertBefore(div, mgButton);
|
|
7264
7425
|
div.appendChild(mgButton);
|
|
7265
7426
|
this.tooltipedElement = div;
|
|
7266
7427
|
}
|
|
7267
|
-
else if (mgButton.parentElement.classList.contains('mg-tooltip__mg-button-wrapper')) {
|
|
7428
|
+
else if (mgButton.parentElement.classList.contains('mg-c-tooltip__mg-button-wrapper')) {
|
|
7268
7429
|
this.element.firstElementChild.replaceWith(mgButton);
|
|
7269
7430
|
this.tooltipedElement = mgButton;
|
|
7270
7431
|
}
|
|
@@ -7302,6 +7463,12 @@ const MgTooltip = class {
|
|
|
7302
7463
|
offset: [0, 8],
|
|
7303
7464
|
},
|
|
7304
7465
|
},
|
|
7466
|
+
{
|
|
7467
|
+
name: 'flip',
|
|
7468
|
+
options: {
|
|
7469
|
+
fallbackPlacements: ['auto'],
|
|
7470
|
+
},
|
|
7471
|
+
},
|
|
7305
7472
|
],
|
|
7306
7473
|
});
|
|
7307
7474
|
// Manage tooltipedElement focus/blur events
|
|
@@ -7339,8 +7506,12 @@ const MgTooltip = class {
|
|
|
7339
7506
|
this.display = false;
|
|
7340
7507
|
this.disabled = false;
|
|
7341
7508
|
}
|
|
7509
|
+
validateIdentifier() {
|
|
7510
|
+
// use renderTooltipContent to update tooltip-content id
|
|
7511
|
+
this.renderTooltipContent();
|
|
7512
|
+
}
|
|
7342
7513
|
validateMessage(newValue) {
|
|
7343
|
-
if (
|
|
7514
|
+
if (!isValidString(newValue)) {
|
|
7344
7515
|
throw new Error('<mg-tooltip> prop "message" is required.');
|
|
7345
7516
|
}
|
|
7346
7517
|
this.mgTooltipContent.message = newValue;
|
|
@@ -7364,16 +7535,22 @@ const MgTooltip = class {
|
|
|
7364
7535
|
/**
|
|
7365
7536
|
* Render tooltip content element
|
|
7366
7537
|
*/
|
|
7367
|
-
|
|
7368
|
-
const mgTooltipContent =
|
|
7369
|
-
mgTooltipContent
|
|
7370
|
-
|
|
7371
|
-
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
|
|
7375
|
-
|
|
7376
|
-
|
|
7538
|
+
renderTooltipContent() {
|
|
7539
|
+
const mgTooltipContent = this.element.querySelector('mg-tooltip-content');
|
|
7540
|
+
if (mgTooltipContent === null) {
|
|
7541
|
+
const mgTooltipContent = document.createElement('mg-tooltip-content');
|
|
7542
|
+
mgTooltipContent.setAttribute('slot', 'content');
|
|
7543
|
+
mgTooltipContent.setAttribute('id', this.identifier);
|
|
7544
|
+
const arrow = document.createElement('div');
|
|
7545
|
+
arrow.setAttribute('slot', 'arrow');
|
|
7546
|
+
arrow.dataset.popperArrow = '';
|
|
7547
|
+
mgTooltipContent.appendChild(arrow);
|
|
7548
|
+
// append tooltip element to component
|
|
7549
|
+
this.element.appendChild(mgTooltipContent);
|
|
7550
|
+
}
|
|
7551
|
+
else {
|
|
7552
|
+
mgTooltipContent.setAttribute('id', this.identifier);
|
|
7553
|
+
}
|
|
7377
7554
|
}
|
|
7378
7555
|
/*************
|
|
7379
7556
|
* Lifecycle *
|
|
@@ -7385,11 +7562,12 @@ const MgTooltip = class {
|
|
|
7385
7562
|
// Get windows to attach events
|
|
7386
7563
|
this.windows = getWindows(window);
|
|
7387
7564
|
// Get tooltip element
|
|
7388
|
-
this.
|
|
7565
|
+
this.renderTooltipContent();
|
|
7389
7566
|
this.mgTooltipContent = this.element.querySelector(`#${this.identifier}`);
|
|
7390
7567
|
//validate properties
|
|
7391
7568
|
this.validateDisabled(this.disabled);
|
|
7392
7569
|
this.validateMessage(this.message);
|
|
7570
|
+
this.validateIdentifier();
|
|
7393
7571
|
}
|
|
7394
7572
|
/**
|
|
7395
7573
|
* Get slotted element
|
|
@@ -7437,6 +7615,7 @@ const MgTooltip = class {
|
|
|
7437
7615
|
}
|
|
7438
7616
|
get element() { return getElement(this); }
|
|
7439
7617
|
static get watchers() { return {
|
|
7618
|
+
"identifier": ["validateIdentifier"],
|
|
7440
7619
|
"message": ["validateMessage"],
|
|
7441
7620
|
"display": ["handleDisplay"],
|
|
7442
7621
|
"disabled": ["validateDisabled"]
|
|
@@ -7444,7 +7623,7 @@ const MgTooltip = class {
|
|
|
7444
7623
|
};
|
|
7445
7624
|
MgTooltip.style = mgTooltipCss;
|
|
7446
7625
|
|
|
7447
|
-
const mgTooltipContentCss = ":host{display:none;padding
|
|
7626
|
+
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}";
|
|
7448
7627
|
|
|
7449
7628
|
const MgTooltipContent = class {
|
|
7450
7629
|
constructor(hostRef) {
|