@refinitiv-ui/elements 5.3.3 → 5.7.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/CHANGELOG.md +70 -0
- package/lib/accordion/custom-elements.json +49 -0
- package/lib/accordion/custom-elements.md +18 -0
- package/lib/accordion/index.d.ts +76 -0
- package/lib/accordion/index.js +136 -0
- package/lib/accordion/themes/halo/dark/index.js +3 -0
- package/lib/accordion/themes/halo/light/index.js +3 -0
- package/lib/accordion/themes/solar/charcoal/index.js +3 -0
- package/lib/accordion/themes/solar/pearl/index.js +3 -0
- package/lib/appstate-bar/custom-elements.json +49 -0
- package/lib/appstate-bar/custom-elements.md +22 -0
- package/lib/appstate-bar/index.d.ts +65 -0
- package/lib/appstate-bar/index.js +100 -0
- package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
- package/lib/appstate-bar/themes/halo/light/index.js +3 -0
- package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
- package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
- package/lib/autosuggest/custom-elements.json +233 -0
- package/lib/autosuggest/custom-elements.md +47 -0
- package/lib/autosuggest/helpers/types.d.ts +54 -0
- package/lib/autosuggest/helpers/types.js +1 -0
- package/lib/autosuggest/helpers/utils.d.ts +39 -0
- package/lib/autosuggest/helpers/utils.js +75 -0
- package/lib/autosuggest/index.d.ts +534 -0
- package/lib/autosuggest/index.js +1251 -0
- package/lib/autosuggest/themes/halo/dark/index.js +5 -0
- package/lib/autosuggest/themes/halo/light/index.js +5 -0
- package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
- package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
- package/lib/button/custom-elements.json +119 -0
- package/lib/button/custom-elements.md +23 -0
- package/lib/button/index.d.ts +132 -0
- package/lib/button/index.js +223 -0
- package/lib/button/themes/halo/dark/index.js +3 -0
- package/lib/button/themes/halo/light/index.js +3 -0
- package/lib/button/themes/solar/charcoal/index.js +3 -0
- package/lib/button/themes/solar/pearl/index.js +3 -0
- package/lib/button-bar/custom-elements.json +26 -0
- package/lib/button-bar/custom-elements.md +9 -0
- package/lib/button-bar/index.d.ts +76 -0
- package/lib/button-bar/index.js +155 -0
- package/lib/button-bar/themes/halo/dark/index.js +3 -0
- package/lib/button-bar/themes/halo/light/index.js +3 -0
- package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
- package/lib/button-bar/themes/solar/pearl/index.js +3 -0
- package/lib/calendar/constants.d.ts +22 -0
- package/lib/calendar/constants.js +23 -0
- package/lib/calendar/custom-elements.json +199 -0
- package/lib/calendar/custom-elements.md +35 -0
- package/lib/calendar/index.d.ts +321 -0
- package/lib/calendar/index.js +906 -0
- package/lib/calendar/locales.d.ts +1 -0
- package/lib/calendar/locales.js +40 -0
- package/lib/calendar/themes/halo/dark/index.js +3 -0
- package/lib/calendar/themes/halo/light/index.js +3 -0
- package/lib/calendar/themes/solar/charcoal/index.js +3 -0
- package/lib/calendar/themes/solar/pearl/index.js +3 -0
- package/lib/calendar/types.d.ts +29 -0
- package/lib/calendar/types.js +1 -0
- package/lib/calendar/utils.d.ts +42 -0
- package/lib/calendar/utils.js +119 -0
- package/lib/canvas/custom-elements.json +69 -0
- package/lib/canvas/custom-elements.md +27 -0
- package/lib/canvas/index.d.ts +100 -0
- package/lib/canvas/index.js +172 -0
- package/lib/canvas/themes/halo/dark/index.js +2 -0
- package/lib/canvas/themes/halo/light/index.js +2 -0
- package/lib/canvas/themes/solar/charcoal/index.js +2 -0
- package/lib/canvas/themes/solar/pearl/index.js +2 -0
- package/lib/card/custom-elements.json +59 -0
- package/lib/card/custom-elements.md +24 -0
- package/lib/card/helpers/types.d.ts +12 -0
- package/lib/card/helpers/types.js +1 -0
- package/lib/card/index.d.ts +140 -0
- package/lib/card/index.js +246 -0
- package/lib/card/themes/halo/dark/index.js +5 -0
- package/lib/card/themes/halo/light/index.js +5 -0
- package/lib/card/themes/solar/charcoal/index.js +5 -0
- package/lib/card/themes/solar/pearl/index.js +5 -0
- package/lib/chart/custom-elements.json +42 -0
- package/lib/chart/custom-elements.md +16 -0
- package/lib/chart/helpers/index.d.ts +2 -0
- package/lib/chart/helpers/index.js +2 -0
- package/lib/chart/helpers/legend.d.ts +5 -0
- package/lib/chart/helpers/legend.js +78 -0
- package/lib/chart/helpers/merge.d.ts +15 -0
- package/lib/chart/helpers/merge.js +28 -0
- package/lib/chart/helpers/types.d.ts +69 -0
- package/lib/chart/helpers/types.js +1 -0
- package/lib/chart/index.d.ts +187 -0
- package/lib/chart/index.js +491 -0
- package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
- package/lib/chart/plugins/doughnut-center-label.js +196 -0
- package/lib/chart/themes/halo/dark/index.js +4 -0
- package/lib/chart/themes/halo/light/index.js +4 -0
- package/lib/chart/themes/solar/charcoal/index.js +4 -0
- package/lib/chart/themes/solar/pearl/index.js +4 -0
- package/lib/checkbox/custom-elements.json +67 -0
- package/lib/checkbox/custom-elements.md +18 -0
- package/lib/checkbox/index.d.ts +95 -0
- package/lib/checkbox/index.js +193 -0
- package/lib/checkbox/themes/halo/dark/index.js +4 -0
- package/lib/checkbox/themes/halo/light/index.js +4 -0
- package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
- package/lib/checkbox/themes/solar/pearl/index.js +4 -0
- package/lib/clock/custom-elements.json +121 -0
- package/lib/clock/custom-elements.md +28 -0
- package/lib/clock/index.d.ts +319 -0
- package/lib/clock/index.js +581 -0
- package/lib/clock/themes/halo/dark/index.js +2 -0
- package/lib/clock/themes/halo/light/index.js +2 -0
- package/lib/clock/themes/solar/charcoal/index.js +2 -0
- package/lib/clock/themes/solar/pearl/index.js +2 -0
- package/lib/clock/utils/TickManager.d.ts +14 -0
- package/lib/clock/utils/TickManager.js +66 -0
- package/lib/clock/utils/timestamps.d.ts +6 -0
- package/lib/clock/utils/timestamps.js +6 -0
- package/lib/collapse/custom-elements.json +79 -0
- package/lib/collapse/custom-elements.md +27 -0
- package/lib/collapse/index.d.ts +119 -0
- package/lib/collapse/index.js +197 -0
- package/lib/collapse/themes/halo/dark/index.js +5 -0
- package/lib/collapse/themes/halo/light/index.js +5 -0
- package/lib/collapse/themes/solar/charcoal/index.js +5 -0
- package/lib/collapse/themes/solar/pearl/index.js +5 -0
- package/lib/color-dialog/custom-elements.json +193 -0
- package/lib/color-dialog/custom-elements.md +39 -0
- package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
- package/lib/color-dialog/elements/color-palettes.js +101 -0
- package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
- package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
- package/lib/color-dialog/elements/palettes.d.ts +65 -0
- package/lib/color-dialog/elements/palettes.js +132 -0
- package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
- package/lib/color-dialog/helpers/color-helpers.js +161 -0
- package/lib/color-dialog/helpers/value-model.d.ts +75 -0
- package/lib/color-dialog/helpers/value-model.js +141 -0
- package/lib/color-dialog/index.d.ts +232 -0
- package/lib/color-dialog/index.js +459 -0
- package/lib/color-dialog/themes/halo/dark/index.js +7 -0
- package/lib/color-dialog/themes/halo/light/index.js +7 -0
- package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
- package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
- package/lib/combo-box/custom-elements.json +210 -0
- package/lib/combo-box/custom-elements.md +35 -0
- package/lib/combo-box/helpers/filter.d.ts +10 -0
- package/lib/combo-box/helpers/filter.js +29 -0
- package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
- package/lib/combo-box/helpers/keyboard-event.js +19 -0
- package/lib/combo-box/helpers/types.d.ts +11 -0
- package/lib/combo-box/helpers/types.js +1 -0
- package/lib/combo-box/index.d.ts +523 -0
- package/lib/combo-box/index.js +1146 -0
- package/lib/combo-box/themes/halo/dark/index.js +8 -0
- package/lib/combo-box/themes/halo/light/index.js +8 -0
- package/lib/combo-box/themes/solar/charcoal/index.js +8 -0
- package/lib/combo-box/themes/solar/pearl/index.js +8 -0
- package/lib/counter/custom-elements.json +35 -0
- package/lib/counter/custom-elements.md +11 -0
- package/lib/counter/index.d.ts +89 -0
- package/lib/counter/index.js +152 -0
- package/lib/counter/themes/halo/dark/index.js +3 -0
- package/lib/counter/themes/halo/light/index.js +3 -0
- package/lib/counter/themes/solar/charcoal/index.js +3 -0
- package/lib/counter/themes/solar/pearl/index.js +3 -0
- package/lib/counter/utils.d.ts +13 -0
- package/lib/counter/utils.js +52 -0
- package/lib/datetime-picker/custom-elements.json +333 -0
- package/lib/datetime-picker/custom-elements.md +49 -0
- package/lib/datetime-picker/index.d.ts +498 -0
- package/lib/datetime-picker/index.js +1164 -0
- package/lib/datetime-picker/locales.d.ts +8 -0
- package/lib/datetime-picker/locales.js +57 -0
- package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
- package/lib/datetime-picker/themes/halo/light/index.js +7 -0
- package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
- package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
- package/lib/datetime-picker/types.d.ts +3 -0
- package/lib/datetime-picker/types.js +1 -0
- package/lib/datetime-picker/utils.d.ts +55 -0
- package/lib/datetime-picker/utils.js +92 -0
- package/lib/dialog/custom-elements.json +136 -0
- package/lib/dialog/custom-elements.md +47 -0
- package/lib/dialog/draggable-element.d.ts +14 -0
- package/lib/dialog/draggable-element.js +221 -0
- package/lib/dialog/index.d.ts +199 -0
- package/lib/dialog/index.js +331 -0
- package/lib/dialog/themes/halo/dark/index.js +7 -0
- package/lib/dialog/themes/halo/light/index.js +7 -0
- package/lib/dialog/themes/solar/charcoal/index.js +7 -0
- package/lib/dialog/themes/solar/pearl/index.js +7 -0
- package/lib/email-field/custom-elements.json +199 -0
- package/lib/email-field/custom-elements.md +35 -0
- package/lib/email-field/index.d.ts +152 -0
- package/lib/email-field/index.js +286 -0
- package/lib/email-field/themes/halo/dark/index.js +3 -0
- package/lib/email-field/themes/halo/light/index.js +3 -0
- package/lib/email-field/themes/solar/charcoal/index.js +3 -0
- package/lib/email-field/themes/solar/pearl/index.js +3 -0
- package/lib/events.d.ts +121 -0
- package/lib/events.js +1 -0
- package/lib/flag/custom-elements.json +35 -0
- package/lib/flag/custom-elements.md +10 -0
- package/lib/flag/index.d.ts +94 -0
- package/lib/flag/index.js +166 -0
- package/lib/flag/themes/halo/dark/index.js +2 -0
- package/lib/flag/themes/halo/light/index.js +2 -0
- package/lib/flag/themes/solar/charcoal/index.js +2 -0
- package/lib/flag/themes/solar/pearl/index.js +2 -0
- package/lib/flag/utils/FlagLoader.d.ts +47 -0
- package/lib/flag/utils/FlagLoader.js +86 -0
- package/lib/header/custom-elements.json +36 -0
- package/lib/header/custom-elements.md +18 -0
- package/lib/header/index.d.ts +46 -0
- package/lib/header/index.js +73 -0
- package/lib/header/themes/halo/dark/index.js +2 -0
- package/lib/header/themes/halo/light/index.js +2 -0
- package/lib/header/themes/solar/charcoal/index.js +2 -0
- package/lib/header/themes/solar/pearl/index.js +2 -0
- package/lib/heatmap/custom-elements.json +151 -0
- package/lib/heatmap/custom-elements.md +26 -0
- package/lib/heatmap/helpers/color.d.ts +30 -0
- package/lib/heatmap/helpers/color.js +68 -0
- package/lib/heatmap/helpers/text.d.ts +26 -0
- package/lib/heatmap/helpers/text.js +91 -0
- package/lib/heatmap/helpers/track.d.ts +102 -0
- package/lib/heatmap/helpers/track.js +160 -0
- package/lib/heatmap/helpers/types.d.ts +40 -0
- package/lib/heatmap/helpers/types.js +1 -0
- package/lib/heatmap/index.d.ts +453 -0
- package/lib/heatmap/index.js +1103 -0
- package/lib/heatmap/themes/halo/dark/index.js +4 -0
- package/lib/heatmap/themes/halo/light/index.js +4 -0
- package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
- package/lib/heatmap/themes/solar/pearl/index.js +4 -0
- package/lib/icon/custom-elements.json +36 -0
- package/lib/icon/custom-elements.md +8 -0
- package/lib/icon/index.d.ts +88 -0
- package/lib/icon/index.js +169 -0
- package/lib/icon/themes/halo/dark/index.js +2 -0
- package/lib/icon/themes/halo/light/index.js +2 -0
- package/lib/icon/themes/solar/charcoal/index.js +2 -0
- package/lib/icon/themes/solar/pearl/index.js +2 -0
- package/lib/icon/utils/IconLoader.d.ts +52 -0
- package/lib/icon/utils/IconLoader.js +93 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/interactive-chart/custom-elements.json +86 -0
- package/lib/interactive-chart/custom-elements.md +32 -0
- package/lib/interactive-chart/helpers/merge.d.ts +15 -0
- package/lib/interactive-chart/helpers/merge.js +28 -0
- package/lib/interactive-chart/helpers/types.d.ts +45 -0
- package/lib/interactive-chart/helpers/types.js +6 -0
- package/lib/interactive-chart/index.d.ts +380 -0
- package/lib/interactive-chart/index.js +1090 -0
- package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
- package/lib/interactive-chart/themes/halo/light/index.js +3 -0
- package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
- package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
- package/lib/item/custom-elements.json +151 -0
- package/lib/item/custom-elements.md +29 -0
- package/lib/item/helpers/types.d.ts +57 -0
- package/lib/item/helpers/types.js +1 -0
- package/lib/item/index.d.ts +158 -0
- package/lib/item/index.js +271 -0
- package/lib/item/themes/halo/dark/index.js +4 -0
- package/lib/item/themes/halo/light/index.js +4 -0
- package/lib/item/themes/solar/charcoal/index.js +4 -0
- package/lib/item/themes/solar/pearl/index.js +4 -0
- package/lib/jsx.d.ts +223 -0
- package/lib/label/custom-elements.json +52 -0
- package/lib/label/custom-elements.md +11 -0
- package/lib/label/index.d.ts +102 -0
- package/lib/label/index.js +244 -0
- package/lib/label/themes/halo/dark/index.js +3 -0
- package/lib/label/themes/halo/light/index.js +3 -0
- package/lib/label/themes/solar/charcoal/index.js +3 -0
- package/lib/label/themes/solar/pearl/index.js +3 -0
- package/lib/layout/custom-elements.json +163 -0
- package/lib/layout/custom-elements.md +26 -0
- package/lib/layout/index.d.ts +107 -0
- package/lib/layout/index.js +212 -0
- package/lib/layout/themes/halo/dark/index.js +2 -0
- package/lib/layout/themes/halo/light/index.js +2 -0
- package/lib/layout/themes/solar/charcoal/index.js +2 -0
- package/lib/layout/themes/solar/pearl/index.js +2 -0
- package/lib/led-gauge/custom-elements.json +113 -0
- package/lib/led-gauge/custom-elements.md +17 -0
- package/lib/led-gauge/index.d.ts +143 -0
- package/lib/led-gauge/index.js +437 -0
- package/lib/led-gauge/themes/halo/dark/index.js +3 -0
- package/lib/led-gauge/themes/halo/light/index.js +3 -0
- package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
- package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
- package/lib/list/custom-elements.json +111 -0
- package/lib/list/custom-elements.md +30 -0
- package/lib/list/extensible-function.d.ts +8 -0
- package/lib/list/extensible-function.js +13 -0
- package/lib/list/helpers/list-renderer.d.ts +9 -0
- package/lib/list/helpers/list-renderer.js +35 -0
- package/lib/list/helpers/types.d.ts +3 -0
- package/lib/list/helpers/types.js +1 -0
- package/lib/list/index.d.ts +292 -0
- package/lib/list/index.js +600 -0
- package/lib/list/renderer.d.ts +36 -0
- package/lib/list/renderer.js +9 -0
- package/lib/list/themes/halo/dark/index.js +3 -0
- package/lib/list/themes/halo/light/index.js +3 -0
- package/lib/list/themes/solar/charcoal/index.js +3 -0
- package/lib/list/themes/solar/pearl/index.js +3 -0
- package/lib/loader/custom-elements.json +9 -0
- package/lib/loader/custom-elements.md +5 -0
- package/lib/loader/index.d.ts +41 -0
- package/lib/loader/index.js +61 -0
- package/lib/loader/themes/halo/dark/index.js +2 -0
- package/lib/loader/themes/halo/light/index.js +2 -0
- package/lib/loader/themes/solar/charcoal/index.js +2 -0
- package/lib/loader/themes/solar/pearl/index.js +2 -0
- package/lib/multi-input/custom-elements.json +238 -0
- package/lib/multi-input/custom-elements.md +43 -0
- package/lib/multi-input/helpers/types.d.ts +11 -0
- package/lib/multi-input/helpers/types.js +1 -0
- package/lib/multi-input/index.d.ts +297 -0
- package/lib/multi-input/index.js +590 -0
- package/lib/multi-input/themes/halo/dark/index.js +4 -0
- package/lib/multi-input/themes/halo/light/index.js +4 -0
- package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
- package/lib/multi-input/themes/solar/pearl/index.js +4 -0
- package/lib/notification/custom-elements.json +95 -0
- package/lib/notification/custom-elements.md +26 -0
- package/lib/notification/elements/notification-tray.d.ts +97 -0
- package/lib/notification/elements/notification-tray.js +167 -0
- package/lib/notification/elements/notification.d.ts +90 -0
- package/lib/notification/elements/notification.js +154 -0
- package/lib/notification/helpers/status.d.ts +30 -0
- package/lib/notification/helpers/status.js +130 -0
- package/lib/notification/helpers/types.d.ts +10 -0
- package/lib/notification/helpers/types.js +1 -0
- package/lib/notification/index.d.ts +2 -0
- package/lib/notification/index.js +2 -0
- package/lib/notification/themes/halo/dark/index.js +5 -0
- package/lib/notification/themes/halo/light/index.js +5 -0
- package/lib/notification/themes/solar/charcoal/index.js +5 -0
- package/lib/notification/themes/solar/pearl/index.js +5 -0
- package/lib/number-field/custom-elements.json +200 -0
- package/lib/number-field/custom-elements.md +37 -0
- package/lib/number-field/index.d.ts +294 -0
- package/lib/number-field/index.js +707 -0
- package/lib/number-field/themes/halo/dark/index.js +3 -0
- package/lib/number-field/themes/halo/light/index.js +3 -0
- package/lib/number-field/themes/solar/charcoal/index.js +3 -0
- package/lib/number-field/themes/solar/pearl/index.js +3 -0
- package/lib/overlay/custom-elements.json +345 -0
- package/lib/overlay/custom-elements.md +54 -0
- package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
- package/lib/overlay/elements/overlay-backdrop.js +64 -0
- package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
- package/lib/overlay/elements/overlay-viewport.js +52 -0
- package/lib/overlay/elements/overlay.d.ts +403 -0
- package/lib/overlay/elements/overlay.js +1426 -0
- package/lib/overlay/helpers/functions.d.ts +13 -0
- package/lib/overlay/helpers/functions.js +16 -0
- package/lib/overlay/helpers/types.d.ts +97 -0
- package/lib/overlay/helpers/types.js +16 -0
- package/lib/overlay/index.d.ts +2 -0
- package/lib/overlay/index.js +1 -0
- package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
- package/lib/overlay/managers/backdrop-manager.js +96 -0
- package/lib/overlay/managers/close-manager.d.ts +54 -0
- package/lib/overlay/managers/close-manager.js +138 -0
- package/lib/overlay/managers/focus-manager.d.ts +71 -0
- package/lib/overlay/managers/focus-manager.js +228 -0
- package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
- package/lib/overlay/managers/interaction-lock-manager.js +375 -0
- package/lib/overlay/managers/viewport-manager.d.ts +93 -0
- package/lib/overlay/managers/viewport-manager.js +211 -0
- package/lib/overlay/managers/zindex-manager.d.ts +80 -0
- package/lib/overlay/managers/zindex-manager.js +195 -0
- package/lib/overlay/themes/halo/dark/index.js +4 -0
- package/lib/overlay/themes/halo/light/index.js +4 -0
- package/lib/overlay/themes/solar/charcoal/index.js +4 -0
- package/lib/overlay/themes/solar/pearl/index.js +4 -0
- package/lib/overlay-menu/custom-elements.json +194 -0
- package/lib/overlay-menu/custom-elements.md +44 -0
- package/lib/overlay-menu/helpers/types.d.ts +8 -0
- package/lib/overlay-menu/helpers/types.js +1 -0
- package/lib/overlay-menu/index.d.ts +385 -0
- package/lib/overlay-menu/index.js +933 -0
- package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
- package/lib/overlay-menu/managers/menu-manager.js +240 -0
- package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
- package/lib/overlay-menu/themes/halo/light/index.js +5 -0
- package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
- package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
- package/lib/pagination/custom-elements.json +93 -0
- package/lib/pagination/custom-elements.md +27 -0
- package/lib/pagination/helpers/types.d.ts +9 -0
- package/lib/pagination/helpers/types.js +1 -0
- package/lib/pagination/index.d.ts +207 -0
- package/lib/pagination/index.js +398 -0
- package/lib/pagination/themes/halo/dark/index.js +6 -0
- package/lib/pagination/themes/halo/light/index.js +6 -0
- package/lib/pagination/themes/solar/charcoal/index.js +6 -0
- package/lib/pagination/themes/solar/pearl/index.js +6 -0
- package/lib/panel/custom-elements.json +39 -0
- package/lib/panel/custom-elements.md +11 -0
- package/lib/panel/index.d.ts +48 -0
- package/lib/panel/index.js +74 -0
- package/lib/panel/themes/halo/dark/index.js +2 -0
- package/lib/panel/themes/halo/light/index.js +2 -0
- package/lib/panel/themes/solar/charcoal/index.js +2 -0
- package/lib/panel/themes/solar/pearl/index.js +2 -0
- package/lib/password-field/custom-elements.json +156 -0
- package/lib/password-field/custom-elements.md +31 -0
- package/lib/password-field/index.d.ts +141 -0
- package/lib/password-field/index.js +258 -0
- package/lib/password-field/themes/halo/dark/index.js +3 -0
- package/lib/password-field/themes/halo/light/index.js +3 -0
- package/lib/password-field/themes/solar/charcoal/index.js +3 -0
- package/lib/password-field/themes/solar/pearl/index.js +3 -0
- package/lib/pill/custom-elements.json +95 -0
- package/lib/pill/custom-elements.md +22 -0
- package/lib/pill/index.d.ts +97 -0
- package/lib/pill/index.js +160 -0
- package/lib/pill/themes/halo/dark/index.js +3 -0
- package/lib/pill/themes/halo/light/index.js +3 -0
- package/lib/pill/themes/solar/charcoal/index.js +3 -0
- package/lib/pill/themes/solar/pearl/index.js +3 -0
- package/lib/progress-bar/custom-elements.json +58 -0
- package/lib/progress-bar/custom-elements.md +18 -0
- package/lib/progress-bar/index.d.ts +82 -0
- package/lib/progress-bar/index.js +157 -0
- package/lib/progress-bar/themes/halo/dark/index.js +2 -0
- package/lib/progress-bar/themes/halo/light/index.js +2 -0
- package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
- package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
- package/lib/radio-button/custom-elements.json +82 -0
- package/lib/radio-button/custom-elements.md +19 -0
- package/lib/radio-button/index.d.ts +122 -0
- package/lib/radio-button/index.js +257 -0
- package/lib/radio-button/radio-button-registry.d.ts +22 -0
- package/lib/radio-button/radio-button-registry.js +93 -0
- package/lib/radio-button/themes/halo/dark/index.js +3 -0
- package/lib/radio-button/themes/halo/light/index.js +3 -0
- package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
- package/lib/radio-button/themes/solar/pearl/index.js +3 -0
- package/lib/rating/custom-elements.json +58 -0
- package/lib/rating/custom-elements.md +17 -0
- package/lib/rating/index.d.ts +91 -0
- package/lib/rating/index.js +157 -0
- package/lib/rating/themes/halo/dark/index.js +2 -0
- package/lib/rating/themes/halo/light/index.js +2 -0
- package/lib/rating/themes/solar/charcoal/index.js +2 -0
- package/lib/rating/themes/solar/pearl/index.js +2 -0
- package/lib/search-field/custom-elements.json +173 -0
- package/lib/search-field/custom-elements.md +33 -0
- package/lib/search-field/index.d.ts +134 -0
- package/lib/search-field/index.js +253 -0
- package/lib/search-field/themes/halo/dark/index.js +3 -0
- package/lib/search-field/themes/halo/light/index.js +3 -0
- package/lib/search-field/themes/solar/charcoal/index.js +3 -0
- package/lib/search-field/themes/solar/pearl/index.js +3 -0
- package/lib/select/custom-elements.json +103 -0
- package/lib/select/custom-elements.md +24 -0
- package/lib/select/helpers/types.d.ts +3 -0
- package/lib/select/helpers/types.js +1 -0
- package/lib/select/index.d.ts +388 -0
- package/lib/select/index.js +942 -0
- package/lib/select/themes/halo/dark/index.js +5 -0
- package/lib/select/themes/halo/light/index.js +5 -0
- package/lib/select/themes/solar/charcoal/index.js +5 -0
- package/lib/select/themes/solar/pearl/index.js +5 -0
- package/lib/sidebar-layout/custom-elements.json +72 -0
- package/lib/sidebar-layout/custom-elements.md +22 -0
- package/lib/sidebar-layout/index.d.ts +69 -0
- package/lib/sidebar-layout/index.js +134 -0
- package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
- package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
- package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
- package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
- package/lib/slider/custom-elements.json +181 -0
- package/lib/slider/custom-elements.md +28 -0
- package/lib/slider/index.d.ts +409 -0
- package/lib/slider/index.js +1187 -0
- package/lib/slider/themes/halo/dark/index.js +3 -0
- package/lib/slider/themes/halo/light/index.js +3 -0
- package/lib/slider/themes/solar/charcoal/index.js +3 -0
- package/lib/slider/themes/solar/pearl/index.js +3 -0
- package/lib/sparkline/custom-elements.json +59 -0
- package/lib/sparkline/custom-elements.md +16 -0
- package/lib/sparkline/index.d.ts +107 -0
- package/lib/sparkline/index.js +186 -0
- package/lib/sparkline/themes/halo/dark/index.js +2 -0
- package/lib/sparkline/themes/halo/light/index.js +2 -0
- package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
- package/lib/sparkline/themes/solar/pearl/index.js +2 -0
- package/lib/swing-gauge/const.d.ts +22 -0
- package/lib/swing-gauge/const.js +26 -0
- package/lib/swing-gauge/custom-elements.json +109 -0
- package/lib/swing-gauge/custom-elements.md +17 -0
- package/lib/swing-gauge/helpers.d.ts +8 -0
- package/lib/swing-gauge/helpers.js +105 -0
- package/lib/swing-gauge/index.d.ts +294 -0
- package/lib/swing-gauge/index.js +762 -0
- package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
- package/lib/swing-gauge/themes/halo/light/index.js +3 -0
- package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
- package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
- package/lib/swing-gauge/types.d.ts +34 -0
- package/lib/swing-gauge/types.js +1 -0
- package/lib/tab/custom-elements.json +123 -0
- package/lib/tab/custom-elements.md +22 -0
- package/lib/tab/index.d.ts +118 -0
- package/lib/tab/index.js +208 -0
- package/lib/tab/themes/halo/dark/index.js +4 -0
- package/lib/tab/themes/halo/light/index.js +4 -0
- package/lib/tab/themes/solar/charcoal/index.js +4 -0
- package/lib/tab/themes/solar/pearl/index.js +4 -0
- package/lib/tab-bar/custom-elements.json +52 -0
- package/lib/tab-bar/custom-elements.md +11 -0
- package/lib/tab-bar/helpers/animate.d.ts +16 -0
- package/lib/tab-bar/helpers/animate.js +53 -0
- package/lib/tab-bar/index.d.ts +108 -0
- package/lib/tab-bar/index.js +218 -0
- package/lib/tab-bar/themes/halo/dark/index.js +4 -0
- package/lib/tab-bar/themes/halo/light/index.js +4 -0
- package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
- package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
- package/lib/text-field/custom-elements.json +210 -0
- package/lib/text-field/custom-elements.md +37 -0
- package/lib/text-field/index.d.ts +193 -0
- package/lib/text-field/index.js +409 -0
- package/lib/text-field/themes/halo/dark/index.js +3 -0
- package/lib/text-field/themes/halo/light/index.js +3 -0
- package/lib/text-field/themes/solar/charcoal/index.js +3 -0
- package/lib/text-field/themes/solar/pearl/index.js +3 -0
- package/lib/time-picker/custom-elements.json +124 -0
- package/lib/time-picker/custom-elements.md +28 -0
- package/lib/time-picker/index.d.ts +379 -0
- package/lib/time-picker/index.js +775 -0
- package/lib/time-picker/themes/halo/dark/index.js +4 -0
- package/lib/time-picker/themes/halo/light/index.js +4 -0
- package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
- package/lib/time-picker/themes/solar/pearl/index.js +4 -0
- package/lib/toggle/custom-elements.json +82 -0
- package/lib/toggle/custom-elements.md +19 -0
- package/lib/toggle/index.d.ts +86 -0
- package/lib/toggle/index.js +152 -0
- package/lib/toggle/themes/halo/dark/index.js +2 -0
- package/lib/toggle/themes/halo/light/index.js +2 -0
- package/lib/toggle/themes/solar/charcoal/index.js +2 -0
- package/lib/toggle/themes/solar/pearl/index.js +2 -0
- package/lib/tooltip/custom-elements.json +62 -0
- package/lib/tooltip/custom-elements.md +14 -0
- package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
- package/lib/tooltip/elements/title-tooltip.js +18 -0
- package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
- package/lib/tooltip/elements/tooltip-element.js +54 -0
- package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
- package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
- package/lib/tooltip/helpers/renderer.d.ts +8 -0
- package/lib/tooltip/helpers/renderer.js +11 -0
- package/lib/tooltip/helpers/types.d.ts +23 -0
- package/lib/tooltip/helpers/types.js +1 -0
- package/lib/tooltip/index.d.ts +232 -0
- package/lib/tooltip/index.js +477 -0
- package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
- package/lib/tooltip/managers/tooltip-manager.js +140 -0
- package/lib/tooltip/themes/halo/dark/index.js +3 -0
- package/lib/tooltip/themes/halo/light/index.js +3 -0
- package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
- package/lib/tooltip/themes/solar/pearl/index.js +3 -0
- package/lib/tornado-chart/custom-elements.json +45 -0
- package/lib/tornado-chart/custom-elements.md +18 -0
- package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
- package/lib/tornado-chart/elements/tornado-chart.js +122 -0
- package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
- package/lib/tornado-chart/elements/tornado-item.js +207 -0
- package/lib/tornado-chart/index.d.ts +2 -0
- package/lib/tornado-chart/index.js +2 -0
- package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
- package/lib/tornado-chart/themes/halo/light/index.js +6 -0
- package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
- package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
- package/lib/tree/custom-elements.json +113 -0
- package/lib/tree/custom-elements.md +32 -0
- package/lib/tree/elements/tree-item.d.ts +96 -0
- package/lib/tree/elements/tree-item.js +179 -0
- package/lib/tree/elements/tree.d.ts +201 -0
- package/lib/tree/elements/tree.js +412 -0
- package/lib/tree/helpers/filter.d.ts +8 -0
- package/lib/tree/helpers/filter.js +33 -0
- package/lib/tree/helpers/renderer.d.ts +5 -0
- package/lib/tree/helpers/renderer.js +33 -0
- package/lib/tree/helpers/types.d.ts +25 -0
- package/lib/tree/helpers/types.js +1 -0
- package/lib/tree/index.d.ts +4 -0
- package/lib/tree/index.js +3 -0
- package/lib/tree/managers/tree-manager.d.ts +248 -0
- package/lib/tree/managers/tree-manager.js +395 -0
- package/lib/tree/themes/halo/dark/index.js +7 -0
- package/lib/tree/themes/halo/light/index.js +7 -0
- package/lib/tree/themes/solar/charcoal/index.js +7 -0
- package/lib/tree/themes/solar/pearl/index.js +7 -0
- package/lib/tree-select/custom-elements.json +107 -0
- package/lib/tree-select/custom-elements.md +26 -0
- package/lib/tree-select/helpers/types.d.ts +4 -0
- package/lib/tree-select/helpers/types.js +1 -0
- package/lib/tree-select/index.d.ts +402 -0
- package/lib/tree-select/index.js +890 -0
- package/lib/tree-select/themes/halo/dark/index.js +12 -0
- package/lib/tree-select/themes/halo/light/index.js +12 -0
- package/lib/tree-select/themes/solar/charcoal/index.js +12 -0
- package/lib/tree-select/themes/solar/pearl/index.js +12 -0
- package/lib/version.d.ts +1 -0
- package/lib/version.js +1 -0
- package/package.json +298 -15
|
@@ -0,0 +1,1187 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { html, css, ControlElement, WarningNotice } from '@refinitiv-ui/core';
|
|
3
|
+
import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
|
|
4
|
+
import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
|
|
5
|
+
import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
|
|
6
|
+
import { styleMap } from '@refinitiv-ui/core/lib/directives/style-map.js';
|
|
7
|
+
import { VERSION } from '../version.js';
|
|
8
|
+
import '../number-field/index.js';
|
|
9
|
+
var SliderNameType;
|
|
10
|
+
(function (SliderNameType) {
|
|
11
|
+
SliderNameType["value"] = "value";
|
|
12
|
+
SliderNameType["from"] = "from";
|
|
13
|
+
SliderNameType["to"] = "to";
|
|
14
|
+
})(SliderNameType || (SliderNameType = {}));
|
|
15
|
+
var PreviousSliderNameType;
|
|
16
|
+
(function (PreviousSliderNameType) {
|
|
17
|
+
PreviousSliderNameType["value"] = "valuePrevious";
|
|
18
|
+
PreviousSliderNameType["from"] = "fromPrevious";
|
|
19
|
+
PreviousSliderNameType["to"] = "toPrevious";
|
|
20
|
+
})(PreviousSliderNameType || (PreviousSliderNameType = {}));
|
|
21
|
+
var NumberFieldNameType;
|
|
22
|
+
(function (NumberFieldNameType) {
|
|
23
|
+
NumberFieldNameType["fromInput"] = "fromInput";
|
|
24
|
+
NumberFieldNameType["toInput"] = "toInput";
|
|
25
|
+
})(NumberFieldNameType || (NumberFieldNameType = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Set prevent default action and stop bubbles event
|
|
28
|
+
* @private
|
|
29
|
+
* @param event event mouse or touch
|
|
30
|
+
* @returns {void}
|
|
31
|
+
*/
|
|
32
|
+
const preventDefault = function (event) {
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
event.stopPropagation();
|
|
35
|
+
return event;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Return value that never exceed the maximum boundary
|
|
39
|
+
* @private
|
|
40
|
+
* @param value value for check clamp
|
|
41
|
+
* @param min max value
|
|
42
|
+
* @param max min value
|
|
43
|
+
* @returns number between two numbers
|
|
44
|
+
*/
|
|
45
|
+
const clamp = function (value, min, max) {
|
|
46
|
+
return Math.max(min, Math.min(value, max)).toString();
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Allows users to make selections from a range of values
|
|
50
|
+
*
|
|
51
|
+
* @attr {string} value - Value of slider. Not applicable in range mode.
|
|
52
|
+
* @prop {string} [value=0] - Value of slider. Not applicable in range mode.
|
|
53
|
+
*
|
|
54
|
+
* @attr {boolean} readonly - Set readonly state
|
|
55
|
+
* @prop {boolean} [readonly=false] - Set readonly state
|
|
56
|
+
*
|
|
57
|
+
* @attr {boolean} disabled - Set disabled state
|
|
58
|
+
* @prop {boolean} [disabled=false] - Set disabled state
|
|
59
|
+
*
|
|
60
|
+
* @fires value-changed - Fired when the `value` changes.
|
|
61
|
+
* @fires from-changed - Fired when the `from` changes.
|
|
62
|
+
* @fires to-changed - Fired when the `to` changes.
|
|
63
|
+
*/
|
|
64
|
+
let Slider = class Slider extends ControlElement {
|
|
65
|
+
constructor() {
|
|
66
|
+
super(...arguments);
|
|
67
|
+
this.dragging = false;
|
|
68
|
+
this.stepUse = 1;
|
|
69
|
+
this.decimalPlaces = 0;
|
|
70
|
+
this.dragElements = [];
|
|
71
|
+
this.isEventReady = false;
|
|
72
|
+
this.valuePrevious = '';
|
|
73
|
+
this.fromPrevious = '';
|
|
74
|
+
this.toPrevious = '';
|
|
75
|
+
/**
|
|
76
|
+
* Specified size of increment or decrement jump between value.
|
|
77
|
+
*/
|
|
78
|
+
this.step = '1';
|
|
79
|
+
/**
|
|
80
|
+
* Set minimum value of slider.
|
|
81
|
+
*/
|
|
82
|
+
this.min = '0';
|
|
83
|
+
/**
|
|
84
|
+
* Slider maximum value of slider.
|
|
85
|
+
*/
|
|
86
|
+
this.max = '100';
|
|
87
|
+
/**
|
|
88
|
+
* Uses with `range`. Low value of slider in range mode.
|
|
89
|
+
*/
|
|
90
|
+
this.from = '0';
|
|
91
|
+
/**
|
|
92
|
+
* Uses with `range`. High value of slider in range mode
|
|
93
|
+
*/
|
|
94
|
+
this.to = '100';
|
|
95
|
+
/**
|
|
96
|
+
* Set slider appearances to show pin mode.
|
|
97
|
+
* @ignore
|
|
98
|
+
* NOTE: Pin isn't applicable in Halo. Hide this from document
|
|
99
|
+
*/
|
|
100
|
+
this.pin = false;
|
|
101
|
+
/**
|
|
102
|
+
* Set slider to range mode. Instead of a single value, slider will provide `from` and `to`.
|
|
103
|
+
*/
|
|
104
|
+
this.range = false;
|
|
105
|
+
/**
|
|
106
|
+
* Show steps marker on slider.
|
|
107
|
+
*/
|
|
108
|
+
this.showSteps = false;
|
|
109
|
+
/**
|
|
110
|
+
* Show input number field.
|
|
111
|
+
*/
|
|
112
|
+
this.showInputField = null;
|
|
113
|
+
/**
|
|
114
|
+
* Uses with `range`. Set minimum allowance value (distance) between `from` and `to`.
|
|
115
|
+
*/
|
|
116
|
+
this.minRange = '0';
|
|
117
|
+
/**
|
|
118
|
+
* Input number event blur and notify property
|
|
119
|
+
* @param event event blur input number field
|
|
120
|
+
* @returns {void}
|
|
121
|
+
*/
|
|
122
|
+
this.onBlur = (event) => {
|
|
123
|
+
if (this.readonly) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const { value, name } = event.target;
|
|
127
|
+
const currentData = name;
|
|
128
|
+
const perviousData = `${name}Previous`;
|
|
129
|
+
if (value && this[currentData] !== value) {
|
|
130
|
+
this.updateNotifyProperty(currentData, value);
|
|
131
|
+
this[perviousData] = value;
|
|
132
|
+
}
|
|
133
|
+
event.preventDefault();
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Input number event keydown y
|
|
137
|
+
* @param event event keydown
|
|
138
|
+
* @returns {void}
|
|
139
|
+
*/
|
|
140
|
+
this.onKeydown = (event) => {
|
|
141
|
+
if (this.readonly || this.disabled) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
this.handleEnterKey(event);
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Start dragging event on slider
|
|
148
|
+
* @param event event dragstart
|
|
149
|
+
* @returns {void}
|
|
150
|
+
*/
|
|
151
|
+
this.onDragStart = (event) => {
|
|
152
|
+
this.dragging = true;
|
|
153
|
+
this.classList.add('grabbable');
|
|
154
|
+
if (this.range) {
|
|
155
|
+
const pct = this.getMousePosition(event);
|
|
156
|
+
const mousePos = ((this.maxNumber - this.minNumber) * pct) + this.minNumber;
|
|
157
|
+
const distFrom = Math.abs(mousePos - this.fromNumber);
|
|
158
|
+
const distTo = Math.abs(mousePos - this.toNumber);
|
|
159
|
+
if (distFrom < distTo) {
|
|
160
|
+
this.activeThumb = this.dragElements[0];
|
|
161
|
+
}
|
|
162
|
+
else if (distFrom > distTo) {
|
|
163
|
+
this.activeThumb = this.dragElements[1];
|
|
164
|
+
}
|
|
165
|
+
this.dragElements.forEach((el) => {
|
|
166
|
+
el.style.zIndex = '5';
|
|
167
|
+
});
|
|
168
|
+
this.activeThumb.style.zIndex = '10';
|
|
169
|
+
// Set focus to input when drag.
|
|
170
|
+
if (this.isShowInputField) {
|
|
171
|
+
this.toggleFocusField(this.activeThumb.getAttribute('name') || '', true);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.activeThumb = this.dragElements[0];
|
|
176
|
+
}
|
|
177
|
+
this.onDrag(event);
|
|
178
|
+
if (event.changedTouches) {
|
|
179
|
+
this.addEventListener('touchmove', this.onDrag);
|
|
180
|
+
this.addEventListener('touchend', this.onDragEnd);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
window.addEventListener('mousemove', this.onDrag);
|
|
184
|
+
window.addEventListener('mouseup', this.onDragEnd);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Dragging after on dragging start event
|
|
189
|
+
* @param event event mousemove and touchmove
|
|
190
|
+
* @returns {void}
|
|
191
|
+
*/
|
|
192
|
+
this.onDrag = (event) => {
|
|
193
|
+
if (this.minNumber !== this.maxNumber) {
|
|
194
|
+
const thumbPos = this.getMousePosition(event);
|
|
195
|
+
const closestStep = this.calculateStep(thumbPos);
|
|
196
|
+
// Can be dragged slider when the value is valid
|
|
197
|
+
if (closestStep <= 1) {
|
|
198
|
+
const thumbLeft = this.stepUse !== 0 ? closestStep : thumbPos;
|
|
199
|
+
const calStepValue = this.calculateValue(thumbLeft);
|
|
200
|
+
const prettyVal = Number(this.displayValue(calStepValue));
|
|
201
|
+
if (this.range) {
|
|
202
|
+
if (this.activeThumb === this.dragElements[1]) {
|
|
203
|
+
this.to = this.validateTo(prettyVal).toString();
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this.from = this.validateFrom(prettyVal).toString();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
this.value = prettyVal.toString();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* End dragging event and remove dragging event
|
|
217
|
+
* @param e event mouseup and touchmove
|
|
218
|
+
* @returns {void}
|
|
219
|
+
*/
|
|
220
|
+
this.onDragEnd = (e) => {
|
|
221
|
+
if (this.dragging) {
|
|
222
|
+
this.dragging = false;
|
|
223
|
+
const event = e;
|
|
224
|
+
if (event.changedTouches) {
|
|
225
|
+
this.removeEventListener('touchmove', this.onDrag);
|
|
226
|
+
this.removeEventListener('touchend', this.onDragEnd);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
window.removeEventListener('mousemove', this.onDrag);
|
|
230
|
+
window.removeEventListener('mouseup', this.onDragEnd);
|
|
231
|
+
}
|
|
232
|
+
this.classList.remove('grabbable');
|
|
233
|
+
if (this.classList.length === 0) {
|
|
234
|
+
this.removeAttribute('class');
|
|
235
|
+
}
|
|
236
|
+
if (!event.changedTouches) {
|
|
237
|
+
event.preventDefault();
|
|
238
|
+
}
|
|
239
|
+
this.dispatchDataChangedEvent();
|
|
240
|
+
// Reset tab index of input that's drag.
|
|
241
|
+
if (this.isShowInputField) {
|
|
242
|
+
this.toggleFocusField(this.activeThumb.getAttribute('name') || '', false);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Element version number
|
|
249
|
+
* @returns version number
|
|
250
|
+
*/
|
|
251
|
+
static get version() {
|
|
252
|
+
return VERSION;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Converts value from string to number for calculations
|
|
256
|
+
* @returns value of input as a number
|
|
257
|
+
*/
|
|
258
|
+
get valueNumber() {
|
|
259
|
+
const value = parseFloat(this.value);
|
|
260
|
+
if (!this.value || isNaN(value)) {
|
|
261
|
+
return 0;
|
|
262
|
+
}
|
|
263
|
+
return value;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Converts min value from string to number for calculations
|
|
267
|
+
* @returns minimum value of slider as a number
|
|
268
|
+
*/
|
|
269
|
+
get minNumber() {
|
|
270
|
+
const min = parseFloat(this.min);
|
|
271
|
+
if (!this.min || isNaN(min)) {
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
274
|
+
return min;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Converts max value from string to number for calculations
|
|
278
|
+
* @returns maximum value of slider as a number
|
|
279
|
+
*/
|
|
280
|
+
get maxNumber() {
|
|
281
|
+
const max = parseFloat(this.max);
|
|
282
|
+
if (!this.max || isNaN(max)) {
|
|
283
|
+
return 100;
|
|
284
|
+
}
|
|
285
|
+
return max;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Converts step value from string to number for calculations
|
|
289
|
+
* @returns step value of slider as a number
|
|
290
|
+
*/
|
|
291
|
+
get stepNumber() {
|
|
292
|
+
const step = parseFloat(this.step);
|
|
293
|
+
if (!this.step || isNaN(step)) {
|
|
294
|
+
return 1;
|
|
295
|
+
}
|
|
296
|
+
return step;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Converts from value from string to number for calculations
|
|
300
|
+
* @returns from value of slider as a number
|
|
301
|
+
*/
|
|
302
|
+
get fromNumber() {
|
|
303
|
+
const from = parseFloat(this.from);
|
|
304
|
+
if (!this.from || isNaN(from)) {
|
|
305
|
+
return this.minNumber;
|
|
306
|
+
}
|
|
307
|
+
return from;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Converts to value from string to number for calculations
|
|
311
|
+
* @returns to value of slider as a number
|
|
312
|
+
*/
|
|
313
|
+
get toNumber() {
|
|
314
|
+
const to = parseFloat(this.to);
|
|
315
|
+
if (!this.to || isNaN(to)) {
|
|
316
|
+
return this.maxNumber;
|
|
317
|
+
}
|
|
318
|
+
return to;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Converts min-range from string to number for calculations
|
|
322
|
+
* @returns min-range of input as a number
|
|
323
|
+
*/
|
|
324
|
+
get minRangeNumber() {
|
|
325
|
+
const minRange = parseFloat(this.minRange);
|
|
326
|
+
if (!this.minRange || isNaN(minRange)) {
|
|
327
|
+
return 0;
|
|
328
|
+
}
|
|
329
|
+
return minRange;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Return hide/show input field state
|
|
333
|
+
* @returns {boolean} true if showInputField value is exist
|
|
334
|
+
*/
|
|
335
|
+
get isShowInputField() {
|
|
336
|
+
return this.showInputField !== null && this.showInputField !== undefined;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* On first updated lifecycle
|
|
340
|
+
* @param changedProperties changed properties
|
|
341
|
+
* @returns {void}
|
|
342
|
+
*/
|
|
343
|
+
firstUpdated(changedProperties) {
|
|
344
|
+
super.firstUpdated(changedProperties);
|
|
345
|
+
// initialize slider
|
|
346
|
+
void this.updateComplete.then(() => {
|
|
347
|
+
this.initializeProperty();
|
|
348
|
+
this.initSlider();
|
|
349
|
+
this.updateEventListeners();
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* On Update lifecycle
|
|
354
|
+
* @param changedProperties changed properties
|
|
355
|
+
* @returns {void}
|
|
356
|
+
*/
|
|
357
|
+
update(changedProperties) {
|
|
358
|
+
super.update(changedProperties);
|
|
359
|
+
if (changedProperties.has('disabled') || changedProperties.has('readonly')) {
|
|
360
|
+
this.updateEventListeners();
|
|
361
|
+
}
|
|
362
|
+
changedProperties.forEach((oldValue, propName) => {
|
|
363
|
+
if (['value', 'min', 'max', 'from', 'to', 'step', 'minRange'].includes(propName)) {
|
|
364
|
+
this.showWarningInvalidProperty(propName);
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* @param changedProperties changed properties
|
|
370
|
+
* @returns {void}
|
|
371
|
+
*/
|
|
372
|
+
updated(changedProperties) {
|
|
373
|
+
super.updated(changedProperties);
|
|
374
|
+
changedProperties.forEach((oldValue, propName) => {
|
|
375
|
+
if (propName === 'value') {
|
|
376
|
+
this.onValueChange();
|
|
377
|
+
}
|
|
378
|
+
else if (propName === 'min') {
|
|
379
|
+
this.onMinChange(oldValue);
|
|
380
|
+
}
|
|
381
|
+
else if (propName === 'max') {
|
|
382
|
+
this.onMaxChange(oldValue);
|
|
383
|
+
}
|
|
384
|
+
else if (propName === 'from' && this.range) {
|
|
385
|
+
this.onValueChangeFrom();
|
|
386
|
+
}
|
|
387
|
+
else if (propName === 'to' && this.range) {
|
|
388
|
+
this.onValueChangeTo();
|
|
389
|
+
}
|
|
390
|
+
else if (propName === 'step') {
|
|
391
|
+
this.onStepChange();
|
|
392
|
+
}
|
|
393
|
+
else if (propName === 'minRange') {
|
|
394
|
+
this.onMinRangeChange();
|
|
395
|
+
}
|
|
396
|
+
else if (propName === 'range') {
|
|
397
|
+
this.initializeProperty();
|
|
398
|
+
this.initSlider();
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Show Warning a warning message invalid property
|
|
404
|
+
* @param propName value for checking
|
|
405
|
+
* @returns {void}
|
|
406
|
+
*/
|
|
407
|
+
showWarningInvalidProperty(propName) {
|
|
408
|
+
let isValid = true;
|
|
409
|
+
let message = '';
|
|
410
|
+
if (propName === 'value') {
|
|
411
|
+
isValid = this.isValueInBoundary(this.valueNumber, '');
|
|
412
|
+
message = 'value should be between min and max.';
|
|
413
|
+
}
|
|
414
|
+
else if (propName === 'min') {
|
|
415
|
+
isValid = this.minNumber <= this.maxNumber;
|
|
416
|
+
message = 'value should be less than max.';
|
|
417
|
+
}
|
|
418
|
+
else if (propName === 'max') {
|
|
419
|
+
isValid = this.maxNumber >= this.minNumber;
|
|
420
|
+
message = 'value should be more than min.';
|
|
421
|
+
}
|
|
422
|
+
else if (propName === 'from' && this.range) {
|
|
423
|
+
isValid = (this.fromNumber >= this.minNumber && this.fromNumber <= this.toNumber);
|
|
424
|
+
message = 'value should be more than min and less than to.';
|
|
425
|
+
}
|
|
426
|
+
else if (propName === 'to' && this.range) {
|
|
427
|
+
isValid = (this.toNumber <= this.maxNumber && this.toNumber >= this.fromNumber);
|
|
428
|
+
message = 'value should be less than max and more than from.';
|
|
429
|
+
}
|
|
430
|
+
else if (propName === 'step') {
|
|
431
|
+
isValid = ((this.maxNumber - this.minNumber) >= this.stepNumber);
|
|
432
|
+
message = 'value should be between min and max.';
|
|
433
|
+
}
|
|
434
|
+
else if (propName === 'minRange' && this.minRangeNumber > 0) {
|
|
435
|
+
const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
|
|
436
|
+
const distanceMinMax = Math.abs(this.maxNumber - this.minNumber);
|
|
437
|
+
isValid = (distanceMinMax >= this.minRangeNumber && distanceFromTo >= this.minRangeNumber);
|
|
438
|
+
message = 'value should be less than distance from and to, min and max.';
|
|
439
|
+
}
|
|
440
|
+
if (!isValid) {
|
|
441
|
+
new WarningNotice(`${this.localName}: Invalid ${propName} provided, The correct ${propName} ${message}`).show();
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Initialise class properties
|
|
446
|
+
* @returns {void}
|
|
447
|
+
*/
|
|
448
|
+
initializeProperty() {
|
|
449
|
+
this.stepUse = this.calculateStepRange(this.stepNumber);
|
|
450
|
+
if (this.minNumber !== this.maxNumber) {
|
|
451
|
+
// init decimal places
|
|
452
|
+
this.updateDecimalPlaces();
|
|
453
|
+
if (this.range) {
|
|
454
|
+
this.activeThumb = this.dragElements[1];
|
|
455
|
+
if (this.minRangeNumber) {
|
|
456
|
+
const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
|
|
457
|
+
const clampValueFrom = this.toNumber - this.minRangeNumber;
|
|
458
|
+
if (this.minRangeNumber > distanceFromTo) {
|
|
459
|
+
if (clampValueFrom < this.minNumber) {
|
|
460
|
+
this.to = (this.fromNumber + this.minRangeNumber).toString();
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
this.from = clampValueFrom.toString();
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
this.from = clamp((this.fromNumber || this.minNumber), this.minNumber, this.toNumber);
|
|
469
|
+
this.to = clamp((this.toNumber || this.maxNumber), this.fromNumber, this.maxNumber);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
this.value = clamp(this.valueNumber, this.minNumber, this.maxNumber);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
else if (this.range) {
|
|
477
|
+
this.from = this.min;
|
|
478
|
+
this.to = this.max;
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
this.value = this.min;
|
|
482
|
+
}
|
|
483
|
+
// initial old value
|
|
484
|
+
this.valuePrevious = this.value;
|
|
485
|
+
this.toPrevious = this.to;
|
|
486
|
+
this.fromPrevious = this.from;
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Initialise slider properties
|
|
490
|
+
* @returns {void}
|
|
491
|
+
*/
|
|
492
|
+
initSlider() {
|
|
493
|
+
var _a;
|
|
494
|
+
this.dragElements = [];
|
|
495
|
+
if (this.range) {
|
|
496
|
+
(_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('#thumbContainer').forEach((item) => {
|
|
497
|
+
this.dragElements.push(item);
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
this.dragElements = [
|
|
502
|
+
this.thumbContainer
|
|
503
|
+
];
|
|
504
|
+
}
|
|
505
|
+
this.activeThumb = this.dragElements[0];
|
|
506
|
+
this.dragElements.concat(this).forEach((el) => {
|
|
507
|
+
el.addEventListener('drag', preventDefault);
|
|
508
|
+
el.addEventListener('dragstart', preventDefault);
|
|
509
|
+
el.addEventListener('dragend', preventDefault);
|
|
510
|
+
});
|
|
511
|
+
this.isEventReady = true;
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Calculate step in range
|
|
515
|
+
* @param step value step for calculate
|
|
516
|
+
* @returns step value that should be inside the min / max boundary
|
|
517
|
+
*/
|
|
518
|
+
calculateStepRange(step) {
|
|
519
|
+
const newStep = Math.abs(step);
|
|
520
|
+
if (newStep > this.maxNumber - this.minNumber && !this.isDecimalNumber(newStep)) {
|
|
521
|
+
// new step shouldn't be larger than slider
|
|
522
|
+
return Math.abs(this.maxNumber - this.minNumber);
|
|
523
|
+
}
|
|
524
|
+
return newStep;
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Check if step or min number is decimal
|
|
528
|
+
* If yes, set number of decimal places
|
|
529
|
+
* @returns {void}
|
|
530
|
+
*/
|
|
531
|
+
updateDecimalPlaces() {
|
|
532
|
+
// Set decimal places when step or min have decimal
|
|
533
|
+
if (this.isDecimalNumber(this.stepUse) || this.isDecimalNumber(this.minNumber)) {
|
|
534
|
+
const stepUseDecimal = this.countDecimals(this.stepUse);
|
|
535
|
+
const minDecimal = this.countDecimals(this.minNumber);
|
|
536
|
+
this.decimalPlaces = stepUseDecimal > minDecimal ? stepUseDecimal : minDecimal;
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
this.decimalPlaces = 0;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Count decimal number
|
|
544
|
+
* @param value value for checking
|
|
545
|
+
* @returns number of decimal points
|
|
546
|
+
*/
|
|
547
|
+
countDecimals(value) {
|
|
548
|
+
var _a;
|
|
549
|
+
return ((_a = Number(value).toString().split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) | 0;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Check if decimal number e.g. 10.5, etc
|
|
553
|
+
* @param value value for checking
|
|
554
|
+
* @returns true if value is decimal
|
|
555
|
+
*/
|
|
556
|
+
isDecimalNumber(value) {
|
|
557
|
+
return value % 1 !== 0;
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Calculate percentage by value
|
|
561
|
+
* @param value value to be calculated
|
|
562
|
+
* @returns percentage
|
|
563
|
+
*/
|
|
564
|
+
calculatePercentage(value) {
|
|
565
|
+
const valuePercent = Math.abs((((value || 0) - this.minNumber) / (this.maxNumber - this.minNumber)) * 100);
|
|
566
|
+
if (valuePercent > 100) {
|
|
567
|
+
return 100;
|
|
568
|
+
}
|
|
569
|
+
else if (valuePercent < 0) {
|
|
570
|
+
return 0;
|
|
571
|
+
}
|
|
572
|
+
else {
|
|
573
|
+
return valuePercent;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Add and remove event listener when have disable and readonly properties
|
|
578
|
+
* @returns {void}
|
|
579
|
+
*/
|
|
580
|
+
updateEventListeners() {
|
|
581
|
+
if (this.isEventReady) {
|
|
582
|
+
if (this.disabled || this.readonly) {
|
|
583
|
+
this.slider.removeEventListener('mousedown', this.onDragStart);
|
|
584
|
+
this.slider.removeEventListener('touchstart', this.onDragStart);
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
this.slider.addEventListener('mousedown', this.onDragStart, { passive: true });
|
|
588
|
+
this.slider.addEventListener('touchstart', this.onDragStart, { passive: true });
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Handles key press keyboard events
|
|
594
|
+
*
|
|
595
|
+
* @param event Event Object
|
|
596
|
+
* @returns {void}
|
|
597
|
+
*/
|
|
598
|
+
handleEnterKey(event) {
|
|
599
|
+
if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {
|
|
600
|
+
event.target.blur();
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Update notify property by input name attribute
|
|
605
|
+
* @param name name input attribute
|
|
606
|
+
* @param value input value
|
|
607
|
+
* @returns {void}
|
|
608
|
+
*/
|
|
609
|
+
updateNotifyProperty(name, value) {
|
|
610
|
+
let isUpdateValue = false;
|
|
611
|
+
const valueSanitize = Number(this.sanitizeNumber(Number(value), 0));
|
|
612
|
+
if (name === 'to') {
|
|
613
|
+
isUpdateValue = this.isValueInBoundary(valueSanitize, 'to');
|
|
614
|
+
}
|
|
615
|
+
else {
|
|
616
|
+
isUpdateValue = this.isValueInBoundary(valueSanitize, '');
|
|
617
|
+
}
|
|
618
|
+
if (isUpdateValue) {
|
|
619
|
+
(this[name]) = value;
|
|
620
|
+
this.notifyPropertyChange(name, value);
|
|
621
|
+
}
|
|
622
|
+
else {
|
|
623
|
+
const nameInput = `${name}Input`;
|
|
624
|
+
this[nameInput].value = this[name];
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
/**
|
|
628
|
+
* Dispatch data {value, from, to} changed event
|
|
629
|
+
* @returns {void}
|
|
630
|
+
*/
|
|
631
|
+
dispatchDataChangedEvent() {
|
|
632
|
+
const name = this.activeThumb.getAttribute('name') || '';
|
|
633
|
+
const currentData = name;
|
|
634
|
+
const previousData = `${name}Previous`;
|
|
635
|
+
// Dispatch event only when value or from or to changed
|
|
636
|
+
if (this[previousData] !== this[currentData]) {
|
|
637
|
+
this.notifyPropertyChange(name, this[currentData]);
|
|
638
|
+
this[previousData] = this[currentData];
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Set focus to input from state
|
|
643
|
+
* @param {String} name number field's name
|
|
644
|
+
* @param {Boolean} focusState state of focus
|
|
645
|
+
* @returns {void}
|
|
646
|
+
*/
|
|
647
|
+
toggleFocusField(name, focusState) {
|
|
648
|
+
if (name) {
|
|
649
|
+
this[`${name}Input`].setAttribute('tabindex', `${focusState ? 1 : 0}`);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
/**
|
|
653
|
+
* @param event event mousemove and touchmove
|
|
654
|
+
* @returns mouse position by percentage
|
|
655
|
+
*/
|
|
656
|
+
getMousePosition(event) {
|
|
657
|
+
const sliderRect = this.trackWrapper.getBoundingClientRect();
|
|
658
|
+
// check drag desktop or mobile
|
|
659
|
+
const pageX = event.changedTouches ? event.changedTouches[0].pageX : event.pageX;
|
|
660
|
+
const positionSize = pageX - sliderRect.left;
|
|
661
|
+
if (positionSize <= sliderRect.width) {
|
|
662
|
+
return Math.min(Math.max((pageX - sliderRect.left) / sliderRect.width, 0), 1);
|
|
663
|
+
}
|
|
664
|
+
else {
|
|
665
|
+
return 1;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Handle 'from' value on drag out of boundary.
|
|
670
|
+
* @param value value from change
|
|
671
|
+
* @returns validated from value.
|
|
672
|
+
*/
|
|
673
|
+
validateFrom(value) {
|
|
674
|
+
const valueFrom = value + this.minRangeNumber;
|
|
675
|
+
if (valueFrom < this.toNumber && valueFrom >= this.minNumber) {
|
|
676
|
+
return value;
|
|
677
|
+
}
|
|
678
|
+
else {
|
|
679
|
+
return this.toNumber - this.minRangeNumber;
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Handle 'To' value on drag out of boundary.
|
|
684
|
+
* @param value value to change
|
|
685
|
+
* @returns validated to value.
|
|
686
|
+
*/
|
|
687
|
+
validateTo(value) {
|
|
688
|
+
const valueTo = value - this.minRangeNumber;
|
|
689
|
+
if (valueTo > this.fromNumber && valueTo <= this.maxNumber) {
|
|
690
|
+
return value;
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
return this.fromNumber + this.minRangeNumber;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
/**
|
|
697
|
+
* Calculate the nearest interval
|
|
698
|
+
* @param thumbPosition thumb position dragging on slider
|
|
699
|
+
* @returns position step on slider
|
|
700
|
+
*/
|
|
701
|
+
calculateStep(thumbPosition) {
|
|
702
|
+
const stepSize = this.calculatePercentage(this.minNumber + this.stepUse) / 100;
|
|
703
|
+
// calculate step to current point to next point
|
|
704
|
+
const posToFixStep = Math.round(thumbPosition / stepSize) * stepSize;
|
|
705
|
+
if (thumbPosition <= posToFixStep + (stepSize / 2)) {
|
|
706
|
+
if (posToFixStep <= 1) {
|
|
707
|
+
return posToFixStep;
|
|
708
|
+
}
|
|
709
|
+
else {
|
|
710
|
+
return posToFixStep - stepSize;
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
else {
|
|
714
|
+
return posToFixStep + stepSize;
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
/**
|
|
718
|
+
* Calculate value by percentage
|
|
719
|
+
* @param percentage percentage to be calculated
|
|
720
|
+
* @returns calculated value
|
|
721
|
+
*/
|
|
722
|
+
calculateValue(percentage) {
|
|
723
|
+
const value = this.minNumber + percentage * (this.maxNumber - this.minNumber);
|
|
724
|
+
// if value is outside boundary, set to boundary
|
|
725
|
+
if (value >= this.maxNumber) {
|
|
726
|
+
return this.maxNumber;
|
|
727
|
+
}
|
|
728
|
+
else if (value <= this.minNumber) {
|
|
729
|
+
return this.minNumber;
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
return value;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Format value to display in both integer and fraction cases
|
|
737
|
+
* @param value value before use display
|
|
738
|
+
* @returns formatted value
|
|
739
|
+
*/
|
|
740
|
+
displayValue(value) {
|
|
741
|
+
if (this.isDecimalNumber(value)) {
|
|
742
|
+
const valueDecimalCount = this.countDecimals(value);
|
|
743
|
+
// return value decimal by a boundary of max decimal
|
|
744
|
+
if (valueDecimalCount > this.decimalPlaces) {
|
|
745
|
+
return value.toFixed(this.decimalPlaces);
|
|
746
|
+
}
|
|
747
|
+
else {
|
|
748
|
+
return value.toString();
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
else {
|
|
752
|
+
return value.toString();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
* Value observer
|
|
757
|
+
* @returns {void}
|
|
758
|
+
*/
|
|
759
|
+
onValueChange() {
|
|
760
|
+
if (this.readonly) {
|
|
761
|
+
const valuePercent = this.calculatePercentage(Number(this.value)) / 100;
|
|
762
|
+
const closestStep = this.calculateStep(valuePercent);
|
|
763
|
+
const thumbLeft = this.stepUse !== 0 ? closestStep : valuePercent;
|
|
764
|
+
const calStepValue = this.calculateValue(thumbLeft);
|
|
765
|
+
this.value = this.displayValue(calStepValue);
|
|
766
|
+
}
|
|
767
|
+
else {
|
|
768
|
+
const valueSanitize = Number(this.sanitizeNumber(Number(this.value), 0));
|
|
769
|
+
if (this.isValueInBoundary(valueSanitize, '')) {
|
|
770
|
+
this.value = this.displayValue(valueSanitize);
|
|
771
|
+
}
|
|
772
|
+
else {
|
|
773
|
+
// if value is outside boundary, set to boundary
|
|
774
|
+
if (valueSanitize < this.minNumber) {
|
|
775
|
+
this.value = this.min;
|
|
776
|
+
}
|
|
777
|
+
if (valueSanitize > this.maxNumber) {
|
|
778
|
+
this.value = this.max;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
/**
|
|
784
|
+
* From value observer
|
|
785
|
+
* @returns {void}
|
|
786
|
+
*/
|
|
787
|
+
onValueChangeFrom() {
|
|
788
|
+
const valueFrom = Number(this.sanitizeNumber(this.fromNumber, 0));
|
|
789
|
+
if (this.isValueInBoundary(valueFrom, 'from')) {
|
|
790
|
+
this.from = this.displayValue(this.fromNumber);
|
|
791
|
+
}
|
|
792
|
+
else {
|
|
793
|
+
// if value is outside boundary, set to boundary
|
|
794
|
+
if (valueFrom < this.minNumber) {
|
|
795
|
+
this.from = this.min;
|
|
796
|
+
}
|
|
797
|
+
if (valueFrom > this.toNumber) {
|
|
798
|
+
this.from = this.to;
|
|
799
|
+
}
|
|
800
|
+
if (this.minRangeNumber) {
|
|
801
|
+
const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
|
|
802
|
+
const distanceMin = this.toNumber - this.minRangeNumber;
|
|
803
|
+
if (this.minRangeNumber > distanceFromTo && distanceMin > this.minNumber) {
|
|
804
|
+
this.from = distanceMin.toString();
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
/**
|
|
810
|
+
* Return fallback number of the value is invalid
|
|
811
|
+
* @param value value for checking
|
|
812
|
+
* @param fallbackValue fallback value when value is not number;
|
|
813
|
+
* @returns sanitized number
|
|
814
|
+
*/
|
|
815
|
+
sanitizeNumber(value, fallbackValue) {
|
|
816
|
+
let val;
|
|
817
|
+
if (this.isNumberValue(value) && typeof value === 'number') {
|
|
818
|
+
val = value.toString();
|
|
819
|
+
}
|
|
820
|
+
else {
|
|
821
|
+
val = fallbackValue;
|
|
822
|
+
}
|
|
823
|
+
return val.toString();
|
|
824
|
+
}
|
|
825
|
+
/**
|
|
826
|
+
* Check if value is number
|
|
827
|
+
* @param value value for checking
|
|
828
|
+
* @returns true if value is numeric
|
|
829
|
+
*/
|
|
830
|
+
isNumberValue(value) {
|
|
831
|
+
return !isNaN(value) && !isNaN(Number(value));
|
|
832
|
+
}
|
|
833
|
+
/**
|
|
834
|
+
* Check if value is inside min / max boundary
|
|
835
|
+
* @param value value is checking
|
|
836
|
+
* @param valueFor notation variable binding if range === true
|
|
837
|
+
* @returns true if value and step inside a boundary
|
|
838
|
+
*/
|
|
839
|
+
isValueInBoundary(value, valueFor) {
|
|
840
|
+
if (this.minNumber < this.maxNumber) {
|
|
841
|
+
// Check if value is in range
|
|
842
|
+
if (this.range) {
|
|
843
|
+
if (valueFor === 'to') {
|
|
844
|
+
if (value < (this.fromNumber + this.minRangeNumber) || value > this.maxNumber) {
|
|
845
|
+
return false;
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
else if (value < this.minNumber || value > (this.toNumber - this.minRangeNumber)) {
|
|
849
|
+
return false;
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
else if (value < this.minNumber || value > this.maxNumber) {
|
|
853
|
+
return false;
|
|
854
|
+
}
|
|
855
|
+
// check step min and max in range
|
|
856
|
+
if (this.stepUse < this.minNumber || this.stepUse > this.maxNumber) {
|
|
857
|
+
return true;
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
return true;
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* To value observer
|
|
864
|
+
* @returns {void}
|
|
865
|
+
*/
|
|
866
|
+
onValueChangeTo() {
|
|
867
|
+
const valueTo = Number(this.sanitizeNumber(this.toNumber, 0));
|
|
868
|
+
if (this.isValueInBoundary(valueTo, 'to')) {
|
|
869
|
+
this.to = this.displayValue(valueTo);
|
|
870
|
+
}
|
|
871
|
+
else {
|
|
872
|
+
// if value is outside boundary, set to boundary
|
|
873
|
+
if (valueTo < this.fromNumber) {
|
|
874
|
+
this.to = this.from;
|
|
875
|
+
}
|
|
876
|
+
if (valueTo > this.maxNumber) {
|
|
877
|
+
this.to = this.max;
|
|
878
|
+
}
|
|
879
|
+
if (this.minRangeNumber) {
|
|
880
|
+
const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
|
|
881
|
+
const distanceMax = this.fromNumber + this.minRangeNumber;
|
|
882
|
+
if (this.minRangeNumber > distanceFromTo && distanceMax < this.maxNumber) {
|
|
883
|
+
this.to = distanceMax.toString();
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
/**
|
|
889
|
+
* Step observer
|
|
890
|
+
* @returns {void}
|
|
891
|
+
*/
|
|
892
|
+
onStepChange() {
|
|
893
|
+
this.step = this.sanitizeNumber(this.stepNumber, 1);
|
|
894
|
+
this.stepUse = this.calculateStepRange(this.stepNumber);
|
|
895
|
+
// Set decimal places value when step is decimal
|
|
896
|
+
this.updateDecimalPlaces();
|
|
897
|
+
}
|
|
898
|
+
/**
|
|
899
|
+
* Min range observer
|
|
900
|
+
* @returns {void}
|
|
901
|
+
*/
|
|
902
|
+
onMinRangeChange() {
|
|
903
|
+
const valueMinRange = Math.abs(Number(this.sanitizeNumber(this.minRangeNumber, 0)));
|
|
904
|
+
const maximumRangeMinMax = Math.abs(this.maxNumber - this.minNumber);
|
|
905
|
+
const maximumRangeFromTo = Math.abs(this.toNumber - this.fromNumber);
|
|
906
|
+
if (valueMinRange && valueMinRange >= this.stepNumber) {
|
|
907
|
+
if (valueMinRange <= maximumRangeMinMax && valueMinRange <= maximumRangeFromTo) {
|
|
908
|
+
this.minRange = valueMinRange.toString();
|
|
909
|
+
}
|
|
910
|
+
else {
|
|
911
|
+
this.minRange = maximumRangeMinMax.toString();
|
|
912
|
+
this.from = this.min;
|
|
913
|
+
this.to = this.max;
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
else {
|
|
917
|
+
// Reset min-range when min-range less step
|
|
918
|
+
this.minRange = '0';
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
/**
|
|
922
|
+
* Min observer
|
|
923
|
+
* @param oldValue old value of min property
|
|
924
|
+
* @returns {void}
|
|
925
|
+
*/
|
|
926
|
+
onMinChange(oldValue) {
|
|
927
|
+
this.min = this.sanitizeNumber(this.minNumber, 0);
|
|
928
|
+
// Set decimal places value when min is decimal
|
|
929
|
+
this.updateDecimalPlaces();
|
|
930
|
+
if (this.minNumber > this.maxNumber) {
|
|
931
|
+
this.min = this.max;
|
|
932
|
+
}
|
|
933
|
+
else if (this.range) {
|
|
934
|
+
if (this.minNumber <= this.toNumber - this.minRangeNumber) {
|
|
935
|
+
this.from = clamp(this.fromNumber, this.minNumber, this.toNumber);
|
|
936
|
+
}
|
|
937
|
+
else if (oldValue) {
|
|
938
|
+
this.min = oldValue;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
else {
|
|
942
|
+
this.value = clamp(this.valueNumber, this.minNumber, this.maxNumber);
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
/**
|
|
946
|
+
* Max observer
|
|
947
|
+
* @param oldValue old value of max property
|
|
948
|
+
* @returns {void}
|
|
949
|
+
*/
|
|
950
|
+
onMaxChange(oldValue) {
|
|
951
|
+
this.max = this.sanitizeNumber(this.maxNumber, 100);
|
|
952
|
+
if (this.maxNumber < this.minNumber) {
|
|
953
|
+
this.max = this.min;
|
|
954
|
+
}
|
|
955
|
+
else if (this.range) {
|
|
956
|
+
if (this.maxNumber >= this.fromNumber + this.minRangeNumber) {
|
|
957
|
+
this.to = clamp(this.toNumber, this.fromNumber, this.maxNumber);
|
|
958
|
+
}
|
|
959
|
+
else if (oldValue) {
|
|
960
|
+
this.max = oldValue;
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
else {
|
|
964
|
+
this.value = clamp(this.valueNumber, this.minNumber, this.maxNumber);
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
/**
|
|
968
|
+
* Implement `render` Track template.
|
|
969
|
+
* @param range show range slider
|
|
970
|
+
* @returns Track template
|
|
971
|
+
*/
|
|
972
|
+
renderTrackWrapper(range) {
|
|
973
|
+
const stepContainerSize = this.calculatePercentage(this.minNumber + this.stepNumber);
|
|
974
|
+
const translateX = (stepContainerSize / 2);
|
|
975
|
+
const stepsStyle = { transform: `translateX(${translateX}%)`, backgroundSize: `${stepContainerSize}% 100%` };
|
|
976
|
+
const stepContainerStyle = { transform: `translateX(-${translateX}%)` };
|
|
977
|
+
const trackFillStyle = range
|
|
978
|
+
? { width: `${this.calculatePercentage(this.toNumber) - this.calculatePercentage(this.fromNumber)}%`, left: `${this.calculatePercentage(this.fromNumber)}%` }
|
|
979
|
+
: { width: `${this.calculatePercentage(Number(this.value))}%` };
|
|
980
|
+
return html `
|
|
981
|
+
<div part="track-wrapper" id="trackWrapper">
|
|
982
|
+
<div part="track-fill" id="trackFill" style=${styleMap(trackFillStyle)}></div>
|
|
983
|
+
<div part="step-container" id="stepContainer" style=${styleMap(stepContainerStyle)}>
|
|
984
|
+
<div part="step" id="steps" style=${styleMap(stepsStyle)}></div>
|
|
985
|
+
</div>
|
|
986
|
+
</div>
|
|
987
|
+
`;
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* Implement `render` Thumb template.
|
|
991
|
+
* @param value thumb value in track
|
|
992
|
+
* @param percentageValue thumb position in track
|
|
993
|
+
* @param name name of active thumb
|
|
994
|
+
* @returns Track template
|
|
995
|
+
*/
|
|
996
|
+
renderThumb(value, percentageValue, name) {
|
|
997
|
+
const thumbStyle = { left: `${percentageValue}%` };
|
|
998
|
+
return html `
|
|
999
|
+
<div part="thumb-container" name=${name} id="thumbContainer" style=${styleMap(thumbStyle)}>
|
|
1000
|
+
<div part="pin">
|
|
1001
|
+
<span id="pinMarker" part="pin-value-marker">${value}</span></div>
|
|
1002
|
+
<div part="thumb" draggable="true" id="thumb"></div>
|
|
1003
|
+
</div>
|
|
1004
|
+
`;
|
|
1005
|
+
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Implement `render` Thumb has range template.
|
|
1008
|
+
* @param from thumb value start in track
|
|
1009
|
+
* @param to thumb value end in track
|
|
1010
|
+
* @returns Thumb has range template
|
|
1011
|
+
*/
|
|
1012
|
+
renderThumbRange(from, to) {
|
|
1013
|
+
const fromPercentageValue = this.calculatePercentage(from);
|
|
1014
|
+
const toPercentageValue = this.calculatePercentage(to);
|
|
1015
|
+
return html `
|
|
1016
|
+
${this.renderThumb(from, fromPercentageValue, 'from')}
|
|
1017
|
+
${this.renderThumb(to, toPercentageValue, 'to')}
|
|
1018
|
+
`;
|
|
1019
|
+
}
|
|
1020
|
+
/**
|
|
1021
|
+
* Implement `render` number field has template.
|
|
1022
|
+
* @param value value in the slider for binding in the input value
|
|
1023
|
+
* @param name name input value
|
|
1024
|
+
* @returns {TemplateResult} number field template
|
|
1025
|
+
*/
|
|
1026
|
+
renderNumberField(value, name) {
|
|
1027
|
+
return html `
|
|
1028
|
+
<ef-number-field
|
|
1029
|
+
@blur=${this.onBlur}
|
|
1030
|
+
@keydown=${this.onKeydown}
|
|
1031
|
+
part="input"
|
|
1032
|
+
name="${name}"
|
|
1033
|
+
no-spinner
|
|
1034
|
+
.value="${value}"
|
|
1035
|
+
min="${this.min}"
|
|
1036
|
+
max="${this.max}"
|
|
1037
|
+
step="${this.step}"
|
|
1038
|
+
?disabled="${this.disabled}"
|
|
1039
|
+
?readonly="${this.readonly || this.showInputField === 'readonly'}"
|
|
1040
|
+
></ef-number-field>
|
|
1041
|
+
`;
|
|
1042
|
+
}
|
|
1043
|
+
/**
|
|
1044
|
+
* Define styles in a tagged template literal, using the css tag function.
|
|
1045
|
+
* @returns CSS template
|
|
1046
|
+
*/
|
|
1047
|
+
static get styles() {
|
|
1048
|
+
return css `
|
|
1049
|
+
:host {
|
|
1050
|
+
display: flex;
|
|
1051
|
+
}
|
|
1052
|
+
[part=slider-wrapper] {
|
|
1053
|
+
position: relative;
|
|
1054
|
+
width: 100%;
|
|
1055
|
+
}
|
|
1056
|
+
[part=slider] {
|
|
1057
|
+
width: 100%;
|
|
1058
|
+
height: 100%;
|
|
1059
|
+
display: inline-block;
|
|
1060
|
+
}
|
|
1061
|
+
:host(:not([disabled]):focus){
|
|
1062
|
+
outline:none;
|
|
1063
|
+
}
|
|
1064
|
+
:host([show-steps]) [part=track-wrapper]::after {
|
|
1065
|
+
display:block;
|
|
1066
|
+
position: absolute;
|
|
1067
|
+
content: "";
|
|
1068
|
+
right: 0;
|
|
1069
|
+
}
|
|
1070
|
+
[part=track-wrapper]{
|
|
1071
|
+
content: "";
|
|
1072
|
+
position: absolute;
|
|
1073
|
+
width: 100%;
|
|
1074
|
+
top: 50%;
|
|
1075
|
+
left: 0;
|
|
1076
|
+
pointer-events: none;
|
|
1077
|
+
}
|
|
1078
|
+
[part=thumb-container]{
|
|
1079
|
+
position: absolute;
|
|
1080
|
+
top: 0;
|
|
1081
|
+
width: 100%;
|
|
1082
|
+
z-index: 5;
|
|
1083
|
+
}
|
|
1084
|
+
[part=thumb]{
|
|
1085
|
+
position: absolute;
|
|
1086
|
+
margin: 0 auto;
|
|
1087
|
+
}
|
|
1088
|
+
[part=pin]{
|
|
1089
|
+
display: flex;
|
|
1090
|
+
position: absolute;
|
|
1091
|
+
align-items: center;
|
|
1092
|
+
justify-content: center;
|
|
1093
|
+
z-index: 1;
|
|
1094
|
+
}
|
|
1095
|
+
:host([show-steps]) [part=step-container]{
|
|
1096
|
+
position: absolute;
|
|
1097
|
+
left: 0;
|
|
1098
|
+
width: 100%;
|
|
1099
|
+
}
|
|
1100
|
+
:host([show-steps]) [part=step]{
|
|
1101
|
+
width: 100%;
|
|
1102
|
+
position: absolute;
|
|
1103
|
+
left: 0;
|
|
1104
|
+
}
|
|
1105
|
+
[part=track-fill]{
|
|
1106
|
+
z-index: 2;
|
|
1107
|
+
content: "";
|
|
1108
|
+
position: absolute;
|
|
1109
|
+
left: 0;
|
|
1110
|
+
}
|
|
1111
|
+
:host([show-steps][step="0"]) [part=track-wrapper]::after{
|
|
1112
|
+
width: 0;
|
|
1113
|
+
}
|
|
1114
|
+
`;
|
|
1115
|
+
}
|
|
1116
|
+
/**
|
|
1117
|
+
* Implement `render` slider template.
|
|
1118
|
+
* @returns Slider template
|
|
1119
|
+
*/
|
|
1120
|
+
render() {
|
|
1121
|
+
return html `
|
|
1122
|
+
${this.range && this.isShowInputField ? this.renderNumberField(this.from, 'from') : null}
|
|
1123
|
+
<div part="slider-wrapper">
|
|
1124
|
+
<div part="slider">
|
|
1125
|
+
${this.renderTrackWrapper(this.range)}
|
|
1126
|
+
${this.range ? this.renderThumbRange(this.fromNumber, this.toNumber) : this.renderThumb(this.valueNumber, this.calculatePercentage(Number(this.value)), 'value')}
|
|
1127
|
+
</div>
|
|
1128
|
+
</div>
|
|
1129
|
+
${this.range && this.isShowInputField ? this.renderNumberField(this.to, 'to') : null}
|
|
1130
|
+
${!this.range && this.isShowInputField ? this.renderNumberField(this.value, 'value') : null}
|
|
1131
|
+
`;
|
|
1132
|
+
}
|
|
1133
|
+
};
|
|
1134
|
+
__decorate([
|
|
1135
|
+
property({ type: String })
|
|
1136
|
+
], Slider.prototype, "step", void 0);
|
|
1137
|
+
__decorate([
|
|
1138
|
+
property({ type: String })
|
|
1139
|
+
], Slider.prototype, "min", void 0);
|
|
1140
|
+
__decorate([
|
|
1141
|
+
property({ type: String })
|
|
1142
|
+
], Slider.prototype, "max", void 0);
|
|
1143
|
+
__decorate([
|
|
1144
|
+
property({ type: String })
|
|
1145
|
+
], Slider.prototype, "from", void 0);
|
|
1146
|
+
__decorate([
|
|
1147
|
+
property({ type: String })
|
|
1148
|
+
], Slider.prototype, "to", void 0);
|
|
1149
|
+
__decorate([
|
|
1150
|
+
property({ type: Boolean, reflect: true })
|
|
1151
|
+
], Slider.prototype, "pin", void 0);
|
|
1152
|
+
__decorate([
|
|
1153
|
+
property({ type: Boolean, reflect: true })
|
|
1154
|
+
], Slider.prototype, "range", void 0);
|
|
1155
|
+
__decorate([
|
|
1156
|
+
property({ type: Boolean, reflect: true, attribute: 'show-steps' })
|
|
1157
|
+
], Slider.prototype, "showSteps", void 0);
|
|
1158
|
+
__decorate([
|
|
1159
|
+
property({ type: String, reflect: true, attribute: 'show-input-field' })
|
|
1160
|
+
], Slider.prototype, "showInputField", void 0);
|
|
1161
|
+
__decorate([
|
|
1162
|
+
property({ type: String, attribute: 'min-range' })
|
|
1163
|
+
], Slider.prototype, "minRange", void 0);
|
|
1164
|
+
__decorate([
|
|
1165
|
+
query('[part="slider"]')
|
|
1166
|
+
], Slider.prototype, "slider", void 0);
|
|
1167
|
+
__decorate([
|
|
1168
|
+
query('#trackWrapper')
|
|
1169
|
+
], Slider.prototype, "trackWrapper", void 0);
|
|
1170
|
+
__decorate([
|
|
1171
|
+
query('#thumbContainer')
|
|
1172
|
+
], Slider.prototype, "thumbContainer", void 0);
|
|
1173
|
+
__decorate([
|
|
1174
|
+
query('ef-number-field[name=value]')
|
|
1175
|
+
], Slider.prototype, "valueInput", void 0);
|
|
1176
|
+
__decorate([
|
|
1177
|
+
query('ef-number-field[name=from]')
|
|
1178
|
+
], Slider.prototype, "fromInput", void 0);
|
|
1179
|
+
__decorate([
|
|
1180
|
+
query('ef-number-field[name=to]')
|
|
1181
|
+
], Slider.prototype, "toInput", void 0);
|
|
1182
|
+
Slider = __decorate([
|
|
1183
|
+
customElement('ef-slider', {
|
|
1184
|
+
alias: 'coral-slider'
|
|
1185
|
+
})
|
|
1186
|
+
], Slider);
|
|
1187
|
+
export { Slider };
|