@watermarkinsights/ripple 3.25.0 → 3.25.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/chartFunctions-2f04ab6a.js +0 -2
- package/dist/cjs/functions-d2d99997.js +0 -2
- package/dist/{esm/global-3d0ef32b.js → cjs/global-6acc957f.js} +3 -3
- package/dist/cjs/http-service-9e8c4dd5.js +0 -2
- package/dist/cjs/index-1f84c034.js +0 -2
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/interfaces-30a74c1f.js +0 -2
- package/dist/cjs/intl-a1ccf587.js +0 -2
- package/dist/cjs/loader.cjs.js +1 -3
- package/dist/cjs/priv-chart-popover.cjs.entry.js +0 -2
- package/dist/cjs/priv-datepicker.cjs.entry.js +0 -2
- package/dist/cjs/priv-navigator-button.cjs.entry.js +0 -2
- package/dist/cjs/priv-navigator-item.cjs.entry.js +0 -2
- package/dist/cjs/ripple.cjs.js +1 -3
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +0 -2
- package/dist/cjs/wm-button.cjs.entry.js +0 -2
- package/dist/cjs/wm-chart-slice.cjs.entry.js +0 -2
- package/dist/cjs/wm-chart.cjs.entry.js +0 -2
- package/dist/cjs/wm-datepicker.cjs.entry.js +0 -2
- package/dist/cjs/wm-file-list.cjs.entry.js +0 -2
- package/dist/cjs/wm-file.cjs.entry.js +0 -2
- package/dist/cjs/wm-input.cjs.entry.js +0 -2
- package/dist/cjs/wm-modal-footer.cjs.entry.js +0 -2
- package/dist/cjs/wm-modal-header.cjs.entry.js +0 -2
- package/dist/cjs/wm-modal.cjs.entry.js +0 -2
- package/dist/cjs/wm-navigation_3.cjs.entry.js +0 -2
- package/dist/cjs/wm-navigator.cjs.entry.js +0 -2
- package/dist/cjs/wm-network-uploader.cjs.entry.js +0 -2
- package/dist/cjs/wm-option_2.cjs.entry.js +0 -2
- package/dist/cjs/wm-pagination.cjs.entry.js +0 -2
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +0 -2
- package/dist/cjs/wm-search.cjs.entry.js +0 -2
- package/dist/cjs/wm-snackbar.cjs.entry.js +0 -2
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +0 -2
- package/dist/cjs/wm-tag-input-row.cjs.entry.js +0 -2
- package/dist/cjs/wm-tag-input.cjs.entry.js +0 -2
- package/dist/cjs/wm-timepicker.cjs.entry.js +0 -2
- package/dist/cjs/wm-toggletip.cjs.entry.js +0 -2
- package/dist/cjs/wm-uploader.cjs.entry.js +0 -2
- package/dist/cjs/wm-wrapper.cjs.entry.js +0 -2
- package/dist/collection/components/charts/chartFunctions.js +0 -1
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +0 -1
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +0 -1
- package/dist/collection/components/charts/wm-chart/wm-chart.js +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +0 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +0 -1
- package/dist/collection/components/wm-button/wm-button.js +0 -1
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +0 -1
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +0 -1
- package/dist/collection/components/wm-file/wm-file.js +0 -1
- package/dist/collection/components/wm-file-list/wm-file-list.js +0 -1
- package/dist/collection/components/wm-input/wm-input.js +0 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +0 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.js +0 -1
- package/dist/collection/components/wm-modal/wm-modal-header.js +0 -1
- package/dist/collection/components/wm-modal/wm-modal.js +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation.js +0 -1
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +0 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +0 -1
- package/dist/collection/components/wm-navigator/wm-navigator.js +0 -1
- package/dist/collection/components/wm-option/wm-option.js +0 -1
- package/dist/collection/components/wm-pagination/wm-pagination.js +0 -1
- package/dist/collection/components/wm-search/wm-search.js +0 -1
- package/dist/collection/components/wm-select/wm-select.js +0 -1
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +0 -1
- package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +0 -1
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +0 -1
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +0 -1
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +0 -1
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +0 -1
- package/dist/collection/components/wm-uploader/wm-uploader.js +0 -1
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +0 -1
- package/dist/collection/global/__mocks__/functions.js +0 -1
- package/dist/collection/global/functions.js +0 -1
- package/dist/collection/global/global.js +0 -1
- package/dist/collection/global/interfaces.js +0 -1
- package/dist/collection/global/intl.js +0 -1
- package/dist/collection/global/services/__mocks__/http-service.js +0 -1
- package/dist/collection/global/services/http-service.js +0 -1
- package/dist/collection/lang/lang.js +0 -1
- package/dist/esm/chartFunctions-a72f5835.js +0 -2
- package/dist/esm/functions-dc9964aa.js +0 -2
- package/dist/{cjs/global-d0584d18.js → esm/global-df3a199e.js} +1 -5
- package/dist/esm/http-service-5d037e16.js +0 -2
- package/dist/esm/index-84a6ae22.js +0 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/interfaces-61c6305b.js +0 -2
- package/dist/esm/intl-4d4826dd.js +0 -2
- package/dist/esm/loader.js +1 -3
- package/dist/esm/priv-chart-popover.entry.js +0 -2
- package/dist/esm/priv-datepicker.entry.js +0 -2
- package/dist/esm/priv-navigator-button.entry.js +0 -2
- package/dist/esm/priv-navigator-item.entry.js +0 -2
- package/dist/esm/ripple.js +1 -3
- package/dist/esm/wm-action-menu_2.entry.js +0 -2
- package/dist/esm/wm-button.entry.js +0 -2
- package/dist/esm/wm-chart-slice.entry.js +0 -2
- package/dist/esm/wm-chart.entry.js +0 -2
- package/dist/esm/wm-datepicker.entry.js +0 -2
- package/dist/esm/wm-file-list.entry.js +0 -2
- package/dist/esm/wm-file.entry.js +0 -2
- package/dist/esm/wm-input.entry.js +0 -2
- package/dist/esm/wm-modal-footer.entry.js +0 -2
- package/dist/esm/wm-modal-header.entry.js +0 -2
- package/dist/esm/wm-modal.entry.js +0 -2
- package/dist/esm/wm-navigation_3.entry.js +0 -2
- package/dist/esm/wm-navigator.entry.js +0 -2
- package/dist/esm/wm-network-uploader.entry.js +0 -2
- package/dist/esm/wm-option_2.entry.js +0 -2
- package/dist/esm/wm-pagination.entry.js +0 -2
- package/dist/esm/wm-progress-indicator_3.entry.js +0 -2
- package/dist/esm/wm-search.entry.js +0 -2
- package/dist/esm/wm-snackbar.entry.js +0 -2
- package/dist/esm/wm-tab-item_3.entry.js +0 -2
- package/dist/esm/wm-tag-input-row.entry.js +0 -2
- package/dist/esm/wm-tag-input.entry.js +0 -2
- package/dist/esm/wm-timepicker.entry.js +0 -2
- package/dist/esm/wm-toggletip.entry.js +0 -2
- package/dist/esm/wm-uploader.entry.js +0 -2
- package/dist/esm/wm-wrapper.entry.js +0 -2
- package/dist/esm-es5/chartFunctions-a72f5835.js +1 -2
- package/dist/esm-es5/functions-dc9964aa.js +1 -2
- package/dist/esm-es5/{global-3d0ef32b.js → global-df3a199e.js} +1 -2
- package/dist/esm-es5/http-service-5d037e16.js +1 -2
- package/dist/esm-es5/index-84a6ae22.js +1 -2
- package/dist/esm-es5/index.js +0 -2
- package/dist/esm-es5/interfaces-61c6305b.js +1 -2
- package/dist/esm-es5/intl-4d4826dd.js +1 -2
- package/dist/esm-es5/loader.js +1 -2
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -2
- package/dist/esm-es5/priv-datepicker.entry.js +1 -2
- package/dist/esm-es5/priv-navigator-button.entry.js +1 -2
- package/dist/esm-es5/priv-navigator-item.entry.js +1 -2
- package/dist/esm-es5/ripple.js +1 -2
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -2
- package/dist/esm-es5/wm-button.entry.js +1 -2
- package/dist/esm-es5/wm-chart-slice.entry.js +1 -2
- package/dist/esm-es5/wm-chart.entry.js +1 -2
- package/dist/esm-es5/wm-datepicker.entry.js +1 -2
- package/dist/esm-es5/wm-file-list.entry.js +1 -2
- package/dist/esm-es5/wm-file.entry.js +1 -2
- package/dist/esm-es5/wm-input.entry.js +1 -2
- package/dist/esm-es5/wm-modal-footer.entry.js +1 -2
- package/dist/esm-es5/wm-modal-header.entry.js +1 -2
- package/dist/esm-es5/wm-modal.entry.js +1 -2
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -2
- package/dist/esm-es5/wm-navigator.entry.js +1 -2
- package/dist/esm-es5/wm-network-uploader.entry.js +1 -2
- package/dist/esm-es5/wm-option_2.entry.js +1 -2
- package/dist/esm-es5/wm-pagination.entry.js +1 -2
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -2
- package/dist/esm-es5/wm-search.entry.js +1 -2
- package/dist/esm-es5/wm-snackbar.entry.js +1 -2
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -2
- package/dist/esm-es5/wm-tag-input-row.entry.js +1 -2
- package/dist/esm-es5/wm-tag-input.entry.js +1 -2
- package/dist/esm-es5/wm-timepicker.entry.js +1 -2
- package/dist/esm-es5/wm-toggletip.entry.js +1 -2
- package/dist/esm-es5/wm-uploader.entry.js +1 -2
- package/dist/esm-es5/wm-wrapper.entry.js +1 -2
- package/dist/ripple/index.esm.js +0 -2
- package/dist/ripple/p-0088b69e.entry.js +1 -0
- package/dist/ripple/p-03dc49f5.entry.js +1 -0
- package/dist/ripple/p-04ae66fd.system.entry.js +1 -2
- package/dist/ripple/p-08b7ec08.system.js +1 -2
- package/dist/ripple/p-0cd13c7d.system.entry.js +1 -2
- package/dist/ripple/p-0eb7b1b7.system.entry.js +1 -2
- package/dist/ripple/p-1c23de4a.js +2 -3
- package/dist/ripple/p-1fd20e05.system.entry.js +1 -2
- package/dist/ripple/p-23fa1ff6.system.entry.js +1 -2
- package/dist/ripple/{p-c68b3798.system.js → p-2420f4a7.system.js} +1 -2
- package/dist/ripple/p-24a4cb11.system.entry.js +1 -2
- package/dist/ripple/p-2c2a7092.system.entry.js +1 -2
- package/dist/ripple/p-2e6cb291.entry.js +1 -0
- package/dist/ripple/p-313b6073.system.js +1 -2
- package/dist/ripple/p-32a0290e.entry.js +1 -0
- package/dist/ripple/p-33558ec4.system.entry.js +1 -2
- package/dist/ripple/p-33ec18d4.system.entry.js +1 -2
- package/dist/ripple/p-3759b7af.system.entry.js +1 -2
- package/dist/ripple/p-38449dff.system.entry.js +1 -2
- package/dist/ripple/p-3869a69e.system.entry.js +1 -2
- package/dist/ripple/p-41317448.entry.js +1 -0
- package/dist/ripple/p-42678edc.entry.js +1 -0
- package/dist/ripple/p-43087c29.entry.js +1 -0
- package/dist/ripple/p-4a06d0a9.system.entry.js +1 -2
- package/dist/ripple/p-4d95f00e.entry.js +1 -0
- package/dist/ripple/p-4da9a006.entry.js +1 -0
- package/dist/ripple/p-4fc5e960.entry.js +1 -0
- package/dist/ripple/p-50ea2036.system.js +1 -2
- package/dist/ripple/p-53dc8244.js +1 -0
- package/dist/ripple/p-54750f05.entry.js +1 -0
- package/dist/ripple/p-5f8ab2e0.entry.js +1 -0
- package/dist/ripple/p-62db31c4.entry.js +1 -0
- package/dist/ripple/p-6bb88663.entry.js +1 -0
- package/dist/ripple/p-6ff7d4ff.entry.js +1 -0
- package/dist/ripple/p-7b2fc615.system.js +1 -2
- package/dist/ripple/p-833c622f.system.entry.js +1 -2
- package/dist/ripple/p-8613600d.system.entry.js +1 -2
- package/dist/ripple/p-888bec42.js +1 -2
- package/dist/ripple/p-8909ff66.entry.js +1 -0
- package/dist/ripple/p-8c51e9f8.system.entry.js +1 -2
- package/dist/ripple/p-91deb45f.system.entry.js +1 -2
- package/dist/ripple/p-9338011f.system.entry.js +1 -2
- package/dist/ripple/p-976b2789.system.entry.js +1 -2
- package/dist/ripple/p-994303f2.js +1 -2
- package/dist/ripple/p-9ad1819e.entry.js +1 -0
- package/dist/ripple/p-9b2dfb54.js +1 -2
- package/dist/ripple/p-a6d64d8a.system.entry.js +1 -2
- package/dist/ripple/p-a6d6eae7.js +1 -2
- package/dist/ripple/p-a73cf968.system.entry.js +1 -2
- package/dist/ripple/p-abf0a64f.entry.js +1 -0
- package/dist/ripple/p-aed625c1.system.entry.js +1 -2
- package/dist/ripple/{p-4391166c.entry.js → p-b0bc9fd4.entry.js} +1 -2
- package/dist/ripple/p-b5b521e4.system.entry.js +1 -2
- package/dist/ripple/p-b5ffe399.entry.js +1 -0
- package/dist/ripple/p-b7451e73.system.entry.js +1 -2
- package/dist/ripple/p-bafdcb4e.system.entry.js +1 -2
- package/dist/ripple/p-bd84628c.system.entry.js +1 -2
- package/dist/ripple/p-beac2d5d.entry.js +1 -0
- package/dist/ripple/p-bfb35465.entry.js +1 -0
- package/dist/ripple/p-c36002b6.system.js +1 -2
- package/dist/ripple/p-c6a0f7e5.js +1 -2
- package/dist/ripple/p-c733a478.entry.js +1 -0
- package/dist/ripple/p-d2c26e15.entry.js +1 -0
- package/dist/ripple/p-d81bea1e.entry.js +1 -0
- package/dist/ripple/p-d8bae6cb.entry.js +1 -0
- package/dist/ripple/p-d9d21df5.entry.js +1 -0
- package/dist/ripple/p-dbfd1640.system.entry.js +1 -2
- package/dist/ripple/{p-0826dc64.system.js → p-dc80494f.system.js} +1 -2
- package/dist/ripple/p-e2d947db.entry.js +1 -0
- package/dist/ripple/p-e8b38f36.entry.js +1 -0
- package/dist/ripple/p-f0fd8695.system.js +1 -2
- package/dist/ripple/p-f312d59a.system.entry.js +1 -2
- package/dist/ripple/p-f59a495a.system.entry.js +1 -2
- package/dist/ripple/p-f80eb8a5.system.js +1 -2
- package/dist/ripple/p-fb5fe2bd.entry.js +1 -0
- package/dist/ripple/p-fb67c39e.system.entry.js +1 -2
- package/dist/ripple/ripple.esm.js +1 -2
- package/dist/ripple/ripple.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/chartFunctions-2f04ab6a.js.map +0 -1
- package/dist/cjs/functions-d2d99997.js.map +0 -1
- package/dist/cjs/global-d0584d18.js.map +0 -1
- package/dist/cjs/http-service-9e8c4dd5.js.map +0 -1
- package/dist/cjs/index-1f84c034.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/interfaces-30a74c1f.js.map +0 -1
- package/dist/cjs/intl-a1ccf587.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/priv-chart-popover.cjs.entry.js.map +0 -1
- package/dist/cjs/priv-datepicker.cjs.entry.js.map +0 -1
- package/dist/cjs/priv-navigator-button.cjs.entry.js.map +0 -1
- package/dist/cjs/priv-navigator-item.cjs.entry.js.map +0 -1
- package/dist/cjs/ripple.cjs.js.map +0 -1
- package/dist/cjs/wm-action-menu_2.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-button.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-chart-slice.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-chart.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-datepicker.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-file-list.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-file.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-input.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-modal-footer.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-modal-header.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-navigation_3.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-navigator.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-network-uploader.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-option_2.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-pagination.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-search.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-snackbar.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-tab-item_3.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-tag-input-row.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-tag-input.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-timepicker.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-toggletip.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-uploader.cjs.entry.js.map +0 -1
- package/dist/cjs/wm-wrapper.cjs.entry.js.map +0 -1
- package/dist/collection/components/charts/chartFunctions.js.map +0 -1
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js.map +0 -1
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js.map +0 -1
- package/dist/collection/components/charts/wm-chart/wm-chart.js.map +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js.map +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js.map +0 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js.map +0 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.js.map +0 -1
- package/dist/collection/components/wm-button/wm-button.js.map +0 -1
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js.map +0 -1
- package/dist/collection/components/wm-datepicker/wm-datepicker.js.map +0 -1
- package/dist/collection/components/wm-file/wm-file.js.map +0 -1
- package/dist/collection/components/wm-file-list/wm-file-list.js.map +0 -1
- package/dist/collection/components/wm-input/wm-input.js.map +0 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.js.map +0 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.js.map +0 -1
- package/dist/collection/components/wm-modal/wm-modal-header.js.map +0 -1
- package/dist/collection/components/wm-modal/wm-modal.js.map +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js.map +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation-item.js.map +0 -1
- package/dist/collection/components/wm-navigation/wm-navigation.js.map +0 -1
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js.map +0 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js.map +0 -1
- package/dist/collection/components/wm-navigator/wm-navigator.js.map +0 -1
- package/dist/collection/components/wm-option/wm-option.js.map +0 -1
- package/dist/collection/components/wm-pagination/wm-pagination.js.map +0 -1
- package/dist/collection/components/wm-search/wm-search.js.map +0 -1
- package/dist/collection/components/wm-select/wm-select.js.map +0 -1
- package/dist/collection/components/wm-snackbar/wm-snackbar.js.map +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js.map +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js.map +0 -1
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js.map +0 -1
- package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js.map +0 -1
- package/dist/collection/components/wm-tag-input/wm-tag-input.js.map +0 -1
- package/dist/collection/components/wm-timepicker/wm-timepicker.js.map +0 -1
- package/dist/collection/components/wm-toggletip/wm-toggletip.js.map +0 -1
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js.map +0 -1
- package/dist/collection/components/wm-uploader/wm-uploader.js.map +0 -1
- package/dist/collection/components/wm-wrapper/wm-wrapper.js.map +0 -1
- package/dist/collection/global/__mocks__/functions.js.map +0 -1
- package/dist/collection/global/functions.js.map +0 -1
- package/dist/collection/global/global.js.map +0 -1
- package/dist/collection/global/interfaces.js.map +0 -1
- package/dist/collection/global/intl.js.map +0 -1
- package/dist/collection/global/services/__mocks__/http-service.js.map +0 -1
- package/dist/collection/global/services/http-service.js.map +0 -1
- package/dist/collection/lang/lang.js.map +0 -1
- package/dist/esm/chartFunctions-a72f5835.js.map +0 -1
- package/dist/esm/functions-dc9964aa.js.map +0 -1
- package/dist/esm/global-3d0ef32b.js.map +0 -1
- package/dist/esm/http-service-5d037e16.js.map +0 -1
- package/dist/esm/index-84a6ae22.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/interfaces-61c6305b.js.map +0 -1
- package/dist/esm/intl-4d4826dd.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/priv-chart-popover.entry.js.map +0 -1
- package/dist/esm/priv-datepicker.entry.js.map +0 -1
- package/dist/esm/priv-navigator-button.entry.js.map +0 -1
- package/dist/esm/priv-navigator-item.entry.js.map +0 -1
- package/dist/esm/ripple.js.map +0 -1
- package/dist/esm/wm-action-menu_2.entry.js.map +0 -1
- package/dist/esm/wm-button.entry.js.map +0 -1
- package/dist/esm/wm-chart-slice.entry.js.map +0 -1
- package/dist/esm/wm-chart.entry.js.map +0 -1
- package/dist/esm/wm-datepicker.entry.js.map +0 -1
- package/dist/esm/wm-file-list.entry.js.map +0 -1
- package/dist/esm/wm-file.entry.js.map +0 -1
- package/dist/esm/wm-input.entry.js.map +0 -1
- package/dist/esm/wm-modal-footer.entry.js.map +0 -1
- package/dist/esm/wm-modal-header.entry.js.map +0 -1
- package/dist/esm/wm-modal.entry.js.map +0 -1
- package/dist/esm/wm-navigation_3.entry.js.map +0 -1
- package/dist/esm/wm-navigator.entry.js.map +0 -1
- package/dist/esm/wm-network-uploader.entry.js.map +0 -1
- package/dist/esm/wm-option_2.entry.js.map +0 -1
- package/dist/esm/wm-pagination.entry.js.map +0 -1
- package/dist/esm/wm-progress-indicator_3.entry.js.map +0 -1
- package/dist/esm/wm-search.entry.js.map +0 -1
- package/dist/esm/wm-snackbar.entry.js.map +0 -1
- package/dist/esm/wm-tab-item_3.entry.js.map +0 -1
- package/dist/esm/wm-tag-input-row.entry.js.map +0 -1
- package/dist/esm/wm-tag-input.entry.js.map +0 -1
- package/dist/esm/wm-timepicker.entry.js.map +0 -1
- package/dist/esm/wm-toggletip.entry.js.map +0 -1
- package/dist/esm/wm-uploader.entry.js.map +0 -1
- package/dist/esm/wm-wrapper.entry.js.map +0 -1
- package/dist/esm-es5/chartFunctions-a72f5835.js.map +0 -1
- package/dist/esm-es5/functions-dc9964aa.js.map +0 -1
- package/dist/esm-es5/global-3d0ef32b.js.map +0 -1
- package/dist/esm-es5/http-service-5d037e16.js.map +0 -1
- package/dist/esm-es5/index-84a6ae22.js.map +0 -1
- package/dist/esm-es5/index.js.map +0 -1
- package/dist/esm-es5/interfaces-61c6305b.js.map +0 -1
- package/dist/esm-es5/intl-4d4826dd.js.map +0 -1
- package/dist/esm-es5/loader.js.map +0 -1
- package/dist/esm-es5/priv-chart-popover.entry.js.map +0 -1
- package/dist/esm-es5/priv-datepicker.entry.js.map +0 -1
- package/dist/esm-es5/priv-navigator-button.entry.js.map +0 -1
- package/dist/esm-es5/priv-navigator-item.entry.js.map +0 -1
- package/dist/esm-es5/ripple.js.map +0 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js.map +0 -1
- package/dist/esm-es5/wm-button.entry.js.map +0 -1
- package/dist/esm-es5/wm-chart-slice.entry.js.map +0 -1
- package/dist/esm-es5/wm-chart.entry.js.map +0 -1
- package/dist/esm-es5/wm-datepicker.entry.js.map +0 -1
- package/dist/esm-es5/wm-file-list.entry.js.map +0 -1
- package/dist/esm-es5/wm-file.entry.js.map +0 -1
- package/dist/esm-es5/wm-input.entry.js.map +0 -1
- package/dist/esm-es5/wm-modal-footer.entry.js.map +0 -1
- package/dist/esm-es5/wm-modal-header.entry.js.map +0 -1
- package/dist/esm-es5/wm-modal.entry.js.map +0 -1
- package/dist/esm-es5/wm-navigation_3.entry.js.map +0 -1
- package/dist/esm-es5/wm-navigator.entry.js.map +0 -1
- package/dist/esm-es5/wm-network-uploader.entry.js.map +0 -1
- package/dist/esm-es5/wm-option_2.entry.js.map +0 -1
- package/dist/esm-es5/wm-pagination.entry.js.map +0 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js.map +0 -1
- package/dist/esm-es5/wm-search.entry.js.map +0 -1
- package/dist/esm-es5/wm-snackbar.entry.js.map +0 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js.map +0 -1
- package/dist/esm-es5/wm-tag-input-row.entry.js.map +0 -1
- package/dist/esm-es5/wm-tag-input.entry.js.map +0 -1
- package/dist/esm-es5/wm-timepicker.entry.js.map +0 -1
- package/dist/esm-es5/wm-toggletip.entry.js.map +0 -1
- package/dist/esm-es5/wm-uploader.entry.js.map +0 -1
- package/dist/esm-es5/wm-wrapper.entry.js.map +0 -1
- package/dist/ripple/index.esm.js.map +0 -1
- package/dist/ripple/p-002d067e.entry.js +0 -2
- package/dist/ripple/p-002d067e.entry.js.map +0 -1
- package/dist/ripple/p-02a1000a.entry.js +0 -2
- package/dist/ripple/p-02a1000a.entry.js.map +0 -1
- package/dist/ripple/p-04ae66fd.system.entry.js.map +0 -1
- package/dist/ripple/p-0826dc64.system.js.map +0 -1
- package/dist/ripple/p-08b7ec08.system.js.map +0 -1
- package/dist/ripple/p-0ad3a708.entry.js +0 -2
- package/dist/ripple/p-0ad3a708.entry.js.map +0 -1
- package/dist/ripple/p-0cd13c7d.system.entry.js.map +0 -1
- package/dist/ripple/p-0d7bccf7.entry.js +0 -2
- package/dist/ripple/p-0d7bccf7.entry.js.map +0 -1
- package/dist/ripple/p-0eb7b1b7.system.entry.js.map +0 -1
- package/dist/ripple/p-11124a23.entry.js +0 -2
- package/dist/ripple/p-11124a23.entry.js.map +0 -1
- package/dist/ripple/p-1808b90a.entry.js +0 -2
- package/dist/ripple/p-1808b90a.entry.js.map +0 -1
- package/dist/ripple/p-1c23de4a.js.map +0 -1
- package/dist/ripple/p-1fd20e05.system.entry.js.map +0 -1
- package/dist/ripple/p-23fa1ff6.system.entry.js.map +0 -1
- package/dist/ripple/p-24a4cb11.system.entry.js.map +0 -1
- package/dist/ripple/p-2c2a7092.system.entry.js.map +0 -1
- package/dist/ripple/p-313b6073.system.js.map +0 -1
- package/dist/ripple/p-33558ec4.system.entry.js.map +0 -1
- package/dist/ripple/p-33ec18d4.system.entry.js.map +0 -1
- package/dist/ripple/p-341aa131.entry.js +0 -2
- package/dist/ripple/p-341aa131.entry.js.map +0 -1
- package/dist/ripple/p-3759b7af.system.entry.js.map +0 -1
- package/dist/ripple/p-38449dff.system.entry.js.map +0 -1
- package/dist/ripple/p-384c4981.entry.js +0 -2
- package/dist/ripple/p-384c4981.entry.js.map +0 -1
- package/dist/ripple/p-3869a69e.system.entry.js.map +0 -1
- package/dist/ripple/p-4391166c.entry.js.map +0 -1
- package/dist/ripple/p-43be123d.entry.js +0 -2
- package/dist/ripple/p-43be123d.entry.js.map +0 -1
- package/dist/ripple/p-4a014591.entry.js +0 -2
- package/dist/ripple/p-4a014591.entry.js.map +0 -1
- package/dist/ripple/p-4a06d0a9.system.entry.js.map +0 -1
- package/dist/ripple/p-4e02e2ae.entry.js +0 -2
- package/dist/ripple/p-4e02e2ae.entry.js.map +0 -1
- package/dist/ripple/p-50ea2036.system.js.map +0 -1
- package/dist/ripple/p-56cd4d5e.entry.js +0 -2
- package/dist/ripple/p-56cd4d5e.entry.js.map +0 -1
- package/dist/ripple/p-59654f8e.entry.js +0 -2
- package/dist/ripple/p-59654f8e.entry.js.map +0 -1
- package/dist/ripple/p-5cc287d2.entry.js +0 -2
- package/dist/ripple/p-5cc287d2.entry.js.map +0 -1
- package/dist/ripple/p-7b2fc615.system.js.map +0 -1
- package/dist/ripple/p-7e0e6b00.entry.js +0 -2
- package/dist/ripple/p-7e0e6b00.entry.js.map +0 -1
- package/dist/ripple/p-833c622f.system.entry.js.map +0 -1
- package/dist/ripple/p-8613600d.system.entry.js.map +0 -1
- package/dist/ripple/p-888bec42.js.map +0 -1
- package/dist/ripple/p-889579fc.entry.js +0 -2
- package/dist/ripple/p-889579fc.entry.js.map +0 -1
- package/dist/ripple/p-8c51e9f8.system.entry.js.map +0 -1
- package/dist/ripple/p-8db604d2.entry.js +0 -2
- package/dist/ripple/p-8db604d2.entry.js.map +0 -1
- package/dist/ripple/p-91deb45f.system.entry.js.map +0 -1
- package/dist/ripple/p-9338011f.system.entry.js.map +0 -1
- package/dist/ripple/p-976b2789.system.entry.js.map +0 -1
- package/dist/ripple/p-994303f2.js.map +0 -1
- package/dist/ripple/p-9b2dfb54.js.map +0 -1
- package/dist/ripple/p-9b9eb944.entry.js +0 -2
- package/dist/ripple/p-9b9eb944.entry.js.map +0 -1
- package/dist/ripple/p-a6d64d8a.system.entry.js.map +0 -1
- package/dist/ripple/p-a6d6eae7.js.map +0 -1
- package/dist/ripple/p-a73cf968.system.entry.js.map +0 -1
- package/dist/ripple/p-aed625c1.system.entry.js.map +0 -1
- package/dist/ripple/p-b5b521e4.system.entry.js.map +0 -1
- package/dist/ripple/p-b7451e73.system.entry.js.map +0 -1
- package/dist/ripple/p-bafdcb4e.system.entry.js.map +0 -1
- package/dist/ripple/p-bb45e122.entry.js +0 -2
- package/dist/ripple/p-bb45e122.entry.js.map +0 -1
- package/dist/ripple/p-bd84628c.system.entry.js.map +0 -1
- package/dist/ripple/p-bf569af0.entry.js +0 -2
- package/dist/ripple/p-bf569af0.entry.js.map +0 -1
- package/dist/ripple/p-c094f6a8.entry.js +0 -2
- package/dist/ripple/p-c094f6a8.entry.js.map +0 -1
- package/dist/ripple/p-c36002b6.system.js.map +0 -1
- package/dist/ripple/p-c5bf7db8.entry.js +0 -2
- package/dist/ripple/p-c5bf7db8.entry.js.map +0 -1
- package/dist/ripple/p-c68b3798.system.js.map +0 -1
- package/dist/ripple/p-c6a0f7e5.js.map +0 -1
- package/dist/ripple/p-d46f5794.entry.js +0 -2
- package/dist/ripple/p-d46f5794.entry.js.map +0 -1
- package/dist/ripple/p-d48313e0.entry.js +0 -2
- package/dist/ripple/p-d48313e0.entry.js.map +0 -1
- package/dist/ripple/p-d939cb54.entry.js +0 -2
- package/dist/ripple/p-d939cb54.entry.js.map +0 -1
- package/dist/ripple/p-dbfd1640.system.entry.js.map +0 -1
- package/dist/ripple/p-e22854c1.entry.js +0 -2
- package/dist/ripple/p-e22854c1.entry.js.map +0 -1
- package/dist/ripple/p-e70bb79f.js +0 -2
- package/dist/ripple/p-e70bb79f.js.map +0 -1
- package/dist/ripple/p-ed82573a.entry.js +0 -2
- package/dist/ripple/p-ed82573a.entry.js.map +0 -1
- package/dist/ripple/p-f0fd8695.system.js.map +0 -1
- package/dist/ripple/p-f312d59a.system.entry.js.map +0 -1
- package/dist/ripple/p-f59a495a.system.entry.js.map +0 -1
- package/dist/ripple/p-f80eb8a5.system.js.map +0 -1
- package/dist/ripple/p-fb67c39e.system.entry.js.map +0 -1
- package/dist/ripple/p-fc08d5e1.entry.js +0 -2
- package/dist/ripple/p-fc08d5e1.entry.js.map +0 -1
- package/dist/ripple/p-fe7da854.entry.js +0 -2
- package/dist/ripple/p-fe7da854.entry.js.map +0 -1
- package/dist/ripple/ripple.esm.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-progress-indicator.wm-progress-monitor.wm-progress-slice.entry.cjs.js","mappings":"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","names":["generateId","allChartsDetails","intl","handleChartKeydown","getDetails","forceUpdate","renderStackedBar","renderDoughnut","h","Host","exitChart","renderLegend","renderCompletionMessage","renderInstructionsText","debounce","csvToArray","renderLegendItem"],"sources":["./src/components/charts/wm-progress-monitor/wm-progress-indicator.scss?tag=wm-progress-indicator&encapsulation=shadow","./src/components/charts/wm-progress-monitor/wm-progress-indicator.tsx","./src/components/charts/wm-progress-monitor/wm-progress-monitor.scss?tag=wm-progress-monitor&encapsulation=shadow","./src/components/charts/wm-progress-monitor/wm-progress-monitor.tsx","./src/components/charts/wm-progress-monitor/wm-progress-slice.tsx"],"sourcesContent":[":host,\nwm-progress-indicator {\n @extend %chart-styles;\n}\n\n:host(:focus) {\n @extend %chart-focus-styles;\n}\n","import { Component, Element, h, Host, Prop, State, Listen, forceUpdate, Watch } from \"@stencil/core\";\nimport { ChartDetails } from \"../../../global/interfaces\";\nimport { generateId, intl } from \"../../../global/functions\";\nimport {\n exitChart,\n getDetails,\n handleChartKeydown,\n renderStackedBar,\n renderCompletionMessage,\n renderDoughnut,\n renderInstructionsText,\n renderLegend,\n allChartsDetails,\n} from \"../chartFunctions\";\n\n@Component({\n tag: \"wm-progress-indicator\",\n shadow: { delegatesFocus: true },\n styleUrl: \"wm-progress-indicator.scss\",\n})\nexport class ProgressIndicator {\n @Element() el!: HTMLWmProgressIndicatorElement;\n // @ts-ignore-- TS warns this is unused, but its needed in chartFunctions\n private componentWrapperEl!: HTMLDivElement;\n\n @Prop() label?: string;\n @Prop() subinfo?: string;\n @Prop() completionMessage?: string;\n @Prop() showLegend: boolean = true;\n\n @State() isTabbing: boolean = false;\n @State() mode?: \"doughnut\" | \"bar\";\n @State() userIsNavigating: boolean = false;\n\n private uid: string = generateId();\n private total!: number;\n // @ts-ignore-- TS warns this is unused, but its needed in the chartFunctions\n private slicesDetails: SliceDetails[] = [];\n private barLabelsWidth?: string = (this.el.parentElement as HTMLWmProgressMonitorElement).barLabelsWidth;\n\n get popoverEl() {\n return this.el.shadowRoot!.querySelector(\"priv-chart-popover\");\n }\n get sliceEls(): (SVGElement | HTMLElement)[] | undefined {\n return Array.from(this.el.shadowRoot!.querySelectorAll(\".segment\")) as HTMLElement[];\n }\n get chartDetails(): ChartDetails | undefined {\n return this.mode ? allChartsDetails[this.mode] : undefined;\n }\n get ariaLabelText() {\n let text = `${this.label}`;\n if (this.subinfo) {\n text += ` ${this.subinfo}`;\n }\n return text;\n }\n\n get chartRoleDescription(): string {\n return intl.formatMessage({\n id: \"chart.roleDescription\",\n defaultMessage: \"Interactive chart\",\n description: \"For screen readers only, a description clarifying the role of the chart widget\",\n });\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"keydown\")\n handleKeydown(ev: KeyboardEvent) {\n handleChartKeydown.call(this, ev);\n }\n\n componentWillLoad() {\n if (!this.label) {\n console.error(\n \"For accessibility purposes, you must provide a label for the chart. See https://components.watermarkinsights.com/chart for more information.\"\n );\n }\n\n if (this.el.children.length !== 2) {\n console.warn(\"wm-progress-indicator component must have 2 wm-progress-slice children.\");\n }\n\n // Listen to parent for initial mode, and future changes\n this.el.parentElement!.addEventListener(\n \"wmProgressMonitorModeChange\",\n (ev) => (this.mode = (ev as CustomEvent).detail)\n );\n }\n\n @Listen(\"wmProgressSliceUpdated\")\n async handleSliceUpdate() {\n await getDetails.call(this, this.mode!);\n forceUpdate(this.el);\n }\n\n @Watch(\"mode\")\n handleModeUpdate() {\n if (this.mode) {\n getDetails.call(this, this.mode);\n }\n }\n\n renderBarOrDoughnut() {\n if (this.total > 0 && this.mode === \"bar\") {\n return renderStackedBar.call(this, this.mode!);\n } else {\n return renderDoughnut.call(this, this.mode!);\n }\n }\n\n render() {\n return (\n <Host onBlur={() => exitChart.call(this)}>\n <div\n ref={(el) => (this.componentWrapperEl = el as HTMLDivElement)}\n class={`component-wrapper ${this.mode} ${this.isTabbing && !this.userIsNavigating ? \"user-is-tabbing\" : \"\"}`}\n role=\"application\"\n aria-label={this.ariaLabelText}\n tabindex=\"0\"\n aria-roledescription={this.chartRoleDescription}\n aria-describedby={`chart-instructions`}\n >\n <label\n id={`label-${this.uid}`}\n class={`label ${this.barLabelsWidth && this.mode === \"bar\" ? \"custom-width\" : \"\"}`}\n style={{ \"--custom-label-width\": this.barLabelsWidth }}\n htmlFor={`graphic-${this.uid}`}\n >\n <span class=\"label-text\">{this.label}</span>\n {this.subinfo ? <span class=\"subinfo\">{this.subinfo}</span> : \"\"}\n </label>\n {this.mode && this.renderBarOrDoughnut()}\n {this.mode === \"doughnut\" ? renderLegend.call(this, this.mode) : \"\"}\n <priv-chart-popover class={this.isTabbing ? \"user-is-tabbing\" : \"\"}></priv-chart-popover>\n {this.mode === \"doughnut\" ? renderCompletionMessage.call(this) : \"\"}\n </div>\n {renderInstructionsText()}\n </Host>\n );\n }\n}\n",":host,\nwm-progress-monitor {\n display: flex;\n\n .legend-wrapper {\n @extend %chart-legend-styles;\n align-items: flex-start;\n padding: 0 1.25rem;\n }\n}\n\n:host(.row) {\n flex-direction: row;\n}\n\n:host(.column) {\n flex-direction: column;\n}\n","import { Component, h, Host, Element, Prop, Event, EventEmitter, forceUpdate } from \"@stencil/core\";\nimport { csvToArray, debounce } from \"../../../global/functions\";\nimport { renderLegendItem, allChartsDetails } from \"../chartFunctions\";\nimport { LegendItem } from \"../../../global/interfaces\";\n@Component({\n tag: \"wm-progress-monitor\",\n shadow: { delegatesFocus: true },\n styleUrl: \"wm-progress-monitor.scss\",\n})\nexport class ProgressMonitor {\n @Element() el!: HTMLWmProgressMonitorElement;\n @Prop() breakpoint?: number | string;\n @Prop() groupLegend?: string;\n @Prop() barLabelsWidth?: string;\n @Event() wmProgressMonitorModeChange!: EventEmitter;\n private doughnutWidth = 300;\n private prevMode?: string;\n private modeInitialized: boolean = false;\n\n get parsedBreakpoint() {\n const asNumber = this.parseToNum(this.breakpoint ? this.breakpoint : this.el.children.length);\n // if number < 20, it is treated as width in terms of # of indicators. Otherwise it is a pixel value\n // e.g. 4 -> 1200px, while 768 -> 768 px\n const asPixels = asNumber >= 20 ? asNumber : asNumber * this.doughnutWidth;\n return asPixels;\n }\n\n get mode(): \"doughnut\" | \"bar\" {\n return this.el.clientWidth > this.parsedBreakpoint ? \"doughnut\" : \"bar\";\n }\n\n componentWillLoad() {\n // rerender on resize in case layout needs to change\n const resizeObserver = new ResizeObserver(() => this.debouncedUpdate());\n resizeObserver.observe(this.el);\n }\n\n componentDidLoad() {\n // emit initial mode for Indicators, must happen post-load as this.el measurement is needed\n this.wmProgressMonitorModeChange.emit(this.mode);\n this.modeInitialized = true;\n }\n\n componentWillUpdate() {\n // store prevMode before every render except first to determine when it has changed\n if (this.prevMode !== this.mode) {\n this.wmProgressMonitorModeChange.emit(this.mode);\n }\n this.prevMode = this.mode;\n }\n\n debouncedUpdate = debounce(() => forceUpdate(this.el), 50);\n\n parseToNum(num: string | number): number {\n const asString = num.toString();\n const withoutPx = asString.replace(\"px\", \"\");\n return parseInt(withoutPx);\n }\n\n renderLegend() {\n const keys = csvToArray(this.groupLegend!);\n const colors = allChartsDetails.bar.colors;\n\n return (\n <div class=\"legend-wrapper\">\n <div class=\"legend\">\n {keys.map((key, idx) => {\n const legendItem: LegendItem = { key: key, color: colors[idx] };\n return renderLegendItem(legendItem);\n })}\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host class={this.mode === \"doughnut\" ? \"row\" : \"column\"}>\n {/* don't render Indicators until mode is determined otherwise content flashes*/}\n {this.modeInitialized && this.groupLegend && this.mode === \"bar\" && this.renderLegend()}\n {this.modeInitialized && <slot />}\n </Host>\n );\n }\n}\n","import { Component, Prop, Event, EventEmitter } from \"@stencil/core\";\n\n@Component({\n tag: \"wm-progress-slice\",\n shadow: true,\n})\nexport class ProgressSlice {\n @Prop() legend?: string;\n @Prop() amount?: string;\n @Prop() popoverTitle?: string;\n @Prop() popoverText?: string;\n @Prop() popoverButtonText?: string;\n\n @Event() wmProgressSliceUpdated!: EventEmitter<void>;\n componentDidUpdate() {\n this.wmProgressSliceUpdated.emit();\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-search.entry.cjs.js","mappings":"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","names":["intl","h","globalMessages","Host"],"sources":["./src/components/wm-search/wm-search.scss?tag=wm-search&encapsulation=shadow","./src/components/wm-search/wm-search.tsx"],"sourcesContent":[":host,\nwm-search {\n * {\n box-sizing: border-box;\n }\n width: 100%;\n font-size: rem-calc(14);\n\n .wm-search-wrapper {\n border-radius: 3px;\n position: relative;\n border: 1px solid rgba(35, 35, 35, 0.6);\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .search-icon {\n @include mdi-icon;\n font-size: rem-calc(17);\n position: absolute;\n left: rem-calc(7);\n }\n\n input {\n border: none;\n height: 40px;\n padding: rem-calc(0 28);\n background: transparent;\n overflow: visible;\n width: 100%;\n flex: 1;\n font-family: inherit;\n\n &:focus {\n outline: none;\n }\n }\n\n &.focus {\n @include field-focus;\n }\n }\n\n .find {\n min-height: 3rem;\n\n input {\n padding: 16px 8px 16px 28px;\n }\n\n .wm-find-elements {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding-right: 16px;\n wm-button + wm-button {\n margin-left: rem-calc(4);\n }\n\n .results {\n margin-right: rem-calc(8);\n font-style: italic;\n }\n }\n }\n\n .sr-only {\n @include srOnly;\n }\n\n .show-for-tabbers {\n all: unset;\n color: #575195;\n text-decoration: none;\n font-weight: 500;\n font-size: rem-calc(14);\n margin: 10px 0;\n\n &:hover {\n background: linear-gradient(#575195, #575195) no-repeat;\n background-size: 100% 1px;\n background-position: 0 1.2em;\n padding-bottom: 0.2em;\n }\n\n &:focus {\n outline: none;\n background: linear-gradient(90deg, #3862e9 66%, transparent 0) repeat-x;\n background-size: 6px 3px;\n background-position: 0 1.2em;\n padding-bottom: 0.2em;\n }\n }\n}\n","import { h, Component, Element, Prop, Watch, Host, Method, Listen, State, Event, EventEmitter } from \"@stencil/core\";\nimport { intl } from \"../../global/functions\";\nimport { globalMessages } from \"../../global/intl\";\n\n@Component({\n tag: \"wm-search\",\n styleUrl: \"wm-search.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Search {\n @Element() el!: HTMLWmSearchElement;\n @Prop({ mutable: true }) searchType: \"basic\" | \"find\" = \"basic\";\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Props required for both variants.\n */\n @Prop() placeholder: string = \"\";\n @Prop() label: string = \"\";\n @Prop({ mutable: true }) numResults: number = 0;\n\n /**\n * This exposes the input's value on the host component so that the app can access it.\n */\n @Prop({ mutable: true, reflect: true }) value: string = \"\";\n\n /**\n * If the user is tabbing, the search and find variant will display a link to jump to a search result.\n */\n @State() isTabbing: boolean = false;\n\n /**\n * Prop specifically for the search and find variant. The id points to the id of the option currently highlighted,\n * so that tabbing and screen reader users can jump to this option rather than tab through the list to find it.\n */\n @Prop() highlightedId: string = \"\";\n @Prop() highlightedName: string | null = null;\n\n /**\n * Indicates which of the search results is currently highlighted. It will be displayed as \"[highlightedNum] of [numResults]\" next to the input in the search and find variant.\n * This number updates as the user browses using the buttons.\n */\n @State() highlightedNum: number = 0;\n\n @State() previousBlurredValue: string = \"\";\n @State() parentModal?: HTMLWmModalElement;\n\n /**\n * Live region announcement\n */\n @State() announcement: string = \"\";\n\n get resultCount(): string {\n let message = \"\";\n const basicMessage = intl.formatMessage(\n {\n id: \"search.resultsFound\",\n defaultMessage: \"{numResults, plural, =0 {No results} one {1 result} other {# results}} found\",\n },\n { numResults: this.numResults }\n );\n const findMessage = intl.formatMessage(\n {\n id: \"search.xOfYResults\",\n defaultMessage: \"{numResults, plural, =0 {No results found} other {{current} of {numResults} results}}\",\n },\n { numResults: this.numResults, current: this.highlightedNum }\n );\n\n if (this.searchType === \"basic\") {\n message = basicMessage;\n } else if (this.searchType === \"find\") {\n message = findMessage;\n }\n\n return message;\n }\n\n /**\n * Emitted when the buttons in the search-and-find variant are pressed.\n */\n @Event() wmSearchBrowseResults!: EventEmitter<{ position: number }>;\n @Event() wmBrowseSearchResults!: EventEmitter<{ position: number }>; // deprecated in favor of wmSearchBrowseResults\n @Event() wmSearchValueChanged!: EventEmitter<{ value: string }>;\n\n /**\n * Element refs\n */\n private resultsLiveRegion!: HTMLElement;\n private wrapperEl: HTMLElement | null = null;\n private linkEl: HTMLElement | null = null;\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n this.linkEl && this.linkEl.classList.remove(\"sr-only\");\n this.linkEl && this.linkEl.classList.add(\"show-for-tabbers\");\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n this.linkEl && this.linkEl.classList.add(\"sr-only\");\n this.linkEl && this.linkEl.classList.remove(\"show-for-tabbers\");\n }\n\n componentWillLoad() {\n if (this.placeholder === \"\") {\n console.error(\"You must set the placeholder property for the wm-search component.\");\n }\n\n if (this.label === \"\") {\n console.error(\"You must set the label property for the wm-search component.\");\n }\n this.hookToModal();\n }\n\n hookToModal() {\n // if the search is in a modal we want to clear the input when the modal closes\n let el = this.el as any;\n while (!!el) {\n if (el.tagName === \"WM-MODAL\") {\n this.parentModal = el as HTMLWmModalElement;\n }\n el = el.parentElement as HTMLElement;\n }\n\n if (this.parentModal) {\n const events = [\"wmCloseTriggered\", \"wmPrimaryTriggered\", \"wmSecondaryTriggered\"];\n events.map((event) => {\n this.parentModal!.addEventListener(event, () => {\n this.updateValue(\"\");\n });\n });\n }\n }\n\n // this undocumented method is needed in hookToModal (needs to be exposed so we can set the callback func)\n @Method()\n async updateValue(value: string) {\n this.value = value;\n\n //For search-and-find, the results should always restart at \"[1 or 0] of ...\" after any new input.\n //Reset the highlight count here just in case the new value doesn't end up changing the number of results.\n this.resetHighlightCountToStart();\n\n if (this.value) {\n this.announceChanges();\n }\n }\n\n @Watch(\"numResults\")\n resetHighlightCountToStart(): void {\n if (this.searchType === \"find\") {\n this.highlightedNum = this.numResults ? 1 : 0;\n }\n }\n\n announce(message: string) {\n if (this.resultsLiveRegion!.textContent === message) {\n message += \"\\u00A0\";\n }\n this.announcement = message;\n }\n\n announceChanges() {\n window.requestAnimationFrame(() => {\n // requestAnimationFrame to allow all changes to occur before announcing results\n let messageToAnnounce = this.resultCount;\n\n // if a result is found, also include it after the liveregion message\n if (this.searchType === \"find\" && this.highlightedName) {\n messageToAnnounce += `, ${this.highlightedName}`;\n }\n\n this.announce(messageToAnnounce);\n });\n }\n\n changeHighlightedNum(newNum: number): void {\n if (this.numResults) {\n if (newNum < 1) {\n // we were on the first item, going down: go to last item\n this.highlightedNum = this.numResults;\n } else if (newNum > this.numResults) {\n // we were on the last item, going up: go to first item\n this.highlightedNum = 1;\n } else {\n this.highlightedNum = newNum;\n }\n\n this.wmSearchBrowseResults.emit({ position: this.highlightedNum });\n this.wmBrowseSearchResults.emit({ position: this.highlightedNum });\n this.announceChanges();\n }\n }\n\n addFocusStyle() {\n if (this.wrapperEl) {\n this.wrapperEl.classList.add(\"focus\");\n }\n }\n\n removeFocusStyle() {\n if (this.wrapperEl) {\n this.wrapperEl.classList.remove(\"focus\");\n }\n }\n\n handleBlur() {\n this.removeFocusStyle();\n if (this.previousBlurredValue !== this.value) {\n this.wmSearchValueChanged.emit({ value: this.value });\n }\n this.previousBlurredValue = this.value;\n }\n\n /**\n * Functions that return elements specifically for search-and-find.\n */\n renderResultsAndBrowseButtons(): HTMLDivElement {\n return (\n <div class=\"wm-find-elements\">\n <div id=\"results-display\" class=\"results\">\n {this.resultCount}\n </div>\n <div class=\"wm-button-collection\">\n <wm-button\n button-type=\"icononly\"\n icon=\"f05d\"\n tooltip={globalMessages.previous}\n tooltip-position=\"bottom\"\n onClick={() => this.changeHighlightedNum(this.highlightedNum - 1)}\n disabled={this.disabled || this.numResults < 2}\n label-for-identical-buttons={intl.formatMessage({\n id: \"search.previousResult\",\n defaultMessage: \"Press to hear previous matching result\",\n })}\n />\n <wm-button\n button-type=\"icononly\"\n icon=\"f045\"\n tooltip={globalMessages.next}\n tooltip-position=\"bottom\"\n onClick={() => this.changeHighlightedNum(this.highlightedNum + 1)}\n disabled={this.disabled || this.numResults < 2}\n label-for-identical-buttons={intl.formatMessage({\n id: \"search.nextResult\",\n defaultMessage: \"Press to hear next matching result\",\n })}\n />\n </div>\n </div>\n );\n }\n\n renderJumpToLink(): HTMLAnchorElement | null {\n if (this.numResults && this.highlightedId) {\n return (\n <a ref={(el) => (this.linkEl = el as HTMLAnchorElement)} href={`#${this.highlightedId}`} class=\"sr-only\">\n {intl.formatMessage({\n id: \"search.jumpToResult\",\n defaultMessage: \"Jump to search result in list\",\n })}\n </a>\n );\n } else {\n return null;\n }\n }\n /**\n * End search and find render helpers\n */\n\n render() {\n return (\n <Host>\n <div\n id=\"wm-search-wrapper\"\n class={`wm-search-wrapper ${this.searchType}`}\n ref={(el) => (this.wrapperEl = el as HTMLDivElement)}\n >\n <input\n disabled={this.disabled}\n id=\"wm-search-input\"\n placeholder={this.placeholder}\n aria-label={`${this.label ? this.label + \". \" : \"\"}${intl.formatMessage({\n id: \"search.typeToFilterResults\",\n defaultMessage: \"Type to filter the results\",\n })}`}\n onInput={(ev: Event) => this.updateValue((ev.target as HTMLInputElement).value)}\n onFocus={() => this.addFocusStyle()}\n onBlur={() => this.handleBlur()}\n aria-autocomplete=\"none\"\n autocomplete=\"off\"\n value={this.value}\n />\n <span class=\"mdi search-icon\">{String.fromCodePoint(parseInt(`0xf349`))}</span>\n {this.searchType === \"find\" && this.renderResultsAndBrowseButtons()}\n <div\n id=\"wm-search-live\"\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n ref={(el) => (this.resultsLiveRegion = el as HTMLElement)}\n >\n {this.announcement}\n </div>\n </div>\n {this.searchType === \"find\" && this.renderJumpToLink()}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-snackbar.entry.cjs.js","mappings":"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","names":["generateId","h","globalMessages","showTooltip","hideTooltip"],"sources":["./src/components/wm-snackbar/wm-snackbar.scss?tag=wm-snackbar&encapsulation=shadow","./src/components/wm-snackbar/wm-snackbar.tsx"],"sourcesContent":[":host,\nwm-snackbar {\n * {\n box-sizing: border-box;\n margin: unset; //Edge\n }\n\n .wm-snackbars {\n position: fixed;\n bottom: rem-calc(0);\n left: rem-calc(20);\n right: rem-calc(20);\n padding: rem-calc(4 10 30);\n z-index: 2001;\n max-width: rem-calc(568);\n max-height: rem-calc(280);\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n\n &.empty {\n @include transition(all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1));\n padding-top: 0;\n padding-bottom: 0;\n }\n\n .wm-snack-wrapper {\n width: 100%;\n height: 100%;\n\n &:not(:last-child) {\n margin-bottom: rem-calc(20);\n }\n\n .wm-snackbar {\n @include shadow8;\n @include displayFlex;\n @include alignItems(center);\n @include transition(all 0.25s 0ms cubic-bezier(0.4, 0, 1, 1));\n font-size: rem-calc(14);\n color: #fff;\n padding: rem-calc(15 30);\n background: #4a4a4a;\n opacity: 0;\n left: 0;\n position: relative;\n font-family: inherit;\n\n .link {\n letter-spacing: 0;\n text-transform: none;\n font-size: rem-calc(14);\n border: none;\n background: transparent;\n padding-left: 0;\n padding-right: 0;\n height: auto;\n border-radius: 0;\n line-height: 1;\n color: $snackbar-link-color;\n margin: rem-calc(0 50 0 10);\n text-decoration: none;\n font-weight: 600;\n cursor: pointer;\n\n &.new-window::after {\n @include mdi-icon;\n display: inline;\n content: \"\\f137\";\n margin-left: rem-calc(4);\n }\n\n &:hover {\n text-decoration: underline;\n }\n\n &:focus {\n outline: none;\n border: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n outline: none;\n }\n }\n\n &:not(:last-child) {\n margin-bottom: rem-calc(20);\n }\n\n &.active:not(button) {\n opacity: 1;\n }\n\n .wm-snackbarmsg {\n @include displayFlex;\n @include justifyContent(space-between);\n @include alignItems(center);\n // font-size: rem-calc(14);\n width: 100%;\n position: relative;\n padding: 0;\n\n .msgtext {\n width: 100%;\n }\n\n .closesnack {\n @include box-shadow(none);\n @include border-radius(50%);\n background-color: #3b3b3b;\n color: #ffffff;\n cursor: pointer;\n border: none;\n font-size: rem-calc(16);\n padding: 0;\n height: auto;\n line-height: 1;\n min-width: rem-calc(44);\n min-height: rem-calc(44);\n text-align: center;\n letter-spacing: normal;\n\n @media screen and (min-width: rem-calc(768)) {\n min-width: rem-calc(30);\n min-height: rem-calc(30);\n }\n\n &:before {\n @include mdi-icon;\n content: \"\\f156\";\n }\n\n &:hover {\n background-color: #fff;\n color: $snackbar-color;\n }\n\n &:focus {\n outline: none;\n }\n\n &::-moz-focus-inner {\n border: 0;\n outline: none;\n }\n\n &:active {\n @include scale($xVal: 0.9, $yVal: 0.9);\n }\n }\n }\n\n .sr-only {\n @include srOnly;\n top: 0;\n left: 0;\n }\n }\n }\n }\n .sr-only {\n @include srOnly;\n top: 0;\n left: 0;\n }\n}\n.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .closesnack:focus:not(:active) {\n @extend %focus-on-dark;\n\n > .tooltip {\n clip: auto;\n width: auto;\n height: auto;\n opacity: 1;\n transition: opacity 500ms 500ms;\n padding: rem-calc(6);\n top: rem-calc(44);\n left: rem-calc(44);\n white-space: nowrap;\n transform: translateX(-50%);\n @media screen and (min-width: rem-calc(768)) {\n top: rem-calc(33);\n left: auto;\n }\n }\n}\n\n.user-is-tabbing .wm-snack-wrapper .wm-snackbar .wm-snackbarmsg .link:focus:not(:active) {\n outline: none;\n background: linear-gradient(90deg, $snackbar-link-color 66%, transparent 0) repeat-x;\n background-size: rem-calc(6px 3px);\n background-position: 0 1em;\n border-radius: 0;\n line-height: normal;\n}\n","import { h, Component, Element, Prop, Event, EventEmitter, Watch, Listen } from \"@stencil/core\";\nimport { generateId, hideTooltip, showTooltip } from \"../../global/functions\";\nimport { Notification } from \"../../global/interfaces\";\nimport { globalMessages } from \"../../global/intl\";\n@Component({\n tag: \"wm-snackbar\",\n styleUrl: \"wm-snackbar.scss\",\n shadow: true,\n})\nexport class Snackbar {\n @Element() el!: HTMLElement;\n //Prop receives notifications as JSON string, which is later parsed into an array of objects.\n @Prop({ mutable: true, reflect: true }) notifications: string = \"[]\";\n\n private parsedNotifications: Array<Notification> = []; //Holds the parsed array\n private uid!: string;\n private focusOnDismiss!: HTMLElement;\n private isTabbing: boolean = false; //For screenreader purposes, to ensure link receives focus even after screenreader interprets \"enter\" as a \"click\"\n private timers: Array<number> = [];\n private newNotification: boolean = false;\n\n @Event() wmSnackbarSnackFinished!: EventEmitter<Object>;\n @Event() userFinishedSnack!: EventEmitter<Object>; // deprecated in favor of wmSnackbarSnackFinished\n @Event() wmSnackbarActionTriggered!: EventEmitter<Object>;\n @Event() userTriggeredAction!: EventEmitter<Object>; // deprecated in favor of wmSnackbarActionTriggered\n\n @Watch(\"notifications\")\n updateSnacks(newValue: string) {\n const parsedData = JSON.parse(newValue);\n const length = parsedData.length;\n const prevNotificationsLength = this.parsedNotifications.length;\n this.parsedNotifications = [];\n\n //Parse notifications received as props and store a reference to them\n for (let i = 0; i < length; i++) {\n let newNotification: any = {\n id: parsedData[i].id.toString(),\n message: parsedData[i].message.toString(),\n link: parsedData[i].link.toString(),\n newWindow: !!parsedData[i].newWindow,\n };\n this.parsedNotifications = [...this.parsedNotifications, newNotification];\n }\n\n //If a new notification was added, set a timer and store a reference to the current active element so that if focus must move to the notification, it can return the user where they were once they dismiss the notification.\n if (prevNotificationsLength < this.parsedNotifications.length) {\n const newTimer = window.setTimeout(() => this.snackExpired(), 20000);\n this.timers = [newTimer, ...this.timers];\n this.storeElToFocusOnDismiss();\n this.newNotification = true;\n } else {\n this.newNotification = false;\n }\n }\n\n componentWillLoad() {\n this.uid = this.el.id ? this.el.id : generateId();\n }\n\n //A change in the notificaiton prop will trigger the update function. The update's only role is to determine how focus should be managed when a notification is added.\n componentDidUpdate() {\n //If the user is tabbing and there's a new notification, focus the link and disable timer.\n this.isTabbing && this.newNotification && this.focusLinkAndDisableTimer();\n this.newNotification = false;\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n focusLinkAndDisableTimer() {\n //If the new notification has a link, focus the link and clear the timeout. This is for accessibility purposes, for keyboard/screenreader users.\n const latestNotification = this.parsedNotifications[0];\n\n if (latestNotification.link) {\n let link = this.el.shadowRoot!.querySelector(`#action-${latestNotification.id}`) as HTMLAnchorElement;\n link.focus();\n this.stopTimer(latestNotification);\n }\n }\n\n storeElToFocusOnDismiss() {\n let triggeringButton = document.activeElement! as HTMLElement;\n while (triggeringButton && triggeringButton.shadowRoot) {\n triggeringButton = triggeringButton.shadowRoot.activeElement as HTMLButtonElement;\n }\n this.focusOnDismiss = triggeringButton;\n }\n\n snackDismissed(notification: Notification) {\n this.endSnack(notification);\n //Focus should only be returned if it was moved in the first place, i.e., there was a link and the user was tabbing. Otherwise, for a mouse user, the user's focus would jump back to the triggering element.\n notification.link && this.isTabbing && this.focusOnDismiss.focus();\n }\n\n //Remove snack from notification list once timer runs out\n snackExpired() {\n const notification = this.parsedNotifications[this.parsedNotifications.length - 1];\n this.endSnack(notification);\n }\n\n endSnack(notification: Notification) {\n //App listens for userFinishedSnack event and deletes the emitted notification.\n this.stopTimer(notification);\n this.wmSnackbarSnackFinished.emit({\n id: notification.id,\n message: notification.message,\n link: notification.link,\n newWindow: notification.newWindow,\n });\n // deprecated\n this.userFinishedSnack.emit({\n id: notification.id,\n message: notification.message,\n link: notification.link,\n });\n }\n\n snackLinkClicked(notification: Notification) {\n //App listens for userTriggeredAction event, deletes emitted notification, and takes over focus.\n this.stopTimer(notification);\n this.wmSnackbarActionTriggered.emit({\n id: notification.id,\n message: notification.message,\n link: notification.link,\n newWindow: notification.newWindow,\n });\n // deprecated\n this.userTriggeredAction.emit({\n id: notification.id,\n message: notification.message,\n link: notification.link,\n });\n }\n\n //Delete the timer corresponding to the dismissed notification\n stopTimer(notification: Notification) {\n this.parsedNotifications.forEach((notif, index) => {\n if (notif.id === notification.id) {\n clearTimeout(this.timers[index]);\n this.timers = this.timers.filter((timer, ind) => {\n if (ind !== index) {\n return timer;\n }\n });\n }\n });\n }\n\n renderSnackbars() {\n return this.parsedNotifications.map((notification) => (\n <div class=\"wm-snack-wrapper\">\n <div id={`snack-${this.uid}`} class=\"wm-snackbar active neutral\">\n <div\n class=\"sr-only\"\n tabindex={notification.link ? 0 : -1}\n onFocus={() => notification.link && this.snackDismissed(notification)}\n />\n\n <div class=\"wm-snackbarmsg\">\n <div class=\"msgtext\">\n <span>{notification.message}</span>\n {notification.link && (\n <a\n id={`action-${notification.id}`}\n class={`link ${notification.newWindow ? \"new-window\" : \"\"}`}\n aria-label={`Click to ${notification.link}...${\n notification.newWindow ? \" \" + globalMessages.newWindow : \"\"\n }`}\n tabindex={0}\n onClick={() => {\n this.snackLinkClicked(notification);\n }}\n onKeyDown={(ev: KeyboardEvent) => ev.key === \"Enter\" && this.snackLinkClicked(notification)}\n >\n <span aria-hidden=\"true\">{notification.link}</span>\n </a>\n )}\n </div>\n <button\n id={`close-button-${notification.id}`}\n aria-label=\"Close this notification\"\n class=\"closesnack\"\n tabindex={notification.link ? 0 : -1}\n onClick={() => this.snackDismissed(notification)}\n onMouseEnter={(ev) => showTooltip(\"bottom\", ev.target as HTMLElement, globalMessages.close)}\n onMouseLeave={() => hideTooltip()}\n onFocus={(ev) => this.isTabbing && showTooltip(\"bottom\", ev.target as HTMLElement, globalMessages.close)}\n onBlur={() => hideTooltip()}\n ></button>\n </div>\n <div\n class=\"sr-only\"\n tabindex={notification.link ? 0 : -1}\n onFocus={() => notification.link && this.snackDismissed(notification)}\n />\n </div>\n </div>\n ));\n }\n\n renderLiveRegion() {\n const latestNotification = this.parsedNotifications[0];\n const link = this.isTabbing ? \"\" : latestNotification.link;\n const srAnnouncement = `${latestNotification.message} ${link}`;\n\n const region = this.el.shadowRoot!.querySelector(`#wm-live-region-${this.uid}`) as HTMLElement;\n\n if (region) {\n region.innerHTML = \"\";\n const wrapper = document.createElement(\"span\");\n wrapper.innerHTML = srAnnouncement;\n region.appendChild(wrapper);\n }\n }\n\n render() {\n this.newNotification && this.renderLiveRegion();\n const snackbars = this.renderSnackbars();\n const wrappingClass = this.parsedNotifications.length === 0 ? \"empty\" : \"\";\n\n return (\n <div class={`wm-snackbars ${wrappingClass} ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}>\n <div class=\"sr-only\" aria-live=\"polite\" aria-atomic=\"false\" id={`wm-live-region-${this.uid}`}></div>\n {snackbars}\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-tab-item.wm-tab-list.wm-tab-panel.entry.cjs.js","mappings":"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","names":["h","Host","debounce","forceUpdate","generateId"],"sources":["./src/components/wm-tabs/wm-tab-item/wm-tab-item.scss?tag=wm-tab-item&encapsulation=shadow","./src/components/wm-tabs/wm-tab-item/wm-tab-item.tsx","./src/components/wm-tabs/wm-tab-list/wm-tab-list.scss?tag=wm-tab-list&encapsulation=shadow","./src/components/wm-tabs/wm-tab-list/wm-tab-list.tsx","./src/components/wm-tabs/wm-tab-panel/wm-tab-panel.scss?tag=wm-tab-panel","./src/components/wm-tabs/wm-tab-panel/wm-tab-panel.tsx"],"sourcesContent":[":host {\n * {\n box-sizing: border-box;\n }\n font-family: inherit;\n display: inline-block;\n\n .tab-item {\n list-style-type: none;\n height: 100%;\n display: inline-block;\n\n .tab {\n @include border-radius(0);\n color: $button-default-text;\n text-decoration: none;\n letter-spacing: 0.7px;\n font-size: rem-calc(14);\n font-weight: 500;\n opacity: 1;\n position: relative;\n text-transform: uppercase;\n display: inline-block;\n height: calc(40 / 12 * 1em);\n line-height: calc(40 / 12 * 1em);\n padding-right: rem-calc(24);\n padding-left: rem-calc(24);\n\n &[aria-selected=\"true\"] {\n font-weight: 700;\n opacity: 1;\n background: linear-gradient(currentColor, currentColor) bottom / 0 0 no-repeat;\n background-size: calc(100% - 50px) 3px;\n\n &.dark {\n color: $button-primary-text;\n }\n }\n\n &,\n &:hover,\n &:active {\n outline: none;\n }\n\n &:focus {\n outline: none;\n }\n\n &.dark:not([aria-selected=\"true\"]) {\n opacity: 0.8;\n color: $button-primary-text;\n }\n\n &.user-is-tabbing:focus:not(:active) {\n outline: none;\n @include focus-style;\n &.dark {\n @include focus-on-dark;\n }\n }\n }\n }\n\n &.hide {\n display: none;\n }\n}\n","import { Component, Element, h, Prop, Event, EventEmitter, Listen, Host } from \"@stencil/core\";\n\n@Component({\n tag: \"wm-tab-item\",\n styleUrl: \"wm-tab-item.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class TabItem {\n @Element() el!: HTMLWmTabItemElement;\n\n private get parentTabList(): HTMLWmTabListElement | null {\n return this.el.parentElement as HTMLWmTabListElement;\n }\n\n /**\n * Indicates whether the tab is currently active\n */\n @Prop() selected: boolean = false;\n\n @Prop() show: boolean = true;\n\n /**\n * The id of the tab, linked to a tab panel.\n */\n @Prop() tabId: string = \"\";\n\n /**\n * Reference to focusable link element\n */\n linkEl?: HTMLAnchorElement;\n\n @Event() wmTabSelected!: EventEmitter<{ tabId: string }>;\n @Event() tabSelected!: EventEmitter<{ tabId: string }>; // deprecated in favor of wmTabSelected\n\n @Event() keydownOnTabItem!: EventEmitter<{\n tabItem: HTMLWmTabItemElement;\n key: string;\n }>;\n\n @Event() tabItemLoaded!: EventEmitter<{ tab: HTMLWmTabItemElement }>;\n\n private tabClicked = (ev: MouseEvent) => {\n ev.preventDefault();\n this.wmTabSelected.emit({ tabId: this.tabId });\n this.tabSelected.emit({ tabId: this.tabId }); // deprecated\n };\n\n private tabPressed = (ev: KeyboardEvent) => {\n const key = ev.key;\n\n if (key === \"Enter\" || key === \" \") {\n ev.preventDefault();\n this.wmTabSelected.emit({ tabId: this.tabId });\n this.tabSelected.emit({ tabId: this.tabId }); // deprecated\n } else if (key.includes(\"Arrow\")) {\n ev.preventDefault();\n this.keydownOnTabItem.emit({ tabItem: this.el, key: ev.key });\n }\n };\n\n @Listen(\"keydown\", { target: \"document\" })\n toggleTabbingOn() {\n this.linkEl && this.linkEl.classList.add(\"user-is-tabbing\");\n }\n\n @Listen(\"click\", { target: \"document\" })\n toggleTabbingOff() {\n this.linkEl && this.linkEl.classList.remove(\"user-is-tabbing\");\n }\n\n componentDidLoad() {\n this.tabItemLoaded.emit();\n }\n\n render() {\n let classes = this.show ? \"\" : \"hide \";\n classes += this.parentTabList && this.parentTabList.customBackground == \"dark\" ? \"dark\" : \"\";\n\n let styles = {};\n const padding = this.parentTabList && this.parentTabList.customPadding;\n if (padding) {\n const bkgSize = parseInt(padding, 10) * 2 || 0;\n const units = padding.split(/([0-9]+)/).pop();\n styles = {\n \"padding-left\": this.parentTabList!.customPadding,\n \"padding-right\": this.parentTabList!.customPadding,\n \"background-size\": `calc(100% - ${bkgSize}${units}) 3px`,\n };\n }\n\n return (\n <Host role=\"presentation\">\n <li class=\"tab-item\" role=\"presentation\">\n <a\n class={`tab ${classes}`}\n style={styles}\n role=\"tab\"\n ref={(el) => (this.linkEl = el as HTMLAnchorElement)}\n onClick={this.tabClicked}\n id={`tab-link-${this.tabId}`}\n onKeyDown={(ev: KeyboardEvent) => this.tabPressed(ev)}\n aria-selected={this.selected ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n <slot></slot>\n </a>\n </li>\n </Host>\n );\n }\n}\n",":host,\nwm-tab-list {\n * {\n box-sizing: border-box;\n }\n\n position: relative;\n white-space: nowrap;\n height: fit-content;\n display: block;\n\n .tabcontainer {\n margin: 0;\n margin-left: -24px;\n width: 100%;\n height: rem-calc(65);\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0;\n\n &.dark {\n background: rgb(53, 59, 72);\n margin: 0;\n }\n }\n\n wm-select {\n padding: rem-calc(6) 0;\n }\n}\n","import { forceUpdate, Component, Prop, Element, h, Watch, Listen, Host, Event, EventEmitter } from \"@stencil/core\";\nimport { debounce } from \"../../../global/functions\";\n\n@Component({\n tag: \"wm-tab-list\",\n styleUrl: \"wm-tab-list.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class TabList {\n @Element() el!: any;\n\n @Prop() customBackground?: \"dark\" | \"\";\n @Prop() customPadding?: string;\n @Prop() selectedTab?: string;\n\n /**\n * Delegates control to the component, which will listen for the tabSelected event, update the display of the tab panels, and update the selected tab on display. When set to false, the app must listen for the event and update the selectedTab attribute. Offers more control for devs, who may want to control when data loads or run other functions when tabs are switched.\n */\n @Prop() controllerEnabled: boolean = false;\n\n /**\n * Set to true when the tab list exceeds the parent width. Component will render the menu layout.\n */\n private get menuLayout(): boolean {\n if (this.listWidth) {\n return this.el.offsetWidth < this.listWidth - 24; // to take into account the negative margin on the ul\n } else {\n return false; // in case listWidth couldn't get computed, we render regular tabs\n }\n }\n\n /**\n * Emitted by wm-select options when tabs have the menu format\n */\n @Event() wmTabSelected!: EventEmitter<{ tabId: string }>;\n @Event() tabSelected!: EventEmitter<{ tabId: string }>; // deprecated in favor of wmTabSelected\n\n private get tabItems(): Array<HTMLWmTabItemElement> {\n return Array.from(this.el.querySelectorAll(\"wm-tab-item\"));\n }\n\n get selectedTabItem(): HTMLWmTabItemElement {\n return this.tabItems.filter((t) => t.selected)[0];\n }\n\n private getLinkEl(tab: HTMLWmTabItemElement): HTMLAnchorElement {\n return tab.shadowRoot!.querySelector(\"a\")!;\n }\n\n private get panels(): Array<HTMLWmTabPanelElement> {\n const allPanels = Array.from(document.querySelectorAll(\"wm-tab-panel\"));\n const tabIds = this.tabItems.map((t) => t.tabId);\n return allPanels.filter((p) => tabIds.includes(p.tabId));\n }\n\n private getPanel(tabId: string) {\n return this.panels.find((p) => p.tabId === tabId);\n }\n\n private listWidth?: number;\n\n private setListWidth() {\n let newCalc = this.tabItems.reduce((sum, tab) => sum + tab.offsetWidth, 0);\n this.listWidth = newCalc && newCalc > 0 ? newCalc : this.listWidth; // the function may return 0. In this case keep the previous value\n }\n\n @Watch(\"selectedTab\")\n setSelected(id: string) {\n this.tabItems.map((tab: HTMLWmTabItemElement) => (tab.selected = tab.tabId === id));\n const singlePanel = this.panels.length === 1 && this.tabItems.length > 1;\n if (singlePanel) {\n /**\n * 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.\n */\n this.setAttributesOnPanel(this.panels[0], this.selectedTabItem);\n this.panels[0].active = true;\n } else {\n this.panels.map((panel: HTMLWmTabPanelElement) => (panel.active = panel.tabId === id));\n }\n }\n\n showItems() {\n this.tabItems.map((t) => (t.show = true));\n }\n\n hideItems() {\n this.tabItems.map((t) => (t.show = false));\n }\n\n componentWillLoad() {\n this.el.focus = () => {\n // in addition to delegatesFocus, we need to highjack the focus method to send focus to the selected tab-item\n this.selectedTabItem && this.selectedTabItem.focus();\n };\n }\n\n componentDidLoad() {\n this.setLayout(); // this require measurements of DOM elements so can't be done before first paint\n const selectedTab = this.selectedTab || this.tabItems[0].tabId;\n this.setSelected(selectedTab);\n }\n\n @Listen(\"tabItemLoaded\")\n tabItemLoaded(ev: CustomEvent) {\n this.setAriaOnPanelAndTab(ev.target as HTMLWmTabItemElement);\n }\n\n setAriaOnPanelAndTab(tab: HTMLWmTabItemElement) {\n const panel = this.getPanel(tab.tabId);\n\n // 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.\n if (!panel) {\n if (this.panels.length === 1) {\n this.setAttributesOnTab(tab, this.panels[0]);\n }\n } else {\n // Otherwise, set attributes on each tab item that loads and its associated panel\n this.setAttributesOnPanel(panel, tab);\n this.setAttributesOnTab(tab, panel);\n }\n }\n\n setAttributesOnTab(tab: HTMLWmTabItemElement, panel: HTMLWmTabPanelElement) {\n const link = this.getLinkEl(tab);\n\n if (link) {\n link.setAttribute(\"aria-controls\", panel.id);\n link.setAttribute(\"href\", `#${panel.id}`);\n }\n }\n\n removeAttributesOnTab(tab: HTMLWmTabItemElement) {\n const link = this.getLinkEl(tab);\n\n if (link) {\n link.removeAttribute(\"aria-controls\");\n link.removeAttribute(\"href\");\n }\n }\n\n setAttributesOnPanel(panel: HTMLWmTabPanelElement, tab: HTMLWmTabItemElement) {\n const link = this.getLinkEl(tab);\n\n if (link) {\n panel.setAttribute(\"aria-labelledby\", link.id);\n panel.setAttribute(\"tab-id\", tab.tabId);\n }\n }\n\n @Listen(\"wmTabSelected\")\n handleTabSelected(ev: CustomEvent) {\n if (this.controllerEnabled) {\n this.setSelected(ev.detail.tabId);\n }\n }\n\n @Listen(\"keydownOnTabItem\")\n handleKeydown(ev: CustomEvent) {\n const key = ev.detail.key;\n const index = this.tabItems.indexOf(ev.detail.tabItem);\n\n if (key === \"ArrowLeft\" || key === \"ArrowRight\") {\n this.handleLeftRightArrow(index, key);\n }\n }\n\n handleLeftRightArrow(index: number, key: string) {\n if (key) {\n index = key === \"ArrowLeft\" ? index - 1 : index + 1;\n }\n\n if (index < 0) {\n index = this.tabItems.length - 1;\n } else if (index === this.tabItems.length) {\n index = 0;\n }\n\n const tabToFocus = this.tabItems[index];\n this.getLinkEl(tabToFocus).focus();\n }\n\n /**\n * Change layout if parent size drops below tab list width\n */\n @Listen(\"resize\", { target: \"window\" })\n setLayout() {\n this.debouncedSetLayout();\n }\n\n debouncedSetLayout = debounce(() => {\n if (!this.listWidth) {\n this.setListWidth();\n }\n forceUpdate(this.el);\n }, 250);\n\n renderMenuOrTabs() {\n if (this.menuLayout) {\n this.hideItems();\n return (\n <wm-select label=\"Tab Selection\" label-position=\"none\">\n {this.renderOptions()}\n </wm-select>\n );\n } else {\n this.showItems();\n let margins = {};\n if (this.customPadding) {\n margins = {\n \"margin-left\": \"-\" + this.customPadding,\n };\n }\n return (\n <ul class={`tabcontainer ${this.customBackground || \"\"}`} style={margins} role=\"tablist\">\n <slot></slot>\n </ul>\n );\n }\n }\n\n renderOptions() {\n return this.tabItems.map((t) => (\n <wm-option\n id={`tab-link-${t.tabId}`}\n selected={t.tabId === this.selectedTab}\n onClick={(ev) => {\n ev.preventDefault();\n this.wmTabSelected.emit({ tabId: t.tabId });\n this.tabSelected.emit({ tabId: t.tabId }); // deprecated\n }}\n >\n {t.textContent}\n </wm-option>\n ));\n }\n\n render() {\n return <Host class={this.menuLayout ? \"menu\" : \"\"}>{this.renderMenuOrTabs()}</Host>;\n }\n}\n","wm-tab-panel {\n visibility: inherit;\n\n &.tab-hidden {\n display: none;\n }\n\n &:active {\n outline: none;\n }\n\n &:focus {\n outline: none;\n }\n\n &.user-is-tabbing:focus {\n outline: -webkit-focus-ring-color auto 5px;\n }\n}\n","import { Component, Element, Prop, Host, h, Event, Listen, EventEmitter } from \"@stencil/core\";\nimport { generateId } from \"../../../global/functions\";\n\n@Component({\n tag: \"wm-tab-panel\",\n styleUrl: \"wm-tab-panel.scss\",\n})\nexport class TabPanel {\n @Element() el!: HTMLWmTabPanelElement;\n\n /**\n * Indicates whether the panel should be displayed or not.\n */\n @Prop({ mutable: true }) active: boolean = false;\n\n /**\n * The id of the panel, linked to a tabItem in the tablist.\n */\n @Prop({ mutable: true }) tabId: string = \"\";\n\n @Event() tabPanelLoaded!: EventEmitter<{ tabId: string }>;\n\n componentWillLoad() {\n !this.el.id && this.el.setAttribute(\"id\", generateId());\n }\n\n componentDidLoad() {\n this.tabPanelLoaded.emit({ tabId: this.tabId });\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n toggleTabbingOn() {\n this.el.classList.add(\"user-is-tabbing\");\n }\n\n @Listen(\"click\", { target: \"document\" })\n toggleTabbingOff() {\n this.el.classList.remove(\"user-is-tabbing\");\n }\n\n render() {\n return <Host role=\"tabpanel\" class={{ \"tab-hidden\": !this.active }}></Host>;\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-tag-input-row.entry.cjs.js","mappings":";;;;;;MAKa,WAAW;;;;;;;;kBAOI,KAAK;;EAI/B,kBAAkB;IAChB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;GAClC;;;;;;","names":[],"sources":["./src/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.tsx"],"sourcesContent":["import { Component, Element, Event, EventEmitter, Prop } from \"@stencil/core\";\n\n@Component({\n tag: \"wm-tag-input-row\",\n})\nexport class TagInputRow {\n @Element() el!: HTMLWmTagInputRowElement;\n\n @Prop({ attribute: \"col1\" }) col1?: string;\n @Prop({ attribute: \"col2\" }) col2?: string;\n @Prop({ attribute: \"col3\" }) col3?: string;\n @Prop({ attribute: \"col4\" }) col4?: string;\n @Prop() locked: boolean = false;\n\n @Event() wmTagInputRowUpdated!: EventEmitter<void>;\n\n componentDidUpdate() {\n this.wmTagInputRowUpdated.emit();\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-tag-input.entry.cjs.js","mappings":"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","names":["generateId","debounce","forceUpdate","csvToArray","intl","safeParseJSON","measureText","hideTooltip","showTooltip","shouldOpenUp","globalMessages","h","Host"],"sources":["./src/components/wm-tag-input/wm-tag-input.scss?tag=wm-tag-input&encapsulation=shadow","./src/components/wm-tag-input/wm-tag-input.tsx"],"sourcesContent":[":host,\nwm-tag-input {\n font-family: inherit;\n width: 100%;\n display: block;\n\n * {\n box-sizing: border-box;\n font-size: 14px;\n }\n\n @include label;\n\n .wrapper {\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .field-wrapper {\n position: relative;\n width: 100%;\n border: 1px solid $input-border-color;\n @include border-radius(3px);\n\n &.focused {\n @include field-focus;\n }\n\n &.invalid {\n @include invalidBorder;\n }\n }\n\n .character-count {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: rem-calc(80);\n background-color: rgba(74, 74, 74, 0.05);\n font-size: rem-calc(14);\n font-weight: 500;\n align-self: stretch;\n }\n\n .tags-and-input-wrapper {\n position: relative;\n width: 100%;\n padding: rem-calc(8) rem-calc(4) rem-calc(8) 0;\n margin-bottom: rem-calc(-8);\n }\n\n .upper-row {\n width: 100%;\n display: flex;\n flex: 1;\n justify-content: space-between;\n &:before {\n align-self: flex-start;\n @include mdi-icon;\n content: \"\\f349\"; // magnifying glass\n color: $tag-input-search-icon-color;\n padding: rem-calc(12) rem-calc(8) rem-calc(12) rem-calc(12);\n }\n }\n\n .lower-row {\n width: 100%;\n min-height: rem-calc(30);\n }\n\n #max-tags {\n display: flex;\n align-items: center;\n min-height: rem-calc(30);\n background-color: $tag-input-max-tags-bg;\n padding: rem-calc(8) rem-calc(16);\n color: $tag-input-max-tags-color;\n font-size: rem-calc(14);\n border-top: 1px solid $tag-input-max-tags-border;\n border-radius: 0 0 3px 3px;\n }\n\n .tag-area {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n\n &:focus {\n outline: none;\n }\n\n [role=\"option\"] {\n display: inline-flex;\n align-items: center;\n height: rem-calc(28);\n list-style: none;\n color: $charcoal;\n background-color: rgba(3, 0, 0, 0.1);\n padding: rem-calc(8) rem-calc(10);\n margin-bottom: rem-calc(8);\n margin-right: rem-calc(4);\n margin-left: rem-calc(4);\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n white-space: pre;\n\n &.highlight {\n animation: fadeIn 1s;\n @keyframes fadeIn {\n 0% {\n background-color: rgba(3, 0, 0, 0.1);\n }\n 50% {\n background-color: #c8dfcc;\n }\n\n 100% {\n background-color: rgba(3, 0, 0, 0.1);\n }\n }\n }\n\n &.focused {\n background-color: #d1d1d1;\n }\n\n &.locked {\n background-color: $tag-input-locked-tag-bg;\n color: white;\n }\n\n .icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: rem-calc(20);\n width: rem-calc(20);\n padding: 0;\n margin-left: rem-calc(8);\n &.remove-btn {\n border: 1px solid $periwinkle;\n color: $periwinkle;\n border-radius: 50%;\n cursor: pointer;\n transition: background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1);\n\n &:hover {\n color: white;\n background-color: $periwinkle;\n }\n\n &:before {\n @include mdi-icon;\n content: \"\\f156\";\n }\n }\n\n &.lock {\n color: white;\n &:before {\n @include mdi-icon;\n content: \"\\f341\";\n }\n }\n }\n }\n }\n\n input {\n font-family: inherit;\n border: none;\n height: rem-calc(28);\n padding: 0;\n margin-bottom: rem-calc(8);\n margin-right: rem-calc(4);\n padding-left: rem-calc(8);\n right: 0px;\n\n &.hidden {\n display: none;\n }\n &:focus {\n outline: none;\n }\n }\n\n .dropdown-wrapper {\n margin: 0;\n padding: 0;\n @include box-shadow(0 4px 15px 0 rgba(0, 0, 0, 0.2));\n @include transition(transform 0.25s ease);\n @include scale($xVal: 1, $yVal: 0);\n @include transformOrigin(center top);\n @include border-radius(3px);\n position: absolute;\n top: calc(100% + 2px);\n right: 0;\n background: #fff;\n z-index: 100;\n width: 100%;\n font-size: rem-calc(14);\n\n .dropdown {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n max-height: rem-calc(200);\n margin: 0;\n padding: 0;\n }\n\n &.open {\n @include scale($xVal: 1, $yVal: 1);\n }\n\n &.upwards {\n top: unset;\n bottom: calc(100% + 2px);\n @include transformOrigin(center bottom);\n }\n\n li,\n div {\n display: flex;\n align-items: center;\n padding: 0 rem-calc(16);\n background: #fff;\n list-style: none;\n height: rem-calc(43);\n white-space: pre;\n\n &[role=\"option\"],\n &.add-new-btn {\n cursor: pointer;\n color: $periwinkle;\n font-weight: bold;\n width: 100%;\n border: none;\n\n &[aria-selected=\"true\"] {\n color: $gray;\n font-style: italic;\n font-weight: normal;\n cursor: unset;\n }\n &:hover:not([aria-selected=\"true\"]),\n &.focused {\n outline: none;\n background: $background;\n }\n }\n\n &.help-text {\n color: $charcoal;\n height: auto;\n min-height: rem-calc(43);\n padding-top: rem-calc(4);\n padding-bottom: rem-calc(4);\n white-space: normal;\n }\n\n &:not(:last-child) {\n border-bottom: 2px solid rgba(#2e1b46, 0.05);\n }\n }\n }\n\n .info-text {\n font-style: italic;\n margin-top: rem-calc(4);\n }\n\n .table-wrapper {\n min-height: rem-calc(160);\n overflow: auto;\n margin-top: rem-calc(24);\n\n #table {\n width: 100%;\n border-spacing: 0px;\n &.fixed-widths {\n table-layout: fixed;\n }\n\n .headers {\n height: rem-calc(40);\n background-color: #eeedf4;\n th {\n text-align: left;\n font-size: rem-calc(12);\n font-weight: 700;\n text-transform: uppercase;\n padding: 0 rem-calc(24);\n }\n }\n }\n\n tr {\n // the following colors are in a css-specificity order, do not move\n &:nth-child(even) {\n background-color: $tag-input-row-zebra-bg;\n }\n\n &.selected {\n background-color: $tag-input-row-selected-bg;\n // box-shadow to add border without affecting surrounding cell borders\n box-shadow: inset 0 0 0 1px $tag-input-row-selected-border;\n font-weight: 500;\n }\n\n &.focused:not(.locked),\n &:hover:not(.locked) {\n background-color: $tag-input-row-focused;\n box-shadow: none;\n }\n\n &.locked {\n td {\n cursor: auto;\n }\n\n td:first-child {\n .cell-content-wrapper:before {\n @include mdi-icon;\n content: \"\\f33e\";\n margin-right: rem-calc(8);\n color: $tag-input-row-lock-color;\n }\n }\n }\n }\n\n td {\n height: rem-calc(60);\n vertical-align: middle;\n padding: 0 rem-calc(24);\n cursor: pointer;\n &.focused {\n // from wm-navigation\n box-shadow: inset 0 2px 2px 0 rgb(244 243 246 / 20%), inset 0 2px 2px 0 rgb(0 0 0 / 10%),\n inset 0 0 4px 3px #61279e;\n }\n .cell-content-wrapper.trunc {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .description {\n display: none;\n }\n }\n }\n\n .no-results {\n padding: rem-calc(20) rem-calc(24);\n }\n\n .sr-only {\n @include srOnly;\n }\n\n #error {\n @include errorMessage;\n }\n}\n","import {\n h,\n Component,\n Host,\n Element,\n Prop,\n Listen,\n State,\n Event,\n EventEmitter,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n csvToArray,\n debounce,\n generateId,\n hideTooltip,\n intl,\n measureText,\n safeParseJSON,\n shouldOpenUp,\n showTooltip,\n} from \"../../global/functions\";\nimport { globalMessages } from \"../../global/intl\";\n\ninterface TablePosition {\n row: number;\n column: number;\n}\n\ninterface MessageConfig {\n addNewHelpText: string;\n selectionHelpText: string;\n tagAreaInstructions: string;\n maxTagsReached: string;\n tagsAdded: string;\n}\n\n@Component({\n tag: \"wm-tag-input\",\n styleUrl: \"wm-tag-input.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class TagInput {\n @Element() el!: HTMLWmTagInputElement;\n private inputEl!: HTMLInputElement;\n private dropdownEl!: HTMLDivElement;\n private tagAreaEl!: HTMLUListElement;\n private liveRegionEl!: HTMLDivElement;\n private fieldWrapperEl!: HTMLDivElement;\n\n @Prop() label!: string;\n @Prop() labelPosition: \"top\" | \"left\" | \"none\" = \"top\";\n @Prop({ mutable: true }) options: string = \"\"; // csv\n @Prop({ reflect: true, mutable: true }) selectedTags: string = \"\"; // csv\n @Prop() info?: string;\n @Prop() errorMessage?: string;\n @Prop() addNew: boolean = true;\n @Prop({ mutable: true }) placeholder?: string;\n @Prop() requiredField: boolean = false;\n @Prop() characterLimit: number = 50;\n @Prop() maxTags?: number;\n @Prop() tagInputType: \"dropdown\" | \"table\" = \"dropdown\";\n @Prop() colHeaders!: string;\n @Prop() colWidths?: string;\n @Prop() colWrap?: string;\n @Prop() messageConfig: string = \"\"; // JSON\n @Event() wmTagInputChanged!: EventEmitter<{\n value: string[] | HTMLWmTagInputRowElement[];\n tagChanged: string | HTMLWmTagInputRowElement;\n }>;\n\n private uid: string = this.el.id ? this.el.id : generateId();\n private openUp: boolean = false;\n private tooltipVisible: boolean = false;\n @State() focusedListItem!: HTMLLIElement | null;\n @State() focusedTag: HTMLLIElement | null = null;\n @State() tablePosition: TablePosition = { row: 0, column: 1 };\n @State() isExpanded: boolean = false;\n @State() tagsList: string[] = csvToArray(this.selectedTags);\n @State() optionsList: string[] = csvToArray(this.options);\n @State() charCount: number = 0;\n @State() liveRegionMessage = \"\";\n\n get focusedElement(): Element | null {\n return this.el.shadowRoot!.activeElement;\n }\n get listItemEls(): HTMLLIElement[] {\n return Array.from(this.dropdownEl.querySelectorAll(\"li\"));\n }\n get tagEls(): HTMLLIElement[] {\n return this.tagAreaEl ? Array.from(this.tagAreaEl.querySelectorAll(\".tag\")) : [];\n }\n get nonLockedTagEls(): HTMLLIElement[] {\n return this.tagEls.filter((tag) => !tag.classList.contains(\"locked\"));\n }\n get optionEls(): HTMLLIElement[] {\n return Array.from(this.dropdownEl.querySelectorAll(\".option\"));\n }\n get wmRowEls(): HTMLWmTagInputRowElement[] {\n return Array.from(this.el.querySelectorAll(\"wm-tag-input-row\"));\n }\n get localRowEls(): HTMLElement[] {\n return Array.from(this.el.shadowRoot!.querySelectorAll(\"tr\"));\n }\n get filteredRows(): HTMLWmTagInputRowElement[] {\n return this.wmRowEls.filter((row) => {\n const colValues = [row.col1, row.col2, row.col3, row.col4].join(\"\").toLowerCase();\n return this.inputEl && this.inputEl.value ? colValues.includes(this.inputEl.value.toLowerCase()) : true;\n });\n }\n get nonLockedTagsList() {\n let list: string[] = [];\n\n if (this.tagInputType === \"table\") {\n this.tagsList.forEach((id) => {\n const correspondingRowEl = this.wmRowEls.filter((row) => id === row.id)[0];\n if (!correspondingRowEl.locked) {\n list.push(id);\n }\n });\n } else if (this.tagInputType === \"dropdown\") {\n list = this.tagsList;\n }\n\n return list;\n }\n get tagLimitReached(): boolean {\n return !!(this.maxTags && this.tagsList.length >= this.maxTags);\n }\n\n get noResultsMessage() {\n return intl.formatMessage({\n id: \"tagInput.noResults\",\n defaultMessage: \"No results match your search.\",\n description: \"Message displayed when a user's search returns empty.\",\n });\n }\n\n get componentMessages(): MessageConfig {\n const addNewHelpText = intl.formatMessage({\n id: \"tagInput.addNewHelpText\",\n defaultMessage: \"Press the Enter or Comma key to add a new tag.\",\n description: \"Help text appearing in a dropdown. Use imperative\",\n });\n const selectionHelpText = intl.formatMessage({\n id: \"tagInput.selectionHelpText\",\n defaultMessage: \"Search and select a tag.\",\n description: \"Help text appearing in a dropdown. Use imperative\",\n });\n const maxTagsReachedMessage = intl.formatMessage({\n id: \"tagInput.maxTagsReached\",\n defaultMessage: \"No more tags can be added because the limit has been reached.\",\n });\n const tagAreaInstructions = intl.formatMessage({\n id: \"tagInput.tagAreaInstructions\",\n defaultMessage: \"tag selection. Press Backspace or Delete to remove a tag.\",\n });\n const tagsAddedMessage = intl.formatMessage({\n id: \"tagInput.tagsAdded\",\n defaultMessage: \"Tags added\",\n description: \"For the user to understand how close they are to the tag limit, followed by x/y count\",\n });\n\n const defaultConfig: MessageConfig = {\n addNewHelpText: addNewHelpText,\n selectionHelpText: selectionHelpText,\n maxTagsReached: maxTagsReachedMessage,\n tagAreaInstructions: tagAreaInstructions,\n tagsAdded: tagsAddedMessage,\n };\n\n const userProvidedConfig = safeParseJSON(this.messageConfig);\n\n return userProvidedConfig ? { ...defaultConfig, ...userProvidedConfig } : defaultConfig;\n }\n\n get inputMinimumWidth(): number {\n // 150px is the minimum width of the input field, or the length of the placeholder text\n const inputElStyles = getComputedStyle(this.inputEl);\n const tagElStyles = getComputedStyle(this.tagEls[this.tagEls.length - 1]);\n const inputElBuffer = [\n inputElStyles.paddingLeft,\n inputElStyles.paddingRight,\n inputElStyles.marginLeft,\n inputElStyles.marginRight,\n tagElStyles.marginRight,\n ].reduce((prev, curr) => prev + parseInt(curr.replace(\"px\", \"\")), 0);\n\n const minimumWidth = Math.max(150, measureText(this.inputEl, this.placeholder!).width + inputElBuffer);\n return minimumWidth;\n }\n\n generateTagAddedMessage(tag: string): string {\n return intl.formatMessage(\n {\n id: \"tagInput.tagAdded\",\n defaultMessage: \"{tagName} added.\",\n description: \"A confirmation for adding a tag.\",\n },\n { tagName: tag }\n );\n }\n\n generateTagAlreadyAddedMessage(tag: string): string {\n return intl.formatMessage(\n {\n id: \"tagInput.tagAlreadyAdded\",\n defaultMessage: \"{tagName} has already been added.\",\n description: \"An alert for adding a tag that is already present.\",\n },\n { tagName: tag }\n );\n }\n\n componentWillLoad() {\n if (!this.placeholder) {\n this.placeholder = this.createPlaceholderDefault(this.addNew, !!this.options);\n }\n if (!this.label) {\n console.error(\"wm-tag-input must have a label property\");\n }\n\n this.consolidateSelectedTags();\n\n this.el.focus = () => {\n const firstFocusableTag = this.nonLockedTagEls[0];\n if (firstFocusableTag) {\n this.tagAreaEl.focus();\n this.focusTag(firstFocusableTag);\n } else {\n this.inputEl.focus();\n }\n };\n\n // on resize of component, trigger componentDidRender -> positionInput\n const resizeObserver = new ResizeObserver(() => this.debouncedUpdate());\n resizeObserver.observe(this.el);\n }\n\n componentDidLoad() {\n // prevent highlighting of pre-selected tags\n this.tagEls.forEach((el) => el.classList.remove(\"highlight\"));\n }\n\n componentDidRender() {\n this.positionInput();\n }\n\n consolidateSelectedTags() {\n this.tagsList.forEach((tag) => {\n if (!this.includesCaseInsensitive(this.optionsList, tag)) {\n this.options += `${this.options.length > 0 ? \",\" : \"\"}${tag}`;\n }\n });\n\n this.optionsList = csvToArray(this.options);\n }\n\n createPlaceholderDefault(addNew: boolean, hasOptions: boolean): string {\n const addAndSearchPlaceholder = intl.formatMessage({\n id: \"tagInput.placeholderAddAndSearch\",\n defaultMessage: \"Add or search for a tag\",\n description: \"Placeholder text. Use imperative\",\n });\n const searchPlaceholder = intl.formatMessage({\n id: \"tagInput.placeholderSearch\",\n defaultMessage: \"Search and select a tag\",\n description: \"Placeholder text. Use imperative\",\n });\n const addPlaceholder = intl.formatMessage({\n id: \"tagInput.placeholderAdd\",\n defaultMessage: \"Add a new tag\",\n description: \"Placeholder text. Use imperative\",\n });\n\n let placeholder = \"\";\n if (addNew && hasOptions) {\n placeholder = addAndSearchPlaceholder;\n } else if (!addNew && hasOptions) {\n placeholder = searchPlaceholder;\n } else if (addNew) {\n placeholder = addPlaceholder;\n }\n return placeholder;\n }\n\n @Watch(\"tagsList\")\n reflectSelectedTags(newValue: string[], oldValue: string[]) {\n const isAddition = newValue.length > oldValue.length;\n let changedTag: string | HTMLWmTagInputRowElement = \"\";\n let selectedTags: string[] | HTMLWmTagInputRowElement[] = this.tagsList;\n\n if (isAddition) {\n changedTag = newValue.filter((val) => !oldValue.includes(val))[0];\n } else {\n changedTag = oldValue.filter((val) => !newValue.includes(val))[0];\n }\n\n // event emitted by type table uses element references instead of strings\n if (this.tagInputType === \"table\") {\n changedTag = this.wmRowEls.filter((row) => row.id === changedTag)[0];\n selectedTags = this.tagsList.map((id) => this.el.querySelector(`#${id}`) as HTMLWmTagInputRowElement);\n }\n\n this.selectedTags = this.listToCSV(this.tagsList);\n let detail = { value: selectedTags, tagChanged: changedTag };\n this.wmTagInputChanged.emit(detail);\n }\n\n @Watch(\"errorMessage\")\n handleErrorMessageChange() {\n if (this.errorMessage) {\n this.announce(this.errorMessage);\n }\n }\n\n @Listen(\"wmTagInputRowUpdated\")\n handleRowUpdate() {\n forceUpdate(this.el);\n }\n\n @Listen(\"click\", { target: \"document\" })\n closeIfNotElOrChild(ev: MouseEvent): void {\n const isntElOrChild = ev.target !== this.el && !this.el.shadowRoot!.contains(ev.target as HTMLElement);\n\n if (this.tagInputType === \"dropdown\" && isntElOrChild && this.isExpanded) {\n this.closeDropdown();\n }\n }\n\n // From wm-button\n // we need to listen for scroll events during the capture phase because they do not bubble up\n // there can be layouts where the main content has 100vh and overflows\n // in these cases window will register no scroll events unless we catch on they way down\n @Listen(\"scroll\", { target: \"window\", capture: true })\n dismissTooltip() {\n if (this.tooltipVisible) {\n hideTooltip();\n this.tooltipVisible = false;\n }\n }\n\n debouncedUpdate = debounce(() => forceUpdate(this.el), 30);\n\n handleInputKeyDown(ev: KeyboardEvent) {\n if (/^.$/.test(ev.key) && this.inputEl.value.length >= this.characterLimit) {\n this.announce(this.generateCharacterLimitWarning(this.inputEl.value.length, this.characterLimit));\n }\n\n // prevent keydown triggering on tag area\n ev.stopPropagation();\n switch (ev.key) {\n case \"Enter\":\n case \",\":\n ev.preventDefault();\n this.handleInputEnter();\n break;\n case \"ArrowDown\":\n ev.preventDefault();\n this.handleInputArrowDown();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.handleInputArrowUp();\n break;\n case \"ArrowLeft\":\n ev.preventDefault();\n if (this.tagInputType === \"table\" && this.tablePosition.row) {\n this.moveLeftCell();\n }\n break;\n case \"ArrowRight\":\n ev.preventDefault();\n if (this.tagInputType === \"table\" && this.tablePosition.row) {\n this.moveRightCell();\n }\n break;\n case \"Escape\":\n if (this.tagInputType === \"dropdown\" && this.isExpanded) {\n this.closeDropdown();\n }\n break;\n case \"ArrowLeft\":\n case \"Backspace\":\n this.handleInputBackspace();\n break;\n }\n }\n\n handleInputFocus() {\n if (this.tagInputType === \"dropdown\") {\n this.openDropdown();\n this.clearListItemFocus();\n }\n // force update needed to apply styled state of field-wrapper el\n forceUpdate(this.el);\n }\n\n handleInputChanged(value: string) {\n this.charCount = value.length;\n\n if (this.tagInputType === \"dropdown\") {\n this.clearListItemFocus();\n if (this.charCount >= this.characterLimit - 5) {\n this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));\n }\n if (!this.isExpanded) {\n this.openDropdown();\n }\n } else if (this.tagInputType === \"table\") {\n this.clearCellFocus();\n }\n this.announceExistingOptions();\n }\n\n handleInputEnter() {\n if (this.tagInputType === \"dropdown\") {\n if (this.focusedListItem) {\n this.handleListItemClick(this.focusedListItem);\n } else {\n this.submitInput(this.addNew, this.inputEl.value.trim());\n }\n } else if (this.tagInputType === \"table\" && this.tablePosition.row > 0) {\n this.handleTableRowClick(this.localRowEls[this.tablePosition.row].id);\n }\n }\n\n submitInput(canAddNew: boolean, value: string) {\n const hasNonWhiteSpaceCharacters = value.match(/\\S/);\n if (canAddNew && hasNonWhiteSpaceCharacters) {\n this.addTag(value);\n this.optionsList = this.addOption(value);\n this.resetInput();\n }\n }\n\n handleInputArrowDown() {\n if (this.tagInputType === \"table\") {\n this.moveDownRow();\n } else if (this.tagInputType === \"dropdown\" && this.isExpanded) {\n this.moveDownListItem();\n } else if (this.tagInputType === \"dropdown\") {\n this.openDropdown();\n }\n }\n\n handleInputArrowUp() {\n if (this.tagInputType === \"table\") {\n this.moveUpRow();\n } else if (this.tagInputType === \"dropdown\" && this.isExpanded) {\n this.moveUpListItem();\n } else if (this.tagInputType === \"dropdown\") {\n this.openDropdown();\n }\n }\n\n handleInputBackspace() {\n if (this.inputEl.value === \"\" && this.tagsList.length > 0) {\n // wait for events to finish firing before redirecting focus\n // prevents double input in input area and tag area\n window.requestAnimationFrame(() => {\n if (this.nonLockedTagsList.length > 0) {\n this.tagAreaEl.focus();\n this.focusTag(this.tagEls[this.tagEls.length - 1]);\n }\n });\n }\n }\n\n handleListItemKeyDown(ev: KeyboardEvent) {\n const typedEvTarget = ev.target as HTMLElement;\n\n switch (ev.key) {\n case \"Enter\":\n case \" \":\n ev.preventDefault();\n typedEvTarget.click();\n break;\n case \"ArrowDown\":\n ev.preventDefault();\n this.moveDownListItem();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.moveUpListItem();\n break;\n case \"Escape\":\n if (this.focusedElement !== this.inputEl) {\n this.inputEl.focus();\n } else if (this.tagInputType === \"dropdown\") {\n this.closeDropdown();\n }\n break;\n }\n }\n\n handleListItemClick(item: HTMLElement) {\n const tag = item.dataset.option!.trim() || \"\";\n\n if (this.includesCaseInsensitive(this.tagsList, tag)) {\n this.announce(this.generateTagAlreadyAddedMessage(tag));\n } else {\n this.resetInput();\n this.addTag(tag);\n this.optionsList = this.addOption(tag);\n this.focusedListItem = null;\n }\n }\n\n handleTableRowClick(rowId: string) {\n const referencedRow = this.el.querySelector(`#${rowId}`) as HTMLWmTagInputRowElement;\n const isLocked = referencedRow.locked;\n\n if (!isLocked) {\n if (this.includesCaseInsensitive(this.tagsList, rowId)) {\n this.removeTag(rowId);\n } else if (!this.tagLimitReached) {\n this.addTag(rowId);\n this.resetInput();\n }\n }\n }\n\n handleTagAreaKeyDown(ev: KeyboardEvent) {\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.moveLeftTag();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n ev.preventDefault();\n this.moveRightTag();\n break;\n case \"Backspace\":\n case \"Delete\":\n this.handleTagAreaDelete();\n break;\n }\n }\n\n handleTagAreaDelete() {\n const isLocked = this.focusedTag && this.focusedTag.classList.contains(\"locked\");\n\n if (this.focusedTag && this.focusedTag.dataset.tag && !isLocked) {\n this.removeTag(this.focusedTag.dataset.tag);\n\n if (this.nonLockedTagsList.length === 0) {\n // focus input if no tags are left\n this.inputEl.focus();\n } else if (this.focusedTag === this.tagEls[this.tagEls.length - 1]) {\n // reassign focus if removing the last tag but there are still tags remaining\n this.focusedTag = this.tagEls[this.tagEls.length - 2];\n this.focusTag(this.focusedTag);\n }\n }\n }\n\n handleBlur(ev: FocusEvent, component: HTMLElement) {\n const isntElOrChild =\n ev.relatedTarget !== component && !this.el.shadowRoot!.contains(ev.relatedTarget as HTMLElement);\n\n this.dismissTooltip();\n this.clearCellFocus();\n\n if (isntElOrChild) {\n this.fieldWrapperEl.classList.remove(\"focused\");\n if (this.tagInputType === \"dropdown\") {\n this.closeDropdown();\n }\n }\n }\n\n handleCellMouseEnter(ev: MouseEvent) {\n const cell = ev.target as HTMLElement;\n const contentWrapper = cell.querySelector(\".cell-content-wrapper\")!;\n const isTruncated = contentWrapper.scrollWidth > contentWrapper.clientWidth;\n\n if (isTruncated) {\n // innerText is necessary vs textContent, as innerText ignores sr-only / display: none text\n showTooltip(\"bottom\", cell, cell.innerText!);\n this.tooltipVisible = true;\n }\n }\n\n handleTagAreaFocus() {\n if (this.tagInputType === \"dropdown\") {\n this.closeDropdown();\n }\n\n const firstFocusableTag = this.nonLockedTagEls[0];\n firstFocusableTag && this.focusTag(firstFocusableTag);\n }\n\n handleRemoveButtonClick(tag: string) {\n this.moveLeftTag();\n this.removeTag(tag);\n }\n\n moveDownListItem() {\n if (this.listItemEls.length > 0) {\n const firstListItem = this.listItemEls[0];\n\n if (!this.focusedListItem) {\n this.focusListItem(firstListItem);\n } else if (this.focusedListItem.nextElementSibling) {\n this.focusListItem(this.focusedListItem.nextElementSibling as HTMLLIElement);\n } else {\n this.focusListItem(firstListItem);\n }\n }\n }\n\n moveUpListItem() {\n if (this.listItemEls.length > 0) {\n const lastListItem = this.listItemEls[this.listItemEls.length - 1];\n\n if (!this.focusedListItem) {\n this.focusListItem(lastListItem);\n } else if (this.focusedListItem.previousElementSibling) {\n this.focusListItem(this.focusedListItem.previousElementSibling as HTMLLIElement);\n } else {\n this.clearListItemFocus();\n }\n }\n }\n\n moveDownRow() {\n if (this.filteredRows.length > 0) {\n if (this.tablePosition.row === 0) {\n this.tablePosition.row = 1;\n } else if (this.tablePosition.row === this.filteredRows.length) {\n this.tablePosition.row = 1;\n } else {\n this.tablePosition.row++;\n }\n\n // skip locked rows\n const rowToFocus = this.wmRowEls[this.tablePosition.row - 1] as HTMLWmTagInputRowElement;\n if (rowToFocus.locked) {\n this.moveDownRow();\n } else {\n this.focusCell(this.tablePosition);\n }\n }\n }\n\n moveUpRow() {\n if (this.filteredRows.length > 0) {\n if (this.tablePosition.row === 0) {\n this.tablePosition.row = this.filteredRows.length;\n } else if (this.tablePosition.row === 1) {\n this.tablePosition.row = 0;\n } else {\n this.tablePosition.row--;\n }\n\n // skip locked rows\n const rowToFocus = this.wmRowEls[this.tablePosition.row - 1] as HTMLWmTagInputRowElement;\n if (rowToFocus && rowToFocus.locked) {\n this.moveUpRow();\n } else if (rowToFocus) {\n this.focusCell(this.tablePosition);\n } else {\n this.clearCellFocus();\n }\n }\n }\n\n moveLeftCell() {\n if (this.tablePosition.column != 1) {\n this.tablePosition.column--;\n this.focusCell(this.tablePosition);\n }\n }\n\n moveRightCell() {\n const numCols = csvToArray(this.colHeaders).length;\n\n if (this.tablePosition.column < numCols) {\n this.tablePosition.column++;\n this.focusCell(this.tablePosition);\n }\n }\n\n moveLeftTag() {\n const lastTag = this.tagEls[this.tagEls.length - 1];\n if (this.focusedTag && this.tagEls.includes(this.focusedTag.previousElementSibling as HTMLLIElement)) {\n this.focusedTag = this.focusedTag.previousElementSibling as HTMLLIElement;\n } else {\n this.focusedTag = lastTag;\n }\n // skip locked tags\n if (this.focusedTag.classList.contains(\"locked\") && this.nonLockedTagEls.length > 0) {\n this.moveLeftTag();\n } else {\n this.focusTag(this.focusedTag);\n }\n }\n\n moveRightTag() {\n const firstTag = this.tagEls[0];\n if (this.focusedTag && this.tagEls.includes(this.focusedTag.nextElementSibling as HTMLLIElement)) {\n this.focusedTag = this.focusedTag.nextElementSibling as HTMLLIElement;\n } else {\n this.focusedTag = firstTag;\n }\n // skip locked tags\n if (this.focusedTag.classList.contains(\"locked\")) {\n this.moveRightTag();\n } else {\n this.focusTag(this.focusedTag);\n }\n }\n\n addOption(option: string): string[] {\n let newOptionsList = this.optionsList;\n const optionAlreadyExists = this.includesCaseInsensitive(this.optionsList, option);\n if (!optionAlreadyExists) {\n newOptionsList = newOptionsList.concat(option);\n }\n return newOptionsList;\n }\n\n removeOption(option: string) {\n this.optionsList = this.filterCaseInsensitive(this.optionsList, option);\n }\n\n addTag(tag: string): void {\n let newTagsList = this.tagsList;\n const tagAlreadyAdded = this.includesCaseInsensitive(this.tagsList, tag);\n const tagExistsAsOption = this.optionsList.filter((x) => x.toLowerCase() === tag.toLowerCase())[0];\n\n if (!tagAlreadyAdded) {\n let textToAnnounce = tag;\n if (this.tagInputType === \"table\") {\n const referencedRow = this.el.querySelector(`#${tag}`) as HTMLWmTagInputRowElement;\n textToAnnounce = referencedRow.col1!;\n }\n this.announce(this.generateTagAddedMessage(textToAnnounce));\n this.tagsList = newTagsList.concat(tagExistsAsOption || tag);\n // if maxTags has been reached, focus should go to the tagArea\n if (this.tagLimitReached) {\n this.tagAreaEl.focus();\n }\n }\n }\n\n removeTag(tag: string) {\n let textToAnnounce = tag;\n if (this.tagInputType === \"table\") {\n const referencedRow = this.el.querySelector(`#${tag}`) as HTMLWmTagInputRowElement;\n textToAnnounce = referencedRow.col1!;\n }\n const tagRemovedMessage = intl.formatMessage(\n { id: \"tagInput.tagRemoved\", defaultMessage: \"{tag} removed\" },\n { tag: textToAnnounce }\n );\n this.announce(tagRemovedMessage);\n this.tagsList = this.filterCaseInsensitive(this.tagsList, tag);\n\n if (this.tagInputType === \"dropdown\") {\n // if a tag was introduced by the user, also remove it from the dropdown options\n const devOptionsList = csvToArray(this.options);\n if (this.includesCaseInsensitive(this.optionsList, tag) && !this.includesCaseInsensitive(devOptionsList, tag)) {\n this.removeOption(tag);\n }\n }\n }\n\n focusListItem(item: HTMLLIElement): void {\n this.focusedListItem = item;\n this.inputEl.setAttribute(\"aria-activedescendant\", this.focusedListItem.id);\n item.scrollIntoView({ block: \"nearest\" });\n }\n\n focusTag(element: HTMLLIElement): void {\n if (element.classList.contains(\"locked\")) {\n this.focusedTag = null;\n this.tagAreaEl.setAttribute(\"aria-activedescendant\", \"\");\n } else {\n this.focusedTag = element;\n this.tagAreaEl.setAttribute(\"aria-activedescendant\", this.focusedTag.id);\n }\n }\n\n focusCell(position: TablePosition) {\n this.clearCellFocus(false);\n\n if (position.row) {\n const rowToFocus = this.localRowEls[position.row];\n const rowCells = rowToFocus.querySelectorAll(\"td\");\n const cellToFocus = rowCells[position.column - 1];\n const contentWrapper = cellToFocus.querySelector(\".cell-content-wrapper\")!;\n const isTruncated = contentWrapper.scrollWidth > contentWrapper.clientWidth;\n\n rowToFocus.classList.add(\"focused\");\n cellToFocus.classList.add(\"focused\");\n cellToFocus.scrollIntoView({ block: \"nearest\" });\n this.inputEl.setAttribute(\"aria-activedescendant\", cellToFocus.id);\n\n this.dismissTooltip();\n if (isTruncated) {\n // innerText is necessary vs textContent, as innerText ignores sr-only / display: none text\n showTooltip(\"bottom\", cellToFocus, cellToFocus.innerText!);\n this.tooltipVisible = true;\n }\n }\n }\n\n clearTagFocus() {\n this.tagAreaEl.setAttribute(\"aria-activedescendant\", \"\");\n this.focusedTag = null;\n }\n\n clearCellFocus(resetPosition: boolean = true) {\n this.inputEl.setAttribute(\"aria-activedescendant\", \"\");\n if (resetPosition) {\n this.tablePosition = { row: 0, column: 1 };\n }\n\n this.localRowEls.forEach((row) => {\n row.classList.remove(\"focused\");\n row.querySelectorAll(\"td\").forEach((cell) => {\n cell.classList.remove(\"focused\");\n });\n });\n }\n\n openDropdown() {\n // given an offset of -2px because the dropdown is transformed downwards to avoid overlapping the focus border\n this.openUp = shouldOpenUp(this.el, this.dropdownEl, this.el.clientHeight, -2);\n this.isExpanded = true;\n }\n\n closeDropdown() {\n this.clearListItemFocus();\n this.isExpanded = false;\n }\n\n clearListItemFocus() {\n this.focusedListItem = null;\n this.inputEl.setAttribute(\"aria-activedescendant\", \"\");\n\n this.listItemEls.forEach((el) => {\n el.classList.remove(\"focused\");\n });\n }\n\n resetInput() {\n this.charCount = 0;\n this.inputEl.value = \"\";\n }\n\n announce(message: string) {\n // \\u00A0 is a non-breaking space character, which causes the message to be read as a new one\n if (this.liveRegionEl.textContent === message) {\n message += \"\\u00A0\";\n }\n this.liveRegionMessage = message;\n }\n\n announceExistingOptions() {\n // request animation frame to wait for re-rendering of filtered options\n window.requestAnimationFrame(() => {\n let numResults = 0;\n\n if (this.tagInputType === \"dropdown\") {\n numResults = this.optionEls.length;\n } else if (this.tagInputType === \"table\") {\n numResults = this.filteredRows.length;\n }\n\n const existingOptionsMessage = intl.formatMessage(\n {\n id: \"tagInput.existingOptions\",\n defaultMessage: \"{num, plural, one {1 existing option.} other {# existing options.}}\",\n },\n { num: numResults }\n );\n\n this.announce(existingOptionsMessage);\n });\n }\n\n generateCharacterLimitWarning(charCount: number, charLimit: number): string {\n let message = globalMessages.getCharactersEntered(charCount, charLimit);\n if (charCount >= charLimit) {\n message += ` ${globalMessages.characterLimitReached}`;\n }\n return message;\n }\n\n positionInput() {\n const lastTag = this.tagEls[this.tagEls.length - 1];\n // default placement to fall back to when no tags are present, or not enough space is available\n this.inputEl.style.position = \"static\";\n this.inputEl.style.width = \"100%\";\n\n if (lastTag) {\n const spaceAvailable = this.tagAreaEl.getBoundingClientRect().right - lastTag.getBoundingClientRect().right;\n if (spaceAvailable >= this.inputMinimumWidth) {\n // because the input has right: 0px\n // all thats needed to properly place it is setting position: absolute, top, and width\n this.inputEl.style.position = \"absolute\";\n this.inputEl.style.top = lastTag.offsetTop.toString() + \"px\";\n this.inputEl.style.width =\n (this.tagAreaEl.getBoundingClientRect().right - lastTag.getBoundingClientRect().right - 8).toString() + \"px\";\n }\n }\n }\n\n /// Helpers\n\n listToCSV(list: string[]): string {\n return list.join(\",\");\n }\n\n includesCaseInsensitive(list: string[], element: string): boolean {\n const lowercaseList = list.map((str) => str.toLowerCase());\n return lowercaseList.includes(element.toLowerCase());\n }\n\n filterCaseInsensitive(list: string[], element: string): string[] {\n return list.filter((x) => x.toLowerCase() !== element.toLowerCase());\n }\n\n sortCaseInsensitive(list: string[]) {\n // The vanilla .sort method places words that start with capital letters above others (ASCII order)\n // so we need to pass in our own compare function to sort case-insensitive\n return list.sort((a, b) => {\n a = a.toLowerCase();\n b = b.toLowerCase();\n return a > b ? 1 : a < b ? -1 : 0;\n });\n }\n\n /// Renders\n\n renderTags() {\n let lockedTags: HTMLLIElement[] = [];\n let unlockedTags: HTMLLIElement[] = [];\n\n this.tagsList.forEach((tag, idx) => {\n const id = `tag${idx + 1}`;\n let tagText = \"\";\n let isLocked = false;\n\n if (this.tagInputType === \"dropdown\") {\n tagText = tag;\n } else if (this.tagInputType === \"table\") {\n // display table tags using col1 of the row with the same id\n // if one can't be found, display as empty\n const referencedRow = this.el.querySelector(`#${tag}`) as HTMLWmTagInputRowElement;\n tagText = referencedRow ? referencedRow.col1! : \"\";\n isLocked = referencedRow ? referencedRow.locked : false;\n }\n\n // make sure locked tags always appear in front of list\n const targetList = isLocked ? lockedTags : unlockedTags;\n targetList.push(\n <li\n id={id}\n class={`tag highlight ${this.focusedTag && this.focusedTag.id === id ? \"focused\" : \"\"} ${\n isLocked ? \"locked\" : \"\"\n }`}\n data-tag={tag}\n role=\"option\"\n >\n {tagText}\n {isLocked ? (\n <div class=\"icon lock\"></div>\n ) : (\n <button class=\"icon remove-btn\" tabIndex={-1} onClick={() => this.handleRemoveButtonClick(tag)}></button>\n )}\n </li>\n );\n });\n\n return [...lockedTags, ...unlockedTags];\n }\n\n renderDropdown() {\n return (\n <div\n class={`dropdown-wrapper ${this.isExpanded ? \"open\" : \"\"} ${this.openUp ? \"upwards\" : \"\"}`}\n ref={(el) => (this.dropdownEl = el as HTMLDivElement)}\n >\n <div id=\"help-text\" class=\"help-text\">\n {this.renderHelpText()}\n </div>\n <ul\n class=\"dropdown\"\n id=\"dropdown\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-expanded={this.isExpanded ? \"true\" : false}\n aria-label={this.label}\n tabindex={-1}\n >\n {this.inputEl && this.renderAddNewButton()}\n {this.renderListItems(this.optionsList)}\n </ul>\n </div>\n );\n }\n\n renderListItems(optionsList: string[]) {\n optionsList = this.sortCaseInsensitive(optionsList);\n\n // filter by input\n if (this.inputEl && this.inputEl.value) {\n optionsList = this.optionsList.filter((option) =>\n option.toLowerCase().includes(this.inputEl.value.toLowerCase())\n );\n }\n\n return optionsList.map((option, idx) => {\n const id = `option${idx + 1}`;\n const isFocused = this.focusedListItem && this.focusedListItem.id === id;\n const isSelected = this.includesCaseInsensitive(this.tagsList, option);\n\n return (\n <li\n class={`option ${isFocused ? \"focused\" : \"\"}`}\n role=\"option\"\n id={id}\n data-option={option}\n aria-selected={isSelected ? \"true\" : \"false\"}\n aria-disabled={isSelected ? \"true\" : \"false\"}\n onKeyDown={(ev) => this.handleListItemKeyDown(ev)}\n onBlur={(ev) => this.handleBlur(ev, this.el)}\n onClick={(ev) => this.handleListItemClick(ev.target as HTMLElement)}\n >\n {option}\n </li>\n );\n });\n }\n\n renderAddNewButton() {\n const hasNonWhiteSpaceCharacters = this.inputEl.value.match(/\\S/);\n const optionAlreadyExists = this.includesCaseInsensitive(this.optionsList, this.inputEl.value.trim());\n if (this.addNew && hasNonWhiteSpaceCharacters && !optionAlreadyExists) {\n const id = `add-new-btn`;\n const isFocused = this.focusedListItem && this.focusedListItem.id === id;\n return (\n <li\n role=\"option\"\n class={`add-new-btn ${isFocused ? \"focused\" : \"\"}`}\n id={id}\n data-option={this.inputEl.value}\n onKeyDown={(ev) => this.handleListItemKeyDown(ev)}\n onBlur={(ev) => this.handleBlur(ev, this.el)}\n onClick={(ev) => this.handleListItemClick(ev.target as HTMLElement)}\n tabIndex={isFocused ? 0 : -1}\n >\n {`Add \"${this.inputEl.value.trim()}\"`}\n </li>\n );\n } else return \"\";\n }\n\n renderHelpText() {\n let helpText = \"\";\n\n if (this.optionsList.length > 0) {\n helpText += this.componentMessages.selectionHelpText;\n }\n if (this.addNew) {\n helpText += \" \" + this.componentMessages.addNewHelpText;\n }\n\n return helpText;\n }\n\n renderTagCounter() {\n if (this.maxTags) {\n return (\n <div class=\"lower-row\">\n <div id=\"max-tags\">\n {`${this.componentMessages.tagsAdded}: ${this.tagsList.length}/${this.maxTags}`}\n {this.tagLimitReached && ` - ${this.componentMessages.maxTagsReached}`}\n </div>\n </div>\n );\n }\n }\n\n renderTable() {\n return (\n <div class=\"table-wrapper\" onScroll={() => this.dismissTooltip()}>\n <table\n id=\"table\"\n role=\"grid\"\n class={`${this.colWidths ? \"fixed-widths\" : \"\"}`}\n aria-label={this.label}\n aria-multiselectable=\"true\"\n >\n {this.renderTableHeaders()}\n {this.filteredRows.length ? this.renderTableRows() : <div class=\"no-results\">{this.noResultsMessage}</div>}\n </table>\n </div>\n );\n }\n\n renderTableHeaders() {\n return (\n <tr class=\"headers\" role=\"row\">\n {csvToArray(this.colHeaders).map((header, idx) => {\n let overflowRule = \"wrap\";\n if (this.colWrap && csvToArray(this.colWrap)[idx]) {\n overflowRule = csvToArray(this.colWrap)[idx];\n }\n return (\n <th\n class={`header-cell ${overflowRule}`}\n role=\"columnheader\"\n // @ts-ignore\n width={this.colWidths ? csvToArray(this.colWidths)[idx] : \"\"}\n >\n {header}\n </th>\n );\n })}\n </tr>\n );\n }\n\n renderTableRows() {\n return this.filteredRows.map((row) => {\n const isSelected: boolean = this.includesCaseInsensitive(this.tagsList, row.id);\n\n return (\n <tr\n id={row.id}\n class={`${row.locked ? \"locked\" : \"\"} ${isSelected ? \"selected\" : \"\"}`}\n role=\"row\"\n onClick={() => this.handleTableRowClick(row.id)}\n >\n {this.renderTableCells(row)}\n </tr>\n );\n });\n }\n\n renderTableCells(row: HTMLWmTagInputRowElement) {\n const colValues = [row.col1, row.col2, row.col3, row.col4].filter((val) => !!val);\n const isSelected: boolean = this.includesCaseInsensitive(this.tagsList, row.id);\n\n return colValues.map((val, idx) => {\n const localId = `${row.id}-col${idx + 1}`;\n let overflowRule = \"wrap\";\n if (this.colWrap && csvToArray(this.colWrap)[idx]) {\n overflowRule = csvToArray(this.colWrap)[idx];\n }\n\n return (\n <td\n id={localId}\n role=\"gridcell\"\n aria-describedby={`${localId}-description`}\n aria-selected={isSelected.toString()}\n onMouseEnter={(ev) => this.handleCellMouseEnter(ev)}\n onMouseLeave={() => this.dismissTooltip()}\n >\n <div class={`cell-content-wrapper ${overflowRule}`}>{val}</div>\n <div class=\"description\" id={`${localId}-description`}>\n {row.locked ? \"locked\" : \"\"}\n </div>\n </td>\n );\n });\n }\n\n render() {\n return (\n <Host id={this.uid}>\n <div class={`wrapper label-${this.labelPosition} ${this.errorMessage ? \"invalid\" : \"\"}`}>\n <div class=\"label-wrapper\">\n <label class=\"label\" htmlFor={`input${this.uid}`}>\n {this.label}\n {this.requiredField && (\n <span class=\"required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n </div>\n <div\n class={`field-wrapper ${this.focusedElement ? \"focused\" : \"\"} ${this.errorMessage ? \"invalid\" : \"\"}`}\n ref={(el) => (this.fieldWrapperEl = el as HTMLDivElement)}\n >\n <div class=\"upper-row\">\n <div class=\"tags-and-input-wrapper\">\n {this.tagsList.length > 0 && (\n <ul\n ref={(el) => (this.tagAreaEl = el as HTMLUListElement)}\n class=\"tag-area\"\n role=\"listbox\"\n aria-activedescendant=\"\"\n aria-orientation=\"horizontal\"\n aria-label={`${this.label} ${\n this.tagsList.length > 0 ? this.componentMessages.tagAreaInstructions : \"\"\n }`}\n tabindex={this.nonLockedTagsList.length > 0 ? 0 : -1}\n aria-describedby={`info max-tags`}\n onFocus={() => this.handleTagAreaFocus()}\n onBlur={(ev) => {\n this.clearTagFocus();\n this.handleBlur(ev, this.el);\n }}\n onKeyDown={(ev) => this.handleTagAreaKeyDown(ev)}\n >\n {this.renderTags()}\n </ul>\n )}\n <input\n id={`input${this.uid}`}\n class={this.tagLimitReached ? \"hidden\" : \"\"}\n role=\"combobox\"\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n autocomplete=\"off\"\n aria-required={this.requiredField ? \"true\" : null}\n aria-controls={this.tagInputType}\n aria-describedby={`help-text${this.errorMessage ? \" error \" : \"\"}`}\n aria-label={`${this.label} ${\n this.tagInputType === \"dropdown\" ? globalMessages.getCharacterLimit(this.characterLimit) : \"\"\n }`}\n aria-expanded={this.tagInputType === \"dropdown\" ? this.isExpanded.toString() : null}\n placeholder={this.placeholder}\n maxLength={this.tagInputType === \"dropdown\" ? this.characterLimit : undefined}\n onInput={() => this.handleInputChanged(this.inputEl.value)}\n onBlur={(ev) => {\n this.handleBlur(ev, this.el);\n }}\n onFocus={() => this.handleInputFocus()}\n onKeyDown={(ev) => this.handleInputKeyDown(ev)}\n ></input>\n </div>\n {this.tagInputType === \"dropdown\" && (\n <div class=\"character-count\">\n {this.charCount}/{this.characterLimit}\n </div>\n )}\n </div>\n {this.renderTagCounter()}\n {this.tagInputType === \"dropdown\" && this.renderDropdown()}\n </div>\n {this.info && (\n <div id=\"info\" class=\"info-text\">\n {this.info}\n </div>\n )}\n {this.errorMessage && <div id=\"error\">{this.errorMessage}</div>}\n <div\n class=\"sr-only\"\n aria-live=\"assertive\"\n ref={(el) => (this.liveRegionEl = el as HTMLDivElement)}\n aria-atomic=\"true\"\n >\n {this.liveRegionMessage}\n </div>\n {this.tagInputType === \"table\" && this.renderTable()}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-timepicker.entry.cjs.js","mappings":"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","names":["intl","generateId","shouldOpenUp","isRelatedTarget","index","h","Host"],"sources":["./src/components/wm-timepicker/wm-timepicker.scss?tag=wm-timepicker&encapsulation=shadow","./src/components/wm-timepicker/wm-timepicker.tsx"],"sourcesContent":[":host,\nwm-timepicker {\n font-family: inherit;\n\n * {\n box-sizing: border-box;\n }\n\n .sr-only {\n @include srOnly;\n }\n\n @include label;\n\n .wrapper {\n .inner-wrapper {\n @include displayFlex();\n align-items: center;\n height: rem-calc(40);\n border: 1px solid $input-border-color;\n @include border-radius(3px);\n max-width: 236px; /* input is 200px or smaller, button is 36px */\n justify-content: space-between;\n position: relative;\n\n input {\n -moz-border-top-left-radius: 3px;\n -webkit-border-top-left-radius: 3px;\n border-top-left-radius: 3px;\n -moz-border-bottom-left-radius: 3px;\n -webkit-border-bottom-left-radius: 3px;\n border-bottom-left-radius: 3px;\n border: none;\n font-size: rem-calc(14);\n padding: rem-calc(10 15 8);\n min-width: 0;\n height: 100%;\n flex: 1;\n margin: 0;\n font-family: inherit;\n\n &:disabled {\n background-color: $input-disabled-bg;\n color: $input-disabled-color;\n }\n\n &:focus {\n outline: none;\n }\n }\n\n button {\n all: unset;\n cursor: pointer;\n padding: rem-calc(0px 6px);\n height: rem-calc(38);\n background-color: $button-default-background;\n border: none;\n -moz-border-top-right-radius: 3px;\n -webkit-border-top-right-radius: 3px;\n border-top-right-radius: 3px;\n -moz-border-bottom-right-radius: 3px;\n -webkit-border-bottom-right-radius: 3px;\n border-bottom-right-radius: 3px;\n\n // reset styles inherited from Planning in browsers without shadow DOM\n -moz-border-top-left-radius: 0;\n -webkit-border-top-left-radius: 0;\n border-top-left-radius: 0;\n -moz-border-bottom-left-radius: 0;\n -webkit-border-bottom-left-radius: 0;\n border-bottom-left-radius: 0;\n @include box-shadow(none);\n\n .clock::after {\n @include mdi-icon;\n content: \"\\f150\";\n color: $button-default-text;\n font-size: rem-calc(24);\n padding: 0;\n line-height: rem-calc(40);\n }\n\n &:hover {\n background: mix(black, $button-default-background, 10%);\n @include box-shadow(none);\n }\n\n &:disabled {\n background-color: rgba(74, 74, 74, 0.05);\n pointer-events: none;\n @include box-shadow(none);\n .clock::after {\n color: #7b7b7b;\n }\n }\n\n [dir=\"RTL\"] & {\n right: auto;\n left: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &.user-is-tabbing:focus {\n @include focus-style;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n }\n\n .options {\n margin: 0;\n padding: 0;\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n // value can be passed in to the component and overwrite the following\n max-height: rem-calc(305);\n @include box-shadow(0 4px 15px 0 rgba(0, 0, 0, 0.2));\n @include transition(transform 0.25s ease);\n @include scale($xVal: 1, $yVal: 0);\n @include transformOrigin(center top);\n @include border-radius(3px);\n position: absolute;\n top: 2.5rem;\n right: 0;\n background: #fff;\n z-index: 100;\n width: 100%;\n font-size: rem-calc(14);\n\n &.upwards {\n top: unset;\n bottom: 2.5rem;\n @include transformOrigin(center bottom);\n }\n\n &.hidden {\n visibility: hidden;\n }\n\n [role=\"option\"] {\n display: block;\n cursor: pointer;\n position: relative;\n padding: rem-calc(20);\n background: #fff;\n font-family: inherit;\n list-style: none;\n color: $body-text-color;\n\n &:hover {\n background: $background;\n outline: none;\n }\n\n &:focus {\n outline: none;\n background: $background;\n }\n\n &:not(:last-child) {\n border-bottom: 2px solid rgba(#2e1b46, 0.05);\n }\n }\n }\n\n .options.open {\n @include scale($xVal: 1, $yVal: 1);\n }\n }\n\n &.invalid {\n .inner-wrapper {\n @include invalidBorder;\n }\n\n .error {\n @include errorMessage;\n margin-bottom: 4px;\n top: 100%;\n left: 0;\n }\n }\n\n &:focus,\n &.focus {\n .inner-wrapper {\n @include field-focus;\n }\n }\n }\n}\n","import { h, Component, Host, Element, Prop, Watch, State, Listen, Event, EventEmitter } from \"@stencil/core\";\nimport { intl, generateId, shouldOpenUp, isRelatedTarget } from \"../../global/functions\";\n\n@Component({\n tag: \"wm-timepicker\",\n styleUrl: \"wm-timepicker.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Timepicker {\n @Element() el!: HTMLWmTimepickerElement;\n private inputEl!: HTMLInputElement;\n private optionsEl!: HTMLUListElement;\n private tpWrapper!: HTMLDivElement;\n private buttonEl!: HTMLButtonElement;\n private optionsList!: HTMLLIElement[];\n\n @Prop() disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @Prop() errorMessage?: string | null;\n @Prop() label: string = \"\";\n @Prop() labelPosition: \"top\" | \"left\" | \"none\" = \"top\";\n @Prop() requiredField: boolean = false;\n @Prop() requiredFieldMessage?: string;\n @Prop() preventValidation?: string; // id or series of ids, validation will not occur when clicking an element with this id\n @State() selectedOption!: HTMLLIElement;\n @State() isExpanded: boolean = false;\n @State() isTabbing: boolean = false;\n @Event() wmTimepickerNewValidValue!: EventEmitter<{ value: string }>;\n @Event() wmTimepickerOnChange!: EventEmitter<{\n // deprecated in favor of wmTimepickerNewValidValue and standard input event\n value: string;\n isValid: boolean;\n }>;\n private twelveHrValid = /^(0?[0-9]|1[0-2])\\s*:?\\s*([0-5][0-9])?\\s?(a|p|am|pm)?$/i;\n private twentyFourHrValid = /^(0?[0-9]|1[0-9]|2[0-4])\\s*:?\\s*([0-5][0-9])?$/;\n private uid: string = \"\";\n private timeFormat: string = \"hh:mm\";\n private times: string[] = [];\n private openUp: boolean = false;\n private buttonAriaLabel: string = intl.formatMessage({\n id: \"time.selectTime\",\n defaultMessage: \"Select time\",\n description: \"Button text for screen readers.\",\n });\n @State() displayedErrorMessage?: string | null;\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"keydown\")\n handleKey(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n ev.preventDefault();\n if (this.isExpanded === false) {\n this.open(\"next\");\n } else {\n this.moveDown(this.selectedOption);\n }\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n if (this.isExpanded === false) {\n this.open(\"previous\");\n } else {\n this.moveUp(this.selectedOption);\n }\n break;\n case \"Enter\":\n case \" \":\n if (this.isExpanded) {\n ev.preventDefault();\n this.handleOptionClick(this.selectedOption.textContent!);\n }\n break;\n case \"Escape\":\n ev.preventDefault();\n if (this.isExpanded) {\n ev.stopPropagation(); // for instance if select is in a modal, esc should close the select but not the modal\n this.close();\n }\n break;\n case \"Tab\":\n if (this.isExpanded) {\n this.close(false);\n }\n break;\n case \"Home\":\n ev.preventDefault();\n if (this.isExpanded) {\n this.focusOption(this.optionsList[0]);\n this.setDropdownPosition(\"first\");\n }\n break;\n case \"End\":\n ev.preventDefault();\n if (this.isExpanded) {\n this.focusOption(this.optionsList[this.optionsList.length - 1]);\n this.setDropdownPosition(\"last\");\n }\n break;\n }\n }\n\n @Watch(\"errorMessage\")\n updateErrorState() {\n this.displayedErrorMessage = this.errorMessage;\n }\n\n componentWillLoad() {\n if (this.label === \"\") {\n console.error(\n \"You must include a label prop for the timepicker (for accessibility reasons), even if the label position is none.\"\n );\n }\n\n this.uid = this.el.id ? this.el.id : generateId();\n this.updateErrorState();\n this.timeFormat = intl.formatMessage({\n id: \"time.timeFormat\",\n defaultMessage: \"hh:mm\",\n });\n\n this.times = this.generateTimes();\n }\n\n componentDidLoad() {\n this.optionsEl.classList.add(\"hidden\");\n this.optionsList = Array.from(this.optionsEl.querySelectorAll(\"li\"));\n\n if (this.value) {\n this.processInput();\n }\n }\n\n isValidTime(input: string) {\n return this.twelveHrValid.test(input) || this.twentyFourHrValid.test(input);\n }\n\n generateTimes() {\n let times = [];\n let startTime = 0;\n\n for (let i = 0; startTime < 24 * 60; i++) {\n const h = Math.floor(startTime / 60);\n const hour = h.toString().padStart(2, \"0\");\n const m = (startTime % 60).toString();\n const min = m.padStart(2, \"0\");\n times[i] = `${hour}:${min}`;\n startTime = startTime + 15;\n }\n\n return times;\n }\n\n findNearestTimeInterval(time: string) {\n let formattedTime = this.formatToStorage(time);\n const minutes = parseInt(formattedTime.slice(3, 5));\n\n // first find the closest 15 min increment\n if (minutes % 15 !== 0) {\n const hour = parseInt(formattedTime.slice(0, 2));\n let roundedMinutes = (Math.round(minutes / 15) * 15).toString().padStart(2, \"0\");\n if (roundedMinutes === \"60\") {\n roundedMinutes = \"00\";\n let roundedHour = hour + 1;\n if (roundedHour === 24) {\n roundedHour = 0;\n }\n formattedTime = formattedTime.replace(\n `${hour.toString().padStart(2, \"0\")}:`,\n `${roundedHour.toString().padStart(2, \"0\")}:`\n );\n }\n if (parseInt(roundedMinutes) < 8) {\n roundedMinutes = \"00\";\n }\n time = formattedTime.replace(`:${minutes.toString().padStart(2, \"0\")}`, `:${roundedMinutes}`);\n }\n\n return time;\n }\n\n handleListSelection(time: string) {\n time = this.findNearestTimeInterval(time);\n\n const option = this.optionsList.filter((o) => o.textContent == this.formatToDisplay(time))[0];\n option && this.focusOption(option);\n }\n\n setValue(time: string) {\n const previousValue = this.value;\n this.inputEl.value = this.formatToDisplay(time);\n this.value = this.formatToStorage(time);\n // update the selection in the list\n // so it opens on the closest item\n this.handleListSelection(time);\n\n if (previousValue !== this.value) {\n this.wmTimepickerNewValidValue.emit({ value: this.value });\n }\n // deprecated in favor of wmTimepickerNewValidValue and input\n this.wmTimepickerOnChange.emit({\n value: this.value,\n isValid: !!this.displayedErrorMessage,\n });\n }\n\n processInput() {\n if (this.isValidTime(this.value)) {\n this.setValue(this.value);\n }\n const newErrorMessage = this.determineErrorMessage();\n this.displayedErrorMessage = newErrorMessage;\n }\n\n determineErrorMessage(): string | undefined | null {\n let message: string | undefined | null = this.errorMessage;\n const requiredError =\n this.requiredFieldMessage ||\n intl.formatMessage({\n id: \"time.requiredError\",\n defaultMessage: \"A time is required.\",\n });\n const invalidError = intl.formatMessage({\n id: \"time.invalidTime\",\n defaultMessage: \"Please enter a valid time.\",\n });\n const isValid = this.isValidTime(this.value);\n\n if (isValid && !this.errorMessage) {\n message = null;\n } else if (!isValid && !this.errorMessage) {\n if (this.requiredField && !this.value) {\n message = requiredError;\n } else if (this.value) {\n message = invalidError;\n } else {\n message = null;\n }\n }\n\n return message;\n }\n\n splitTime(time: string): [number, string, string?] {\n const splitTime = this.twelveHrValid.exec(time) || this.twentyFourHrValid.exec(time);\n let hours = parseInt(splitTime![1]);\n let minutes = splitTime![2] || \"00\";\n let amPm = splitTime ? splitTime[3] : undefined;\n\n // handles edge case uncaught by regex '0pm'\n if (hours === 0 && amPm?.toUpperCase().includes(\"P\")) {\n // if user types '0pm' we change it to midnight\n amPm = \"AM\";\n }\n return [hours, minutes, amPm];\n }\n\n formatToDisplay(time: string) {\n let [hours, minutes, amPm] = this.splitTime(time);\n // at the moment the component only displays in 12hr AM/PM\n if (hours === 12 && !amPm) {\n amPm = \"PM\";\n }\n if (hours === 0 || hours === 24) {\n hours = 12;\n }\n if (hours > 12) {\n hours -= 12;\n amPm = \"PM\";\n }\n if (amPm && amPm.toUpperCase().includes(\"P\")) {\n amPm = \"PM\";\n } else {\n amPm = \"AM\";\n }\n\n return `${hours.toString().padStart(2, \"0\")}:${minutes} ${amPm}`;\n }\n\n formatToStorage(time: string) {\n let [hours, minutes, amPm] = this.splitTime(time);\n if (hours === 24) {\n hours = 0;\n }\n if (hours === 12 && amPm && amPm.toUpperCase().includes(\"A\")) {\n hours -= 12;\n }\n if (amPm && amPm.toUpperCase().includes(\"P\") && hours !== 12) {\n hours += 12;\n }\n return `${hours.toString().padStart(2, \"0\")}:${minutes}`;\n }\n\n open(itemToSelect?: \"next\" | \"previous\") {\n this.openUp = shouldOpenUp(this.el, this.optionsEl);\n this.isExpanded = true;\n this.optionsEl.classList.remove(\"hidden\");\n\n if (this.errorMessage || !this.value) {\n this.handleListSelection(\"09:00\");\n }\n this.setDropdownPosition(\"center\", this.selectedOption);\n this.focusOption(this.selectedOption);\n\n window.requestAnimationFrame(() => {\n if (itemToSelect === \"next\") {\n this.moveDown(this.selectedOption);\n } else if (itemToSelect === \"previous\") {\n this.moveUp(this.selectedOption);\n }\n });\n }\n\n close(returnFocus: boolean = true) {\n this.isExpanded = false;\n\n window.setTimeout(() => {\n this.optionsEl.classList.add(\"hidden\");\n // Returns focus to button after popup closes (no need if user is tabbing)\n // Delay is necessary for screenreader to get new expanded state before focus\n // window.requestAnimationFrame is probably enough, but since we are already using setTimeout it may as well be here\n // also UX wise, it makes sense for the button to only be focused after the animation is complete\n if (returnFocus) {\n this.buttonEl.focus();\n }\n }, 150);\n }\n\n focusOption(item: HTMLLIElement): void {\n this.optionsList.forEach((option) => {\n option.tabIndex = -1;\n });\n\n item.tabIndex = 0;\n this.selectedOption = item;\n item.focus();\n }\n\n setDropdownPosition(position: string, item?: HTMLLIElement) {\n switch (position) {\n case \"top\":\n const prevItem = item?.previousElementSibling as HTMLLIElement;\n this.optionsEl.scrollTop =\n prevItem.getBoundingClientRect().top - this.optionsEl.getBoundingClientRect().top + this.optionsEl.scrollTop;\n break;\n case \"bottom\":\n const nextItem = item?.nextElementSibling as HTMLLIElement;\n this.optionsEl.scrollTop =\n nextItem.getBoundingClientRect().bottom -\n this.optionsEl.getBoundingClientRect().top +\n this.optionsEl.scrollTop -\n this.optionsEl.offsetHeight;\n break;\n case \"center\":\n this.optionsEl.scrollTop =\n (this.optionsList.findIndex((x) => x.textContent === item?.textContent) - 2) * item!.offsetHeight;\n break;\n case \"first\":\n this.optionsEl.scrollTop = 0;\n break;\n case \"last\":\n this.optionsEl.scrollTop = this.optionsList[0].clientHeight * this.optionsList.length;\n break;\n }\n }\n\n moveUp(el: HTMLLIElement) {\n const prevEl = el.previousElementSibling as HTMLLIElement;\n if (prevEl) {\n // scroll option to top of dropdown if partially obscured / out of view\n if (prevEl.getBoundingClientRect().top < this.optionsEl.getBoundingClientRect().top) {\n this.setDropdownPosition(\"top\", el);\n }\n this.focusOption(prevEl);\n } else {\n this.focusOption(this.optionsList[this.optionsList.length - 1]);\n this.setDropdownPosition(\"last\");\n }\n }\n\n moveDown(el: HTMLLIElement) {\n const nextEl = el.nextElementSibling as HTMLLIElement;\n if (nextEl) {\n // scroll option to bottom of dropdown if partially obscured / out of view\n if (nextEl.getBoundingClientRect().bottom > this.optionsEl.getBoundingClientRect().bottom) {\n this.setDropdownPosition(\"bottom\", el);\n }\n this.focusOption(nextEl);\n } else {\n this.focusOption(this.optionsList[0]);\n this.setDropdownPosition(\"first\");\n }\n }\n\n handleOptionClick(time: string) {\n this.close();\n this.setValue(time);\n this.processInput();\n }\n\n handleInput() {\n this.value = this.inputEl.value;\n if (this.isValidTime(this.value)) {\n this.handleListSelection(this.findNearestTimeInterval(this.value));\n this.setDropdownPosition(\"center\", this.selectedOption);\n }\n }\n\n handleInputBlur(ev: FocusEvent) {\n // do not validate if clicking to an element that should prevent validation (e.g. close button on modal)\n const shouldPreventValidation = this.preventValidation && isRelatedTarget(ev, this.preventValidation);\n if (!shouldPreventValidation) {\n this.processInput();\n }\n this.tpWrapper.classList.remove(\"focus\");\n }\n\n renderOptions() {\n return this.times.map((time, index) => (\n <li id={`option${index + 1}`} role=\"option\" onClick={() => this.handleOptionClick(time)}>\n {this.formatToDisplay(time)}\n </li>\n ));\n }\n\n render() {\n return (\n <Host id={this.uid} invalid={!!this.displayedErrorMessage ? \"true\" : null} onBlur={() => this.close(false)}>\n <div\n class={`wrapper label-${this.labelPosition} ${!!this.displayedErrorMessage ? \"invalid\" : \"\"}`}\n ref={(t) => (this.tpWrapper = t as HTMLDivElement)}\n >\n <div class=\"label-wrapper\">\n {this.labelPosition !== \"none\" && (\n <label id={`label-${this.uid}`} class=\"label\" htmlFor={`time-input-${this.uid}`}>\n {this.label}\n {this.requiredField && (\n <span class=\"required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n </div>\n <div>\n <div class=\"inner-wrapper\">\n <input\n id={`time-input-${this.uid}`}\n aria-label={this.label}\n aria-describedby={`error-${this.uid}`}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n onBlur={(ev) => this.handleInputBlur(ev)}\n onInput={() => this.handleInput()}\n disabled={this.disabled}\n aria-required={this.requiredField ? \"true\" : null}\n placeholder={this.timeFormat}\n autocomplete=\"off\"\n onFocus={() => this.tpWrapper.classList.add(\"focus\")}\n />\n <button\n id={`btn-${this.uid}`}\n class={this.isTabbing ? \"user-is-tabbing\" : \"\"}\n ref={(el) => (this.buttonEl = el as HTMLButtonElement)}\n disabled={this.disabled}\n aria-controls={`list-${this.uid}`}\n aria-expanded={this.isExpanded ? \"true\" : \"false\"}\n aria-label={this.buttonAriaLabel}\n aria-describedby={`time-input-${this.uid}`}\n onClick={() => (this.isExpanded ? this.close() : this.open())}\n // This addresses an issue in Safari, where clicking buttons does not focus them\n // if the button does not receive focus when clicked, Timepicker incorrectly emits a blur event\n onMouseDown={(ev) => {\n ev.preventDefault();\n this.buttonEl.focus();\n }}\n >\n <span class=\"clock\" />\n </button>\n <ul\n class={`options ${this.isExpanded ? \"open\" : \"\"} ${this.openUp ? \"upwards\" : \"\"}`}\n id={`list-${this.uid}`}\n role=\"listbox\"\n aria-labelledby={`label-${this.uid}`}\n aria-describedby={this.isExpanded ? \"collapsed\" : null} //For screenreader, to announce state when expanded\n tabindex={-1}\n ref={(el) => (this.optionsEl = el as HTMLUListElement)}\n >\n {this.renderOptions()}\n </ul>\n </div>\n <div id={`error-${this.uid}`} class=\"error\" aria-live=\"assertive\" aria-atomic=\"true\">\n {this.displayedErrorMessage}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"wm-toggletip.entry.cjs.js","mappings":"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","names":["intl","shouldOpenUp","shouldOpenDown","shouldShiftRight","shouldShiftLeft","h","Host"],"sources":["./src/components/wm-toggletip/wm-toggletip.scss?tag=wm-toggletip&encapsulation=shadow","./src/components/wm-toggletip/wm-toggletip.tsx"],"sourcesContent":["@mixin toggletipTriangleBase() {\n content: \"\";\n position: absolute;\n border: solid transparent;\n height: 0;\n width: 0;\n pointer-events: none;\n}\n@mixin toggletipTriangleTop() {\n @include toggletipTriangleBase();\n bottom: 100%;\n border-bottom-color: $charcoal;\n border-bottom-width: rem-calc(4);\n border-left-width: rem-calc(6);\n border-right-width: rem-calc(6);\n margin-left: rem-calc(-6);\n left: 50%;\n}\n@mixin toggletipTriangleBottom() {\n @include toggletipTriangleBase();\n top: 100%;\n border-top-color: $charcoal;\n border-top-width: rem-calc(4);\n border-left-width: rem-calc(6);\n border-right-width: rem-calc(6);\n margin-left: rem-calc(-6);\n left: 50%;\n}\n@mixin toggletipTriangleLeft() {\n @include toggletipTriangleBase();\n bottom: 100%;\n border-right-color: $charcoal;\n border-right-width: rem-calc(4);\n border-top-width: rem-calc(6);\n border-bottom-width: rem-calc(6);\n border-left-width: 0px;\n top: calc(50% - 6px);\n left: rem-calc(-3);\n}\n@mixin toggletipTriangleRight() {\n @include toggletipTriangleBase();\n bottom: 100%;\n border-left-color: $charcoal;\n border-left-width: rem-calc(4);\n border-top-width: rem-calc(6);\n border-bottom-width: rem-calc(6);\n border-right-width: 0px;\n top: calc(50% - 6px);\n right: rem-calc(-3);\n}\n@mixin toggletipTriangleTopLeft() {\n @include toggletipTriangleTop();\n margin-left: unset;\n left: rem-calc(14);\n}\n@mixin toggletipTriangleTopRight() {\n @include toggletipTriangleTop();\n left: unset;\n margin-left: unset;\n right: rem-calc(14);\n}\n@mixin toggletipTriangleBottomLeft() {\n @include toggletipTriangleBottom();\n margin-left: unset;\n left: rem-calc(14);\n}\n@mixin toggletipTriangleBottomRight() {\n @include toggletipTriangleBottom();\n left: unset;\n margin-left: unset;\n right: rem-calc(14);\n}\n\n:host,\nwm-toggletip {\n display: inline-block;\n position: relative;\n height: 40px;\n width: 40px;\n\n .button {\n display: flex;\n background: none;\n border: none;\n padding: 0;\n width: inherit;\n height: inherit;\n border-radius: 50%;\n justify-content: center;\n align-items: center;\n position: relative;\n cursor: pointer;\n &:before {\n @include mdi-icon;\n content: \"\\f2fc\";\n font-size: 16px;\n color: $charcoal;\n background: radial-gradient(white 40%, transparent 0%); // adds white \"font-color\" to icon\n }\n &:focus {\n outline: none;\n &.user-is-tabbing {\n @include focus-style;\n }\n }\n }\n\n .tooltip {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n\n font-family: inherit;\n font-size: rem-calc(14);\n text-transform: none;\n font-weight: normal;\n background: black;\n color: #fff;\n padding: rem-calc(6);\n line-height: normal;\n z-index: 30;\n white-space: nowrap;\n\n &.hover {\n clip: auto;\n width: auto;\n height: auto;\n opacity: 1;\n transition: opacity 500ms 500ms;\n padding: rem-calc(6);\n white-space: nowrap;\n }\n }\n\n .toggletip {\n position: absolute;\n max-width: rem-calc(220);\n width: max-content;\n padding: rem-calc(8) rem-calc(12);\n border-radius: rem-calc(3);\n background: $charcoal;\n color: white;\n font-size: 14px;\n z-index: 30;\n\n &.top {\n &:before {\n @include toggletipTriangleBottom();\n }\n }\n\n &.bottom {\n &:before {\n @include toggletipTriangleTop();\n }\n }\n\n &.right {\n &:before {\n @include toggletipTriangleLeft();\n }\n }\n\n &.left {\n &:before {\n @include toggletipTriangleRight();\n }\n }\n\n &.bottom-right {\n &:before {\n @include toggletipTriangleTopLeft();\n }\n }\n\n &.bottom-left {\n &:before {\n @include toggletipTriangleTopRight();\n }\n }\n\n &.top-right {\n &:before {\n @include toggletipTriangleBottomLeft();\n }\n }\n\n &.top-left {\n &:before {\n @include toggletipTriangleBottomRight();\n }\n }\n\n &.hidden {\n transform: scale(0, 0) !important; // ensure el doesn't take space on screen when hidden\n visibility: hidden;\n }\n }\n\n .toggletip,\n .tooltip {\n &.top {\n transform: translate(-50%, 0%);\n bottom: 40px;\n left: 20px;\n }\n\n &.bottom {\n transform: translate(-50%, 0%);\n top: 40px;\n left: 20px;\n }\n\n &.right {\n transform: translate(100%, calc(-50% - 20px));\n right: 0px;\n }\n\n &.left {\n transform: translate(-100%, calc(-50% - 20px));\n left: 0px;\n }\n\n &.bottom-right {\n top: 40px;\n left: 0px;\n }\n\n &.bottom-left {\n top: 40px;\n right: 0px;\n }\n\n &.top-right {\n bottom: 40px;\n left: 0px;\n }\n\n &.top-left {\n bottom: 40px;\n right: 0px;\n }\n }\n\n .sr-only {\n @include srOnly;\n }\n}\n","import { Component, Host, h, Element, Prop, State, Listen } from \"@stencil/core\";\n\nimport { shouldOpenUp, shouldOpenDown, shouldShiftLeft, shouldShiftRight, intl } from \"../../global/functions\";\nimport { TooltipPlacement } from \"../../global/interfaces\";\n@Component({\n tag: \"wm-toggletip\",\n styleUrl: \"wm-toggletip.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Toggletip {\n @Element() el!: HTMLWmToggletipElement;\n\n @Prop() label?: string;\n @Prop({ mutable: true }) tooltip?: string; // mutable for deprecation transition\n @Prop() tooltipText?: string; // DEPRECATED\n get tempTooltip() {\n // instances of this.tempTooltip should be replaced with this.tooltip once tooltipText is fully phased out\n return this.tooltip || this.tooltipText;\n }\n @Prop({ mutable: true, reflect: true }) tooltipPosition: TooltipPlacement = \"bottom-right\";\n @State() isOpen: boolean = false;\n @State() isTabbing: boolean = false;\n\n private toggletipEl!: HTMLDivElement;\n private tooltipEl!: HTMLDivElement;\n private liveRegionEl!: HTMLDivElement;\n private tooltipMessage = intl.formatMessage({\n id: \"toggletip.moreInformation\",\n defaultMessage: \"More information\",\n });\n\n componentWillLoad() {\n const validTooltipPlacement = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n \"top-right\",\n \"top-left\",\n \"bottom-right\",\n \"bottom-left\",\n ];\n\n if (!this.label) {\n console.error(\"wm-toggletip must have a label property\");\n }\n if (!this.tempTooltip) {\n console.error(\"wm-toggletip must have a tooltip property\");\n }\n if (!validTooltipPlacement.includes(this.tooltipPosition)) {\n console.error(\n `wm-toggletip: tooltip-position has an invalid value of \"${this.tooltipPosition}\", make sure to use one of the following values: ${validTooltipPlacement}`\n );\n }\n if (this.tooltipText) {\n console.warn(\"wm-toggletip: tooltip-text has been deprecated as of v3.1.0. Please use tooltip instead.\");\n }\n }\n\n @Listen(\"keydown\")\n handleKeydown(ev: KeyboardEvent) {\n switch (ev.key) {\n case \"Escape\":\n ev.preventDefault();\n if (this.isOpen) {\n ev.stopPropagation(); // prevent closing modal if within one\n this.close();\n }\n break;\n case \"Tab\":\n if (this.isOpen) {\n this.close();\n }\n }\n }\n\n @Listen(\"wmUserIsTabbing\", { target: \"window\" })\n toggleTabbingOn() {\n this.isTabbing = true;\n }\n\n @Listen(\"wmUserIsNotTabbing\", { target: \"window\" })\n toggleTabbingOff() {\n this.isTabbing = false;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: MouseEvent) {\n if (this.isOpen) {\n if (ev.target === this.el || this.el.contains(ev.target as HTMLElement)) {\n // Re-announce if clicking any part of the component while open\n this.announceToggletip();\n } else {\n this.close();\n }\n }\n }\n\n open() {\n this.isOpen = true;\n this.announceToggletip();\n }\n\n close() {\n this.isOpen = false;\n this.hideTooltip();\n }\n\n handleBlur() {\n this.hideTooltip();\n // clear liveregion on blur to prevent old announcement text from being picked up by screen readers\n this.liveRegionEl.innerHTML = \"\";\n }\n\n showTooltip() {\n // Because a :hover pseudoclass would apply before the tooltip is repositioned, hover styles must be applied through a class\n // Otherwise, the tooltip will flash on-screen and possibly create scrollbars\n this.setToggletipPosition();\n this.tooltipEl.classList.add(\"hover\");\n }\n\n hideTooltip() {\n this.tooltipEl.classList.remove(\"hover\");\n }\n\n announceToggletip() {\n this.liveRegionEl.innerHTML = \"\";\n setTimeout(() => {\n this.liveRegionEl.innerHTML = this.tempTooltip!;\n }, 10);\n }\n\n setToggletipPosition() {\n // Vertical\n if (this.tooltipPosition.includes(\"bottom\") && shouldOpenUp(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"bottom\", \"top\") as TooltipPlacement;\n } else if (this.tooltipPosition.includes(\"top\") && shouldOpenDown(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"top\", \"bottom\") as TooltipPlacement;\n }\n\n // Horizontal\n if (this.tooltipPosition.includes(\"left\") && shouldShiftRight(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"left\", \"right\") as TooltipPlacement;\n } else if (this.tooltipPosition.includes(\"right\") && shouldShiftLeft(this.el, this.toggletipEl)) {\n this.tooltipPosition = this.tooltipPosition.replace(\"right\", \"left\") as TooltipPlacement;\n }\n }\n\n render() {\n return (\n <Host>\n <button\n class={`button ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\n type=\"button\"\n aria-label={this.label}\n onClick={() => {\n this.setToggletipPosition();\n this.open();\n }}\n // In order to position the tooltip identically to the toggletip, it's presence is determined by these four events\n onMouseEnter={() => this.showTooltip()}\n onMouseLeave={() => this.hideTooltip()}\n onFocus={() => this.showTooltip()}\n onBlur={() => this.handleBlur()}\n ></button>\n <div\n ref={(el) => (this.tooltipEl = el as HTMLDivElement)}\n class={`tooltip ${this.tooltipPosition} ${this.isOpen ? \"hidden\" : \"\"}`}\n aria-hidden=\"true\"\n >\n {this.tooltipMessage}\n </div>\n <div\n ref={(el) => (this.toggletipEl = el as HTMLDivElement)}\n class={`toggletip ${this.isOpen ? \"\" : \"hidden\"} ${this.tooltipPosition}`}\n >\n {this.tempTooltip}\n </div>\n <div\n ref={(el) => (this.liveRegionEl = el as HTMLDivElement)}\n class=\"live-region sr-only\"\n role=\"status\"\n // Aria-live is implicit with role=\"status\", however this is not registered by Apple VoiceOver\n aria-live=\"polite\"\n aria-atomic=\"true\"\n ></div>\n </Host>\n );\n }\n}\n"],"version":3}
|