mtrl 0.3.8 → 0.4.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/dist/LICENSE +21 -0
- package/dist/README.md +324 -0
- package/dist/components/badge/api.d.ts +48 -0
- package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
- package/dist/components/badge/config.d.ts +79 -0
- package/dist/components/badge/constants.d.ts +35 -0
- package/dist/components/badge/features.d.ts +36 -0
- package/dist/components/badge/index.d.ts +8 -0
- package/dist/components/badge/types.d.ts +256 -0
- package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
- package/dist/components/bottom-app-bar/config.d.ts +16 -0
- package/dist/components/bottom-app-bar/constants.d.ts +22 -0
- package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
- package/dist/components/bottom-app-bar/types.d.ts +96 -0
- package/dist/components/button/api.d.ts +47 -0
- package/dist/components/button/button.d.ts +25 -0
- package/dist/components/button/config.d.ts +59 -0
- package/dist/components/button/constants.d.ts +43 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/types.d.ts +265 -0
- package/dist/components/card/api.d.ts +11 -0
- package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
- package/dist/components/card/config.d.ts +105 -0
- package/dist/components/card/constants.d.ts +85 -0
- package/dist/components/card/content.d.ts +92 -0
- package/dist/components/card/features.d.ts +131 -0
- package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
- package/dist/components/card/types.d.ts +471 -0
- package/dist/components/carousel/api.d.ts +33 -0
- package/dist/components/carousel/carousel.d.ts +75 -0
- package/dist/components/carousel/config.d.ts +45 -0
- package/dist/components/carousel/constants.d.ts +165 -0
- package/dist/components/carousel/features/drag.d.ts +8 -0
- package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
- package/dist/components/carousel/features/slides.d.ts +8 -0
- package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
- package/dist/components/carousel/types.d.ts +276 -0
- package/dist/components/checkbox/api.d.ts +7 -0
- package/dist/components/checkbox/checkbox.d.ts +65 -0
- package/dist/components/checkbox/config.d.ts +44 -0
- package/dist/components/checkbox/constants.d.ts +63 -0
- package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
- package/dist/components/checkbox/types.d.ts +242 -0
- package/dist/components/chips/api.d.ts +49 -0
- package/dist/components/chips/chip/api.d.ts +23 -0
- package/dist/components/chips/chip/chip.d.ts +8 -0
- package/dist/components/chips/chip/config.d.ts +57 -0
- package/dist/components/chips/chip/constants.d.ts +38 -0
- package/dist/components/chips/chip/index.d.ts +2 -0
- package/dist/components/chips/chip/types.d.ts +11 -0
- package/dist/components/chips/chips.d.ts +17 -0
- package/dist/components/chips/config.d.ts +67 -0
- package/dist/components/chips/constants.d.ts +46 -0
- package/dist/components/chips/features/chip-items.d.ts +8 -0
- package/dist/components/chips/features/container.d.ts +8 -0
- package/dist/components/chips/features/controller.d.ts +9 -0
- package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
- package/dist/components/chips/features/label.d.ts +8 -0
- package/dist/components/chips/index.d.ts +4 -0
- package/dist/components/chips/schema.d.ts +34 -0
- package/dist/components/chips/types.d.ts +398 -0
- package/dist/components/datepicker/api.d.ts +9 -0
- package/dist/components/datepicker/config.d.ts +79 -0
- package/dist/components/datepicker/constants.d.ts +97 -0
- package/dist/components/datepicker/datepicker.d.ts +8 -0
- package/dist/components/datepicker/index.d.ts +3 -0
- package/dist/components/datepicker/render.d.ts +43 -0
- package/dist/components/datepicker/types.d.ts +321 -0
- package/dist/components/datepicker/utils.d.ts +84 -0
- package/dist/components/dialog/api.d.ts +59 -0
- package/dist/components/dialog/config.d.ts +91 -0
- package/dist/components/dialog/constants.d.ts +116 -0
- package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
- package/dist/components/dialog/features.d.ts +37 -0
- package/dist/components/dialog/index.d.ts +14 -0
- package/dist/components/dialog/types.d.ts +483 -0
- package/dist/components/divider/config.d.ts +143 -0
- package/dist/components/divider/constants.d.ts +45 -0
- package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
- package/dist/components/divider/features.d.ts +50 -0
- package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
- package/dist/components/divider/types.d.ts +124 -0
- package/dist/components/extended-fab/api.d.ts +83 -0
- package/dist/components/extended-fab/config.d.ts +75 -0
- package/dist/components/extended-fab/constants.d.ts +82 -0
- package/dist/components/extended-fab/extended-fab.d.ts +61 -0
- package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
- package/dist/components/extended-fab/types.d.ts +703 -0
- package/dist/components/fab/api.d.ts +64 -0
- package/dist/components/fab/config.d.ts +71 -0
- package/dist/components/fab/constants.d.ts +75 -0
- package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
- package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
- package/dist/components/fab/types.d.ts +577 -0
- package/dist/components/index.d.ts +76 -0
- package/dist/components/list/api.d.ts +106 -0
- package/dist/components/list/config.d.ts +61 -0
- package/dist/components/list/constants.d.ts +76 -0
- package/dist/components/list/features/index.d.ts +2 -0
- package/dist/components/list/features/listmanager.d.ts +9 -0
- package/dist/components/list/features/selection.d.ts +9 -0
- package/dist/components/list/index.d.ts +12 -0
- package/dist/components/list/list.d.ts +11 -0
- package/dist/components/list/types.d.ts +294 -0
- package/dist/components/menu/api.d.ts +58 -0
- package/dist/components/menu/config.d.ts +78 -0
- package/dist/components/menu/constants.d.ts +106 -0
- package/dist/components/menu/features/controller.d.ts +10 -0
- package/dist/components/menu/features/index.d.ts +6 -0
- package/dist/components/menu/features/keyboard.d.ts +26 -0
- package/dist/components/menu/features/opener.d.ts +10 -0
- package/dist/components/menu/features/position.d.ts +18 -0
- package/dist/components/menu/features/submenu.d.ts +10 -0
- package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
- package/dist/components/menu/menu.d.ts +29 -0
- package/dist/components/menu/types.d.ts +338 -0
- package/dist/components/navigation/api.d.ts +8 -0
- package/dist/components/navigation/config.d.ts +34 -0
- package/dist/components/navigation/constants.d.ts +137 -0
- package/dist/components/navigation/features/controller.d.ts +30 -0
- package/dist/components/navigation/features/items.d.ts +32 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/nav-item.d.ts +30 -0
- package/dist/components/navigation/navigation.d.ts +8 -0
- package/dist/components/navigation/system/core.d.ts +72 -0
- package/dist/components/navigation/system/events.d.ts +35 -0
- package/dist/components/navigation/system/index.d.ts +10 -0
- package/dist/components/navigation/system/mobile.d.ts +52 -0
- package/dist/components/navigation/system/state.d.ts +22 -0
- package/dist/components/navigation/system/types.d.ts +305 -0
- package/dist/components/navigation/types.d.ts +216 -0
- package/dist/components/progress/api.d.ts +46 -0
- package/dist/components/progress/config.d.ts +72 -0
- package/dist/components/progress/constants.d.ts +139 -0
- package/dist/components/progress/features/canvas.d.ts +32 -0
- package/dist/components/progress/features/circular.d.ts +9 -0
- package/dist/components/progress/features/index.d.ts +8 -0
- package/dist/components/progress/features/linear.d.ts +9 -0
- package/dist/components/progress/features/resize-observer.d.ts +5 -0
- package/dist/components/progress/features/state.d.ts +38 -0
- package/dist/components/progress/features.d.ts +40 -0
- package/dist/components/progress/index.d.ts +3 -0
- package/dist/components/progress/progress.d.ts +24 -0
- package/dist/components/progress/types.d.ts +272 -0
- package/dist/components/radios/api.d.ts +37 -0
- package/dist/components/radios/config.d.ts +42 -0
- package/dist/components/radios/constants.d.ts +114 -0
- package/dist/components/radios/index.d.ts +3 -0
- package/dist/components/radios/radio.d.ts +8 -0
- package/dist/components/radios/radios.d.ts +8 -0
- package/dist/components/radios/types.d.ts +189 -0
- package/dist/components/search/api.d.ts +55 -0
- package/dist/components/search/config.d.ts +73 -0
- package/dist/components/search/constants.d.ts +128 -0
- package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
- package/dist/components/search/features/search.d.ts +7 -0
- package/dist/components/search/features/states.d.ts +8 -0
- package/dist/components/search/features/structure.d.ts +7 -0
- package/dist/components/search/index.d.ts +3 -0
- package/dist/components/search/search.d.ts +8 -0
- package/dist/components/search/types.d.ts +132 -0
- package/dist/components/segmented-button/config.d.ts +65 -0
- package/dist/components/segmented-button/constants.d.ts +85 -0
- package/dist/components/segmented-button/index.d.ts +4 -0
- package/dist/components/segmented-button/segment.d.ts +15 -0
- package/dist/components/segmented-button/segmented-button.d.ts +49 -0
- package/dist/components/segmented-button/types.d.ts +257 -0
- package/dist/components/select/api.d.ts +8 -0
- package/dist/components/select/config.d.ts +18 -0
- package/dist/components/select/constants.d.ts +113 -0
- package/dist/components/select/features.d.ts +13 -0
- package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
- package/dist/components/select/select.d.ts +36 -0
- package/dist/components/select/types.d.ts +302 -0
- package/dist/components/sheet/api.d.ts +37 -0
- package/dist/components/sheet/config.d.ts +42 -0
- package/dist/components/sheet/constants.d.ts +136 -0
- package/dist/components/sheet/features/content.d.ts +6 -0
- package/dist/components/sheet/features/gestures.d.ts +6 -0
- package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
- package/dist/components/sheet/features/position.d.ts +7 -0
- package/dist/components/sheet/features/state.d.ts +6 -0
- package/dist/components/sheet/features/title.d.ts +6 -0
- package/dist/components/sheet/index.d.ts +3 -0
- package/dist/components/sheet/sheet.d.ts +8 -0
- package/dist/components/sheet/types.d.ts +250 -0
- package/dist/components/slider/api.d.ts +57 -0
- package/dist/components/slider/config.d.ts +75 -0
- package/dist/components/slider/constants.d.ts +138 -0
- package/dist/components/slider/features/controller.d.ts +9 -0
- package/dist/components/slider/features/handlers.d.ts +25 -0
- package/dist/components/slider/features/index.d.ts +3 -0
- package/dist/components/slider/features/range.d.ts +8 -0
- package/dist/components/slider/features/states.d.ts +9 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/schema.d.ts +108 -0
- package/dist/components/slider/slider.d.ts +18 -0
- package/dist/components/slider/types.d.ts +170 -0
- package/dist/components/snackbar/api.d.ts +7 -0
- package/dist/components/snackbar/config.d.ts +55 -0
- package/dist/components/snackbar/constants.d.ts +88 -0
- package/dist/components/snackbar/features.d.ts +13 -0
- package/dist/components/snackbar/index.d.ts +3 -0
- package/dist/components/snackbar/position.d.ts +15 -0
- package/dist/components/snackbar/queue.d.ts +7 -0
- package/dist/components/snackbar/snackbar.d.ts +8 -0
- package/dist/components/snackbar/types.d.ts +172 -0
- package/dist/components/switch/api.d.ts +7 -0
- package/dist/components/switch/config.d.ts +34 -0
- package/dist/components/switch/constants.d.ts +88 -0
- package/dist/components/switch/features.d.ts +59 -0
- package/dist/components/switch/index.d.ts +4 -0
- package/dist/components/switch/switch.d.ts +8 -0
- package/dist/components/switch/types.d.ts +131 -0
- package/dist/components/tabs/api.d.ts +52 -0
- package/dist/components/tabs/config.d.ts +39 -0
- package/dist/components/tabs/constants.d.ts +142 -0
- package/dist/components/tabs/features.d.ts +133 -0
- package/dist/components/tabs/index.d.ts +11 -0
- package/dist/components/tabs/indicator.d.ts +49 -0
- package/dist/components/tabs/responsive.d.ts +38 -0
- package/dist/components/tabs/scroll-indicators.d.ts +18 -0
- package/dist/components/tabs/state.d.ts +53 -0
- package/dist/components/tabs/tab-api.d.ts +43 -0
- package/dist/components/tabs/tab.d.ts +7 -0
- package/dist/components/tabs/tabs.d.ts +27 -0
- package/dist/components/tabs/types.d.ts +390 -0
- package/dist/components/tabs/utils.d.ts +17 -0
- package/dist/components/textfield/api.d.ts +8 -0
- package/dist/components/textfield/config.d.ts +34 -0
- package/dist/components/textfield/constants.d.ts +148 -0
- package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
- package/dist/components/textfield/features/leading-icon.d.ts +55 -0
- package/dist/components/textfield/features/placement.d.ts +28 -0
- package/dist/components/textfield/features/prefix-text.d.ts +54 -0
- package/dist/components/textfield/features/suffix-text.d.ts +54 -0
- package/dist/components/textfield/features/supporting-text.d.ts +59 -0
- package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
- package/dist/components/textfield/index.d.ts +3 -0
- package/dist/components/textfield/textfield.d.ts +36 -0
- package/dist/components/textfield/types.d.ts +217 -0
- package/dist/components/timepicker/api.d.ts +24 -0
- package/dist/components/timepicker/clockdial.d.ts +34 -0
- package/dist/components/timepicker/config.d.ts +75 -0
- package/dist/components/timepicker/constants.d.ts +266 -0
- package/dist/components/timepicker/index.d.ts +4 -0
- package/dist/components/timepicker/render.d.ts +9 -0
- package/dist/components/timepicker/timepicker.d.ts +8 -0
- package/dist/components/timepicker/types.d.ts +284 -0
- package/dist/components/timepicker/utils.d.ts +74 -0
- package/dist/components/tooltip/api.d.ts +18 -0
- package/dist/components/tooltip/config.d.ts +38 -0
- package/dist/components/tooltip/constants.d.ts +108 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/tooltip.d.ts +8 -0
- package/dist/components/tooltip/types.d.ts +188 -0
- package/dist/components/top-app-bar/config.d.ts +16 -0
- package/dist/components/top-app-bar/constants.d.ts +74 -0
- package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
- package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
- package/dist/components/top-app-bar/types.d.ts +118 -0
- package/dist/constants.d.ts +30 -0
- package/dist/core/canvas/index.d.ts +5 -0
- package/dist/core/canvas/resize.d.ts +14 -0
- package/dist/core/collection/adapters/base.d.ts +47 -0
- package/dist/core/collection/adapters/route.d.ts +149 -0
- package/dist/core/collection/collection.d.ts +131 -0
- package/dist/core/collection/index.d.ts +10 -0
- package/dist/core/collection/list-manager/config.d.ts +29 -0
- package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
- package/dist/core/collection/list-manager/index.d.ts +61 -0
- package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
- package/dist/core/collection/list-manager/renderer.d.ts +31 -0
- package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
- package/dist/core/collection/list-manager/state.d.ts +60 -0
- package/dist/core/collection/list-manager/types.d.ts +361 -0
- package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
- package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
- package/dist/core/compose/base.d.ts +31 -0
- package/dist/core/compose/component.d.ts +61 -0
- package/dist/core/compose/features/badge.d.ts +43 -0
- package/dist/core/compose/features/checkable.d.ts +59 -0
- package/dist/core/compose/features/constants.d.ts +45 -0
- package/dist/core/compose/features/debounce.d.ts +84 -0
- package/dist/core/compose/features/disabled.d.ts +47 -0
- package/dist/core/compose/features/events.d.ts +37 -0
- package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
- package/dist/core/compose/features/gestures/pan.d.ts +108 -0
- package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
- package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
- package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
- package/dist/core/compose/features/gestures/tap.d.ts +79 -0
- package/dist/core/compose/features/gestures.d.ts +86 -0
- package/dist/core/compose/features/icon.d.ts +71 -0
- package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
- package/dist/core/compose/features/input.d.ts +71 -0
- package/dist/core/compose/features/lifecycle.d.ts +61 -0
- package/dist/core/compose/features/position.d.ts +51 -0
- package/dist/core/compose/features/ripple.d.ts +61 -0
- package/dist/core/compose/features/size.d.ts +17 -0
- package/dist/core/compose/features/style.d.ts +16 -0
- package/dist/core/compose/features/text.d.ts +63 -0
- package/dist/core/compose/features/textinput.d.ts +93 -0
- package/dist/core/compose/features/textlabel.d.ts +57 -0
- package/dist/core/compose/features/throttle.d.ts +75 -0
- package/dist/core/compose/features/track.d.ts +42 -0
- package/dist/core/compose/features/variant.d.ts +17 -0
- package/dist/core/compose/features/withEvents.d.ts +45 -0
- package/dist/core/compose/index.d.ts +17 -0
- package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
- package/dist/core/compose/utils/type-guards.d.ts +27 -0
- package/dist/core/composition/features/dom.d.ts +19 -0
- package/dist/core/composition/features/icon.d.ts +45 -0
- package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
- package/dist/core/composition/features/label.d.ts +49 -0
- package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
- package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
- package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +35 -83
- package/dist/core/config.d.ts +130 -0
- package/dist/core/dom/attributes.d.ts +20 -0
- package/dist/core/dom/classes.d.ts +52 -0
- package/dist/core/dom/create.d.ts +154 -0
- package/dist/core/dom/events.d.ts +69 -0
- package/dist/core/dom/index.d.ts +6 -0
- package/dist/core/dom/utils.d.ts +42 -0
- package/dist/core/gestures/index.d.ts +12 -0
- package/dist/core/gestures/longpress.d.ts +23 -0
- package/dist/core/gestures/manager.d.ts +14 -0
- package/dist/core/gestures/pan.d.ts +12 -0
- package/dist/core/gestures/pinch.d.ts +14 -0
- package/dist/core/gestures/rotate.d.ts +14 -0
- package/dist/core/gestures/swipe.d.ts +20 -0
- package/dist/core/gestures/tap.d.ts +12 -0
- package/dist/core/gestures/types.d.ts +320 -0
- package/dist/core/gestures/utils.d.ts +57 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/layout/array.d.ts +15 -0
- package/dist/core/layout/config.d.ts +32 -0
- package/dist/core/layout/create.d.ts +14 -0
- package/dist/core/layout/index.d.ts +13 -0
- package/dist/core/layout/jsx.d.ts +13 -0
- package/dist/core/layout/object.d.ts +14 -0
- package/dist/core/layout/processor.d.ts +28 -0
- package/dist/core/layout/result.d.ts +12 -0
- package/dist/core/layout/template.d.ts +12 -0
- package/dist/core/layout/types.d.ts +137 -0
- package/dist/core/layout/utils.d.ts +38 -0
- package/dist/core/state/disabled.d.ts +32 -0
- package/dist/core/state/emitter.d.ts +40 -0
- package/dist/core/state/events.d.ts +36 -0
- package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
- package/dist/core/state/lifecycle.d.ts +57 -0
- package/dist/core/state/store.d.ts +82 -0
- package/dist/core/utils/background.d.ts +40 -0
- package/dist/core/utils/index.d.ts +18 -0
- package/dist/core/utils/mobile.d.ts +54 -0
- package/dist/core/utils/object.d.ts +13 -0
- package/dist/core/utils/performance.d.ts +79 -0
- package/dist/core/utils/theme.d.ts +38 -0
- package/dist/core/utils/validate.d.ts +73 -0
- package/dist/index.cjs +64 -0
- package/dist/index.cjs.map +291 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +53 -14854
- package/dist/index.js.map +291 -0
- package/dist/package.json +39 -0
- package/dist/styles.css +7 -0
- package/package.json +23 -4
- package/.env +0 -15
- package/.typedocignore +0 -11
- package/CONTRIBUTING.md +0 -218
- package/DOCS.md +0 -153
- package/TESTING.md +0 -214
- package/git-user-stats.js +0 -545
- package/index.ts +0 -10
- package/src/components/badge/api.ts +0 -313
- package/src/components/badge/config.ts +0 -153
- package/src/components/badge/features.ts +0 -194
- package/src/components/badge/index.ts +0 -90
- package/src/components/badge/types.ts +0 -279
- package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
- package/src/components/bottom-app-bar/config.ts +0 -29
- package/src/components/bottom-app-bar/types.ts +0 -114
- package/src/components/button/api.ts +0 -172
- package/src/components/button/button.ts +0 -112
- package/src/components/button/config.ts +0 -96
- package/src/components/button/index.ts +0 -37
- package/src/components/button/types.ts +0 -290
- package/src/components/card/api.ts +0 -222
- package/src/components/card/config.ts +0 -304
- package/src/components/card/content.ts +0 -343
- package/src/components/card/features.ts +0 -407
- package/src/components/card/types.ts +0 -497
- package/src/components/carousel/api.ts +0 -147
- package/src/components/carousel/carousel.ts +0 -242
- package/src/components/carousel/config.ts +0 -91
- package/src/components/carousel/constants.ts +0 -181
- package/src/components/carousel/features/drag.ts +0 -388
- package/src/components/carousel/features/slides.ts +0 -682
- package/src/components/carousel/types.ts +0 -327
- package/src/components/checkbox/api.ts +0 -82
- package/src/components/checkbox/checkbox.ts +0 -142
- package/src/components/checkbox/config.ts +0 -89
- package/src/components/checkbox/types.ts +0 -342
- package/src/components/chips/api.ts +0 -194
- package/src/components/chips/chip/api.ts +0 -233
- package/src/components/chips/chip/chip.ts +0 -131
- package/src/components/chips/chip/config.ts +0 -91
- package/src/components/chips/chip/index.ts +0 -3
- package/src/components/chips/chips.md +0 -481
- package/src/components/chips/chips.ts +0 -75
- package/src/components/chips/config.ts +0 -109
- package/src/components/chips/constants.ts +0 -61
- package/src/components/chips/features/chip-items.ts +0 -33
- package/src/components/chips/features/container.ts +0 -77
- package/src/components/chips/features/controller.ts +0 -448
- package/src/components/chips/features/label.ts +0 -108
- package/src/components/chips/index.ts +0 -11
- package/src/components/chips/schema.ts +0 -61
- package/src/components/chips/types.ts +0 -469
- package/src/components/datepicker/api.ts +0 -265
- package/src/components/datepicker/config.ts +0 -141
- package/src/components/datepicker/datepicker.ts +0 -341
- package/src/components/datepicker/index.ts +0 -12
- package/src/components/datepicker/render.ts +0 -450
- package/src/components/datepicker/types.ts +0 -397
- package/src/components/datepicker/utils.ts +0 -289
- package/src/components/dialog/api.ts +0 -317
- package/src/components/dialog/config.ts +0 -116
- package/src/components/dialog/features.ts +0 -907
- package/src/components/dialog/index.ts +0 -141
- package/src/components/dialog/types.ts +0 -553
- package/src/components/divider/config.ts +0 -165
- package/src/components/divider/features.ts +0 -233
- package/src/components/divider/types.ts +0 -132
- package/src/components/extended-fab/api.ts +0 -193
- package/src/components/extended-fab/config.ts +0 -140
- package/src/components/extended-fab/extended-fab.ts +0 -153
- package/src/components/extended-fab/types.ts +0 -749
- package/src/components/fab/api.ts +0 -137
- package/src/components/fab/config.ts +0 -121
- package/src/components/fab/types.ts +0 -615
- package/src/components/list/api.ts +0 -82
- package/src/components/list/config.ts +0 -63
- package/src/components/list/features.ts +0 -229
- package/src/components/list/index.ts +0 -67
- package/src/components/list/list-item.ts +0 -163
- package/src/components/list/list.ts +0 -108
- package/src/components/list/types.ts +0 -396
- package/src/components/list/utils.ts +0 -98
- package/src/components/menu/api.ts +0 -230
- package/src/components/menu/config.ts +0 -127
- package/src/components/menu/features/anchor.ts +0 -394
- package/src/components/menu/features/controller.ts +0 -1423
- package/src/components/menu/features/index.ts +0 -13
- package/src/components/menu/features/position.ts +0 -353
- package/src/components/menu/menu.ts +0 -121
- package/src/components/menu/types.ts +0 -392
- package/src/components/navigation/api.ts +0 -142
- package/src/components/navigation/config.ts +0 -73
- package/src/components/navigation/features/controller.ts +0 -273
- package/src/components/navigation/features/items.ts +0 -353
- package/src/components/navigation/index.ts +0 -11
- package/src/components/navigation/nav-item.ts +0 -196
- package/src/components/navigation/navigation.ts +0 -115
- package/src/components/navigation/system/core.ts +0 -302
- package/src/components/navigation/system/events.ts +0 -240
- package/src/components/navigation/system/index.ts +0 -184
- package/src/components/navigation/system/mobile.ts +0 -278
- package/src/components/navigation/system/state.ts +0 -77
- package/src/components/navigation/system/types.ts +0 -364
- package/src/components/navigation/types.ts +0 -292
- package/src/components/progress/api.ts +0 -178
- package/src/components/progress/config.ts +0 -122
- package/src/components/progress/index.ts +0 -4
- package/src/components/progress/progress.ts +0 -159
- package/src/components/progress/types.ts +0 -255
- package/src/components/radios/api.ts +0 -125
- package/src/components/radios/config.ts +0 -59
- package/src/components/radios/constants.ts +0 -19
- package/src/components/radios/index.ts +0 -3
- package/src/components/radios/radio.ts +0 -292
- package/src/components/radios/radios.ts +0 -43
- package/src/components/radios/types.ts +0 -219
- package/src/components/search/api.ts +0 -203
- package/src/components/search/config.ts +0 -86
- package/src/components/search/features/search.ts +0 -717
- package/src/components/search/features/states.ts +0 -169
- package/src/components/search/features/structure.ts +0 -197
- package/src/components/search/index.ts +0 -7
- package/src/components/search/search.ts +0 -52
- package/src/components/search/types.ts +0 -175
- package/src/components/segmented-button/config.ts +0 -119
- package/src/components/segmented-button/index.ts +0 -4
- package/src/components/segmented-button/segment.ts +0 -108
- package/src/components/segmented-button/segmented-button.ts +0 -361
- package/src/components/segmented-button/types.ts +0 -306
- package/src/components/select/api.ts +0 -78
- package/src/components/select/config.ts +0 -76
- package/src/components/select/features.ts +0 -331
- package/src/components/select/select.ts +0 -73
- package/src/components/select/types.ts +0 -355
- package/src/components/sheet/api.ts +0 -96
- package/src/components/sheet/config.ts +0 -65
- package/src/components/sheet/features/content.ts +0 -51
- package/src/components/sheet/features/gestures.ts +0 -177
- package/src/components/sheet/features/position.ts +0 -41
- package/src/components/sheet/features/state.ts +0 -116
- package/src/components/sheet/features/title.ts +0 -86
- package/src/components/sheet/index.ts +0 -12
- package/src/components/sheet/sheet.ts +0 -56
- package/src/components/sheet/types.ts +0 -294
- package/src/components/slider/accessibility.md +0 -59
- package/src/components/slider/api.ts +0 -192
- package/src/components/slider/config.ts +0 -118
- package/src/components/slider/features/controller.ts +0 -737
- package/src/components/slider/features/handlers.ts +0 -497
- package/src/components/slider/features/index.ts +0 -5
- package/src/components/slider/features/range.ts +0 -104
- package/src/components/slider/features/states.ts +0 -195
- package/src/components/slider/index.ts +0 -17
- package/src/components/slider/schema.ts +0 -141
- package/src/components/slider/slider.ts +0 -76
- package/src/components/slider/types.ts +0 -223
- package/src/components/snackbar/api.ts +0 -162
- package/src/components/snackbar/config.ts +0 -61
- package/src/components/snackbar/features.ts +0 -76
- package/src/components/snackbar/index.ts +0 -9
- package/src/components/snackbar/position.ts +0 -79
- package/src/components/snackbar/queue.ts +0 -76
- package/src/components/snackbar/snackbar.ts +0 -60
- package/src/components/snackbar/types.ts +0 -159
- package/src/components/switch/api.ts +0 -93
- package/src/components/switch/config.ts +0 -56
- package/src/components/switch/features.ts +0 -198
- package/src/components/switch/index.ts +0 -8
- package/src/components/switch/switch.ts +0 -52
- package/src/components/switch/types.ts +0 -168
- package/src/components/tabs/api.ts +0 -221
- package/src/components/tabs/config.ts +0 -73
- package/src/components/tabs/features.ts +0 -403
- package/src/components/tabs/index.ts +0 -46
- package/src/components/tabs/indicator.ts +0 -285
- package/src/components/tabs/responsive.ts +0 -144
- package/src/components/tabs/scroll-indicators.ts +0 -149
- package/src/components/tabs/state.ts +0 -186
- package/src/components/tabs/tab-api.ts +0 -266
- package/src/components/tabs/tab.ts +0 -267
- package/src/components/tabs/tabs.ts +0 -71
- package/src/components/tabs/types.ts +0 -461
- package/src/components/tabs/utils.ts +0 -107
- package/src/components/textfield/api.ts +0 -197
- package/src/components/textfield/config.ts +0 -52
- package/src/components/textfield/features/leading-icon.ts +0 -127
- package/src/components/textfield/features/placement.ts +0 -149
- package/src/components/textfield/features/prefix-text.ts +0 -107
- package/src/components/textfield/features/suffix-text.ts +0 -100
- package/src/components/textfield/features/supporting-text.ts +0 -113
- package/src/components/textfield/features/trailing-icon.ts +0 -108
- package/src/components/textfield/index.ts +0 -9
- package/src/components/textfield/textfield.ts +0 -92
- package/src/components/textfield/types.ts +0 -265
- package/src/components/timepicker/README.md +0 -277
- package/src/components/timepicker/api.ts +0 -632
- package/src/components/timepicker/clockdial.ts +0 -479
- package/src/components/timepicker/config.ts +0 -228
- package/src/components/timepicker/index.ts +0 -3
- package/src/components/timepicker/render.ts +0 -613
- package/src/components/timepicker/timepicker.ts +0 -117
- package/src/components/timepicker/types.ts +0 -336
- package/src/components/timepicker/utils.ts +0 -241
- package/src/components/tooltip/api.ts +0 -415
- package/src/components/tooltip/config.ts +0 -80
- package/src/components/tooltip/index.ts +0 -12
- package/src/components/tooltip/tooltip.ts +0 -60
- package/src/components/tooltip/types.ts +0 -223
- package/src/components/top-app-bar/config.ts +0 -83
- package/src/components/top-app-bar/top-app-bar.ts +0 -316
- package/src/components/top-app-bar/types.ts +0 -140
- package/src/core/build/constants.ts +0 -48
- package/src/core/build/icon.ts +0 -137
- package/src/core/build/ripple.ts +0 -193
- package/src/core/build/text.ts +0 -91
- package/src/core/collection/adapters/base.ts +0 -62
- package/src/core/collection/adapters/route.ts +0 -201
- package/src/core/collection/collection.ts +0 -300
- package/src/core/collection/index.ts +0 -57
- package/src/core/collection/list-manager.ts +0 -333
- package/src/core/compose/base.ts +0 -43
- package/src/core/compose/component.ts +0 -255
- package/src/core/compose/features/badge.ts +0 -79
- package/src/core/compose/features/checkable.ts +0 -155
- package/src/core/compose/features/disabled.ts +0 -116
- package/src/core/compose/features/events.ts +0 -65
- package/src/core/compose/features/icon.ts +0 -71
- package/src/core/compose/features/input.ts +0 -174
- package/src/core/compose/features/lifecycle.ts +0 -139
- package/src/core/compose/features/position.ts +0 -94
- package/src/core/compose/features/ripple.ts +0 -58
- package/src/core/compose/features/size.ts +0 -29
- package/src/core/compose/features/style.ts +0 -31
- package/src/core/compose/features/text.ts +0 -44
- package/src/core/compose/features/textinput.ts +0 -238
- package/src/core/compose/features/textlabel.ts +0 -113
- package/src/core/compose/features/track.ts +0 -84
- package/src/core/compose/features/variant.ts +0 -29
- package/src/core/compose/features/withEvents.ts +0 -137
- package/src/core/compose/index.ts +0 -54
- package/src/core/composition/features/dom.ts +0 -45
- package/src/core/composition/features/icon.ts +0 -131
- package/src/core/composition/features/label.ts +0 -155
- package/src/core/config.ts +0 -211
- package/src/core/dom/attributes.ts +0 -33
- package/src/core/dom/classes.ts +0 -132
- package/src/core/dom/create.ts +0 -273
- package/src/core/dom/events.ts +0 -209
- package/src/core/dom/index.ts +0 -10
- package/src/core/dom/utils.ts +0 -97
- package/src/core/index.ts +0 -111
- package/src/core/layout/README.md +0 -715
- package/src/core/layout/array.ts +0 -180
- package/src/core/layout/config.ts +0 -193
- package/src/core/layout/create.ts +0 -54
- package/src/core/layout/index.ts +0 -36
- package/src/core/layout/object.ts +0 -123
- package/src/core/layout/processor.ts +0 -106
- package/src/core/layout/result.ts +0 -84
- package/src/core/layout/types.ts +0 -180
- package/src/core/layout/utils.ts +0 -144
- package/src/core/state/disabled.ts +0 -81
- package/src/core/state/emitter.ts +0 -94
- package/src/core/state/events.ts +0 -88
- package/src/core/state/lifecycle.ts +0 -131
- package/src/core/state/store.ts +0 -197
- package/src/core/utils/index.ts +0 -45
- package/src/core/utils/mobile.ts +0 -98
- package/src/core/utils/object.ts +0 -41
- package/src/core/utils/validate.ts +0 -234
- package/src/index.ts +0 -90
- package/src/styles/abstract/_base.scss +0 -2
- package/src/styles/abstract/_config.scss +0 -28
- package/src/styles/abstract/_functions.scss +0 -124
- package/src/styles/abstract/_mixins.scss +0 -352
- package/src/styles/abstract/_theme.scss +0 -269
- package/src/styles/abstract/_variables.scss +0 -305
- package/src/styles/base/_reset.scss +0 -86
- package/src/styles/base/_typography.scss +0 -155
- package/src/styles/components/_badge.scss +0 -182
- package/src/styles/components/_bottom-app-bar.scss +0 -103
- package/src/styles/components/_button.scss +0 -224
- package/src/styles/components/_card.scss +0 -401
- package/src/styles/components/_carousel.scss +0 -645
- package/src/styles/components/_checkbox.scss +0 -231
- package/src/styles/components/_chips.scss +0 -638
- package/src/styles/components/_datepicker.scss +0 -358
- package/src/styles/components/_dialog.scss +0 -259
- package/src/styles/components/_divider.scss +0 -57
- package/src/styles/components/_extended-fab.scss +0 -267
- package/src/styles/components/_fab.scss +0 -225
- package/src/styles/components/_list.scss +0 -248
- package/src/styles/components/_menu.scss +0 -242
- package/src/styles/components/_navigation-mobile.scss +0 -244
- package/src/styles/components/_navigation-system.scss +0 -151
- package/src/styles/components/_navigation.scss +0 -407
- package/src/styles/components/_progress.scss +0 -151
- package/src/styles/components/_radios.scss +0 -187
- package/src/styles/components/_search.scss +0 -306
- package/src/styles/components/_segmented-button.scss +0 -227
- package/src/styles/components/_select.scss +0 -272
- package/src/styles/components/_sheet.scss +0 -236
- package/src/styles/components/_slider.scss +0 -489
- package/src/styles/components/_snackbar.scss +0 -211
- package/src/styles/components/_switch.scss +0 -298
- package/src/styles/components/_tabs.scss +0 -416
- package/src/styles/components/_textfield.scss +0 -773
- package/src/styles/components/_timepicker.scss +0 -451
- package/src/styles/components/_tooltip.scss +0 -241
- package/src/styles/components/_top-app-bar.scss +0 -225
- package/src/styles/main.scss +0 -175
- package/src/styles/themes/_autumn.scss +0 -105
- package/src/styles/themes/_base-theme.scss +0 -85
- package/src/styles/themes/_baseline.scss +0 -173
- package/src/styles/themes/_bluekhaki.scss +0 -125
- package/src/styles/themes/_brownbeige.scss +0 -125
- package/src/styles/themes/_browngreen.scss +0 -125
- package/src/styles/themes/_forest.scss +0 -77
- package/src/styles/themes/_greenbeige.scss +0 -125
- package/src/styles/themes/_index.scss +0 -6
- package/src/styles/themes/_material.scss +0 -125
- package/src/styles/themes/_ocean.scss +0 -77
- package/src/styles/themes/_sageivory.scss +0 -125
- package/src/styles/themes/_spring.scss +0 -77
- package/src/styles/themes/_summer.scss +0 -87
- package/src/styles/themes/_sunset.scss +0 -60
- package/src/styles/themes/_tealcaramel.scss +0 -125
- package/src/styles/themes/_winter.scss +0 -77
- package/src/styles/utilities/_colors.scss +0 -154
- package/src/styles/utilities/_flexbox.scss +0 -194
- package/src/styles/utilities/_layout.scss +0 -665
- package/src/styles/utilities/_ripple.scss +0 -79
- package/src/styles/utilities/_spacing.scss +0 -139
- package/src/styles/utilities/_typography.scss +0 -178
- package/src/styles/utilities/_visibility.scss +0 -142
|
@@ -1,737 +0,0 @@
|
|
|
1
|
-
// src/components/slider/features/controller.ts
|
|
2
|
-
import { SLIDER_EVENTS } from '../types';
|
|
3
|
-
import { SliderConfig } from '../types';
|
|
4
|
-
import { createHandlers } from './handlers';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Add controller functionality to slider component
|
|
8
|
-
* Manages state, events, user interactions, and UI rendering
|
|
9
|
-
*
|
|
10
|
-
* @param config Slider configuration
|
|
11
|
-
* @returns Component enhancer with slider controller functionality
|
|
12
|
-
*/
|
|
13
|
-
export const withController = (config: SliderConfig) => component => {
|
|
14
|
-
// Ensure component has required properties
|
|
15
|
-
if (!component.element || !component.components) {
|
|
16
|
-
console.warn('Cannot initialize slider controller: missing element or components');
|
|
17
|
-
return component;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Initialize state
|
|
21
|
-
const state = {
|
|
22
|
-
value: config.value !== undefined ? config.value : 0,
|
|
23
|
-
secondValue: config.secondValue !== undefined ? config.secondValue : null,
|
|
24
|
-
min: config.min !== undefined ? config.min : 0,
|
|
25
|
-
max: config.max !== undefined ? config.max : 100,
|
|
26
|
-
step: config.step !== undefined ? config.step : 1,
|
|
27
|
-
dragging: false,
|
|
28
|
-
activeBubble: null,
|
|
29
|
-
activeHandle: null,
|
|
30
|
-
ticks: [],
|
|
31
|
-
valueHideTimer: null,
|
|
32
|
-
component
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
// Create event helpers
|
|
36
|
-
const eventHelpers = {
|
|
37
|
-
triggerEvent(eventName, originalEvent = null) {
|
|
38
|
-
const eventData = {
|
|
39
|
-
slider: state.component,
|
|
40
|
-
value: state.value,
|
|
41
|
-
secondValue: state.secondValue,
|
|
42
|
-
originalEvent,
|
|
43
|
-
preventDefault: () => { eventData.defaultPrevented = true; },
|
|
44
|
-
defaultPrevented: false
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
state.component.emit(eventName, eventData);
|
|
48
|
-
return eventData;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
//=============================================================================
|
|
53
|
-
// UI RENDERING FUNCTIONS
|
|
54
|
-
//=============================================================================
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Gets required components from state, safely handling missing components
|
|
58
|
-
*/
|
|
59
|
-
const getComponents = () => {
|
|
60
|
-
// Return empty object if component or components are missing
|
|
61
|
-
if (!state.component?.components) {
|
|
62
|
-
return {};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// Get flattened components
|
|
66
|
-
return state.component.components;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Calculates percentage position for a value
|
|
71
|
-
* Maps from value space (min-max) to percentage space (0-100)
|
|
72
|
-
*/
|
|
73
|
-
const getPercentage = (value) => {
|
|
74
|
-
const range = state.max - state.min;
|
|
75
|
-
return range === 0 ? 0 : ((value - state.min) / range) * 100;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Gets track dimensions and constraints for positioning calculations
|
|
80
|
-
* Handles edge constraints and padding for proper handle positioning
|
|
81
|
-
*/
|
|
82
|
-
const getTrackDimensions = () => {
|
|
83
|
-
const components = getComponents();
|
|
84
|
-
const { handle, container, track } = components;
|
|
85
|
-
|
|
86
|
-
if (!handle || !container || !track) return null;
|
|
87
|
-
|
|
88
|
-
try {
|
|
89
|
-
const handleRect = handle.getBoundingClientRect();
|
|
90
|
-
const trackRect = container.getBoundingClientRect();
|
|
91
|
-
const handleSize = handleRect.width || 20;
|
|
92
|
-
const trackSize = trackRect.width;
|
|
93
|
-
|
|
94
|
-
const edgeConstraint = (handleSize / 2) / trackSize * 100;
|
|
95
|
-
const paddingPixels = state.activeHandle ? 6 : 8;
|
|
96
|
-
const paddingPercent = (paddingPixels / trackSize) * 100;
|
|
97
|
-
|
|
98
|
-
return { handleSize, trackSize, edgeConstraint, paddingPercent };
|
|
99
|
-
} catch (error) {
|
|
100
|
-
console.warn('Error calculating track dimensions:', error);
|
|
101
|
-
return {
|
|
102
|
-
handleSize: 20,
|
|
103
|
-
trackSize: 200,
|
|
104
|
-
edgeConstraint: 5,
|
|
105
|
-
paddingPercent: 4
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Maps value percentage to visual position with edge constraints
|
|
112
|
-
* Ensures handles stay within the visible track area
|
|
113
|
-
*/
|
|
114
|
-
const mapValueToVisualPercent = (valuePercent, edgeConstraint) => {
|
|
115
|
-
const minEdge = edgeConstraint;
|
|
116
|
-
const maxEdge = 100 - edgeConstraint;
|
|
117
|
-
const visualRange = maxEdge - minEdge;
|
|
118
|
-
|
|
119
|
-
if (valuePercent <= 0) return minEdge;
|
|
120
|
-
if (valuePercent >= 100) return maxEdge;
|
|
121
|
-
return minEdge + (valuePercent / 100) * visualRange;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Gets slider value from a position on the track
|
|
126
|
-
* Maps from pixel position to slider value
|
|
127
|
-
*/
|
|
128
|
-
const getValueFromPosition = (position) => {
|
|
129
|
-
const components = getComponents();
|
|
130
|
-
const { handle, container } = components;
|
|
131
|
-
|
|
132
|
-
if (!handle || !container) return state.min;
|
|
133
|
-
|
|
134
|
-
try {
|
|
135
|
-
const containerRect = container.getBoundingClientRect();
|
|
136
|
-
const range = state.max - state.min;
|
|
137
|
-
const handleWidth = handle.getBoundingClientRect().width || 20;
|
|
138
|
-
|
|
139
|
-
const leftEdge = containerRect.left + (handleWidth / 2);
|
|
140
|
-
const rightEdge = containerRect.right - (handleWidth / 2);
|
|
141
|
-
const effectiveWidth = rightEdge - leftEdge;
|
|
142
|
-
|
|
143
|
-
const adjustedPosition = Math.max(leftEdge, Math.min(rightEdge, position));
|
|
144
|
-
const percentageFromLeft = (adjustedPosition - leftEdge) / effectiveWidth;
|
|
145
|
-
|
|
146
|
-
return state.min + percentageFromLeft * range;
|
|
147
|
-
} catch (error) {
|
|
148
|
-
console.warn('Error calculating value from position:', error);
|
|
149
|
-
return state.min;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Rounds a value to the nearest step
|
|
155
|
-
* Used for discrete sliders
|
|
156
|
-
*/
|
|
157
|
-
const roundToStep = (value) => {
|
|
158
|
-
const step = state.step;
|
|
159
|
-
if (!step || step <= 0) return value;
|
|
160
|
-
|
|
161
|
-
const steps = Math.round((value - state.min) / step);
|
|
162
|
-
return state.min + (steps * step);
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Clamps a value between min and max
|
|
167
|
-
* Ensures values stay within valid range
|
|
168
|
-
*/
|
|
169
|
-
const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Updates handle and bubble positions
|
|
173
|
-
* Positions elements according to current state values
|
|
174
|
-
*/
|
|
175
|
-
const updateHandlePositions = () => {
|
|
176
|
-
const components = getComponents();
|
|
177
|
-
const { handle, container, valueBubble, secondHandle, secondValueBubble } = components;
|
|
178
|
-
|
|
179
|
-
if (!handle || !container) return;
|
|
180
|
-
|
|
181
|
-
const dims = getTrackDimensions();
|
|
182
|
-
if (!dims) return;
|
|
183
|
-
|
|
184
|
-
const { edgeConstraint } = dims;
|
|
185
|
-
|
|
186
|
-
// Update main handle position
|
|
187
|
-
const percent = getPercentage(state.value);
|
|
188
|
-
const adjustedPercent = mapValueToVisualPercent(percent, edgeConstraint);
|
|
189
|
-
|
|
190
|
-
handle.style.left = `${adjustedPercent}%`;
|
|
191
|
-
handle.style.transform = 'translate(-50%, -50%)';
|
|
192
|
-
|
|
193
|
-
if (valueBubble) {
|
|
194
|
-
valueBubble.style.left = `${adjustedPercent}%`;
|
|
195
|
-
valueBubble.style.transform = 'translateX(-50%)';
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// Update second handle if range slider
|
|
199
|
-
if (config.range && secondHandle && state.secondValue !== null) {
|
|
200
|
-
const secondPercent = getPercentage(state.secondValue);
|
|
201
|
-
const adjustedSecondPercent = mapValueToVisualPercent(secondPercent, edgeConstraint);
|
|
202
|
-
|
|
203
|
-
secondHandle.style.left = `${adjustedSecondPercent}%`;
|
|
204
|
-
secondHandle.style.transform = 'translate(-50%, -50%)';
|
|
205
|
-
|
|
206
|
-
if (secondValueBubble) {
|
|
207
|
-
secondValueBubble.style.left = `${adjustedSecondPercent}%`;
|
|
208
|
-
secondValueBubble.style.transform = 'translateX(-50%)';
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// Update ARIA attributes
|
|
213
|
-
handle.setAttribute('aria-valuenow', String(state.value));
|
|
214
|
-
if (config.range && secondHandle && state.secondValue !== null) {
|
|
215
|
-
secondHandle.setAttribute('aria-valuenow', String(state.secondValue));
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Updates all track segments
|
|
221
|
-
* Handles different rendering for single and range sliders
|
|
222
|
-
*/
|
|
223
|
-
const updateTrackSegments = () => {
|
|
224
|
-
const components = getComponents();
|
|
225
|
-
const { track, container, handle, startTrack, activeTrack, remainingTrack } = components;
|
|
226
|
-
|
|
227
|
-
if (!track || !container || !handle) return;
|
|
228
|
-
|
|
229
|
-
// Safety check for required elements
|
|
230
|
-
if (!activeTrack || !remainingTrack) {
|
|
231
|
-
console.warn('Missing track segments, cannot update track display');
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
const dims = getTrackDimensions();
|
|
236
|
-
if (!dims) return;
|
|
237
|
-
|
|
238
|
-
const { handleSize, trackSize, paddingPercent } = dims;
|
|
239
|
-
const edgeConstraint = (handleSize / 2) / trackSize * 100;
|
|
240
|
-
|
|
241
|
-
if (config.range && state.secondValue !== null) {
|
|
242
|
-
// Range slider setup
|
|
243
|
-
const lowerValue = Math.min(state.value, state.secondValue);
|
|
244
|
-
const higherValue = Math.max(state.value, state.secondValue);
|
|
245
|
-
const lowerPercent = getPercentage(lowerValue);
|
|
246
|
-
const higherPercent = getPercentage(higherValue);
|
|
247
|
-
|
|
248
|
-
const adjustedLower = mapValueToVisualPercent(lowerPercent, edgeConstraint);
|
|
249
|
-
const adjustedHigher = mapValueToVisualPercent(higherPercent, edgeConstraint);
|
|
250
|
-
|
|
251
|
-
// Start track (before first handle)
|
|
252
|
-
if (startTrack) {
|
|
253
|
-
if (lowerPercent > 1) {
|
|
254
|
-
startTrack.style.display = 'block';
|
|
255
|
-
startTrack.style.left = '0';
|
|
256
|
-
startTrack.style.right = `${100 - (adjustedLower - paddingPercent)}%`;
|
|
257
|
-
startTrack.style.width = 'auto';
|
|
258
|
-
} else {
|
|
259
|
-
startTrack.style.display = 'none';
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
// Active track (between handles)
|
|
264
|
-
const valueDiffPercent = Math.abs(higherPercent - lowerPercent);
|
|
265
|
-
const hideThreshold = (handleSize / trackSize) * 100;
|
|
266
|
-
|
|
267
|
-
if (valueDiffPercent <= hideThreshold) {
|
|
268
|
-
activeTrack.style.display = 'none';
|
|
269
|
-
} else {
|
|
270
|
-
activeTrack.style.display = 'block';
|
|
271
|
-
activeTrack.style.left = `${adjustedLower + paddingPercent}%`;
|
|
272
|
-
activeTrack.style.right = `${100 - (adjustedHigher - paddingPercent)}%`;
|
|
273
|
-
activeTrack.style.width = 'auto';
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
// Remaining track (after second handle)
|
|
277
|
-
remainingTrack.style.display = 'block';
|
|
278
|
-
remainingTrack.style.left = `${adjustedHigher + paddingPercent}%`;
|
|
279
|
-
remainingTrack.style.right = '0';
|
|
280
|
-
remainingTrack.style.width = 'auto';
|
|
281
|
-
} else {
|
|
282
|
-
// Single handle slider
|
|
283
|
-
const valuePercent = getPercentage(state.value);
|
|
284
|
-
const adjustedPercent = mapValueToVisualPercent(valuePercent, edgeConstraint);
|
|
285
|
-
|
|
286
|
-
// Hide start track for single slider
|
|
287
|
-
if (startTrack) {
|
|
288
|
-
startTrack.style.display = 'none';
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
// Active track (filled part)
|
|
292
|
-
activeTrack.style.display = 'block';
|
|
293
|
-
activeTrack.style.left = '0';
|
|
294
|
-
activeTrack.style.right = `${100 - (adjustedPercent - paddingPercent)}%`;
|
|
295
|
-
activeTrack.style.width = 'auto';
|
|
296
|
-
|
|
297
|
-
// Remaining track (unfilled part)
|
|
298
|
-
remainingTrack.style.display = 'block';
|
|
299
|
-
remainingTrack.style.left = `${adjustedPercent + paddingPercent}%`;
|
|
300
|
-
remainingTrack.style.right = '0';
|
|
301
|
-
remainingTrack.style.width = 'auto';
|
|
302
|
-
}
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Updates value bubble content
|
|
307
|
-
* Applies formatting to displayed values
|
|
308
|
-
*/
|
|
309
|
-
const updateValueBubbles = () => {
|
|
310
|
-
const components = getComponents();
|
|
311
|
-
const { valueBubble, secondValueBubble } = components;
|
|
312
|
-
|
|
313
|
-
if (!valueBubble) return;
|
|
314
|
-
|
|
315
|
-
const formatter = config.valueFormatter || (value => value.toString());
|
|
316
|
-
valueBubble.textContent = formatter(state.value);
|
|
317
|
-
|
|
318
|
-
if (config.range && secondValueBubble && state.secondValue !== null) {
|
|
319
|
-
secondValueBubble.textContent = formatter(state.secondValue);
|
|
320
|
-
}
|
|
321
|
-
};
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* Shows or hides value bubble
|
|
325
|
-
* Controls visibility for value indicators
|
|
326
|
-
*/
|
|
327
|
-
const showValueBubble = (bubbleElement, show) => {
|
|
328
|
-
if (!bubbleElement || !config.showValue) return;
|
|
329
|
-
|
|
330
|
-
const bubbleClass = state.component.getClass('slider-value');
|
|
331
|
-
bubbleElement.classList[show ? 'add' : 'remove'](`${bubbleClass}--visible`);
|
|
332
|
-
};
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* Generates tick marks
|
|
336
|
-
* Creates visual indicators for discrete values
|
|
337
|
-
*/
|
|
338
|
-
const generateTicks = () => {
|
|
339
|
-
const components = getComponents();
|
|
340
|
-
const { ticksContainer, container } = components;
|
|
341
|
-
|
|
342
|
-
if (!ticksContainer || !container) return;
|
|
343
|
-
|
|
344
|
-
// Clear existing ticks
|
|
345
|
-
while (ticksContainer.firstChild) {
|
|
346
|
-
ticksContainer.removeChild(ticksContainer.firstChild);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
state.ticks = [];
|
|
350
|
-
if (!config.ticks) return;
|
|
351
|
-
|
|
352
|
-
const numSteps = Math.floor((state.max - state.min) / state.step);
|
|
353
|
-
const tickValues = [];
|
|
354
|
-
|
|
355
|
-
// Generate tick values
|
|
356
|
-
for (let i = 0; i <= numSteps; i++) {
|
|
357
|
-
const value = state.min + (i * state.step);
|
|
358
|
-
if (value <= state.max) tickValues.push(value);
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
// Ensure max value is included
|
|
362
|
-
if (tickValues[tickValues.length - 1] !== state.max) {
|
|
363
|
-
tickValues.push(state.max);
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
// CSS classes
|
|
367
|
-
const tickClass = state.component.getClass('slider-tick');
|
|
368
|
-
const activeClass = `${tickClass}--active`;
|
|
369
|
-
const inactiveClass = `${tickClass}--inactive`;
|
|
370
|
-
const hiddenClass = `${tickClass}--hidden`;
|
|
371
|
-
|
|
372
|
-
// Create tick elements
|
|
373
|
-
tickValues.forEach(value => {
|
|
374
|
-
const percent = getPercentage(value);
|
|
375
|
-
const tick = document.createElement('div');
|
|
376
|
-
tick.classList.add(tickClass);
|
|
377
|
-
tick.style.left = `${percent}%`;
|
|
378
|
-
|
|
379
|
-
// Determine tick active state
|
|
380
|
-
const isExactlySelected = (value === state.value ||
|
|
381
|
-
(config.range && state.secondValue !== null && value === state.secondValue));
|
|
382
|
-
|
|
383
|
-
if (isExactlySelected) {
|
|
384
|
-
tick.classList.add(hiddenClass);
|
|
385
|
-
} else if (config.range && state.secondValue !== null) {
|
|
386
|
-
const lowerValue = Math.min(state.value, state.secondValue);
|
|
387
|
-
const higherValue = Math.max(state.value, state.secondValue);
|
|
388
|
-
|
|
389
|
-
tick.classList.add(value >= lowerValue && value <= higherValue ? activeClass : inactiveClass);
|
|
390
|
-
} else {
|
|
391
|
-
tick.classList.add(value <= state.value ? activeClass : inactiveClass);
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
ticksContainer.appendChild(tick);
|
|
395
|
-
state.ticks.push(tick);
|
|
396
|
-
});
|
|
397
|
-
};
|
|
398
|
-
|
|
399
|
-
/**
|
|
400
|
-
* Updates active state of tick marks
|
|
401
|
-
* Sets visual state based on current values
|
|
402
|
-
*/
|
|
403
|
-
const updateTicks = () => {
|
|
404
|
-
if (!state.ticks || state.ticks.length === 0) return;
|
|
405
|
-
|
|
406
|
-
const tickClass = state.component.getClass('slider-tick');
|
|
407
|
-
const activeClass = `${tickClass}--active`;
|
|
408
|
-
const inactiveClass = `${tickClass}--inactive`;
|
|
409
|
-
const hiddenClass = `${tickClass}--hidden`;
|
|
410
|
-
|
|
411
|
-
state.ticks.forEach((tick, index) => {
|
|
412
|
-
// Safety check for null tick
|
|
413
|
-
if (!tick) return;
|
|
414
|
-
|
|
415
|
-
// Calculate the value for this tick
|
|
416
|
-
const tickValue = state.min + (index * state.step);
|
|
417
|
-
|
|
418
|
-
// Reset visibility first
|
|
419
|
-
tick.classList.remove(hiddenClass);
|
|
420
|
-
|
|
421
|
-
// Check if this tick should be hidden (matches exactly a selected value)
|
|
422
|
-
const isExactlySelected = (tickValue === state.value ||
|
|
423
|
-
(config.range && state.secondValue !== null && tickValue === state.secondValue));
|
|
424
|
-
|
|
425
|
-
if (isExactlySelected) {
|
|
426
|
-
tick.classList.add(hiddenClass);
|
|
427
|
-
} else if (config.range && state.secondValue !== null) {
|
|
428
|
-
// Range slider - ticks between values should be active
|
|
429
|
-
const lowerValue = Math.min(state.value, state.secondValue);
|
|
430
|
-
const higherValue = Math.max(state.value, state.secondValue);
|
|
431
|
-
|
|
432
|
-
if (tickValue >= lowerValue && tickValue <= higherValue) {
|
|
433
|
-
tick.classList.add(activeClass);
|
|
434
|
-
tick.classList.remove(inactiveClass);
|
|
435
|
-
} else {
|
|
436
|
-
tick.classList.remove(activeClass);
|
|
437
|
-
tick.classList.add(inactiveClass);
|
|
438
|
-
}
|
|
439
|
-
} else {
|
|
440
|
-
// Single slider - ticks below value should be active
|
|
441
|
-
if (tickValue <= state.value) {
|
|
442
|
-
tick.classList.add(activeClass);
|
|
443
|
-
tick.classList.remove(inactiveClass);
|
|
444
|
-
} else {
|
|
445
|
-
tick.classList.remove(activeClass);
|
|
446
|
-
tick.classList.add(inactiveClass);
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
});
|
|
450
|
-
};
|
|
451
|
-
|
|
452
|
-
/**
|
|
453
|
-
* Renders all UI elements to match current state
|
|
454
|
-
* Central method for keeping UI in sync with state
|
|
455
|
-
*/
|
|
456
|
-
const render = () => {
|
|
457
|
-
try {
|
|
458
|
-
updateHandlePositions();
|
|
459
|
-
updateTrackSegments();
|
|
460
|
-
updateValueBubbles();
|
|
461
|
-
updateTicks();
|
|
462
|
-
} catch (error) {
|
|
463
|
-
console.warn('Error rendering UI:', error);
|
|
464
|
-
}
|
|
465
|
-
};
|
|
466
|
-
|
|
467
|
-
// Create UI renderer interface for event handlers
|
|
468
|
-
const uiRenderer = {
|
|
469
|
-
getPercentage,
|
|
470
|
-
getValueFromPosition,
|
|
471
|
-
roundToStep,
|
|
472
|
-
clamp,
|
|
473
|
-
showValueBubble,
|
|
474
|
-
generateTicks,
|
|
475
|
-
updateTicks,
|
|
476
|
-
updateUi: render, // For backward compatibility
|
|
477
|
-
render
|
|
478
|
-
};
|
|
479
|
-
|
|
480
|
-
// Create event handlers with our renderer
|
|
481
|
-
const handlers = createHandlers(config, state, uiRenderer, eventHelpers);
|
|
482
|
-
|
|
483
|
-
// Initialize slider controller
|
|
484
|
-
const initController = () => {
|
|
485
|
-
try {
|
|
486
|
-
// Verify we have the necessary components
|
|
487
|
-
if (!component.components || !component.components.handle) {
|
|
488
|
-
console.warn('Cannot initialize slider controller: missing required components');
|
|
489
|
-
return;
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
// Set ARIA attributes
|
|
493
|
-
component.element.setAttribute('aria-valuemin', String(state.min));
|
|
494
|
-
component.element.setAttribute('aria-valuemax', String(state.max));
|
|
495
|
-
component.element.setAttribute('aria-valuenow', String(state.value));
|
|
496
|
-
|
|
497
|
-
const { handle, secondHandle } = component.components;
|
|
498
|
-
|
|
499
|
-
// Set handle attributes
|
|
500
|
-
if (handle) {
|
|
501
|
-
handle.setAttribute('aria-valuemin', String(state.min));
|
|
502
|
-
handle.setAttribute('aria-valuemax', String(state.max));
|
|
503
|
-
handle.setAttribute('aria-valuenow', String(state.value));
|
|
504
|
-
|
|
505
|
-
if (config.range && secondHandle && state.secondValue !== null) {
|
|
506
|
-
secondHandle.setAttribute('aria-valuemin', String(state.min));
|
|
507
|
-
secondHandle.setAttribute('aria-valuemax', String(state.max));
|
|
508
|
-
secondHandle.setAttribute('aria-valuenow', String(state.secondValue));
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
|
|
512
|
-
// Setup event listeners
|
|
513
|
-
handlers.setupEventListeners();
|
|
514
|
-
|
|
515
|
-
// Initially generate ticks if needed
|
|
516
|
-
if (config.ticks || config.tickLabels) {
|
|
517
|
-
generateTicks();
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
// Initial UI update
|
|
521
|
-
render();
|
|
522
|
-
|
|
523
|
-
// Force one more UI update after a delay to ensure proper positioning
|
|
524
|
-
setTimeout(() => {
|
|
525
|
-
render();
|
|
526
|
-
}, 50);
|
|
527
|
-
} catch (error) {
|
|
528
|
-
console.error('Error initializing slider controller:', error);
|
|
529
|
-
}
|
|
530
|
-
};
|
|
531
|
-
|
|
532
|
-
// Register with lifecycle if available
|
|
533
|
-
if (component.lifecycle) {
|
|
534
|
-
const originalDestroy = component.lifecycle.destroy || (() => {});
|
|
535
|
-
component.lifecycle.destroy = () => {
|
|
536
|
-
handlers.cleanupEventListeners();
|
|
537
|
-
originalDestroy();
|
|
538
|
-
};
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
// Schedule initialization after current execution completes
|
|
542
|
-
setTimeout(() => {
|
|
543
|
-
initController();
|
|
544
|
-
}, 0);
|
|
545
|
-
|
|
546
|
-
// Return enhanced component
|
|
547
|
-
return {
|
|
548
|
-
...component,
|
|
549
|
-
// Provide controller API under 'slider' property for backward compatibility
|
|
550
|
-
slider: {
|
|
551
|
-
/**
|
|
552
|
-
* Sets slider value
|
|
553
|
-
* @param value New value
|
|
554
|
-
* @param triggerEvent Whether to trigger change event
|
|
555
|
-
* @returns Slider controller for chaining
|
|
556
|
-
*/
|
|
557
|
-
setValue(value, triggerEvent = true) {
|
|
558
|
-
const newValue = clamp(value, state.min, state.max);
|
|
559
|
-
state.value = newValue;
|
|
560
|
-
render();
|
|
561
|
-
|
|
562
|
-
if (triggerEvent) {
|
|
563
|
-
eventHelpers.triggerEvent(SLIDER_EVENTS.CHANGE);
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
return this;
|
|
567
|
-
},
|
|
568
|
-
|
|
569
|
-
/**
|
|
570
|
-
* Gets slider value
|
|
571
|
-
* @returns Current value
|
|
572
|
-
*/
|
|
573
|
-
getValue() {
|
|
574
|
-
return state.value;
|
|
575
|
-
},
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* Sets secondary slider value (for range slider)
|
|
579
|
-
* @param value New secondary value
|
|
580
|
-
* @param triggerEvent Whether to trigger change event
|
|
581
|
-
* @returns Slider controller for chaining
|
|
582
|
-
*/
|
|
583
|
-
setSecondValue(value, triggerEvent = true) {
|
|
584
|
-
if (!config.range) return this;
|
|
585
|
-
|
|
586
|
-
const newValue = clamp(value, state.min, state.max);
|
|
587
|
-
state.secondValue = newValue;
|
|
588
|
-
render();
|
|
589
|
-
|
|
590
|
-
if (triggerEvent) {
|
|
591
|
-
eventHelpers.triggerEvent(SLIDER_EVENTS.CHANGE);
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
return this;
|
|
595
|
-
},
|
|
596
|
-
|
|
597
|
-
/**
|
|
598
|
-
* Gets secondary slider value
|
|
599
|
-
* @returns Current secondary value or null
|
|
600
|
-
*/
|
|
601
|
-
getSecondValue() {
|
|
602
|
-
return config.range ? state.secondValue : null;
|
|
603
|
-
},
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* Sets slider minimum value
|
|
607
|
-
* @param min New minimum value
|
|
608
|
-
* @returns Slider controller for chaining
|
|
609
|
-
*/
|
|
610
|
-
setMin(min) {
|
|
611
|
-
state.min = min;
|
|
612
|
-
|
|
613
|
-
// Update ARIA attributes if elements exist
|
|
614
|
-
component.element.setAttribute('aria-valuemin', String(min));
|
|
615
|
-
if (component.components?.handle) {
|
|
616
|
-
component.components.handle.setAttribute('aria-valuemin', String(min));
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
if (config.range && component.components?.secondHandle) {
|
|
620
|
-
component.components.secondHandle.setAttribute('aria-valuemin', String(min));
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
// Clamp values to new min
|
|
624
|
-
if (state.value < min) state.value = min;
|
|
625
|
-
if (config.range && state.secondValue !== null && state.secondValue < min) {
|
|
626
|
-
state.secondValue = min;
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
// Regenerate ticks if needed
|
|
630
|
-
if (config.ticks || config.tickLabels) {
|
|
631
|
-
generateTicks();
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
render();
|
|
635
|
-
return this;
|
|
636
|
-
},
|
|
637
|
-
|
|
638
|
-
/**
|
|
639
|
-
* Gets slider minimum value
|
|
640
|
-
* @returns Current minimum value
|
|
641
|
-
*/
|
|
642
|
-
getMin() {
|
|
643
|
-
return state.min;
|
|
644
|
-
},
|
|
645
|
-
|
|
646
|
-
/**
|
|
647
|
-
* Sets slider maximum value
|
|
648
|
-
* @param max New maximum value
|
|
649
|
-
* @returns Slider controller for chaining
|
|
650
|
-
*/
|
|
651
|
-
setMax(max) {
|
|
652
|
-
state.max = max;
|
|
653
|
-
|
|
654
|
-
// Update ARIA attributes if elements exist
|
|
655
|
-
component.element.setAttribute('aria-valuemax', String(max));
|
|
656
|
-
if (component.components?.handle) {
|
|
657
|
-
component.components.handle.setAttribute('aria-valuemax', String(max));
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
if (config.range && component.components?.secondHandle) {
|
|
661
|
-
component.components.secondHandle.setAttribute('aria-valuemax', String(max));
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
// Clamp values to new max
|
|
665
|
-
if (state.value > max) state.value = max;
|
|
666
|
-
if (config.range && state.secondValue !== null && state.secondValue > max) {
|
|
667
|
-
state.secondValue = max;
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
// Regenerate ticks if needed
|
|
671
|
-
if (config.ticks || config.tickLabels) {
|
|
672
|
-
generateTicks();
|
|
673
|
-
}
|
|
674
|
-
|
|
675
|
-
render();
|
|
676
|
-
return this;
|
|
677
|
-
},
|
|
678
|
-
|
|
679
|
-
/**
|
|
680
|
-
* Gets slider maximum value
|
|
681
|
-
* @returns Current maximum value
|
|
682
|
-
*/
|
|
683
|
-
getMax() {
|
|
684
|
-
return state.max;
|
|
685
|
-
},
|
|
686
|
-
|
|
687
|
-
/**
|
|
688
|
-
* Sets slider step size
|
|
689
|
-
* @param step New step size
|
|
690
|
-
* @returns Slider controller for chaining
|
|
691
|
-
*/
|
|
692
|
-
setStep(step) {
|
|
693
|
-
state.step = step;
|
|
694
|
-
|
|
695
|
-
// Add or remove discrete class
|
|
696
|
-
component.element.classList[step > 0 ? 'add' : 'remove'](
|
|
697
|
-
`${component.getClass('slider')}--discrete`
|
|
698
|
-
);
|
|
699
|
-
|
|
700
|
-
// Regenerate ticks if needed
|
|
701
|
-
if (config.ticks || config.tickLabels) {
|
|
702
|
-
generateTicks();
|
|
703
|
-
updateTicks();
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
return this;
|
|
707
|
-
},
|
|
708
|
-
|
|
709
|
-
/**
|
|
710
|
-
* Gets slider step size
|
|
711
|
-
* @returns Current step size
|
|
712
|
-
*/
|
|
713
|
-
getStep() {
|
|
714
|
-
return state.step;
|
|
715
|
-
},
|
|
716
|
-
|
|
717
|
-
/**
|
|
718
|
-
* Regenerate tick marks and labels
|
|
719
|
-
* @returns Slider controller for chaining
|
|
720
|
-
*/
|
|
721
|
-
regenerateTicks() {
|
|
722
|
-
generateTicks();
|
|
723
|
-
updateTicks();
|
|
724
|
-
return this;
|
|
725
|
-
},
|
|
726
|
-
|
|
727
|
-
/**
|
|
728
|
-
* Update all UI elements
|
|
729
|
-
* @returns Slider controller for chaining
|
|
730
|
-
*/
|
|
731
|
-
updateUi() {
|
|
732
|
-
render();
|
|
733
|
-
return this;
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
};
|
|
737
|
-
};
|