@watermarkinsights/ripple 3.26.0-9 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cjs/{chartFunctions-d746b939.js → chartFunctions-b7452189.js} +596 -596
- package/dist/cjs/{functions-68f637b4.js → functions-a047a8ea.js} +503 -503
- package/dist/cjs/{global-0f60d748.js → global-21ae6c78.js} +72 -72
- package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
- package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
- package/dist/cjs/{intl-d9ffc76c.js → intl-47d63c8f.js} +131 -131
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/priv-chart-popover.cjs.entry.js +91 -91
- package/dist/cjs/priv-datepicker.cjs.entry.js +657 -657
- package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
- package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
- package/dist/cjs/ripple.cjs.js +1 -1
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +334 -334
- package/dist/cjs/wm-button.cjs.entry.js +260 -260
- package/dist/cjs/wm-chart-slice.cjs.entry.js +18 -18
- package/dist/cjs/wm-chart.cjs.entry.js +183 -183
- package/dist/cjs/wm-datepicker.cjs.entry.js +263 -263
- package/dist/cjs/wm-file-list.cjs.entry.js +35 -35
- package/dist/cjs/wm-file.cjs.entry.js +181 -181
- package/dist/cjs/wm-input.cjs.entry.js +137 -137
- package/dist/cjs/wm-modal-footer.cjs.entry.js +33 -33
- package/dist/cjs/wm-modal-header.cjs.entry.js +32 -32
- package/dist/cjs/wm-modal.cjs.entry.js +152 -152
- package/dist/cjs/wm-navigation_3.cjs.entry.js +225 -225
- package/dist/cjs/wm-navigator.cjs.entry.js +264 -264
- package/dist/cjs/wm-network-uploader.cjs.entry.js +465 -465
- package/dist/cjs/wm-option_2.cjs.entry.js +768 -768
- package/dist/cjs/wm-pagination.cjs.entry.js +179 -179
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +155 -155
- package/dist/cjs/wm-search.cjs.entry.js +184 -184
- package/dist/cjs/wm-snackbar.cjs.entry.js +155 -155
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +264 -264
- package/dist/cjs/wm-tag-input-row.cjs.entry.js +14 -14
- package/dist/cjs/wm-tag-input.cjs.entry.js +939 -939
- package/dist/cjs/wm-timepicker.cjs.entry.js +385 -385
- package/dist/cjs/wm-toggletip.cjs.entry.js +130 -130
- package/dist/cjs/wm-uploader.cjs.entry.js +441 -441
- package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
- package/dist/collection/components/charts/chartFunctions.js +562 -562
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +267 -267
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +125 -125
- package/dist/collection/components/charts/wm-chart/wm-chart.js +450 -450
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +207 -207
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +143 -143
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +121 -121
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +472 -472
- package/dist/collection/components/wm-button/wm-button.js +575 -575
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +983 -983
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +491 -491
- package/dist/collection/components/wm-file/wm-file.js +313 -313
- package/dist/collection/components/wm-file-list/wm-file-list.js +152 -152
- package/dist/collection/components/wm-input/wm-input.css +5 -1
- package/dist/collection/components/wm-input/wm-input.js +509 -509
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +454 -454
- package/dist/collection/components/wm-modal/wm-modal-footer.js +138 -138
- package/dist/collection/components/wm-modal/wm-modal-header.js +82 -82
- package/dist/collection/components/wm-modal/wm-modal.js +462 -462
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +176 -176
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +130 -130
- package/dist/collection/components/wm-navigation/wm-navigation.js +217 -217
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +106 -106
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +123 -123
- package/dist/collection/components/wm-navigator/wm-navigator.js +467 -467
- package/dist/collection/components/wm-option/wm-option.js +435 -435
- package/dist/collection/components/wm-pagination/wm-pagination.js +370 -370
- package/dist/collection/components/wm-search/wm-search.js +439 -439
- package/dist/collection/components/wm-select/wm-select.js +1054 -1054
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +282 -282
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +211 -211
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +327 -327
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +108 -108
- package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +122 -122
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +1294 -1294
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +605 -605
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +253 -253
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +772 -772
- package/dist/collection/components/wm-uploader/wm-uploader.js +964 -964
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +28 -28
- package/dist/collection/dev/scripts.js +20 -20
- package/dist/collection/global/__mocks__/functions.js +6 -6
- package/dist/collection/global/functions.js +546 -546
- package/dist/collection/global/global.js +79 -79
- package/dist/collection/global/interfaces.js +49 -49
- package/dist/collection/global/intl.js +132 -132
- package/dist/collection/global/services/__mocks__/http-service.js +130 -130
- package/dist/collection/global/services/http-service.js +50 -50
- package/dist/collection/lang/lang.js +5 -5
- package/dist/collection/lang/missing.js +43 -43
- package/dist/collection/lang/piglatin.js +93 -93
- package/dist/esm/{chartFunctions-5c1ad085.js → chartFunctions-9d629e09.js} +596 -596
- package/dist/esm/{functions-b2582352.js → functions-3b813e0c.js} +503 -503
- package/dist/esm/{global-86bf0ca6.js → global-c7bb5530.js} +72 -72
- package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
- package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
- package/dist/esm/{intl-6732dd5b.js → intl-d544f922.js} +131 -131
- package/dist/esm/loader.js +1 -1
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/priv-chart-popover.entry.js +91 -91
- package/dist/esm/priv-datepicker.entry.js +657 -657
- package/dist/esm/priv-navigator-button.entry.js +19 -19
- package/dist/esm/priv-navigator-item.entry.js +23 -23
- package/dist/esm/ripple.js +1 -1
- package/dist/esm/wm-action-menu_2.entry.js +334 -334
- package/dist/esm/wm-button.entry.js +260 -260
- package/dist/esm/wm-chart-slice.entry.js +18 -18
- package/dist/esm/wm-chart.entry.js +183 -183
- package/dist/esm/wm-datepicker.entry.js +263 -263
- package/dist/esm/wm-file-list.entry.js +35 -35
- package/dist/esm/wm-file.entry.js +181 -181
- package/dist/esm/wm-input.entry.js +137 -137
- package/dist/esm/wm-modal-footer.entry.js +33 -33
- package/dist/esm/wm-modal-header.entry.js +32 -32
- package/dist/esm/wm-modal.entry.js +152 -152
- package/dist/esm/wm-navigation_3.entry.js +225 -225
- package/dist/esm/wm-navigator.entry.js +264 -264
- package/dist/esm/wm-network-uploader.entry.js +465 -465
- package/dist/esm/wm-option_2.entry.js +768 -768
- package/dist/esm/wm-pagination.entry.js +179 -179
- package/dist/esm/wm-progress-indicator_3.entry.js +155 -155
- package/dist/esm/wm-search.entry.js +184 -184
- package/dist/esm/wm-snackbar.entry.js +155 -155
- package/dist/esm/wm-tab-item_3.entry.js +264 -264
- package/dist/esm/wm-tag-input-row.entry.js +14 -14
- package/dist/esm/wm-tag-input.entry.js +939 -939
- package/dist/esm/wm-timepicker.entry.js +385 -385
- package/dist/esm/wm-toggletip.entry.js +130 -130
- package/dist/esm/wm-uploader.entry.js +441 -441
- package/dist/esm/wm-wrapper.entry.js +12 -12
- package/dist/esm-es5/{chartFunctions-5c1ad085.js → chartFunctions-9d629e09.js} +1 -1
- package/dist/esm-es5/global-c7bb5530.js +1 -0
- package/dist/esm-es5/{intl-6732dd5b.js → intl-d544f922.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-datepicker.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-modal-header.entry.js +1 -1
- package/dist/esm-es5/wm-modal.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/ripple/{p-d5a420fa.entry.js → p-05563588.entry.js} +1 -1
- package/dist/ripple/{p-061914bf.system.entry.js → p-09a04f55.system.entry.js} +1 -1
- package/dist/ripple/{p-a2f10a77.entry.js → p-09bc0aa7.entry.js} +1 -1
- package/dist/ripple/{p-0414179c.entry.js → p-0cfc0d13.entry.js} +1 -1
- package/dist/ripple/{p-a9080b82.entry.js → p-0ef638b7.entry.js} +1 -1
- package/dist/ripple/{p-f740c48c.system.entry.js → p-12c70659.system.entry.js} +1 -1
- package/dist/ripple/p-169606b9.system.js +1 -0
- package/dist/ripple/{p-7ee31208.js → p-18c2f4fe.js} +1 -1
- package/dist/ripple/{p-462e7cf8.system.entry.js → p-236dab05.system.entry.js} +1 -1
- package/dist/ripple/{p-9baf62ae.entry.js → p-2cd5477a.entry.js} +1 -1
- package/dist/ripple/{p-2cef256c.system.entry.js → p-2cde4ade.system.entry.js} +1 -1
- package/dist/ripple/{p-076a8729.entry.js → p-2d46dbea.entry.js} +1 -1
- package/dist/ripple/{p-3313df40.system.entry.js → p-2dd5f5c3.system.entry.js} +1 -1
- package/dist/ripple/{p-64b64f40.system.entry.js → p-35790e4e.system.entry.js} +1 -1
- package/dist/ripple/{p-4e7489a3.system.entry.js → p-38819b27.system.entry.js} +1 -1
- package/dist/ripple/{p-926aab51.entry.js → p-3aa8e5f5.entry.js} +1 -1
- package/dist/ripple/{p-42739dba.entry.js → p-42f8f3ff.entry.js} +1 -1
- package/dist/ripple/{p-c1d814f8.system.entry.js → p-4444add0.system.entry.js} +1 -1
- package/dist/ripple/{p-0648aa61.system.entry.js → p-4f5a48dd.system.entry.js} +1 -1
- package/dist/ripple/{p-2948bf33.system.entry.js → p-4fb81a33.system.entry.js} +1 -1
- package/dist/ripple/{p-22b74491.entry.js → p-51b38033.entry.js} +1 -1
- package/dist/ripple/{p-9706537b.system.js → p-54a2b7d6.system.js} +1 -1
- package/dist/ripple/{p-00edfbc8.system.entry.js → p-56ba575c.system.entry.js} +1 -1
- package/dist/ripple/{p-b7f204e6.entry.js → p-5708349e.entry.js} +1 -1
- package/dist/ripple/{p-7dafc84b.system.entry.js → p-630bd6f5.system.entry.js} +1 -1
- package/dist/ripple/{p-b7982fab.system.js → p-6eb2c2d5.system.js} +1 -1
- package/dist/ripple/{p-a966a18c.entry.js → p-72b9b986.entry.js} +1 -1
- package/dist/ripple/p-76015762.js +1 -0
- package/dist/ripple/{p-3aaf86e4.entry.js → p-7f15df83.entry.js} +1 -1
- package/dist/ripple/{p-5ddb1660.entry.js → p-832910a0.entry.js} +1 -1
- package/dist/ripple/{p-66bb46e5.system.entry.js → p-84ce9b67.system.entry.js} +1 -1
- package/dist/ripple/{p-e6fde200.system.entry.js → p-8775e10b.system.entry.js} +1 -1
- package/dist/ripple/{p-6f96c28d.entry.js → p-8b23f32b.entry.js} +1 -1
- package/dist/ripple/{p-17490d32.entry.js → p-8c853762.entry.js} +1 -1
- package/dist/ripple/{p-81b26d3a.system.entry.js → p-8ff578ad.system.entry.js} +1 -1
- package/dist/ripple/{p-9b9e60aa.system.entry.js → p-95aa793b.system.entry.js} +1 -1
- package/dist/ripple/{p-9b28a31f.entry.js → p-95f4e5a1.entry.js} +1 -1
- package/dist/ripple/{p-accdf91c.system.entry.js → p-a006968b.system.entry.js} +1 -1
- package/dist/ripple/{p-2d33df00.system.js → p-a48e4f1a.system.js} +1 -1
- package/dist/ripple/{p-094388f1.entry.js → p-ae1e1db8.entry.js} +1 -1
- package/dist/ripple/{p-3b582301.entry.js → p-b3d97de8.entry.js} +1 -1
- package/dist/ripple/{p-f8418ac9.entry.js → p-bdecbb63.entry.js} +1 -1
- package/dist/ripple/{p-b805612a.system.entry.js → p-c3665c9f.system.entry.js} +1 -1
- package/dist/ripple/{p-d7f77b2c.js → p-d96b86c9.js} +1 -1
- package/dist/ripple/p-d973fe13.system.entry.js +1 -0
- package/dist/ripple/{p-0503e614.system.entry.js → p-ea99fb58.system.entry.js} +1 -1
- package/dist/ripple/{p-bd94e7c3.entry.js → p-eeeec290.entry.js} +1 -1
- package/dist/ripple/{p-a5662a2c.system.entry.js → p-f2bb38d0.system.entry.js} +1 -1
- package/dist/ripple/{p-043b4874.entry.js → p-f6c9c95f.entry.js} +1 -1
- package/dist/ripple/{p-731beaab.system.entry.js → p-f6f80b8d.system.entry.js} +1 -1
- package/dist/ripple/{p-49f7f1da.entry.js → p-fe76e568.entry.js} +1 -1
- package/dist/ripple/{p-60f58a39.system.entry.js → p-fea37751.system.entry.js} +1 -1
- package/dist/ripple/{p-5b7e1b5d.entry.js → p-ffb83b6f.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/charts/chartFunctions.d.ts +37 -37
- package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -27
- package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
- package/dist/types/components/charts/wm-chart/wm-chart.d.ts +47 -47
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +29 -29
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +20 -20
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +49 -49
- package/dist/types/components/wm-button/wm-button.d.ts +49 -49
- package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
- package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +42 -42
- package/dist/types/components/wm-file/wm-file.d.ts +40 -40
- package/dist/types/components/wm-file-list/wm-file-list.d.ts +16 -16
- package/dist/types/components/wm-input/wm-input.d.ts +57 -57
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +14 -14
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +10 -10
- package/dist/types/components/wm-modal/wm-modal.d.ts +40 -40
- package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -21
- package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
- package/dist/types/components/wm-navigation/wm-navigation.d.ts +26 -26
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
- package/dist/types/components/wm-option/wm-option.d.ts +34 -34
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
- package/dist/types/components/wm-search/wm-search.d.ts +77 -77
- package/dist/types/components/wm-select/wm-select.d.ts +101 -101
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +31 -31
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +37 -37
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +52 -52
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
- package/dist/types/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.d.ts +11 -11
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +136 -136
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -62
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +28 -28
- package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +99 -99
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
- package/dist/types/components.d.ts +27 -27
- package/dist/types/global/__mocks__/functions.d.ts +6 -6
- package/dist/types/global/functions.d.ts +49 -49
- package/dist/types/global/global.d.ts +1 -1
- package/dist/types/global/interfaces.d.ts +74 -74
- package/dist/types/global/intl.d.ts +29 -29
- package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
- package/dist/types/global/services/http-service.d.ts +4 -4
- package/dist/types/lang/lang.d.ts +5 -5
- package/package.json +46 -46
- package/dist/esm-es5/global-86bf0ca6.js +0 -1
- package/dist/ripple/p-233c8059.js +0 -1
- package/dist/ripple/p-9f9a5a1f.system.js +0 -1
- package/dist/ripple/p-e4cef02b.system.entry.js +0 -1
- /package/dist/esm-es5/{functions-b2582352.js → functions-3b813e0c.js} +0 -0
- /package/dist/esm-es5/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +0 -0
- /package/dist/esm-es5/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +0 -0
- /package/dist/ripple/{p-9e94ae94.system.js → p-190afa40.system.js} +0 -0
- /package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
- /package/dist/ripple/{p-5384856b.js → p-4a0e1d2d.js} +0 -0
- /package/dist/ripple/{p-313b6073.system.js → p-9d02957d.system.js} +0 -0
- /package/dist/ripple/{p-08b7ec08.system.js → p-f5df5903.system.js} +0 -0
- /package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
|
@@ -1,240 +1,240 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, f as forceUpdate } from './index-e887b1ce.js';
|
|
2
|
-
import { i as intl, y as throttle } from './functions-
|
|
3
|
-
import { g as globalMessages } from './intl-
|
|
2
|
+
import { i as intl, y as throttle } from './functions-3b813e0c.js';
|
|
3
|
+
import { g as globalMessages } from './intl-d544f922.js';
|
|
4
4
|
|
|
5
5
|
const wmNavigationCss = ":host{z-index:10}:host([aria-expanded=true]){z-index:5000}.tray{-webkit-box-shadow:0 0 14px 0 rgba(0, 0, 0, 0.14);-moz-box-shadow:0 0 14px 0 rgba(0, 0, 0, 0.14);box-shadow:0 0 14px 0 rgba(0, 0, 0, 0.14);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:7.5625rem;background-color:#fff;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;font-size:0.875rem;height:100%}.navlist{margin:0;padding:0}.toggle-wrapper{display:none}@media screen and (max-width: 1023px){.tray{-ms-transition:transform 0.33s ease;-webkit-transition:transform 0.33s ease;-moz-transition:transform 0.33s ease;-webkit-transition:-webkit-transform 0.33s ease;transition:-webkit-transform 0.33s ease;transition:transform 0.33s ease;transition:transform 0.33s ease, -webkit-transform 0.33s ease;position:fixed;top:0;bottom:0;left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.tray ul{visibility:hidden}.tray .toggle-wrapper{display:inline-block;min-height:5rem;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}:host([aria-expanded=true]) .tray{-webkit-transform:translateX(0);transform:translateX(0)}:host([aria-expanded=true]) .tray ul{visibility:visible}.overlay{width:100vw;height:100vh;max-width:none;max-height:none;position:fixed !important;top:0;bottom:0;left:0;right:0;-webkit-transform:translate(0%, 0%);transform:translate(0%, 0%);background-color:rgba(25, 25, 25, 0.4);-ms-transition:opacity 0.5s ease-out;-webkit-transition:opacity 0.5s ease-out;-moz-transition:opacity 0.5s ease-out;transition:opacity 0.5s ease-out}}";
|
|
6
6
|
|
|
7
|
-
const Navigation = class {
|
|
8
|
-
constructor(hostRef) {
|
|
9
|
-
registerInstance(this, hostRef);
|
|
10
|
-
this.wmNavigationStateChanged = createEvent(this, "wmNavigationStateChanged", 7);
|
|
11
|
-
this.mainNavigationMessage = intl.formatMessage({
|
|
12
|
-
id: "navigation.mainNavigation",
|
|
13
|
-
defaultMessage: "Main",
|
|
14
|
-
description: "Label describing the site navigation, for screen reader users",
|
|
15
|
-
});
|
|
16
|
-
this.throttledRerender = throttle(() => forceUpdate(this.el), 50);
|
|
17
|
-
this.open = false;
|
|
18
|
-
this.isTabbing = false;
|
|
19
|
-
}
|
|
20
|
-
get isCollapsible() {
|
|
21
|
-
return window.innerWidth < 1024;
|
|
22
|
-
}
|
|
23
|
-
get ariaExpanded() {
|
|
24
|
-
return this.isCollapsible
|
|
25
|
-
? // if component is in collapsible mode, set aria-expanded according to expanded state
|
|
26
|
-
this.open.toString()
|
|
27
|
-
: // otherwise, do not render attr at all
|
|
28
|
-
undefined;
|
|
29
|
-
}
|
|
30
|
-
toggleTabbingOn() {
|
|
31
|
-
this.isTabbing = true;
|
|
32
|
-
}
|
|
33
|
-
toggleTabbingOff() {
|
|
34
|
-
this.isTabbing = false;
|
|
35
|
-
}
|
|
36
|
-
closeOnEscape(ev) {
|
|
37
|
-
if (ev.key === "Escape") {
|
|
38
|
-
this.open = false;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
handleWindowResize() {
|
|
42
|
-
// for component to react when breakpoint is crossed
|
|
43
|
-
// (doesn't rerender on window resize)
|
|
44
|
-
this.throttledRerender();
|
|
45
|
-
}
|
|
46
|
-
handleHamburgerClicked() {
|
|
47
|
-
this.open = !this.open;
|
|
48
|
-
}
|
|
49
|
-
handleClickOnItem() {
|
|
50
|
-
this.open = false;
|
|
51
|
-
}
|
|
52
|
-
handleStateChange() {
|
|
53
|
-
if (this.isCollapsible) {
|
|
54
|
-
this.wmNavigationStateChanged.emit();
|
|
55
|
-
this.open ? this.expand() : this.collapse();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
componentWillLoad() {
|
|
59
|
-
if (document.body.classList.contains("wmcl-user-is-tabbing")) {
|
|
60
|
-
this.toggleTabbingOn();
|
|
61
|
-
}
|
|
62
|
-
this.el.focus = () => {
|
|
63
|
-
// in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state
|
|
64
|
-
const btn = this.open
|
|
65
|
-
? this.el.shadowRoot.querySelector(".toggle")
|
|
66
|
-
: document.querySelector("wm-navigation-hamburger");
|
|
67
|
-
const firstItem = this.el.querySelector("wm-navigation-item");
|
|
68
|
-
this.isCollapsible ? btn.focus() : firstItem.focus();
|
|
69
|
-
};
|
|
70
|
-
if (this.isCollapsible && this.open) {
|
|
71
|
-
// hamburger needs to know if open was initially set to true
|
|
72
|
-
this.wmNavigationStateChanged.emit();
|
|
73
|
-
this.expand();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
redirectFocusFromBody(ev) {
|
|
77
|
-
// the 2nd check excludes the case when user clicks on the page when the nav is open,
|
|
78
|
-
// which should not redirect focus
|
|
79
|
-
if (document.activeElement.tagName === "BODY" && !ev.relatedTarget) {
|
|
80
|
-
this.el.focus();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
expand() {
|
|
84
|
-
// listen to focus on body and redirect to the component
|
|
85
|
-
// this is to handle trap focus when user has left the page (e.g. went to the address bar)
|
|
86
|
-
// and is tabbing back in
|
|
87
|
-
document.body.tabIndex = 0;
|
|
88
|
-
document.body.addEventListener("focus", this.redirectFocusFromBody.bind(this), true);
|
|
89
|
-
// wait for nav to be expanded otherwise tooltip will be misplaced.
|
|
90
|
-
setTimeout(() => this.toggleEl.focus(), 250);
|
|
91
|
-
//document.querySelector("wm-navigation")!.shadowRoot!.querySelector(".toggle")!.focus()
|
|
92
|
-
}
|
|
93
|
-
collapse() {
|
|
94
|
-
// rm event listener on body
|
|
95
|
-
document.body.tabIndex = -1;
|
|
96
|
-
document.body.removeEventListener("focus", this.redirectFocusFromBody.bind(this));
|
|
97
|
-
const hamburgerBtn = document.querySelector("wm-navigation-hamburger");
|
|
98
|
-
// should fail silently if el doesn't exist
|
|
99
|
-
// (dev may have chosen not to use the hamburger component)
|
|
100
|
-
if (hamburgerBtn)
|
|
101
|
-
hamburgerBtn.focus();
|
|
102
|
-
}
|
|
103
|
-
focusLastItem() {
|
|
104
|
-
const items = this.el.querySelectorAll("wm-navigation-item");
|
|
105
|
-
const lastItem = Array.from(items).pop();
|
|
106
|
-
lastItem.focus();
|
|
107
|
-
}
|
|
108
|
-
renderOverlay() {
|
|
109
|
-
return (h("div", { class: "overlay", onClick: () => {
|
|
110
|
-
this.open = false;
|
|
111
|
-
} }));
|
|
112
|
-
}
|
|
113
|
-
render() {
|
|
114
|
-
return (h(Host, { role: "navigation", "aria-expanded": this.ariaExpanded, "aria-label": this.mainNavigationMessage }, this.open ? this.renderOverlay() : "", this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.focusLastItem() })), h("div", { class: "tray" }, h("div", { class: "toggle-wrapper" }, h("wm-button", { ref: (el) => (this.toggleEl = el), class: `toggle ${this.isTabbing ? "user-is-tabbing" : ""}`, "button-type": "navigational", icon: this.open ? "f156" : "f35c", "icon-size": "2rem", tooltip: this.open ? globalMessages.close : globalMessages.open, "tooltip-position": "left", tabIndex: this.open ? undefined : -1, onClick: () => {
|
|
115
|
-
this.open = !this.open;
|
|
116
|
-
} })), h("ul", { class: "navlist" }, h("slot", null))), this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.toggleEl.focus() }))));
|
|
117
|
-
}
|
|
118
|
-
static get delegatesFocus() { return true; }
|
|
119
|
-
get el() { return getElement(this); }
|
|
120
|
-
static get watchers() { return {
|
|
121
|
-
"open": ["handleStateChange"]
|
|
122
|
-
}; }
|
|
123
|
-
};
|
|
7
|
+
const Navigation = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
registerInstance(this, hostRef);
|
|
10
|
+
this.wmNavigationStateChanged = createEvent(this, "wmNavigationStateChanged", 7);
|
|
11
|
+
this.mainNavigationMessage = intl.formatMessage({
|
|
12
|
+
id: "navigation.mainNavigation",
|
|
13
|
+
defaultMessage: "Main",
|
|
14
|
+
description: "Label describing the site navigation, for screen reader users",
|
|
15
|
+
});
|
|
16
|
+
this.throttledRerender = throttle(() => forceUpdate(this.el), 50);
|
|
17
|
+
this.open = false;
|
|
18
|
+
this.isTabbing = false;
|
|
19
|
+
}
|
|
20
|
+
get isCollapsible() {
|
|
21
|
+
return window.innerWidth < 1024;
|
|
22
|
+
}
|
|
23
|
+
get ariaExpanded() {
|
|
24
|
+
return this.isCollapsible
|
|
25
|
+
? // if component is in collapsible mode, set aria-expanded according to expanded state
|
|
26
|
+
this.open.toString()
|
|
27
|
+
: // otherwise, do not render attr at all
|
|
28
|
+
undefined;
|
|
29
|
+
}
|
|
30
|
+
toggleTabbingOn() {
|
|
31
|
+
this.isTabbing = true;
|
|
32
|
+
}
|
|
33
|
+
toggleTabbingOff() {
|
|
34
|
+
this.isTabbing = false;
|
|
35
|
+
}
|
|
36
|
+
closeOnEscape(ev) {
|
|
37
|
+
if (ev.key === "Escape") {
|
|
38
|
+
this.open = false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
handleWindowResize() {
|
|
42
|
+
// for component to react when breakpoint is crossed
|
|
43
|
+
// (doesn't rerender on window resize)
|
|
44
|
+
this.throttledRerender();
|
|
45
|
+
}
|
|
46
|
+
handleHamburgerClicked() {
|
|
47
|
+
this.open = !this.open;
|
|
48
|
+
}
|
|
49
|
+
handleClickOnItem() {
|
|
50
|
+
this.open = false;
|
|
51
|
+
}
|
|
52
|
+
handleStateChange() {
|
|
53
|
+
if (this.isCollapsible) {
|
|
54
|
+
this.wmNavigationStateChanged.emit();
|
|
55
|
+
this.open ? this.expand() : this.collapse();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
componentWillLoad() {
|
|
59
|
+
if (document.body.classList.contains("wmcl-user-is-tabbing")) {
|
|
60
|
+
this.toggleTabbingOn();
|
|
61
|
+
}
|
|
62
|
+
this.el.focus = () => {
|
|
63
|
+
// in addition to delegatesFocus, we need to highjack the focus method to send focus to the appropriate element based on the navigation's state
|
|
64
|
+
const btn = this.open
|
|
65
|
+
? this.el.shadowRoot.querySelector(".toggle")
|
|
66
|
+
: document.querySelector("wm-navigation-hamburger");
|
|
67
|
+
const firstItem = this.el.querySelector("wm-navigation-item");
|
|
68
|
+
this.isCollapsible ? btn.focus() : firstItem.focus();
|
|
69
|
+
};
|
|
70
|
+
if (this.isCollapsible && this.open) {
|
|
71
|
+
// hamburger needs to know if open was initially set to true
|
|
72
|
+
this.wmNavigationStateChanged.emit();
|
|
73
|
+
this.expand();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
redirectFocusFromBody(ev) {
|
|
77
|
+
// the 2nd check excludes the case when user clicks on the page when the nav is open,
|
|
78
|
+
// which should not redirect focus
|
|
79
|
+
if (document.activeElement.tagName === "BODY" && !ev.relatedTarget) {
|
|
80
|
+
this.el.focus();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
expand() {
|
|
84
|
+
// listen to focus on body and redirect to the component
|
|
85
|
+
// this is to handle trap focus when user has left the page (e.g. went to the address bar)
|
|
86
|
+
// and is tabbing back in
|
|
87
|
+
document.body.tabIndex = 0;
|
|
88
|
+
document.body.addEventListener("focus", this.redirectFocusFromBody.bind(this), true);
|
|
89
|
+
// wait for nav to be expanded otherwise tooltip will be misplaced.
|
|
90
|
+
setTimeout(() => this.toggleEl.focus(), 250);
|
|
91
|
+
//document.querySelector("wm-navigation")!.shadowRoot!.querySelector(".toggle")!.focus()
|
|
92
|
+
}
|
|
93
|
+
collapse() {
|
|
94
|
+
// rm event listener on body
|
|
95
|
+
document.body.tabIndex = -1;
|
|
96
|
+
document.body.removeEventListener("focus", this.redirectFocusFromBody.bind(this));
|
|
97
|
+
const hamburgerBtn = document.querySelector("wm-navigation-hamburger");
|
|
98
|
+
// should fail silently if el doesn't exist
|
|
99
|
+
// (dev may have chosen not to use the hamburger component)
|
|
100
|
+
if (hamburgerBtn)
|
|
101
|
+
hamburgerBtn.focus();
|
|
102
|
+
}
|
|
103
|
+
focusLastItem() {
|
|
104
|
+
const items = this.el.querySelectorAll("wm-navigation-item");
|
|
105
|
+
const lastItem = Array.from(items).pop();
|
|
106
|
+
lastItem.focus();
|
|
107
|
+
}
|
|
108
|
+
renderOverlay() {
|
|
109
|
+
return (h("div", { class: "overlay", onClick: () => {
|
|
110
|
+
this.open = false;
|
|
111
|
+
} }));
|
|
112
|
+
}
|
|
113
|
+
render() {
|
|
114
|
+
return (h(Host, { role: "navigation", "aria-expanded": this.ariaExpanded, "aria-label": this.mainNavigationMessage }, this.open ? this.renderOverlay() : "", this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.focusLastItem() })), h("div", { class: "tray" }, h("div", { class: "toggle-wrapper" }, h("wm-button", { ref: (el) => (this.toggleEl = el), class: `toggle ${this.isTabbing ? "user-is-tabbing" : ""}`, "button-type": "navigational", icon: this.open ? "f156" : "f35c", "icon-size": "2rem", tooltip: this.open ? globalMessages.close : globalMessages.open, "tooltip-position": "left", tabIndex: this.open ? undefined : -1, onClick: () => {
|
|
115
|
+
this.open = !this.open;
|
|
116
|
+
} })), h("ul", { class: "navlist" }, h("slot", null))), this.isCollapsible && (h("div", { class: "trapfocus", tabindex: this.open ? 0 : undefined, onFocus: () => this.toggleEl.focus() }))));
|
|
117
|
+
}
|
|
118
|
+
static get delegatesFocus() { return true; }
|
|
119
|
+
get el() { return getElement(this); }
|
|
120
|
+
static get watchers() { return {
|
|
121
|
+
"open": ["handleStateChange"]
|
|
122
|
+
}; }
|
|
123
|
+
};
|
|
124
124
|
Navigation.style = wmNavigationCss;
|
|
125
125
|
|
|
126
126
|
const wmNavigationHamburgerCss = "button{display:none;width:100%;height:100%;border:none;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1);transition:background-color 500ms cubic-bezier(0.4, 0, 0.2, 1);background-color:transparent;outline:none;padding:0}button.user-is-tabbing:focus{-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e}button.user-is-tabbing:focus::-moz-focus-inner{border:0}button:hover{background-color:#d7d6d9}.icon: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:\"\\f35c\";font-size:1.5rem;color:#575195}@media screen and (max-width: 1023px){:host{width:3.75rem;height:3.75rem}button{display:initial}}";
|
|
127
127
|
|
|
128
|
-
const NavigationHamburger = class {
|
|
129
|
-
constructor(hostRef) {
|
|
130
|
-
registerInstance(this, hostRef);
|
|
131
|
-
this.wmNavigationHamburgerClicked = createEvent(this, "wmNavigationHamburgerClicked", 7);
|
|
132
|
-
this.showNavMessage = intl.formatMessage({
|
|
133
|
-
id: "navigation.showNavigation",
|
|
134
|
-
defaultMessage: "Show navigation",
|
|
135
|
-
description: "For user interface element opening a navigation menu",
|
|
136
|
-
});
|
|
137
|
-
this.navId = undefined;
|
|
138
|
-
this.tooltipVisible = false;
|
|
139
|
-
this.isTabbing = false;
|
|
140
|
-
this.open = false;
|
|
141
|
-
}
|
|
142
|
-
get tooltipEl() {
|
|
143
|
-
return document.getElementById("wm-tooltip");
|
|
144
|
-
}
|
|
145
|
-
toggleTabbingOn() {
|
|
146
|
-
this.isTabbing = true;
|
|
147
|
-
}
|
|
148
|
-
toggleTabbingOff() {
|
|
149
|
-
this.isTabbing = false;
|
|
150
|
-
}
|
|
151
|
-
// this also works on initial load because event is fired then
|
|
152
|
-
handleNavigationStateChanged(ev) {
|
|
153
|
-
this.open = ev.target.open;
|
|
154
|
-
}
|
|
155
|
-
componentWillLoad() {
|
|
156
|
-
if (document.body.classList.contains("wmcl-user-is-tabbing")) {
|
|
157
|
-
this.toggleTabbingOn();
|
|
158
|
-
}
|
|
159
|
-
if (!this.navId) {
|
|
160
|
-
console.error("wm-navigation-hamburger: nav-id is a required prop");
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
showTooltip() {
|
|
164
|
-
const tooltipText = this.showNavMessage;
|
|
165
|
-
this.tooltipEl.textContent = tooltipText;
|
|
166
|
-
this.tooltipEl.style.setProperty("--wmTooltipTop", "1.125rem");
|
|
167
|
-
this.tooltipEl.style.setProperty("--wmTooltipLeft", "2.75rem");
|
|
168
|
-
this.tooltipEl.style.transitionDelay = "500ms";
|
|
169
|
-
this.tooltipEl.style.opacity = "1";
|
|
170
|
-
// tooltip only has a maxWidth if it contains whitespace and can break
|
|
171
|
-
const hasNoWhitespace = tooltipText.match(/^[^\s]+$/);
|
|
172
|
-
if (hasNoWhitespace) {
|
|
173
|
-
this.tooltipEl.classList.add("single-word");
|
|
174
|
-
this.tooltipEl.style.setProperty("--wmTooltipMaxWidth", "none");
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
this.tooltipEl.classList.remove("single-word");
|
|
178
|
-
this.tooltipEl.style.removeProperty("--wmTooltipMaxWidth");
|
|
179
|
-
}
|
|
180
|
-
// tooltip is only visible after the transition delay.
|
|
181
|
-
// This also fixes an issue for keyboard users:
|
|
182
|
-
// if they tab to a button out of screen bounds, the page scrolls
|
|
183
|
-
// and hideTooltip() would be triggered before the tooltip would show
|
|
184
|
-
setTimeout(() => {
|
|
185
|
-
this.tooltipVisible = true;
|
|
186
|
-
}, 500);
|
|
187
|
-
}
|
|
188
|
-
hideTooltip() {
|
|
189
|
-
this.tooltipEl.style.transitionDelay = "0s";
|
|
190
|
-
this.tooltipEl.style.opacity = "0";
|
|
191
|
-
this.tooltipVisible = false;
|
|
192
|
-
}
|
|
193
|
-
showTooltipForKeyboardUsers() {
|
|
194
|
-
if (this.isTabbing) {
|
|
195
|
-
this.showTooltip();
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
handleClick() {
|
|
199
|
-
this.hideTooltip();
|
|
200
|
-
this.wmNavigationHamburgerClicked.emit();
|
|
201
|
-
}
|
|
202
|
-
render() {
|
|
203
|
-
return (h(Host, { class: `hamburger ${this.open ? "nav-open" : "nav-closed"}` }, h("button", { class: this.isTabbing ? "user-is-tabbing" : undefined, "aria-expanded": this.open, "aria-controls": this.navId, "aria-label": this.showNavMessage, onMouseEnter: () => this.showTooltip(), onMouseLeave: () => this.hideTooltip(), onFocus: () => this.showTooltipForKeyboardUsers(), onBlur: () => this.hideTooltip(), onClick: () => this.handleClick() }, h("span", { class: "icon" }))));
|
|
204
|
-
}
|
|
205
|
-
static get delegatesFocus() { return true; }
|
|
206
|
-
get el() { return getElement(this); }
|
|
207
|
-
};
|
|
128
|
+
const NavigationHamburger = class {
|
|
129
|
+
constructor(hostRef) {
|
|
130
|
+
registerInstance(this, hostRef);
|
|
131
|
+
this.wmNavigationHamburgerClicked = createEvent(this, "wmNavigationHamburgerClicked", 7);
|
|
132
|
+
this.showNavMessage = intl.formatMessage({
|
|
133
|
+
id: "navigation.showNavigation",
|
|
134
|
+
defaultMessage: "Show navigation",
|
|
135
|
+
description: "For user interface element opening a navigation menu",
|
|
136
|
+
});
|
|
137
|
+
this.navId = undefined;
|
|
138
|
+
this.tooltipVisible = false;
|
|
139
|
+
this.isTabbing = false;
|
|
140
|
+
this.open = false;
|
|
141
|
+
}
|
|
142
|
+
get tooltipEl() {
|
|
143
|
+
return document.getElementById("wm-tooltip");
|
|
144
|
+
}
|
|
145
|
+
toggleTabbingOn() {
|
|
146
|
+
this.isTabbing = true;
|
|
147
|
+
}
|
|
148
|
+
toggleTabbingOff() {
|
|
149
|
+
this.isTabbing = false;
|
|
150
|
+
}
|
|
151
|
+
// this also works on initial load because event is fired then
|
|
152
|
+
handleNavigationStateChanged(ev) {
|
|
153
|
+
this.open = ev.target.open;
|
|
154
|
+
}
|
|
155
|
+
componentWillLoad() {
|
|
156
|
+
if (document.body.classList.contains("wmcl-user-is-tabbing")) {
|
|
157
|
+
this.toggleTabbingOn();
|
|
158
|
+
}
|
|
159
|
+
if (!this.navId) {
|
|
160
|
+
console.error("wm-navigation-hamburger: nav-id is a required prop");
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
showTooltip() {
|
|
164
|
+
const tooltipText = this.showNavMessage;
|
|
165
|
+
this.tooltipEl.textContent = tooltipText;
|
|
166
|
+
this.tooltipEl.style.setProperty("--wmTooltipTop", "1.125rem");
|
|
167
|
+
this.tooltipEl.style.setProperty("--wmTooltipLeft", "2.75rem");
|
|
168
|
+
this.tooltipEl.style.transitionDelay = "500ms";
|
|
169
|
+
this.tooltipEl.style.opacity = "1";
|
|
170
|
+
// tooltip only has a maxWidth if it contains whitespace and can break
|
|
171
|
+
const hasNoWhitespace = tooltipText.match(/^[^\s]+$/);
|
|
172
|
+
if (hasNoWhitespace) {
|
|
173
|
+
this.tooltipEl.classList.add("single-word");
|
|
174
|
+
this.tooltipEl.style.setProperty("--wmTooltipMaxWidth", "none");
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.tooltipEl.classList.remove("single-word");
|
|
178
|
+
this.tooltipEl.style.removeProperty("--wmTooltipMaxWidth");
|
|
179
|
+
}
|
|
180
|
+
// tooltip is only visible after the transition delay.
|
|
181
|
+
// This also fixes an issue for keyboard users:
|
|
182
|
+
// if they tab to a button out of screen bounds, the page scrolls
|
|
183
|
+
// and hideTooltip() would be triggered before the tooltip would show
|
|
184
|
+
setTimeout(() => {
|
|
185
|
+
this.tooltipVisible = true;
|
|
186
|
+
}, 500);
|
|
187
|
+
}
|
|
188
|
+
hideTooltip() {
|
|
189
|
+
this.tooltipEl.style.transitionDelay = "0s";
|
|
190
|
+
this.tooltipEl.style.opacity = "0";
|
|
191
|
+
this.tooltipVisible = false;
|
|
192
|
+
}
|
|
193
|
+
showTooltipForKeyboardUsers() {
|
|
194
|
+
if (this.isTabbing) {
|
|
195
|
+
this.showTooltip();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
handleClick() {
|
|
199
|
+
this.hideTooltip();
|
|
200
|
+
this.wmNavigationHamburgerClicked.emit();
|
|
201
|
+
}
|
|
202
|
+
render() {
|
|
203
|
+
return (h(Host, { class: `hamburger ${this.open ? "nav-open" : "nav-closed"}` }, h("button", { class: this.isTabbing ? "user-is-tabbing" : undefined, "aria-expanded": this.open, "aria-controls": this.navId, "aria-label": this.showNavMessage, onMouseEnter: () => this.showTooltip(), onMouseLeave: () => this.hideTooltip(), onFocus: () => this.showTooltipForKeyboardUsers(), onBlur: () => this.hideTooltip(), onClick: () => this.handleClick() }, h("span", { class: "icon" }))));
|
|
204
|
+
}
|
|
205
|
+
static get delegatesFocus() { return true; }
|
|
206
|
+
get el() { return getElement(this); }
|
|
207
|
+
};
|
|
208
208
|
NavigationHamburger.style = wmNavigationHamburgerCss;
|
|
209
209
|
|
|
210
210
|
const wmNavigationItemCss = ".link{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:inherit;text-decoration:none;min-height:4.5rem;text-align:center;padding:1.25rem 0.5rem;font-weight:500;outline:none;position:relative}.link:hover{background-color:#f2f2f2}.link .icon{font-size:1.375rem;color:#6b6b6b}.link .text{font-size:0.875rem}.link.user-is-tabbing:focus{-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}.link.active{background-color:#e9e7ec}.link.active:before{content:\"\";background-color:#575195;position:absolute;height:100%;width:5px;left:0}.link.active .text{color:#575195}.link.active .icon{color:#575195}";
|
|
211
211
|
|
|
212
|
-
const NavigationItem = class {
|
|
213
|
-
constructor(hostRef) {
|
|
214
|
-
registerInstance(this, hostRef);
|
|
215
|
-
this.wmNavigationItemClicked = createEvent(this, "wmNavigationItemClicked", 7);
|
|
216
|
-
this.href = undefined;
|
|
217
|
-
this.text = undefined;
|
|
218
|
-
this.active = undefined;
|
|
219
|
-
this.isTabbing = false;
|
|
220
|
-
}
|
|
221
|
-
toggleTabbingOn() {
|
|
222
|
-
this.isTabbing = true;
|
|
223
|
-
}
|
|
224
|
-
toggleTabbingOff() {
|
|
225
|
-
this.isTabbing = false;
|
|
226
|
-
}
|
|
227
|
-
componentWillLoad() {
|
|
228
|
-
if (document.body.classList.contains("wmcl-user-is-tabbing")) {
|
|
229
|
-
this.toggleTabbingOn();
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
render() {
|
|
233
|
-
return (h(Host, { role: "listitem" }, h("a", { class: `link ${this.active ? "active" : ""} ${this.isTabbing ? "user-is-tabbing" : ""}`, href: this.href, onClick: () => this.wmNavigationItemClicked.emit() }, h("div", { class: "icon", "aria-hidden": "true" }, h("slot", null)), h("div", { class: "text" }, this.text))));
|
|
234
|
-
}
|
|
235
|
-
static get delegatesFocus() { return true; }
|
|
236
|
-
get el() { return getElement(this); }
|
|
237
|
-
};
|
|
212
|
+
const NavigationItem = class {
|
|
213
|
+
constructor(hostRef) {
|
|
214
|
+
registerInstance(this, hostRef);
|
|
215
|
+
this.wmNavigationItemClicked = createEvent(this, "wmNavigationItemClicked", 7);
|
|
216
|
+
this.href = undefined;
|
|
217
|
+
this.text = undefined;
|
|
218
|
+
this.active = undefined;
|
|
219
|
+
this.isTabbing = false;
|
|
220
|
+
}
|
|
221
|
+
toggleTabbingOn() {
|
|
222
|
+
this.isTabbing = true;
|
|
223
|
+
}
|
|
224
|
+
toggleTabbingOff() {
|
|
225
|
+
this.isTabbing = false;
|
|
226
|
+
}
|
|
227
|
+
componentWillLoad() {
|
|
228
|
+
if (document.body.classList.contains("wmcl-user-is-tabbing")) {
|
|
229
|
+
this.toggleTabbingOn();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
render() {
|
|
233
|
+
return (h(Host, { role: "listitem" }, h("a", { class: `link ${this.active ? "active" : ""} ${this.isTabbing ? "user-is-tabbing" : ""}`, href: this.href, onClick: () => this.wmNavigationItemClicked.emit() }, h("div", { class: "icon", "aria-hidden": "true" }, h("slot", null)), h("div", { class: "text" }, this.text))));
|
|
234
|
+
}
|
|
235
|
+
static get delegatesFocus() { return true; }
|
|
236
|
+
get el() { return getElement(this); }
|
|
237
|
+
};
|
|
238
238
|
NavigationItem.style = wmNavigationItemCss;
|
|
239
239
|
|
|
240
240
|
export { Navigation as wm_navigation, NavigationHamburger as wm_navigation_hamburger, NavigationItem as wm_navigation_item };
|