@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,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,f as i,h as s,H as r,g as a}from"./p-1c23de4a.js";import{g as o,d as n,q as h,i as l,r as d,u as p,j as c,s as w,m as g}from"./p-c6a0f7e5.js";import{g as m}from"./p-9b2dfb54.js";const u=':host,wm-tag-input{font-family:inherit;width:100%;display:block}:host *,wm-tag-input *{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px}:host .wrapper,wm-tag-input .wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:0.875rem}:host .wrapper .label,wm-tag-input .wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}:host .wrapper .label .required,wm-tag-input .wrapper .label .required{color:#c0392b}:host .wrapper.label-left,wm-tag-input .wrapper.label-left{-ms-flex-direction:row;flex-direction:row}:host .wrapper.label-left .label-wrapper,wm-tag-input .wrapper.label-left .label-wrapper{line-height:2.5rem}:host .wrapper.label-left .label-wrapper .label,wm-tag-input .wrapper.label-left .label-wrapper .label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}:host .wrapper.label-none label,wm-tag-input .wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}:host .wrapper.invalid .label,wm-tag-input .wrapper.invalid .label{color:#c0392b}:host .wrapper.invalid .label:after,wm-tag-input .wrapper.invalid .label:after{display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\\f026";margin-left:0.3125rem}[dir=RTL] :host .wrapper.invalid .label:after,[dir=RTL] wm-tag-input .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}:host .wrapper.rtl.label-left .label,wm-tag-input .wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}:host .wrapper,wm-tag-input .wrapper{width:100%;height:100%;position:relative}:host .field-wrapper,wm-tag-input .field-wrapper{position:relative;width:100%;border:1px solid #4a4a4a;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px}:host .field-wrapper.focused,wm-tag-input .field-wrapper.focused{-webkit-box-shadow:0 0 0 1px #19a1a9;-moz-box-shadow:0 0 0 1px #19a1a9;box-shadow:0 0 0 1px #19a1a9;outline:none;border-color:#19a1a9}:host .field-wrapper.invalid,wm-tag-input .field-wrapper.invalid{-webkit-box-shadow:0 0 0 1px #c0392b;-moz-box-shadow:0 0 0 1px #c0392b;box-shadow:0 0 0 1px #c0392b;border-color:#c0392b}:host .character-count,wm-tag-input .character-count{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:5rem;background-color:rgba(74, 74, 74, 0.05);font-size:0.875rem;font-weight:500;-ms-flex-item-align:stretch;align-self:stretch}:host .tags-and-input-wrapper,wm-tag-input .tags-and-input-wrapper{position:relative;width:100%;padding:0.5rem 0.25rem 0.5rem 0;margin-bottom:-0.5rem}:host .upper-row,wm-tag-input .upper-row{width:100%;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-pack:justify;justify-content:space-between}:host .upper-row:before,wm-tag-input .upper-row:before{-ms-flex-item-align:start;align-self:flex-start;display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\\f349";color:#b5b5b5;padding:0.75rem 0.5rem 0.75rem 0.75rem}:host .lower-row,wm-tag-input .lower-row{width:100%;min-height:1.875rem}:host #max-tags,wm-tag-input #max-tags{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:1.875rem;background-color:#e6e6e6;padding:0.5rem 1rem;color:#4a4a4a;font-size:0.875rem;border-top:1px solid rgba(35, 35, 35, 0.6);border-radius:0 0 3px 3px}:host .tag-area,wm-tag-input .tag-area{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0}:host .tag-area:focus,wm-tag-input .tag-area:focus{outline:none}:host .tag-area [role=option],wm-tag-input .tag-area [role=option]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;height:1.75rem;list-style:none;color:#4a4a4a;background-color:rgba(3, 0, 0, 0.1);padding:0.5rem 0.625rem;margin-bottom:0.5rem;margin-right:0.25rem;margin-left:0.25rem;-webkit-transition:background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);white-space:pre}:host .tag-area [role=option].highlight,wm-tag-input .tag-area [role=option].highlight{-webkit-animation:fadeIn 1s;animation:fadeIn 1s}@-webkit-keyframes fadeIn{0%{background-color:rgba(3, 0, 0, 0.1)}50%{background-color:#c8dfcc}100%{background-color:rgba(3, 0, 0, 0.1)}}@keyframes fadeIn{0%{background-color:rgba(3, 0, 0, 0.1)}50%{background-color:#c8dfcc}100%{background-color:rgba(3, 0, 0, 0.1)}}:host .tag-area [role=option].focused,wm-tag-input .tag-area [role=option].focused{background-color:#d1d1d1}:host .tag-area [role=option].locked,wm-tag-input .tag-area [role=option].locked{background-color:#6b6b6b;color:white}:host .tag-area [role=option] .icon,wm-tag-input .tag-area [role=option] .icon{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;height:1.25rem;width:1.25rem;padding:0;margin-left:0.5rem}:host .tag-area [role=option] .icon.remove-btn,wm-tag-input .tag-area [role=option] .icon.remove-btn{border:1px solid #575195;color:#575195;border-radius:50%;cursor:pointer;-webkit-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1)}:host .tag-area [role=option] .icon.remove-btn:hover,wm-tag-input .tag-area [role=option] .icon.remove-btn:hover{color:white;background-color:#575195}:host .tag-area [role=option] .icon.remove-btn:before,wm-tag-input .tag-area [role=option] .icon.remove-btn:before{display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\\f156"}:host .tag-area [role=option] .icon.lock,wm-tag-input .tag-area [role=option] .icon.lock{color:white}:host .tag-area [role=option] .icon.lock:before,wm-tag-input .tag-area [role=option] .icon.lock:before{display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\\f341"}:host input,wm-tag-input input{font-family:inherit;border:none;height:1.75rem;padding:0;margin-bottom:0.5rem;margin-right:0.25rem;padding-left:0.5rem;right:0px}:host input.hidden,wm-tag-input input.hidden{display:none}:host input:focus,wm-tag-input input:focus{outline:none}:host .dropdown-wrapper,wm-tag-input .dropdown-wrapper{margin:0;padding:0;-webkit-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-ms-transition:transform 0.25s ease;-webkit-transition:transform 0.25s ease;-moz-transition:transform 0.25s ease;-webkit-transition:-webkit-transform 0.25s ease;transition:-webkit-transform 0.25s ease;transition:transform 0.25s ease;transition:transform 0.25s ease, -webkit-transform 0.25s ease;-ms-transform:scale(1, 0);-webkit-transform:scale(1, 0);-moz-transform:scale(1, 0);transform:scale(1, 0);-ms-transform-origin:center top;-webkit-transform-origin:center top;-moz-transform-origin:center top;transform-origin:center top;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;position:absolute;top:calc(100% + 2px);right:0;background:#fff;z-index:100;width:100%;font-size:0.875rem}:host .dropdown-wrapper .dropdown,wm-tag-input .dropdown-wrapper .dropdown{-webkit-overflow-scrolling:touch;overflow:auto;max-height:12.5rem;margin:0;padding:0}:host .dropdown-wrapper.open,wm-tag-input .dropdown-wrapper.open{-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);transform:scale(1, 1)}:host .dropdown-wrapper.upwards,wm-tag-input .dropdown-wrapper.upwards{top:unset;bottom:calc(100% + 2px);-ms-transform-origin:center bottom;-webkit-transform-origin:center bottom;-moz-transform-origin:center bottom;transform-origin:center bottom}:host .dropdown-wrapper li,:host .dropdown-wrapper div,wm-tag-input .dropdown-wrapper li,wm-tag-input .dropdown-wrapper div{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:0 1rem;background:#fff;list-style:none;height:2.6875rem;white-space:pre}:host .dropdown-wrapper li[role=option],:host .dropdown-wrapper li.add-new-btn,:host .dropdown-wrapper div[role=option],:host .dropdown-wrapper div.add-new-btn,wm-tag-input .dropdown-wrapper li[role=option],wm-tag-input .dropdown-wrapper li.add-new-btn,wm-tag-input .dropdown-wrapper div[role=option],wm-tag-input .dropdown-wrapper div.add-new-btn{cursor:pointer;color:#575195;font-weight:bold;width:100%;border:none}:host .dropdown-wrapper li[role=option][aria-selected=true],:host .dropdown-wrapper li.add-new-btn[aria-selected=true],:host .dropdown-wrapper div[role=option][aria-selected=true],:host .dropdown-wrapper div.add-new-btn[aria-selected=true],wm-tag-input .dropdown-wrapper li[role=option][aria-selected=true],wm-tag-input .dropdown-wrapper li.add-new-btn[aria-selected=true],wm-tag-input .dropdown-wrapper div[role=option][aria-selected=true],wm-tag-input .dropdown-wrapper div.add-new-btn[aria-selected=true]{color:#6b6b6b;font-style:italic;font-weight:normal;cursor:unset}:host .dropdown-wrapper li[role=option]:hover:not([aria-selected=true]),:host .dropdown-wrapper li[role=option].focused,:host .dropdown-wrapper li.add-new-btn:hover:not([aria-selected=true]),:host .dropdown-wrapper li.add-new-btn.focused,:host .dropdown-wrapper div[role=option]:hover:not([aria-selected=true]),:host .dropdown-wrapper div[role=option].focused,:host .dropdown-wrapper div.add-new-btn:hover:not([aria-selected=true]),:host .dropdown-wrapper div.add-new-btn.focused,wm-tag-input .dropdown-wrapper li[role=option]:hover:not([aria-selected=true]),wm-tag-input .dropdown-wrapper li[role=option].focused,wm-tag-input .dropdown-wrapper li.add-new-btn:hover:not([aria-selected=true]),wm-tag-input .dropdown-wrapper li.add-new-btn.focused,wm-tag-input .dropdown-wrapper div[role=option]:hover:not([aria-selected=true]),wm-tag-input .dropdown-wrapper div[role=option].focused,wm-tag-input .dropdown-wrapper div.add-new-btn:hover:not([aria-selected=true]),wm-tag-input .dropdown-wrapper div.add-new-btn.focused{outline:none;background:#f4f4f4}:host .dropdown-wrapper li.help-text,:host .dropdown-wrapper div.help-text,wm-tag-input .dropdown-wrapper li.help-text,wm-tag-input .dropdown-wrapper div.help-text{color:#4a4a4a;height:auto;min-height:2.6875rem;padding-top:0.25rem;padding-bottom:0.25rem;white-space:normal}:host .dropdown-wrapper li:not(:last-child),:host .dropdown-wrapper div:not(:last-child),wm-tag-input .dropdown-wrapper li:not(:last-child),wm-tag-input .dropdown-wrapper div:not(:last-child){border-bottom:2px solid rgba(46, 27, 70, 0.05)}:host .info-text,wm-tag-input .info-text{font-style:italic;margin-top:0.25rem}:host .table-wrapper,wm-tag-input .table-wrapper{min-height:10rem;overflow:auto;margin-top:1.5rem}:host .table-wrapper #table,wm-tag-input .table-wrapper #table{width:100%;border-spacing:0px}:host .table-wrapper #table.fixed-widths,wm-tag-input .table-wrapper #table.fixed-widths{table-layout:fixed}:host .table-wrapper #table .headers,wm-tag-input .table-wrapper #table .headers{height:2.5rem;background-color:#eeedf4}:host .table-wrapper #table .headers th,wm-tag-input .table-wrapper #table .headers th{text-align:left;font-size:0.75rem;font-weight:700;text-transform:uppercase;padding:0 1.5rem}:host .table-wrapper tr:nth-child(even),wm-tag-input .table-wrapper tr:nth-child(even){background-color:#fafafa}:host .table-wrapper tr.selected,wm-tag-input .table-wrapper tr.selected{background-color:rgba(25, 161, 169, 0.2);-webkit-box-shadow:inset 0 0 0 1px #19a1a9;box-shadow:inset 0 0 0 1px #19a1a9;font-weight:500}:host .table-wrapper tr.focused:not(.locked),:host .table-wrapper tr:hover:not(.locked),wm-tag-input .table-wrapper tr.focused:not(.locked),wm-tag-input .table-wrapper tr:hover:not(.locked){background-color:#e9e7ec;-webkit-box-shadow:none;box-shadow:none}:host .table-wrapper tr.locked td,wm-tag-input .table-wrapper tr.locked td{cursor:auto}:host .table-wrapper tr.locked td:first-child .cell-content-wrapper:before,wm-tag-input .table-wrapper tr.locked td:first-child .cell-content-wrapper:before{display:inline-block;font:normal normal normal 24px/1 "Material Design Icons";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\\f33e";margin-right:0.5rem;color:#4a4a4a}:host .table-wrapper td,wm-tag-input .table-wrapper td{height:3.75rem;vertical-align:middle;padding:0 1.5rem;cursor:pointer}:host .table-wrapper td.focused,wm-tag-input .table-wrapper td.focused{-webkit-box-shadow:inset 0 2px 2px 0 rgba(244, 243, 246, 0.2), inset 0 2px 2px 0 rgba(0, 0, 0, 0.1), inset 0 0 4px 3px #61279e;box-shadow:inset 0 2px 2px 0 rgba(244, 243, 246, 0.2), inset 0 2px 2px 0 rgba(0, 0, 0, 0.1), inset 0 0 4px 3px #61279e}:host .table-wrapper td .cell-content-wrapper.trunc,wm-tag-input .table-wrapper td .cell-content-wrapper.trunc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .table-wrapper td .description,wm-tag-input .table-wrapper td .description{display:none}:host .no-results,wm-tag-input .no-results{padding:1.25rem 1.5rem}:host .sr-only,wm-tag-input .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}:host #error,wm-tag-input #error{display:block;font-style:italic;color:#c0392b;font-size:0.875rem;margin-top:0.25rem}';const f=class{constructor(s){t(this,s);this.wmTagInputChanged=e(this,"wmTagInputChanged",7);this.uid=this.el.id?this.el.id:o();this.openUp=false;this.tooltipVisible=false;this.debouncedUpdate=n((()=>i(this.el)),30);this.label=undefined;this.labelPosition="top";this.options="";this.selectedTags="";this.info=undefined;this.errorMessage=undefined;this.addNew=true;this.placeholder=undefined;this.requiredField=false;this.characterLimit=50;this.maxTags=undefined;this.tagInputType="dropdown";this.colHeaders=undefined;this.colWidths=undefined;this.colWrap=undefined;this.messageConfig="";this.focusedListItem=undefined;this.focusedTag=null;this.tablePosition={row:0,column:1};this.isExpanded=false;this.tagsList=h(this.selectedTags);this.optionsList=h(this.options);this.charCount=0;this.liveRegionMessage=""}get focusedElement(){return this.el.shadowRoot.activeElement}get listItemEls(){return Array.from(this.dropdownEl.querySelectorAll("li"))}get tagEls(){return this.tagAreaEl?Array.from(this.tagAreaEl.querySelectorAll(".tag")):[]}get nonLockedTagEls(){return this.tagEls.filter((t=>!t.classList.contains("locked")))}get optionEls(){return Array.from(this.dropdownEl.querySelectorAll(".option"))}get wmRowEls(){return Array.from(this.el.querySelectorAll("wm-tag-input-row"))}get localRowEls(){return Array.from(this.el.shadowRoot.querySelectorAll("tr"))}get filteredRows(){return this.wmRowEls.filter((t=>{const e=[t.col1,t.col2,t.col3,t.col4].join("").toLowerCase();return this.inputEl&&this.inputEl.value?e.includes(this.inputEl.value.toLowerCase()):true}))}get nonLockedTagsList(){let t=[];if(this.tagInputType==="table"){this.tagsList.forEach((e=>{const i=this.wmRowEls.filter((t=>e===t.id))[0];if(!i.locked){t.push(e)}}))}else if(this.tagInputType==="dropdown"){t=this.tagsList}return t}get tagLimitReached(){return!!(this.maxTags&&this.tagsList.length>=this.maxTags)}get noResultsMessage(){return l.formatMessage({id:"tagInput.noResults",defaultMessage:"No results match your search.",description:"Message displayed when a user's search returns empty."})}get componentMessages(){const t=l.formatMessage({id:"tagInput.addNewHelpText",defaultMessage:"Press the Enter or Comma key to add a new tag.",description:"Help text appearing in a dropdown. Use imperative"});const e=l.formatMessage({id:"tagInput.selectionHelpText",defaultMessage:"Search and select a tag.",description:"Help text appearing in a dropdown. Use imperative"});const i=l.formatMessage({id:"tagInput.maxTagsReached",defaultMessage:"No more tags can be added because the limit has been reached."});const s=l.formatMessage({id:"tagInput.tagAreaInstructions",defaultMessage:"tag selection. Press Backspace or Delete to remove a tag."});const r=l.formatMessage({id:"tagInput.tagsAdded",defaultMessage:"Tags added",description:"For the user to understand how close they are to the tag limit, followed by x/y count"});const a={addNewHelpText:t,selectionHelpText:e,maxTagsReached:i,tagAreaInstructions:s,tagsAdded:r};const o=d(this.messageConfig);return o?Object.assign(Object.assign({},a),o):a}get inputMinimumWidth(){const t=getComputedStyle(this.inputEl);const e=getComputedStyle(this.tagEls[this.tagEls.length-1]);const i=[t.paddingLeft,t.paddingRight,t.marginLeft,t.marginRight,e.marginRight].reduce(((t,e)=>t+parseInt(e.replace("px",""))),0);const s=Math.max(150,p(this.inputEl,this.placeholder).width+i);return s}generateTagAddedMessage(t){return l.formatMessage({id:"tagInput.tagAdded",defaultMessage:"{tagName} added.",description:"A confirmation for adding a tag."},{tagName:t})}generateTagAlreadyAddedMessage(t){return l.formatMessage({id:"tagInput.tagAlreadyAdded",defaultMessage:"{tagName} has already been added.",description:"An alert for adding a tag that is already present."},{tagName:t})}componentWillLoad(){if(!this.placeholder){this.placeholder=this.createPlaceholderDefault(this.addNew,!!this.options)}if(!this.label){console.error("wm-tag-input must have a label property")}this.consolidateSelectedTags();this.el.focus=()=>{const t=this.nonLockedTagEls[0];if(t){this.tagAreaEl.focus();this.focusTag(t)}else{this.inputEl.focus()}};const t=new ResizeObserver((()=>this.debouncedUpdate()));t.observe(this.el)}componentDidLoad(){this.tagEls.forEach((t=>t.classList.remove("highlight")))}componentDidRender(){this.positionInput()}consolidateSelectedTags(){this.tagsList.forEach((t=>{if(!this.includesCaseInsensitive(this.optionsList,t)){this.options+=`${this.options.length>0?",":""}${t}`}}));this.optionsList=h(this.options)}createPlaceholderDefault(t,e){const i=l.formatMessage({id:"tagInput.placeholderAddAndSearch",defaultMessage:"Add or search for a tag",description:"Placeholder text. Use imperative"});const s=l.formatMessage({id:"tagInput.placeholderSearch",defaultMessage:"Search and select a tag",description:"Placeholder text. Use imperative"});const r=l.formatMessage({id:"tagInput.placeholderAdd",defaultMessage:"Add a new tag",description:"Placeholder text. Use imperative"});let a="";if(t&&e){a=i}else if(!t&&e){a=s}else if(t){a=r}return a}reflectSelectedTags(t,e){const i=t.length>e.length;let s="";let r=this.tagsList;if(i){s=t.filter((t=>!e.includes(t)))[0]}else{s=e.filter((e=>!t.includes(e)))[0]}if(this.tagInputType==="table"){s=this.wmRowEls.filter((t=>t.id===s))[0];r=this.tagsList.map((t=>this.el.querySelector(`#${t}`)))}this.selectedTags=this.listToCSV(this.tagsList);let a={value:r,tagChanged:s};this.wmTagInputChanged.emit(a)}handleErrorMessageChange(){if(this.errorMessage){this.announce(this.errorMessage)}}handleRowUpdate(){i(this.el)}closeIfNotElOrChild(t){const e=t.target!==this.el&&!this.el.shadowRoot.contains(t.target);if(this.tagInputType==="dropdown"&&e&&this.isExpanded){this.closeDropdown()}}dismissTooltip(){if(this.tooltipVisible){c();this.tooltipVisible=false}}handleInputKeyDown(t){if(/^.$/.test(t.key)&&this.inputEl.value.length>=this.characterLimit){this.announce(this.generateCharacterLimitWarning(this.inputEl.value.length,this.characterLimit))}t.stopPropagation();switch(t.key){case"Enter":case",":t.preventDefault();this.handleInputEnter();break;case"ArrowDown":t.preventDefault();this.handleInputArrowDown();break;case"ArrowUp":t.preventDefault();this.handleInputArrowUp();break;case"ArrowLeft":t.preventDefault();if(this.tagInputType==="table"&&this.tablePosition.row){this.moveLeftCell()}break;case"ArrowRight":t.preventDefault();if(this.tagInputType==="table"&&this.tablePosition.row){this.moveRightCell()}break;case"Escape":if(this.tagInputType==="dropdown"&&this.isExpanded){this.closeDropdown()}break;case"ArrowLeft":case"Backspace":this.handleInputBackspace();break}}handleInputFocus(){if(this.tagInputType==="dropdown"){this.openDropdown();this.clearListItemFocus()}i(this.el)}handleInputChanged(t){this.charCount=t.length;if(this.tagInputType==="dropdown"){this.clearListItemFocus();if(this.charCount>=this.characterLimit-5){this.announce(this.generateCharacterLimitWarning(this.charCount,this.characterLimit))}if(!this.isExpanded){this.openDropdown()}}else if(this.tagInputType==="table"){this.clearCellFocus()}this.announceExistingOptions()}handleInputEnter(){if(this.tagInputType==="dropdown"){if(this.focusedListItem){this.handleListItemClick(this.focusedListItem)}else{this.submitInput(this.addNew,this.inputEl.value.trim())}}else if(this.tagInputType==="table"&&this.tablePosition.row>0){this.handleTableRowClick(this.localRowEls[this.tablePosition.row].id)}}submitInput(t,e){const i=e.match(/\S/);if(t&&i){this.addTag(e);this.optionsList=this.addOption(e);this.resetInput()}}handleInputArrowDown(){if(this.tagInputType==="table"){this.moveDownRow()}else if(this.tagInputType==="dropdown"&&this.isExpanded){this.moveDownListItem()}else if(this.tagInputType==="dropdown"){this.openDropdown()}}handleInputArrowUp(){if(this.tagInputType==="table"){this.moveUpRow()}else if(this.tagInputType==="dropdown"&&this.isExpanded){this.moveUpListItem()}else if(this.tagInputType==="dropdown"){this.openDropdown()}}handleInputBackspace(){if(this.inputEl.value===""&&this.tagsList.length>0){window.requestAnimationFrame((()=>{if(this.nonLockedTagsList.length>0){this.tagAreaEl.focus();this.focusTag(this.tagEls[this.tagEls.length-1])}}))}}handleListItemKeyDown(t){const e=t.target;switch(t.key){case"Enter":case" ":t.preventDefault();e.click();break;case"ArrowDown":t.preventDefault();this.moveDownListItem();break;case"ArrowUp":t.preventDefault();this.moveUpListItem();break;case"Escape":if(this.focusedElement!==this.inputEl){this.inputEl.focus()}else if(this.tagInputType==="dropdown"){this.closeDropdown()}break}}handleListItemClick(t){const e=t.dataset.option.trim()||"";if(this.includesCaseInsensitive(this.tagsList,e)){this.announce(this.generateTagAlreadyAddedMessage(e))}else{this.resetInput();this.addTag(e);this.optionsList=this.addOption(e);this.focusedListItem=null}}handleTableRowClick(t){const e=this.el.querySelector(`#${t}`);const i=e.locked;if(!i){if(this.includesCaseInsensitive(this.tagsList,t)){this.removeTag(t)}else if(!this.tagLimitReached){this.addTag(t);this.resetInput()}}}handleTagAreaKeyDown(t){switch(t.key){case"ArrowLeft":case"ArrowUp":t.preventDefault();this.moveLeftTag();break;case"ArrowRight":case"ArrowDown":t.preventDefault();this.moveRightTag();break;case"Backspace":case"Delete":this.handleTagAreaDelete();break}}handleTagAreaDelete(){const t=this.focusedTag&&this.focusedTag.classList.contains("locked");if(this.focusedTag&&this.focusedTag.dataset.tag&&!t){this.removeTag(this.focusedTag.dataset.tag);if(this.nonLockedTagsList.length===0){this.inputEl.focus()}else if(this.focusedTag===this.tagEls[this.tagEls.length-1]){this.focusedTag=this.tagEls[this.tagEls.length-2];this.focusTag(this.focusedTag)}}}handleBlur(t,e){const i=t.relatedTarget!==e&&!this.el.shadowRoot.contains(t.relatedTarget);this.dismissTooltip();this.clearCellFocus();if(i){this.fieldWrapperEl.classList.remove("focused");if(this.tagInputType==="dropdown"){this.closeDropdown()}}}handleCellMouseEnter(t){const e=t.target;const i=e.querySelector(".cell-content-wrapper");const s=i.scrollWidth>i.clientWidth;if(s){w("bottom",e,e.innerText);this.tooltipVisible=true}}handleTagAreaFocus(){if(this.tagInputType==="dropdown"){this.closeDropdown()}const t=this.nonLockedTagEls[0];t&&this.focusTag(t)}handleRemoveButtonClick(t){this.moveLeftTag();this.removeTag(t)}moveDownListItem(){if(this.listItemEls.length>0){const t=this.listItemEls[0];if(!this.focusedListItem){this.focusListItem(t)}else if(this.focusedListItem.nextElementSibling){this.focusListItem(this.focusedListItem.nextElementSibling)}else{this.focusListItem(t)}}}moveUpListItem(){if(this.listItemEls.length>0){const t=this.listItemEls[this.listItemEls.length-1];if(!this.focusedListItem){this.focusListItem(t)}else if(this.focusedListItem.previousElementSibling){this.focusListItem(this.focusedListItem.previousElementSibling)}else{this.clearListItemFocus()}}}moveDownRow(){if(this.filteredRows.length>0){if(this.tablePosition.row===0){this.tablePosition.row=1}else if(this.tablePosition.row===this.filteredRows.length){this.tablePosition.row=1}else{this.tablePosition.row++}const t=this.wmRowEls[this.tablePosition.row-1];if(t.locked){this.moveDownRow()}else{this.focusCell(this.tablePosition)}}}moveUpRow(){if(this.filteredRows.length>0){if(this.tablePosition.row===0){this.tablePosition.row=this.filteredRows.length}else if(this.tablePosition.row===1){this.tablePosition.row=0}else{this.tablePosition.row--}const t=this.wmRowEls[this.tablePosition.row-1];if(t&&t.locked){this.moveUpRow()}else if(t){this.focusCell(this.tablePosition)}else{this.clearCellFocus()}}}moveLeftCell(){if(this.tablePosition.column!=1){this.tablePosition.column--;this.focusCell(this.tablePosition)}}moveRightCell(){const t=h(this.colHeaders).length;if(this.tablePosition.column<t){this.tablePosition.column++;this.focusCell(this.tablePosition)}}moveLeftTag(){const t=this.tagEls[this.tagEls.length-1];if(this.focusedTag&&this.tagEls.includes(this.focusedTag.previousElementSibling)){this.focusedTag=this.focusedTag.previousElementSibling}else{this.focusedTag=t}if(this.focusedTag.classList.contains("locked")&&this.nonLockedTagEls.length>0){this.moveLeftTag()}else{this.focusTag(this.focusedTag)}}moveRightTag(){const t=this.tagEls[0];if(this.focusedTag&&this.tagEls.includes(this.focusedTag.nextElementSibling)){this.focusedTag=this.focusedTag.nextElementSibling}else{this.focusedTag=t}if(this.focusedTag.classList.contains("locked")){this.moveRightTag()}else{this.focusTag(this.focusedTag)}}addOption(t){let e=this.optionsList;const i=this.includesCaseInsensitive(this.optionsList,t);if(!i){e=e.concat(t)}return e}removeOption(t){this.optionsList=this.filterCaseInsensitive(this.optionsList,t)}addTag(t){let e=this.tagsList;const i=this.includesCaseInsensitive(this.tagsList,t);const s=this.optionsList.filter((e=>e.toLowerCase()===t.toLowerCase()))[0];if(!i){let i=t;if(this.tagInputType==="table"){const e=this.el.querySelector(`#${t}`);i=e.col1}this.announce(this.generateTagAddedMessage(i));this.tagsList=e.concat(s||t);if(this.tagLimitReached){this.tagAreaEl.focus()}}}removeTag(t){let e=t;if(this.tagInputType==="table"){const i=this.el.querySelector(`#${t}`);e=i.col1}const i=l.formatMessage({id:"tagInput.tagRemoved",defaultMessage:"{tag} removed"},{tag:e});this.announce(i);this.tagsList=this.filterCaseInsensitive(this.tagsList,t);if(this.tagInputType==="dropdown"){const e=h(this.options);if(this.includesCaseInsensitive(this.optionsList,t)&&!this.includesCaseInsensitive(e,t)){this.removeOption(t)}}}focusListItem(t){this.focusedListItem=t;this.inputEl.setAttribute("aria-activedescendant",this.focusedListItem.id);t.scrollIntoView({block:"nearest"})}focusTag(t){if(t.classList.contains("locked")){this.focusedTag=null;this.tagAreaEl.setAttribute("aria-activedescendant","")}else{this.focusedTag=t;this.tagAreaEl.setAttribute("aria-activedescendant",this.focusedTag.id)}}focusCell(t){this.clearCellFocus(false);if(t.row){const e=this.localRowEls[t.row];const i=e.querySelectorAll("td");const s=i[t.column-1];const r=s.querySelector(".cell-content-wrapper");const a=r.scrollWidth>r.clientWidth;e.classList.add("focused");s.classList.add("focused");s.scrollIntoView({block:"nearest"});this.inputEl.setAttribute("aria-activedescendant",s.id);this.dismissTooltip();if(a){w("bottom",s,s.innerText);this.tooltipVisible=true}}}clearTagFocus(){this.tagAreaEl.setAttribute("aria-activedescendant","");this.focusedTag=null}clearCellFocus(t=true){this.inputEl.setAttribute("aria-activedescendant","");if(t){this.tablePosition={row:0,column:1}}this.localRowEls.forEach((t=>{t.classList.remove("focused");t.querySelectorAll("td").forEach((t=>{t.classList.remove("focused")}))}))}openDropdown(){this.openUp=g(this.el,this.dropdownEl,this.el.clientHeight,-2);this.isExpanded=true}closeDropdown(){this.clearListItemFocus();this.isExpanded=false}clearListItemFocus(){this.focusedListItem=null;this.inputEl.setAttribute("aria-activedescendant","");this.listItemEls.forEach((t=>{t.classList.remove("focused")}))}resetInput(){this.charCount=0;this.inputEl.value=""}announce(t){if(this.liveRegionEl.textContent===t){t+=" "}this.liveRegionMessage=t}announceExistingOptions(){window.requestAnimationFrame((()=>{let t=0;if(this.tagInputType==="dropdown"){t=this.optionEls.length}else if(this.tagInputType==="table"){t=this.filteredRows.length}const e=l.formatMessage({id:"tagInput.existingOptions",defaultMessage:"{num, plural, one {1 existing option.} other {# existing options.}}"},{num:t});this.announce(e)}))}generateCharacterLimitWarning(t,e){let i=m.getCharactersEntered(t,e);if(t>=e){i+=` ${m.characterLimitReached}`}return i}positionInput(){const t=this.tagEls[this.tagEls.length-1];this.inputEl.style.position="static";this.inputEl.style.width="100%";if(t){const e=this.tagAreaEl.getBoundingClientRect().right-t.getBoundingClientRect().right;if(e>=this.inputMinimumWidth){this.inputEl.style.position="absolute";this.inputEl.style.top=t.offsetTop.toString()+"px";this.inputEl.style.width=(this.tagAreaEl.getBoundingClientRect().right-t.getBoundingClientRect().right-8).toString()+"px"}}}listToCSV(t){return t.join(",")}includesCaseInsensitive(t,e){const i=t.map((t=>t.toLowerCase()));return i.includes(e.toLowerCase())}filterCaseInsensitive(t,e){return t.filter((t=>t.toLowerCase()!==e.toLowerCase()))}sortCaseInsensitive(t){return t.sort(((t,e)=>{t=t.toLowerCase();e=e.toLowerCase();return t>e?1:t<e?-1:0}))}renderTags(){let t=[];let e=[];this.tagsList.forEach(((i,r)=>{const a=`tag${r+1}`;let o="";let n=false;if(this.tagInputType==="dropdown"){o=i}else if(this.tagInputType==="table"){const t=this.el.querySelector(`#${i}`);o=t?t.col1:"";n=t?t.locked:false}const h=n?t:e;h.push(s("li",{id:a,class:`tag highlight ${this.focusedTag&&this.focusedTag.id===a?"focused":""} ${n?"locked":""}`,"data-tag":i,role:"option"},o,n?s("div",{class:"icon lock"}):s("button",{class:"icon remove-btn",tabIndex:-1,onClick:()=>this.handleRemoveButtonClick(i)})))}));return[...t,...e]}renderDropdown(){return s("div",{class:`dropdown-wrapper ${this.isExpanded?"open":""} ${this.openUp?"upwards":""}`,ref:t=>this.dropdownEl=t},s("div",{id:"help-text",class:"help-text"},this.renderHelpText()),s("ul",{class:"dropdown",id:"dropdown",role:"listbox","aria-multiselectable":"true","aria-expanded":this.isExpanded?"true":false,"aria-label":this.label,tabindex:-1},this.inputEl&&this.renderAddNewButton(),this.renderListItems(this.optionsList)))}renderListItems(t){t=this.sortCaseInsensitive(t);if(this.inputEl&&this.inputEl.value){t=this.optionsList.filter((t=>t.toLowerCase().includes(this.inputEl.value.toLowerCase())))}return t.map(((t,e)=>{const i=`option${e+1}`;const r=this.focusedListItem&&this.focusedListItem.id===i;const a=this.includesCaseInsensitive(this.tagsList,t);return s("li",{class:`option ${r?"focused":""}`,role:"option",id:i,"data-option":t,"aria-selected":a?"true":"false","aria-disabled":a?"true":"false",onKeyDown:t=>this.handleListItemKeyDown(t),onBlur:t=>this.handleBlur(t,this.el),onClick:t=>this.handleListItemClick(t.target)},t)}))}renderAddNewButton(){const t=this.inputEl.value.match(/\S/);const e=this.includesCaseInsensitive(this.optionsList,this.inputEl.value.trim());if(this.addNew&&t&&!e){const t=`add-new-btn`;const e=this.focusedListItem&&this.focusedListItem.id===t;return s("li",{role:"option",class:`add-new-btn ${e?"focused":""}`,id:t,"data-option":this.inputEl.value,onKeyDown:t=>this.handleListItemKeyDown(t),onBlur:t=>this.handleBlur(t,this.el),onClick:t=>this.handleListItemClick(t.target),tabIndex:e?0:-1},`Add "${this.inputEl.value.trim()}"`)}else return""}renderHelpText(){let t="";if(this.optionsList.length>0){t+=this.componentMessages.selectionHelpText}if(this.addNew){t+=" "+this.componentMessages.addNewHelpText}return t}renderTagCounter(){if(this.maxTags){return s("div",{class:"lower-row"},s("div",{id:"max-tags"},`${this.componentMessages.tagsAdded}: ${this.tagsList.length}/${this.maxTags}`,this.tagLimitReached&&` - ${this.componentMessages.maxTagsReached}`))}}renderTable(){return s("div",{class:"table-wrapper",onScroll:()=>this.dismissTooltip()},s("table",{id:"table",role:"grid",class:`${this.colWidths?"fixed-widths":""}`,"aria-label":this.label,"aria-multiselectable":"true"},this.renderTableHeaders(),this.filteredRows.length?this.renderTableRows():s("div",{class:"no-results"},this.noResultsMessage)))}renderTableHeaders(){return s("tr",{class:"headers",role:"row"},h(this.colHeaders).map(((t,e)=>{let i="wrap";if(this.colWrap&&h(this.colWrap)[e]){i=h(this.colWrap)[e]}return s("th",{class:`header-cell ${i}`,role:"columnheader",width:this.colWidths?h(this.colWidths)[e]:""},t)})))}renderTableRows(){return this.filteredRows.map((t=>{const e=this.includesCaseInsensitive(this.tagsList,t.id);return s("tr",{id:t.id,class:`${t.locked?"locked":""} ${e?"selected":""}`,role:"row",onClick:()=>this.handleTableRowClick(t.id)},this.renderTableCells(t))}))}renderTableCells(t){const e=[t.col1,t.col2,t.col3,t.col4].filter((t=>!!t));const i=this.includesCaseInsensitive(this.tagsList,t.id);return e.map(((e,r)=>{const a=`${t.id}-col${r+1}`;let o="wrap";if(this.colWrap&&h(this.colWrap)[r]){o=h(this.colWrap)[r]}return s("td",{id:a,role:"gridcell","aria-describedby":`${a}-description`,"aria-selected":i.toString(),onMouseEnter:t=>this.handleCellMouseEnter(t),onMouseLeave:()=>this.dismissTooltip()},s("div",{class:`cell-content-wrapper ${o}`},e),s("div",{class:"description",id:`${a}-description`},t.locked?"locked":""))}))}render(){return s(r,{id:this.uid},s("div",{class:`wrapper label-${this.labelPosition} ${this.errorMessage?"invalid":""}`},s("div",{class:"label-wrapper"},s("label",{class:"label",htmlFor:`input${this.uid}`},this.label,this.requiredField&&s("span",{class:"required","aria-hidden":"true"},"*"))),s("div",{class:`field-wrapper ${this.focusedElement?"focused":""} ${this.errorMessage?"invalid":""}`,ref:t=>this.fieldWrapperEl=t},s("div",{class:"upper-row"},s("div",{class:"tags-and-input-wrapper"},this.tagsList.length>0&&s("ul",{ref:t=>this.tagAreaEl=t,class:"tag-area",role:"listbox","aria-activedescendant":"","aria-orientation":"horizontal","aria-label":`${this.label} ${this.tagsList.length>0?this.componentMessages.tagAreaInstructions:""}`,tabindex:this.nonLockedTagsList.length>0?0:-1,"aria-describedby":`info max-tags`,onFocus:()=>this.handleTagAreaFocus(),onBlur:t=>{this.clearTagFocus();this.handleBlur(t,this.el)},onKeyDown:t=>this.handleTagAreaKeyDown(t)},this.renderTags()),s("input",{id:`input${this.uid}`,class:this.tagLimitReached?"hidden":"",role:"combobox",ref:t=>this.inputEl=t,autocomplete:"off","aria-required":this.requiredField?"true":null,"aria-controls":this.tagInputType,"aria-describedby":`help-text${this.errorMessage?" error ":""}`,"aria-label":`${this.label} ${this.tagInputType==="dropdown"?m.getCharacterLimit(this.characterLimit):""}`,"aria-expanded":this.tagInputType==="dropdown"?this.isExpanded.toString():null,placeholder:this.placeholder,maxLength:this.tagInputType==="dropdown"?this.characterLimit:undefined,onInput:()=>this.handleInputChanged(this.inputEl.value),onBlur:t=>{this.handleBlur(t,this.el)},onFocus:()=>this.handleInputFocus(),onKeyDown:t=>this.handleInputKeyDown(t)})),this.tagInputType==="dropdown"&&s("div",{class:"character-count"},this.charCount,"/",this.characterLimit)),this.renderTagCounter(),this.tagInputType==="dropdown"&&this.renderDropdown()),this.info&&s("div",{id:"info",class:"info-text"},this.info),this.errorMessage&&s("div",{id:"error"},this.errorMessage),s("div",{class:"sr-only","aria-live":"assertive",ref:t=>this.liveRegionEl=t,"aria-atomic":"true"},this.liveRegionMessage),this.tagInputType==="table"&&this.renderTable()))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{tagsList:["reflectSelectedTags"],errorMessage:["handleErrorMessageChange"]}}};f.style=u;export{f as wm_tag_input};
|
|
2
|
-
//# sourceMappingURL=p-1808b90a.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["wmTagInputCss","TagInput","this","uid","el","id","generateId","openUp","tooltipVisible","debouncedUpdate","debounce","forceUpdate","row","column","csvToArray","selectedTags","options","focusedElement","shadowRoot","activeElement","listItemEls","Array","from","dropdownEl","querySelectorAll","tagEls","tagAreaEl","nonLockedTagEls","filter","tag","classList","contains","optionEls","wmRowEls","localRowEls","filteredRows","colValues","col1","col2","col3","col4","join","toLowerCase","inputEl","value","includes","nonLockedTagsList","list","tagInputType","tagsList","forEach","correspondingRowEl","locked","push","tagLimitReached","maxTags","length","noResultsMessage","intl","formatMessage","defaultMessage","description","componentMessages","addNewHelpText","selectionHelpText","maxTagsReachedMessage","tagAreaInstructions","tagsAddedMessage","defaultConfig","maxTagsReached","tagsAdded","userProvidedConfig","safeParseJSON","messageConfig","Object","assign","inputMinimumWidth","inputElStyles","getComputedStyle","tagElStyles","inputElBuffer","paddingLeft","paddingRight","marginLeft","marginRight","reduce","prev","curr","parseInt","replace","minimumWidth","Math","max","measureText","placeholder","width","generateTagAddedMessage","tagName","generateTagAlreadyAddedMessage","componentWillLoad","createPlaceholderDefault","addNew","label","console","error","consolidateSelectedTags","focus","firstFocusableTag","focusTag","resizeObserver","ResizeObserver","observe","componentDidLoad","remove","componentDidRender","positionInput","includesCaseInsensitive","optionsList","hasOptions","addAndSearchPlaceholder","searchPlaceholder","addPlaceholder","reflectSelectedTags","newValue","oldValue","isAddition","changedTag","val","map","querySelector","listToCSV","detail","tagChanged","wmTagInputChanged","emit","handleErrorMessageChange","errorMessage","announce","handleRowUpdate","closeIfNotElOrChild","ev","isntElOrChild","target","isExpanded","closeDropdown","dismissTooltip","hideTooltip","handleInputKeyDown","test","key","characterLimit","generateCharacterLimitWarning","stopPropagation","preventDefault","handleInputEnter","handleInputArrowDown","handleInputArrowUp","tablePosition","moveLeftCell","moveRightCell","handleInputBackspace","handleInputFocus","openDropdown","clearListItemFocus","handleInputChanged","charCount","clearCellFocus","announceExistingOptions","focusedListItem","handleListItemClick","submitInput","trim","handleTableRowClick","canAddNew","hasNonWhiteSpaceCharacters","match","addTag","addOption","resetInput","moveDownRow","moveDownListItem","moveUpRow","moveUpListItem","window","requestAnimationFrame","handleListItemKeyDown","typedEvTarget","click","item","dataset","option","rowId","referencedRow","isLocked","removeTag","handleTagAreaKeyDown","moveLeftTag","moveRightTag","handleTagAreaDelete","focusedTag","handleBlur","component","relatedTarget","fieldWrapperEl","handleCellMouseEnter","cell","contentWrapper","isTruncated","scrollWidth","clientWidth","showTooltip","innerText","handleTagAreaFocus","handleRemoveButtonClick","firstListItem","focusListItem","nextElementSibling","lastListItem","previousElementSibling","rowToFocus","focusCell","numCols","colHeaders","lastTag","firstTag","newOptionsList","optionAlreadyExists","concat","removeOption","filterCaseInsensitive","newTagsList","tagAlreadyAdded","tagExistsAsOption","x","textToAnnounce","tagRemovedMessage","devOptionsList","setAttribute","scrollIntoView","block","element","position","rowCells","cellToFocus","add","clearTagFocus","resetPosition","shouldOpenUp","clientHeight","message","liveRegionEl","textContent","liveRegionMessage","numResults","existingOptionsMessage","num","charLimit","globalMessages","getCharactersEntered","characterLimitReached","style","spaceAvailable","getBoundingClientRect","right","top","offsetTop","toString","lowercaseList","str","sortCaseInsensitive","sort","a","b","renderTags","lockedTags","unlockedTags","idx","tagText","targetList","h","class","role","tabIndex","onClick","renderDropdown","ref","renderHelpText","tabindex","renderAddNewButton","renderListItems","isFocused","isSelected","onKeyDown","onBlur","helpText","renderTagCounter","renderTable","onScroll","colWidths","renderTableHeaders","renderTableRows","header","overflowRule","colWrap","renderTableCells","localId","onMouseEnter","onMouseLeave","render","Host","labelPosition","htmlFor","requiredField","onFocus","autocomplete","getCharacterLimit","maxLength","undefined","onInput","info"],"sources":["./src/components/wm-tag-input/wm-tag-input.scss?tag=wm-tag-input&encapsulation=shadow","./src/components/wm-tag-input/wm-tag-input.tsx"],"sourcesContent":[":host,\nwm-tag-input {\n font-family: inherit;\n width: 100%;\n display: block;\n\n * {\n box-sizing: border-box;\n font-size: 14px;\n }\n\n @include label;\n\n .wrapper {\n width: 100%;\n height: 100%;\n position: relative;\n }\n\n .field-wrapper {\n position: relative;\n width: 100%;\n border: 1px solid $input-border-color;\n @include border-radius(3px);\n\n &.focused {\n @include field-focus;\n }\n\n &.invalid {\n @include invalidBorder;\n }\n }\n\n .character-count {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: rem-calc(80);\n background-color: rgba(74, 74, 74, 0.05);\n font-size: rem-calc(14);\n font-weight: 500;\n align-self: stretch;\n }\n\n .tags-and-input-wrapper {\n position: relative;\n width: 100%;\n padding: rem-calc(8) rem-calc(4) rem-calc(8) 0;\n margin-bottom: rem-calc(-8);\n }\n\n .upper-row {\n width: 100%;\n display: flex;\n flex: 1;\n justify-content: space-between;\n &:before {\n align-self: flex-start;\n @include mdi-icon;\n content: \"\\f349\"; // magnifying glass\n color: $tag-input-search-icon-color;\n padding: rem-calc(12) rem-calc(8) rem-calc(12) rem-calc(12);\n }\n }\n\n .lower-row {\n width: 100%;\n min-height: rem-calc(30);\n }\n\n #max-tags {\n display: flex;\n align-items: center;\n min-height: rem-calc(30);\n background-color: $tag-input-max-tags-bg;\n padding: rem-calc(8) rem-calc(16);\n color: $tag-input-max-tags-color;\n font-size: rem-calc(14);\n border-top: 1px solid $tag-input-max-tags-border;\n border-radius: 0 0 3px 3px;\n }\n\n .tag-area {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n\n &:focus {\n outline: none;\n }\n\n [role=\"option\"] {\n display: inline-flex;\n align-items: center;\n height: rem-calc(28);\n list-style: none;\n color: $charcoal;\n background-color: rgba(3, 0, 0, 0.1);\n padding: rem-calc(8) rem-calc(10);\n margin-bottom: rem-calc(8);\n margin-right: rem-calc(4);\n margin-left: rem-calc(4);\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n white-space: pre;\n\n &.highlight {\n animation: fadeIn 1s;\n @keyframes fadeIn {\n 0% {\n background-color: rgba(3, 0, 0, 0.1);\n }\n 50% {\n background-color: #c8dfcc;\n }\n\n 100% {\n background-color: rgba(3, 0, 0, 0.1);\n }\n }\n }\n\n &.focused {\n background-color: #d1d1d1;\n }\n\n &.locked {\n background-color: $tag-input-locked-tag-bg;\n color: white;\n }\n\n .icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: rem-calc(20);\n width: rem-calc(20);\n padding: 0;\n margin-left: rem-calc(8);\n &.remove-btn {\n border: 1px solid $periwinkle;\n color: $periwinkle;\n border-radius: 50%;\n cursor: pointer;\n transition: background-color 500ms cubic-bezier(0.4, 0, 0.2, 1), color 500ms cubic-bezier(0.4, 0, 0.2, 1);\n\n &:hover {\n color: white;\n background-color: $periwinkle;\n }\n\n &:before {\n @include mdi-icon;\n content: \"\\f156\";\n }\n }\n\n &.lock {\n color: white;\n &:before {\n @include mdi-icon;\n content: \"\\f341\";\n }\n }\n }\n }\n }\n\n input {\n font-family: inherit;\n border: none;\n height: rem-calc(28);\n padding: 0;\n margin-bottom: rem-calc(8);\n margin-right: rem-calc(4);\n padding-left: rem-calc(8);\n right: 0px;\n\n &.hidden {\n display: none;\n }\n &:focus {\n outline: none;\n }\n }\n\n .dropdown-wrapper {\n margin: 0;\n padding: 0;\n @include box-shadow(0 4px 15px 0 rgba(0, 0, 0, 0.2));\n @include transition(transform 0.25s ease);\n @include scale($xVal: 1, $yVal: 0);\n @include transformOrigin(center top);\n @include border-radius(3px);\n position: absolute;\n top: calc(100% + 2px);\n right: 0;\n background: #fff;\n z-index: 100;\n width: 100%;\n font-size: rem-calc(14);\n\n .dropdown {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n max-height: rem-calc(200);\n margin: 0;\n padding: 0;\n }\n\n &.open {\n @include scale($xVal: 1, $yVal: 1);\n }\n\n &.upwards {\n top: unset;\n bottom: calc(100% + 2px);\n @include transformOrigin(center bottom);\n }\n\n li,\n div {\n display: flex;\n align-items: center;\n padding: 0 rem-calc(16);\n background: #fff;\n list-style: none;\n height: rem-calc(43);\n white-space: pre;\n\n &[role=\"option\"],\n &.add-new-btn {\n cursor: pointer;\n color: $periwinkle;\n font-weight: bold;\n width: 100%;\n border: none;\n\n &[aria-selected=\"true\"] {\n color: $gray;\n font-style: italic;\n font-weight: normal;\n cursor: unset;\n }\n &:hover:not([aria-selected=\"true\"]),\n &.focused {\n outline: none;\n background: $background;\n }\n }\n\n &.help-text {\n color: $charcoal;\n height: auto;\n min-height: rem-calc(43);\n padding-top: rem-calc(4);\n padding-bottom: rem-calc(4);\n white-space: normal;\n }\n\n &:not(:last-child) {\n border-bottom: 2px solid rgba(#2e1b46, 0.05);\n }\n }\n }\n\n .info-text {\n font-style: italic;\n margin-top: rem-calc(4);\n }\n\n .table-wrapper {\n min-height: rem-calc(160);\n overflow: auto;\n margin-top: rem-calc(24);\n\n #table {\n width: 100%;\n border-spacing: 0px;\n &.fixed-widths {\n table-layout: fixed;\n }\n\n .headers {\n height: rem-calc(40);\n background-color: #eeedf4;\n th {\n text-align: left;\n font-size: rem-calc(12);\n font-weight: 700;\n text-transform: uppercase;\n padding: 0 rem-calc(24);\n }\n }\n }\n\n tr {\n // the following colors are in a css-specificity order, do not move\n &:nth-child(even) {\n background-color: $tag-input-row-zebra-bg;\n }\n\n &.selected {\n background-color: $tag-input-row-selected-bg;\n // box-shadow to add border without affecting surrounding cell borders\n box-shadow: inset 0 0 0 1px $tag-input-row-selected-border;\n font-weight: 500;\n }\n\n &.focused:not(.locked),\n &:hover:not(.locked) {\n background-color: $tag-input-row-focused;\n box-shadow: none;\n }\n\n &.locked {\n td {\n cursor: auto;\n }\n\n td:first-child {\n .cell-content-wrapper:before {\n @include mdi-icon;\n content: \"\\f33e\";\n margin-right: rem-calc(8);\n color: $tag-input-row-lock-color;\n }\n }\n }\n }\n\n td {\n height: rem-calc(60);\n vertical-align: middle;\n padding: 0 rem-calc(24);\n cursor: pointer;\n &.focused {\n // from wm-navigation\n box-shadow: inset 0 2px 2px 0 rgb(244 243 246 / 20%), inset 0 2px 2px 0 rgb(0 0 0 / 10%),\n inset 0 0 4px 3px #61279e;\n }\n .cell-content-wrapper.trunc {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .description {\n display: none;\n }\n }\n }\n\n .no-results {\n padding: rem-calc(20) rem-calc(24);\n }\n\n .sr-only {\n @include srOnly;\n }\n\n #error {\n @include errorMessage;\n }\n}\n","import {\n h,\n Component,\n Host,\n Element,\n Prop,\n Listen,\n State,\n Event,\n EventEmitter,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\nimport {\n csvToArray,\n debounce,\n generateId,\n hideTooltip,\n intl,\n measureText,\n safeParseJSON,\n shouldOpenUp,\n showTooltip,\n} from \"../../global/functions\";\nimport { globalMessages } from \"../../global/intl\";\n\ninterface TablePosition {\n row: number;\n column: number;\n}\n\ninterface MessageConfig {\n addNewHelpText: string;\n selectionHelpText: string;\n tagAreaInstructions: string;\n maxTagsReached: string;\n tagsAdded: string;\n}\n\n@Component({\n tag: \"wm-tag-input\",\n styleUrl: \"wm-tag-input.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class TagInput {\n @Element() el!: HTMLWmTagInputElement;\n private inputEl!: HTMLInputElement;\n private dropdownEl!: HTMLDivElement;\n private tagAreaEl!: HTMLUListElement;\n private liveRegionEl!: HTMLDivElement;\n private fieldWrapperEl!: HTMLDivElement;\n\n @Prop() label!: string;\n @Prop() labelPosition: \"top\" | \"left\" | \"none\" = \"top\";\n @Prop({ mutable: true }) options: string = \"\"; // csv\n @Prop({ reflect: true, mutable: true }) selectedTags: string = \"\"; // csv\n @Prop() info?: string;\n @Prop() errorMessage?: string;\n @Prop() addNew: boolean = true;\n @Prop({ mutable: true }) placeholder?: string;\n @Prop() requiredField: boolean = false;\n @Prop() characterLimit: number = 50;\n @Prop() maxTags?: number;\n @Prop() tagInputType: \"dropdown\" | \"table\" = \"dropdown\";\n @Prop() colHeaders!: string;\n @Prop() colWidths?: string;\n @Prop() colWrap?: string;\n @Prop() messageConfig: string = \"\"; // JSON\n @Event() wmTagInputChanged!: EventEmitter<{\n value: string[] | HTMLWmTagInputRowElement[];\n tagChanged: string | HTMLWmTagInputRowElement;\n }>;\n\n private uid: string = this.el.id ? this.el.id : generateId();\n private openUp: boolean = false;\n private tooltipVisible: boolean = false;\n @State() focusedListItem!: HTMLLIElement | null;\n @State() focusedTag: HTMLLIElement | null = null;\n @State() tablePosition: TablePosition = { row: 0, column: 1 };\n @State() isExpanded: boolean = false;\n @State() tagsList: string[] = csvToArray(this.selectedTags);\n @State() optionsList: string[] = csvToArray(this.options);\n @State() charCount: number = 0;\n @State() liveRegionMessage = \"\";\n\n get focusedElement(): Element | null {\n return this.el.shadowRoot!.activeElement;\n }\n get listItemEls(): HTMLLIElement[] {\n return Array.from(this.dropdownEl.querySelectorAll(\"li\"));\n }\n get tagEls(): HTMLLIElement[] {\n return this.tagAreaEl ? Array.from(this.tagAreaEl.querySelectorAll(\".tag\")) : [];\n }\n get nonLockedTagEls(): HTMLLIElement[] {\n return this.tagEls.filter((tag) => !tag.classList.contains(\"locked\"));\n }\n get optionEls(): HTMLLIElement[] {\n return Array.from(this.dropdownEl.querySelectorAll(\".option\"));\n }\n get wmRowEls(): HTMLWmTagInputRowElement[] {\n return Array.from(this.el.querySelectorAll(\"wm-tag-input-row\"));\n }\n get localRowEls(): HTMLElement[] {\n return Array.from(this.el.shadowRoot!.querySelectorAll(\"tr\"));\n }\n get filteredRows(): HTMLWmTagInputRowElement[] {\n return this.wmRowEls.filter((row) => {\n const colValues = [row.col1, row.col2, row.col3, row.col4].join(\"\").toLowerCase();\n return this.inputEl && this.inputEl.value ? colValues.includes(this.inputEl.value.toLowerCase()) : true;\n });\n }\n get nonLockedTagsList() {\n let list: string[] = [];\n\n if (this.tagInputType === \"table\") {\n this.tagsList.forEach((id) => {\n const correspondingRowEl = this.wmRowEls.filter((row) => id === row.id)[0];\n if (!correspondingRowEl.locked) {\n list.push(id);\n }\n });\n } else if (this.tagInputType === \"dropdown\") {\n list = this.tagsList;\n }\n\n return list;\n }\n get tagLimitReached(): boolean {\n return !!(this.maxTags && this.tagsList.length >= this.maxTags);\n }\n\n get noResultsMessage() {\n return intl.formatMessage({\n id: \"tagInput.noResults\",\n defaultMessage: \"No results match your search.\",\n description: \"Message displayed when a user's search returns empty.\",\n });\n }\n\n get componentMessages(): MessageConfig {\n const addNewHelpText = intl.formatMessage({\n id: \"tagInput.addNewHelpText\",\n defaultMessage: \"Press the Enter or Comma key to add a new tag.\",\n description: \"Help text appearing in a dropdown. Use imperative\",\n });\n const selectionHelpText = intl.formatMessage({\n id: \"tagInput.selectionHelpText\",\n defaultMessage: \"Search and select a tag.\",\n description: \"Help text appearing in a dropdown. Use imperative\",\n });\n const maxTagsReachedMessage = intl.formatMessage({\n id: \"tagInput.maxTagsReached\",\n defaultMessage: \"No more tags can be added because the limit has been reached.\",\n });\n const tagAreaInstructions = intl.formatMessage({\n id: \"tagInput.tagAreaInstructions\",\n defaultMessage: \"tag selection. Press Backspace or Delete to remove a tag.\",\n });\n const tagsAddedMessage = intl.formatMessage({\n id: \"tagInput.tagsAdded\",\n defaultMessage: \"Tags added\",\n description: \"For the user to understand how close they are to the tag limit, followed by x/y count\",\n });\n\n const defaultConfig: MessageConfig = {\n addNewHelpText: addNewHelpText,\n selectionHelpText: selectionHelpText,\n maxTagsReached: maxTagsReachedMessage,\n tagAreaInstructions: tagAreaInstructions,\n tagsAdded: tagsAddedMessage,\n };\n\n const userProvidedConfig = safeParseJSON(this.messageConfig);\n\n return userProvidedConfig ? { ...defaultConfig, ...userProvidedConfig } : defaultConfig;\n }\n\n get inputMinimumWidth(): number {\n // 150px is the minimum width of the input field, or the length of the placeholder text\n const inputElStyles = getComputedStyle(this.inputEl);\n const tagElStyles = getComputedStyle(this.tagEls[this.tagEls.length - 1]);\n const inputElBuffer = [\n inputElStyles.paddingLeft,\n inputElStyles.paddingRight,\n inputElStyles.marginLeft,\n inputElStyles.marginRight,\n tagElStyles.marginRight,\n ].reduce((prev, curr) => prev + parseInt(curr.replace(\"px\", \"\")), 0);\n\n const minimumWidth = Math.max(150, measureText(this.inputEl, this.placeholder!).width + inputElBuffer);\n return minimumWidth;\n }\n\n generateTagAddedMessage(tag: string): string {\n return intl.formatMessage(\n {\n id: \"tagInput.tagAdded\",\n defaultMessage: \"{tagName} added.\",\n description: \"A confirmation for adding a tag.\",\n },\n { tagName: tag }\n );\n }\n\n generateTagAlreadyAddedMessage(tag: string): string {\n return intl.formatMessage(\n {\n id: \"tagInput.tagAlreadyAdded\",\n defaultMessage: \"{tagName} has already been added.\",\n description: \"An alert for adding a tag that is already present.\",\n },\n { tagName: tag }\n );\n }\n\n componentWillLoad() {\n if (!this.placeholder) {\n this.placeholder = this.createPlaceholderDefault(this.addNew, !!this.options);\n }\n if (!this.label) {\n console.error(\"wm-tag-input must have a label property\");\n }\n\n this.consolidateSelectedTags();\n\n this.el.focus = () => {\n const firstFocusableTag = this.nonLockedTagEls[0];\n if (firstFocusableTag) {\n this.tagAreaEl.focus();\n this.focusTag(firstFocusableTag);\n } else {\n this.inputEl.focus();\n }\n };\n\n // on resize of component, trigger componentDidRender -> positionInput\n const resizeObserver = new ResizeObserver(() => this.debouncedUpdate());\n resizeObserver.observe(this.el);\n }\n\n componentDidLoad() {\n // prevent highlighting of pre-selected tags\n this.tagEls.forEach((el) => el.classList.remove(\"highlight\"));\n }\n\n componentDidRender() {\n this.positionInput();\n }\n\n consolidateSelectedTags() {\n this.tagsList.forEach((tag) => {\n if (!this.includesCaseInsensitive(this.optionsList, tag)) {\n this.options += `${this.options.length > 0 ? \",\" : \"\"}${tag}`;\n }\n });\n\n this.optionsList = csvToArray(this.options);\n }\n\n createPlaceholderDefault(addNew: boolean, hasOptions: boolean): string {\n const addAndSearchPlaceholder = intl.formatMessage({\n id: \"tagInput.placeholderAddAndSearch\",\n defaultMessage: \"Add or search for a tag\",\n description: \"Placeholder text. Use imperative\",\n });\n const searchPlaceholder = intl.formatMessage({\n id: \"tagInput.placeholderSearch\",\n defaultMessage: \"Search and select a tag\",\n description: \"Placeholder text. Use imperative\",\n });\n const addPlaceholder = intl.formatMessage({\n id: \"tagInput.placeholderAdd\",\n defaultMessage: \"Add a new tag\",\n description: \"Placeholder text. Use imperative\",\n });\n\n let placeholder = \"\";\n if (addNew && hasOptions) {\n placeholder = addAndSearchPlaceholder;\n } else if (!addNew && hasOptions) {\n placeholder = searchPlaceholder;\n } else if (addNew) {\n placeholder = addPlaceholder;\n }\n return placeholder;\n }\n\n @Watch(\"tagsList\")\n reflectSelectedTags(newValue: string[], oldValue: string[]) {\n const isAddition = newValue.length > oldValue.length;\n let changedTag: string | HTMLWmTagInputRowElement = \"\";\n let selectedTags: string[] | HTMLWmTagInputRowElement[] = this.tagsList;\n\n if (isAddition) {\n changedTag = newValue.filter((val) => !oldValue.includes(val))[0];\n } else {\n changedTag = oldValue.filter((val) => !newValue.includes(val))[0];\n }\n\n // event emitted by type table uses element references instead of strings\n if (this.tagInputType === \"table\") {\n changedTag = this.wmRowEls.filter((row) => row.id === changedTag)[0];\n selectedTags = this.tagsList.map((id) => this.el.querySelector(`#${id}`) as HTMLWmTagInputRowElement);\n }\n\n this.selectedTags = this.listToCSV(this.tagsList);\n let detail = { value: selectedTags, tagChanged: changedTag };\n this.wmTagInputChanged.emit(detail);\n }\n\n @Watch(\"errorMessage\")\n handleErrorMessageChange() {\n if (this.errorMessage) {\n this.announce(this.errorMessage);\n }\n }\n\n @Listen(\"wmTagInputRowUpdated\")\n handleRowUpdate() {\n forceUpdate(this.el);\n }\n\n @Listen(\"click\", { target: \"document\" })\n closeIfNotElOrChild(ev: MouseEvent): void {\n const isntElOrChild = ev.target !== this.el && !this.el.shadowRoot!.contains(ev.target as HTMLElement);\n\n if (this.tagInputType === \"dropdown\" && isntElOrChild && this.isExpanded) {\n this.closeDropdown();\n }\n }\n\n // From wm-button\n // we need to listen for scroll events during the capture phase because they do not bubble up\n // there can be layouts where the main content has 100vh and overflows\n // in these cases window will register no scroll events unless we catch on they way down\n @Listen(\"scroll\", { target: \"window\", capture: true })\n dismissTooltip() {\n if (this.tooltipVisible) {\n hideTooltip();\n this.tooltipVisible = false;\n }\n }\n\n debouncedUpdate = debounce(() => forceUpdate(this.el), 30);\n\n handleInputKeyDown(ev: KeyboardEvent) {\n if (/^.$/.test(ev.key) && this.inputEl.value.length >= this.characterLimit) {\n this.announce(this.generateCharacterLimitWarning(this.inputEl.value.length, this.characterLimit));\n }\n\n // prevent keydown triggering on tag area\n ev.stopPropagation();\n switch (ev.key) {\n case \"Enter\":\n case \",\":\n ev.preventDefault();\n this.handleInputEnter();\n break;\n case \"ArrowDown\":\n ev.preventDefault();\n this.handleInputArrowDown();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.handleInputArrowUp();\n break;\n case \"ArrowLeft\":\n ev.preventDefault();\n if (this.tagInputType === \"table\" && this.tablePosition.row) {\n this.moveLeftCell();\n }\n break;\n case \"ArrowRight\":\n ev.preventDefault();\n if (this.tagInputType === \"table\" && this.tablePosition.row) {\n this.moveRightCell();\n }\n break;\n case \"Escape\":\n if (this.tagInputType === \"dropdown\" && this.isExpanded) {\n this.closeDropdown();\n }\n break;\n case \"ArrowLeft\":\n case \"Backspace\":\n this.handleInputBackspace();\n break;\n }\n }\n\n handleInputFocus() {\n if (this.tagInputType === \"dropdown\") {\n this.openDropdown();\n this.clearListItemFocus();\n }\n // force update needed to apply styled state of field-wrapper el\n forceUpdate(this.el);\n }\n\n handleInputChanged(value: string) {\n this.charCount = value.length;\n\n if (this.tagInputType === \"dropdown\") {\n this.clearListItemFocus();\n if (this.charCount >= this.characterLimit - 5) {\n this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));\n }\n if (!this.isExpanded) {\n this.openDropdown();\n }\n } else if (this.tagInputType === \"table\") {\n this.clearCellFocus();\n }\n this.announceExistingOptions();\n }\n\n handleInputEnter() {\n if (this.tagInputType === \"dropdown\") {\n if (this.focusedListItem) {\n this.handleListItemClick(this.focusedListItem);\n } else {\n this.submitInput(this.addNew, this.inputEl.value.trim());\n }\n } else if (this.tagInputType === \"table\" && this.tablePosition.row > 0) {\n this.handleTableRowClick(this.localRowEls[this.tablePosition.row].id);\n }\n }\n\n submitInput(canAddNew: boolean, value: string) {\n const hasNonWhiteSpaceCharacters = value.match(/\\S/);\n if (canAddNew && hasNonWhiteSpaceCharacters) {\n this.addTag(value);\n this.optionsList = this.addOption(value);\n this.resetInput();\n }\n }\n\n handleInputArrowDown() {\n if (this.tagInputType === \"table\") {\n this.moveDownRow();\n } else if (this.tagInputType === \"dropdown\" && this.isExpanded) {\n this.moveDownListItem();\n } else if (this.tagInputType === \"dropdown\") {\n this.openDropdown();\n }\n }\n\n handleInputArrowUp() {\n if (this.tagInputType === \"table\") {\n this.moveUpRow();\n } else if (this.tagInputType === \"dropdown\" && this.isExpanded) {\n this.moveUpListItem();\n } else if (this.tagInputType === \"dropdown\") {\n this.openDropdown();\n }\n }\n\n handleInputBackspace() {\n if (this.inputEl.value === \"\" && this.tagsList.length > 0) {\n // wait for events to finish firing before redirecting focus\n // prevents double input in input area and tag area\n window.requestAnimationFrame(() => {\n if (this.nonLockedTagsList.length > 0) {\n this.tagAreaEl.focus();\n this.focusTag(this.tagEls[this.tagEls.length - 1]);\n }\n });\n }\n }\n\n handleListItemKeyDown(ev: KeyboardEvent) {\n const typedEvTarget = ev.target as HTMLElement;\n\n switch (ev.key) {\n case \"Enter\":\n case \" \":\n ev.preventDefault();\n typedEvTarget.click();\n break;\n case \"ArrowDown\":\n ev.preventDefault();\n this.moveDownListItem();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.moveUpListItem();\n break;\n case \"Escape\":\n if (this.focusedElement !== this.inputEl) {\n this.inputEl.focus();\n } else if (this.tagInputType === \"dropdown\") {\n this.closeDropdown();\n }\n break;\n }\n }\n\n handleListItemClick(item: HTMLElement) {\n const tag = item.dataset.option!.trim() || \"\";\n\n if (this.includesCaseInsensitive(this.tagsList, tag)) {\n this.announce(this.generateTagAlreadyAddedMessage(tag));\n } else {\n this.resetInput();\n this.addTag(tag);\n this.optionsList = this.addOption(tag);\n this.focusedListItem = null;\n }\n }\n\n handleTableRowClick(rowId: string) {\n const referencedRow = this.el.querySelector(`#${rowId}`) as HTMLWmTagInputRowElement;\n const isLocked = referencedRow.locked;\n\n if (!isLocked) {\n if (this.includesCaseInsensitive(this.tagsList, rowId)) {\n this.removeTag(rowId);\n } else if (!this.tagLimitReached) {\n this.addTag(rowId);\n this.resetInput();\n }\n }\n }\n\n handleTagAreaKeyDown(ev: KeyboardEvent) {\n switch (ev.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n ev.preventDefault();\n this.moveLeftTag();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n ev.preventDefault();\n this.moveRightTag();\n break;\n case \"Backspace\":\n case \"Delete\":\n this.handleTagAreaDelete();\n break;\n }\n }\n\n handleTagAreaDelete() {\n const isLocked = this.focusedTag && this.focusedTag.classList.contains(\"locked\");\n\n if (this.focusedTag && this.focusedTag.dataset.tag && !isLocked) {\n this.removeTag(this.focusedTag.dataset.tag);\n\n if (this.nonLockedTagsList.length === 0) {\n // focus input if no tags are left\n this.inputEl.focus();\n } else if (this.focusedTag === this.tagEls[this.tagEls.length - 1]) {\n // reassign focus if removing the last tag but there are still tags remaining\n this.focusedTag = this.tagEls[this.tagEls.length - 2];\n this.focusTag(this.focusedTag);\n }\n }\n }\n\n handleBlur(ev: FocusEvent, component: HTMLElement) {\n const isntElOrChild =\n ev.relatedTarget !== component && !this.el.shadowRoot!.contains(ev.relatedTarget as HTMLElement);\n\n this.dismissTooltip();\n this.clearCellFocus();\n\n if (isntElOrChild) {\n this.fieldWrapperEl.classList.remove(\"focused\");\n if (this.tagInputType === \"dropdown\") {\n this.closeDropdown();\n }\n }\n }\n\n handleCellMouseEnter(ev: MouseEvent) {\n const cell = ev.target as HTMLElement;\n const contentWrapper = cell.querySelector(\".cell-content-wrapper\")!;\n const isTruncated = contentWrapper.scrollWidth > contentWrapper.clientWidth;\n\n if (isTruncated) {\n // innerText is necessary vs textContent, as innerText ignores sr-only / display: none text\n showTooltip(\"bottom\", cell, cell.innerText!);\n this.tooltipVisible = true;\n }\n }\n\n handleTagAreaFocus() {\n if (this.tagInputType === \"dropdown\") {\n this.closeDropdown();\n }\n\n const firstFocusableTag = this.nonLockedTagEls[0];\n firstFocusableTag && this.focusTag(firstFocusableTag);\n }\n\n handleRemoveButtonClick(tag: string) {\n this.moveLeftTag();\n this.removeTag(tag);\n }\n\n moveDownListItem() {\n if (this.listItemEls.length > 0) {\n const firstListItem = this.listItemEls[0];\n\n if (!this.focusedListItem) {\n this.focusListItem(firstListItem);\n } else if (this.focusedListItem.nextElementSibling) {\n this.focusListItem(this.focusedListItem.nextElementSibling as HTMLLIElement);\n } else {\n this.focusListItem(firstListItem);\n }\n }\n }\n\n moveUpListItem() {\n if (this.listItemEls.length > 0) {\n const lastListItem = this.listItemEls[this.listItemEls.length - 1];\n\n if (!this.focusedListItem) {\n this.focusListItem(lastListItem);\n } else if (this.focusedListItem.previousElementSibling) {\n this.focusListItem(this.focusedListItem.previousElementSibling as HTMLLIElement);\n } else {\n this.clearListItemFocus();\n }\n }\n }\n\n moveDownRow() {\n if (this.filteredRows.length > 0) {\n if (this.tablePosition.row === 0) {\n this.tablePosition.row = 1;\n } else if (this.tablePosition.row === this.filteredRows.length) {\n this.tablePosition.row = 1;\n } else {\n this.tablePosition.row++;\n }\n\n // skip locked rows\n const rowToFocus = this.wmRowEls[this.tablePosition.row - 1] as HTMLWmTagInputRowElement;\n if (rowToFocus.locked) {\n this.moveDownRow();\n } else {\n this.focusCell(this.tablePosition);\n }\n }\n }\n\n moveUpRow() {\n if (this.filteredRows.length > 0) {\n if (this.tablePosition.row === 0) {\n this.tablePosition.row = this.filteredRows.length;\n } else if (this.tablePosition.row === 1) {\n this.tablePosition.row = 0;\n } else {\n this.tablePosition.row--;\n }\n\n // skip locked rows\n const rowToFocus = this.wmRowEls[this.tablePosition.row - 1] as HTMLWmTagInputRowElement;\n if (rowToFocus && rowToFocus.locked) {\n this.moveUpRow();\n } else if (rowToFocus) {\n this.focusCell(this.tablePosition);\n } else {\n this.clearCellFocus();\n }\n }\n }\n\n moveLeftCell() {\n if (this.tablePosition.column != 1) {\n this.tablePosition.column--;\n this.focusCell(this.tablePosition);\n }\n }\n\n moveRightCell() {\n const numCols = csvToArray(this.colHeaders).length;\n\n if (this.tablePosition.column < numCols) {\n this.tablePosition.column++;\n this.focusCell(this.tablePosition);\n }\n }\n\n moveLeftTag() {\n const lastTag = this.tagEls[this.tagEls.length - 1];\n if (this.focusedTag && this.tagEls.includes(this.focusedTag.previousElementSibling as HTMLLIElement)) {\n this.focusedTag = this.focusedTag.previousElementSibling as HTMLLIElement;\n } else {\n this.focusedTag = lastTag;\n }\n // skip locked tags\n if (this.focusedTag.classList.contains(\"locked\") && this.nonLockedTagEls.length > 0) {\n this.moveLeftTag();\n } else {\n this.focusTag(this.focusedTag);\n }\n }\n\n moveRightTag() {\n const firstTag = this.tagEls[0];\n if (this.focusedTag && this.tagEls.includes(this.focusedTag.nextElementSibling as HTMLLIElement)) {\n this.focusedTag = this.focusedTag.nextElementSibling as HTMLLIElement;\n } else {\n this.focusedTag = firstTag;\n }\n // skip locked tags\n if (this.focusedTag.classList.contains(\"locked\")) {\n this.moveRightTag();\n } else {\n this.focusTag(this.focusedTag);\n }\n }\n\n addOption(option: string): string[] {\n let newOptionsList = this.optionsList;\n const optionAlreadyExists = this.includesCaseInsensitive(this.optionsList, option);\n if (!optionAlreadyExists) {\n newOptionsList = newOptionsList.concat(option);\n }\n return newOptionsList;\n }\n\n removeOption(option: string) {\n this.optionsList = this.filterCaseInsensitive(this.optionsList, option);\n }\n\n addTag(tag: string): void {\n let newTagsList = this.tagsList;\n const tagAlreadyAdded = this.includesCaseInsensitive(this.tagsList, tag);\n const tagExistsAsOption = this.optionsList.filter((x) => x.toLowerCase() === tag.toLowerCase())[0];\n\n if (!tagAlreadyAdded) {\n let textToAnnounce = tag;\n if (this.tagInputType === \"table\") {\n const referencedRow = this.el.querySelector(`#${tag}`) as HTMLWmTagInputRowElement;\n textToAnnounce = referencedRow.col1!;\n }\n this.announce(this.generateTagAddedMessage(textToAnnounce));\n this.tagsList = newTagsList.concat(tagExistsAsOption || tag);\n // if maxTags has been reached, focus should go to the tagArea\n if (this.tagLimitReached) {\n this.tagAreaEl.focus();\n }\n }\n }\n\n removeTag(tag: string) {\n let textToAnnounce = tag;\n if (this.tagInputType === \"table\") {\n const referencedRow = this.el.querySelector(`#${tag}`) as HTMLWmTagInputRowElement;\n textToAnnounce = referencedRow.col1!;\n }\n const tagRemovedMessage = intl.formatMessage(\n { id: \"tagInput.tagRemoved\", defaultMessage: \"{tag} removed\" },\n { tag: textToAnnounce }\n );\n this.announce(tagRemovedMessage);\n this.tagsList = this.filterCaseInsensitive(this.tagsList, tag);\n\n if (this.tagInputType === \"dropdown\") {\n // if a tag was introduced by the user, also remove it from the dropdown options\n const devOptionsList = csvToArray(this.options);\n if (this.includesCaseInsensitive(this.optionsList, tag) && !this.includesCaseInsensitive(devOptionsList, tag)) {\n this.removeOption(tag);\n }\n }\n }\n\n focusListItem(item: HTMLLIElement): void {\n this.focusedListItem = item;\n this.inputEl.setAttribute(\"aria-activedescendant\", this.focusedListItem.id);\n item.scrollIntoView({ block: \"nearest\" });\n }\n\n focusTag(element: HTMLLIElement): void {\n if (element.classList.contains(\"locked\")) {\n this.focusedTag = null;\n this.tagAreaEl.setAttribute(\"aria-activedescendant\", \"\");\n } else {\n this.focusedTag = element;\n this.tagAreaEl.setAttribute(\"aria-activedescendant\", this.focusedTag.id);\n }\n }\n\n focusCell(position: TablePosition) {\n this.clearCellFocus(false);\n\n if (position.row) {\n const rowToFocus = this.localRowEls[position.row];\n const rowCells = rowToFocus.querySelectorAll(\"td\");\n const cellToFocus = rowCells[position.column - 1];\n const contentWrapper = cellToFocus.querySelector(\".cell-content-wrapper\")!;\n const isTruncated = contentWrapper.scrollWidth > contentWrapper.clientWidth;\n\n rowToFocus.classList.add(\"focused\");\n cellToFocus.classList.add(\"focused\");\n cellToFocus.scrollIntoView({ block: \"nearest\" });\n this.inputEl.setAttribute(\"aria-activedescendant\", cellToFocus.id);\n\n this.dismissTooltip();\n if (isTruncated) {\n // innerText is necessary vs textContent, as innerText ignores sr-only / display: none text\n showTooltip(\"bottom\", cellToFocus, cellToFocus.innerText!);\n this.tooltipVisible = true;\n }\n }\n }\n\n clearTagFocus() {\n this.tagAreaEl.setAttribute(\"aria-activedescendant\", \"\");\n this.focusedTag = null;\n }\n\n clearCellFocus(resetPosition: boolean = true) {\n this.inputEl.setAttribute(\"aria-activedescendant\", \"\");\n if (resetPosition) {\n this.tablePosition = { row: 0, column: 1 };\n }\n\n this.localRowEls.forEach((row) => {\n row.classList.remove(\"focused\");\n row.querySelectorAll(\"td\").forEach((cell) => {\n cell.classList.remove(\"focused\");\n });\n });\n }\n\n openDropdown() {\n // given an offset of -2px because the dropdown is transformed downwards to avoid overlapping the focus border\n this.openUp = shouldOpenUp(this.el, this.dropdownEl, this.el.clientHeight, -2);\n this.isExpanded = true;\n }\n\n closeDropdown() {\n this.clearListItemFocus();\n this.isExpanded = false;\n }\n\n clearListItemFocus() {\n this.focusedListItem = null;\n this.inputEl.setAttribute(\"aria-activedescendant\", \"\");\n\n this.listItemEls.forEach((el) => {\n el.classList.remove(\"focused\");\n });\n }\n\n resetInput() {\n this.charCount = 0;\n this.inputEl.value = \"\";\n }\n\n announce(message: string) {\n // \\u00A0 is a non-breaking space character, which causes the message to be read as a new one\n if (this.liveRegionEl.textContent === message) {\n message += \"\\u00A0\";\n }\n this.liveRegionMessage = message;\n }\n\n announceExistingOptions() {\n // request animation frame to wait for re-rendering of filtered options\n window.requestAnimationFrame(() => {\n let numResults = 0;\n\n if (this.tagInputType === \"dropdown\") {\n numResults = this.optionEls.length;\n } else if (this.tagInputType === \"table\") {\n numResults = this.filteredRows.length;\n }\n\n const existingOptionsMessage = intl.formatMessage(\n {\n id: \"tagInput.existingOptions\",\n defaultMessage: \"{num, plural, one {1 existing option.} other {# existing options.}}\",\n },\n { num: numResults }\n );\n\n this.announce(existingOptionsMessage);\n });\n }\n\n generateCharacterLimitWarning(charCount: number, charLimit: number): string {\n let message = globalMessages.getCharactersEntered(charCount, charLimit);\n if (charCount >= charLimit) {\n message += ` ${globalMessages.characterLimitReached}`;\n }\n return message;\n }\n\n positionInput() {\n const lastTag = this.tagEls[this.tagEls.length - 1];\n // default placement to fall back to when no tags are present, or not enough space is available\n this.inputEl.style.position = \"static\";\n this.inputEl.style.width = \"100%\";\n\n if (lastTag) {\n const spaceAvailable = this.tagAreaEl.getBoundingClientRect().right - lastTag.getBoundingClientRect().right;\n if (spaceAvailable >= this.inputMinimumWidth) {\n // because the input has right: 0px\n // all thats needed to properly place it is setting position: absolute, top, and width\n this.inputEl.style.position = \"absolute\";\n this.inputEl.style.top = lastTag.offsetTop.toString() + \"px\";\n this.inputEl.style.width =\n (this.tagAreaEl.getBoundingClientRect().right - lastTag.getBoundingClientRect().right - 8).toString() + \"px\";\n }\n }\n }\n\n /// Helpers\n\n listToCSV(list: string[]): string {\n return list.join(\",\");\n }\n\n includesCaseInsensitive(list: string[], element: string): boolean {\n const lowercaseList = list.map((str) => str.toLowerCase());\n return lowercaseList.includes(element.toLowerCase());\n }\n\n filterCaseInsensitive(list: string[], element: string): string[] {\n return list.filter((x) => x.toLowerCase() !== element.toLowerCase());\n }\n\n sortCaseInsensitive(list: string[]) {\n // The vanilla .sort method places words that start with capital letters above others (ASCII order)\n // so we need to pass in our own compare function to sort case-insensitive\n return list.sort((a, b) => {\n a = a.toLowerCase();\n b = b.toLowerCase();\n return a > b ? 1 : a < b ? -1 : 0;\n });\n }\n\n /// Renders\n\n renderTags() {\n let lockedTags: HTMLLIElement[] = [];\n let unlockedTags: HTMLLIElement[] = [];\n\n this.tagsList.forEach((tag, idx) => {\n const id = `tag${idx + 1}`;\n let tagText = \"\";\n let isLocked = false;\n\n if (this.tagInputType === \"dropdown\") {\n tagText = tag;\n } else if (this.tagInputType === \"table\") {\n // display table tags using col1 of the row with the same id\n // if one can't be found, display as empty\n const referencedRow = this.el.querySelector(`#${tag}`) as HTMLWmTagInputRowElement;\n tagText = referencedRow ? referencedRow.col1! : \"\";\n isLocked = referencedRow ? referencedRow.locked : false;\n }\n\n // make sure locked tags always appear in front of list\n const targetList = isLocked ? lockedTags : unlockedTags;\n targetList.push(\n <li\n id={id}\n class={`tag highlight ${this.focusedTag && this.focusedTag.id === id ? \"focused\" : \"\"} ${\n isLocked ? \"locked\" : \"\"\n }`}\n data-tag={tag}\n role=\"option\"\n >\n {tagText}\n {isLocked ? (\n <div class=\"icon lock\"></div>\n ) : (\n <button class=\"icon remove-btn\" tabIndex={-1} onClick={() => this.handleRemoveButtonClick(tag)}></button>\n )}\n </li>\n );\n });\n\n return [...lockedTags, ...unlockedTags];\n }\n\n renderDropdown() {\n return (\n <div\n class={`dropdown-wrapper ${this.isExpanded ? \"open\" : \"\"} ${this.openUp ? \"upwards\" : \"\"}`}\n ref={(el) => (this.dropdownEl = el as HTMLDivElement)}\n >\n <div id=\"help-text\" class=\"help-text\">\n {this.renderHelpText()}\n </div>\n <ul\n class=\"dropdown\"\n id=\"dropdown\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n aria-expanded={this.isExpanded ? \"true\" : false}\n aria-label={this.label}\n tabindex={-1}\n >\n {this.inputEl && this.renderAddNewButton()}\n {this.renderListItems(this.optionsList)}\n </ul>\n </div>\n );\n }\n\n renderListItems(optionsList: string[]) {\n optionsList = this.sortCaseInsensitive(optionsList);\n\n // filter by input\n if (this.inputEl && this.inputEl.value) {\n optionsList = this.optionsList.filter((option) =>\n option.toLowerCase().includes(this.inputEl.value.toLowerCase())\n );\n }\n\n return optionsList.map((option, idx) => {\n const id = `option${idx + 1}`;\n const isFocused = this.focusedListItem && this.focusedListItem.id === id;\n const isSelected = this.includesCaseInsensitive(this.tagsList, option);\n\n return (\n <li\n class={`option ${isFocused ? \"focused\" : \"\"}`}\n role=\"option\"\n id={id}\n data-option={option}\n aria-selected={isSelected ? \"true\" : \"false\"}\n aria-disabled={isSelected ? \"true\" : \"false\"}\n onKeyDown={(ev) => this.handleListItemKeyDown(ev)}\n onBlur={(ev) => this.handleBlur(ev, this.el)}\n onClick={(ev) => this.handleListItemClick(ev.target as HTMLElement)}\n >\n {option}\n </li>\n );\n });\n }\n\n renderAddNewButton() {\n const hasNonWhiteSpaceCharacters = this.inputEl.value.match(/\\S/);\n const optionAlreadyExists = this.includesCaseInsensitive(this.optionsList, this.inputEl.value.trim());\n if (this.addNew && hasNonWhiteSpaceCharacters && !optionAlreadyExists) {\n const id = `add-new-btn`;\n const isFocused = this.focusedListItem && this.focusedListItem.id === id;\n return (\n <li\n role=\"option\"\n class={`add-new-btn ${isFocused ? \"focused\" : \"\"}`}\n id={id}\n data-option={this.inputEl.value}\n onKeyDown={(ev) => this.handleListItemKeyDown(ev)}\n onBlur={(ev) => this.handleBlur(ev, this.el)}\n onClick={(ev) => this.handleListItemClick(ev.target as HTMLElement)}\n tabIndex={isFocused ? 0 : -1}\n >\n {`Add \"${this.inputEl.value.trim()}\"`}\n </li>\n );\n } else return \"\";\n }\n\n renderHelpText() {\n let helpText = \"\";\n\n if (this.optionsList.length > 0) {\n helpText += this.componentMessages.selectionHelpText;\n }\n if (this.addNew) {\n helpText += \" \" + this.componentMessages.addNewHelpText;\n }\n\n return helpText;\n }\n\n renderTagCounter() {\n if (this.maxTags) {\n return (\n <div class=\"lower-row\">\n <div id=\"max-tags\">\n {`${this.componentMessages.tagsAdded}: ${this.tagsList.length}/${this.maxTags}`}\n {this.tagLimitReached && ` - ${this.componentMessages.maxTagsReached}`}\n </div>\n </div>\n );\n }\n }\n\n renderTable() {\n return (\n <div class=\"table-wrapper\" onScroll={() => this.dismissTooltip()}>\n <table\n id=\"table\"\n role=\"grid\"\n class={`${this.colWidths ? \"fixed-widths\" : \"\"}`}\n aria-label={this.label}\n aria-multiselectable=\"true\"\n >\n {this.renderTableHeaders()}\n {this.filteredRows.length ? this.renderTableRows() : <div class=\"no-results\">{this.noResultsMessage}</div>}\n </table>\n </div>\n );\n }\n\n renderTableHeaders() {\n return (\n <tr class=\"headers\" role=\"row\">\n {csvToArray(this.colHeaders).map((header, idx) => {\n let overflowRule = \"wrap\";\n if (this.colWrap && csvToArray(this.colWrap)[idx]) {\n overflowRule = csvToArray(this.colWrap)[idx];\n }\n return (\n <th\n class={`header-cell ${overflowRule}`}\n role=\"columnheader\"\n // @ts-ignore\n width={this.colWidths ? csvToArray(this.colWidths)[idx] : \"\"}\n >\n {header}\n </th>\n );\n })}\n </tr>\n );\n }\n\n renderTableRows() {\n return this.filteredRows.map((row) => {\n const isSelected: boolean = this.includesCaseInsensitive(this.tagsList, row.id);\n\n return (\n <tr\n id={row.id}\n class={`${row.locked ? \"locked\" : \"\"} ${isSelected ? \"selected\" : \"\"}`}\n role=\"row\"\n onClick={() => this.handleTableRowClick(row.id)}\n >\n {this.renderTableCells(row)}\n </tr>\n );\n });\n }\n\n renderTableCells(row: HTMLWmTagInputRowElement) {\n const colValues = [row.col1, row.col2, row.col3, row.col4].filter((val) => !!val);\n const isSelected: boolean = this.includesCaseInsensitive(this.tagsList, row.id);\n\n return colValues.map((val, idx) => {\n const localId = `${row.id}-col${idx + 1}`;\n let overflowRule = \"wrap\";\n if (this.colWrap && csvToArray(this.colWrap)[idx]) {\n overflowRule = csvToArray(this.colWrap)[idx];\n }\n\n return (\n <td\n id={localId}\n role=\"gridcell\"\n aria-describedby={`${localId}-description`}\n aria-selected={isSelected.toString()}\n onMouseEnter={(ev) => this.handleCellMouseEnter(ev)}\n onMouseLeave={() => this.dismissTooltip()}\n >\n <div class={`cell-content-wrapper ${overflowRule}`}>{val}</div>\n <div class=\"description\" id={`${localId}-description`}>\n {row.locked ? \"locked\" : \"\"}\n </div>\n </td>\n );\n });\n }\n\n render() {\n return (\n <Host id={this.uid}>\n <div class={`wrapper label-${this.labelPosition} ${this.errorMessage ? \"invalid\" : \"\"}`}>\n <div class=\"label-wrapper\">\n <label class=\"label\" htmlFor={`input${this.uid}`}>\n {this.label}\n {this.requiredField && (\n <span class=\"required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n </div>\n <div\n class={`field-wrapper ${this.focusedElement ? \"focused\" : \"\"} ${this.errorMessage ? \"invalid\" : \"\"}`}\n ref={(el) => (this.fieldWrapperEl = el as HTMLDivElement)}\n >\n <div class=\"upper-row\">\n <div class=\"tags-and-input-wrapper\">\n {this.tagsList.length > 0 && (\n <ul\n ref={(el) => (this.tagAreaEl = el as HTMLUListElement)}\n class=\"tag-area\"\n role=\"listbox\"\n aria-activedescendant=\"\"\n aria-orientation=\"horizontal\"\n aria-label={`${this.label} ${\n this.tagsList.length > 0 ? this.componentMessages.tagAreaInstructions : \"\"\n }`}\n tabindex={this.nonLockedTagsList.length > 0 ? 0 : -1}\n aria-describedby={`info max-tags`}\n onFocus={() => this.handleTagAreaFocus()}\n onBlur={(ev) => {\n this.clearTagFocus();\n this.handleBlur(ev, this.el);\n }}\n onKeyDown={(ev) => this.handleTagAreaKeyDown(ev)}\n >\n {this.renderTags()}\n </ul>\n )}\n <input\n id={`input${this.uid}`}\n class={this.tagLimitReached ? \"hidden\" : \"\"}\n role=\"combobox\"\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n autocomplete=\"off\"\n aria-required={this.requiredField ? \"true\" : null}\n aria-controls={this.tagInputType}\n aria-describedby={`help-text${this.errorMessage ? \" error \" : \"\"}`}\n aria-label={`${this.label} ${\n this.tagInputType === \"dropdown\" ? globalMessages.getCharacterLimit(this.characterLimit) : \"\"\n }`}\n aria-expanded={this.tagInputType === \"dropdown\" ? this.isExpanded.toString() : null}\n placeholder={this.placeholder}\n maxLength={this.tagInputType === \"dropdown\" ? this.characterLimit : undefined}\n onInput={() => this.handleInputChanged(this.inputEl.value)}\n onBlur={(ev) => {\n this.handleBlur(ev, this.el);\n }}\n onFocus={() => this.handleInputFocus()}\n onKeyDown={(ev) => this.handleInputKeyDown(ev)}\n ></input>\n </div>\n {this.tagInputType === \"dropdown\" && (\n <div class=\"character-count\">\n {this.charCount}/{this.characterLimit}\n </div>\n )}\n </div>\n {this.renderTagCounter()}\n {this.tagInputType === \"dropdown\" && this.renderDropdown()}\n </div>\n {this.info && (\n <div id=\"info\" class=\"info-text\">\n {this.info}\n </div>\n )}\n {this.errorMessage && <div id=\"error\">{this.errorMessage}</div>}\n <div\n class=\"sr-only\"\n aria-live=\"assertive\"\n ref={(el) => (this.liveRegionEl = el as HTMLDivElement)}\n aria-atomic=\"true\"\n >\n {this.liveRegionMessage}\n </div>\n {this.tagInputType === \"table\" && this.renderTable()}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|