@watermarkinsights/ripple 3.25.0-2 → 3.25.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-9dce0ea3.js → chartFunctions-2f04ab6a.js} +591 -591
- package/dist/cjs/chartFunctions-2f04ab6a.js.map +1 -0
- package/dist/cjs/{functions-53aff314.js → functions-d2d99997.js} +478 -478
- package/dist/cjs/{functions-53aff314.js.map → functions-d2d99997.js.map} +1 -1
- package/dist/cjs/{global-c22b1249.js → global-d0584d18.js} +63 -63
- package/dist/cjs/global-d0584d18.js.map +1 -0
- package/dist/cjs/{http-service-494d81de.js → http-service-9e8c4dd5.js} +50 -50
- package/dist/cjs/http-service-9e8c4dd5.js.map +1 -0
- package/dist/cjs/{interfaces-a3338581.js → interfaces-30a74c1f.js} +30 -30
- package/dist/cjs/interfaces-30a74c1f.js.map +1 -0
- package/dist/cjs/intl-a1ccf587.js +140 -0
- package/dist/cjs/intl-a1ccf587.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/priv-chart-popover.cjs.entry.js +91 -91
- package/dist/cjs/priv-chart-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/priv-datepicker.cjs.entry.js +657 -657
- package/dist/cjs/priv-datepicker.cjs.entry.js.map +1 -1
- package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
- package/dist/cjs/priv-navigator-button.cjs.entry.js.map +1 -1
- package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
- package/dist/cjs/priv-navigator-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ripple.cjs.js +2 -2
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +334 -334
- package/dist/cjs/wm-action-menu_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-button.cjs.entry.js +260 -260
- package/dist/cjs/wm-button.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-chart-slice.cjs.entry.js +18 -18
- package/dist/cjs/wm-chart-slice.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +179 -179
- package/dist/cjs/wm-chart.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-datepicker.cjs.entry.js +264 -264
- package/dist/cjs/wm-datepicker.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-file-list.cjs.entry.js +35 -35
- package/dist/cjs/wm-file-list.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-file.cjs.entry.js +201 -201
- package/dist/cjs/wm-file.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-input.cjs.entry.js +124 -140
- package/dist/cjs/wm-input.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-modal-footer.cjs.entry.js +33 -33
- package/dist/cjs/wm-modal-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-modal-header.cjs.entry.js +32 -32
- package/dist/cjs/wm-modal-header.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-modal.cjs.entry.js +152 -152
- package/dist/cjs/wm-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-navigation_3.cjs.entry.js +225 -230
- package/dist/cjs/wm-navigation_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-navigator.cjs.entry.js +264 -264
- package/dist/cjs/wm-navigator.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-network-uploader.cjs.entry.js +465 -467
- package/dist/cjs/wm-network-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-option_2.cjs.entry.js +769 -772
- package/dist/cjs/wm-option_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-pagination.cjs.entry.js +179 -179
- package/dist/cjs/wm-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +155 -155
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-search.cjs.entry.js +185 -192
- package/dist/cjs/wm-search.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-snackbar.cjs.entry.js +155 -159
- package/dist/cjs/wm-snackbar.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +264 -264
- package/dist/cjs/wm-tab-item_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-tag-input-row.cjs.entry.js +14 -14
- package/dist/cjs/wm-tag-input-row.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-tag-input.cjs.entry.js +912 -924
- package/dist/cjs/wm-tag-input.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-timepicker.cjs.entry.js +386 -386
- package/dist/cjs/wm-timepicker.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-toggletip.cjs.entry.js +130 -130
- package/dist/cjs/wm-toggletip.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-uploader.cjs.entry.js +441 -510
- package/dist/cjs/wm-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
- package/dist/cjs/wm-wrapper.cjs.entry.js.map +1 -1
- package/dist/collection/components/charts/chartFunctions.js +557 -557
- package/dist/collection/components/charts/chartFunctions.js.map +1 -1
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +268 -270
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js.map +1 -1
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +126 -126
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js.map +1 -1
- package/dist/collection/components/charts/wm-chart/wm-chart.js +447 -447
- package/dist/collection/components/charts/wm-chart/wm-chart.js.map +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +208 -208
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js.map +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +144 -144
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js.map +1 -1
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +122 -122
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js.map +1 -1
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +473 -473
- package/dist/collection/components/wm-action-menu/wm-action-menu.js.map +1 -1
- package/dist/collection/components/wm-button/wm-button.js +576 -576
- package/dist/collection/components/wm-button/wm-button.js.map +1 -1
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +984 -984
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js.map +1 -1
- package/dist/collection/components/wm-datepicker/wm-datepicker.css +4 -4
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +492 -492
- package/dist/collection/components/wm-datepicker/wm-datepicker.js.map +1 -1
- package/dist/collection/components/wm-file/wm-file.js +334 -334
- package/dist/collection/components/wm-file/wm-file.js.map +1 -1
- package/dist/collection/components/wm-file-list/wm-file-list.js +153 -153
- package/dist/collection/components/wm-file-list/wm-file-list.js.map +1 -1
- package/dist/collection/components/wm-input/wm-input.css +4 -4
- package/dist/collection/components/wm-input/wm-input.js +428 -444
- package/dist/collection/components/wm-input/wm-input.js.map +1 -1
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +455 -455
- package/dist/collection/components/wm-menuitem/wm-menuitem.js.map +1 -1
- package/dist/collection/components/wm-modal/wm-modal-footer.js +139 -139
- package/dist/collection/components/wm-modal/wm-modal-footer.js.map +1 -1
- package/dist/collection/components/wm-modal/wm-modal-header.js +83 -83
- package/dist/collection/components/wm-modal/wm-modal-header.js.map +1 -1
- package/dist/collection/components/wm-modal/wm-modal.js +463 -463
- package/dist/collection/components/wm-modal/wm-modal.js.map +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +177 -177
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js.map +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +131 -131
- package/dist/collection/components/wm-navigation/wm-navigation-item.js.map +1 -1
- package/dist/collection/components/wm-navigation/wm-navigation.js +218 -223
- package/dist/collection/components/wm-navigation/wm-navigation.js.map +1 -1
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +107 -107
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js.map +1 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +124 -124
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js.map +1 -1
- package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
- package/dist/collection/components/wm-navigator/wm-navigator.js.map +1 -1
- package/dist/collection/components/wm-option/wm-option.js +436 -436
- package/dist/collection/components/wm-option/wm-option.js.map +1 -1
- package/dist/collection/components/wm-pagination/wm-pagination.js +371 -371
- package/dist/collection/components/wm-pagination/wm-pagination.js.map +1 -1
- package/dist/collection/components/wm-search/wm-search.css +5 -3
- package/dist/collection/components/wm-search/wm-search.js +440 -447
- package/dist/collection/components/wm-search/wm-search.js.map +1 -1
- package/dist/collection/components/wm-select/wm-select.css +4 -4
- package/dist/collection/components/wm-select/wm-select.js +1055 -1058
- package/dist/collection/components/wm-select/wm-select.js.map +1 -1
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +283 -287
- package/dist/collection/components/wm-snackbar/wm-snackbar.js.map +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +212 -212
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js.map +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +328 -328
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js.map +1 -1
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +109 -109
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js.map +1 -1
- package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +123 -123
- package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js.map +1 -1
- package/dist/collection/components/wm-tag-input/wm-tag-input.css +4 -4
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +1267 -1279
- package/dist/collection/components/wm-tag-input/wm-tag-input.js.map +1 -1
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +4 -4
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +606 -606
- package/dist/collection/components/wm-timepicker/wm-timepicker.js.map +1 -1
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +254 -254
- package/dist/collection/components/wm-toggletip/wm-toggletip.js.map +1 -1
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +773 -775
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js.map +1 -1
- package/dist/collection/components/wm-uploader/wm-uploader.js +965 -1034
- package/dist/collection/components/wm-uploader/wm-uploader.js.map +1 -1
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +29 -29
- package/dist/collection/components/wm-wrapper/wm-wrapper.js.map +1 -1
- package/dist/collection/dev/scripts.js +20 -20
- package/dist/collection/global/__mocks__/functions.js +7 -7
- package/dist/collection/global/__mocks__/functions.js.map +1 -1
- package/dist/collection/global/functions.js +521 -521
- package/dist/collection/global/functions.js.map +1 -1
- package/dist/collection/global/global.js +70 -70
- package/dist/collection/global/global.js.map +1 -1
- package/dist/collection/global/interfaces.js +50 -50
- package/dist/collection/global/interfaces.js.map +1 -1
- package/dist/collection/global/intl.js +133 -7
- package/dist/collection/global/intl.js.map +1 -1
- package/dist/collection/global/services/__mocks__/http-service.js +131 -131
- package/dist/collection/global/services/__mocks__/http-service.js.map +1 -1
- package/dist/collection/global/services/http-service.js +51 -51
- package/dist/collection/global/services/http-service.js.map +1 -1
- package/dist/collection/lang/lang.js +6 -6
- package/dist/collection/lang/lang.js.map +1 -1
- package/dist/collection/lang/missing.js +43 -43
- package/dist/collection/lang/piglatin.js +93 -93
- package/dist/esm/{chartFunctions-1df8043a.js → chartFunctions-a72f5835.js} +591 -591
- package/dist/esm/chartFunctions-a72f5835.js.map +1 -0
- package/dist/esm/{functions-bb1309d0.js → functions-dc9964aa.js} +478 -478
- package/dist/esm/{functions-bb1309d0.js.map → functions-dc9964aa.js.map} +1 -1
- package/dist/esm/{global-2c5c2727.js → global-3d0ef32b.js} +63 -63
- package/dist/esm/global-3d0ef32b.js.map +1 -0
- package/dist/esm/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +50 -50
- package/dist/esm/http-service-5d037e16.js.map +1 -0
- package/dist/esm/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +30 -30
- package/dist/esm/interfaces-61c6305b.js.map +1 -0
- package/dist/esm/intl-4d4826dd.js +137 -0
- package/dist/esm/intl-4d4826dd.js.map +1 -0
- package/dist/esm/loader.js +2 -2
- 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-chart-popover.entry.js.map +1 -1
- package/dist/esm/priv-datepicker.entry.js +657 -657
- package/dist/esm/priv-datepicker.entry.js.map +1 -1
- package/dist/esm/priv-navigator-button.entry.js +19 -19
- package/dist/esm/priv-navigator-button.entry.js.map +1 -1
- package/dist/esm/priv-navigator-item.entry.js +23 -23
- package/dist/esm/priv-navigator-item.entry.js.map +1 -1
- package/dist/esm/ripple.js +2 -2
- package/dist/esm/wm-action-menu_2.entry.js +334 -334
- package/dist/esm/wm-action-menu_2.entry.js.map +1 -1
- package/dist/esm/wm-button.entry.js +260 -260
- package/dist/esm/wm-button.entry.js.map +1 -1
- package/dist/esm/wm-chart-slice.entry.js +18 -18
- package/dist/esm/wm-chart-slice.entry.js.map +1 -1
- package/dist/esm/wm-chart.entry.js +179 -179
- package/dist/esm/wm-chart.entry.js.map +1 -1
- package/dist/esm/wm-datepicker.entry.js +264 -264
- package/dist/esm/wm-datepicker.entry.js.map +1 -1
- package/dist/esm/wm-file-list.entry.js +35 -35
- package/dist/esm/wm-file-list.entry.js.map +1 -1
- package/dist/esm/wm-file.entry.js +201 -201
- package/dist/esm/wm-file.entry.js.map +1 -1
- package/dist/esm/wm-input.entry.js +124 -140
- package/dist/esm/wm-input.entry.js.map +1 -1
- package/dist/esm/wm-modal-footer.entry.js +33 -33
- package/dist/esm/wm-modal-footer.entry.js.map +1 -1
- package/dist/esm/wm-modal-header.entry.js +32 -32
- package/dist/esm/wm-modal-header.entry.js.map +1 -1
- package/dist/esm/wm-modal.entry.js +152 -152
- package/dist/esm/wm-modal.entry.js.map +1 -1
- package/dist/esm/wm-navigation_3.entry.js +225 -230
- package/dist/esm/wm-navigation_3.entry.js.map +1 -1
- package/dist/esm/wm-navigator.entry.js +264 -264
- package/dist/esm/wm-navigator.entry.js.map +1 -1
- package/dist/esm/wm-network-uploader.entry.js +465 -467
- package/dist/esm/wm-network-uploader.entry.js.map +1 -1
- package/dist/esm/wm-option_2.entry.js +769 -772
- package/dist/esm/wm-option_2.entry.js.map +1 -1
- package/dist/esm/wm-pagination.entry.js +179 -179
- package/dist/esm/wm-pagination.entry.js.map +1 -1
- package/dist/esm/wm-progress-indicator_3.entry.js +155 -155
- package/dist/esm/wm-progress-indicator_3.entry.js.map +1 -1
- package/dist/esm/wm-search.entry.js +185 -192
- package/dist/esm/wm-search.entry.js.map +1 -1
- package/dist/esm/wm-snackbar.entry.js +155 -159
- package/dist/esm/wm-snackbar.entry.js.map +1 -1
- package/dist/esm/wm-tab-item_3.entry.js +264 -264
- package/dist/esm/wm-tab-item_3.entry.js.map +1 -1
- package/dist/esm/wm-tag-input-row.entry.js +14 -14
- package/dist/esm/wm-tag-input-row.entry.js.map +1 -1
- package/dist/esm/wm-tag-input.entry.js +912 -924
- package/dist/esm/wm-tag-input.entry.js.map +1 -1
- package/dist/esm/wm-timepicker.entry.js +386 -386
- package/dist/esm/wm-timepicker.entry.js.map +1 -1
- package/dist/esm/wm-toggletip.entry.js +130 -130
- package/dist/esm/wm-toggletip.entry.js.map +1 -1
- package/dist/esm/wm-uploader.entry.js +441 -510
- package/dist/esm/wm-uploader.entry.js.map +1 -1
- package/dist/esm/wm-wrapper.entry.js +12 -12
- package/dist/esm/wm-wrapper.entry.js.map +1 -1
- package/dist/esm-es5/{chartFunctions-1df8043a.js → chartFunctions-a72f5835.js} +2 -2
- package/dist/esm-es5/chartFunctions-a72f5835.js.map +1 -0
- package/dist/esm-es5/{functions-bb1309d0.js → functions-dc9964aa.js} +1 -1
- package/dist/esm-es5/{functions-bb1309d0.js.map → functions-dc9964aa.js.map} +1 -1
- package/dist/esm-es5/global-3d0ef32b.js +2 -0
- package/dist/esm-es5/global-3d0ef32b.js.map +1 -0
- package/dist/esm-es5/{http-service-3dc3b3e7.js → http-service-5d037e16.js} +1 -1
- package/dist/esm-es5/http-service-5d037e16.js.map +1 -0
- package/dist/esm-es5/{interfaces-2b97fab2.js → interfaces-61c6305b.js} +1 -1
- package/dist/esm-es5/interfaces-61c6305b.js.map +1 -0
- package/dist/esm-es5/intl-4d4826dd.js +2 -0
- package/dist/esm-es5/intl-4d4826dd.js.map +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover.entry.js.map +1 -1
- package/dist/esm-es5/priv-datepicker.entry.js +1 -1
- package/dist/esm-es5/priv-datepicker.entry.js.map +1 -1
- package/dist/esm-es5/priv-navigator-button.entry.js.map +1 -1
- package/dist/esm-es5/priv-navigator-item.entry.js.map +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/ripple.js.map +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js.map +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js.map +1 -1
- package/dist/esm-es5/wm-chart-slice.entry.js.map +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js.map +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js.map +1 -1
- package/dist/esm-es5/wm-file-list.entry.js.map +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js.map +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js.map +1 -1
- package/dist/esm-es5/wm-modal-footer.entry.js.map +1 -1
- package/dist/esm-es5/wm-modal-header.entry.js +1 -1
- package/dist/esm-es5/wm-modal-header.entry.js.map +1 -1
- package/dist/esm-es5/wm-modal.entry.js +1 -1
- package/dist/esm-es5/wm-modal.entry.js.map +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js.map +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js.map +1 -1
- package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
- package/dist/esm-es5/wm-network-uploader.entry.js.map +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js.map +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js.map +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js.map +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js.map +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js.map +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js.map +1 -1
- package/dist/esm-es5/wm-tag-input-row.entry.js.map +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js.map +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js.map +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js.map +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js.map +1 -1
- package/dist/esm-es5/wm-wrapper.entry.js.map +1 -1
- package/dist/ripple/{p-3f6c7e6c.entry.js → p-002d067e.entry.js} +2 -2
- package/dist/ripple/p-002d067e.entry.js.map +1 -0
- package/dist/ripple/p-02a1000a.entry.js +2 -0
- package/dist/ripple/p-02a1000a.entry.js.map +1 -0
- package/dist/ripple/{p-21bb563a.system.entry.js → p-04ae66fd.system.entry.js} +2 -2
- package/dist/ripple/p-04ae66fd.system.entry.js.map +1 -0
- package/dist/ripple/{p-c38f6103.system.js → p-0826dc64.system.js} +2 -2
- package/dist/ripple/{p-c38f6103.system.js.map → p-0826dc64.system.js.map} +1 -1
- package/dist/ripple/{p-f5df5903.system.js → p-08b7ec08.system.js} +1 -1
- package/dist/ripple/p-08b7ec08.system.js.map +1 -0
- package/dist/ripple/{p-d5b0809e.entry.js → p-0ad3a708.entry.js} +2 -2
- package/dist/ripple/p-0ad3a708.entry.js.map +1 -0
- package/dist/ripple/p-0cd13c7d.system.entry.js +2 -0
- package/dist/ripple/p-0cd13c7d.system.entry.js.map +1 -0
- package/dist/ripple/p-0d7bccf7.entry.js.map +1 -1
- package/dist/ripple/p-0eb7b1b7.system.entry.js +2 -0
- package/dist/ripple/p-0eb7b1b7.system.entry.js.map +1 -0
- package/dist/ripple/{p-70768add.entry.js → p-11124a23.entry.js} +2 -2
- package/dist/ripple/p-11124a23.entry.js.map +1 -0
- package/dist/ripple/p-1808b90a.entry.js +2 -0
- package/dist/ripple/p-1808b90a.entry.js.map +1 -0
- package/dist/ripple/p-1fd20e05.system.entry.js +2 -0
- package/dist/ripple/p-1fd20e05.system.entry.js.map +1 -0
- package/dist/ripple/{p-f36b1c58.system.entry.js → p-23fa1ff6.system.entry.js} +2 -2
- package/dist/ripple/p-23fa1ff6.system.entry.js.map +1 -0
- package/dist/ripple/p-24a4cb11.system.entry.js.map +1 -1
- package/dist/ripple/p-2c2a7092.system.entry.js.map +1 -1
- package/dist/ripple/{p-9d02957d.system.js → p-313b6073.system.js} +1 -1
- package/dist/ripple/p-313b6073.system.js.map +1 -0
- package/dist/ripple/p-33558ec4.system.entry.js.map +1 -1
- package/dist/ripple/{p-28c12986.system.entry.js → p-33ec18d4.system.entry.js} +2 -2
- package/dist/ripple/p-33ec18d4.system.entry.js.map +1 -0
- package/dist/ripple/{p-7d0f3abe.entry.js → p-341aa131.entry.js} +2 -2
- package/dist/ripple/p-341aa131.entry.js.map +1 -0
- package/dist/ripple/p-3759b7af.system.entry.js.map +1 -1
- package/dist/ripple/p-38449dff.system.entry.js +2 -0
- package/dist/ripple/p-38449dff.system.entry.js.map +1 -0
- package/dist/ripple/{p-ee97c3f6.entry.js → p-384c4981.entry.js} +2 -2
- package/dist/ripple/p-384c4981.entry.js.map +1 -0
- package/dist/ripple/{p-b81ce905.system.entry.js → p-3869a69e.system.entry.js} +2 -2
- package/dist/ripple/p-3869a69e.system.entry.js.map +1 -0
- package/dist/ripple/p-4391166c.entry.js.map +1 -1
- package/dist/ripple/{p-e6e7cb2d.entry.js → p-43be123d.entry.js} +2 -2
- package/dist/ripple/p-43be123d.entry.js.map +1 -0
- package/dist/ripple/p-4a014591.entry.js.map +1 -1
- package/dist/ripple/p-4a06d0a9.system.entry.js +2 -0
- package/dist/ripple/p-4a06d0a9.system.entry.js.map +1 -0
- package/dist/ripple/p-4e02e2ae.entry.js +2 -0
- package/dist/ripple/p-4e02e2ae.entry.js.map +1 -0
- package/dist/ripple/p-56cd4d5e.entry.js +2 -0
- package/dist/ripple/p-56cd4d5e.entry.js.map +1 -0
- package/dist/ripple/p-59654f8e.entry.js.map +1 -1
- package/dist/ripple/p-5cc287d2.entry.js +2 -0
- package/dist/ripple/p-5cc287d2.entry.js.map +1 -0
- package/dist/ripple/{p-8eebf787.entry.js → p-7e0e6b00.entry.js} +2 -2
- package/dist/ripple/p-7e0e6b00.entry.js.map +1 -0
- package/dist/ripple/{p-0400599e.system.entry.js → p-833c622f.system.entry.js} +2 -2
- package/dist/ripple/p-833c622f.system.entry.js.map +1 -0
- package/dist/ripple/{p-b00991d9.system.entry.js → p-8613600d.system.entry.js} +2 -2
- package/dist/ripple/p-8613600d.system.entry.js.map +1 -0
- package/dist/ripple/{p-43f1298b.js → p-888bec42.js} +1 -1
- package/dist/ripple/p-888bec42.js.map +1 -0
- package/dist/ripple/p-889579fc.entry.js +2 -0
- package/dist/ripple/p-889579fc.entry.js.map +1 -0
- package/dist/ripple/p-8c51e9f8.system.entry.js.map +1 -1
- package/dist/ripple/{p-42158d44.entry.js → p-8db604d2.entry.js} +2 -2
- package/dist/ripple/p-8db604d2.entry.js.map +1 -0
- package/dist/ripple/{p-24ef6556.system.entry.js → p-91deb45f.system.entry.js} +2 -2
- package/dist/ripple/p-91deb45f.system.entry.js.map +1 -0
- package/dist/ripple/p-9338011f.system.entry.js +2 -0
- package/dist/ripple/p-9338011f.system.entry.js.map +1 -0
- package/dist/ripple/p-976b2789.system.entry.js.map +1 -1
- package/dist/ripple/{p-1aa16d42.js → p-994303f2.js} +2 -2
- package/dist/ripple/p-994303f2.js.map +1 -0
- package/dist/ripple/p-9b2dfb54.js +2 -0
- package/dist/ripple/p-9b2dfb54.js.map +1 -0
- package/dist/ripple/p-9b9eb944.entry.js.map +1 -1
- package/dist/ripple/{p-980afed1.system.entry.js → p-a6d64d8a.system.entry.js} +2 -2
- package/dist/ripple/p-a6d64d8a.system.entry.js.map +1 -0
- package/dist/ripple/{p-fd8070fb.js → p-a6d6eae7.js} +1 -1
- package/dist/ripple/p-a6d6eae7.js.map +1 -0
- package/dist/ripple/{p-219fbe2b.system.entry.js → p-a73cf968.system.entry.js} +2 -2
- package/dist/ripple/p-a73cf968.system.entry.js.map +1 -0
- package/dist/ripple/{p-76aafb99.system.entry.js → p-aed625c1.system.entry.js} +2 -2
- package/dist/ripple/p-aed625c1.system.entry.js.map +1 -0
- package/dist/ripple/{p-0d36ceba.system.entry.js → p-b5b521e4.system.entry.js} +2 -2
- package/dist/ripple/p-b5b521e4.system.entry.js.map +1 -0
- package/dist/ripple/{p-47d223f1.system.entry.js → p-b7451e73.system.entry.js} +2 -2
- package/dist/ripple/p-b7451e73.system.entry.js.map +1 -0
- package/dist/ripple/p-bafdcb4e.system.entry.js +2 -0
- package/dist/ripple/p-bafdcb4e.system.entry.js.map +1 -0
- package/dist/ripple/{p-262713b9.entry.js → p-bb45e122.entry.js} +2 -2
- package/dist/ripple/p-bb45e122.entry.js.map +1 -0
- package/dist/ripple/p-bd84628c.system.entry.js +2 -0
- package/dist/ripple/p-bd84628c.system.entry.js.map +1 -0
- package/dist/ripple/p-bf569af0.entry.js.map +1 -1
- package/dist/ripple/p-c094f6a8.entry.js +2 -0
- package/dist/ripple/p-c094f6a8.entry.js.map +1 -0
- package/dist/ripple/p-c36002b6.system.js +2 -0
- package/dist/ripple/p-c36002b6.system.js.map +1 -0
- package/dist/ripple/p-c5bf7db8.entry.js +2 -0
- package/dist/ripple/p-c5bf7db8.entry.js.map +1 -0
- package/dist/ripple/p-c68b3798.system.js +2 -0
- package/dist/ripple/p-c68b3798.system.js.map +1 -0
- package/dist/ripple/{p-05e0f901.js → p-c6a0f7e5.js} +1 -1
- package/dist/ripple/{p-05e0f901.js.map → p-c6a0f7e5.js.map} +1 -1
- package/dist/ripple/{p-bcba3ce8.entry.js → p-d46f5794.entry.js} +2 -2
- package/dist/ripple/p-d46f5794.entry.js.map +1 -0
- package/dist/ripple/{p-d7ffac2f.entry.js → p-d48313e0.entry.js} +2 -2
- package/dist/ripple/p-d48313e0.entry.js.map +1 -0
- package/dist/ripple/p-d939cb54.entry.js.map +1 -1
- package/dist/ripple/p-dbfd1640.system.entry.js.map +1 -1
- package/dist/ripple/{p-d7c55ce1.entry.js → p-e22854c1.entry.js} +2 -2
- package/dist/ripple/p-e22854c1.entry.js.map +1 -0
- package/dist/ripple/p-e70bb79f.js +2 -0
- package/dist/ripple/p-e70bb79f.js.map +1 -0
- package/dist/ripple/{p-e99a7f36.entry.js → p-ed82573a.entry.js} +2 -2
- package/dist/ripple/p-ed82573a.entry.js.map +1 -0
- package/dist/ripple/{p-bc28c815.system.js → p-f0fd8695.system.js} +1 -1
- package/dist/ripple/{p-bc28c815.system.js.map → p-f0fd8695.system.js.map} +1 -1
- package/dist/ripple/{p-e5f84104.system.entry.js → p-f312d59a.system.entry.js} +2 -2
- package/dist/ripple/p-f312d59a.system.entry.js.map +1 -0
- package/dist/ripple/{p-c19ddc00.system.entry.js → p-f59a495a.system.entry.js} +2 -2
- package/dist/ripple/p-f59a495a.system.entry.js.map +1 -0
- package/dist/ripple/{p-cc8ca6bd.system.js → p-f80eb8a5.system.js} +2 -2
- package/dist/ripple/p-f80eb8a5.system.js.map +1 -0
- package/dist/ripple/{p-1be55579.system.entry.js → p-fb67c39e.system.entry.js} +2 -2
- package/dist/ripple/p-fb67c39e.system.entry.js.map +1 -0
- package/dist/ripple/{p-20d0d019.entry.js → p-fc08d5e1.entry.js} +2 -2
- package/dist/ripple/p-fc08d5e1.entry.js.map +1 -0
- package/dist/ripple/{p-d7b946ed.entry.js → p-fe7da854.entry.js} +2 -2
- package/dist/ripple/p-fe7da854.entry.js.map +1 -0
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.esm.js.map +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 -0
- 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 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +29 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +20 -0
- 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 -0
- package/dist/types/components/wm-button/wm-button.d.ts +49 -0
- package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -0
- package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +42 -0
- package/dist/types/components/wm-file/wm-file.d.ts +42 -0
- package/dist/types/components/wm-file-list/wm-file-list.d.ts +16 -0
- package/dist/types/components/wm-input/wm-input.d.ts +45 -0
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -0
- 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 -0
- package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +21 -0
- package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -0
- package/dist/types/components/wm-navigation/wm-navigation.d.ts +26 -0
- 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 -0
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -0
- package/dist/types/components/wm-option/wm-option.d.ts +34 -0
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
- package/dist/types/components/wm-search/wm-search.d.ts +77 -0
- package/dist/types/components/wm-select/wm-select.d.ts +101 -0
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +31 -32
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +37 -0
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +52 -0
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -0
- package/dist/types/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.d.ts +11 -0
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +135 -0
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -0
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +28 -0
- package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -0
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +99 -0
- 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 +48 -48
- 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 -1
- 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/cjs/chartFunctions-9dce0ea3.js.map +0 -1
- package/dist/cjs/global-c22b1249.js.map +0 -1
- package/dist/cjs/http-service-494d81de.js.map +0 -1
- package/dist/cjs/interfaces-a3338581.js.map +0 -1
- package/dist/cjs/intl-e14dc0a1.js +0 -13
- package/dist/cjs/intl-e14dc0a1.js.map +0 -1
- package/dist/esm/chartFunctions-1df8043a.js.map +0 -1
- package/dist/esm/global-2c5c2727.js.map +0 -1
- package/dist/esm/http-service-3dc3b3e7.js.map +0 -1
- package/dist/esm/interfaces-2b97fab2.js.map +0 -1
- package/dist/esm/intl-4153b9ef.js +0 -11
- package/dist/esm/intl-4153b9ef.js.map +0 -1
- package/dist/esm-es5/chartFunctions-1df8043a.js.map +0 -1
- package/dist/esm-es5/global-2c5c2727.js +0 -2
- package/dist/esm-es5/global-2c5c2727.js.map +0 -1
- package/dist/esm-es5/http-service-3dc3b3e7.js.map +0 -1
- package/dist/esm-es5/interfaces-2b97fab2.js.map +0 -1
- package/dist/esm-es5/intl-4153b9ef.js +0 -2
- package/dist/esm-es5/intl-4153b9ef.js.map +0 -1
- package/dist/ripple/p-0400599e.system.entry.js.map +0 -1
- package/dist/ripple/p-075607ac.entry.js +0 -2
- package/dist/ripple/p-075607ac.entry.js.map +0 -1
- package/dist/ripple/p-08d17d5a.entry.js +0 -2
- package/dist/ripple/p-08d17d5a.entry.js.map +0 -1
- package/dist/ripple/p-0d36ceba.system.entry.js.map +0 -1
- package/dist/ripple/p-124da634.entry.js +0 -2
- package/dist/ripple/p-124da634.entry.js.map +0 -1
- package/dist/ripple/p-1aa16d42.js.map +0 -1
- package/dist/ripple/p-1be55579.system.entry.js.map +0 -1
- package/dist/ripple/p-20d0d019.entry.js.map +0 -1
- package/dist/ripple/p-219fbe2b.system.entry.js.map +0 -1
- package/dist/ripple/p-21bb563a.system.entry.js.map +0 -1
- package/dist/ripple/p-241d4d41.system.entry.js +0 -2
- package/dist/ripple/p-241d4d41.system.entry.js.map +0 -1
- package/dist/ripple/p-24ef6556.system.entry.js.map +0 -1
- package/dist/ripple/p-262713b9.entry.js.map +0 -1
- package/dist/ripple/p-28c12986.system.entry.js.map +0 -1
- package/dist/ripple/p-3f6c7e6c.entry.js.map +0 -1
- package/dist/ripple/p-42158d44.entry.js.map +0 -1
- package/dist/ripple/p-43f1298b.js.map +0 -1
- package/dist/ripple/p-47d223f1.system.entry.js.map +0 -1
- package/dist/ripple/p-4d30004f.entry.js +0 -2
- package/dist/ripple/p-4d30004f.entry.js.map +0 -1
- package/dist/ripple/p-58b1415e.system.js +0 -2
- package/dist/ripple/p-58b1415e.system.js.map +0 -1
- package/dist/ripple/p-5cda4e9c.system.entry.js +0 -2
- package/dist/ripple/p-5cda4e9c.system.entry.js.map +0 -1
- package/dist/ripple/p-64f15a9e.system.entry.js +0 -2
- package/dist/ripple/p-64f15a9e.system.entry.js.map +0 -1
- package/dist/ripple/p-6e6b5b2c.system.entry.js +0 -2
- package/dist/ripple/p-6e6b5b2c.system.entry.js.map +0 -1
- package/dist/ripple/p-70768add.entry.js.map +0 -1
- package/dist/ripple/p-76aafb99.system.entry.js.map +0 -1
- package/dist/ripple/p-7d0f3abe.entry.js.map +0 -1
- package/dist/ripple/p-8aa85021.system.entry.js +0 -2
- package/dist/ripple/p-8aa85021.system.entry.js.map +0 -1
- package/dist/ripple/p-8eebf787.entry.js.map +0 -1
- package/dist/ripple/p-96b0ca93.system.js +0 -2
- package/dist/ripple/p-96b0ca93.system.js.map +0 -1
- package/dist/ripple/p-980afed1.system.entry.js.map +0 -1
- package/dist/ripple/p-9d02957d.system.js.map +0 -1
- package/dist/ripple/p-adbeb6a8.system.entry.js +0 -2
- package/dist/ripple/p-adbeb6a8.system.entry.js.map +0 -1
- package/dist/ripple/p-b00991d9.system.entry.js.map +0 -1
- package/dist/ripple/p-b81ce905.system.entry.js.map +0 -1
- package/dist/ripple/p-bcba3ce8.entry.js.map +0 -1
- package/dist/ripple/p-bf808ec4.entry.js +0 -2
- package/dist/ripple/p-bf808ec4.entry.js.map +0 -1
- package/dist/ripple/p-c19ddc00.system.entry.js.map +0 -1
- package/dist/ripple/p-cc8ca6bd.system.js.map +0 -1
- package/dist/ripple/p-ce52357e.js +0 -2
- package/dist/ripple/p-ce52357e.js.map +0 -1
- package/dist/ripple/p-d0f5773a.entry.js +0 -2
- package/dist/ripple/p-d0f5773a.entry.js.map +0 -1
- package/dist/ripple/p-d5b0809e.entry.js.map +0 -1
- package/dist/ripple/p-d7b946ed.entry.js.map +0 -1
- package/dist/ripple/p-d7c55ce1.entry.js.map +0 -1
- package/dist/ripple/p-d7ffac2f.entry.js.map +0 -1
- package/dist/ripple/p-dbf657c5.js +0 -2
- package/dist/ripple/p-dbf657c5.js.map +0 -1
- package/dist/ripple/p-e1b812ed.entry.js +0 -2
- package/dist/ripple/p-e1b812ed.entry.js.map +0 -1
- package/dist/ripple/p-e5f84104.system.entry.js.map +0 -1
- package/dist/ripple/p-e6e7cb2d.entry.js.map +0 -1
- package/dist/ripple/p-e99a7f36.entry.js.map +0 -1
- package/dist/ripple/p-ed14d37c.system.entry.js +0 -2
- package/dist/ripple/p-ed14d37c.system.entry.js.map +0 -1
- package/dist/ripple/p-ee97c3f6.entry.js.map +0 -1
- package/dist/ripple/p-f3130941.entry.js +0 -2
- package/dist/ripple/p-f3130941.entry.js.map +0 -1
- package/dist/ripple/p-f36b1c58.system.entry.js.map +0 -1
- package/dist/ripple/p-f4a622a9.system.entry.js +0 -2
- package/dist/ripple/p-f4a622a9.system.entry.js.map +0 -1
- package/dist/ripple/p-f5df5903.system.js.map +0 -1
- package/dist/ripple/p-fd8070fb.js.map +0 -1
|
@@ -3,210 +3,210 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-1f84c034.js');
|
|
6
|
-
const functions = require('./functions-
|
|
6
|
+
const functions = require('./functions-d2d99997.js');
|
|
7
7
|
|
|
8
8
|
const wmFileCss = ":host,wm-file{display:block;width:100%}.file-wrapper{font-size:0.875rem;position:relative;list-style:none}.file-wrapper .file{min-width:300px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;height:3.5rem;padding:0 1.25rem;position:relative;background:#f4f4f4;border:1px solid #6b6b6b;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.file-wrapper .file .filename{white-space:nowrap}.file-wrapper .file .left-group{overflow:hidden}.file-wrapper .file .right-group{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding-left:5rem;gap:1rem}.file-wrapper .file .right-group.condensed{padding-left:2.5rem}.file-wrapper .file .right-group .file-controls{display:-ms-flexbox;display:flex;gap:1rem}.file-wrapper .file .right-group .file-info{white-space:nowrap}.file-wrapper .file.--error{border:1px solid #c0392b;background-color:#f5ebea;height:3.75rem}.file-wrapper.checked .file: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:\"\\f133\";position:absolute;right:-44px;color:#088000;font-size:28px;line-height:1}.name-wrapper{overflow:hidden}.progress{position:absolute;left:0;top:0;right:0;height:8px}.error-message{display:block;font-style:italic;color:#c0392b;font-size:0.875rem;margin-top:0.25rem}.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}.ch-measure{width:1ch !important;visibility:hidden}";
|
|
9
9
|
|
|
10
|
-
const File = class {
|
|
11
|
-
constructor(hostRef) {
|
|
12
|
-
index.registerInstance(this, hostRef);
|
|
13
|
-
this.wmIntFilePreviewed = index.createEvent(this, "wmIntFilePreviewed", 7);
|
|
14
|
-
this.wmIntFileDownloaded = index.createEvent(this, "wmIntFileDownloaded", 7);
|
|
15
|
-
this.wmIntFileDeleted = index.createEvent(this, "wmIntFileDeleted", 7);
|
|
16
|
-
this.wmFileClearErrorClicked = index.createEvent(this, "wmFileClearErrorClicked", 7);
|
|
17
|
-
// the file component is used within wm-uploader, which still includes legacy types 1 and 2
|
|
18
|
-
// some new features are not included in these legacy types, and must use the below in conditions
|
|
19
|
-
this.isWithinLegacyUploader = false;
|
|
20
|
-
this.debouncedResize = functions.debounce(() => {
|
|
21
|
-
this.isCondensed = this.el.clientWidth < 500;
|
|
22
|
-
// rerender to show filename truncation changes
|
|
23
|
-
index.forceUpdate(this.el);
|
|
24
|
-
}, 50);
|
|
25
|
-
this.file = undefined;
|
|
26
|
-
this.showInfo = "time";
|
|
27
|
-
this.errorMessage = undefined;
|
|
28
|
-
this.isCondensed = false;
|
|
29
|
-
}
|
|
30
|
-
get fileData() {
|
|
31
|
-
let data = this.file ? JSON.parse(this.file) : null;
|
|
32
|
-
// sometimes JSON numbers can be received as strings, make sure progress is always a number
|
|
33
|
-
if (data && data.progress && typeof data.progress === "string" && data.progress.match(/^[0-9]+$/)) {
|
|
34
|
-
data.progress = parseInt(data.progress.toString());
|
|
35
|
-
}
|
|
36
|
-
return data;
|
|
37
|
-
}
|
|
38
|
-
get isUploading() {
|
|
39
|
-
return this.fileData && this.fileData.hasOwnProperty("progress") && this.fileData.progress < 100;
|
|
40
|
-
}
|
|
41
|
-
get singleCharacterWidth() {
|
|
42
|
-
return this.el.shadowRoot.querySelector(".ch-measure").clientWidth;
|
|
43
|
-
}
|
|
44
|
-
get previewButtonTooltip() {
|
|
45
|
-
return functions.intl.formatMessage({
|
|
46
|
-
id: "file.previewButtonTooltip",
|
|
47
|
-
defaultMessage: "Preview",
|
|
48
|
-
description: "Tooltip of a button that triggers a file to be previewed",
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
get downloadButtonTooltip() {
|
|
52
|
-
return functions.intl.formatMessage({
|
|
53
|
-
id: "file.downloadButtonTooltip",
|
|
54
|
-
defaultMessage: "Download",
|
|
55
|
-
description: "Tooltip of a button that triggers a file to be downloaded",
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
get deleteButtonTooltip() {
|
|
59
|
-
return functions.intl.formatMessage({
|
|
60
|
-
id: "file.deleteButtonTooltip",
|
|
61
|
-
defaultMessage: "Delete",
|
|
62
|
-
description: "Tooltip of a button that triggers a file to be deleted",
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
get previewActionMessage() {
|
|
66
|
-
return functions.intl.formatMessage({
|
|
67
|
-
id: "file.previewAction",
|
|
68
|
-
defaultMessage: "Preview File",
|
|
69
|
-
description: "Label of a button that triggers a file to be previewed",
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
get downloadActionMessage() {
|
|
73
|
-
return functions.intl.formatMessage({
|
|
74
|
-
id: "file.downloadAction",
|
|
75
|
-
defaultMessage: "Download File",
|
|
76
|
-
description: "Label of a button that triggers a file to be downloaded",
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
get deleteActionMessage() {
|
|
80
|
-
return functions.intl.formatMessage({
|
|
81
|
-
id: "file.deleteAction",
|
|
82
|
-
defaultMessage: "Delete File",
|
|
83
|
-
description: "Label of a button that triggers a file to be delete",
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
get actionMenuLabel() {
|
|
87
|
-
return functions.intl.formatMessage({
|
|
88
|
-
id: "file.actionMenuLabel",
|
|
89
|
-
defaultMessage: "Actions",
|
|
90
|
-
description: "Label of a button that opens a menu of file actions",
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
get clearButtonText() {
|
|
94
|
-
return functions.intl.formatMessage({
|
|
95
|
-
id: "file.clearErrorText",
|
|
96
|
-
defaultMessage: "Clear",
|
|
97
|
-
description: "Text for a button used to clear an error",
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
generateClearButtonLabel(filename) {
|
|
101
|
-
return functions.intl.formatMessage({
|
|
102
|
-
id: "file.clearErrorLabel",
|
|
103
|
-
defaultMessage: "Clear {fileName} error",
|
|
104
|
-
description: "Label for a button used to clear an error, including filename",
|
|
105
|
-
}, { fileName: filename });
|
|
106
|
-
}
|
|
107
|
-
componentWillLoad() {
|
|
108
|
-
const shadowRootHost = this.el.getRootNode().host;
|
|
109
|
-
if (shadowRootHost && shadowRootHost.nodeName === "WM-UPLOADER") {
|
|
110
|
-
if (shadowRootHost.type || shadowRootHost.uploaderType) {
|
|
111
|
-
this.isWithinLegacyUploader = true;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
// rerender on resize in case layout needs to change
|
|
115
|
-
const resizeObserver = new ResizeObserver(() => this.debouncedResize());
|
|
116
|
-
resizeObserver.observe(this.el);
|
|
117
|
-
}
|
|
118
|
-
componentDidRender() {
|
|
119
|
-
this.truncateFileName(this.el.shadowRoot.querySelector(".file"));
|
|
120
|
-
}
|
|
121
|
-
previewFile(file) {
|
|
122
|
-
this.wmIntFilePreviewed.emit(file.id);
|
|
123
|
-
}
|
|
124
|
-
downloadFile(file) {
|
|
125
|
-
this.wmIntFileDownloaded.emit(file.id);
|
|
126
|
-
}
|
|
127
|
-
deleteFile(file) {
|
|
128
|
-
this.wmIntFileDeleted.emit(file.id);
|
|
129
|
-
}
|
|
130
|
-
truncateFileName(file) {
|
|
131
|
-
const leftGroup = file.querySelector(".left-group");
|
|
132
|
-
const leftBoundary = leftGroup.getBoundingClientRect().left;
|
|
133
|
-
const rightGroup = file.querySelector(".right-group");
|
|
134
|
-
const rightBoundary = rightGroup
|
|
135
|
-
? rightGroup.getBoundingClientRect().left
|
|
136
|
-
: file.getBoundingClientRect().right - 20;
|
|
137
|
-
const filenameEl = file.querySelector(".filename");
|
|
138
|
-
const availableSpace = rightBoundary - leftBoundary;
|
|
139
|
-
let filename = filenameEl.dataset.filename;
|
|
140
|
-
const canFitText = availableSpace > filename.length * this.singleCharacterWidth;
|
|
141
|
-
if (!canFitText) {
|
|
142
|
-
const extension = filename.slice(filename.lastIndexOf("."));
|
|
143
|
-
const numFittingCharacters = Math.floor(availableSpace / this.singleCharacterWidth);
|
|
144
|
-
// three ellipses, three constant characters, extension
|
|
145
|
-
const postEllipsesLength = 3 + 3 + extension.length;
|
|
146
|
-
let preEllipsesLength = Math.max(2, numFittingCharacters - postEllipsesLength);
|
|
147
|
-
const preEllipsesText = filename.slice(0, preEllipsesLength);
|
|
148
|
-
const postEllipsesText = filename.slice(filename.indexOf(extension) - 3, filename.length);
|
|
149
|
-
filename = `${preEllipsesText.trim()}...${postEllipsesText.trim()}`;
|
|
150
|
-
}
|
|
151
|
-
filenameEl.textContent = filename;
|
|
152
|
-
}
|
|
153
|
-
handleFilenameMouseEnter(ev, filename) {
|
|
154
|
-
// only show tooltip if file name is being truncated (has ellipses)
|
|
155
|
-
if (ev.target.textContent.includes("...")) {
|
|
156
|
-
functions.showTooltip("bottom", ev.target, filename);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
renderFileName(filename, isUploading) {
|
|
160
|
-
return (index.h("div", { class: "left-group" }, index.h("div", { class: "name-wrapper" }, index.h("span", { class: "sr-only" }, filename), index.h("span", { "aria-hidden": "true", class: "filename", "data-filename": filename, onMouseEnter: (ev) => this.handleFilenameMouseEnter(ev, filename), onMouseLeave: () => functions.hideTooltip() }), isUploading && index.h("span", { class: "sr-only" }, "uploading"), index.h("div", { class: "ch-measure" }))));
|
|
161
|
-
}
|
|
162
|
-
renderFileInfo(item, showInfo) {
|
|
163
|
-
let displayedInfo = "";
|
|
164
|
-
if (showInfo === "time" && item.lastUpdated) {
|
|
165
|
-
displayedInfo = item.lastUpdated;
|
|
166
|
-
}
|
|
167
|
-
else if (showInfo === "size" && item.size) {
|
|
168
|
-
displayedInfo = item.size;
|
|
169
|
-
}
|
|
170
|
-
return index.h("div", { class: "file-info" }, displayedInfo);
|
|
171
|
-
}
|
|
172
|
-
renderActionMenu(item) {
|
|
173
|
-
const defaultFileActions = "download delete";
|
|
174
|
-
const availableActions = item.fileActions || defaultFileActions;
|
|
175
|
-
const previewItem = (index.h("wm-menuitem", { icon: "f208", onClick: () => this.previewFile(item) }, this.previewActionMessage));
|
|
176
|
-
const downloadItem = (index.h("wm-menuitem", { icon: "f1da", onClick: () => this.downloadFile(item) }, this.downloadActionMessage));
|
|
177
|
-
const deleteItem = (index.h("wm-menuitem", { icon: "f1c0", onClick: () => this.deleteFile(item) }, this.deleteActionMessage));
|
|
178
|
-
return (index.h("wm-action-menu", { "action-menu-type": "icon", tooltip: this.actionMenuLabel, "tooltip-position": "bottom", "label-for-identical-buttons": `${item.name} ${this.actionMenuLabel}` }, availableActions.includes("preview") && previewItem, availableActions.includes("download") && downloadItem, availableActions.includes("delete") && deleteItem));
|
|
179
|
-
}
|
|
180
|
-
renderFileActionButtons(item) {
|
|
181
|
-
const defaultFileActions = "download delete";
|
|
182
|
-
const availableActions = item.fileActions || defaultFileActions;
|
|
183
|
-
const previewButton = (index.h("wm-button", { class: "preview-button", "button-type": "icononly", tooltip: this.previewButtonTooltip, "tooltip-position": "bottom", "label-for-identical-buttons": `preview ${item.name}`, icon: "f208", onClick: () => this.previewFile(item) }));
|
|
184
|
-
const downloadButton = (index.h("wm-button", { class: "download-button", "button-type": "icononly", tooltip: this.downloadButtonTooltip, "tooltip-position": "bottom", "label-for-identical-buttons": `download ${item.name}`, icon: "f1da", onClick: () => this.downloadFile(item) }));
|
|
185
|
-
const deleteButton = (index.h("wm-button", { class: "delete-button", "button-type": "icononly", tooltip: this.deleteButtonTooltip, "tooltip-position": "bottom", "label-for-identical-buttons": `delete ${item.name}`, icon: "f1c0", onClick: () => this.deleteFile(item) }));
|
|
186
|
-
return (index.h("div", { class: "file-controls" }, availableActions.includes("preview") && previewButton, availableActions.includes("download") && downloadButton, availableActions.includes("delete") && deleteButton));
|
|
187
|
-
}
|
|
188
|
-
renderFileInProgress(item) {
|
|
189
|
-
const filename = item.type ? `${item.name}.${item.type}` : item.name;
|
|
190
|
-
return (index.h("div", { class: "file-wrapper" }, index.h("div", { class: "file --progress" }, index.h("div", { class: "progress", style: {
|
|
191
|
-
background: `linear-gradient(to right, rgba(67, 126, 142, 1) ${item.progress}%, transparent ${item.progress}%)`,
|
|
192
|
-
} }), this.renderFileName(filename, this.isUploading))));
|
|
193
|
-
}
|
|
194
|
-
renderFileControls(item) {
|
|
195
|
-
const hasSingleFileAction = item.fileActions && item.fileActions.split(" ").length === 1;
|
|
196
|
-
const showActionMenu = this.isCondensed && !hasSingleFileAction;
|
|
197
|
-
return showActionMenu ? this.renderActionMenu(item) : this.renderFileActionButtons(item);
|
|
198
|
-
}
|
|
199
|
-
renderFile(item) {
|
|
200
|
-
const filename = item.type ? `${item.name}.${item.type}` : item.name;
|
|
201
|
-
const showCheckmark = !this.isWithinLegacyUploader && item.progress === 100;
|
|
202
|
-
return (index.h("div", { class: `file-wrapper ${showCheckmark ? "checked" : ""}` }, index.h("div", { class: `file ${this.errorMessage ? "--error" : ""}` }, this.renderFileName(filename, this.isUploading), !this.errorMessage && (index.h("div", { class: `right-group ${this.isCondensed ? "condensed" : ""}` }, this.showInfo !== "none" && this.renderFileInfo(item, this.showInfo), item.fileActions !== "" && this.renderFileControls(item))), this.errorMessage && (index.h("wm-button", { "permanently-delete": true, "button-type": "textonly", "label-for-identical-buttons": this.generateClearButtonLabel(item.name), onClick: () => this.wmFileClearErrorClicked.emit({ name: item.name }) }, this.clearButtonText))), this.errorMessage && index.h("div", { class: "error-message" }, this.errorMessage)));
|
|
203
|
-
}
|
|
204
|
-
render() {
|
|
205
|
-
return (index.h(index.Host, { role: "listitem" }, this.isUploading ? this.renderFileInProgress(this.fileData) : this.renderFile(this.fileData)));
|
|
206
|
-
}
|
|
207
|
-
static get delegatesFocus() { return true; }
|
|
208
|
-
get el() { return index.getElement(this); }
|
|
209
|
-
};
|
|
10
|
+
const File = class {
|
|
11
|
+
constructor(hostRef) {
|
|
12
|
+
index.registerInstance(this, hostRef);
|
|
13
|
+
this.wmIntFilePreviewed = index.createEvent(this, "wmIntFilePreviewed", 7);
|
|
14
|
+
this.wmIntFileDownloaded = index.createEvent(this, "wmIntFileDownloaded", 7);
|
|
15
|
+
this.wmIntFileDeleted = index.createEvent(this, "wmIntFileDeleted", 7);
|
|
16
|
+
this.wmFileClearErrorClicked = index.createEvent(this, "wmFileClearErrorClicked", 7);
|
|
17
|
+
// the file component is used within wm-uploader, which still includes legacy types 1 and 2
|
|
18
|
+
// some new features are not included in these legacy types, and must use the below in conditions
|
|
19
|
+
this.isWithinLegacyUploader = false;
|
|
20
|
+
this.debouncedResize = functions.debounce(() => {
|
|
21
|
+
this.isCondensed = this.el.clientWidth < 500;
|
|
22
|
+
// rerender to show filename truncation changes
|
|
23
|
+
index.forceUpdate(this.el);
|
|
24
|
+
}, 50);
|
|
25
|
+
this.file = undefined;
|
|
26
|
+
this.showInfo = "time";
|
|
27
|
+
this.errorMessage = undefined;
|
|
28
|
+
this.isCondensed = false;
|
|
29
|
+
}
|
|
30
|
+
get fileData() {
|
|
31
|
+
let data = this.file ? JSON.parse(this.file) : null;
|
|
32
|
+
// sometimes JSON numbers can be received as strings, make sure progress is always a number
|
|
33
|
+
if (data && data.progress && typeof data.progress === "string" && data.progress.match(/^[0-9]+$/)) {
|
|
34
|
+
data.progress = parseInt(data.progress.toString());
|
|
35
|
+
}
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
get isUploading() {
|
|
39
|
+
return this.fileData && this.fileData.hasOwnProperty("progress") && this.fileData.progress < 100;
|
|
40
|
+
}
|
|
41
|
+
get singleCharacterWidth() {
|
|
42
|
+
return this.el.shadowRoot.querySelector(".ch-measure").clientWidth;
|
|
43
|
+
}
|
|
44
|
+
get previewButtonTooltip() {
|
|
45
|
+
return functions.intl.formatMessage({
|
|
46
|
+
id: "file.previewButtonTooltip",
|
|
47
|
+
defaultMessage: "Preview",
|
|
48
|
+
description: "Tooltip of a button that triggers a file to be previewed",
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
get downloadButtonTooltip() {
|
|
52
|
+
return functions.intl.formatMessage({
|
|
53
|
+
id: "file.downloadButtonTooltip",
|
|
54
|
+
defaultMessage: "Download",
|
|
55
|
+
description: "Tooltip of a button that triggers a file to be downloaded",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
get deleteButtonTooltip() {
|
|
59
|
+
return functions.intl.formatMessage({
|
|
60
|
+
id: "file.deleteButtonTooltip",
|
|
61
|
+
defaultMessage: "Delete",
|
|
62
|
+
description: "Tooltip of a button that triggers a file to be deleted",
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
get previewActionMessage() {
|
|
66
|
+
return functions.intl.formatMessage({
|
|
67
|
+
id: "file.previewAction",
|
|
68
|
+
defaultMessage: "Preview File",
|
|
69
|
+
description: "Label of a button that triggers a file to be previewed",
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
get downloadActionMessage() {
|
|
73
|
+
return functions.intl.formatMessage({
|
|
74
|
+
id: "file.downloadAction",
|
|
75
|
+
defaultMessage: "Download File",
|
|
76
|
+
description: "Label of a button that triggers a file to be downloaded",
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
get deleteActionMessage() {
|
|
80
|
+
return functions.intl.formatMessage({
|
|
81
|
+
id: "file.deleteAction",
|
|
82
|
+
defaultMessage: "Delete File",
|
|
83
|
+
description: "Label of a button that triggers a file to be delete",
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
get actionMenuLabel() {
|
|
87
|
+
return functions.intl.formatMessage({
|
|
88
|
+
id: "file.actionMenuLabel",
|
|
89
|
+
defaultMessage: "Actions",
|
|
90
|
+
description: "Label of a button that opens a menu of file actions",
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
get clearButtonText() {
|
|
94
|
+
return functions.intl.formatMessage({
|
|
95
|
+
id: "file.clearErrorText",
|
|
96
|
+
defaultMessage: "Clear",
|
|
97
|
+
description: "Text for a button used to clear an error",
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
generateClearButtonLabel(filename) {
|
|
101
|
+
return functions.intl.formatMessage({
|
|
102
|
+
id: "file.clearErrorLabel",
|
|
103
|
+
defaultMessage: "Clear {fileName} error",
|
|
104
|
+
description: "Label for a button used to clear an error, including filename",
|
|
105
|
+
}, { fileName: filename });
|
|
106
|
+
}
|
|
107
|
+
componentWillLoad() {
|
|
108
|
+
const shadowRootHost = this.el.getRootNode().host;
|
|
109
|
+
if (shadowRootHost && shadowRootHost.nodeName === "WM-UPLOADER") {
|
|
110
|
+
if (shadowRootHost.type || shadowRootHost.uploaderType) {
|
|
111
|
+
this.isWithinLegacyUploader = true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// rerender on resize in case layout needs to change
|
|
115
|
+
const resizeObserver = new ResizeObserver(() => this.debouncedResize());
|
|
116
|
+
resizeObserver.observe(this.el);
|
|
117
|
+
}
|
|
118
|
+
componentDidRender() {
|
|
119
|
+
this.truncateFileName(this.el.shadowRoot.querySelector(".file"));
|
|
120
|
+
}
|
|
121
|
+
previewFile(file) {
|
|
122
|
+
this.wmIntFilePreviewed.emit(file.id);
|
|
123
|
+
}
|
|
124
|
+
downloadFile(file) {
|
|
125
|
+
this.wmIntFileDownloaded.emit(file.id);
|
|
126
|
+
}
|
|
127
|
+
deleteFile(file) {
|
|
128
|
+
this.wmIntFileDeleted.emit(file.id);
|
|
129
|
+
}
|
|
130
|
+
truncateFileName(file) {
|
|
131
|
+
const leftGroup = file.querySelector(".left-group");
|
|
132
|
+
const leftBoundary = leftGroup.getBoundingClientRect().left;
|
|
133
|
+
const rightGroup = file.querySelector(".right-group");
|
|
134
|
+
const rightBoundary = rightGroup
|
|
135
|
+
? rightGroup.getBoundingClientRect().left
|
|
136
|
+
: file.getBoundingClientRect().right - 20;
|
|
137
|
+
const filenameEl = file.querySelector(".filename");
|
|
138
|
+
const availableSpace = rightBoundary - leftBoundary;
|
|
139
|
+
let filename = filenameEl.dataset.filename;
|
|
140
|
+
const canFitText = availableSpace > filename.length * this.singleCharacterWidth;
|
|
141
|
+
if (!canFitText) {
|
|
142
|
+
const extension = filename.slice(filename.lastIndexOf("."));
|
|
143
|
+
const numFittingCharacters = Math.floor(availableSpace / this.singleCharacterWidth);
|
|
144
|
+
// three ellipses, three constant characters, extension
|
|
145
|
+
const postEllipsesLength = 3 + 3 + extension.length;
|
|
146
|
+
let preEllipsesLength = Math.max(2, numFittingCharacters - postEllipsesLength);
|
|
147
|
+
const preEllipsesText = filename.slice(0, preEllipsesLength);
|
|
148
|
+
const postEllipsesText = filename.slice(filename.indexOf(extension) - 3, filename.length);
|
|
149
|
+
filename = `${preEllipsesText.trim()}...${postEllipsesText.trim()}`;
|
|
150
|
+
}
|
|
151
|
+
filenameEl.textContent = filename;
|
|
152
|
+
}
|
|
153
|
+
handleFilenameMouseEnter(ev, filename) {
|
|
154
|
+
// only show tooltip if file name is being truncated (has ellipses)
|
|
155
|
+
if (ev.target.textContent.includes("...")) {
|
|
156
|
+
functions.showTooltip("bottom", ev.target, filename);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
renderFileName(filename, isUploading) {
|
|
160
|
+
return (index.h("div", { class: "left-group" }, index.h("div", { class: "name-wrapper" }, index.h("span", { class: "sr-only" }, filename), index.h("span", { "aria-hidden": "true", class: "filename", "data-filename": filename, onMouseEnter: (ev) => this.handleFilenameMouseEnter(ev, filename), onMouseLeave: () => functions.hideTooltip() }), isUploading && index.h("span", { class: "sr-only" }, "uploading"), index.h("div", { class: "ch-measure" }))));
|
|
161
|
+
}
|
|
162
|
+
renderFileInfo(item, showInfo) {
|
|
163
|
+
let displayedInfo = "";
|
|
164
|
+
if (showInfo === "time" && item.lastUpdated) {
|
|
165
|
+
displayedInfo = item.lastUpdated;
|
|
166
|
+
}
|
|
167
|
+
else if (showInfo === "size" && item.size) {
|
|
168
|
+
displayedInfo = item.size;
|
|
169
|
+
}
|
|
170
|
+
return index.h("div", { class: "file-info" }, displayedInfo);
|
|
171
|
+
}
|
|
172
|
+
renderActionMenu(item) {
|
|
173
|
+
const defaultFileActions = "download delete";
|
|
174
|
+
const availableActions = item.fileActions || defaultFileActions;
|
|
175
|
+
const previewItem = (index.h("wm-menuitem", { icon: "f208", onClick: () => this.previewFile(item) }, this.previewActionMessage));
|
|
176
|
+
const downloadItem = (index.h("wm-menuitem", { icon: "f1da", onClick: () => this.downloadFile(item) }, this.downloadActionMessage));
|
|
177
|
+
const deleteItem = (index.h("wm-menuitem", { icon: "f1c0", onClick: () => this.deleteFile(item) }, this.deleteActionMessage));
|
|
178
|
+
return (index.h("wm-action-menu", { "action-menu-type": "icon", tooltip: this.actionMenuLabel, "tooltip-position": "bottom", "label-for-identical-buttons": `${item.name} ${this.actionMenuLabel}` }, availableActions.includes("preview") && previewItem, availableActions.includes("download") && downloadItem, availableActions.includes("delete") && deleteItem));
|
|
179
|
+
}
|
|
180
|
+
renderFileActionButtons(item) {
|
|
181
|
+
const defaultFileActions = "download delete";
|
|
182
|
+
const availableActions = item.fileActions || defaultFileActions;
|
|
183
|
+
const previewButton = (index.h("wm-button", { class: "preview-button", "button-type": "icononly", tooltip: this.previewButtonTooltip, "tooltip-position": "bottom", "label-for-identical-buttons": `preview ${item.name}`, icon: "f208", onClick: () => this.previewFile(item) }));
|
|
184
|
+
const downloadButton = (index.h("wm-button", { class: "download-button", "button-type": "icononly", tooltip: this.downloadButtonTooltip, "tooltip-position": "bottom", "label-for-identical-buttons": `download ${item.name}`, icon: "f1da", onClick: () => this.downloadFile(item) }));
|
|
185
|
+
const deleteButton = (index.h("wm-button", { class: "delete-button", "button-type": "icononly", tooltip: this.deleteButtonTooltip, "tooltip-position": "bottom", "label-for-identical-buttons": `delete ${item.name}`, icon: "f1c0", onClick: () => this.deleteFile(item) }));
|
|
186
|
+
return (index.h("div", { class: "file-controls" }, availableActions.includes("preview") && previewButton, availableActions.includes("download") && downloadButton, availableActions.includes("delete") && deleteButton));
|
|
187
|
+
}
|
|
188
|
+
renderFileInProgress(item) {
|
|
189
|
+
const filename = item.type ? `${item.name}.${item.type}` : item.name;
|
|
190
|
+
return (index.h("div", { class: "file-wrapper" }, index.h("div", { class: "file --progress" }, index.h("div", { class: "progress", style: {
|
|
191
|
+
background: `linear-gradient(to right, rgba(67, 126, 142, 1) ${item.progress}%, transparent ${item.progress}%)`,
|
|
192
|
+
} }), this.renderFileName(filename, this.isUploading))));
|
|
193
|
+
}
|
|
194
|
+
renderFileControls(item) {
|
|
195
|
+
const hasSingleFileAction = item.fileActions && item.fileActions.split(" ").length === 1;
|
|
196
|
+
const showActionMenu = this.isCondensed && !hasSingleFileAction;
|
|
197
|
+
return showActionMenu ? this.renderActionMenu(item) : this.renderFileActionButtons(item);
|
|
198
|
+
}
|
|
199
|
+
renderFile(item) {
|
|
200
|
+
const filename = item.type ? `${item.name}.${item.type}` : item.name;
|
|
201
|
+
const showCheckmark = !this.isWithinLegacyUploader && item.progress === 100;
|
|
202
|
+
return (index.h("div", { class: `file-wrapper ${showCheckmark ? "checked" : ""}` }, index.h("div", { class: `file ${this.errorMessage ? "--error" : ""}` }, this.renderFileName(filename, this.isUploading), !this.errorMessage && (index.h("div", { class: `right-group ${this.isCondensed ? "condensed" : ""}` }, this.showInfo !== "none" && this.renderFileInfo(item, this.showInfo), item.fileActions !== "" && this.renderFileControls(item))), this.errorMessage && (index.h("wm-button", { "permanently-delete": true, "button-type": "textonly", "label-for-identical-buttons": this.generateClearButtonLabel(item.name), onClick: () => this.wmFileClearErrorClicked.emit({ name: item.name }) }, this.clearButtonText))), this.errorMessage && index.h("div", { class: "error-message" }, this.errorMessage)));
|
|
203
|
+
}
|
|
204
|
+
render() {
|
|
205
|
+
return (index.h(index.Host, { role: "listitem" }, this.isUploading ? this.renderFileInProgress(this.fileData) : this.renderFile(this.fileData)));
|
|
206
|
+
}
|
|
207
|
+
static get delegatesFocus() { return true; }
|
|
208
|
+
get el() { return index.getElement(this); }
|
|
209
|
+
};
|
|
210
210
|
File.style = wmFileCss;
|
|
211
211
|
|
|
212
212
|
exports.wm_file = File;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"wm-file.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,SAAS,GAAG,i1DAAi1D;;MCSt1D,IAAI;;;;;;;;;IAYP,2BAAsB,GAAY,KAAK,CAAC;IAiHhD,oBAAe,GAAGA,kBAAQ,CAAC;MACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,GAAG,CAAC;;MAE7CC,iBAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtB,EAAE,EAAE,CAAC,CAAC;;oBA9HsC,MAAM;;uBAEnB,KAAK;;EASrC,IAAI,QAAQ;IACV,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;;IAGpD,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;MACjG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;KACpD;IACD,OAAO,IAAI,CAAC;GACb;EAED,IAAI,WAAW;IACb,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAS,GAAG,GAAG,CAAC;GACnG;EAED,IAAI,oBAAoB;IACtB,OAAO,IAAI,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,WAAW,CAAC;GACtE;EAED,IAAI,oBAAoB;IACtB,OAAOC,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,2BAA2B;MAC/B,cAAc,EAAE,SAAS;MACzB,WAAW,EAAE,0DAA0D;KACxE,CAAC,CAAC;GACJ;EAED,IAAI,qBAAqB;IACvB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,4BAA4B;MAChC,cAAc,EAAE,UAAU;MAC1B,WAAW,EAAE,2DAA2D;KACzE,CAAC,CAAC;GACJ;EAED,IAAI,mBAAmB;IACrB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,0BAA0B;MAC9B,cAAc,EAAE,QAAQ;MACxB,WAAW,EAAE,wDAAwD;KACtE,CAAC,CAAC;GACJ;EAED,IAAI,oBAAoB;IACtB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,oBAAoB;MACxB,cAAc,EAAE,cAAc;MAC9B,WAAW,EAAE,wDAAwD;KACtE,CAAC,CAAC;GACJ;EAED,IAAI,qBAAqB;IACvB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,qBAAqB;MACzB,cAAc,EAAE,eAAe;MAC/B,WAAW,EAAE,yDAAyD;KACvE,CAAC,CAAC;GACJ;EAED,IAAI,mBAAmB;IACrB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,mBAAmB;MACvB,cAAc,EAAE,aAAa;MAC7B,WAAW,EAAE,qDAAqD;KACnE,CAAC,CAAC;GACJ;EAED,IAAI,eAAe;IACjB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,sBAAsB;MAC1B,cAAc,EAAE,SAAS;MACzB,WAAW,EAAE,qDAAqD;KACnE,CAAC,CAAC;GACJ;EAED,IAAI,eAAe;IACjB,OAAOA,cAAI,CAAC,aAAa,CAAC;MACxB,EAAE,EAAE,qBAAqB;MACzB,cAAc,EAAE,OAAO;MACvB,WAAW,EAAE,0CAA0C;KACxD,CAAC,CAAC;GACJ;EAED,wBAAwB,CAAC,QAAgB;IACvC,OAAOA,cAAI,CAAC,aAAa,CACvB;MACE,EAAE,EAAE,sBAAsB;MAC1B,cAAc,EAAE,wBAAwB;MACxC,WAAW,EAAE,+DAA+D;KAC7E,EACD,EAAE,QAAQ,EAAE,QAAQ,EAAE,CACvB,CAAC;GACH;EAED,iBAAiB;IACf,MAAM,cAAc,GAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAiB,CAAC,IAAI,CAAC;IAElE,IAAI,cAAc,IAAI,cAAc,CAAC,QAAQ,KAAK,aAAa,EAAE;MAC/D,IAAK,cAAwC,CAAC,IAAI,IAAK,cAAwC,CAAC,YAAY,EAAE;QAC5G,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;OACpC;KACF;;IAGD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IACxE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;GACjC;EAED,kBAAkB;IAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,CAAC;GACpE;EAQD,WAAW,CAAC,IAAkB;IAC5B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;GACvC;EAED,YAAY,CAAC,IAAkB;IAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;GACxC;EAED,UAAU,CAAC,IAAkB;IAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;GACrC;EAED,gBAAgB,CAAC,IAAa;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,SAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,UAAU;QAC5B,UAAU,CAAC,qBAAqB,EAAE,CAAC,IAAI;QACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAgB,CAAC;IAClE,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;IAEpD,IAAI,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAS,CAAC;IAC5C,MAAM,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAEhF,IAAI,CAAC,UAAU,EAAE;MACf,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;MAC5D,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;;MAGpF,MAAM,kBAAkB,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;MACpD,IAAI,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,CAAC;MAC/E,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;MAC7D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;MAC1F,QAAQ,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;KACrE;IAED,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC;GACnC;EAED,wBAAwB,CAAC,EAAc,EAAE,QAAgB;;IAEvD,IAAK,EAAE,CAAC,MAAsB,CAAC,WAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;MAC3DC,qBAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAqB,EAAE,QAAQ,CAAC,CAAC;KAC3D;GACF;EAED,cAAc,CAAC,QAAgB,EAAE,WAAoB;IACnD,QACEC,iBAAK,KAAK,EAAC,YAAY,IACrBA,iBAAK,KAAK,EAAC,cAAc,IACvBA,kBAAM,KAAK,EAAC,SAAS,IAAE,QAAQ,CAAQ,EACvCA,iCACc,MAAM,EAClB,KAAK,EAAC,UAAU,mBACD,QAAQ,EACvB,YAAY,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,QAAQ,CAAC,EACjE,YAAY,EAAE,MAAMC,qBAAW,EAAE,GAC3B,EACP,WAAW,IAAID,kBAAM,KAAK,EAAC,SAAS,gBAAiB,EACtDA,iBAAK,KAAK,EAAC,YAAY,GAAO,CAC1B,CACF,EACN;GACH;EAED,cAAc,CAAC,IAAkB,EAAE,QAAgB;IACjD,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;MAC3C,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC;KAClC;SAAM,IAAI,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;MAC3C,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;KAC3B;IAED,OAAOA,iBAAK,KAAK,EAAC,WAAW,IAAE,aAAa,CAAO,CAAC;GACrD;EAED,gBAAgB,CAAC,IAAkB;IACjC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAChE,MAAM,WAAW,IACfA,yBAAa,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAC3D,IAAI,CAAC,oBAAoB,CACd,CACf,CAAC;IACF,MAAM,YAAY,IAChBA,yBAAa,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAC5D,IAAI,CAAC,qBAAqB,CACf,CACf,CAAC;IACF,MAAM,UAAU,IACdA,yBAAa,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAC1D,IAAI,CAAC,mBAAmB,CACb,CACf,CAAC;IACF,QACEA,gDACmB,MAAM,EACvB,OAAO,EAAE,IAAI,CAAC,eAAe,sBACZ,QAAQ,iCACI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,IAElE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,EACnD,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,YAAY,EACrD,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CACnC,EACjB;GACH;EAED,uBAAuB,CAAC,IAAkB;IACxC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAEhE,MAAM,aAAa,IACjBA,uBACE,KAAK,EAAC,gBAAgB,iBACV,UAAU,EACtB,OAAO,EAAE,IAAI,CAAC,oBAAoB,sBACjB,QAAQ,iCACI,WAAW,IAAI,CAAC,IAAI,EAAE,EACnD,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAC1B,CACd,CAAC;IACF,MAAM,cAAc,IAClBA,uBACE,KAAK,EAAC,iBAAiB,iBACX,UAAU,EACtB,OAAO,EAAE,IAAI,CAAC,qBAAqB,sBAClB,QAAQ,iCACI,YAAY,IAAI,CAAC,IAAI,EAAE,EACpD,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAC3B,CACd,CAAC;IACF,MAAM,YAAY,IAChBA,uBACE,KAAK,EAAC,eAAe,iBACT,UAAU,EACtB,OAAO,EAAE,IAAI,CAAC,mBAAmB,sBAChB,QAAQ,iCACI,UAAU,IAAI,CAAC,IAAI,EAAE,EAClD,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GACzB,CACd,CAAC;IAEF,QACEA,iBAAK,KAAK,EAAC,eAAe,IACvB,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,aAAa,EACrD,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,cAAc,EACvD,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAChD,EACN;GACH;EAED,oBAAoB,CAAC,IAAkB;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IACrE,QACEA,iBAAK,KAAK,EAAC,cAAc,IACvBA,iBAAK,KAAK,EAAC,iBAAiB,IAC1BA,iBACE,KAAK,EAAC,UAAU,EAChB,KAAK,EAAE;QACL,UAAU,EAAE,mDAAmD,IAAI,CAAC,QAAQ,kBAAkB,IAAI,CAAC,QAAQ,IAAI;OAChH,GACI,EACN,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAC5C,CACF,EACN;GACH;EAED,kBAAkB,CAAC,IAAkB;IACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,mBAAmB,CAAC;IAEhE,OAAO,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;GAC1F;EAED,UAAU,CAAC,IAAkB;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;IACrE,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC;IAE5E,QACEA,iBAAK,KAAK,EAAE,gBAAgB,aAAa,GAAG,SAAS,GAAG,EAAE,EAAE,IAC1DA,iBAAK,KAAK,EAAE,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,EAAE,EAAE,IACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,EAC/C,CAAC,IAAI,CAAC,YAAY,KACjBA,iBAAK,KAAK,EAAE,eAAe,IAAI,CAAC,WAAW,GAAG,WAAW,GAAG,EAAE,EAAE,IAC7D,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACpE,IAAI,CAAC,WAAW,KAAK,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACrD,CACP,EACA,IAAI,CAAC,YAAY,KAChBA,kEAEc,UAAU,iCACO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EACrE,OAAO,EAAE,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAEpE,IAAI,CAAC,eAAe,CACX,CACb,CACG,EACL,IAAI,CAAC,YAAY,IAAIA,iBAAK,KAAK,EAAC,eAAe,IAAE,IAAI,CAAC,YAAY,CAAO,CACtE,EACN;GACH;EAED,MAAM;IACJ,QACEA,QAACE,UAAI,IAAC,IAAI,EAAC,UAAU,IAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CACxF,EACP;GACH;;;;;;;;","names":["debounce","forceUpdate","intl","showTooltip","h","hideTooltip","Host"],"sources":["./src/components/wm-file/wm-file.scss?tag=wm-file&encapsulation=shadow","./src/components/wm-file/wm-file.tsx"],"sourcesContent":[":host,\r\nwm-file {\r\n display: block;\r\n width: 100%;\r\n}\r\n.file-wrapper {\r\n font-size: rem-calc(14);\r\n position: relative;\r\n list-style: none;\r\n\r\n .file {\r\n min-width: 300px;\r\n @include border-radius(3px);\r\n height: rem-calc(56);\r\n padding: 0 rem-calc(20);\r\n position: relative; // for progress bar\r\n background: $background;\r\n border: 1px solid rgb(107, 107, 107);\r\n\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n .filename {\r\n white-space: nowrap;\r\n }\r\n\r\n .left-group {\r\n overflow: hidden;\r\n }\r\n\r\n .right-group {\r\n display: flex;\r\n align-items: center;\r\n padding-left: rem-calc(80);\r\n gap: rem-calc(16);\r\n\r\n &.condensed {\r\n padding-left: rem-calc(40);\r\n }\r\n\r\n .file-controls {\r\n display: flex;\r\n gap: rem-calc(16);\r\n }\r\n .file-info {\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n &.--error {\r\n border: 1px solid $error-color;\r\n background-color: #f5ebea;\r\n height: rem-calc(60);\r\n }\r\n }\r\n\r\n &.checked {\r\n .file:after {\r\n @include mdi-icon;\r\n content: \"\\f133\";\r\n position: absolute;\r\n right: calc(-16px + -28px);\r\n color: $uploader-checkmark-background;\r\n font-size: 28px;\r\n line-height: 1;\r\n }\r\n }\r\n}\r\n\r\n.name-wrapper {\r\n overflow: hidden;\r\n}\r\n\r\n.progress {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n right: 0;\r\n height: 8px;\r\n}\r\n\r\n.error-message {\r\n @include errorMessage;\r\n}\r\n\r\n.sr-only {\r\n @include srOnly;\r\n}\r\n\r\n.ch-measure {\r\n // used to get the measurement of a single character, for truncation calculations\r\n width: 1ch !important;\r\n visibility: hidden;\r\n}\r\n","import { h, Component, Element, Event, EventEmitter, Prop, State, Host, forceUpdate } from \"@stencil/core\";\r\nimport { debounce, hideTooltip, intl, showTooltip } from \"../../global/functions\";\r\nimport { UploadedFile } from \"../../global/interfaces\";\r\n\r\n@Component({\r\n tag: \"wm-file\",\r\n styleUrl: \"wm-file.scss\",\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class File {\r\n @Element() el!: HTMLWmFileElement;\r\n @Prop() file?: string;\r\n @Prop() showInfo: \"time\" | \"size\" | \"none\" = \"time\";\r\n @Prop() errorMessage?: string;\r\n @State() isCondensed: boolean = false;\r\n @Event() wmIntFilePreviewed!: EventEmitter<string>;\r\n @Event() wmIntFileDownloaded!: EventEmitter<string>;\r\n @Event() wmIntFileDeleted!: EventEmitter<string>;\r\n @Event() wmFileClearErrorClicked!: EventEmitter; // undocumented event, for communication with wm-uploader\r\n // the file component is used within wm-uploader, which still includes legacy types 1 and 2\r\n // some new features are not included in these legacy types, and must use the below in conditions\r\n private isWithinLegacyUploader: boolean = false;\r\n\r\n get fileData(): UploadedFile {\r\n let data = this.file ? JSON.parse(this.file) : null;\r\n\r\n // sometimes JSON numbers can be received as strings, make sure progress is always a number\r\n if (data && data.progress && typeof data.progress === \"string\" && data.progress.match(/^[0-9]+$/)) {\r\n data.progress = parseInt(data.progress.toString());\r\n }\r\n return data;\r\n }\r\n\r\n get isUploading(): boolean {\r\n return this.fileData && this.fileData.hasOwnProperty(\"progress\") && this.fileData.progress! < 100;\r\n }\r\n\r\n get singleCharacterWidth() {\r\n return this.el.shadowRoot!.querySelector(\".ch-measure\")!.clientWidth;\r\n }\r\n\r\n get previewButtonTooltip() {\r\n return intl.formatMessage({\r\n id: \"file.previewButtonTooltip\",\r\n defaultMessage: \"Preview\",\r\n description: \"Tooltip of a button that triggers a file to be previewed\",\r\n });\r\n }\r\n\r\n get downloadButtonTooltip() {\r\n return intl.formatMessage({\r\n id: \"file.downloadButtonTooltip\",\r\n defaultMessage: \"Download\",\r\n description: \"Tooltip of a button that triggers a file to be downloaded\",\r\n });\r\n }\r\n\r\n get deleteButtonTooltip() {\r\n return intl.formatMessage({\r\n id: \"file.deleteButtonTooltip\",\r\n defaultMessage: \"Delete\",\r\n description: \"Tooltip of a button that triggers a file to be deleted\",\r\n });\r\n }\r\n\r\n get previewActionMessage() {\r\n return intl.formatMessage({\r\n id: \"file.previewAction\",\r\n defaultMessage: \"Preview File\",\r\n description: \"Label of a button that triggers a file to be previewed\",\r\n });\r\n }\r\n\r\n get downloadActionMessage() {\r\n return intl.formatMessage({\r\n id: \"file.downloadAction\",\r\n defaultMessage: \"Download File\",\r\n description: \"Label of a button that triggers a file to be downloaded\",\r\n });\r\n }\r\n\r\n get deleteActionMessage() {\r\n return intl.formatMessage({\r\n id: \"file.deleteAction\",\r\n defaultMessage: \"Delete File\",\r\n description: \"Label of a button that triggers a file to be delete\",\r\n });\r\n }\r\n\r\n get actionMenuLabel() {\r\n return intl.formatMessage({\r\n id: \"file.actionMenuLabel\",\r\n defaultMessage: \"Actions\",\r\n description: \"Label of a button that opens a menu of file actions\",\r\n });\r\n }\r\n\r\n get clearButtonText() {\r\n return intl.formatMessage({\r\n id: \"file.clearErrorText\",\r\n defaultMessage: \"Clear\",\r\n description: \"Text for a button used to clear an error\",\r\n });\r\n }\r\n\r\n generateClearButtonLabel(filename: string) {\r\n return intl.formatMessage(\r\n {\r\n id: \"file.clearErrorLabel\",\r\n defaultMessage: \"Clear {fileName} error\",\r\n description: \"Label for a button used to clear an error, including filename\",\r\n },\r\n { fileName: filename }\r\n );\r\n }\r\n\r\n componentWillLoad() {\r\n const shadowRootHost = (this.el.getRootNode() as ShadowRoot).host;\r\n\r\n if (shadowRootHost && shadowRootHost.nodeName === \"WM-UPLOADER\") {\r\n if ((shadowRootHost as HTMLWmUploaderElement).type || (shadowRootHost as HTMLWmUploaderElement).uploaderType) {\r\n this.isWithinLegacyUploader = true;\r\n }\r\n }\r\n\r\n // rerender on resize in case layout needs to change\r\n const resizeObserver = new ResizeObserver(() => this.debouncedResize());\r\n resizeObserver.observe(this.el);\r\n }\r\n\r\n componentDidRender() {\r\n this.truncateFileName(this.el.shadowRoot!.querySelector(\".file\")!);\r\n }\r\n\r\n debouncedResize = debounce(() => {\r\n this.isCondensed = this.el.clientWidth < 500;\r\n // rerender to show filename truncation changes\r\n forceUpdate(this.el);\r\n }, 50);\r\n\r\n previewFile(file: UploadedFile) {\r\n this.wmIntFilePreviewed.emit(file.id);\r\n }\r\n\r\n downloadFile(file: UploadedFile) {\r\n this.wmIntFileDownloaded.emit(file.id);\r\n }\r\n\r\n deleteFile(file: UploadedFile) {\r\n this.wmIntFileDeleted.emit(file.id);\r\n }\r\n\r\n truncateFileName(file: Element) {\r\n const leftGroup = file.querySelector(\".left-group\");\r\n const leftBoundary = leftGroup!.getBoundingClientRect().left;\r\n const rightGroup = file.querySelector(\".right-group\");\r\n const rightBoundary = rightGroup\r\n ? rightGroup.getBoundingClientRect().left\r\n : file.getBoundingClientRect().right - 20;\r\n const filenameEl = file.querySelector(\".filename\") as HTMLElement;\r\n const availableSpace = rightBoundary - leftBoundary;\r\n\r\n let filename = filenameEl.dataset.filename!;\r\n const canFitText = availableSpace > filename.length * this.singleCharacterWidth;\r\n\r\n if (!canFitText) {\r\n const extension = filename.slice(filename.lastIndexOf(\".\"));\r\n const numFittingCharacters = Math.floor(availableSpace / this.singleCharacterWidth);\r\n\r\n // three ellipses, three constant characters, extension\r\n const postEllipsesLength = 3 + 3 + extension.length;\r\n let preEllipsesLength = Math.max(2, numFittingCharacters - postEllipsesLength);\r\n const preEllipsesText = filename.slice(0, preEllipsesLength);\r\n const postEllipsesText = filename.slice(filename.indexOf(extension) - 3, filename.length);\r\n filename = `${preEllipsesText.trim()}...${postEllipsesText.trim()}`;\r\n }\r\n\r\n filenameEl.textContent = filename;\r\n }\r\n\r\n handleFilenameMouseEnter(ev: MouseEvent, filename: string) {\r\n // only show tooltip if file name is being truncated (has ellipses)\r\n if ((ev.target as HTMLElement).textContent!.includes(\"...\")) {\r\n showTooltip(\"bottom\", ev.target as HTMLElement, filename);\r\n }\r\n }\r\n\r\n renderFileName(filename: string, isUploading: boolean) {\r\n return (\r\n <div class=\"left-group\">\r\n <div class=\"name-wrapper\">\r\n <span class=\"sr-only\">{filename}</span>\r\n <span\r\n aria-hidden=\"true\"\r\n class=\"filename\"\r\n data-filename={filename}\r\n onMouseEnter={(ev) => this.handleFilenameMouseEnter(ev, filename)}\r\n onMouseLeave={() => hideTooltip()}\r\n ></span>\r\n {isUploading && <span class=\"sr-only\">uploading</span>}\r\n <div class=\"ch-measure\"></div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderFileInfo(item: UploadedFile, showInfo: string) {\r\n let displayedInfo = \"\";\r\n if (showInfo === \"time\" && item.lastUpdated) {\r\n displayedInfo = item.lastUpdated;\r\n } else if (showInfo === \"size\" && item.size) {\r\n displayedInfo = item.size;\r\n }\r\n\r\n return <div class=\"file-info\">{displayedInfo}</div>;\r\n }\r\n\r\n renderActionMenu(item: UploadedFile) {\r\n const defaultFileActions = \"download delete\";\r\n const availableActions = item.fileActions || defaultFileActions;\r\n const previewItem = (\r\n <wm-menuitem icon=\"f208\" onClick={() => this.previewFile(item)}>\r\n {this.previewActionMessage}\r\n </wm-menuitem>\r\n );\r\n const downloadItem = (\r\n <wm-menuitem icon=\"f1da\" onClick={() => this.downloadFile(item)}>\r\n {this.downloadActionMessage}\r\n </wm-menuitem>\r\n );\r\n const deleteItem = (\r\n <wm-menuitem icon=\"f1c0\" onClick={() => this.deleteFile(item)}>\r\n {this.deleteActionMessage}\r\n </wm-menuitem>\r\n );\r\n return (\r\n <wm-action-menu\r\n action-menu-type=\"icon\"\r\n tooltip={this.actionMenuLabel}\r\n tooltip-position=\"bottom\"\r\n label-for-identical-buttons={`${item.name} ${this.actionMenuLabel}`}\r\n >\r\n {availableActions.includes(\"preview\") && previewItem}\r\n {availableActions.includes(\"download\") && downloadItem}\r\n {availableActions.includes(\"delete\") && deleteItem}\r\n </wm-action-menu>\r\n );\r\n }\r\n\r\n renderFileActionButtons(item: UploadedFile) {\r\n const defaultFileActions = \"download delete\";\r\n const availableActions = item.fileActions || defaultFileActions;\r\n\r\n const previewButton = (\r\n <wm-button\r\n class=\"preview-button\"\r\n button-type=\"icononly\"\r\n tooltip={this.previewButtonTooltip}\r\n tooltip-position=\"bottom\"\r\n label-for-identical-buttons={`preview ${item.name}`}\r\n icon=\"f208\"\r\n onClick={() => this.previewFile(item)}\r\n ></wm-button>\r\n );\r\n const downloadButton = (\r\n <wm-button\r\n class=\"download-button\"\r\n button-type=\"icononly\"\r\n tooltip={this.downloadButtonTooltip}\r\n tooltip-position=\"bottom\"\r\n label-for-identical-buttons={`download ${item.name}`}\r\n icon=\"f1da\"\r\n onClick={() => this.downloadFile(item)}\r\n ></wm-button>\r\n );\r\n const deleteButton = (\r\n <wm-button\r\n class=\"delete-button\"\r\n button-type=\"icononly\"\r\n tooltip={this.deleteButtonTooltip}\r\n tooltip-position=\"bottom\"\r\n label-for-identical-buttons={`delete ${item.name}`}\r\n icon=\"f1c0\"\r\n onClick={() => this.deleteFile(item)}\r\n ></wm-button>\r\n );\r\n\r\n return (\r\n <div class=\"file-controls\">\r\n {availableActions.includes(\"preview\") && previewButton}\r\n {availableActions.includes(\"download\") && downloadButton}\r\n {availableActions.includes(\"delete\") && deleteButton}\r\n </div>\r\n );\r\n }\r\n\r\n renderFileInProgress(item: UploadedFile) {\r\n const filename = item.type ? `${item.name}.${item.type}` : item.name;\r\n return (\r\n <div class=\"file-wrapper\">\r\n <div class=\"file --progress\">\r\n <div\r\n class=\"progress\"\r\n style={{\r\n background: `linear-gradient(to right, rgba(67, 126, 142, 1) ${item.progress}%, transparent ${item.progress}%)`,\r\n }}\r\n ></div>\r\n {this.renderFileName(filename, this.isUploading)}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderFileControls(item: UploadedFile) {\r\n const hasSingleFileAction = item.fileActions && item.fileActions.split(\" \").length === 1;\r\n const showActionMenu = this.isCondensed && !hasSingleFileAction;\r\n\r\n return showActionMenu ? this.renderActionMenu(item) : this.renderFileActionButtons(item);\r\n }\r\n\r\n renderFile(item: UploadedFile) {\r\n const filename = item.type ? `${item.name}.${item.type}` : item.name;\r\n const showCheckmark = !this.isWithinLegacyUploader && item.progress === 100;\r\n\r\n return (\r\n <div class={`file-wrapper ${showCheckmark ? \"checked\" : \"\"}`}>\r\n <div class={`file ${this.errorMessage ? \"--error\" : \"\"}`}>\r\n {this.renderFileName(filename, this.isUploading)}\r\n {!this.errorMessage && (\r\n <div class={`right-group ${this.isCondensed ? \"condensed\" : \"\"}`}>\r\n {this.showInfo !== \"none\" && this.renderFileInfo(item, this.showInfo)}\r\n {item.fileActions !== \"\" && this.renderFileControls(item)}\r\n </div>\r\n )}\r\n {this.errorMessage && (\r\n <wm-button\r\n permanently-delete\r\n button-type=\"textonly\"\r\n label-for-identical-buttons={this.generateClearButtonLabel(item.name)}\r\n onClick={() => this.wmFileClearErrorClicked.emit({ name: item.name })}\r\n >\r\n {this.clearButtonText}\r\n </wm-button>\r\n )}\r\n </div>\r\n {this.errorMessage && <div class=\"error-message\">{this.errorMessage}</div>}\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <Host role=\"listitem\">\r\n {this.isUploading ? this.renderFileInProgress(this.fileData) : this.renderFile(this.fileData)}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
1
|
+
{"file":"wm-file.entry.cjs.js","mappings":"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","names":["debounce","forceUpdate","intl","showTooltip","h","hideTooltip","Host"],"sources":["./src/components/wm-file/wm-file.scss?tag=wm-file&encapsulation=shadow","./src/components/wm-file/wm-file.tsx"],"sourcesContent":[":host,\nwm-file {\n display: block;\n width: 100%;\n}\n.file-wrapper {\n font-size: rem-calc(14);\n position: relative;\n list-style: none;\n\n .file {\n min-width: 300px;\n @include border-radius(3px);\n height: rem-calc(56);\n padding: 0 rem-calc(20);\n position: relative; // for progress bar\n background: $background;\n border: 1px solid rgb(107, 107, 107);\n\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .filename {\n white-space: nowrap;\n }\n\n .left-group {\n overflow: hidden;\n }\n\n .right-group {\n display: flex;\n align-items: center;\n padding-left: rem-calc(80);\n gap: rem-calc(16);\n\n &.condensed {\n padding-left: rem-calc(40);\n }\n\n .file-controls {\n display: flex;\n gap: rem-calc(16);\n }\n .file-info {\n white-space: nowrap;\n }\n }\n\n &.--error {\n border: 1px solid $error-color;\n background-color: #f5ebea;\n height: rem-calc(60);\n }\n }\n\n &.checked {\n .file:after {\n @include mdi-icon;\n content: \"\\f133\";\n position: absolute;\n right: calc(-16px + -28px);\n color: $uploader-checkmark-background;\n font-size: 28px;\n line-height: 1;\n }\n }\n}\n\n.name-wrapper {\n overflow: hidden;\n}\n\n.progress {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n height: 8px;\n}\n\n.error-message {\n @include errorMessage;\n}\n\n.sr-only {\n @include srOnly;\n}\n\n.ch-measure {\n // used to get the measurement of a single character, for truncation calculations\n width: 1ch !important;\n visibility: hidden;\n}\n","import { h, Component, Element, Event, EventEmitter, Prop, State, Host, forceUpdate } from \"@stencil/core\";\nimport { debounce, hideTooltip, intl, showTooltip } from \"../../global/functions\";\nimport { UploadedFile } from \"../../global/interfaces\";\n\n@Component({\n tag: \"wm-file\",\n styleUrl: \"wm-file.scss\",\n shadow: { delegatesFocus: true },\n})\nexport class File {\n @Element() el!: HTMLWmFileElement;\n @Prop() file?: string;\n @Prop() showInfo: \"time\" | \"size\" | \"none\" = \"time\";\n @Prop() errorMessage?: string;\n @State() isCondensed: boolean = false;\n @Event() wmIntFilePreviewed!: EventEmitter<string>;\n @Event() wmIntFileDownloaded!: EventEmitter<string>;\n @Event() wmIntFileDeleted!: EventEmitter<string>;\n @Event() wmFileClearErrorClicked!: EventEmitter; // undocumented event, for communication with wm-uploader\n // the file component is used within wm-uploader, which still includes legacy types 1 and 2\n // some new features are not included in these legacy types, and must use the below in conditions\n private isWithinLegacyUploader: boolean = false;\n\n get fileData(): UploadedFile {\n let data = this.file ? JSON.parse(this.file) : null;\n\n // sometimes JSON numbers can be received as strings, make sure progress is always a number\n if (data && data.progress && typeof data.progress === \"string\" && data.progress.match(/^[0-9]+$/)) {\n data.progress = parseInt(data.progress.toString());\n }\n return data;\n }\n\n get isUploading(): boolean {\n return this.fileData && this.fileData.hasOwnProperty(\"progress\") && this.fileData.progress! < 100;\n }\n\n get singleCharacterWidth() {\n return this.el.shadowRoot!.querySelector(\".ch-measure\")!.clientWidth;\n }\n\n get previewButtonTooltip() {\n return intl.formatMessage({\n id: \"file.previewButtonTooltip\",\n defaultMessage: \"Preview\",\n description: \"Tooltip of a button that triggers a file to be previewed\",\n });\n }\n\n get downloadButtonTooltip() {\n return intl.formatMessage({\n id: \"file.downloadButtonTooltip\",\n defaultMessage: \"Download\",\n description: \"Tooltip of a button that triggers a file to be downloaded\",\n });\n }\n\n get deleteButtonTooltip() {\n return intl.formatMessage({\n id: \"file.deleteButtonTooltip\",\n defaultMessage: \"Delete\",\n description: \"Tooltip of a button that triggers a file to be deleted\",\n });\n }\n\n get previewActionMessage() {\n return intl.formatMessage({\n id: \"file.previewAction\",\n defaultMessage: \"Preview File\",\n description: \"Label of a button that triggers a file to be previewed\",\n });\n }\n\n get downloadActionMessage() {\n return intl.formatMessage({\n id: \"file.downloadAction\",\n defaultMessage: \"Download File\",\n description: \"Label of a button that triggers a file to be downloaded\",\n });\n }\n\n get deleteActionMessage() {\n return intl.formatMessage({\n id: \"file.deleteAction\",\n defaultMessage: \"Delete File\",\n description: \"Label of a button that triggers a file to be delete\",\n });\n }\n\n get actionMenuLabel() {\n return intl.formatMessage({\n id: \"file.actionMenuLabel\",\n defaultMessage: \"Actions\",\n description: \"Label of a button that opens a menu of file actions\",\n });\n }\n\n get clearButtonText() {\n return intl.formatMessage({\n id: \"file.clearErrorText\",\n defaultMessage: \"Clear\",\n description: \"Text for a button used to clear an error\",\n });\n }\n\n generateClearButtonLabel(filename: string) {\n return intl.formatMessage(\n {\n id: \"file.clearErrorLabel\",\n defaultMessage: \"Clear {fileName} error\",\n description: \"Label for a button used to clear an error, including filename\",\n },\n { fileName: filename }\n );\n }\n\n componentWillLoad() {\n const shadowRootHost = (this.el.getRootNode() as ShadowRoot).host;\n\n if (shadowRootHost && shadowRootHost.nodeName === \"WM-UPLOADER\") {\n if ((shadowRootHost as HTMLWmUploaderElement).type || (shadowRootHost as HTMLWmUploaderElement).uploaderType) {\n this.isWithinLegacyUploader = true;\n }\n }\n\n // rerender on resize in case layout needs to change\n const resizeObserver = new ResizeObserver(() => this.debouncedResize());\n resizeObserver.observe(this.el);\n }\n\n componentDidRender() {\n this.truncateFileName(this.el.shadowRoot!.querySelector(\".file\")!);\n }\n\n debouncedResize = debounce(() => {\n this.isCondensed = this.el.clientWidth < 500;\n // rerender to show filename truncation changes\n forceUpdate(this.el);\n }, 50);\n\n previewFile(file: UploadedFile) {\n this.wmIntFilePreviewed.emit(file.id);\n }\n\n downloadFile(file: UploadedFile) {\n this.wmIntFileDownloaded.emit(file.id);\n }\n\n deleteFile(file: UploadedFile) {\n this.wmIntFileDeleted.emit(file.id);\n }\n\n truncateFileName(file: Element) {\n const leftGroup = file.querySelector(\".left-group\");\n const leftBoundary = leftGroup!.getBoundingClientRect().left;\n const rightGroup = file.querySelector(\".right-group\");\n const rightBoundary = rightGroup\n ? rightGroup.getBoundingClientRect().left\n : file.getBoundingClientRect().right - 20;\n const filenameEl = file.querySelector(\".filename\") as HTMLElement;\n const availableSpace = rightBoundary - leftBoundary;\n\n let filename = filenameEl.dataset.filename!;\n const canFitText = availableSpace > filename.length * this.singleCharacterWidth;\n\n if (!canFitText) {\n const extension = filename.slice(filename.lastIndexOf(\".\"));\n const numFittingCharacters = Math.floor(availableSpace / this.singleCharacterWidth);\n\n // three ellipses, three constant characters, extension\n const postEllipsesLength = 3 + 3 + extension.length;\n let preEllipsesLength = Math.max(2, numFittingCharacters - postEllipsesLength);\n const preEllipsesText = filename.slice(0, preEllipsesLength);\n const postEllipsesText = filename.slice(filename.indexOf(extension) - 3, filename.length);\n filename = `${preEllipsesText.trim()}...${postEllipsesText.trim()}`;\n }\n\n filenameEl.textContent = filename;\n }\n\n handleFilenameMouseEnter(ev: MouseEvent, filename: string) {\n // only show tooltip if file name is being truncated (has ellipses)\n if ((ev.target as HTMLElement).textContent!.includes(\"...\")) {\n showTooltip(\"bottom\", ev.target as HTMLElement, filename);\n }\n }\n\n renderFileName(filename: string, isUploading: boolean) {\n return (\n <div class=\"left-group\">\n <div class=\"name-wrapper\">\n <span class=\"sr-only\">{filename}</span>\n <span\n aria-hidden=\"true\"\n class=\"filename\"\n data-filename={filename}\n onMouseEnter={(ev) => this.handleFilenameMouseEnter(ev, filename)}\n onMouseLeave={() => hideTooltip()}\n ></span>\n {isUploading && <span class=\"sr-only\">uploading</span>}\n <div class=\"ch-measure\"></div>\n </div>\n </div>\n );\n }\n\n renderFileInfo(item: UploadedFile, showInfo: string) {\n let displayedInfo = \"\";\n if (showInfo === \"time\" && item.lastUpdated) {\n displayedInfo = item.lastUpdated;\n } else if (showInfo === \"size\" && item.size) {\n displayedInfo = item.size;\n }\n\n return <div class=\"file-info\">{displayedInfo}</div>;\n }\n\n renderActionMenu(item: UploadedFile) {\n const defaultFileActions = \"download delete\";\n const availableActions = item.fileActions || defaultFileActions;\n const previewItem = (\n <wm-menuitem icon=\"f208\" onClick={() => this.previewFile(item)}>\n {this.previewActionMessage}\n </wm-menuitem>\n );\n const downloadItem = (\n <wm-menuitem icon=\"f1da\" onClick={() => this.downloadFile(item)}>\n {this.downloadActionMessage}\n </wm-menuitem>\n );\n const deleteItem = (\n <wm-menuitem icon=\"f1c0\" onClick={() => this.deleteFile(item)}>\n {this.deleteActionMessage}\n </wm-menuitem>\n );\n return (\n <wm-action-menu\n action-menu-type=\"icon\"\n tooltip={this.actionMenuLabel}\n tooltip-position=\"bottom\"\n label-for-identical-buttons={`${item.name} ${this.actionMenuLabel}`}\n >\n {availableActions.includes(\"preview\") && previewItem}\n {availableActions.includes(\"download\") && downloadItem}\n {availableActions.includes(\"delete\") && deleteItem}\n </wm-action-menu>\n );\n }\n\n renderFileActionButtons(item: UploadedFile) {\n const defaultFileActions = \"download delete\";\n const availableActions = item.fileActions || defaultFileActions;\n\n const previewButton = (\n <wm-button\n class=\"preview-button\"\n button-type=\"icononly\"\n tooltip={this.previewButtonTooltip}\n tooltip-position=\"bottom\"\n label-for-identical-buttons={`preview ${item.name}`}\n icon=\"f208\"\n onClick={() => this.previewFile(item)}\n ></wm-button>\n );\n const downloadButton = (\n <wm-button\n class=\"download-button\"\n button-type=\"icononly\"\n tooltip={this.downloadButtonTooltip}\n tooltip-position=\"bottom\"\n label-for-identical-buttons={`download ${item.name}`}\n icon=\"f1da\"\n onClick={() => this.downloadFile(item)}\n ></wm-button>\n );\n const deleteButton = (\n <wm-button\n class=\"delete-button\"\n button-type=\"icononly\"\n tooltip={this.deleteButtonTooltip}\n tooltip-position=\"bottom\"\n label-for-identical-buttons={`delete ${item.name}`}\n icon=\"f1c0\"\n onClick={() => this.deleteFile(item)}\n ></wm-button>\n );\n\n return (\n <div class=\"file-controls\">\n {availableActions.includes(\"preview\") && previewButton}\n {availableActions.includes(\"download\") && downloadButton}\n {availableActions.includes(\"delete\") && deleteButton}\n </div>\n );\n }\n\n renderFileInProgress(item: UploadedFile) {\n const filename = item.type ? `${item.name}.${item.type}` : item.name;\n return (\n <div class=\"file-wrapper\">\n <div class=\"file --progress\">\n <div\n class=\"progress\"\n style={{\n background: `linear-gradient(to right, rgba(67, 126, 142, 1) ${item.progress}%, transparent ${item.progress}%)`,\n }}\n ></div>\n {this.renderFileName(filename, this.isUploading)}\n </div>\n </div>\n );\n }\n\n renderFileControls(item: UploadedFile) {\n const hasSingleFileAction = item.fileActions && item.fileActions.split(\" \").length === 1;\n const showActionMenu = this.isCondensed && !hasSingleFileAction;\n\n return showActionMenu ? this.renderActionMenu(item) : this.renderFileActionButtons(item);\n }\n\n renderFile(item: UploadedFile) {\n const filename = item.type ? `${item.name}.${item.type}` : item.name;\n const showCheckmark = !this.isWithinLegacyUploader && item.progress === 100;\n\n return (\n <div class={`file-wrapper ${showCheckmark ? \"checked\" : \"\"}`}>\n <div class={`file ${this.errorMessage ? \"--error\" : \"\"}`}>\n {this.renderFileName(filename, this.isUploading)}\n {!this.errorMessage && (\n <div class={`right-group ${this.isCondensed ? \"condensed\" : \"\"}`}>\n {this.showInfo !== \"none\" && this.renderFileInfo(item, this.showInfo)}\n {item.fileActions !== \"\" && this.renderFileControls(item)}\n </div>\n )}\n {this.errorMessage && (\n <wm-button\n permanently-delete\n button-type=\"textonly\"\n label-for-identical-buttons={this.generateClearButtonLabel(item.name)}\n onClick={() => this.wmFileClearErrorClicked.emit({ name: item.name })}\n >\n {this.clearButtonText}\n </wm-button>\n )}\n </div>\n {this.errorMessage && <div class=\"error-message\">{this.errorMessage}</div>}\n </div>\n );\n }\n\n render() {\n return (\n <Host role=\"listitem\">\n {this.isUploading ? this.renderFileInProgress(this.fileData) : this.renderFile(this.fileData)}\n </Host>\n );\n }\n}\n"],"version":3}
|