@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
|
-
{"version":3,"file":"wm-pagination.js","sourceRoot":"","sources":["../../../../src/components/wm-pagination/wm-pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h, Component, EventEmitter, Prop, Watch, Event, Element, Listen, State } from \"@stencil/core\";\nimport { debounce } from \"../../global/functions\";\n\n@Component({\n tag: \"wm-pagination\",\n styleUrl: \"wm-pagination.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Pagination {\n @Element() el!: any;\n\n @Prop() currentPage: number = 1;\n @Prop() totalItems?: number = undefined;\n @Prop() itemsPerPage?: number = undefined;\n @Prop() value = 1;\n @Prop() isLargeViewport: boolean = window.innerWidth > 600;\n @State() isTabbing: boolean = false;\n @State() srAnnouncement: string = \"\";\n\n private totalPages: number = 0;\n\n @Event() wmPaginationPageClicked!: EventEmitter<String>;\n @Event() pageClicked!: EventEmitter<String>; // deprecated in favor of wmPaginationPageClicked\n @Event() focusCurrentPage!: EventEmitter;\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 maintainFocusOnNumberChange(el: \"previous\" | \"next\" | \"prev-arrow\" | \"next-arrow\" | \"page\") {\n window.requestAnimationFrame(() => {\n switch (el) {\n case \"previous\":\n this.currentPage === 1 && this.el.shadowRoot.querySelector(`button#wm-1`).focus(); //Only shift focus from previous button to page 1 if page 1 is reached, which disables previous button. Otherwise, maintain focus on previous button.\n break;\n case \"next\":\n this.currentPage === this.totalPages &&\n this.el.shadowRoot.querySelector(`button#wm-${this.totalPages}`).focus(); //Only shift focus from next button if last page is reached, disabling next button. Otherwise, maintain focus on next button.\n break;\n case \"prev-arrow\":\n this.currentPage === 1 && this.el.shadowRoot.querySelector(\"#next-arw\").focus(); //Only shift focus if page 1 is reached, disabling previous buttons. Otherwise, maintain focus on previous buttons.\n break;\n case \"next-arrow\":\n this.currentPage === this.totalPages && this.el.shadowRoot.querySelector(\"#previous-arw\").focus(); //Only shift focus if last page is reached, disabling next buttons. Otherwise, maintain focus on next buttons.\n break;\n case \"page\":\n this.el.shadowRoot.querySelector(`button#wm-${this.currentPage}`).focus();\n default:\n return;\n }\n });\n }\n\n debouncedResize = debounce(() => {\n this.isLargeViewport = window.innerWidth > 600;\n }, 250);\n\n @Listen(\"resize\", { target: \"window\" })\n handleResize() {\n this.debouncedResize();\n }\n\n @Watch(\"totalItems\")\n @Watch(\"itemsPerPage\")\n calculateTotalPages() {\n this.totalPages = Math.ceil(this.totalItems! / this.itemsPerPage!);\n }\n\n componentWillLoad() {\n if (!this.totalItems || !this.itemsPerPage || !this.currentPage) {\n throw new Error(\"Please check the required attributes\");\n }\n\n this.calculateTotalPages();\n\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n\n this.el.focus = () => {\n // in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the components's state\n if (this.isLargeViewport) {\n this.el.shadowRoot.getElementById(`wm-${this.currentPage}`).focus();\n } else {\n this.currentPage === 1\n ? this.el.shadowRoot.getElementById(\"next-arw\").focus()\n : this.el.shadowRoot.getElementById(\"wm-1-arw\").focus();\n }\n };\n }\n\n updatePageDisplayed(pageNum: any) {\n this.value = pageNum;\n this.wmPaginationPageClicked.emit();\n this.pageClicked.emit(); // deprecated\n this.srAnnouncement = `Current page, ${this.currentPage}. ${this.getCurrentPagesInView()}`;\n }\n\n displayShortPagination() {\n let pages = [];\n for (let i = 1; i <= this.totalPages; i++) {\n pages.push(this.displayPageNumber(i));\n }\n return pages;\n }\n\n displayLongPagination() {\n let view = [\n this.displayPageNumber(1),\n this.currentPage > 3 && this.displayEllipsis(),\n ...this.getMiddlePageNums().map((page) => this.displayPageNumber(page)),\n this.currentPage + 2 < this.totalPages && this.displayEllipsis(),\n this.displayPageNumber(this.totalPages),\n ];\n return view;\n }\n\n displayPageNumber(pageNum: number) {\n return (\n <button\n id={`wm-${pageNum}`}\n class=\"paginationbtn\"\n onClick={() => {\n this.currentPage = pageNum;\n this.updatePageDisplayed(pageNum);\n this.maintainFocusOnNumberChange(\"page\");\n }}\n value={pageNum}\n aria-label={this.currentPage !== pageNum ? `Go to page ${pageNum}` : \"\"}\n aria-current={this.currentPage === pageNum ? \"page\" : undefined}\n >\n {pageNum}\n </button>\n );\n }\n\n displayEllipsis() {\n return <span class=\"ellipsis\">...</span>;\n }\n\n getMiddlePageNums = () => {\n let coreBtns;\n // if pg is 1, 2 or 3\n if (this.currentPage < 4) {\n coreBtns = [2, 3, 4];\n } else if (this.currentPage > this.totalPages - 3) {\n coreBtns = [this.totalPages - 3, this.totalPages - 2, this.totalPages - 1];\n } else {\n coreBtns = [this.currentPage - 1, this.currentPage, this.currentPage + 1];\n }\n return coreBtns;\n };\n\n // displayPageView = () => {\n // // let end = this.itemsPerPage! * this.currentPage;\n // // const begin = end - this.itemsPerPage! + 1;\n // // if (end > this.totalItems!) {\n // // end = this.totalItems!;\n // // }\n // return <div class=\"pageview\">{this.getCurrentView()}</div>;\n // };\n\n getCurrentPagesInView() {\n let end = this.itemsPerPage! * this.currentPage;\n const begin = end - this.itemsPerPage! + 1;\n if (end > this.totalItems!) {\n end = this.totalItems!;\n }\n return \"Viewing \" + (begin === end ? `${begin}` : `${begin}–${end} of ${this.totalItems}`);\n }\n\n renderLarge() {\n return (\n <div class=\"largescreen\">\n <div class=\"pageview\">{this.getCurrentPagesInView()}</div>\n <div class={`pagebtncontainer ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}>\n <button\n id=\"previous\"\n class=\"paginationbtn previousbtn\"\n onClick={() => {\n this.currentPage = this.currentPage - 1;\n this.updatePageDisplayed(this.currentPage);\n this.maintainFocusOnNumberChange(\"previous\");\n }}\n disabled={this.currentPage === 1}\n aria-label=\"Go to previous page\"\n aria-controls=\"status\"\n >\n Previous\n </button>\n {this.totalPages < 6 ? this.displayShortPagination() : this.displayLongPagination()}\n <button\n id=\"next\"\n class=\"paginationbtn nextbtn\"\n onClick={() => {\n this.currentPage = this.currentPage + 1;\n this.updatePageDisplayed(this.currentPage);\n this.maintainFocusOnNumberChange(\"next\");\n }}\n disabled={this.currentPage === this.totalPages}\n aria-label=\"Go to next page\"\n aria-controls=\"status\"\n >\n Next\n </button>\n </div>\n </div>\n );\n }\n\n renderSmall() {\n return (\n <div class=\"smallscreen\">\n <div class={`pagebtncontainer ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}>\n <button\n id={`wm-1-arw`}\n class=\"paginationbtn\"\n onClick={() => {\n this.currentPage = 1;\n this.updatePageDisplayed(1);\n this.maintainFocusOnNumberChange(\"prev-arrow\");\n }}\n value={1}\n aria-current={this.currentPage === 1 ? \"page\" : undefined}\n aria-label={`Go to page 1`}\n aria-controls=\"status\"\n disabled={this.currentPage === 1}\n >\n <svg width=\"16\" height=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6zM15.41 10.59L10.83 6l4.58-4.59L14 0 8 6l6 6z\" />\n </svg>\n </button>\n <button\n id=\"previous-arw\"\n class=\"paginationbtn previousbtn\"\n onClick={() => {\n this.currentPage -= 1;\n this.updatePageDisplayed(this.currentPage);\n this.maintainFocusOnNumberChange(\"prev-arrow\");\n }}\n disabled={this.currentPage === 1}\n aria-label=\"Go to previous page\"\n >\n <svg width=\"8\" height=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6z\" />\n </svg>\n </button>\n Page {this.currentPage} of {this.totalPages}\n <button\n id=\"next-arw\"\n class=\"paginationbtn nextbtn\"\n onClick={() => {\n this.currentPage += 1;\n this.updatePageDisplayed(this.currentPage);\n this.maintainFocusOnNumberChange(\"next-arrow\");\n }}\n disabled={this.currentPage === this.totalPages}\n aria-label=\"Go to next page\"\n >\n <svg width=\"8\" height=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6z\" />\n </svg>\n </button>\n <button\n id={`wm-${this.totalPages}-arw`}\n class=\"paginationbtn\"\n onClick={() => {\n this.currentPage = this.totalPages;\n this.updatePageDisplayed(this.totalPages);\n this.maintainFocusOnNumberChange(\"next-arrow\");\n }}\n value={this.totalPages}\n aria-current={this.currentPage === this.totalPages ? \"page\" : undefined}\n aria-label={`Go to last page, page ${this.totalPages}`}\n aria-controls=\"status\"\n disabled={this.currentPage === this.totalPages}\n >\n <svg width=\"17\" height=\"12\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6zM9.59 10.59L14.17 6 9.59 1.41 11 0l6 6-6 6z\" />\n </svg>\n </button>\n </div>\n </div>\n );\n }\n\n render() {\n return (\n // do not render the component if there's only one page\n this.totalItems! > this.itemsPerPage! && (\n <nav aria-label={`Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.`}>\n {/* both \"desktop\" and \"mobile\" versions are renderered. media queries hide the unnecessary stuff */}\n {this.isLargeViewport ? this.renderLarge() : this.renderSmall()}\n {/* The below is for screenreader purposes, ensuring it announces the new current page.*/}\n <div id=\"status\" class=\"sr-only\" aria-live=\"polite\" aria-relevant=\"text\" aria-atomic=\"true\">\n {this.srAnnouncement}\n </div>\n </nav>\n )\n );\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-search.js","sourceRoot":"","sources":["../../../../src/components/wm-search/wm-search.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AACrH,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,MAAM,OAAO,MAAM;;IAgFT,cAAS,GAAuB,IAAI,CAAC;IACrC,WAAM,GAAuB,IAAI,CAAC;sBA/Ec,OAAO;oBAClB,KAAK;uBAKpB,EAAE;iBACR,EAAE;sBACoB,CAAC;iBAKS,EAAE;qBAK5B,KAAK;yBAMH,EAAE;2BACO,IAAI;0BAMX,CAAC;gCAEK,EAAE;;wBAMV,EAAE;;EAElC,IAAI,WAAW;IACb,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CACrC;MACE,EAAE,EAAE,qBAAqB;MACzB,cAAc,EAAE,8EAA8E;KAC/F,EACD,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAChC,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CACpC;MACE,EAAE,EAAE,oBAAoB;MACxB,cAAc,EAAE,uFAAuF;KACxG,EACD,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,CAC9D,CAAC;IAEF,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;MAC/B,OAAO,GAAG,YAAY,CAAC;KACxB;SAAM,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;MACrC,OAAO,GAAG,WAAW,CAAC;KACvB;IAED,OAAO,OAAO,CAAC;EACjB,CAAC;EAiBD,eAAe;IACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;EAC/D,CAAC;EAGD,gBAAgB;IACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;EAClE,CAAC;EAED,iBAAiB;IACf,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE;MAC3B,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;KACrF;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;MACrB,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;KAC/E;IACD,IAAI,CAAC,WAAW,EAAE,CAAC;EACrB,CAAC;EAED,WAAW;IACT,+EAA+E;IAC/E,IAAI,EAAE,GAAG,IAAI,CAAC,EAAS,CAAC;IACxB,OAAO,CAAC,CAAC,EAAE,EAAE;MACX,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE;QAC7B,IAAI,CAAC,WAAW,GAAG,EAAwB,CAAC;OAC7C;MACD,EAAE,GAAG,EAAE,CAAC,aAA4B,CAAC;KACtC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE;MACpB,MAAM,MAAM,GAAG,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;MAClF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,IAAI,CAAC,WAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE;UAC7C,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;MACL,CAAC,CAAC,CAAC;KACJ;EACH,CAAC;EAED,0GAA0G;EAE1G,KAAK,CAAC,WAAW,CAAC,KAAa;IAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAEnB,kGAAkG;IAClG,0GAA0G;IAC1G,IAAI,CAAC,0BAA0B,EAAE,CAAC;IAElC,IAAI,IAAI,CAAC,KAAK,EAAE;MACd,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;EACH,CAAC;EAGD,0BAA0B;IACxB,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;MAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;EACH,CAAC;EAED,QAAQ,CAAC,OAAe;IACtB,IAAI,IAAI,CAAC,iBAAkB,CAAC,WAAW,KAAK,OAAO,EAAE;MACnD,OAAO,IAAI,QAAQ,CAAC;KACrB;IACD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;EAC9B,CAAC;EAED,eAAe;IACb,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;MAChC,gFAAgF;MAChF,IAAI,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;MAEzC,qEAAqE;MACrE,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;QACtD,iBAAiB,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;OAClD;MAED,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;EACL,CAAC;EAED,oBAAoB,CAAC,MAAc;IACjC,IAAI,IAAI,CAAC,UAAU,EAAE;MACnB,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,yDAAyD;QACzD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;OACvC;WAAM,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;QACnC,uDAAuD;QACvD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;OACzB;WAAM;QACL,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;OAC9B;MAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;MACnE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;MACnE,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;EACH,CAAC;EAED,aAAa;IACX,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KACvC;EACH,CAAC;EAED,gBAAgB;IACd,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC1C;EACH,CAAC;EAED,UAAU;IACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,KAAK,EAAE;MAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACvD;IACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC;EACzC,CAAC;EAED;;KAEG;EACH,6BAA6B;IAC3B,OAAO,CACL,WAAK,KAAK,EAAC,kBAAkB;MAC3B,WAAK,EAAE,EAAC,iBAAiB,EAAC,KAAK,EAAC,SAAS,IACtC,IAAI,CAAC,WAAW,CACb;MACN,WAAK,KAAK,EAAC,sBAAsB;QAC/B,gCACc,UAAU,EACtB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,cAAc,CAAC,QAAQ,sBACf,QAAQ,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,EACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,iCACjB,IAAI,CAAC,aAAa,CAAC;YAC9C,EAAE,EAAE,uBAAuB;YAC3B,cAAc,EAAE,wCAAwC;WACzD,CAAC,GACF;QACF,gCACc,UAAU,EACtB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,cAAc,CAAC,IAAI,sBACX,QAAQ,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,EACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,iCACjB,IAAI,CAAC,aAAa,CAAC;YAC9C,EAAE,EAAE,mBAAmB;YACvB,cAAc,EAAE,oCAAoC;WACrD,CAAC,GACF,CACE,CACF,CACP,CAAC;EACJ,CAAC;EAED,gBAAgB;IACd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;MACzC,OAAO,CACL,SAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAuB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAC,SAAS,IACrG,IAAI,CAAC,aAAa,CAAC;QAClB,EAAE,EAAE,qBAAqB;QACzB,cAAc,EAAE,+BAA+B;OAChD,CAAC,CACA,CACL,CAAC;KACH;SAAM;MACL,OAAO,IAAI,CAAC;KACb;EACH,CAAC;EACD;;KAEG;EAEH,MAAM;IACJ,OAAO,CACL,EAAC,IAAI;MACH,WACE,EAAE,EAAC,mBAAmB,EACtB,KAAK,EAAE,qBAAqB,IAAI,CAAC,UAAU,EAAE,EAC7C,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAoB,CAAC;QAEpD,aACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,EAAE,EAAC,iBAAiB,EACpB,WAAW,EAAE,IAAI,CAAC,WAAW,gBACjB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACtE,EAAE,EAAE,4BAA4B;YAChC,cAAc,EAAE,4BAA4B;WAC7C,CAAC,EAAE,EACJ,OAAO,EAAE,CAAC,EAAS,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,EAAE,CAAC,MAA2B,CAAC,KAAK,CAAC,EAC/E,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EACnC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,uBACb,MAAM,EACxB,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,IAAI,CAAC,KAAK,GACjB;QACF,YAAM,KAAK,EAAC,iBAAiB,IAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAQ;QAC9E,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,6BAA6B,EAAE;QACnE,WACE,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,SAAS,eACL,QAAQ,iBACN,MAAM,EAClB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAiB,CAAC,IAExD,IAAI,CAAC,YAAY,CACd,CACF;MACL,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CACjD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-select.js","sourceRoot":"","sources":["../../../../src/components/wm-select/wm-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h, Component, Element, Event, EventEmitter, Listen, Prop, State, Watch, Host } from \"@stencil/core\";\nimport { forceUpdate } from \"@stencil/core\";\nimport { generateId, getTextDir, shouldOpenUp, intl, debounce } from \"../../global/functions\";\nimport { globalMessages } from \"../../global/intl\";\n\n@Component({\n tag: \"wm-select\",\n styleUrl: \"wm-select.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class Select {\n @Element() el!: HTMLWmSelectElement;\n\n private uid!: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ mutable: true }) invalid: boolean = false;\n @Prop() maxHeight?: string;\n @Prop({ mutable: true }) label?: string;\n @Prop() labelPosition: \"top\" | \"left\" | \"none\" = \"top\";\n @Prop() requiredField: boolean = false;\n @Prop({ mutable: true }) errorMessage: string = \"\";\n @Prop() multiple: boolean = false;\n @Prop() search: boolean = false;\n @Prop() selectAll: boolean = false;\n @Prop() placeholder: string = intl.formatMessage({\n id: \"select.multiPlaceholder\",\n defaultMessage: \"Make a selection\",\n description: \"Placeholder text. Use imperative\",\n });\n @Prop() searchPlaceholder: string = intl.formatMessage({\n id: \"select.searchPlaceholder\",\n defaultMessage: \"Search\",\n description: \"Placeholder text. Use imperative\",\n });\n @Prop() allSelectedMessage: string = intl.formatMessage({\n id: \"select.allSelected\",\n defaultMessage: \"All selected\",\n description: \"Text displayed when all options are selected\",\n });\n\n selectAllMessage = intl.formatMessage({\n id: \"select.selectAll\",\n defaultMessage: \"Select All\",\n });\n\n deselectAllMessage = intl.formatMessage({\n id: \"select.deselectAll\",\n defaultMessage: \"Deselect All\",\n });\n\n allOptionsSelectedMessage = intl.formatMessage({\n id: \"select.allOptionsSelected\",\n defaultMessage: \"All options selected\",\n });\n\n allOptionsDeselectedMessage = intl.formatMessage({\n id: \"select.allOptionsDeselected\",\n defaultMessage: \"All options deselected\",\n });\n\n @State() isTabbing: boolean = false;\n @State() isExpanded: boolean = false;\n @State() announcement: string = \"\";\n @Event() wmSelectDidLoad!: EventEmitter<void>;\n @Event() wmSelectBlurred!: EventEmitter<void>;\n @Event() wmSelectChanged!: EventEmitter<Object>;\n @Event() wmComponentBlurred!: EventEmitter<void>; // deprecated in favor of wmSelectBlurred\n @Event() wmSelectSearchChanged!: EventEmitter<Object>;\n\n private buttonEl!: HTMLButtonElement;\n private dropdownEl!: HTMLDivElement;\n private selectAllEl!: HTMLButtonElement;\n private listboxEl!: HTMLDivElement;\n private liveRegionEl!: HTMLDivElement;\n private searchFieldWrapperEl!: HTMLDivElement;\n private searchFieldEl!: HTMLInputElement;\n private errorContainer!: HTMLDivElement;\n private keysSoFar: string = \"\";\n private searchIndex: number = 0;\n private openUp: boolean = false;\n get childOptions() {\n return Array.from(this.el.querySelectorAll(\"wm-option\"));\n }\n get duplicateOptions(): HTMLWmOptionElement[] {\n return Array.from(this.el.shadowRoot!.querySelectorAll(\"wm-option\"));\n }\n get allOptionEls(): HTMLWmOptionElement[] {\n // this includes both slotted wm-options and internally created wm-options\n return this.duplicateOptions.concat(this.childOptions);\n }\n get visibleOptionEls(): HTMLWmOptionElement[] {\n return this.allOptionEls.filter(\n (option) => !option.classList.contains(\"hidden\") && !option.classList.contains(\"filtered-out\")\n );\n }\n\n //////////////////////////////////////\n // for search variants\n get searchTerm(): string {\n return this.searchFieldEl ? this.searchFieldEl.value : \"\";\n }\n get filteredOptions(): HTMLWmOptionElement[] {\n return this.childOptions.filter((option) =>\n option.textContent?.toLowerCase().includes(this.searchTerm.toLowerCase())\n );\n }\n //////////////////////////////////////\n\n //////////////////////////////////////\n // for multiselect button text\n private overflowCount: number = 0;\n get selectedOptions(): HTMLWmOptionElement[] {\n return Array.from(this.el.querySelectorAll(\"wm-option\")).filter((x) => x.selected);\n }\n private displayedOptions: HTMLWmOptionElement[] = [];\n get allSelected() {\n return this.childOptions.every((option) => option.selected);\n }\n //////////////////////////////////////\n\n get resultsFoundMessage() {\n return intl.formatMessage(\n {\n id: \"select.searchResultsFound\",\n defaultMessage: \"{numResults, plural, one {1 option found} other {# options found}}\",\n description: \"The message read by the screen reader, indicating how many results a search returned\",\n },\n { numResults: this.filteredOptions.length }\n );\n }\n\n get noResultsFoundMessage() {\n return intl.formatMessage({\n id: \"select.noSearchResults\",\n defaultMessage: \"No results found. Please try your search again.\",\n description: \"The message displayed when no options pass the search filter\",\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(\"wmOptionSelected\")\n handleOptionSelection(ev: CustomEvent): void {\n const option: HTMLWmOptionElement = ev.detail;\n this.focusOption(option);\n if (!this.multiple) {\n // if the option was already selected, leave selected states untouched and don't fire the event\n if (!option.selected) {\n this.selectOption(option);\n const detail = { changedOption: option, selectedOptions: [option] };\n this.wmSelectChanged.emit(detail);\n // change is deprecated in favor of wmSelectChanged\n // because of issues with React wrappers when using native events name\n const event = new CustomEvent(\"change\", { detail: detail });\n // @ts-ignore\n this.el.dispatchEvent(event);\n }\n this.close();\n } else {\n this.selectOption(option);\n // we pass the original option with the event, as it's the only one the devs know or care about\n // devs will typically set a `value` on the option, which is not copied over\n // we could have taken the value and put it on the duplicate option,\n // but this approach is more flexible (what if they want to have a data attribute?)\n const isDuplicate: boolean = option.classList.contains(\"duplicate\");\n const originalOption: HTMLWmOptionElement = isDuplicate ? this.findCorrespondingOption(option) : option;\n const selectedOptions = this.childOptions.filter((o) => o.selected);\n const detail = { changedOption: originalOption, selectedOptions: selectedOptions };\n this.wmSelectChanged.emit(detail);\n // change is deprecated in favor of wmSelectChanged\n // because of issues with React wrappers when using native events name\n const event = new CustomEvent(\"change\", { detail: detail });\n // @ts-ignore\n this.el.dispatchEvent(event);\n }\n }\n\n @Listen(\"wmEnterKeyPressed\")\n handleChildEnter(): void {\n // only occurs for multiselects. handle the click, then close\n this.close();\n }\n\n @Listen(\"wmKeyUpPressed\")\n handleChildUp(ev: CustomEvent): void {\n this.moveUp(ev.detail as HTMLWmOptionElement);\n }\n\n @Listen(\"wmKeyDownPressed\")\n handleChildDown(ev: CustomEvent): void {\n this.moveDown(ev.detail as HTMLWmOptionElement);\n }\n\n @Listen(\"wmHomeKeyPressed\")\n moveToFirstOption(): void {\n this.focusOption(this.visibleOptionEls[0]);\n }\n\n @Listen(\"wmEndKeyPressed\")\n moveToLastOption(): void {\n this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);\n }\n\n @Listen(\"wmEscKeyPressed\")\n closePopupOnEscape(): void {\n this.close();\n }\n\n @Listen(\"wmOptionBlurred\")\n handleOptionBlur(ev: CustomEvent): void {\n // if the Option is blurred to something other than the component emit a blur event with the appropriate relatedTarget\n // keeps our component's blur events accurate, and closes when focusing browser address bar\n if (!this.isElOrChild(ev.detail.relatedTarget)) {\n const event = new CustomEvent(\"blur\");\n // @ts-ignore\n event.relatedTarget = ev.detail.relatedTarget;\n this.el.dispatchEvent(event);\n }\n }\n\n @Listen(\"click\", { target: \"document\", capture: true })\n handleClick(ev: MouseEvent): void {\n if (!this.isElOrChild(ev.target as HTMLElement)) {\n this.close();\n }\n }\n\n handleSelectAllClick() {\n this.allSelected ? this.deselectAllOptions() : this.selectAllOptions();\n }\n\n selectAllOptions() {\n this.allOptionEls.forEach((o) => (o.selected = true));\n this.setSelectAllButton();\n this.setButtonText();\n const detail = { changedOption: null, selectedOptions: this.childOptions };\n this.wmSelectChanged.emit(detail);\n }\n\n deselectAllOptions() {\n this.allOptionEls.forEach((o) => (o.selected = false));\n this.setSelectAllButton();\n this.setButtonText();\n const detail = { changedOption: null, selectedOptions: [] };\n this.wmSelectChanged.emit(detail);\n }\n\n handleButtonBlur(ev: FocusEvent) {\n if (this.isElOrChild(ev.relatedTarget as HTMLElement)) {\n // do not emit a blur event when opening the dropdown and focusing the Options\n ev.stopPropagation();\n }\n }\n\n handleSearchFieldBlur(ev: FocusEvent) {\n this.searchFieldWrapperEl.classList.remove(\"focus\");\n if (this.isElOrChild(ev.relatedTarget as HTMLElement)) {\n // do not emit a blur event when moving from searchfield to options\n ev.stopPropagation();\n }\n }\n\n @Listen(\"keydown\")\n handleKey(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n if (this.isExpanded === false) {\n ev.preventDefault();\n this.open(\"next\");\n }\n break;\n\n case \"ArrowUp\":\n if (this.isExpanded === false) {\n ev.preventDefault();\n this.open(\"previous\");\n }\n break;\n }\n }\n\n componentWillLoad() {\n if (!this.label) {\n console.error(\n \"For accessibility purposes, this component requires a label (even if `label-position` is set to `none`).\"\n );\n }\n\n this.uid = this.el.id ? this.el.id : generateId();\n\n if (document.body.classList.contains(\"wmcl-user-is-tabbing\")) {\n this.toggleTabbingOn();\n }\n\n // set initial selections\n if (this.selectedOptions.length > 0) {\n this.selectedOptions.forEach((x) => {\n this.displayedOptions.push(x);\n });\n // single Select only, pre-select if no default option from dev\n } else if (!this.multiple) {\n this.selectOption(this.allOptionEls[0]);\n }\n }\n\n componentDidLoad() {\n this.wmSelectDidLoad.emit();\n this.dropdownEl.classList.add(\"hidden\");\n forceUpdate(this.el);\n\n // Dev can overwrite the max-height rule set in the Sass file\n if (this.maxHeight) {\n this.listboxEl.style.maxHeight = this.maxHeight;\n }\n\n if (this.multiple) {\n this.updateOptionVisibility();\n }\n this.setButtonText();\n }\n\n componentWillUpdate() {\n if (this.multiple) {\n // find last visible duplicate option and apply .last class\n const visibleDuplicateOptions = this.visibleOptionEls.filter((option) => option.classList.contains(\"duplicate\"));\n visibleDuplicateOptions.forEach((option, idx) => {\n if (idx === visibleDuplicateOptions.length - 1) {\n option.classList.add(\"last\");\n } else {\n option.classList.remove(\"last\");\n }\n });\n }\n }\n\n moveUp(el: HTMLElement) {\n const focusableEls: HTMLElement[] = this.visibleOptionEls;\n if (this.selectAllEl) {\n focusableEls.unshift(this.selectAllEl);\n }\n if (this.searchFieldEl) {\n focusableEls.unshift(this.searchFieldEl);\n }\n\n const prevEl = focusableEls[focusableEls.indexOf(el) - 1] || focusableEls[focusableEls.length - 1];\n\n if (prevEl) {\n this.focusOption(prevEl);\n }\n }\n\n moveDown(el: HTMLElement) {\n const focusableEls: HTMLElement[] = this.visibleOptionEls;\n if (this.selectAllEl) {\n focusableEls.unshift(this.selectAllEl);\n }\n if (this.searchFieldEl) {\n focusableEls.unshift(this.searchFieldEl);\n }\n\n const nextEl = focusableEls[focusableEls.indexOf(el) + 1] || focusableEls[0];\n\n if (nextEl) {\n this.focusOption(nextEl);\n }\n }\n\n open(optionToSelect?: \"next\" | \"previous\"): void {\n if (!this.disabled) {\n const elHeight = this.el.clientHeight;\n const buttonHeight = this.buttonEl.clientHeight;\n this.openUp = shouldOpenUp(\n this.el,\n this.dropdownEl,\n // when opening up, dropdown covers both label and button\n elHeight,\n // when opening down, dropdown covers only the button\n buttonHeight\n );\n this.isExpanded = true;\n this.dropdownEl.classList.remove(\"hidden\");\n\n window.requestAnimationFrame(() => {\n switch (optionToSelect) {\n case \"next\":\n // search variant focuses search field\n // all others focus option \"after\" last selected option (this can be the first option)\n if (this.search) {\n this.searchFieldEl.focus();\n this.listboxEl.scrollTop = 0;\n } else {\n this.moveDown(this.visibleOptionEls.filter((x) => x.selected).slice(-1)[0]);\n }\n break;\n case \"previous\":\n // search variant focuses last option\n // all others focus option \"above\" first selected option (this can be the last option)\n if (this.search) {\n this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);\n } else {\n this.moveUp(this.visibleOptionEls.filter((x) => x.selected)[0]);\n }\n break;\n default:\n // search variant focuses search field\n // all others focus the selected option\n // if no option is selected (empty multiselect), focuses first option\n if (this.search) {\n this.searchFieldEl.focus();\n this.listboxEl.scrollTop = 0;\n } else if (this.selectedOptions.length > 0) {\n this.focusOption(this.visibleOptionEls.filter((x) => x.selected)[0]);\n } else {\n this.focusOption(this.visibleOptionEls[0]);\n }\n break;\n }\n });\n }\n }\n\n close(returnFocus: boolean = true): void {\n if (this.isExpanded) {\n this.isExpanded = false;\n this.allOptionEls.map((i) => (i.focused = false));\n\n window.setTimeout(() => {\n this.dropdownEl.classList.add(\"hidden\");\n if (this.multiple) {\n this.updateOptionVisibility();\n }\n // clear search field, reset filtered / bolded state of wm-options\n if (this.search) {\n this.searchFieldEl.value = \"\";\n this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });\n }\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\n updateOptionVisibility() {\n // this runs for search multiselects, where selected options are rendered at the top of the dropdown list\n // slotted wm-options are hidden if selected, and duplicate wm-options are made visible if selected\n this.childOptions.forEach((option, idx) => {\n const duplicateOption = this.duplicateOptions[idx];\n if (option.selected) {\n option.classList.add(\"hidden\");\n duplicateOption.classList.remove(\"hidden\");\n } else {\n option.classList.remove(\"hidden\");\n duplicateOption.classList.add(\"hidden\");\n }\n });\n }\n\n focusOption(option: HTMLElement): void {\n this.allOptionEls.forEach((i) => (i.focused = i === option));\n\n // option must be scrolledIntoView before focused\n // if focus is called first the option might be positioned incorrectly (in the center of the dropdown) and scrollIntoView will do nothing as the option will already be in view\n option.scrollIntoView({ block: \"nearest\" });\n\n // scrollIntoView does not work when the container of the element it's called on is not rendered to the page (in our case the dropdown is still closed and has transform: scaleY(0))\n // when opening the dropdown, scrollIntoView must be delayed to a point where the browser recognizes content within it as able to be scrolled to\n // in Safari in particular, the soonest this seems to happen is 20ms. The longest we can wait before any jumping in the open dropdown is noticeable is 60ms\n window.setTimeout(() => option.scrollIntoView({ block: \"nearest\" }), 60);\n\n option.focus();\n }\n\n selectOption(option: HTMLWmOptionElement): void {\n // beware of this function's name. For multiselect it actually toggles the selected state, so it can also deselect the option\n if (option.classList.contains(\"duplicate\")) {\n // if clicking on a duplicate option, toggle selected property of real one, then rerender\n const correspondingOption = this.findCorrespondingOption(option);\n correspondingOption.selected = !correspondingOption.selected;\n forceUpdate(this.el);\n } else if (this.multiple) {\n option.selected = !option.selected;\n } else {\n this.childOptions.forEach((x) => (x.selected = x === option));\n }\n // update the selectAll checkbox when an option is de/selected\n // checking is the el is present, implies that this.multiple and this.selectAll are true\n if (this.selectAllEl) {\n this.setSelectAllButton();\n }\n this.setButtonText();\n }\n\n @Listen(\"wmLetterPressed\")\n findAndFocusOption(ev: CustomEvent): void {\n const character = ev.detail.toLowerCase();\n\n if (!this.keysSoFar) {\n // if first character entered, set currently focused option as the starting index for the search\n this.visibleOptionEls.forEach((option, idx) => {\n if (option.focused) {\n this.searchIndex = idx;\n }\n });\n }\n\n this.keysSoFar += character;\n\n let nextMatch = this.findMatchInRange(this.visibleOptionEls, this.searchIndex + 1, this.visibleOptionEls.length);\n if (!nextMatch) {\n // if match can't be found from starting option downwards, search from top\n nextMatch = this.findMatchInRange(this.visibleOptionEls, 0, this.searchIndex);\n }\n\n if (nextMatch) {\n // findMatchInRange still might have returned null, only focus if match found\n this.focusOption(nextMatch as HTMLWmOptionElement);\n }\n this.debouncedClearKeysSoFar();\n }\n\n debouncedClearKeysSoFar = debounce(() => {\n this.keysSoFar = \"\";\n }, 500);\n\n findMatchInRange(list: HTMLWmOptionElement[], startIndex: number, endIndex: number): HTMLWmOptionElement | null {\n let match: HTMLWmOptionElement | null = null;\n let optionsInRange = list.slice(startIndex, endIndex);\n\n // Find the first option starting with the keysSoFar substring, searching in\n // the specified range of options\n optionsInRange.forEach((option) => {\n const label = option.textContent;\n if (!match && label && label.toLowerCase().startsWith(this.keysSoFar)) {\n match = option;\n }\n });\n\n return match;\n }\n\n findCorrespondingOption(el: HTMLWmOptionElement): HTMLWmOptionElement {\n // if duplicate, returns the child wm-option\n // if child wm-option, returns duplicate\n const isDuplicate = el.classList.contains(\"duplicate\");\n return isDuplicate\n ? this.childOptions[this.duplicateOptions.indexOf(el)]\n : this.duplicateOptions[this.childOptions.indexOf(el)];\n }\n\n isElOrChild(el: HTMLElement) {\n // determines whether or not the element is the component, a child of the component, or exists within the component's shadowroot\n return el === this.el || this.el.contains(el) || this.el.shadowRoot?.contains(el);\n }\n\n @Watch(\"errorMessage\")\n exposeErrors() {\n // When the error changes, a new id is set for the error container and the button's aria-describedby attribute is updated accordingly. This is to make sure the screen reader announces teh updated errors in Firefox. See this longstanding bug: https://bugzilla.mozilla.org/show_bug.cgi?id=493683\n const newId = generateId();\n this.errorContainer.id = `wm-errors-${newId}`;\n this.buttonEl.setAttribute(\"aria-describedby\", `wm-errors-${newId}`);\n }\n\n renderErrorContainer() {\n return (\n <div\n id=\"wm-errors\"\n class={this.errorMessage ? \"error-message\" : \"\"}\n ref={(el) => (this.errorContainer = el as HTMLDivElement)}\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n >\n {this.errorMessage}\n </div>\n );\n }\n\n handleComponentBlur(ev: FocusEvent): void {\n // Do not close or emit custom blur event when blurring to an element inside (wm-option)\n if (!this.el.contains(ev.relatedTarget as Node)) {\n this.close(false);\n this.wmSelectBlurred.emit();\n this.wmComponentBlurred.emit(); // deprecated\n }\n }\n\n // on search field or select all. keydown on options is handled via events.\n handleKeyDown(ev: KeyboardEvent) {\n const el = ev.target as HTMLElement;\n switch (ev.key) {\n case \"ArrowDown\":\n ev.preventDefault();\n this.moveDown(ev.target as HTMLElement);\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.moveUp(ev.target as HTMLElement);\n break;\n case \"Escape\":\n ev.preventDefault();\n this.close();\n break;\n case \"Enter\":\n if (el === this.selectAllEl) {\n ev.preventDefault();\n this.handleSelectAllClick();\n this.close();\n }\n break;\n case \" \":\n if (el === this.selectAllEl) {\n ev.preventDefault();\n this.handleSelectAllClick();\n }\n break;\n }\n }\n\n debouncedSearch = debounce(() => {\n this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });\n\n if (this.filteredOptions.length) {\n this.announce(this.resultsFoundMessage);\n } else {\n this.announce(this.noResultsFoundMessage);\n }\n }, 150);\n\n setButtonText() {\n this.displayedOptions = this.childOptions\n .filter((x) => x.selected)\n .map((y) => (!y.classList.contains(\"hidden\") ? y : this.findCorrespondingOption(y)));\n\n // handle overflow + counter for multiselect\n if (this.multiple) {\n // this is a fixed measurement accounting for the max width of a 3 character overflow counter\n const overflowCounterWidth = 38;\n const computedStyle = window.getComputedStyle(this.buttonEl);\n\n // there seems to be no quick way to get an elements width without padding, except for subtracting padding manually\n const paddingLeft = parseInt(computedStyle.getPropertyValue(\"padding-left\").slice(0, -2));\n const paddingRight = parseInt(computedStyle.getPropertyValue(\"padding-right\").slice(0, -2));\n\n const availableSpace = this.buttonEl.clientWidth - paddingLeft - paddingRight - overflowCounterWidth;\n\n let optionsWidths = this.displayedOptions.map((x) => x.shadowRoot!.querySelector(\".option-wrapper\")!.clientWidth);\n\n let optionsTotalWidth = optionsWidths.reduce((acc, x) => acc + x, 0);\n this.overflowCount = 0;\n\n while (optionsTotalWidth > availableSpace && this.displayedOptions.length > 1) {\n this.overflowCount++;\n optionsTotalWidth -= optionsWidths[optionsWidths.length - 1];\n optionsWidths.pop();\n this.displayedOptions.pop();\n }\n }\n }\n\n setSelectAllButton() {\n if (this.allSelected) {\n this.selectAllEl.textContent = this.deselectAllMessage;\n this.announce(this.allOptionsSelectedMessage);\n } else {\n this.selectAllEl.textContent = this.selectAllMessage;\n if (this.selectedOptions.length === 0) {\n this.announce(this.allOptionsDeselectedMessage);\n }\n }\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.announcement = message;\n }\n\n renderButtonText() {\n if (this.multiple && this.displayedOptions.length < 1) {\n return <span>{this.placeholder}</span>;\n } else if (this.multiple && this.allSelected && this.overflowCount > 0) {\n return this.allSelectedMessage;\n } else {\n return this.displayedOptions.map((x, idx) => (\n <span>\n {idx > 0 ? \", \" : \"\"}\n {x.textContent}\n </span>\n ));\n }\n }\n\n renderSubinfo() {\n // multiselects cannot have subinfo for options\n if (!this.multiple && this.selectedOptions.length > 0 && this.selectedOptions[0].subinfo) {\n return <span class=\"subinfo\">{this.selectedOptions[0].subinfo}</span>;\n }\n }\n\n renderOverflowCount() {\n if (this.overflowCount > 0 && !this.allSelected) {\n return (\n <span>\n <span class=\"overflow-counter\">+{this.overflowCount}</span>\n </span>\n );\n }\n }\n\n renderSearchField() {\n return (\n <div class=\"search\">\n <div class=\"searchfield-wrapper\" ref={(el) => (this.searchFieldWrapperEl = el as HTMLInputElement)}>\n <div class=\"icon\"></div>\n <input\n ref={(el) => (this.searchFieldEl = el as HTMLInputElement)}\n class=\"searchfield\"\n role=\"combobox\"\n aria-controls={`list-${this.uid}`}\n aria-expanded={this.isExpanded ? \"true\" : \"false\"}\n onKeyDown={(ev) => this.handleKeyDown(ev)}\n onFocus={() => this.searchFieldWrapperEl.classList.add(\"focus\")}\n onBlur={(ev) => this.handleSearchFieldBlur(ev)}\n onInput={() => this.debouncedSearch()}\n placeholder={this.searchPlaceholder}\n ></input>\n </div>\n </div>\n );\n }\n\n renderSearchFailedMessage() {\n return <div class=\"search-results-message\">{this.noResultsFoundMessage}</div>;\n }\n\n renderSelectAllButton() {\n if (this.selectAll && this.multiple && this.searchTerm == \"\") {\n return (\n <button\n ref={(el) => (this.selectAllEl = el as HTMLButtonElement)}\n class=\"select-all\"\n onClick={() => this.handleSelectAllClick()}\n onKeyDown={(ev) => this.handleKeyDown(ev)}\n tabindex=\"-1\"\n >\n {this.allSelected ? this.deselectAllMessage : this.selectAllMessage}\n </button>\n );\n }\n }\n\n renderDuplicateOptions() {\n return Array.from(this.el.children).map((option) => {\n return (\n <wm-option class=\"duplicate\" selected={(option as HTMLWmOptionElement).selected}>\n {option.textContent}\n </wm-option>\n );\n });\n }\n\n render() {\n const buttonProps = {\n id: `selectbtn-${this.uid}`,\n [\"disabled\"]: this.disabled,\n [\"aria-controls\"]: `list-${this.uid}`,\n [\"aria-labelledby\"]: `label-${this.uid} selectbtn-${this.uid}`,\n [\"aria-describedby\"]: \"wm-errors\",\n [\"aria-expanded\"]: this.isExpanded ? \"true\" : \"false\",\n onClick: () => (this.isExpanded ? this.close() : this.open()),\n };\n\n return (\n <Host onBlur={(ev: FocusEvent) => this.handleComponentBlur(ev)}>\n <div\n class={`wrapper ${getTextDir()} label-${this.labelPosition} ${\n this.invalid || this.errorMessage ? \"invalid\" : \"\"\n }`}\n >\n <div class=\"label-wrapper\">\n <label class=\"label\" id={`label-${this.uid}`} htmlFor={`selectbtn-${this.uid}`}>\n {this.label}\n {\n // we can't use aria-required or required attributes because it's invalid on the elements we're using (button controlling a listbox)\n this.requiredField ? (\n <span class=\"required\">\n <span class=\"sr-only\">{globalMessages.requiredField}</span>\n <span aria-hidden=\"true\">*</span>\n </span>\n ) : (\n \"\"\n )\n }\n </label>\n </div>\n <div class=\"button-wrapper\">\n <button\n {...buttonProps}\n class={`displayedoption ${this.isTabbing ? \"user-is-tabbing\" : \"\"}`}\n ref={(el) => (this.buttonEl = el as HTMLButtonElement)}\n onBlur={(ev) => this.handleButtonBlur(ev)}\n onFocus={() => this.close()}\n >\n <span\n class={\n this.selectedOptions.length > 0 && this.selectedOptions.filter((x) => x.subinfo).length > 0\n ? \"overflowcontrol hassubinfo\"\n : \"overflowcontrol\"\n }\n >\n <span class=\"button-text\">{this.renderButtonText()}</span>\n {this.renderSubinfo()}\n </span>\n {this.renderOverflowCount()}\n </button>\n <div\n class={`dropdown ${this.isExpanded ? \"open\" : \"\"} ${this.openUp ? \"upwards\" : \"\"}`}\n ref={(el) => (this.dropdownEl = el as HTMLDivElement)}\n >\n {this.search && this.renderSearchField()}\n <div\n id={`list-${this.uid}`}\n class=\"options-wrapper\"\n tabindex={-1}\n role=\"listbox\"\n aria-multiselectable={this.multiple ? \"true\" : null}\n aria-labelledby={`label-${this.uid}`}\n ref={(el) => (this.listboxEl = el as HTMLDivElement)}\n >\n {this.search && this.filteredOptions.length === 0 && this.renderSearchFailedMessage()}\n {this.renderSelectAllButton()}\n {this.multiple && this.renderDuplicateOptions()}\n <slot />\n </div>\n </div>\n {this.renderErrorContainer()}\n <div\n id=\"announcement\"\n aria-live=\"polite\"\n class=\"sr-only\"\n ref={(el) => (this.liveRegionEl = el as HTMLDivElement)}\n >\n {this.announcement}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-snackbar.js","sourceRoot":"","sources":["../../../../src/components/wm-snackbar/wm-snackbar.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-tab-item.js","sourceRoot":"","sources":["../../../../../src/components/wm-tabs/wm-tab-item/wm-tab-item.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-tab-list.js","sourceRoot":"","sources":["../../../../../src/components/wm-tabs/wm-tab-list/wm-tab-list.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-tab-panel.js","sourceRoot":"","sources":["../../../../../src/components/wm-tabs/wm-tab-panel/wm-tab-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAgB,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,MAAM,OAAO,QAAQ;;kBAMwB,KAAK;iBAKP,EAAE;;EAI3C,iBAAiB;IACf,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;EAC1D,CAAC;EAED,gBAAgB;IACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;EAClD,CAAC;EAGD,eAAe;IACb,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;EAC3C,CAAC;EAGD,gBAAgB;IACd,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;EAC9C,CAAC;EAED,MAAM;IACJ,OAAO,EAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAS,CAAC;EAC9E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-tag-input-row.js","sourceRoot":"","sources":["../../../../../src/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,IAAI,EAAE,MAAM,eAAe,CAAC;AAK9E,MAAM,OAAO,WAAW;;;;;;kBAOI,KAAK;;EAI/B,kBAAkB;IAChB,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;EACnC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wm-tag-input.js","sourceRoot":"","sources":["../../../../src/components/wm-tag-input/wm-tag-input.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|