@watermarkinsights/ripple 0.0.1 → 0.1.0-alpha.1
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/app-globals-3db2fdd3.js +103 -0
- package/dist/cjs/chartFunctions-0d47b1f4.js +906 -0
- package/dist/cjs/functions-761cb9f2.js +10694 -0
- package/dist/cjs/index-bb947bd5.js +1843 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/interfaces-33cd6161.js +82 -0
- package/dist/cjs/intl-9e9388a7.js +291 -0
- package/dist/cjs/loader.cjs.js +15 -0
- package/dist/cjs/priv-calendar.cjs.entry.js +580 -0
- package/dist/cjs/priv-chart-popover-old.cjs.entry.js +146 -0
- package/dist/cjs/priv-chart-popover_2.cjs.entry.js +204 -0
- package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
- package/dist/cjs/priv-navigator-item.cjs.entry.js +35 -0
- package/dist/cjs/priv-option-list.cjs.entry.js +391 -0
- package/dist/cjs/ripple.cjs.js +25 -0
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +525 -0
- package/dist/cjs/wm-button.cjs.entry.js +280 -0
- package/dist/cjs/wm-chart-bar.cjs.entry.js +444 -0
- package/dist/cjs/wm-chart-column.cjs.entry.js +629 -0
- package/dist/cjs/wm-chart-slice.cjs.entry.js +27 -0
- package/dist/cjs/wm-chart-stack.cjs.entry.js +447 -0
- package/dist/cjs/wm-chart.cjs.entry.js +163 -0
- package/dist/cjs/wm-date-range.cjs.entry.js +591 -0
- package/dist/cjs/wm-datepicker.cjs.entry.js +399 -0
- package/dist/{ripple/wm-tab-panel.entry.js → cjs/wm-file-list.cjs.entry.js} +15 -24
- package/dist/cjs/wm-file.cjs.entry.js +210 -0
- package/dist/cjs/wm-flyout.cjs.entry.js +178 -0
- package/dist/{ripple/wm-modal.entry.js → cjs/wm-input.cjs.entry.js} +108 -110
- package/dist/cjs/wm-line-chart.cjs.entry.js +541 -0
- package/dist/cjs/wm-modal-pss_3.cjs.entry.js +220 -0
- package/dist/cjs/wm-modal_3.cjs.entry.js +238 -0
- package/dist/cjs/wm-navigation_3.cjs.entry.js +188 -0
- package/dist/cjs/wm-navigator.cjs.entry.js +334 -0
- package/dist/cjs/wm-nested-select.cjs.entry.js +322 -0
- package/dist/{ripple/wm-textarea.entry.js → cjs/wm-optgroup.cjs.entry.js} +62 -57
- package/dist/cjs/wm-option_2.cjs.entry.js +536 -0
- package/dist/{ripple/wm-navigation.entry.js → cjs/wm-pagination.cjs.entry.js} +204 -91
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +204 -0
- package/dist/{ripple/wm-flyout.entry.js → cjs/wm-search.cjs.entry.js} +168 -139
- package/dist/{ripple/wm-datepicker.entry.js → cjs/wm-snackbar.cjs.entry.js} +152 -223
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +357 -0
- package/dist/cjs/wm-tag-input.cjs.entry.js +985 -0
- package/dist/cjs/wm-tag-option.cjs.entry.js +51 -0
- package/dist/{ripple/wm-modal-pss.entry.js → cjs/wm-textarea.cjs.entry.js} +70 -111
- package/dist/{ripple/wm-progress-indicator.entry.js → cjs/wm-timepicker.cjs.entry.js} +296 -78
- package/dist/cjs/wm-toggletip.cjs.entry.js +252 -0
- package/dist/cjs/wm-uploader.cjs.entry.js +341 -0
- package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
- package/dist/collection/collection-manifest.json +207 -0
- package/dist/collection/components/charts/chartFunctions.js +831 -0
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +995 -0
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +345 -0
- package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.css +990 -0
- package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +268 -0
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +177 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.css +1326 -0
- package/dist/collection/components/charts/wm-chart/wm-chart.js +549 -0
- package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.css +1236 -0
- package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +725 -0
- package/dist/collection/components/charts/wm-chart-column/wm-chart-column.css +1335 -0
- package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +914 -0
- package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.css +1006 -0
- package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +310 -0
- package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.css +1466 -0
- package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.js +709 -0
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1208 -0
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +999 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +1326 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +320 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +967 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +232 -0
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +167 -0
- package/dist/collection/components/datepickers/datepicker.css +1147 -0
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +1415 -0
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +857 -0
- package/dist/collection/components/datepickers/wm-date-range.js +1158 -0
- package/dist/collection/components/datepickers/wm-datepicker.js +875 -0
- package/dist/collection/components/selects/priv-option-list/priv-option-list.css +999 -0
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +784 -0
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +1259 -0
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +805 -0
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +909 -0
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +363 -0
- package/dist/collection/components/selects/wm-option/wm-option.css +1033 -0
- package/dist/collection/components/selects/wm-option/wm-option.js +665 -0
- package/dist/collection/components/selects/wm-select/wm-select.css +1174 -0
- package/dist/collection/components/selects/wm-select/wm-select.js +878 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.css +1690 -0
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +932 -0
- package/dist/collection/components/wm-button/wm-button.css +1630 -0
- package/dist/collection/components/wm-button/wm-button.js +794 -0
- package/dist/collection/components/wm-file/wm-file.css +1086 -0
- package/dist/collection/components/wm-file/wm-file.js +536 -0
- package/dist/collection/components/wm-file-list/wm-file-list.css +899 -0
- package/dist/collection/components/wm-file-list/wm-file-list.js +118 -0
- package/dist/collection/components/wm-flyout/wm-flyout.css +1091 -0
- package/dist/collection/components/wm-flyout/wm-flyout.js +651 -0
- package/dist/collection/components/wm-input/wm-input.css +1095 -0
- package/dist/collection/components/wm-input/wm-input.js +653 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.css +982 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +515 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.css +927 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.js +199 -0
- package/dist/collection/components/wm-modal/wm-modal-header.css +926 -0
- package/dist/collection/components/wm-modal/wm-modal-header.js +110 -0
- package/dist/collection/components/wm-modal/wm-modal.css +983 -0
- package/dist/collection/components/wm-modal/wm-modal.js +534 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +931 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +142 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +925 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +86 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +1007 -0
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +369 -0
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +926 -0
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +153 -0
- package/dist/collection/components/wm-navigation/wm-navigation-item.css +935 -0
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +140 -0
- package/dist/collection/components/wm-navigation/wm-navigation.css +977 -0
- package/dist/collection/components/wm-navigation/wm-navigation.js +246 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +929 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +90 -0
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +918 -0
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +128 -0
- package/dist/collection/components/wm-navigator/wm-navigator.css +990 -0
- package/dist/collection/components/wm-navigator/wm-navigator.js +597 -0
- package/dist/collection/components/wm-pagination/wm-pagination.css +1044 -0
- package/dist/collection/components/wm-pagination/wm-pagination.js +487 -0
- package/dist/collection/components/wm-search/wm-search.css +983 -0
- package/dist/collection/components/wm-search/wm-search.js +604 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +1150 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +363 -0
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +958 -0
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +233 -0
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +966 -0
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +461 -0
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +906 -0
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +132 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.css +1423 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +1511 -0
- package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +328 -0
- package/dist/collection/components/wm-textarea/wm-textarea.css +1065 -0
- package/dist/collection/components/wm-textarea/wm-textarea.js +423 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +1174 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +728 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.css +1296 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +455 -0
- package/dist/collection/components/wm-uploader/wm-uploader.css +1987 -0
- package/dist/collection/components/wm-uploader/wm-uploader.js +760 -0
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +31 -0
- package/dist/collection/dev/action-menu.js +18 -0
- package/dist/collection/dev/button.js +12 -0
- package/dist/collection/dev/chart-bar.js +430 -0
- package/dist/collection/dev/chart-column.js +459 -0
- package/dist/collection/dev/chart-small.js +56 -0
- package/dist/collection/dev/chart-stack.js +205 -0
- package/dist/collection/dev/chart.js +18 -0
- package/dist/collection/dev/date-range.js +14 -0
- package/dist/collection/dev/datepicker.js +46 -0
- package/dist/collection/dev/file-list.js +16 -0
- package/dist/collection/dev/file.js +0 -0
- package/dist/collection/dev/flyout.js +194 -0
- package/dist/collection/dev/input.js +6 -0
- package/dist/collection/dev/line-chart.js +45 -0
- package/dist/collection/dev/modal.js +48 -0
- package/dist/collection/dev/navigation.js +13 -0
- package/dist/collection/dev/navigator.js +34 -0
- package/dist/collection/dev/nested-select.js +36 -0
- package/dist/collection/dev/pagination.js +7 -0
- package/dist/collection/dev/progress-monitor.js +0 -0
- package/dist/collection/dev/pss-modal.js +8 -0
- package/dist/collection/dev/scripts.js +49 -0
- package/dist/collection/dev/search.js +72 -0
- package/dist/collection/dev/select.js +57 -0
- package/dist/collection/dev/snackbar.js +68 -0
- package/dist/collection/dev/tabs.js +44 -0
- package/dist/collection/dev/tag-input.js +32 -0
- package/dist/collection/dev/textarea.js +28 -0
- package/dist/collection/dev/timepicker.js +32 -0
- package/dist/collection/dev/toggletip.js +9 -0
- package/dist/collection/dev/uploader.js +139 -0
- package/dist/collection/global/__mocks__/functions.js +6 -0
- package/dist/collection/global/functions.js +907 -0
- package/dist/{ripple/app-globals-B7cOtGhY.js → collection/global/global.js} +16 -87
- package/dist/collection/global/interfaces.js +94 -0
- package/dist/collection/global/intl.js +281 -0
- package/dist/collection/global/services/__mocks__/http-service.js +130 -0
- package/dist/collection/global/services/http-service.js +50 -0
- package/dist/collection/lang/lang.js +5 -0
- package/dist/collection/lang/missing.js +43 -0
- package/dist/collection/lang/piglatin.js +101 -0
- package/dist/docs/docs.d.ts +435 -0
- package/dist/docs/docs.json +14178 -0
- package/dist/docs/props-reference.json +2079 -0
- package/dist/docs/skill/index.md +33 -0
- package/dist/docs/skill/wm-action-menu.md +116 -0
- package/dist/docs/skill/wm-button.md +121 -0
- package/dist/docs/skill/wm-chart-bar.md +156 -0
- package/dist/docs/skill/wm-chart-column.md +122 -0
- package/dist/docs/skill/wm-chart-legend.md +91 -0
- package/dist/docs/skill/wm-chart-slice.md +101 -0
- package/dist/docs/skill/wm-chart-stack.md +147 -0
- package/dist/docs/skill/wm-chart.md +139 -0
- package/dist/docs/skill/wm-date-range.md +176 -0
- package/dist/docs/skill/wm-datepicker.md +153 -0
- package/dist/docs/skill/wm-file-list.md +105 -0
- package/dist/docs/skill/wm-file.md +91 -0
- package/dist/docs/skill/wm-flyout.md +209 -0
- package/dist/docs/skill/wm-input.md +134 -0
- package/dist/docs/skill/wm-line-chart.md +135 -0
- package/dist/docs/skill/wm-menuitem.md +64 -0
- package/dist/docs/skill/wm-modal-footer.md +81 -0
- package/dist/docs/skill/wm-modal-header.md +71 -0
- package/dist/docs/skill/wm-modal.md +172 -0
- package/dist/docs/skill/wm-navigation-hamburger.md +61 -0
- package/dist/docs/skill/wm-navigation-item.md +78 -0
- package/dist/docs/skill/wm-navigation.md +82 -0
- package/dist/docs/skill/wm-navigator.md +106 -0
- package/dist/docs/skill/wm-nested-select.md +160 -0
- package/dist/docs/skill/wm-optgroup.md +72 -0
- package/dist/docs/skill/wm-option.md +67 -0
- package/dist/docs/skill/wm-pagination.md +114 -0
- package/dist/docs/skill/wm-progress-indicator.md +75 -0
- package/dist/docs/skill/wm-progress-monitor.md +120 -0
- package/dist/docs/skill/wm-progress-slice.md +67 -0
- package/dist/docs/skill/wm-search.md +180 -0
- package/dist/docs/skill/wm-select.md +169 -0
- package/dist/docs/skill/wm-snackbar.md +130 -0
- package/dist/docs/skill/wm-tab-item.md +45 -0
- package/dist/docs/skill/wm-tab-list.md +139 -0
- package/dist/docs/skill/wm-tab-panel.md +39 -0
- package/dist/docs/skill/wm-tag-input.md +187 -0
- package/dist/docs/skill/wm-tag-option.md +60 -0
- package/dist/docs/skill/wm-textarea.md +102 -0
- package/dist/docs/skill/wm-timepicker.md +156 -0
- package/dist/docs/skill/wm-toggletip.md +98 -0
- package/dist/docs/skill/wm-uploader.md +154 -0
- package/dist/docs/skill/wm-wrapper.md +5 -0
- package/dist/esm/app-globals-a1092590.js +101 -0
- package/dist/{ripple/chartFunctions-CmeM8Tyx.js → esm/chartFunctions-58637dc9.js} +159 -3
- package/dist/{ripple/functions-DVLl0rH_.js → esm/functions-65f1594c.js} +374 -7830
- package/dist/esm/index-3425d80d.js +1813 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/interfaces-8778346d.js +77 -0
- package/dist/{ripple/intl-7p27BJSM.js → esm/intl-d518f362.js} +11 -4
- package/dist/esm/loader.js +11 -0
- package/dist/{ripple → esm}/priv-calendar.entry.js +143 -133
- package/dist/esm/priv-chart-popover-old.entry.js +142 -0
- package/dist/esm/priv-chart-popover_2.entry.js +199 -0
- package/dist/{ripple → esm}/priv-navigator-button.entry.js +5 -4
- package/dist/{ripple → esm}/priv-navigator-item.entry.js +5 -4
- package/dist/{ripple → esm}/priv-option-list.entry.js +18 -16
- package/dist/esm/ripple.js +20 -0
- package/dist/esm/wm-action-menu_2.entry.js +520 -0
- package/dist/{ripple/wm-modal-header.entry.js → esm/wm-button.entry.js} +264 -24
- package/dist/esm/wm-chart-bar.entry.js +440 -0
- package/dist/esm/wm-chart-column.entry.js +625 -0
- package/dist/{ripple → esm}/wm-chart-slice.entry.js +6 -1
- package/dist/esm/wm-chart-stack.entry.js +443 -0
- package/dist/esm/wm-chart.entry.js +159 -0
- package/dist/{ripple → esm}/wm-date-range.entry.js +224 -114
- package/dist/esm/wm-datepicker.entry.js +395 -0
- package/dist/{ripple → esm}/wm-file-list.entry.js +5 -4
- package/dist/{ripple → esm}/wm-file.entry.js +48 -24
- package/dist/esm/wm-flyout.entry.js +174 -0
- package/dist/{ripple → esm}/wm-input.entry.js +23 -7
- package/dist/{ripple → esm}/wm-line-chart.entry.js +182 -94
- package/dist/esm/wm-modal-pss_3.entry.js +214 -0
- package/dist/esm/wm-modal_3.entry.js +232 -0
- package/dist/esm/wm-navigation_3.entry.js +182 -0
- package/dist/{ripple → esm}/wm-navigator.entry.js +26 -64
- package/dist/{ripple → esm}/wm-nested-select.entry.js +35 -25
- package/dist/{ripple → esm}/wm-optgroup.entry.js +17 -5
- package/dist/esm/wm-option_2.entry.js +531 -0
- package/dist/{ripple → esm}/wm-pagination.entry.js +16 -14
- package/dist/esm/wm-progress-indicator_3.entry.js +198 -0
- package/dist/{ripple → esm}/wm-search.entry.js +15 -31
- package/dist/{ripple → esm}/wm-snackbar.entry.js +32 -45
- package/dist/esm/wm-tab-item_3.entry.js +351 -0
- package/dist/{ripple → esm}/wm-tag-input.entry.js +169 -65
- package/dist/{ripple → esm}/wm-tag-option.entry.js +14 -2
- package/dist/{ripple/wm-menuitem.entry.js → esm/wm-textarea.entry.js} +65 -100
- package/dist/{ripple → esm}/wm-timepicker.entry.js +33 -12
- package/dist/{ripple → esm}/wm-toggletip.entry.js +105 -33
- package/dist/esm/wm-uploader.entry.js +337 -0
- package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/loader/cdn.js +1 -0
- package/dist/loader/index.cjs.js +1 -0
- package/dist/loader/index.d.ts +24 -0
- package/dist/loader/index.es2017.js +1 -0
- package/dist/loader/index.js +2 -0
- package/dist/loader/package.json +11 -0
- package/dist/ripple/index.esm.js +0 -1
- package/dist/ripple/p-0d364411.entry.js +1 -0
- package/dist/ripple/p-156c4d1d.entry.js +1 -0
- package/dist/ripple/{wm-modal-footer.entry.js → p-26d8c356.entry.js} +1 -44
- package/dist/ripple/p-2b23ce49.entry.js +1 -0
- package/dist/ripple/p-2b7cc2c1.entry.js +1 -0
- package/dist/ripple/p-34bde06a.entry.js +1 -0
- package/dist/ripple/p-35db9386.entry.js +1 -0
- package/dist/ripple/p-38a987ac.entry.js +1 -0
- package/dist/ripple/p-38b05894.entry.js +1 -0
- package/dist/ripple/p-38dee4ab.entry.js +1 -0
- package/dist/ripple/p-3a19d019.entry.js +1 -0
- package/dist/ripple/p-451d4de2.js +1 -0
- package/dist/ripple/p-507f2cf4.entry.js +1 -0
- package/dist/ripple/p-59f74ead.entry.js +1 -0
- package/dist/ripple/p-5c2fc42a.entry.js +1 -0
- package/dist/ripple/p-680d7606.entry.js +1 -0
- package/dist/ripple/p-683264db.js +1 -0
- package/dist/ripple/p-6db681c8.entry.js +1 -0
- package/dist/ripple/p-6e3c2bbc.js +1 -0
- package/dist/ripple/p-6f1cabab.entry.js +1 -0
- package/dist/ripple/p-72d135ee.entry.js +1 -0
- package/dist/ripple/p-7799953c.entry.js +1 -0
- package/dist/ripple/p-83c3db60.js +2 -0
- package/dist/ripple/{wm-progress-monitor.entry.js → p-83cdad78.entry.js} +1 -71
- package/dist/ripple/p-87ef0cfa.entry.js +1 -0
- package/dist/ripple/p-88e44511.entry.js +1 -0
- package/dist/ripple/p-8f8e4eb8.entry.js +1 -0
- package/dist/ripple/p-936adffb.entry.js +1 -0
- package/dist/ripple/p-9755192c.entry.js +1 -0
- package/dist/ripple/p-9c5c591b.js +1 -0
- package/dist/ripple/p-9ea38d96.entry.js +1 -0
- package/dist/ripple/p-be3e4e7c.entry.js +1 -0
- package/dist/ripple/p-c9c7df12.entry.js +1 -0
- package/dist/ripple/p-d7a1be0b.entry.js +1 -0
- package/dist/ripple/p-dab86523.entry.js +1 -0
- package/dist/ripple/{wm-tab-list.entry.js → p-e4aa6e27.entry.js} +1 -175
- package/dist/ripple/p-ebe9f38c.js +1 -0
- package/dist/ripple/p-ed053612.entry.js +1 -0
- package/dist/ripple/p-f43f621b.entry.js +1 -0
- package/dist/ripple/p-f48d30d6.entry.js +1 -0
- package/dist/ripple/{wm-action-menu.entry.js → p-f6aad57c.entry.js} +1 -201
- package/dist/ripple/p-f6e1beb5.entry.js +1 -0
- package/dist/ripple/p-fc843bb8.entry.js +1 -0
- package/dist/ripple/{priv-chart-popover.entry.js → p-fd997764.entry.js} +1 -134
- package/dist/ripple/p-fffb46ad.entry.js +1 -0
- package/dist/ripple/ripple.esm.js +1 -48
- package/dist/types/components/charts/chartFunctions.d.ts +15 -2
- package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +25 -11
- package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +31 -0
- package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
- package/dist/types/components/charts/wm-chart/wm-chart.d.ts +113 -1
- package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +195 -0
- package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +184 -0
- package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +110 -0
- package/dist/types/components/charts/wm-chart-stack/wm-chart-stack.d.ts +194 -0
- package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +156 -11
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +53 -1
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +85 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
- package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +19 -3
- package/dist/types/components/datepickers/wm-date-range.d.ts +205 -14
- package/dist/types/components/datepickers/wm-datepicker.d.ts +189 -11
- package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
- package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +165 -1
- package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
- package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
- package/dist/types/components/selects/wm-select/wm-select.d.ts +193 -12
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +207 -2
- package/dist/types/components/wm-button/wm-button.d.ts +191 -0
- package/dist/types/components/wm-file/wm-file.d.ts +110 -1
- package/dist/types/components/wm-file-list/wm-file-list.d.ts +72 -0
- package/dist/types/components/wm-flyout/wm-flyout.d.ts +205 -0
- package/dist/types/components/wm-input/wm-input.d.ts +161 -1
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +79 -0
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
- package/dist/types/components/wm-modal/wm-modal.d.ts +160 -0
- package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
- package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
- package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +6 -0
- package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
- package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
- package/dist/types/components/wm-navigation/wm-navigation.d.ts +57 -0
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +93 -4
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +100 -1
- package/dist/types/components/wm-search/wm-search.d.ts +158 -6
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +103 -1
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +55 -3
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +119 -20
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +35 -2
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +199 -5
- package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
- package/dist/types/components/wm-textarea/wm-textarea.d.ts +99 -0
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +147 -0
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +88 -2
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +145 -3
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
- package/dist/types/components.d.ts +11523 -95
- package/dist/types/global/functions.d.ts +7 -2
- package/dist/types/global/interfaces.d.ts +92 -2
- package/dist/types/global/intl.d.ts +3 -0
- package/dist/types/stencil-public-runtime.d.ts +0 -28
- package/package.json +4 -33
- package/dist/components/index.d.ts +0 -33
- package/dist/components/priv-calendar.d.ts +0 -11
- package/dist/components/priv-chart-popover.d.ts +0 -11
- package/dist/components/priv-navigator-button.d.ts +0 -11
- package/dist/components/priv-navigator-item.d.ts +0 -11
- package/dist/components/priv-option-list.d.ts +0 -11
- package/dist/components/wm-action-menu.d.ts +0 -11
- package/dist/components/wm-button.d.ts +0 -11
- package/dist/components/wm-chart-slice.d.ts +0 -11
- package/dist/components/wm-chart.d.ts +0 -11
- package/dist/components/wm-date-range.d.ts +0 -11
- package/dist/components/wm-datepicker.d.ts +0 -11
- package/dist/components/wm-file-list.d.ts +0 -11
- package/dist/components/wm-file.d.ts +0 -11
- package/dist/components/wm-flyout.d.ts +0 -11
- package/dist/components/wm-input.d.ts +0 -11
- package/dist/components/wm-line-chart.d.ts +0 -11
- package/dist/components/wm-menuitem.d.ts +0 -11
- package/dist/components/wm-modal-footer.d.ts +0 -11
- package/dist/components/wm-modal-header.d.ts +0 -11
- package/dist/components/wm-modal-pss-footer.d.ts +0 -11
- package/dist/components/wm-modal-pss-header.d.ts +0 -11
- package/dist/components/wm-modal-pss.d.ts +0 -11
- package/dist/components/wm-modal.d.ts +0 -11
- package/dist/components/wm-navigation-hamburger.d.ts +0 -11
- package/dist/components/wm-navigation-item.d.ts +0 -11
- package/dist/components/wm-navigation.d.ts +0 -11
- package/dist/components/wm-navigator.d.ts +0 -11
- package/dist/components/wm-nested-select.d.ts +0 -11
- package/dist/components/wm-optgroup.d.ts +0 -11
- package/dist/components/wm-option.d.ts +0 -11
- package/dist/components/wm-pagination.d.ts +0 -11
- package/dist/components/wm-progress-indicator.d.ts +0 -11
- package/dist/components/wm-progress-monitor.d.ts +0 -11
- package/dist/components/wm-progress-slice.d.ts +0 -11
- package/dist/components/wm-search.d.ts +0 -11
- package/dist/components/wm-select.d.ts +0 -11
- package/dist/components/wm-snackbar.d.ts +0 -11
- package/dist/components/wm-tab-item.d.ts +0 -11
- package/dist/components/wm-tab-list.d.ts +0 -11
- package/dist/components/wm-tab-panel.d.ts +0 -11
- package/dist/components/wm-tag-input.d.ts +0 -11
- package/dist/components/wm-tag-option.d.ts +0 -11
- package/dist/components/wm-textarea.d.ts +0 -11
- package/dist/components/wm-timepicker.d.ts +0 -11
- package/dist/components/wm-toggletip.d.ts +0 -11
- package/dist/components/wm-uploader.d.ts +0 -11
- package/dist/components/wm-wrapper.d.ts +0 -11
- package/dist/ripple/index-CU5QNCKv.js +0 -4167
- package/dist/ripple/interfaces-CrANcZM9.js +0 -53
- package/dist/ripple/wm-button.entry.js +0 -197
- package/dist/ripple/wm-chart.entry.js +0 -157
- package/dist/ripple/wm-modal-pss-footer.entry.js +0 -40
- package/dist/ripple/wm-modal-pss-header.entry.js +0 -39
- package/dist/ripple/wm-navigation-hamburger.entry.js +0 -48
- package/dist/ripple/wm-navigation-item.entry.js +0 -18
- package/dist/ripple/wm-option.entry.js +0 -171
- package/dist/ripple/wm-progress-slice.entry.js +0 -13
- package/dist/ripple/wm-select.entry.js +0 -249
- package/dist/ripple/wm-tab-item.entry.js +0 -63
- package/dist/ripple/wm-uploader.entry.js +0 -313
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
import { h, Host } from "@stencil/core";
|
|
2
|
+
import { debounce, intl } from "../../../global/functions";
|
|
3
|
+
/**
|
|
4
|
+
* Tab list container that manages a group of wm-tab-item children and their associated
|
|
5
|
+
* wm-tab-panel elements. Handles keyboard navigation, ARIA wiring between tabs and panels,
|
|
6
|
+
* horizontal scroll with arrow buttons on overflow, and optional dark theme.
|
|
7
|
+
*
|
|
8
|
+
* @category Navigation
|
|
9
|
+
* @displayName Tabs
|
|
10
|
+
*
|
|
11
|
+
* @slot - One or more wm-tab-item elements.
|
|
12
|
+
*
|
|
13
|
+
* @keyboardInteraction
|
|
14
|
+
* - **Arrow Left / Arrow Right**: Cycles focus to the previous/next tab item; wraps at both ends.
|
|
15
|
+
* - **Arrow Down**: Moves focus to the content area of the active tab panel.
|
|
16
|
+
* - **Enter / Space**: Activates the focused tab and shows its panel.
|
|
17
|
+
* - **Tab**: Moves focus from the selected tab to the first focusable element inside the
|
|
18
|
+
* active panel.
|
|
19
|
+
* - **Shift+Tab**: Moves focus back to the selected tab item from within the panel.
|
|
20
|
+
*
|
|
21
|
+
* @accessibility
|
|
22
|
+
* - Sets `aria-controls` on each wm-tab-item link pointing to its associated wm-tab-panel.
|
|
23
|
+
* - Sets `aria-labelledby` on each wm-tab-panel pointing back to its wm-tab-item link.
|
|
24
|
+
* - ARIA attributes are updated dynamically when tab content is conditionally rendered in a
|
|
25
|
+
* single shared panel.
|
|
26
|
+
*
|
|
27
|
+
* @usageNotes
|
|
28
|
+
* - Set the container's width to 100% in most cases.
|
|
29
|
+
* - Two usage patterns:
|
|
30
|
+
* 1. **Discrete panels** — each wm-tab-item has a paired wm-tab-panel with the same `tab-id`.
|
|
31
|
+
* 2. **Single panel** — one wm-tab-panel; content is rendered conditionally based on the
|
|
32
|
+
* selected tab; ARIA attributes are updated automatically.
|
|
33
|
+
* - At least one wm-tab-panel is required — wm-tab-list only renders the tab strip, not the
|
|
34
|
+
* content area. A wm-tab-item's `tab-id` must exactly match its wm-tab-panel's `tab-id`
|
|
35
|
+
* (or the shared panel's `tab-id`, for the single-panel pattern). A missing or mismatched
|
|
36
|
+
* `tab-id` fails silently: no console warning, the tab's `aria-controls`/`href` never get
|
|
37
|
+
* set, and its panel never activates.
|
|
38
|
+
* - Listen to `wmTabSelected` on wm-tab-item (or on the wm-tab-list, as the event bubbles) and
|
|
39
|
+
* update `selected-tab` to switch the active tab.
|
|
40
|
+
* - Use `selected-tab` to control which tab is initially active by its `tab-id`.
|
|
41
|
+
*
|
|
42
|
+
* @example {html} Basic tabs (discrete panels)
|
|
43
|
+
* <wm-tab-list>
|
|
44
|
+
* <wm-tab-item tab-id="overview">Overview</wm-tab-item>
|
|
45
|
+
* <wm-tab-item tab-id="details">Details</wm-tab-item>
|
|
46
|
+
* <wm-tab-item tab-id="history">History</wm-tab-item>
|
|
47
|
+
* </wm-tab-list>
|
|
48
|
+
* <wm-tab-panel tab-id="overview"><p>Overview content</p></wm-tab-panel>
|
|
49
|
+
* <wm-tab-panel tab-id="details"><p>Details content</p></wm-tab-panel>
|
|
50
|
+
* <wm-tab-panel tab-id="history"><p>History content</p></wm-tab-panel>
|
|
51
|
+
*
|
|
52
|
+
* @example {react} Basic tabs (discrete panels)
|
|
53
|
+
* // wmTabSelected fires when a tab is clicked or activated via keyboard.
|
|
54
|
+
* // event.detail is { tabId: string } -- the tab-id of the newly selected tab.
|
|
55
|
+
* const [selectedTab, setSelectedTab] = useState("overview");
|
|
56
|
+
*
|
|
57
|
+
* <WmTabList selectedTab={selectedTab} onWmTabSelected={(e) => setSelectedTab(e.detail.tabId)}>
|
|
58
|
+
* <WmTabItem tabId="overview">Overview</WmTabItem>
|
|
59
|
+
* <WmTabItem tabId="details">Details</WmTabItem>
|
|
60
|
+
* <WmTabItem tabId="history">History</WmTabItem>
|
|
61
|
+
* </WmTabList>
|
|
62
|
+
* <WmTabPanel tabId="overview"><p>Overview content</p></WmTabPanel>
|
|
63
|
+
* <WmTabPanel tabId="details"><p>Details content</p></WmTabPanel>
|
|
64
|
+
* <WmTabPanel tabId="history"><p>History content</p></WmTabPanel>
|
|
65
|
+
*
|
|
66
|
+
* @example {html} Single shared panel (content rendered conditionally)
|
|
67
|
+
* <wm-tab-list custom-background="dark">
|
|
68
|
+
* <wm-tab-item tab-id="summary">Summary</wm-tab-item>
|
|
69
|
+
* <wm-tab-item tab-id="activity">Activity</wm-tab-item>
|
|
70
|
+
* </wm-tab-list>
|
|
71
|
+
* <wm-tab-panel tab-id="summary">
|
|
72
|
+
* <!-- app renders content here based on the active tab -->
|
|
73
|
+
* </wm-tab-panel>
|
|
74
|
+
*
|
|
75
|
+
* @example {react} Single shared panel (content rendered conditionally)
|
|
76
|
+
* // One wm-tab-panel shared by all tabs -- ARIA attributes update automatically.
|
|
77
|
+
* // Render content conditionally based on selectedTab.
|
|
78
|
+
* const [selectedTab, setSelectedTab] = useState("summary");
|
|
79
|
+
*
|
|
80
|
+
* <WmTabList
|
|
81
|
+
* customBackground="dark"
|
|
82
|
+
* selectedTab={selectedTab}
|
|
83
|
+
* onWmTabSelected={(e) => setSelectedTab(e.detail.tabId)}
|
|
84
|
+
* >
|
|
85
|
+
* <WmTabItem tabId="summary">Summary</WmTabItem>
|
|
86
|
+
* <WmTabItem tabId="activity">Activity</WmTabItem>
|
|
87
|
+
* </WmTabList>
|
|
88
|
+
* <WmTabPanel tabId="summary">
|
|
89
|
+
* {selectedTab === "summary" && <p>Summary content</p>}
|
|
90
|
+
* {selectedTab === "activity" && <p>Activity content</p>}
|
|
91
|
+
* </WmTabPanel>
|
|
92
|
+
*
|
|
93
|
+
* @requiredSetup
|
|
94
|
+
* - Handle `wmTabSelected` on the list -- it is declared on wm-tab-item and bubbles -- and write
|
|
95
|
+
* `event.detail.tabId` to `selected-tab`.
|
|
96
|
+
* - Slot a wm-tab-item per tab, and render a wm-tab-panel for each one as its content container.
|
|
97
|
+
* - Give each wm-tab-item `tab-id` the same value as its wm-tab-panel `tab-id`. A mismatch fails
|
|
98
|
+
* silently: the tab highlights and no panel appears.
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
export class TabList {
|
|
102
|
+
constructor() {
|
|
103
|
+
this.debouncedUpdateContainerState = debounce(() => {
|
|
104
|
+
this.updateContainerFade();
|
|
105
|
+
this.updateArrowVisibility();
|
|
106
|
+
}, 16);
|
|
107
|
+
this.customBackground = undefined;
|
|
108
|
+
this.selectedTab = undefined;
|
|
109
|
+
this.announcement = "";
|
|
110
|
+
this.containerFadeLeft = false;
|
|
111
|
+
this.containerFadeRight = false;
|
|
112
|
+
this.scrollArrowsVisible = false;
|
|
113
|
+
}
|
|
114
|
+
get tabItems() {
|
|
115
|
+
return Array.from(this.el.querySelectorAll("wm-tab-item"));
|
|
116
|
+
}
|
|
117
|
+
get selectedTabItem() {
|
|
118
|
+
return this.tabItems.filter((t) => t.selected)[0];
|
|
119
|
+
}
|
|
120
|
+
getLinkEl(tab) {
|
|
121
|
+
return tab.shadowRoot.querySelector("a");
|
|
122
|
+
}
|
|
123
|
+
get panels() {
|
|
124
|
+
const allPanels = Array.from(document.querySelectorAll("wm-tab-panel"));
|
|
125
|
+
const tabIds = this.tabItems.map((t) => t.tabId);
|
|
126
|
+
return allPanels.filter((p) => tabIds.includes(p.tabId));
|
|
127
|
+
}
|
|
128
|
+
setSelected(id) {
|
|
129
|
+
this.tabItems.map((tab) => (tab.selected = tab.tabId === id));
|
|
130
|
+
const singlePanel = this.panels.length === 1 && this.tabItems.length > 1;
|
|
131
|
+
if (singlePanel) {
|
|
132
|
+
/**
|
|
133
|
+
* If the app conditionally renders content in one single tab panel rather than allocating the content to discrete panels, then the tab panels aria references needs to update whenever a new tab item is selected.
|
|
134
|
+
*/
|
|
135
|
+
this.setAttributesOnPanel(this.panels[0], this.selectedTabItem);
|
|
136
|
+
this.panels[0].active = true;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.panels.map((panel) => (panel.active = panel.tabId === id));
|
|
140
|
+
}
|
|
141
|
+
this.handleTabFocused(this.selectedTabItem);
|
|
142
|
+
}
|
|
143
|
+
componentWillLoad() {
|
|
144
|
+
this.el.focus = () => {
|
|
145
|
+
// in addition to delegatesFocus, we need to highjack the focus method to send focus to the selected tab-item
|
|
146
|
+
this.selectedTabItem && this.selectedTabItem.focus({ preventScroll: true });
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
componentDidLoad() {
|
|
150
|
+
const selectedTab = this.selectedTab || this.tabItems[0].tabId;
|
|
151
|
+
this.setSelected(selectedTab);
|
|
152
|
+
this.updateArrowVisibility();
|
|
153
|
+
this.tabContainerEl.addEventListener("scroll", this.debouncedUpdateContainerState);
|
|
154
|
+
const resizeObserver = new ResizeObserver(() => this.debouncedUpdateContainerState());
|
|
155
|
+
resizeObserver.observe(this.el);
|
|
156
|
+
requestAnimationFrame(() => {
|
|
157
|
+
// Wait for layout to complete before measuring and scrolling initial tab into view
|
|
158
|
+
this.handleTabFocused(this.selectedTabItem);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
tabItemLoaded(ev) {
|
|
162
|
+
this.setAriaOnPanelAndTab(ev.target);
|
|
163
|
+
}
|
|
164
|
+
wmTabFocused(ev) {
|
|
165
|
+
this.handleTabFocused(ev.detail.tabItem);
|
|
166
|
+
}
|
|
167
|
+
setAriaOnPanelAndTab(tab) {
|
|
168
|
+
const panel = this.panels.find((p) => p.tabId === tab.tabId);
|
|
169
|
+
// If there's no panel, check for case where content is conditionally rendered in one panel, in which case attributes on all tabs should point to this single panel.
|
|
170
|
+
if (!panel) {
|
|
171
|
+
if (this.panels.length === 1) {
|
|
172
|
+
this.setAttributesOnTab(tab, this.panels[0]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// Otherwise, set attributes on each tab item that loads and its associated panel
|
|
177
|
+
this.setAttributesOnPanel(panel, tab);
|
|
178
|
+
this.setAttributesOnTab(tab, panel);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
setAttributesOnTab(tab, panel) {
|
|
182
|
+
const link = this.getLinkEl(tab);
|
|
183
|
+
if (link) {
|
|
184
|
+
link.setAttribute("href", `#${panel.id}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
removeAttributesOnTab(tab) {
|
|
188
|
+
const link = this.getLinkEl(tab);
|
|
189
|
+
if (link) {
|
|
190
|
+
link.removeAttribute("href");
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
setAttributesOnPanel(panel, tab) {
|
|
194
|
+
const link = this.getLinkEl(tab);
|
|
195
|
+
if (link) {
|
|
196
|
+
panel.setAttribute("aria-labelledby", link.id);
|
|
197
|
+
panel.setAttribute("tab-id", tab.tabId);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
handleKeydown(ev) {
|
|
201
|
+
const key = ev.detail.key;
|
|
202
|
+
let index = this.tabItems.indexOf(ev.detail.tabItem);
|
|
203
|
+
// focusing panel on down arrow
|
|
204
|
+
if (key === "ArrowDown") {
|
|
205
|
+
const activePanel = this.panels.filter((p) => p.active)[0];
|
|
206
|
+
activePanel && activePanel.focus();
|
|
207
|
+
}
|
|
208
|
+
else if (key === "ArrowLeft" || key === "ArrowRight") {
|
|
209
|
+
// focusing prev/next tab item on right/left arrow
|
|
210
|
+
if (key) {
|
|
211
|
+
index = key === "ArrowLeft" ? index - 1 : index + 1;
|
|
212
|
+
}
|
|
213
|
+
if (index < 0) {
|
|
214
|
+
index = this.tabItems.length - 1;
|
|
215
|
+
}
|
|
216
|
+
else if (index === this.tabItems.length) {
|
|
217
|
+
index = 0;
|
|
218
|
+
}
|
|
219
|
+
const tabToFocus = this.tabItems[index];
|
|
220
|
+
this.getLinkEl(tabToFocus).focus({ preventScroll: true });
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
handleTabFocused(tabItem, alignment = "auto") {
|
|
224
|
+
// Calculate and apply scroll position
|
|
225
|
+
const targetScrollLeft = this.calculateScrollPositionForTab(tabItem, alignment);
|
|
226
|
+
this.tabContainerEl.scrollTo({ left: targetScrollLeft, behavior: "smooth" });
|
|
227
|
+
}
|
|
228
|
+
calculateScrollPositionForTab(tabItem, alignment = "auto") {
|
|
229
|
+
const containerRect = this.tabContainerEl.getBoundingClientRect();
|
|
230
|
+
const containerScrollLeft = this.tabContainerEl.scrollLeft;
|
|
231
|
+
const tabRect = tabItem.getBoundingClientRect();
|
|
232
|
+
const tabLeft = containerScrollLeft + (tabRect.left - containerRect.left);
|
|
233
|
+
const tabRight = tabLeft + tabRect.width;
|
|
234
|
+
// Explicit alignment
|
|
235
|
+
if (alignment === "left") {
|
|
236
|
+
return tabLeft; // Snap to left edge
|
|
237
|
+
}
|
|
238
|
+
if (alignment === "right") {
|
|
239
|
+
return Math.max(0, tabRight - containerRect.width); // Snap to right edge
|
|
240
|
+
}
|
|
241
|
+
// Auto alignment
|
|
242
|
+
const firstTab = this.tabItems[0];
|
|
243
|
+
const lastTab = this.tabItems[this.tabItems.length - 1];
|
|
244
|
+
if (tabItem === firstTab) {
|
|
245
|
+
return 0;
|
|
246
|
+
}
|
|
247
|
+
if (tabItem === lastTab) {
|
|
248
|
+
return Math.max(0, this.tabContainerEl.scrollWidth - containerRect.width);
|
|
249
|
+
}
|
|
250
|
+
if (tabLeft < containerScrollLeft) {
|
|
251
|
+
return tabLeft; // Left edge cut off, align left
|
|
252
|
+
}
|
|
253
|
+
if (tabRight > containerScrollLeft + containerRect.width) {
|
|
254
|
+
return tabRight - containerRect.width; // Right edge cut off, align right
|
|
255
|
+
}
|
|
256
|
+
return containerScrollLeft; // Fully visible, no scroll needed
|
|
257
|
+
}
|
|
258
|
+
updateContainerFade() {
|
|
259
|
+
const tolerance = 1; // 1px tolerance for floating-point precision
|
|
260
|
+
// Check if there's content scrolled out of view on each side
|
|
261
|
+
let shouldFadeLeft = this.tabContainerEl.scrollLeft > tolerance;
|
|
262
|
+
let shouldFadeRight = this.tabContainerEl.scrollLeft + this.tabContainerEl.clientWidth < this.tabContainerEl.scrollWidth - tolerance;
|
|
263
|
+
const focusedTab = this.tabItems.find((tab) => tab.matches(":focus-within"));
|
|
264
|
+
if (focusedTab) {
|
|
265
|
+
const containerRect = this.tabContainerEl.getBoundingClientRect();
|
|
266
|
+
const tabRect = focusedTab.getBoundingClientRect();
|
|
267
|
+
const isAtOrOverlappingLeft = tabRect.left <= containerRect.left + tolerance;
|
|
268
|
+
const isAtOrOverlappingRight = tabRect.right >= containerRect.right - tolerance;
|
|
269
|
+
if (isAtOrOverlappingLeft) {
|
|
270
|
+
shouldFadeLeft = false; // Don't fade left if focused tab is at/beyond left edge
|
|
271
|
+
}
|
|
272
|
+
if (isAtOrOverlappingRight) {
|
|
273
|
+
shouldFadeRight = false; // Don't fade right if focused tab is at/beyond right edge
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
this.containerFadeLeft = shouldFadeLeft;
|
|
277
|
+
this.containerFadeRight = shouldFadeRight;
|
|
278
|
+
}
|
|
279
|
+
updateArrowVisibility() {
|
|
280
|
+
const leftArrowEl = this.el.shadowRoot.querySelector(".left-arrow");
|
|
281
|
+
const rightArrowEl = this.el.shadowRoot.querySelector(".right-arrow");
|
|
282
|
+
const isScrollable = this.tabContainerEl.scrollWidth > this.tabContainerEl.clientWidth;
|
|
283
|
+
this.scrollArrowsVisible = isScrollable;
|
|
284
|
+
requestAnimationFrame(() => {
|
|
285
|
+
// Let arrows render before checking if they should be disabled
|
|
286
|
+
if (this.scrollArrowsVisible) {
|
|
287
|
+
const tolerance = 1; // 1px tolerance for floating-point precision
|
|
288
|
+
const canScrollLeft = this.tabContainerEl.scrollLeft > tolerance;
|
|
289
|
+
const canScrollRight = this.tabContainerEl.scrollLeft + this.tabContainerEl.clientWidth <
|
|
290
|
+
this.tabContainerEl.scrollWidth - tolerance;
|
|
291
|
+
leftArrowEl.classList.toggle("disabled", !canScrollLeft);
|
|
292
|
+
rightArrowEl.classList.toggle("disabled", !canScrollRight);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
handleLeftArrowClick(ev) {
|
|
297
|
+
const buttonEl = ev.target;
|
|
298
|
+
if (buttonEl.classList.contains("disabled")) {
|
|
299
|
+
// If the arrow is disabled, take no action and announce reason
|
|
300
|
+
this.announce(intl.formatMessage({
|
|
301
|
+
id: "tabs.cannotScrollLeft",
|
|
302
|
+
defaultMessage: "No more tabs to the left",
|
|
303
|
+
description: "Announcement for button scrolling tab group.",
|
|
304
|
+
}));
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
// Find the first tab that's partially or completely obscured on the left
|
|
308
|
+
const containerRect = this.tabContainerEl.getBoundingClientRect();
|
|
309
|
+
const containerLeft = containerRect.left;
|
|
310
|
+
let tabToFocus = null;
|
|
311
|
+
const reversedTabItems = this.tabItems.reverse();
|
|
312
|
+
reversedTabItems.forEach((tab) => {
|
|
313
|
+
if (!tabToFocus) {
|
|
314
|
+
const tabRect = tab.getBoundingClientRect();
|
|
315
|
+
if (tabRect.left < containerLeft - 1) {
|
|
316
|
+
tabToFocus = tab;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
if (tabToFocus) {
|
|
321
|
+
this.handleTabFocused(tabToFocus, "right"); // Snap to right edge for page-scroll behavior
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
handleRightArrowClick(ev) {
|
|
325
|
+
const buttonEl = ev.target;
|
|
326
|
+
if (buttonEl.classList.contains("disabled")) {
|
|
327
|
+
this.announce(intl.formatMessage({
|
|
328
|
+
id: "tabs.cannotScrollRight",
|
|
329
|
+
defaultMessage: "No more tabs to the right",
|
|
330
|
+
description: "Announcement for button scrolling tab group.",
|
|
331
|
+
}));
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
// Find the first tab that's partially or completely obscured on the right
|
|
335
|
+
const containerRect = this.tabContainerEl.getBoundingClientRect();
|
|
336
|
+
const containerRight = containerRect.right;
|
|
337
|
+
let tabToFocus = null;
|
|
338
|
+
this.tabItems.forEach((tab) => {
|
|
339
|
+
if (!tabToFocus) {
|
|
340
|
+
const tabRect = tab.getBoundingClientRect();
|
|
341
|
+
if (tabRect.right > containerRight + 1) {
|
|
342
|
+
tabToFocus = tab;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
if (tabToFocus) {
|
|
347
|
+
this.handleTabFocused(tabToFocus, "left"); // Snap to left edge for page-scroll behavior
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
announce(message) {
|
|
351
|
+
// \u00A0 is a non-breaking space character, which causes the message to be read as a new one
|
|
352
|
+
if (this.liveRegionEl.textContent === message) {
|
|
353
|
+
message += "\u00A0";
|
|
354
|
+
}
|
|
355
|
+
this.announcement = message;
|
|
356
|
+
}
|
|
357
|
+
render() {
|
|
358
|
+
return (h(Host, { key: 'e5e70580b7b292940ae6f78b1a7e11b10c094816' }, h("div", { key: 'd4522bc80583555f1a30c75e75ed83746aaebf52', class: "component-wrapper" }, h("wm-button", { key: '302eefe25f531312166fc63be510e48153620bc7', class: `left-arrow ${this.scrollArrowsVisible ? "visible" : ""}`, "aria-controls": "tablist", customBackground: this.customBackground, buttonType: "navigational", icon: "#previous", tooltip: intl.formatMessage({
|
|
359
|
+
id: "tabs.showPreviousTabs",
|
|
360
|
+
defaultMessage: "Show previous tabs",
|
|
361
|
+
description: "Tooltip for button scrolling tab group.",
|
|
362
|
+
}), onClick: (ev) => this.handleLeftArrowClick(ev) }), h("ul", { key: '0a8a050783bb051d40fa837a4715662b2d1d7455', id: "tablist", ref: (el) => (this.tabContainerEl = el), class: `tabcontainer ${this.customBackground || ""} ${this.containerFadeLeft ? "fade-left" : ""} ${this.containerFadeRight ? "fade-right" : ""}`, role: "tablist", tabIndex: -1 }, h("slot", { key: '02a0d8d6d5674b4512287987944d21a432357ac7' })), h("wm-button", { key: 'c96ff969e596c0ba93f90ab4dacb9bcd95587e36', class: `right-arrow ${this.scrollArrowsVisible ? "visible" : ""}`, "aria-controls": "tablist", customBackground: this.customBackground, buttonType: "navigational", icon: "#next", tooltip: intl.formatMessage({
|
|
363
|
+
id: "tabs.showNextTabs",
|
|
364
|
+
defaultMessage: "Show next tabs",
|
|
365
|
+
description: "Tooltip for button scrolling tab group.",
|
|
366
|
+
}), onClick: (ev) => this.handleRightArrowClick(ev) }), h("span", { key: '4925ff672c42cbe5c69a5ad33ee4812c93cf2f00', "aria-live": "assertive", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement))));
|
|
367
|
+
}
|
|
368
|
+
static get is() { return "wm-tab-list"; }
|
|
369
|
+
static get encapsulation() { return "shadow"; }
|
|
370
|
+
static get delegatesFocus() { return true; }
|
|
371
|
+
static get originalStyleUrls() {
|
|
372
|
+
return {
|
|
373
|
+
"$": ["wm-tab-list.scss"]
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
static get styleUrls() {
|
|
377
|
+
return {
|
|
378
|
+
"$": ["wm-tab-list.css"]
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
static get properties() {
|
|
382
|
+
return {
|
|
383
|
+
"customBackground": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"mutable": false,
|
|
386
|
+
"complexType": {
|
|
387
|
+
"original": "\"dark\" | \"\"",
|
|
388
|
+
"resolved": "\"\" | \"dark\" | undefined",
|
|
389
|
+
"references": {}
|
|
390
|
+
},
|
|
391
|
+
"required": false,
|
|
392
|
+
"optional": true,
|
|
393
|
+
"docs": {
|
|
394
|
+
"tags": [{
|
|
395
|
+
"name": "description",
|
|
396
|
+
"text": "Sets the visual theme. Pass `\"dark\"` for the dark theme; omit for the\ndefault light theme."
|
|
397
|
+
}],
|
|
398
|
+
"text": ""
|
|
399
|
+
},
|
|
400
|
+
"attribute": "custom-background",
|
|
401
|
+
"reflect": false
|
|
402
|
+
},
|
|
403
|
+
"selectedTab": {
|
|
404
|
+
"type": "string",
|
|
405
|
+
"mutable": false,
|
|
406
|
+
"complexType": {
|
|
407
|
+
"original": "string",
|
|
408
|
+
"resolved": "string | undefined",
|
|
409
|
+
"references": {}
|
|
410
|
+
},
|
|
411
|
+
"required": false,
|
|
412
|
+
"optional": true,
|
|
413
|
+
"docs": {
|
|
414
|
+
"tags": [{
|
|
415
|
+
"name": "description",
|
|
416
|
+
"text": "The `tab-id` of the currently active tab. Update this prop in response to\n`wmTabSelected` to switch tabs. Defaults to the first tab if not set."
|
|
417
|
+
}],
|
|
418
|
+
"text": ""
|
|
419
|
+
},
|
|
420
|
+
"attribute": "selected-tab",
|
|
421
|
+
"reflect": false
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
static get states() {
|
|
426
|
+
return {
|
|
427
|
+
"announcement": {},
|
|
428
|
+
"containerFadeLeft": {},
|
|
429
|
+
"containerFadeRight": {},
|
|
430
|
+
"scrollArrowsVisible": {}
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
static get elementRef() { return "el"; }
|
|
434
|
+
static get watchers() {
|
|
435
|
+
return [{
|
|
436
|
+
"propName": "selectedTab",
|
|
437
|
+
"methodName": "setSelected"
|
|
438
|
+
}];
|
|
439
|
+
}
|
|
440
|
+
static get listeners() {
|
|
441
|
+
return [{
|
|
442
|
+
"name": "tabItemLoaded",
|
|
443
|
+
"method": "tabItemLoaded",
|
|
444
|
+
"target": undefined,
|
|
445
|
+
"capture": false,
|
|
446
|
+
"passive": false
|
|
447
|
+
}, {
|
|
448
|
+
"name": "wmIntTabFocused",
|
|
449
|
+
"method": "wmTabFocused",
|
|
450
|
+
"target": undefined,
|
|
451
|
+
"capture": false,
|
|
452
|
+
"passive": false
|
|
453
|
+
}, {
|
|
454
|
+
"name": "keydownOnTabItem",
|
|
455
|
+
"method": "handleKeydown",
|
|
456
|
+
"target": undefined,
|
|
457
|
+
"capture": false,
|
|
458
|
+
"passive": false
|
|
459
|
+
}];
|
|
460
|
+
}
|
|
461
|
+
}
|