@refinitiv-ui/elements 5.3.3 → 5.3.4
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/lib/accordion/custom-elements.json +49 -0
- package/lib/accordion/index.d.ts +76 -0
- package/lib/accordion/index.js +139 -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/index.d.ts +65 -0
- package/lib/appstate-bar/index.js +103 -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 +223 -0
- package/lib/autosuggest/helpers/const.d.ts +2 -0
- package/lib/autosuggest/helpers/const.js +3 -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 +76 -0
- package/lib/autosuggest/index.d.ts +533 -0
- package/lib/autosuggest/index.js +1248 -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/index.d.ts +132 -0
- package/lib/button/index.js +213 -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/index.d.ts +76 -0
- package/lib/button-bar/index.js +157 -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/custom-elements.json +199 -0
- package/lib/calendar/index.d.ts +321 -0
- package/lib/calendar/index.js +926 -0
- package/lib/calendar/locales.d.ts +31 -0
- package/lib/calendar/locales.js +144 -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 +33 -0
- package/lib/calendar/types.js +6 -0
- package/lib/calendar/utils.d.ts +12 -0
- package/lib/calendar/utils.js +17 -0
- package/lib/canvas/custom-elements.json +69 -0
- package/lib/canvas/index.d.ts +100 -0
- package/lib/canvas/index.js +175 -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/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 +247 -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/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 +493 -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 +71 -0
- package/lib/checkbox/index.d.ts +89 -0
- package/lib/checkbox/index.js +170 -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 +108 -0
- package/lib/clock/index.d.ts +309 -0
- package/lib/clock/index.js +564 -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/index.d.ts +119 -0
- package/lib/collapse/index.js +199 -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/elements/color-palettes.d.ts +52 -0
- package/lib/color-dialog/elements/color-palettes.js +105 -0
- package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
- package/lib/color-dialog/elements/grayscale-palettes.js +164 -0
- package/lib/color-dialog/elements/palettes.d.ts +58 -0
- package/lib/color-dialog/elements/palettes.js +119 -0
- package/lib/color-dialog/helpers/color-helpers.d.ts +62 -0
- package/lib/color-dialog/helpers/color-helpers.js +258 -0
- package/lib/color-dialog/helpers/value-model.d.ts +75 -0
- package/lib/color-dialog/helpers/value-model.js +139 -0
- package/lib/color-dialog/index.d.ts +232 -0
- package/lib/color-dialog/index.js +457 -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 +207 -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/index.d.ts +89 -0
- package/lib/counter/index.js +155 -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/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 +46 -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/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/index.d.ts +152 -0
- package/lib/email-field/index.js +287 -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 +2 -0
- package/lib/flag/custom-elements.json +35 -0
- package/lib/flag/index.d.ts +94 -0
- package/lib/flag/index.js +168 -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/index.d.ts +46 -0
- package/lib/header/index.js +76 -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/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 +1104 -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 +34 -0
- package/lib/icon/index.d.ts +87 -0
- package/lib/icon/index.js +161 -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 +47 -0
- package/lib/icon/utils/IconLoader.js +86 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/interactive-chart/custom-elements.json +86 -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 +1093 -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 +153 -0
- package/lib/item/helpers/types.d.ts +57 -0
- package/lib/item/helpers/types.js +1 -0
- package/lib/item/index.d.ts +149 -0
- package/lib/item/index.js +252 -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/index.d.ts +102 -0
- package/lib/label/index.js +252 -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/index.d.ts +107 -0
- package/lib/layout/index.js +215 -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/index.d.ts +143 -0
- package/lib/led-gauge/index.js +440 -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/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 +604 -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/index.d.ts +41 -0
- package/lib/loader/index.js +65 -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/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 +591 -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/elements/notification-tray.d.ts +97 -0
- package/lib/notification/elements/notification-tray.js +170 -0
- package/lib/notification/elements/notification.d.ts +90 -0
- package/lib/notification/elements/notification.js +157 -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/index.d.ts +294 -0
- package/lib/number-field/index.js +708 -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 +342 -0
- package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
- package/lib/overlay/elements/overlay-backdrop.js +67 -0
- package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
- package/lib/overlay/elements/overlay-viewport.js +56 -0
- package/lib/overlay/elements/overlay.d.ts +403 -0
- package/lib/overlay/elements/overlay.js +1427 -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 +207 -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 +196 -0
- package/lib/overlay-menu/helpers/types.d.ts +8 -0
- package/lib/overlay-menu/helpers/types.js +1 -0
- package/lib/overlay-menu/helpers/uuid.d.ts +7 -0
- package/lib/overlay-menu/helpers/uuid.js +13 -0
- package/lib/overlay-menu/index.d.ts +380 -0
- package/lib/overlay-menu/index.js +921 -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/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 +400 -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/index.d.ts +48 -0
- package/lib/panel/index.js +77 -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/index.d.ts +140 -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/index.d.ts +97 -0
- package/lib/pill/index.js +162 -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/index.d.ts +82 -0
- package/lib/progress-bar/index.js +159 -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 +84 -0
- package/lib/radio-button/index.d.ts +106 -0
- package/lib/radio-button/index.js +195 -0
- package/lib/radio-button/radio-button-registry.d.ts +21 -0
- package/lib/radio-button/radio-button-registry.js +40 -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/index.d.ts +91 -0
- package/lib/rating/index.js +158 -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/index.d.ts +134 -0
- package/lib/search-field/index.js +254 -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/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/index.d.ts +69 -0
- package/lib/sidebar-layout/index.js +135 -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/index.d.ts +409 -0
- package/lib/slider/index.js +1188 -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/index.d.ts +107 -0
- package/lib/sparkline/index.js +188 -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/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/index.d.ts +118 -0
- package/lib/tab/index.js +211 -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/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 +220 -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/index.d.ts +171 -0
- package/lib/text-field/index.js +319 -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/index.d.ts +379 -0
- package/lib/time-picker/index.js +777 -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 +84 -0
- package/lib/toggle/index.d.ts +77 -0
- package/lib/toggle/index.js +134 -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/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 +479 -0
- package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
- package/lib/tooltip/managers/tooltip-manager.js +144 -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/elements/tornado-chart.d.ts +78 -0
- package/lib/tornado-chart/elements/tornado-chart.js +125 -0
- package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
- package/lib/tornado-chart/elements/tornado-item.js +209 -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 +100 -0
- package/lib/tree/elements/tree-item.d.ts +96 -0
- package/lib/tree/elements/tree-item.js +182 -0
- package/lib/tree/elements/tree.d.ts +156 -0
- package/lib/tree/elements/tree.js +286 -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 +17 -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 +236 -0
- package/lib/tree/managers/tree-manager.js +379 -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/helpers/types.d.ts +4 -0
- package/lib/tree-select/helpers/types.js +1 -0
- package/lib/tree-select/index.d.ts +400 -0
- package/lib/tree-select/index.js +881 -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/package.json +9 -9
|
@@ -0,0 +1,777 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ControlElement, html, css, query, customElement, property } from '@refinitiv-ui/core';
|
|
8
|
+
import '../number-field';
|
|
9
|
+
import { isValidTime, toTimeSegment, TimeFormat, getFormat, format, isAM, isPM, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_HOUR, addOffset, padNumber } from '@refinitiv-ui/utils';
|
|
10
|
+
import { VERSION } from '../';
|
|
11
|
+
var Segment;
|
|
12
|
+
(function (Segment) {
|
|
13
|
+
Segment["HOURS"] = "hours";
|
|
14
|
+
Segment["MINUTES"] = "minutes";
|
|
15
|
+
Segment["SECONDS"] = "seconds";
|
|
16
|
+
})(Segment || (Segment = {}));
|
|
17
|
+
const MIN_UNIT = 0;
|
|
18
|
+
const MAX_HOURS = 23;
|
|
19
|
+
const MAX_MINUTES = 59;
|
|
20
|
+
const MAX_SECONDS = 59;
|
|
21
|
+
const HOURS_IN_DAY = 24;
|
|
22
|
+
const HOURS_OF_NOON = 12;
|
|
23
|
+
const Placeholder = {
|
|
24
|
+
HOURS: '--',
|
|
25
|
+
MINUTES: '--',
|
|
26
|
+
SECONDS: '--'
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Control the time input
|
|
30
|
+
* @event value-changed - Dispatched when value changes
|
|
31
|
+
*
|
|
32
|
+
* @attr {boolean} readonly - Set readonly state
|
|
33
|
+
* @prop {boolean} [readonly=false] - Set readonly state
|
|
34
|
+
*
|
|
35
|
+
* @attr {boolean} disabled - Set disabled state
|
|
36
|
+
* @prop {boolean} [disabled=false] - Set disabled state
|
|
37
|
+
*/
|
|
38
|
+
let TimePicker = class TimePicker extends ControlElement {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(...arguments);
|
|
41
|
+
this.isMobile = false;
|
|
42
|
+
/**
|
|
43
|
+
* Internal hours value, used only in value getters and setters
|
|
44
|
+
*/
|
|
45
|
+
this._hours = null;
|
|
46
|
+
/**
|
|
47
|
+
* Internal minutes value, used only in value getters and setters
|
|
48
|
+
*/
|
|
49
|
+
this._minutes = null;
|
|
50
|
+
/**
|
|
51
|
+
* Internal seconds value, used only in value getters and setters
|
|
52
|
+
*/
|
|
53
|
+
this._seconds = null;
|
|
54
|
+
/**
|
|
55
|
+
* If external value is set with seconds, this flag is true.
|
|
56
|
+
* The flag is not relevant when withSecond is forced to be true
|
|
57
|
+
*/
|
|
58
|
+
this.valueWithSeconds = false;
|
|
59
|
+
/**
|
|
60
|
+
* Toggles 12hr time display
|
|
61
|
+
*/
|
|
62
|
+
this.amPm = false;
|
|
63
|
+
/**
|
|
64
|
+
* Flag to show seconds time segment in display.
|
|
65
|
+
* Seconds are automatically shown when `hh:mm:ss` time format is provided as a value.
|
|
66
|
+
*/
|
|
67
|
+
this.showSeconds = false;
|
|
68
|
+
/**
|
|
69
|
+
* Handles the blur event of any inputs
|
|
70
|
+
*
|
|
71
|
+
* @param event Event Object
|
|
72
|
+
* @returns {void}
|
|
73
|
+
*/
|
|
74
|
+
this.onBlur = (event) => {
|
|
75
|
+
if (this.readonly) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const target = event.target;
|
|
79
|
+
const value = target.value;
|
|
80
|
+
let segment;
|
|
81
|
+
if (target === this.hoursInput) {
|
|
82
|
+
segment = Segment.HOURS;
|
|
83
|
+
}
|
|
84
|
+
else if (target === this.minutesInput) {
|
|
85
|
+
segment = Segment.MINUTES;
|
|
86
|
+
}
|
|
87
|
+
else if (target === this.secondsInput) {
|
|
88
|
+
segment = Segment.SECONDS;
|
|
89
|
+
}
|
|
90
|
+
/* istanbul ignore next */
|
|
91
|
+
if (!segment) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (value) {
|
|
95
|
+
this.updateTimeSegmentTo(segment, Number(value));
|
|
96
|
+
}
|
|
97
|
+
this.updateSegmentValue(segment);
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Handles the focus event of any inputs
|
|
101
|
+
*
|
|
102
|
+
* @param event Event Object
|
|
103
|
+
* @returns {void}
|
|
104
|
+
*/
|
|
105
|
+
this.onFocus = (event) => {
|
|
106
|
+
if (this.readonly) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
event.target.value = '';
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Handles any keydown events
|
|
113
|
+
* Used for control keys
|
|
114
|
+
*
|
|
115
|
+
* @param event Event Object
|
|
116
|
+
* @returns {void}
|
|
117
|
+
*/
|
|
118
|
+
this.onKeydown = (event) => {
|
|
119
|
+
this.manageControlKeys(event);
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Element version number
|
|
124
|
+
* @returns version number
|
|
125
|
+
*/
|
|
126
|
+
static get version() {
|
|
127
|
+
return VERSION;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Hours time segment in 24hr format
|
|
131
|
+
* @param hours hours value
|
|
132
|
+
* @returns {void}
|
|
133
|
+
*/
|
|
134
|
+
set hours(hours) {
|
|
135
|
+
const oldHours = this.hours;
|
|
136
|
+
if ((hours !== null && isNaN(hours)) || oldHours === hours) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
this._hours = this.validUnit(hours, MIN_UNIT, MAX_HOURS, oldHours);
|
|
140
|
+
if (this._hours !== oldHours) {
|
|
141
|
+
void this.requestUpdate('hours', oldHours);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get hours value
|
|
146
|
+
* @returns hours
|
|
147
|
+
*/
|
|
148
|
+
get hours() {
|
|
149
|
+
return this._hours;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Minutes time segment
|
|
153
|
+
* @param minutes minutes value
|
|
154
|
+
* @returns {void}
|
|
155
|
+
*/
|
|
156
|
+
set minutes(minutes) {
|
|
157
|
+
const oldMinutes = this.minutes;
|
|
158
|
+
if ((minutes !== null && isNaN(minutes)) || oldMinutes === minutes) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
this._minutes = this.validUnit(minutes, MIN_UNIT, MAX_MINUTES, oldMinutes);
|
|
162
|
+
if (this._minutes !== oldMinutes) {
|
|
163
|
+
void this.requestUpdate('minutes', oldMinutes);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get minutes value
|
|
168
|
+
* @returns hours
|
|
169
|
+
*/
|
|
170
|
+
get minutes() {
|
|
171
|
+
return this._minutes;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Seconds time segment
|
|
175
|
+
* @param seconds seconds value
|
|
176
|
+
* @returns {void}
|
|
177
|
+
*/
|
|
178
|
+
set seconds(seconds) {
|
|
179
|
+
const oldSeconds = this.seconds;
|
|
180
|
+
if ((seconds !== null && isNaN(seconds)) || oldSeconds === seconds) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
this._seconds = this.validUnit(seconds, MIN_UNIT, MAX_SECONDS, oldSeconds);
|
|
184
|
+
if (this._seconds !== oldSeconds) {
|
|
185
|
+
void this.requestUpdate('seconds', oldSeconds);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get seconds value
|
|
190
|
+
* @returns seconds
|
|
191
|
+
*/
|
|
192
|
+
get seconds() {
|
|
193
|
+
return this._seconds;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Value of the element
|
|
197
|
+
* @default -
|
|
198
|
+
* @param value Element value
|
|
199
|
+
*/
|
|
200
|
+
set value(value) {
|
|
201
|
+
const oldValue = this.value;
|
|
202
|
+
value = this.castValue(value);
|
|
203
|
+
if (!this.isValidValue(value)) {
|
|
204
|
+
this.warnInvalidValue(value);
|
|
205
|
+
// it does not make sense to clear value here, as the value is always defined
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
/* special case to reset hours, minutes and seconds */
|
|
209
|
+
if (value === '' && (this.hours || this.minutes || this.seconds)) {
|
|
210
|
+
this.hours = null;
|
|
211
|
+
this.minutes = null;
|
|
212
|
+
this.seconds = null;
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (oldValue !== value) { /** never store actual value, instead operate with hours/minutes/seconds */
|
|
216
|
+
const info = toTimeSegment(value);
|
|
217
|
+
const format = getFormat(value);
|
|
218
|
+
this.valueWithSeconds = format === TimeFormat.HHmmss || format === TimeFormat.HHmmssSSS;
|
|
219
|
+
this.hours = info.hours;
|
|
220
|
+
this.minutes = info.minutes;
|
|
221
|
+
this.seconds = info.seconds;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
get value() {
|
|
225
|
+
if (this.hours === null || this.minutes === null || (this.isShowSeconds && this.seconds === null)) {
|
|
226
|
+
return '';
|
|
227
|
+
}
|
|
228
|
+
return this.currentTimeString;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Return the current time string, based on the current hours, minutes and seconds.
|
|
232
|
+
* Used internally to set the value string after updates.
|
|
233
|
+
*/
|
|
234
|
+
get currentTimeString() {
|
|
235
|
+
return format({
|
|
236
|
+
hours: this.hours || 0,
|
|
237
|
+
minutes: this.minutes || 0,
|
|
238
|
+
seconds: this.seconds || 0,
|
|
239
|
+
milliseconds: 0
|
|
240
|
+
}, this.isShowSeconds ? TimeFormat.HHmmss : TimeFormat.HHmm);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Seconds are automatically shown when `hh:mm:ss` time format is provided as a value.
|
|
244
|
+
*/
|
|
245
|
+
get isShowSeconds() {
|
|
246
|
+
return this.showSeconds || this.valueWithSeconds;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Formats the hours value
|
|
250
|
+
*/
|
|
251
|
+
get formattedHours() {
|
|
252
|
+
const _hours = this.hours;
|
|
253
|
+
let hours = _hours;
|
|
254
|
+
if (_hours !== null) {
|
|
255
|
+
hours = this.amPm && _hours > HOURS_OF_NOON
|
|
256
|
+
? _hours - HOURS_OF_NOON : this.amPm && !_hours ? HOURS_OF_NOON : _hours;
|
|
257
|
+
}
|
|
258
|
+
return this.formattedUnit(hours);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Formats the minutes value
|
|
262
|
+
*/
|
|
263
|
+
get formattedMinutes() {
|
|
264
|
+
return this.formattedUnit(this.minutes);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Formats the seconds value
|
|
268
|
+
* @returns Formatted number
|
|
269
|
+
*/
|
|
270
|
+
get formattedSeconds() {
|
|
271
|
+
return this.formattedUnit(this.seconds);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* On first updated life-cycle
|
|
275
|
+
*
|
|
276
|
+
* @param changedProperties changed properties
|
|
277
|
+
* @returns {void}
|
|
278
|
+
*/
|
|
279
|
+
firstUpdated(changedProperties) {
|
|
280
|
+
super.firstUpdated(changedProperties);
|
|
281
|
+
// add events
|
|
282
|
+
this.renderRoot.addEventListener('blur', this.onBlur, true);
|
|
283
|
+
this.renderRoot.addEventListener('focus', this.onFocus, true);
|
|
284
|
+
this.renderRoot.addEventListener('keydown', this.onKeydown, true);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* On updated life-cycle
|
|
288
|
+
*
|
|
289
|
+
* @param changedProperties changed properties
|
|
290
|
+
* @returns {void}
|
|
291
|
+
*/
|
|
292
|
+
updated(changedProperties) {
|
|
293
|
+
super.updated(changedProperties);
|
|
294
|
+
/* istanbul ignore next */
|
|
295
|
+
if (this.hasTimeChanged(changedProperties) && this.isMobile) {
|
|
296
|
+
this.updateMobileTimePickerValue();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Overwrite validation method for value
|
|
301
|
+
*
|
|
302
|
+
* @param value value
|
|
303
|
+
* @returns {boolean} result
|
|
304
|
+
*/
|
|
305
|
+
isValidValue(value) {
|
|
306
|
+
return value === '' || isValidTime(value);
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Set time segment value in consistent way
|
|
310
|
+
* @param segment Time segment
|
|
311
|
+
* @param value Value to check
|
|
312
|
+
* @returns {void}
|
|
313
|
+
*/
|
|
314
|
+
setSegmentAndNotify(segment, value) {
|
|
315
|
+
const oldValue = this.value;
|
|
316
|
+
switch (segment) {
|
|
317
|
+
case Segment.HOURS:
|
|
318
|
+
this.hours = value;
|
|
319
|
+
break;
|
|
320
|
+
case Segment.MINUTES:
|
|
321
|
+
this.minutes = value;
|
|
322
|
+
break;
|
|
323
|
+
case Segment.SECONDS:
|
|
324
|
+
this.seconds = value;
|
|
325
|
+
break;
|
|
326
|
+
// no default
|
|
327
|
+
}
|
|
328
|
+
// Pre-populate empty segments
|
|
329
|
+
if (value !== null) {
|
|
330
|
+
if (segment === Segment.HOURS && this.minutes === null) {
|
|
331
|
+
this.minutes = 0;
|
|
332
|
+
}
|
|
333
|
+
if (this.isShowSeconds && this.seconds === null && (segment === Segment.HOURS || segment === Segment.MINUTES)) {
|
|
334
|
+
this.seconds = 0;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// verify value again, as time segment validation
|
|
338
|
+
// might fail in setter and previous value returned
|
|
339
|
+
if (oldValue !== this.value) {
|
|
340
|
+
this.notifyPropertyChange('value', this.value);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* True if time segment has changed
|
|
345
|
+
* @param changedProperties changed properties
|
|
346
|
+
* @returns True if changed
|
|
347
|
+
*/
|
|
348
|
+
hasTimeChanged(changedProperties) {
|
|
349
|
+
return changedProperties.has('hours')
|
|
350
|
+
|| changedProperties.has('minutes')
|
|
351
|
+
|| changedProperties.has('seconds');
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Validates a given unit against a min and max value, returning a fallback if invalid.
|
|
355
|
+
*
|
|
356
|
+
* @param unit Unit to validate
|
|
357
|
+
* @param min Minimum allowed
|
|
358
|
+
* @param max Maximum allowed
|
|
359
|
+
* @param fallback Fallback value to use, if unit is invalid
|
|
360
|
+
* @returns unit or fallback or 0 value
|
|
361
|
+
*/
|
|
362
|
+
validUnit(unit, min, max, fallback) {
|
|
363
|
+
if (unit === null) {
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
if (isNaN(unit) || unit < min || unit > max) {
|
|
367
|
+
return fallback;
|
|
368
|
+
}
|
|
369
|
+
return unit;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Handles value change from native time picker on mobile devices
|
|
373
|
+
*
|
|
374
|
+
* @param event Event Object
|
|
375
|
+
* @returns {void}
|
|
376
|
+
*/
|
|
377
|
+
/* istanbul ignore next */
|
|
378
|
+
onMobileTimeChange(event) {
|
|
379
|
+
this.value = event.target.value;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Helper, used to update the mobile time picker value
|
|
383
|
+
*
|
|
384
|
+
* @returns {void}
|
|
385
|
+
*/
|
|
386
|
+
/* istanbul ignore next */
|
|
387
|
+
updateMobileTimePickerValue() {
|
|
388
|
+
if (this.mtpInput) {
|
|
389
|
+
this.mtpInput.value = this.value;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Updates a time segment to the provided value
|
|
394
|
+
*
|
|
395
|
+
* @param segment Segment id
|
|
396
|
+
* @param value Unit to change to
|
|
397
|
+
* @returns {void}
|
|
398
|
+
*/
|
|
399
|
+
updateTimeSegmentTo(segment, value) {
|
|
400
|
+
if (segment === Segment.HOURS) {
|
|
401
|
+
value = this.getHoursSegment(value);
|
|
402
|
+
}
|
|
403
|
+
this.setSegmentAndNotify(segment, value);
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Updates the value of a time segment (element)
|
|
407
|
+
*
|
|
408
|
+
* @param segment Segment's name
|
|
409
|
+
* @returns {void}
|
|
410
|
+
*/
|
|
411
|
+
updateSegmentValue(segment) {
|
|
412
|
+
switch (segment) {
|
|
413
|
+
case Segment.HOURS:
|
|
414
|
+
this.updateHoursSegmentValue();
|
|
415
|
+
break;
|
|
416
|
+
case Segment.MINUTES:
|
|
417
|
+
this.updateMinutesSegmentValue();
|
|
418
|
+
break;
|
|
419
|
+
case Segment.SECONDS:
|
|
420
|
+
this.updateSecondsSegmentValue();
|
|
421
|
+
break;
|
|
422
|
+
// no default
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Handle valid control keys and execute their corresponding commands
|
|
427
|
+
* Will stop when readonly is set
|
|
428
|
+
*
|
|
429
|
+
* @param event Event Object
|
|
430
|
+
* @returns {void}
|
|
431
|
+
*/
|
|
432
|
+
manageControlKeys(event) {
|
|
433
|
+
if (this.readonly || this.disabled) {
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
switch (event.key) {
|
|
437
|
+
case 'Up': // IE
|
|
438
|
+
case 'ArrowUp':
|
|
439
|
+
this.handleUpKey(event);
|
|
440
|
+
break;
|
|
441
|
+
case 'Down': // IE
|
|
442
|
+
case 'ArrowDown':
|
|
443
|
+
this.handleDownKey(event);
|
|
444
|
+
break;
|
|
445
|
+
case 'Enter':
|
|
446
|
+
case 'Spacebar':
|
|
447
|
+
case ' ':
|
|
448
|
+
this.handleEnterKey(event);
|
|
449
|
+
break;
|
|
450
|
+
case 'Backspace':
|
|
451
|
+
this.handleBackspaceKey(event);
|
|
452
|
+
return;
|
|
453
|
+
default:
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
event.preventDefault();
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Handles ENTER key press
|
|
460
|
+
*
|
|
461
|
+
* @param event Event Object
|
|
462
|
+
* @returns {void}
|
|
463
|
+
*/
|
|
464
|
+
handleEnterKey(event) {
|
|
465
|
+
event.target.blur();
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Handles UP key press
|
|
469
|
+
*
|
|
470
|
+
* @param event Event Object
|
|
471
|
+
* @returns {void}
|
|
472
|
+
*/
|
|
473
|
+
handleUpKey(event) {
|
|
474
|
+
this.toggleOrModify(1, event.target);
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Handle DOWN key press
|
|
478
|
+
*
|
|
479
|
+
* @param event Event Object
|
|
480
|
+
* @returns {void}
|
|
481
|
+
*/
|
|
482
|
+
handleDownKey(event) {
|
|
483
|
+
this.toggleOrModify(-1, event.target);
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Handle Backspace key press
|
|
487
|
+
*
|
|
488
|
+
* @param event Event Object
|
|
489
|
+
* @returns {void}
|
|
490
|
+
*/
|
|
491
|
+
handleBackspaceKey(event) {
|
|
492
|
+
const target = event.target;
|
|
493
|
+
if (target === this.hoursInput) {
|
|
494
|
+
this.setSegmentAndNotify(Segment.HOURS, null);
|
|
495
|
+
}
|
|
496
|
+
else if (target === this.minutesInput) {
|
|
497
|
+
this.setSegmentAndNotify(Segment.MINUTES, null);
|
|
498
|
+
}
|
|
499
|
+
else if (target === this.secondsInput) {
|
|
500
|
+
this.setSegmentAndNotify(Segment.SECONDS, null);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Toggles the amPm flag or updates the time segment value.
|
|
505
|
+
* Essentially a handler for user inputs on the control.
|
|
506
|
+
*
|
|
507
|
+
* @param amount to change value by
|
|
508
|
+
* @param target Segment id
|
|
509
|
+
* @returns {void}
|
|
510
|
+
*/
|
|
511
|
+
toggleOrModify(amount, target) {
|
|
512
|
+
if (target === this.toggleEl) {
|
|
513
|
+
this.toggle();
|
|
514
|
+
}
|
|
515
|
+
else if (target === this.hoursInput) {
|
|
516
|
+
this.changeValueBy(amount, Segment.HOURS);
|
|
517
|
+
}
|
|
518
|
+
else if (target === this.minutesInput) {
|
|
519
|
+
this.changeValueBy(amount, Segment.MINUTES);
|
|
520
|
+
}
|
|
521
|
+
else if (target === this.secondsInput) {
|
|
522
|
+
this.changeValueBy(amount, Segment.SECONDS);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Changes a time segment value by a specified amount.
|
|
527
|
+
* Also updates parent values when rolling through cycles.
|
|
528
|
+
*
|
|
529
|
+
* @param amount Amount to change by
|
|
530
|
+
* @param segment Segment id
|
|
531
|
+
* @returns {void}
|
|
532
|
+
*/
|
|
533
|
+
changeValueBy(amount, segment) {
|
|
534
|
+
let offset = 0;
|
|
535
|
+
switch (segment) {
|
|
536
|
+
case Segment.HOURS:
|
|
537
|
+
offset = this.hours === null ? 0 : amount * MILLISECONDS_IN_HOUR;
|
|
538
|
+
break;
|
|
539
|
+
case Segment.MINUTES:
|
|
540
|
+
offset = this.minutes === null ? 0 : amount * MILLISECONDS_IN_MINUTE;
|
|
541
|
+
break;
|
|
542
|
+
case Segment.SECONDS:
|
|
543
|
+
offset = this.seconds === null ? 0 : amount * MILLISECONDS_IN_SECOND;
|
|
544
|
+
break;
|
|
545
|
+
// no default
|
|
546
|
+
}
|
|
547
|
+
const value = addOffset(this.currentTimeString, offset);
|
|
548
|
+
this.setValueAndNotify(value);
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Gets the hours segment of the provided value
|
|
552
|
+
* as there is extra logic required for 12hr support
|
|
553
|
+
*
|
|
554
|
+
* @param value Unit to change to
|
|
555
|
+
* @returns updated value
|
|
556
|
+
*/
|
|
557
|
+
getHoursSegment(value) {
|
|
558
|
+
if (this.amPm) {
|
|
559
|
+
if (value === HOURS_OF_NOON && this.isAM()) {
|
|
560
|
+
value = 0;
|
|
561
|
+
}
|
|
562
|
+
if (this.isPM() && value < HOURS_OF_NOON) {
|
|
563
|
+
value += HOURS_OF_NOON;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
return value;
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Updates the value of the hours element
|
|
570
|
+
*
|
|
571
|
+
* @returns {void}
|
|
572
|
+
*/
|
|
573
|
+
updateHoursSegmentValue() {
|
|
574
|
+
if (this.hoursInput) {
|
|
575
|
+
this.hoursInput.value = this.formattedHours;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* Updated the value of the minutes element
|
|
580
|
+
*
|
|
581
|
+
* @returns {void}
|
|
582
|
+
*/
|
|
583
|
+
updateMinutesSegmentValue() {
|
|
584
|
+
if (this.minutesInput) {
|
|
585
|
+
this.minutesInput.value = this.formattedMinutes;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
/**
|
|
589
|
+
* Updates the value of the seconds element
|
|
590
|
+
*
|
|
591
|
+
* @returns {void}
|
|
592
|
+
*/
|
|
593
|
+
updateSecondsSegmentValue() {
|
|
594
|
+
if (this.secondsInput) {
|
|
595
|
+
this.secondsInput.value = this.formattedSeconds;
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Formats a given number and prefixes a 0 on numbers lower than 10
|
|
600
|
+
*
|
|
601
|
+
* @param n Number to format
|
|
602
|
+
* @returns Formatted number
|
|
603
|
+
*/
|
|
604
|
+
formattedUnit(n) {
|
|
605
|
+
return n === null ? '' : padNumber(n, 2);
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Returns `true` or `false` depending on whether the hours are before, or, after noon
|
|
609
|
+
*
|
|
610
|
+
* @returns Result
|
|
611
|
+
*/
|
|
612
|
+
isAM() {
|
|
613
|
+
return isAM(this.currentTimeString);
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* Returns opposite of isAM
|
|
617
|
+
*
|
|
618
|
+
* @returns Result
|
|
619
|
+
*/
|
|
620
|
+
isPM() {
|
|
621
|
+
return isPM(this.currentTimeString);
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* Toggles the AM/PM state
|
|
625
|
+
*
|
|
626
|
+
* @returns {void}
|
|
627
|
+
*/
|
|
628
|
+
toggle() {
|
|
629
|
+
if (this.amPm) {
|
|
630
|
+
const hours = this.hours === null ? new Date().getHours() : (this.hours + HOURS_IN_DAY / 2) % HOURS_IN_DAY;
|
|
631
|
+
this.setSegmentAndNotify(Segment.HOURS, hours);
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
/**
|
|
635
|
+
* A `CSSResult` that will be used
|
|
636
|
+
* to style the host, slotted children
|
|
637
|
+
* and the internal template of the element.
|
|
638
|
+
* @returns CSS template
|
|
639
|
+
*/
|
|
640
|
+
static get styles() {
|
|
641
|
+
return css `
|
|
642
|
+
:host {
|
|
643
|
+
display: inline-flex;
|
|
644
|
+
flex-flow: row nowrap;
|
|
645
|
+
align-items: center;
|
|
646
|
+
justify-content: center;
|
|
647
|
+
user-select:none;
|
|
648
|
+
position: relative;
|
|
649
|
+
}
|
|
650
|
+
input {
|
|
651
|
+
position: absolute;
|
|
652
|
+
top: 0;
|
|
653
|
+
left: 0;
|
|
654
|
+
width: 100%;
|
|
655
|
+
height: 100%;
|
|
656
|
+
opacity: 0;
|
|
657
|
+
}
|
|
658
|
+
`;
|
|
659
|
+
}
|
|
660
|
+
/**
|
|
661
|
+
* Template for Seconds Segment
|
|
662
|
+
*
|
|
663
|
+
* @returns Seconds segment
|
|
664
|
+
*/
|
|
665
|
+
getSecondsHtml() {
|
|
666
|
+
return this.isShowSeconds ? html `
|
|
667
|
+
<span part="divider"></span>
|
|
668
|
+
<ef-number-field
|
|
669
|
+
id="seconds"
|
|
670
|
+
part="input"
|
|
671
|
+
no-spinner
|
|
672
|
+
min="${MIN_UNIT}"
|
|
673
|
+
max="${MAX_SECONDS}"
|
|
674
|
+
.value="${this.formattedSeconds}"
|
|
675
|
+
placeholder="${this.formattedSeconds || Placeholder.SECONDS}"
|
|
676
|
+
?readonly="${this.readonly}"
|
|
677
|
+
?disabled="${this.disabled}"
|
|
678
|
+
transparent></ef-number-field>
|
|
679
|
+
` : null;
|
|
680
|
+
}
|
|
681
|
+
/**
|
|
682
|
+
* Template for AmPm Segment
|
|
683
|
+
*
|
|
684
|
+
* @returns Am/Pm segment
|
|
685
|
+
*/
|
|
686
|
+
getAmPmHtml() {
|
|
687
|
+
const hasHours = this.hours !== null;
|
|
688
|
+
return this.amPm ? html `
|
|
689
|
+
<div id="toggle" part="toggle" @tap=${this.toggle} tabindex="0">
|
|
690
|
+
<div part="toggle-item" ?active=${hasHours && this.isAM()}>AM</div>
|
|
691
|
+
<div part="toggle-item" ?active=${hasHours && this.isPM()}>PM</div>
|
|
692
|
+
</div>
|
|
693
|
+
` : null;
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Native input's template for mobile
|
|
697
|
+
*
|
|
698
|
+
* @returns input
|
|
699
|
+
*/
|
|
700
|
+
getNativeInputForMobile() {
|
|
701
|
+
return this.isMobile ? html `<input id="mtp" type="time" @change=${this.onMobileTimeChange}>` : null;
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* A `TemplateResult` that will be used
|
|
705
|
+
* to render the updated internal template.
|
|
706
|
+
* @returns Render template
|
|
707
|
+
*/
|
|
708
|
+
render() {
|
|
709
|
+
return html `
|
|
710
|
+
<ef-number-field
|
|
711
|
+
id="hours"
|
|
712
|
+
part="input"
|
|
713
|
+
no-spinner
|
|
714
|
+
transparent
|
|
715
|
+
min="${this.amPm ? 1 : MIN_UNIT}"
|
|
716
|
+
max="${this.amPm ? HOURS_OF_NOON : MAX_HOURS}"
|
|
717
|
+
.value="${this.formattedHours}"
|
|
718
|
+
placeholder="${this.formattedHours || Placeholder.HOURS}"
|
|
719
|
+
?disabled="${this.disabled}"
|
|
720
|
+
?readonly="${this.readonly}"></ef-number-field>
|
|
721
|
+
<span part="divider"></span>
|
|
722
|
+
<ef-number-field
|
|
723
|
+
id="minutes"
|
|
724
|
+
part="input"
|
|
725
|
+
no-spinner
|
|
726
|
+
min="${MIN_UNIT}"
|
|
727
|
+
max="${MAX_MINUTES}"
|
|
728
|
+
.value="${this.formattedMinutes}"
|
|
729
|
+
placeholder="${this.formattedMinutes || Placeholder.MINUTES}"
|
|
730
|
+
?readonly="${this.readonly}"
|
|
731
|
+
?disabled="${this.disabled}"
|
|
732
|
+
transparent></ef-number-field>
|
|
733
|
+
${this.getSecondsHtml()}
|
|
734
|
+
${this.getAmPmHtml()}
|
|
735
|
+
${this.getNativeInputForMobile()}
|
|
736
|
+
`;
|
|
737
|
+
}
|
|
738
|
+
};
|
|
739
|
+
__decorate([
|
|
740
|
+
property({ type: Number })
|
|
741
|
+
], TimePicker.prototype, "hours", null);
|
|
742
|
+
__decorate([
|
|
743
|
+
property({ type: Number })
|
|
744
|
+
], TimePicker.prototype, "minutes", null);
|
|
745
|
+
__decorate([
|
|
746
|
+
property({ type: Number })
|
|
747
|
+
], TimePicker.prototype, "seconds", null);
|
|
748
|
+
__decorate([
|
|
749
|
+
property({ type: Boolean, attribute: 'am-pm', reflect: true })
|
|
750
|
+
], TimePicker.prototype, "amPm", void 0);
|
|
751
|
+
__decorate([
|
|
752
|
+
property({ type: Boolean, attribute: 'show-seconds', reflect: true })
|
|
753
|
+
], TimePicker.prototype, "showSeconds", void 0);
|
|
754
|
+
__decorate([
|
|
755
|
+
property({ type: String })
|
|
756
|
+
], TimePicker.prototype, "value", null);
|
|
757
|
+
__decorate([
|
|
758
|
+
query('#mtp')
|
|
759
|
+
], TimePicker.prototype, "mtpInput", void 0);
|
|
760
|
+
__decorate([
|
|
761
|
+
query('#hours')
|
|
762
|
+
], TimePicker.prototype, "hoursInput", void 0);
|
|
763
|
+
__decorate([
|
|
764
|
+
query('#minutes')
|
|
765
|
+
], TimePicker.prototype, "minutesInput", void 0);
|
|
766
|
+
__decorate([
|
|
767
|
+
query('#seconds')
|
|
768
|
+
], TimePicker.prototype, "secondsInput", void 0);
|
|
769
|
+
__decorate([
|
|
770
|
+
query('#toggle')
|
|
771
|
+
], TimePicker.prototype, "toggleEl", void 0);
|
|
772
|
+
TimePicker = __decorate([
|
|
773
|
+
customElement('ef-time-picker', {
|
|
774
|
+
alias: 'coral-time-picker'
|
|
775
|
+
})
|
|
776
|
+
], TimePicker);
|
|
777
|
+
export { TimePicker };
|