@vkontakte/vkui 4.15.0 → 4.16.2
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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +391 -282
- package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -0
- package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +2 -2
- package/.cache/ts/src/components/FixedLayout/FixedLayout.d.ts +4 -9
- package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +1 -2
- package/.cache/ts/src/components/Root/Root.d.ts +5 -27
- package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
- package/.cache/ts/src/components/Tappable/Tappable.d.ts +12 -9
- package/.cache/ts/src/components/Touch/Touch.d.ts +1 -2
- package/.cache/ts/src/components/UsersStack/masks.d.ts +1 -1
- package/.cache/ts/src/hooks/useEventListener.d.ts +2 -2
- package/.cache/ts/src/hooks/useKeyboard.d.ts +11 -0
- package/.cache/ts/src/index.d.ts +1 -1
- package/.cache/ts/src/lib/select.d.ts +7 -0
- package/.cache/ts/src/lib/touch.d.ts +1 -1
- package/.cache/ts/src/lib/utils.d.ts +2 -3
- package/.cache/ts/src/types.d.ts +2 -6
- package/.cache/ts/src/unstable/index.d.ts +2 -0
- package/babel.cjs.config.js +7 -1
- package/babel.config.js +7 -1
- package/dist/cjs/components/AppRoot/AppRoot.d.ts +1 -0
- package/dist/cjs/components/AppRoot/AppRoot.js +29 -1
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js +1 -1
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.js +3 -3
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +5 -6
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/useChipsSelect.js +2 -2
- package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +2 -2
- package/dist/cjs/components/CustomSelect/CustomSelect.js +3 -3
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +4 -9
- package/dist/cjs/components/FixedLayout/FixedLayout.js +91 -179
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/Gallery/Gallery.js +2 -2
- package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +6 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -2
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +2 -2
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +2 -2
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -2
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/RangeSlider/UniversalSlider.js +2 -2
- package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cjs/components/Root/Root.d.ts +5 -27
- package/dist/cjs/components/Root/Root.js +158 -214
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +3 -3
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
- package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +126 -0
- package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
- package/dist/cjs/components/Snackbar/Snackbar.js +2 -2
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts +12 -9
- package/dist/cjs/components/Tappable/Tappable.js +47 -36
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.d.ts +1 -2
- package/dist/cjs/components/Touch/Touch.js +172 -283
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js +9 -18
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/UsersStack/masks.d.ts +1 -1
- package/dist/cjs/components/UsersStack/masks.js +5 -8
- package/dist/cjs/components/UsersStack/masks.js.map +1 -1
- package/dist/cjs/components/View/View.js +2 -2
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +2 -2
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/hooks/useEventListener.d.ts +2 -2
- package/dist/cjs/hooks/useEventListener.js +9 -4
- package/dist/cjs/hooks/useEventListener.js.map +1 -1
- package/dist/cjs/hooks/useGlobalEventListener.js +2 -4
- package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cjs/hooks/useInsets.js +3 -10
- package/dist/cjs/hooks/useInsets.js.map +1 -1
- package/dist/cjs/hooks/useKeyboard.d.ts +11 -0
- package/dist/cjs/hooks/useKeyboard.js +78 -0
- package/dist/cjs/hooks/useKeyboard.js.map +1 -0
- package/dist/cjs/hooks/useKeyboardInputTracker.js +4 -2
- package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/select.d.ts +7 -0
- package/dist/cjs/lib/select.js +73 -0
- package/dist/cjs/lib/select.js.map +1 -0
- package/dist/cjs/lib/touch.d.ts +1 -1
- package/dist/cjs/lib/touch.js +6 -2
- package/dist/cjs/lib/touch.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts +2 -3
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -6
- package/dist/cjs/unstable/index.d.ts +2 -0
- package/dist/cjs/unstable/index.js +8 -0
- package/dist/cjs/unstable/index.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +1 -0
- package/dist/components/AppRoot/AppRoot.js +29 -5
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/Banner/Banner.js +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Cell/Cell.js +1 -1
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +4 -6
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ChipsSelect/useChipsSelect.js +2 -2
- package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
- package/dist/components/CustomSelect/CustomSelect.js +2 -3
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.d.ts +4 -9
- package/dist/components/FixedLayout/FixedLayout.js +84 -175
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/Gallery/Gallery.js +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +5 -1
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -2
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +1 -1
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/Panel/Panel.js +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/RangeSlider/UniversalSlider.js +1 -1
- package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/components/Root/Root.d.ts +5 -27
- package/dist/components/Root/Root.js +152 -207
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.js +1 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
- package/dist/components/SimpleCheckbox/SimpleCheckbox.js +97 -0
- package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
- package/dist/components/Snackbar/Snackbar.js +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +12 -9
- package/dist/components/Tappable/Tappable.js +45 -37
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts +1 -2
- package/dist/components/Touch/Touch.js +163 -286
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +7 -16
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/UsersStack/masks.d.ts +1 -1
- package/dist/components/UsersStack/masks.js +6 -9
- package/dist/components/UsersStack/masks.js.map +1 -1
- package/dist/components/View/View.js +1 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.css +1 -0
- package/dist/cssm/components/AppRoot/AppRoot.js +30 -2
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.css +1 -1
- package/dist/cssm/components/Banner/Banner.js +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +1 -1
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +4 -6
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js +2 -2
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +84 -175
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Header/Header.js +1 -1
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.css +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +1 -1
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -1
- package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cssm/components/Root/Root.js +152 -207
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +1 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -0
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +98 -0
- package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
- package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +45 -37
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +163 -286
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +7 -16
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/UsersStack/masks.js +6 -9
- package/dist/cssm/components/UsersStack/masks.js.map +1 -1
- package/dist/cssm/components/View/View.js +1 -1
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +1 -1
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/hooks/useEventListener.js +8 -4
- package/dist/cssm/hooks/useEventListener.js.map +1 -1
- package/dist/cssm/hooks/useGlobalEventListener.js +2 -2
- package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cssm/hooks/useInsets.js +2 -10
- package/dist/cssm/hooks/useInsets.js.map +1 -1
- package/dist/cssm/hooks/useKeyboard.js +62 -0
- package/dist/cssm/hooks/useKeyboard.js.map +1 -0
- package/dist/cssm/hooks/useKeyboardInputTracker.js +4 -2
- package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cssm/index.js +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/select.js +62 -0
- package/dist/cssm/lib/select.js.map +1 -0
- package/dist/cssm/lib/touch.js +5 -2
- package/dist/cssm/lib/touch.js.map +1 -1
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/animations.css +1 -1
- package/dist/cssm/styles/common.css +1 -1
- package/dist/cssm/styles/components.css +1 -1
- package/dist/cssm/styles/constants.css +1 -1
- package/dist/cssm/styles/unstable.css +1 -1
- package/dist/cssm/unstable/index.js +1 -0
- package/dist/cssm/unstable/index.js.map +1 -1
- package/dist/hooks/useEventListener.d.ts +2 -2
- package/dist/hooks/useEventListener.js +8 -4
- package/dist/hooks/useEventListener.js.map +1 -1
- package/dist/hooks/useGlobalEventListener.js +2 -2
- package/dist/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/hooks/useInsets.js +2 -10
- package/dist/hooks/useInsets.js.map +1 -1
- package/dist/hooks/useKeyboard.d.ts +11 -0
- package/dist/hooks/useKeyboard.js +62 -0
- package/dist/hooks/useKeyboard.js.map +1 -0
- package/dist/hooks/useKeyboardInputTracker.js +4 -2
- package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/select.d.ts +7 -0
- package/dist/lib/select.js +62 -0
- package/dist/lib/select.js.map +1 -0
- package/dist/lib/touch.d.ts +1 -1
- package/dist/lib/touch.js +5 -2
- package/dist/lib/touch.js.map +1 -1
- package/dist/lib/utils.d.ts +2 -3
- package/dist/lib/utils.js.map +1 -1
- package/dist/types.d.ts +2 -6
- package/dist/unstable/index.d.ts +2 -0
- package/dist/unstable/index.js +1 -0
- package/dist/unstable/index.js.map +1 -1
- package/dist/unstable.css +1 -1
- package/dist/unstable.css.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +4 -2
- package/postcss.config.js +1 -1
- package/src/components/ActionSheetItem/ActionSheetItem.css +4 -8
- package/src/components/AppRoot/AppRoot.css +20 -0
- package/src/components/AppRoot/AppRoot.tsx +30 -0
- package/src/components/Banner/Banner.css +4 -0
- package/src/components/Banner/Banner.tsx +1 -1
- package/src/components/Cell/Cell.tsx +1 -1
- package/src/components/ChipsSelect/ChipsSelect.tsx +4 -7
- package/src/components/ChipsSelect/Readme.md +0 -2
- package/src/components/ChipsSelect/useChipsSelect.ts +1 -1
- package/src/components/CustomSelect/CustomSelect.tsx +3 -2
- package/src/components/FixedLayout/FixedLayout.tsx +61 -147
- package/src/components/Gallery/Gallery.tsx +1 -1
- package/src/components/Header/Header.tsx +1 -1
- package/src/components/ModalCardBase/ModalCardBase.css +4 -0
- package/src/components/ModalCardBase/ModalCardBase.tsx +5 -1
- package/src/components/ModalPage/ModalPage.tsx +1 -2
- package/src/components/ModalRoot/ModalRoot.css +10 -0
- package/src/components/ModalRoot/ModalRoot.tsx +1 -1
- package/src/components/Panel/Panel.tsx +1 -1
- package/src/components/PanelHeaderContent/PanelHeaderContent.css +2 -1
- package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +2 -2
- package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
- package/src/components/RangeSlider/UniversalSlider.tsx +1 -1
- package/src/components/Root/Readme.md +27 -37
- package/src/components/Root/Root.tsx +112 -191
- package/src/components/Search/Search.tsx +1 -1
- package/src/components/Separator/Readme.md +3 -1
- package/src/components/SimpleCell/SimpleCell.tsx +1 -1
- package/src/components/SimpleCheckbox/Readme.md +17 -0
- package/src/components/SimpleCheckbox/SimpleCheckbox.css +115 -0
- package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +105 -0
- package/src/components/Snackbar/Snackbar.tsx +1 -1
- package/src/components/Tappable/Tappable.tsx +28 -37
- package/src/components/Touch/Touch.tsx +100 -238
- package/src/components/UsersStack/UsersStack.css +5 -9
- package/src/components/UsersStack/UsersStack.tsx +4 -11
- package/src/components/UsersStack/masks.tsx +6 -9
- package/src/components/View/Readme.md +34 -42
- package/src/components/View/View.tsx +1 -1
- package/src/components/View/ViewInfinite.tsx +1 -1
- package/src/hooks/useEventListener.ts +11 -8
- package/src/hooks/useGlobalEventListener.ts +2 -2
- package/src/hooks/useInsets.ts +2 -8
- package/src/hooks/useKeyboard.ts +67 -0
- package/src/hooks/useKeyboardInputTracker.ts +4 -2
- package/src/index.ts +1 -1
- package/src/lib/select.ts +53 -0
- package/src/lib/touch.ts +2 -2
- package/src/lib/utils.ts +3 -4
- package/src/styles/animations.css +0 -14
- package/src/styles/common.css +0 -21
- package/src/styles/components.css +2 -0
- package/src/styles/constants.css +3 -0
- package/src/styles/unstable.css +1 -0
- package/src/types.ts +2 -8
- package/src/unstable/index.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/RangeSlider/UniversalSlider.tsx"],"names":["UniversalSliderDumb","min","max","step","value","defaultValue","onChange","getRootRef","sizeY","disabled","restProps","platform","start","end","isRange","gesture","React","useRef","dragging","startX","containerWidth","current","container","thumbStart","thumbEnd","offsetToValue","absolute","updateRange","nextValue","snapDirection","pos","target","Math","abs","onStart","e","boundingRect","getBoundingClientRect","width","absolutePosition","left","originalEvent","stopPropagation","onMove","shiftX","preventDefault","onEnd","toPercent","v","draggerStyle","join","UniversalSlider"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/RangeSlider/UniversalSlider.tsx"],"names":["UniversalSliderDumb","min","max","step","value","defaultValue","onChange","getRootRef","sizeY","disabled","restProps","platform","start","end","isRange","gesture","React","useRef","dragging","startX","containerWidth","current","container","thumbStart","thumbEnd","offsetToValue","absolute","updateRange","nextValue","snapDirection","pos","target","Math","abs","onStart","e","boundingRect","getBoundingClientRect","width","absolutePosition","left","originalEvent","stopPropagation","onMove","shiftX","preventDefault","onEnd","toPercent","v","draggerStyle","join","UniversalSlider"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Touch, TouchEvent, TouchEventHandler } from '../Touch/Touch';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { HasRootRef } from '../../types';\nimport { rescale } from '../../helpers/math';\nimport { withAdaptivity, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport '../Slider/Slider.css';\n\nexport type UniversalValue = [number | null, number];\n\nexport interface UniversalSliderProps<Value> extends\n HasRootRef<HTMLDivElement>,\n Omit<React.HTMLAttributes<HTMLDivElement>, 'value' | 'defaultValue' | 'onChange'>,\n AdaptivityProps {\n min?: number;\n max?: number;\n step?: number;\n value?: Value;\n defaultValue?: Value;\n disabled?: boolean;\n onChange?(value: Value, e: TouchEvent): void;\n}\n\nconst UniversalSliderDumb: React.FC<UniversalSliderProps<UniversalValue>> = ({\n min, max, step,\n value, defaultValue, onChange,\n getRootRef,\n sizeY,\n disabled,\n ...restProps\n}) => {\n const platform = usePlatform();\n const [start, end] = value;\n const isRange = start != null;\n const gesture = React.useRef({\n dragging: false as false | 'start' | 'end',\n startX: 0,\n containerWidth: 0,\n }).current;\n const container = useExternRef(getRootRef);\n const thumbStart = React.useRef<HTMLDivElement>();\n const thumbEnd = React.useRef<HTMLDivElement>();\n\n const offsetToValue = (absolute: number) => {\n return rescale(absolute, [0, gesture.containerWidth], [min, max], { step });\n };\n\n const updateRange = (nextValue: number): UniversalValue => {\n if (start == null) {\n return [null, nextValue];\n }\n\n const { dragging } = gesture;\n if (dragging === 'start') {\n if (nextValue > end) {\n // \"перехватиться\", если перетянули за конец\n gesture.dragging = 'end';\n return [end, nextValue];\n }\n return [nextValue, end];\n }\n if (dragging === 'end') {\n if (nextValue < start) {\n // \"перехватиться\", если перетянули за начало\n gesture.dragging = 'start';\n return [nextValue, start];\n }\n return [start, nextValue];\n }\n\n return value;\n };\n\n const snapDirection = (pos: number, target: EventTarget) => {\n if (target === thumbStart.current) {\n return 'start';\n }\n if (target === thumbEnd.current) {\n return 'end';\n }\n return Math.abs(start - pos) <= Math.abs(end - pos) ? 'start' : 'end';\n };\n\n const onStart: TouchEventHandler = (e: TouchEvent) => {\n const boundingRect = container.current.getBoundingClientRect();\n gesture.containerWidth = boundingRect.width;\n\n const absolutePosition = e.startX - boundingRect.left;\n const pos = offsetToValue(absolutePosition);\n gesture.dragging = snapDirection(pos, e.originalEvent.target);\n gesture.startX = absolutePosition;\n\n onChange(updateRange(pos), e);\n e.originalEvent.stopPropagation();\n };\n\n const onMove: TouchEventHandler = (e: TouchEvent) => {\n onChange(updateRange(offsetToValue(gesture.startX + (e.shiftX || 0))), e);\n\n e.originalEvent.stopPropagation();\n e.originalEvent.preventDefault();\n };\n\n const onEnd: TouchEventHandler = (e) => {\n gesture.dragging = false;\n e.originalEvent.stopPropagation();\n };\n\n const toPercent = (v: number) => (v - min) / (max - min) * 100;\n const draggerStyle = isRange ? {\n width: `${toPercent(end) - toPercent(start)}%`,\n left: `${toPercent(start)}%`,\n } : {\n width: `${toPercent(end)}%`,\n };\n\n return (\n <Touch\n data-value={isRange ? value.join(',') : value}\n {...restProps}\n {...(disabled ? {} : { onStart, onMove, onEnd })}\n vkuiClass={classNames(\n getClassName('Slider', platform),\n `Slider--sizeY-${sizeY}`,\n disabled && 'Slider--disabled',\n )}\n >\n <div ref={container} vkuiClass=\"Slider__in\">\n <div vkuiClass=\"Slider__dragger\" style={draggerStyle}>\n {isRange && <span vkuiClass={classNames('Slider__thumb', 'Slider__thumb--start')} ref={thumbStart} />}\n <span vkuiClass={classNames('Slider__thumb', 'Slider__thumb--end')} ref={thumbEnd} />\n </div>\n </div>\n </Touch>\n );\n};\n\nexport const UniversalSlider = withAdaptivity(UniversalSliderDumb, {\n sizeY: true,\n});\n"],"file":"UniversalSlider.js"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { HasPlatform } from '../../types';
|
|
3
|
-
import { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';
|
|
4
|
-
import { SplitColContextProps } from '../SplitCol/SplitCol';
|
|
5
|
-
import { ScrollContextInterface } from '../AppRoot/ScrollContext';
|
|
6
2
|
import { NavIdProps } from '../../lib/getNavId';
|
|
7
3
|
import './Root.css';
|
|
8
|
-
export interface RootProps extends React.HTMLAttributes<HTMLDivElement>,
|
|
4
|
+
export interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {
|
|
9
5
|
activeView: string;
|
|
10
6
|
onTransition?(params: {
|
|
11
7
|
isBack: boolean;
|
|
@@ -24,30 +20,12 @@ export interface RootProps extends React.HTMLAttributes<HTMLDivElement>, HasPlat
|
|
|
24
20
|
* Свойство для отрисовки `ModalRoot`.
|
|
25
21
|
*/
|
|
26
22
|
modal?: React.ReactNode;
|
|
27
|
-
/**
|
|
28
|
-
* @ignore
|
|
29
|
-
*/
|
|
30
|
-
splitCol?: SplitColContextProps;
|
|
31
|
-
/**
|
|
32
|
-
* @ignore
|
|
33
|
-
*/
|
|
34
|
-
configProvider?: ConfigProviderContextInterface;
|
|
35
|
-
/**
|
|
36
|
-
* @ignore
|
|
37
|
-
*/
|
|
38
|
-
scroll?: ScrollContextInterface;
|
|
39
23
|
}
|
|
40
|
-
export declare type AnimationEndCallback = (e?: AnimationEvent) => void;
|
|
41
24
|
export interface RootState {
|
|
42
25
|
activeView: string;
|
|
43
|
-
prevView: string;
|
|
44
|
-
nextView: string;
|
|
45
|
-
visibleViews: [string] | [string, string];
|
|
46
|
-
isBack: boolean;
|
|
47
|
-
scrolls: {
|
|
48
|
-
[index: string]: number;
|
|
49
|
-
};
|
|
50
26
|
transition: boolean;
|
|
27
|
+
isBack?: boolean;
|
|
28
|
+
prevView?: string;
|
|
51
29
|
}
|
|
52
|
-
declare const
|
|
53
|
-
export default
|
|
30
|
+
declare const Root: React.FC<RootProps>;
|
|
31
|
+
export default Root;
|
|
@@ -13,21 +13,9 @@ var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
|
13
13
|
|
|
14
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
15
|
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
19
|
-
|
|
20
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
21
|
-
|
|
22
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
23
|
-
|
|
24
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
25
17
|
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
29
|
-
|
|
30
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
31
19
|
|
|
32
20
|
var React = _interopRequireWildcard(require("react"));
|
|
33
21
|
|
|
@@ -35,228 +23,184 @@ var _classNames = require("../../lib/classNames");
|
|
|
35
23
|
|
|
36
24
|
var _getClassName = require("../../helpers/getClassName");
|
|
37
25
|
|
|
38
|
-
var _supportEvents = require("../../lib/supportEvents");
|
|
39
|
-
|
|
40
26
|
var _platform = require("../../lib/platform");
|
|
41
27
|
|
|
42
|
-
var _withPlatform = require("../../hoc/withPlatform");
|
|
43
|
-
|
|
44
|
-
var _withContext = require("../../hoc/withContext");
|
|
45
|
-
|
|
46
28
|
var _ConfigProviderContext = require("../ConfigProvider/ConfigProviderContext");
|
|
47
29
|
|
|
48
30
|
var _SplitCol = require("../SplitCol/SplitCol");
|
|
49
31
|
|
|
50
32
|
var _AppRootPortal = require("../AppRoot/AppRootPortal");
|
|
51
33
|
|
|
52
|
-
var _dom = require("../../lib/dom");
|
|
53
|
-
|
|
54
34
|
var _ScrollContext = require("../AppRoot/ScrollContext");
|
|
55
35
|
|
|
56
36
|
var _getNavId = require("../../lib/getNavId");
|
|
57
37
|
|
|
58
38
|
var _warnOnce = require("../../lib/warnOnce");
|
|
59
39
|
|
|
60
|
-
var
|
|
40
|
+
var _dom = require("../../lib/dom");
|
|
41
|
+
|
|
42
|
+
var _useIsomorphicLayoutEffect = require("../../lib/useIsomorphicLayoutEffect");
|
|
43
|
+
|
|
44
|
+
var _useTimeout = require("../../hooks/useTimeout");
|
|
45
|
+
|
|
46
|
+
var _usePlatform = require("../../hooks/usePlatform");
|
|
47
|
+
|
|
48
|
+
var _excluded = ["popout", "modal", "children", "activeView", "onTransition", "nav"];
|
|
61
49
|
var warn = (0, _warnOnce.warnOnce)('Root');
|
|
62
50
|
|
|
63
|
-
var Root =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
key: "componentDidUpdate",
|
|
118
|
-
value: function componentDidUpdate(prevProps, prevState) {
|
|
119
|
-
var _this2 = this;
|
|
120
|
-
|
|
121
|
-
if (this.props.popout && !prevProps.popout) {
|
|
122
|
-
this.blurActiveElement();
|
|
123
|
-
} // Нужен переход
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
if (this.props.activeView !== prevProps.activeView) {
|
|
127
|
-
var pageYOffset = this.props.scroll.getScroll().y;
|
|
128
|
-
var firstLayerId = [].concat(prevProps.children).map(function (view) {
|
|
129
|
-
return (0, _getNavId.getNavId)(view.props, warn);
|
|
130
|
-
}).find(function (id) {
|
|
131
|
-
return id === prevProps.activeView || id === _this2.props.activeView;
|
|
132
|
-
});
|
|
133
|
-
var isBack = firstLayerId === this.props.activeView;
|
|
134
|
-
this.blurActiveElement();
|
|
135
|
-
var nextView = this.props.activeView;
|
|
136
|
-
var prevView = prevProps.activeView;
|
|
137
|
-
this.setState({
|
|
138
|
-
scrolls: (0, _objectSpread3.default)((0, _objectSpread3.default)({}, this.state.scrolls), {}, (0, _defineProperty2.default)({}, prevProps.activeView, pageYOffset)),
|
|
139
|
-
transition: true,
|
|
140
|
-
activeView: null,
|
|
141
|
-
nextView: nextView,
|
|
142
|
-
prevView: prevView,
|
|
143
|
-
visibleViews: [nextView, prevView],
|
|
144
|
-
isBack: isBack
|
|
145
|
-
});
|
|
146
|
-
} // Начался переход
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (!prevState.transition && this.state.transition) {
|
|
150
|
-
var prevViewElement = this.viewNodes[this.state.prevView];
|
|
151
|
-
var nextViewElement = this.viewNodes[this.state.nextView];
|
|
152
|
-
|
|
153
|
-
var setPanelScroll = function setPanelScroll(e, scroll) {
|
|
154
|
-
// eslint-disable-next-line no-restricted-properties
|
|
155
|
-
var pan = e.querySelector('[data-vkui-active-panel=true]');
|
|
156
|
-
pan && (pan.scrollTop = scroll);
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
setPanelScroll(prevViewElement, this.state.scrolls[this.state.prevView]);
|
|
160
|
-
|
|
161
|
-
if (this.state.isBack) {
|
|
162
|
-
setPanelScroll(nextViewElement, this.state.scrolls[this.state.nextView]);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
this.waitAnimationFinish(this.state.isBack ? prevViewElement : nextViewElement, this.onAnimationEnd);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}, {
|
|
169
|
-
key: "shouldDisableTransitionMotion",
|
|
170
|
-
value: function shouldDisableTransitionMotion() {
|
|
171
|
-
return this.props.configProvider.transitionMotionEnabled === false || !this.props.splitCol.animate;
|
|
172
|
-
}
|
|
173
|
-
}, {
|
|
174
|
-
key: "waitAnimationFinish",
|
|
175
|
-
value: function waitAnimationFinish(elem, eventHandler) {
|
|
176
|
-
if (this.shouldDisableTransitionMotion()) {
|
|
177
|
-
eventHandler();
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
if (_supportEvents.animationEvent.supported) {
|
|
182
|
-
elem.removeEventListener(_supportEvents.animationEvent.name, eventHandler);
|
|
183
|
-
elem.addEventListener(_supportEvents.animationEvent.name, eventHandler);
|
|
184
|
-
} else {
|
|
185
|
-
clearTimeout(this.animationFinishTimeout);
|
|
186
|
-
this.animationFinishTimeout = setTimeout(eventHandler.bind(this), this.props.platform === _platform.ANDROID || this.props.platform === _platform.VKCOM ? 300 : 600);
|
|
187
|
-
}
|
|
51
|
+
var Root = function Root(_ref) {
|
|
52
|
+
var _ref$popout = _ref.popout,
|
|
53
|
+
popout = _ref$popout === void 0 ? null : _ref$popout,
|
|
54
|
+
modal = _ref.modal,
|
|
55
|
+
children = _ref.children,
|
|
56
|
+
_activeView = _ref.activeView,
|
|
57
|
+
onTransition = _ref.onTransition,
|
|
58
|
+
nav = _ref.nav,
|
|
59
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
60
|
+
var scroll = React.useContext(_ScrollContext.ScrollContext);
|
|
61
|
+
var platform = (0, _usePlatform.usePlatform)();
|
|
62
|
+
|
|
63
|
+
var _useDOM = (0, _dom.useDOM)(),
|
|
64
|
+
document = _useDOM.document;
|
|
65
|
+
|
|
66
|
+
var scrolls = React.useRef({}).current;
|
|
67
|
+
var viewNodes = React.useRef({}).current;
|
|
68
|
+
|
|
69
|
+
var _React$useContext = React.useContext(_ConfigProviderContext.ConfigProviderContext),
|
|
70
|
+
_React$useContext$tra = _React$useContext.transitionMotionEnabled,
|
|
71
|
+
transitionMotionEnabled = _React$useContext$tra === void 0 ? true : _React$useContext$tra;
|
|
72
|
+
|
|
73
|
+
var _React$useContext2 = React.useContext(_SplitCol.SplitColContext),
|
|
74
|
+
animate = _React$useContext2.animate;
|
|
75
|
+
|
|
76
|
+
var disableAnimation = !transitionMotionEnabled || !animate;
|
|
77
|
+
var views = React.Children.toArray(children);
|
|
78
|
+
|
|
79
|
+
var _React$useState = React.useState({
|
|
80
|
+
activeView: _activeView,
|
|
81
|
+
transition: false
|
|
82
|
+
}),
|
|
83
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
84
|
+
_React$useState2$ = _React$useState2[0],
|
|
85
|
+
prevView = _React$useState2$.prevView,
|
|
86
|
+
activeView = _React$useState2$.activeView,
|
|
87
|
+
transition = _React$useState2$.transition,
|
|
88
|
+
isBack = _React$useState2$.isBack,
|
|
89
|
+
_setState = _React$useState2[1];
|
|
90
|
+
|
|
91
|
+
var transitionTo = function transitionTo(panel) {
|
|
92
|
+
if (panel !== activeView) {
|
|
93
|
+
var viewIds = views.map(function (view) {
|
|
94
|
+
return (0, _getNavId.getNavId)(view.props, warn);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
var _isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);
|
|
98
|
+
|
|
99
|
+
_setState({
|
|
100
|
+
activeView: panel,
|
|
101
|
+
prevView: activeView,
|
|
102
|
+
transition: true,
|
|
103
|
+
isBack: _isBack
|
|
104
|
+
});
|
|
188
105
|
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
var finishTransition = function finishTransition() {
|
|
109
|
+
return _setState({
|
|
110
|
+
activeView: activeView,
|
|
111
|
+
prevView: prevView,
|
|
112
|
+
isBack: isBack,
|
|
113
|
+
transition: false
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
118
|
+
var _document$activeEleme;
|
|
119
|
+
|
|
120
|
+
(_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.blur();
|
|
121
|
+
}, [!!popout, activeView]); // Нужен переход
|
|
122
|
+
|
|
123
|
+
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
124
|
+
return transitionTo(_activeView);
|
|
125
|
+
}, [_activeView]); // scroll restoration
|
|
126
|
+
|
|
127
|
+
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
128
|
+
if (transition) {
|
|
129
|
+
// save scroll
|
|
130
|
+
scrolls[prevView] = scroll.getScroll().y;
|
|
131
|
+
setPanelScroll(viewNodes[prevView], scrolls[prevView]);
|
|
132
|
+
isBack && setPanelScroll(viewNodes[activeView], scrolls[activeView]);
|
|
133
|
+
} else if (prevView) {
|
|
134
|
+
// Закончился переход
|
|
135
|
+
scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);
|
|
195
136
|
}
|
|
196
|
-
},
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
platform = _this$props.platform,
|
|
205
|
-
splitCol = _this$props.splitCol,
|
|
206
|
-
configProvider = _this$props.configProvider,
|
|
207
|
-
_1 = _this$props.activeView,
|
|
208
|
-
onTransition = _this$props.onTransition,
|
|
209
|
-
window = _this$props.window,
|
|
210
|
-
document = _this$props.document,
|
|
211
|
-
scroll = _this$props.scroll,
|
|
212
|
-
nav = _this$props.nav,
|
|
213
|
-
restProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
|
|
214
|
-
var _this$state = this.state,
|
|
215
|
-
transition = _this$state.transition,
|
|
216
|
-
isBack = _this$state.isBack,
|
|
217
|
-
prevView = _this$state.prevView,
|
|
218
|
-
activeView = _this$state.activeView,
|
|
219
|
-
nextView = _this$state.nextView;
|
|
220
|
-
var Views = React.Children.toArray(this.props.children).filter(function (view) {
|
|
221
|
-
return _this3.state.visibleViews.includes((0, _getNavId.getNavId)(view.props, warn));
|
|
137
|
+
}, [transition]); // onTransition
|
|
138
|
+
|
|
139
|
+
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
140
|
+
if (!transition && prevView) {
|
|
141
|
+
onTransition && onTransition({
|
|
142
|
+
isBack: isBack,
|
|
143
|
+
from: prevView,
|
|
144
|
+
to: activeView
|
|
222
145
|
});
|
|
223
|
-
var baseClassName = (0, _getClassName.getClassName)('Root', platform);
|
|
224
|
-
var disableAnimation = this.shouldDisableTransitionMotion();
|
|
225
|
-
return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
|
|
226
|
-
vkuiClass: (0, _classNames.classNames)(baseClassName, {
|
|
227
|
-
'Root--transition': !disableAnimation && transition,
|
|
228
|
-
'Root--no-motion': disableAnimation
|
|
229
|
-
})
|
|
230
|
-
}), Views.map(function (view) {
|
|
231
|
-
var viewId = (0, _getNavId.getNavId)(view.props, warn);
|
|
232
|
-
return (0, _jsxRuntime.createScopedElement)("div", {
|
|
233
|
-
key: viewId,
|
|
234
|
-
ref: function ref(e) {
|
|
235
|
-
return _this3.viewNodes[viewId] = e;
|
|
236
|
-
},
|
|
237
|
-
vkuiClass: (0, _classNames.classNames)('Root__view', {
|
|
238
|
-
'Root__view--hide-back': viewId === prevView && isBack,
|
|
239
|
-
'Root__view--hide-forward': viewId === prevView && !isBack,
|
|
240
|
-
'Root__view--show-back': viewId === nextView && isBack,
|
|
241
|
-
'Root__view--show-forward': viewId === nextView && !isBack,
|
|
242
|
-
'Root__view--active': viewId === activeView
|
|
243
|
-
})
|
|
244
|
-
}, view);
|
|
245
|
-
}), (0, _jsxRuntime.createScopedElement)(_AppRootPortal.AppRootPortal, null, !!popout && (0, _jsxRuntime.createScopedElement)("div", {
|
|
246
|
-
vkuiClass: "Root__popout"
|
|
247
|
-
}, popout), !!modal && (0, _jsxRuntime.createScopedElement)("div", {
|
|
248
|
-
vkuiClass: "Root__modal"
|
|
249
|
-
}, modal)));
|
|
250
146
|
}
|
|
251
|
-
}]);
|
|
252
|
-
|
|
253
|
-
|
|
147
|
+
}, [transition]);
|
|
148
|
+
var fallbackTransition = (0, _useTimeout.useTimeout)(finishTransition, platform === _platform.IOS ? 600 : 300);
|
|
149
|
+
React.useEffect(function () {
|
|
150
|
+
if (!transition) {
|
|
151
|
+
fallbackTransition.clear();
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
254
154
|
|
|
255
|
-
(
|
|
256
|
-
|
|
257
|
-
});
|
|
155
|
+
disableAnimation ? finishTransition() : fallbackTransition.set();
|
|
156
|
+
}, [transition]);
|
|
258
157
|
|
|
259
|
-
var
|
|
158
|
+
var onAnimationEnd = function onAnimationEnd(e) {
|
|
159
|
+
if (['vkui-root-android-animation-hide-back', 'vkui-root-android-animation-show-forward', 'vkui-root-ios-animation-hide-back', 'vkui-root-ios-animation-show-forward'].includes(e.animationName)) {
|
|
160
|
+
finishTransition();
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
|
|
165
|
+
vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)('Root', platform), {
|
|
166
|
+
'Root--transition': !disableAnimation && transition,
|
|
167
|
+
'Root--no-motion': disableAnimation
|
|
168
|
+
})
|
|
169
|
+
}), views.map(function (view) {
|
|
170
|
+
var viewId = (0, _getNavId.getNavId)(view.props, warn);
|
|
171
|
+
|
|
172
|
+
if (viewId !== activeView && !(transition && viewId === prevView)) {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
260
175
|
|
|
176
|
+
var isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);
|
|
177
|
+
return (0, _jsxRuntime.createScopedElement)("div", {
|
|
178
|
+
key: viewId,
|
|
179
|
+
ref: function ref(e) {
|
|
180
|
+
return viewNodes[viewId] = e;
|
|
181
|
+
},
|
|
182
|
+
onAnimationEnd: isTransitionTarget ? onAnimationEnd : null,
|
|
183
|
+
vkuiClass: (0, _classNames.classNames)('Root__view', {
|
|
184
|
+
'Root__view--hide-back': transition && viewId === prevView && isBack,
|
|
185
|
+
'Root__view--hide-forward': transition && viewId === prevView && !isBack,
|
|
186
|
+
'Root__view--show-back': transition && viewId === activeView && isBack,
|
|
187
|
+
'Root__view--show-forward': transition && viewId === activeView && !isBack,
|
|
188
|
+
'Root__view--active': !transition && viewId === activeView
|
|
189
|
+
})
|
|
190
|
+
}, view);
|
|
191
|
+
}), (0, _jsxRuntime.createScopedElement)(_AppRootPortal.AppRootPortal, null, !!popout && (0, _jsxRuntime.createScopedElement)("div", {
|
|
192
|
+
vkuiClass: "Root__popout"
|
|
193
|
+
}, popout), !!modal && (0, _jsxRuntime.createScopedElement)("div", {
|
|
194
|
+
vkuiClass: "Root__modal"
|
|
195
|
+
}, modal)));
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
var _default = Root;
|
|
261
199
|
exports.default = _default;
|
|
200
|
+
|
|
201
|
+
function setPanelScroll(e, scroll) {
|
|
202
|
+
// eslint-disable-next-line no-restricted-properties
|
|
203
|
+
var pan = e.querySelector('[data-vkui-active-panel=true]');
|
|
204
|
+
pan && (pan.scrollTop = scroll);
|
|
205
|
+
}
|
|
262
206
|
//# sourceMappingURL=Root.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"names":["warn","Root","props","e","includes","animationName","isBack","state","prevView","nextView","setState","activeView","visibleViews","transition","undefined","scroll","scrollTo","scrolls","onTransition","from","to","document","prevProps","prevState","popout","blurActiveElement","pageYOffset","getScroll","y","firstLayerId","concat","children","map","view","find","id","prevViewElement","viewNodes","nextViewElement","setPanelScroll","pan","querySelector","scrollTop","waitAnimationFinish","onAnimationEnd","configProvider","transitionMotionEnabled","splitCol","animate","elem","eventHandler","shouldDisableTransitionMotion","animationEvent","supported","removeEventListener","name","addEventListener","clearTimeout","animationFinishTimeout","setTimeout","bind","platform","ANDROID","VKCOM","canUseDOM","activeElement","blur","modal","_1","window","nav","restProps","Views","React","Children","toArray","filter","baseClassName","disableAnimation","viewId","Component","SplitColContext","ConfigProviderContext","ScrollContext"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { ANDROID, VKCOM } from '../../lib/platform';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { withContext } from '../../hoc/withContext';\nimport { HasPlatform } from '../../types';\nimport { ConfigProviderContext, ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContextProps, SplitColContext } from '../SplitCol/SplitCol';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { canUseDOM, DOMProps, withDOM } from '../../lib/dom';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport './Root.css';\n\nconst warn = warnOnce('Root');\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, HasPlatform, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport type AnimationEndCallback = (e?: AnimationEvent) => void;\n\nexport interface RootState {\n activeView: string;\n prevView: string;\n nextView: string;\n visibleViews: [string] | [string, string];\n isBack: boolean;\n scrolls: {\n [index: string]: number;\n };\n transition: boolean;\n}\n\nclass Root extends React.Component<RootProps & DOMProps, RootState> {\n constructor(props: RootProps) {\n super(props);\n\n this.state = {\n activeView: props.activeView,\n prevView: null,\n nextView: null,\n visibleViews: [props.activeView],\n isBack: undefined,\n scrolls: {},\n transition: false,\n };\n }\n\n static defaultProps: Partial<RootProps> = {\n popout: null,\n };\n\n private animationFinishTimeout: ReturnType<typeof setTimeout>;\n private viewNodes: { [id: string]: HTMLElement } = {};\n\n get document() {\n return this.props.document;\n }\n\n componentDidUpdate(prevProps: RootProps, prevState: RootState) {\n if (this.props.popout && !prevProps.popout) {\n this.blurActiveElement();\n }\n\n // Нужен переход\n if (this.props.activeView !== prevProps.activeView) {\n let pageYOffset = this.props.scroll.getScroll().y;\n const firstLayerId = [].concat(prevProps.children)\n .map((view) => getNavId(view.props, warn))\n .find((id) => id === prevProps.activeView || id === this.props.activeView);\n const isBack = firstLayerId === this.props.activeView;\n\n this.blurActiveElement();\n\n const nextView = this.props.activeView;\n const prevView = prevProps.activeView;\n\n this.setState({\n scrolls: {\n ...this.state.scrolls,\n [prevProps.activeView]: pageYOffset,\n },\n transition: true,\n activeView: null,\n nextView,\n prevView,\n visibleViews: [nextView, prevView],\n isBack,\n });\n }\n\n // Начался переход\n if (!prevState.transition && this.state.transition) {\n const prevViewElement = this.viewNodes[this.state.prevView];\n const nextViewElement = this.viewNodes[this.state.nextView];\n const setPanelScroll = (e: HTMLElement, scroll: number) => {\n // eslint-disable-next-line no-restricted-properties\n const pan: HTMLElement | null = e.querySelector('[data-vkui-active-panel=true]');\n pan && (pan.scrollTop = scroll);\n };\n\n setPanelScroll(prevViewElement, this.state.scrolls[this.state.prevView]);\n\n if (this.state.isBack) {\n setPanelScroll(nextViewElement, this.state.scrolls[this.state.nextView]);\n }\n this.waitAnimationFinish(this.state.isBack ? prevViewElement : nextViewElement, this.onAnimationEnd);\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return this.props.configProvider.transitionMotionEnabled === false ||\n !this.props.splitCol.animate;\n }\n\n waitAnimationFinish(elem: HTMLElement, eventHandler: AnimationEndCallback) {\n if (this.shouldDisableTransitionMotion()) {\n eventHandler();\n return;\n }\n\n if (animationEvent.supported) {\n elem.removeEventListener(animationEvent.name, eventHandler);\n elem.addEventListener(animationEvent.name, eventHandler);\n } else {\n clearTimeout(this.animationFinishTimeout);\n this.animationFinishTimeout = setTimeout(eventHandler.bind(this), this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);\n }\n }\n\n onAnimationEnd: AnimationEndCallback = (e?: AnimationEvent) => {\n if (!e || [\n 'vkui-root-android-animation-hide-back',\n 'vkui-root-android-animation-show-forward',\n 'vkui-root-ios-animation-hide-back',\n 'vkui-root-ios-animation-show-forward',\n ].includes(e.animationName)) {\n const isBack = this.state.isBack;\n const prevView = this.state.prevView;\n const nextView = this.state.nextView;\n this.setState({\n activeView: nextView,\n prevView: null,\n nextView: null,\n visibleViews: [nextView],\n transition: false,\n isBack: undefined,\n }, () => {\n this.props.scroll.scrollTo(0, isBack ? this.state.scrolls[this.state.activeView] : 0);\n this.props.onTransition && this.props.onTransition({ isBack, from: prevView, to: nextView });\n });\n }\n };\n\n blurActiveElement() {\n if (canUseDOM && this.document.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n render() {\n const {\n popout, modal, platform,\n splitCol, configProvider, activeView: _1, onTransition,\n window, document, scroll, nav,\n ...restProps\n } = this.props;\n const { transition, isBack, prevView, activeView, nextView } = this.state;\n\n const Views = React.Children.toArray(this.props.children).filter((view: React.ReactElement) => {\n return this.state.visibleViews.includes(getNavId(view.props, warn));\n });\n\n const baseClassName = getClassName('Root', platform);\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <div {...restProps} vkuiClass={classNames(baseClassName, {\n 'Root--transition': !disableAnimation && transition,\n 'Root--no-motion': disableAnimation,\n })}>\n {Views.map((view: React.ReactElement) => {\n const viewId = getNavId(view.props, warn);\n return (\n <div key={viewId} ref={(e) => this.viewNodes[viewId] = e} vkuiClass={classNames('Root__view', {\n 'Root__view--hide-back': viewId === prevView && isBack,\n 'Root__view--hide-forward': viewId === prevView && !isBack,\n 'Root__view--show-back': viewId === nextView && isBack,\n 'Root__view--show-forward': viewId === nextView && !isBack,\n 'Root__view--active': viewId === activeView,\n })}>\n {view}\n </div>\n );\n })}\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"Root__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"Root__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n }\n}\n\nexport default withContext(withContext(withContext(\n withPlatform(withDOM<RootProps>(Root)),\n SplitColContext,\n 'splitCol',\n), ConfigProviderContext, 'configProvider'), ScrollContext, 'scroll');\n"],"file":"Root.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Root/Root.tsx"],"names":["warn","Root","popout","modal","children","_activeView","activeView","onTransition","nav","restProps","scroll","React","useContext","ScrollContext","platform","document","scrolls","useRef","current","viewNodes","ConfigProviderContext","transitionMotionEnabled","SplitColContext","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","props","indexOf","finishTransition","activeElement","blur","getScroll","y","setPanelScroll","scrollTo","from","to","fallbackTransition","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","viewId","isTransitionTarget","pan","querySelector","scrollTop"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport { IOS } from '../../lib/platform';\nimport { ConfigProviderContext } from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContext } from '../SplitCol/SplitCol';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useDOM } from '../../lib/dom';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport './Root.css';\n\nconst warn = warnOnce('Root');\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst Root: React.FC<RootProps> = ({\n popout = null, modal, children,\n activeView: _activeView, onTransition,\n nav,\n ...restProps\n}) => {\n const scroll = React.useContext(ScrollContext);\n const platform = usePlatform();\n const { document } = useDOM();\n const scrolls = React.useRef<Record<string, number>>({}).current;\n const viewNodes = React.useRef<Record<string, HTMLElement>>({}).current;\n\n const { transitionMotionEnabled = true } = React.useContext(ConfigProviderContext);\n const { animate } = React.useContext(SplitColContext);\n const disableAnimation = !transitionMotionEnabled || !animate;\n\n const views = React.Children.toArray(children) as React.ReactElement[];\n\n const [{ prevView, activeView, transition, isBack }, _setState] = React.useState<RootState>({\n activeView: _activeView,\n transition: false,\n });\n const transitionTo = (panel: string) => {\n if (panel !== activeView) {\n const viewIds = views.map((view) => getNavId(view.props, warn));\n const isBack = viewIds.indexOf(panel) < viewIds.indexOf(activeView);\n _setState({ activeView: panel, prevView: activeView, transition: true, isBack });\n }\n };\n const finishTransition = () => _setState({ activeView, prevView, isBack, transition: false });\n\n useIsomorphicLayoutEffect(() => {\n (document.activeElement as HTMLElement)?.blur();\n }, [!!popout, activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n // scroll restoration\n useIsomorphicLayoutEffect(() => {\n if (transition) {\n // save scroll\n scrolls[prevView] = scroll.getScroll().y;\n setPanelScroll(viewNodes[prevView], scrolls[prevView]);\n isBack && setPanelScroll(viewNodes[activeView], scrolls[activeView]);\n } else if (prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n }\n }, [transition]);\n // onTransition\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n onTransition && onTransition({ isBack, from: prevView, to: activeView });\n }\n }, [transition]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n disableAnimation ? finishTransition() : fallbackTransition.set();\n }, [transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if ([\n 'vkui-root-android-animation-hide-back',\n 'vkui-root-android-animation-show-forward',\n 'vkui-root-ios-animation-hide-back',\n 'vkui-root-ios-animation-show-forward',\n ].includes(e.animationName)) {\n finishTransition();\n }\n };\n\n return (\n <div {...restProps} vkuiClass={classNames(getClassName('Root', platform), {\n 'Root--transition': !disableAnimation && transition,\n 'Root--no-motion': disableAnimation,\n })}>\n {views.map((view) => {\n const viewId = getNavId(view.props, warn);\n if (viewId !== activeView && !(transition && viewId === prevView)) {\n return null;\n }\n const isTransitionTarget = transition && viewId === (isBack ? prevView : activeView);\n return (\n <div\n key={viewId}\n ref={(e) => viewNodes[viewId] = e}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : null}\n vkuiClass={classNames('Root__view', {\n 'Root__view--hide-back': transition && viewId === prevView && isBack,\n 'Root__view--hide-forward': transition && viewId === prevView && !isBack,\n 'Root__view--show-back': transition && viewId === activeView && isBack,\n 'Root__view--show-forward': transition && viewId === activeView && !isBack,\n 'Root__view--active': !transition && viewId === activeView,\n })}\n >{view}</div>\n );\n })}\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"Root__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"Root__modal\">{modal}</div>}\n </AppRootPortal>\n </div>\n );\n};\n\nexport default Root;\n\nfunction setPanelScroll(e: HTMLElement, scroll: number) {\n // eslint-disable-next-line no-restricted-properties\n const pan: HTMLElement | null = e.querySelector('[data-vkui-active-panel=true]');\n pan && (pan.scrollTop = scroll);\n}\n"],"file":"Root.js"}
|
|
@@ -29,7 +29,7 @@ var _icons = require("@vkontakte/icons");
|
|
|
29
29
|
|
|
30
30
|
var _platform = require("../../lib/platform");
|
|
31
31
|
|
|
32
|
-
var _Touch =
|
|
32
|
+
var _Touch = require("../Touch/Touch");
|
|
33
33
|
|
|
34
34
|
var _utils = require("../../lib/utils");
|
|
35
35
|
|
|
@@ -144,10 +144,10 @@ var Search = function Search(_ref) {
|
|
|
144
144
|
onClick: onCancel
|
|
145
145
|
}, (0, _jsxRuntime.createScopedElement)("div", {
|
|
146
146
|
vkuiClass: "Search__icons"
|
|
147
|
-
}, icon && (0, _jsxRuntime.createScopedElement)(_Touch.
|
|
147
|
+
}, icon && (0, _jsxRuntime.createScopedElement)(_Touch.Touch, {
|
|
148
148
|
onStart: onIconClickStart,
|
|
149
149
|
vkuiClass: "Search__icon"
|
|
150
|
-
}, icon), !!value && (0, _jsxRuntime.createScopedElement)(_Touch.
|
|
150
|
+
}, icon), !!value && (0, _jsxRuntime.createScopedElement)(_Touch.Touch, {
|
|
151
151
|
onStart: onIconCancelClickStart,
|
|
152
152
|
vkuiClass: "Search__icon"
|
|
153
153
|
}, platform === _platform.VKCOM ? (0, _jsxRuntime.createScopedElement)(_icons.Icon24Cancel, null) : (0, _jsxRuntime.createScopedElement)(_icons.Icon16Clear, null))), platform === _platform.IOS && after && (0, _jsxRuntime.createScopedElement)("div", {
|