@vkontakte/vkui 5.1.2 → 5.2.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/cjs/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +0 -4
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +2 -1
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +4 -3
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +21 -72
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +3 -2
- package/dist/cjs/components/DateInput/DateInput.js +3 -2
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +3 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -2
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +6 -10
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js +9 -0
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js +4 -2
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +5 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -2
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.d.ts +2 -6
- package/dist/cjs/components/ModalPage/ModalPage.js +13 -7
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +1 -2
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.d.ts +12 -9
- package/dist/cjs/components/Popper/Popper.js +92 -119
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/PopperArrow/PopperArrow.d.ts +15 -5
- package/dist/cjs/components/PopperArrow/PopperArrow.js +44 -17
- package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cjs/components/Root/Root.js +2 -2
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.d.ts +0 -6
- package/dist/cjs/components/SplitCol/SplitCol.js +3 -11
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitColContext.d.ts +7 -0
- package/dist/cjs/components/SplitCol/SplitColContext.js +18 -0
- package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -0
- package/dist/cjs/components/TabbarItem/TabbarItem.js +9 -0
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/cjs/components/Tooltip/Tooltip.js +115 -151
- package/dist/cjs/components/Tooltip/Tooltip.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.d.ts +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +2 -2
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +10 -8
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/index.d.ts +37 -30
- package/dist/cjs/index.js +13 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/floating/adapters.d.ts +2 -0
- package/dist/cjs/lib/floating/adapters.js +63 -0
- package/dist/cjs/lib/floating/adapters.js.map +1 -0
- package/dist/cjs/lib/floating/functions.d.ts +10 -0
- package/dist/cjs/lib/floating/functions.js +36 -0
- package/dist/cjs/lib/floating/functions.js.map +1 -0
- package/dist/cjs/lib/floating/index.d.ts +4 -0
- package/dist/cjs/lib/floating/index.js +75 -0
- package/dist/cjs/lib/floating/index.js.map +1 -0
- package/dist/cjs/lib/floating/types.d.ts +4 -0
- package/dist/cjs/lib/floating/types.js +6 -0
- package/dist/cjs/lib/floating/types.js.map +1 -0
- package/dist/cjs/lib/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/cjs/lib/warnOnce.d.ts +7 -0
- package/dist/cjs/lib/warnOnce.js +14 -0
- package/dist/cjs/lib/warnOnce.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +0 -4
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +2 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +5 -4
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +3 -2
- package/dist/components/DateInput/DateInput.js +3 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/components/DateRangeInput/DateRangeInput.js +3 -2
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FormField/FormField.js +6 -10
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/IconButton/IconButton.js +9 -0
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/components/ModalCard/ModalCard.js +4 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.d.ts +5 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +9 -2
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +2 -6
- package/dist/components/ModalPage/ModalPage.js +13 -7
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +1 -2
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +12 -9
- package/dist/components/Popper/Popper.js +93 -120
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PopperArrow/PopperArrow.d.ts +15 -5
- package/dist/components/PopperArrow/PopperArrow.js +40 -15
- package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/components/Root/Root.js +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +0 -6
- package/dist/components/SplitCol/SplitCol.js +1 -7
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitCol/SplitColContext.d.ts +7 -0
- package/dist/components/SplitCol/SplitColContext.js +9 -0
- package/dist/components/SplitCol/SplitColContext.js.map +1 -0
- package/dist/components/TabbarItem/TabbarItem.js +9 -0
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/components/Tooltip/Tooltip.js +115 -151
- package/dist/components/Tooltip/Tooltip.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.d.ts +1 -1
- package/dist/components/View/ViewInfinite.js +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +11 -9
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +142 -2
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +61921 -4
- package/dist/cssm/components/Alert/Alert.module.css +1 -1
- package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
- package/dist/cssm/components/Button/Button.module.css +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.module.css +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.module.css +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +0 -4
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +2 -1
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +5 -4
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +3 -2
- package/dist/cssm/components/DateInput/DateInput.js +4 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js +6 -10
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +1 -1
- package/dist/cssm/components/Header/Header.module.css +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +9 -0
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.module.css +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +4 -2
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +5 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +9 -2
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +2 -6
- package/dist/cssm/components/ModalPage/ModalPage.js +13 -7
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +1 -1
- package/dist/cssm/components/Popper/Popper.d.ts +12 -9
- package/dist/cssm/components/Popper/Popper.js +93 -120
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +15 -5
- package/dist/cssm/components/PopperArrow/PopperArrow.js +40 -15
- package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.module.css +1 -1
- package/dist/cssm/components/Radio/Radio.module.css +1 -1
- package/dist/cssm/components/RichCell/RichCell.module.css +1 -1
- package/dist/cssm/components/Root/Root.js +1 -1
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +1 -1
- package/dist/cssm/components/Select/Select.module.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.d.ts +0 -6
- package/dist/cssm/components/SplitCol/SplitCol.js +1 -7
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitColContext.d.ts +7 -0
- package/dist/cssm/components/SplitCol/SplitColContext.js +9 -0
- package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -0
- package/dist/cssm/components/TabbarItem/TabbarItem.js +9 -0
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/cssm/components/Tooltip/Tooltip.js +121 -151
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.module.css +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.module.css +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.module.css +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +1 -1
- package/dist/cssm/components/Typography/Text/Text.module.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.module.css +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/View.module.css +1 -1
- package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +1 -1
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +11 -9
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/index.d.ts +37 -30
- package/dist/cssm/index.js +24 -18
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/floating/adapters.d.ts +2 -0
- package/dist/cssm/lib/floating/adapters.js +56 -0
- package/dist/cssm/lib/floating/adapters.js.map +1 -0
- package/dist/cssm/lib/floating/functions.d.ts +10 -0
- package/dist/cssm/lib/floating/functions.js +28 -0
- package/dist/cssm/lib/floating/functions.js.map +1 -0
- package/dist/cssm/lib/floating/index.d.ts +4 -0
- package/dist/cssm/lib/floating/index.js +4 -0
- package/dist/cssm/lib/floating/index.js.map +1 -0
- package/dist/cssm/lib/floating/types.d.ts +4 -0
- package/dist/cssm/lib/floating/types.js +2 -0
- package/dist/cssm/lib/floating/types.js.map +1 -0
- package/dist/cssm/lib/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/cssm/lib/warnOnce.d.ts +7 -0
- package/dist/cssm/lib/warnOnce.js +12 -0
- package/dist/cssm/lib/warnOnce.js.map +1 -1
- package/dist/cssm/styles/common.css +1 -1
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/index.d.ts +37 -30
- package/dist/index.js +22 -16
- package/dist/index.js.map +1 -1
- package/dist/lib/floating/adapters.d.ts +2 -0
- package/dist/lib/floating/adapters.js +56 -0
- package/dist/lib/floating/adapters.js.map +1 -0
- package/dist/lib/floating/functions.d.ts +10 -0
- package/dist/lib/floating/functions.js +28 -0
- package/dist/lib/floating/functions.js.map +1 -0
- package/dist/lib/floating/index.d.ts +4 -0
- package/dist/lib/floating/index.js +4 -0
- package/dist/lib/floating/index.js.map +1 -0
- package/dist/lib/floating/types.d.ts +4 -0
- package/dist/lib/floating/types.js +2 -0
- package/dist/lib/floating/types.js.map +1 -0
- package/dist/lib/useIsomorphicLayoutEffect.d.ts +1 -1
- package/dist/lib/warnOnce.d.ts +7 -0
- package/dist/lib/warnOnce.js +12 -0
- package/dist/lib/warnOnce.js.map +1 -1
- package/dist/stable.js.tmp +69 -21
- package/dist/vkui.css +143 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +61837 -0
- package/package.json +4 -5
- package/dist/cssm/styles/components.css +0 -3
|
@@ -9,146 +9,119 @@ exports.Popper = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
12
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
14
13
|
var React = _interopRequireWildcard(require("react"));
|
|
15
|
-
var _reactPopper = require("react-popper");
|
|
16
14
|
var _AppRootPortal = require("../AppRoot/AppRootPortal");
|
|
17
15
|
var _PopperArrow = require("../PopperArrow/PopperArrow");
|
|
18
|
-
var _usePlatform = require("../../hooks/usePlatform");
|
|
19
|
-
var _getPlatformClassName = require("../../helpers/getPlatformClassName");
|
|
20
16
|
var _useExternRef = require("../../hooks/useExternRef");
|
|
21
|
-
var
|
|
17
|
+
var _floating = require("../../lib/floating");
|
|
22
18
|
var _vkjs = require("@vkontakte/vkjs");
|
|
23
|
-
var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "style", "
|
|
24
|
-
var ARROW_PADDING = 8;
|
|
25
|
-
var ARROW_WIDTH = 20;
|
|
26
|
-
var ARROW_HEIGHT = 8;
|
|
27
|
-
var preventOverflowModifier = {
|
|
28
|
-
name: 'preventOverflow',
|
|
29
|
-
options: {
|
|
30
|
-
mainAxis: false
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
var flipModifier = {
|
|
34
|
-
name: 'flip'
|
|
35
|
-
};
|
|
36
|
-
var arrowModifier = {
|
|
37
|
-
name: 'arrow',
|
|
38
|
-
options: {
|
|
39
|
-
padding: ARROW_PADDING
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
var sameWidthModifier = {
|
|
43
|
-
name: 'sameWidth',
|
|
44
|
-
enabled: true,
|
|
45
|
-
phase: 'beforeWrite',
|
|
46
|
-
requires: ['computeStyles'],
|
|
47
|
-
fn: function fn(_ref) {
|
|
48
|
-
var state = _ref.state;
|
|
49
|
-
state.styles.popper.width = "".concat(state.rects.reference.width, "px");
|
|
50
|
-
},
|
|
51
|
-
effect: function effect(_ref2) {
|
|
52
|
-
var state = _ref2.state;
|
|
53
|
-
state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
19
|
+
var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "autoUpdateOnTargetResize", "style", "customMiddlewares", "renderContent", "className"];
|
|
57
20
|
/**
|
|
58
21
|
* @see https://vkcom.github.io/VKUI/#/Popper
|
|
59
22
|
*/
|
|
60
|
-
var Popper = function Popper(
|
|
61
|
-
var
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
}, flipModifier];
|
|
99
|
-
if (arrow) {
|
|
100
|
-
modifiers.push(arrowModifier);
|
|
23
|
+
var Popper = function Popper(_ref) {
|
|
24
|
+
var targetRef = _ref.targetRef,
|
|
25
|
+
children = _ref.children,
|
|
26
|
+
getRef = _ref.getRef,
|
|
27
|
+
_ref$placement = _ref.placement,
|
|
28
|
+
placementProp = _ref$placement === void 0 ? 'bottom-start' : _ref$placement,
|
|
29
|
+
onPlacementChange = _ref.onPlacementChange,
|
|
30
|
+
arrow = _ref.arrow,
|
|
31
|
+
arrowClassName = _ref.arrowClassName,
|
|
32
|
+
sameWidth = _ref.sameWidth,
|
|
33
|
+
_ref$offsetDistance = _ref.offsetDistance,
|
|
34
|
+
offsetDistance = _ref$offsetDistance === void 0 ? 8 : _ref$offsetDistance,
|
|
35
|
+
_ref$offsetSkidding = _ref.offsetSkidding,
|
|
36
|
+
offsetSkidding = _ref$offsetSkidding === void 0 ? 0 : _ref$offsetSkidding,
|
|
37
|
+
_ref$forcePortal = _ref.forcePortal,
|
|
38
|
+
forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
|
|
39
|
+
_ref$autoUpdateOnTarg = _ref.autoUpdateOnTargetResize,
|
|
40
|
+
autoUpdateOnTargetResize = _ref$autoUpdateOnTarg === void 0 ? false : _ref$autoUpdateOnTarg,
|
|
41
|
+
styleProp = _ref.style,
|
|
42
|
+
customMiddlewares = _ref.customMiddlewares,
|
|
43
|
+
renderContent = _ref.renderContent,
|
|
44
|
+
className = _ref.className,
|
|
45
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
46
|
+
var arrowRef = React.useRef(null);
|
|
47
|
+
var isNotAutoPlacement = (0, _floating.checkIsNotAutoPlacement)(placementProp);
|
|
48
|
+
var memoizedMiddlewares = React.useMemo(function () {
|
|
49
|
+
var middlewares = [(0, _floating.offsetMiddleware)({
|
|
50
|
+
crossAxis: offsetSkidding,
|
|
51
|
+
mainAxis: arrow ? offsetDistance + _PopperArrow.ARROW_HEIGHT : offsetDistance
|
|
52
|
+
})];
|
|
53
|
+
|
|
54
|
+
// см. https://floating-ui.com/docs/flip#conflict-with-autoplacement
|
|
55
|
+
if (isNotAutoPlacement) {
|
|
56
|
+
middlewares.push((0, _floating.flipMiddleware)());
|
|
57
|
+
} else {
|
|
58
|
+
middlewares.push((0, _floating.autoPlacementMiddleware)({
|
|
59
|
+
alignment: (0, _floating.getAutoPlacementAlign)(placementProp)
|
|
60
|
+
}));
|
|
101
61
|
}
|
|
62
|
+
middlewares.push((0, _floating.shiftMiddleware)());
|
|
102
63
|
if (sameWidth) {
|
|
103
|
-
|
|
64
|
+
middlewares.push((0, _floating.sizeMiddleware)({
|
|
65
|
+
apply: function apply(_ref2) {
|
|
66
|
+
var rects = _ref2.rects,
|
|
67
|
+
elements = _ref2.elements;
|
|
68
|
+
Object.assign(elements.floating.style, {
|
|
69
|
+
width: "".concat(rects.reference.width, "px")
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
104
73
|
}
|
|
105
|
-
if (
|
|
106
|
-
|
|
74
|
+
if (customMiddlewares) {
|
|
75
|
+
middlewares.push.apply(middlewares, (0, _toConsumableArray2.default)(customMiddlewares));
|
|
107
76
|
}
|
|
108
|
-
return modifiers;
|
|
109
|
-
}, [arrow, sameWidth, smallTargetOffsetSkidding, offsetSkidding, offsetDistance, customModifiers]);
|
|
110
|
-
var _usePopper = (0, _reactPopper.usePopper)(targetRef.current, popperNode, {
|
|
111
|
-
placement: placement,
|
|
112
|
-
modifiers: modifiers
|
|
113
|
-
}),
|
|
114
|
-
popperStyles = _usePopper.styles,
|
|
115
|
-
state = _usePopper.state,
|
|
116
|
-
attributes = _usePopper.attributes;
|
|
117
|
-
var resolvedPlacement = state === null || state === void 0 ? void 0 : state.placement;
|
|
118
|
-
var isEdgePlacement = !!resolvedPlacement && resolvedPlacement.includes('-'); // true, если поппер отрисован с краю
|
|
119
77
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var arrowSize = placementDirection === 'vertical' ? ARROW_WIDTH : ARROW_HEIGHT;
|
|
127
|
-
var targetSize = (_ref4 = placementDirection === 'vertical' ? (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.offsetWidth : (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.offsetHeight) !== null && _ref4 !== void 0 ? _ref4 : 0;
|
|
128
|
-
if (targetSize < arrowSize + 2 * ARROW_PADDING) {
|
|
129
|
-
setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);
|
|
130
|
-
}
|
|
131
|
-
} else {
|
|
132
|
-
setSmallTargetOffsetSkidding(0);
|
|
78
|
+
// см. https://floating-ui.com/docs/arrow#order
|
|
79
|
+
if (arrow) {
|
|
80
|
+
middlewares.push((0, _floating.arrowMiddleware)({
|
|
81
|
+
element: arrowRef,
|
|
82
|
+
padding: _PopperArrow.ARROW_PADDING
|
|
83
|
+
}));
|
|
133
84
|
}
|
|
134
|
-
|
|
85
|
+
return middlewares;
|
|
86
|
+
}, [arrow, sameWidth, offsetSkidding, offsetDistance, customMiddlewares, placementProp, isNotAutoPlacement]);
|
|
87
|
+
var _useFloating = (0, _floating.useFloating)({
|
|
88
|
+
placement: isNotAutoPlacement ? placementProp : undefined,
|
|
89
|
+
middleware: memoizedMiddlewares,
|
|
90
|
+
whileElementsMounted: function whileElementsMounted() {
|
|
91
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
92
|
+
args[_key] = arguments[_key];
|
|
93
|
+
}
|
|
94
|
+
return _floating.autoUpdateFloatingElement.apply(void 0, args.concat([{
|
|
95
|
+
elementResize: autoUpdateOnTargetResize
|
|
96
|
+
}]));
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
floatingDataX = _useFloating.x,
|
|
100
|
+
floatingDataY = _useFloating.y,
|
|
101
|
+
floatingPositionStrategy = _useFloating.strategy,
|
|
102
|
+
resolvedPlacement = _useFloating.placement,
|
|
103
|
+
refs = _useFloating.refs,
|
|
104
|
+
arrowCoords = _useFloating.middlewareData.arrow;
|
|
105
|
+
var handleRootRef = (0, _useExternRef.useExternRef)(refs.setFloating, getRef);
|
|
106
|
+
React.useEffect(function () {
|
|
107
|
+
refs.setReference(targetRef.current);
|
|
108
|
+
}, [refs, targetRef]);
|
|
135
109
|
React.useEffect(function () {
|
|
136
|
-
if (resolvedPlacement) {
|
|
137
|
-
onPlacementChange
|
|
110
|
+
if (resolvedPlacement && onPlacementChange) {
|
|
111
|
+
onPlacementChange({
|
|
138
112
|
placement: resolvedPlacement
|
|
139
113
|
});
|
|
140
114
|
}
|
|
141
115
|
}, [onPlacementChange, resolvedPlacement]);
|
|
142
|
-
var dropdown = /*#__PURE__*/React.createElement("div", (0, _extends2.default)({}, restProps,
|
|
143
|
-
className: (0, _vkjs.classNames)("vkuiPopper",
|
|
144
|
-
ref:
|
|
145
|
-
style: (0, _objectSpread2.default)((0, _objectSpread2.default)((0,
|
|
146
|
-
minWidth: sameWidth ? (_targetRef$current3 = targetRef.current) === null || _targetRef$current3 === void 0 ? void 0 : _targetRef$current3.scrollWidth : undefined
|
|
147
|
-
})
|
|
116
|
+
var dropdown = /*#__PURE__*/React.createElement("div", (0, _extends2.default)({}, restProps, {
|
|
117
|
+
className: (0, _vkjs.classNames)("vkuiPopper", className),
|
|
118
|
+
ref: handleRootRef,
|
|
119
|
+
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, styleProp), (0, _floating.convertFloatingDataToReactCSSProperties)(floatingPositionStrategy, floatingDataX, floatingDataY, sameWidth ? null : undefined))
|
|
148
120
|
}), arrow && /*#__PURE__*/React.createElement(_PopperArrow.PopperArrow, {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
arrowClassName: arrowClassName
|
|
121
|
+
coords: arrowCoords,
|
|
122
|
+
placement: resolvedPlacement,
|
|
123
|
+
arrowClassName: arrowClassName,
|
|
124
|
+
getRootRef: arrowRef
|
|
152
125
|
}), renderContent ? renderContent({
|
|
153
126
|
className: "vkuiPopper__content"
|
|
154
127
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popper.js","names":["ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","preventOverflowModifier","name","options","mainAxis","flipModifier","arrowModifier","padding","sameWidthModifier","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","style","offsetWidth","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","customModifiers","renderContent","className","restProps","React","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","usePlatform","setExternalRef","useExternRef","modifiers","useMemo","offset","push","usePopper","current","popperStyles","attributes","resolvedPlacement","isEdgePlacement","includes","useIsomorphicLayoutEffect","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","classNames","getPlatformClassName","minWidth","scrollWidth","undefined"],"sources":["../../../../src/components/Popper/Popper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { usePopper, Modifier } from 'react-popper';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { PopperArrow } from '../PopperArrow/PopperArrow';\nimport { HasRef } from '../../types';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getPlatformClassName } from '../../helpers/getPlatformClassName';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './Popper.module.css';\n\nexport type Placement =\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right';\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\nconst preventOverflowModifier: Modifier<string> = {\n name: 'preventOverflow',\n options: {\n mainAxis: false,\n },\n};\n\nconst flipModifier: Modifier<string> = {\n name: 'flip',\n};\n\nconst arrowModifier: Modifier<string> = {\n name: 'arrow',\n options: {\n padding: ARROW_PADDING,\n },\n};\n\nconst sameWidthModifier: Modifier<string> = {\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n className,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(null);\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] = React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n preventOverflowModifier,\n {\n name: 'offset',\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n flipModifier,\n ];\n\n if (arrow) {\n modifiers.push(arrowModifier);\n }\n\n if (sameWidth) {\n modifiers.push(sameWidthModifier);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const {\n styles: popperStyles,\n state,\n attributes,\n } = usePopper(targetRef.current, popperNode, {\n placement,\n modifiers,\n });\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement = !!resolvedPlacement && resolvedPlacement.includes('-'); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith('bottom') || resolvedPlacement?.startsWith('top')\n ? 'vertical'\n : 'horizontal';\n\n const arrowSize = placementDirection === 'vertical' ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === 'vertical'\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n className={classNames(\n styles['Popper'],\n getPlatformClassName(styles['Popper'], platform),\n className,\n )}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...popperStyles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={popperStyles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: styles['Popper__content'] })\n ) : (\n <div className={styles['Popper__content']}>{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} className={styles['PopperPortal']}>\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Popper.js","names":["Popper","targetRef","children","getRef","placement","placementProp","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","autoUpdateOnTargetResize","styleProp","style","customMiddlewares","renderContent","className","restProps","arrowRef","React","useRef","isNotAutoPlacement","checkIsNotAutoPlacement","memoizedMiddlewares","useMemo","middlewares","offsetMiddleware","crossAxis","mainAxis","ARROW_HEIGHT","push","flipMiddleware","autoPlacementMiddleware","alignment","getAutoPlacementAlign","shiftMiddleware","sizeMiddleware","apply","rects","elements","Object","assign","floating","width","reference","arrowMiddleware","element","padding","ARROW_PADDING","useFloating","undefined","middleware","whileElementsMounted","args","autoUpdateFloatingElement","elementResize","floatingDataX","x","floatingDataY","y","floatingPositionStrategy","strategy","resolvedPlacement","refs","arrowCoords","middlewareData","handleRootRef","useExternRef","setFloating","useEffect","setReference","current","dropdown","classNames","convertFloatingDataToReactCSSProperties"],"sources":["../../../../src/components/Popper/Popper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { ARROW_PADDING, ARROW_HEIGHT, PopperArrow } from '../PopperArrow/PopperArrow';\nimport type { HasRef } from '../../types';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport {\n type Placement,\n type PlacementWithAuto,\n checkIsNotAutoPlacement,\n getAutoPlacementAlign,\n convertFloatingDataToReactCSSProperties,\n useFloating,\n autoUpdateFloatingElement,\n type UseFloatingMiddleware,\n offsetMiddleware,\n flipMiddleware,\n shiftMiddleware,\n autoPlacementMiddleware,\n arrowMiddleware,\n sizeMiddleware,\n} from '../../lib/floating';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './Popper.module.css';\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: PlacementWithAuto;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n /**\n * Подписывается на изменение геометрии `targetRef`, чтобы пересчитать свою позицию.\n */\n autoUpdateOnTargetResize?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n onPlacementChange?(data: { placement?: Placement }): void;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement: placementProp = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n autoUpdateOnTargetResize = false,\n style: styleProp,\n customMiddlewares,\n renderContent,\n className,\n ...restProps\n}: PopperProps) => {\n const arrowRef = React.useRef<HTMLDivElement>(null);\n\n const isNotAutoPlacement = checkIsNotAutoPlacement(placementProp);\n\n const memoizedMiddlewares = React.useMemo(() => {\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetSkidding,\n mainAxis: arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n }),\n ];\n\n // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement\n if (isNotAutoPlacement) {\n middlewares.push(flipMiddleware());\n } else {\n middlewares.push(\n autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placementProp) }),\n );\n }\n\n middlewares.push(shiftMiddleware());\n\n if (sameWidth) {\n middlewares.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n );\n }\n\n if (customMiddlewares) {\n middlewares.push(...customMiddlewares);\n }\n\n // см. https://floating-ui.com/docs/arrow#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware({\n element: arrowRef,\n padding: ARROW_PADDING,\n }),\n );\n }\n\n return middlewares;\n }, [\n arrow,\n sameWidth,\n offsetSkidding,\n offsetDistance,\n customMiddlewares,\n placementProp,\n isNotAutoPlacement,\n ]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n strategy: floatingPositionStrategy,\n placement: resolvedPlacement,\n refs,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n placement: isNotAutoPlacement ? placementProp : undefined,\n middleware: memoizedMiddlewares,\n whileElementsMounted(...args) {\n return autoUpdateFloatingElement(...args, {\n elementResize: autoUpdateOnTargetResize,\n });\n },\n });\n\n const handleRootRef = useExternRef<HTMLDivElement>(refs.setFloating, getRef);\n\n React.useEffect(() => {\n refs.setReference(targetRef.current);\n }, [refs, targetRef]);\n\n React.useEffect(() => {\n if (resolvedPlacement && onPlacementChange) {\n onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n className={classNames(styles['Popper'], className)}\n ref={handleRootRef}\n style={{\n ...styleProp,\n ...convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n sameWidth ? null : undefined,\n ),\n }}\n >\n {arrow && (\n <PopperArrow\n coords={arrowCoords}\n placement={resolvedPlacement}\n arrowClassName={arrowClassName}\n getRootRef={arrowRef}\n />\n )}\n {renderContent ? (\n renderContent({ className: styles['Popper__content'] })\n ) : (\n <div className={styles['Popper__content']}>{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} className={styles['PopperPortal']}>\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { HasRootRef } from '../../types';
|
|
3
|
+
import type { Placement } from '../../lib/floating';
|
|
4
|
+
export declare const ARROW_PADDING = 10;
|
|
5
|
+
export declare const ARROW_WIDTH = 20;
|
|
6
|
+
export declare const ARROW_HEIGHT = 8;
|
|
7
|
+
declare type Coords = {
|
|
8
|
+
x?: number;
|
|
9
|
+
y?: number;
|
|
10
|
+
};
|
|
11
|
+
export interface PopperArrowProps extends HasRootRef<HTMLDivElement> {
|
|
12
|
+
coords?: Coords;
|
|
13
|
+
placement: Placement;
|
|
5
14
|
arrowClassName?: string;
|
|
6
15
|
}
|
|
7
|
-
export declare const PopperArrow: ({
|
|
16
|
+
export declare const PopperArrow: ({ coords, arrowClassName, placement, getRootRef, }: PopperArrowProps) => JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -1,29 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.PopperArrow = void 0;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
7
|
+
exports.PopperArrow = exports.ARROW_WIDTH = exports.ARROW_PADDING = exports.ARROW_HEIGHT = void 0;
|
|
11
8
|
var React = _interopRequireWildcard(require("react"));
|
|
12
9
|
var _vkjs = require("@vkontakte/vkjs");
|
|
13
|
-
var
|
|
10
|
+
var ARROW_PADDING = 10;
|
|
11
|
+
exports.ARROW_PADDING = ARROW_PADDING;
|
|
12
|
+
var ARROW_WIDTH = 20;
|
|
13
|
+
exports.ARROW_WIDTH = ARROW_WIDTH;
|
|
14
|
+
var ARROW_HEIGHT = 8;
|
|
15
|
+
exports.ARROW_HEIGHT = ARROW_HEIGHT;
|
|
16
|
+
function getPositionsStylesByCoords(placement) {
|
|
17
|
+
var coords = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
18
|
+
x: 0,
|
|
19
|
+
y: 0
|
|
20
|
+
};
|
|
21
|
+
if (placement.startsWith('top')) {
|
|
22
|
+
return {
|
|
23
|
+
top: '100%',
|
|
24
|
+
left: coords.x
|
|
25
|
+
};
|
|
26
|
+
} else if (placement.startsWith('right')) {
|
|
27
|
+
return {
|
|
28
|
+
top: coords.y,
|
|
29
|
+
right: 'calc(100% - 6px)'
|
|
30
|
+
};
|
|
31
|
+
} else if (placement.startsWith('bottom')) {
|
|
32
|
+
return {
|
|
33
|
+
bottom: '100%',
|
|
34
|
+
left: coords.x
|
|
35
|
+
};
|
|
36
|
+
} else {
|
|
37
|
+
return {
|
|
38
|
+
top: coords.y,
|
|
39
|
+
left: 'calc(100% - 6px)'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
14
43
|
var PopperArrow = function PopperArrow(_ref) {
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"data-popper-arrow": true
|
|
26
|
-
}), /*#__PURE__*/React.createElement("svg", {
|
|
44
|
+
var coords = _ref.coords,
|
|
45
|
+
arrowClassName = _ref.arrowClassName,
|
|
46
|
+
placement = _ref.placement,
|
|
47
|
+
getRootRef = _ref.getRootRef;
|
|
48
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
49
|
+
ref: getRootRef,
|
|
50
|
+
style: getPositionsStylesByCoords(placement, coords),
|
|
51
|
+
className: "vkuiPopperArrow",
|
|
52
|
+
"data-placement": placement
|
|
53
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
27
54
|
className: (0, _vkjs.classNames)("vkuiPopperArrow__in", arrowClassName),
|
|
28
55
|
width: "20",
|
|
29
56
|
height: "8",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperArrow.js","names":["
|
|
1
|
+
{"version":3,"file":"PopperArrow.js","names":["ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","getPositionsStylesByCoords","placement","coords","x","y","startsWith","top","left","right","bottom","PopperArrow","arrowClassName","getRootRef","classNames"],"sources":["../../../../src/components/PopperArrow/PopperArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasRootRef } from '../../types';\nimport type { Placement } from '../../lib/floating';\nimport styles from './PopperArrow.module.css';\n\nexport const ARROW_PADDING = 10;\nexport const ARROW_WIDTH = 20;\nexport const ARROW_HEIGHT = 8;\n\ntype Coords = {\n x?: number;\n y?: number;\n};\n\nfunction getPositionsStylesByCoords(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n): React.CSSProperties {\n if (placement.startsWith('top')) {\n return {\n top: '100%',\n left: coords.x,\n };\n } else if (placement.startsWith('right')) {\n return {\n top: coords.y,\n right: 'calc(100% - 6px)',\n };\n } else if (placement.startsWith('bottom')) {\n return {\n bottom: '100%',\n left: coords.x,\n };\n } else {\n return {\n top: coords.y,\n left: 'calc(100% - 6px)',\n };\n }\n}\n\nexport interface PopperArrowProps extends HasRootRef<HTMLDivElement> {\n coords?: Coords;\n placement: Placement;\n arrowClassName?: string;\n}\n\nexport const PopperArrow = ({\n coords,\n arrowClassName,\n placement,\n getRootRef,\n}: PopperArrowProps) => {\n return (\n <div\n ref={getRootRef}\n style={getPositionsStylesByCoords(placement, coords)}\n className={styles['PopperArrow']}\n data-placement={placement}\n >\n <svg\n className={classNames(styles['PopperArrow__in'], arrowClassName)}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAKO,IAAMA,aAAa,GAAG,EAAE;AAAC;AACzB,IAAMC,WAAW,GAAG,EAAE;AAAC;AACvB,IAAMC,YAAY,GAAG,CAAC;AAAC;AAO9B,SAASC,0BAA0B,CACjCC,SAAoB,EAEC;EAAA,IADrBC,MAAc,uEAAG;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC;EAE/B,IAAIH,SAAS,CAACI,UAAU,CAAC,KAAK,CAAC,EAAE;IAC/B,OAAO;MACLC,GAAG,EAAE,MAAM;MACXC,IAAI,EAAEL,MAAM,CAACC;IACf,CAAC;EACH,CAAC,MAAM,IAAIF,SAAS,CAACI,UAAU,CAAC,OAAO,CAAC,EAAE;IACxC,OAAO;MACLC,GAAG,EAAEJ,MAAM,CAACE,CAAC;MACbI,KAAK,EAAE;IACT,CAAC;EACH,CAAC,MAAM,IAAIP,SAAS,CAACI,UAAU,CAAC,QAAQ,CAAC,EAAE;IACzC,OAAO;MACLI,MAAM,EAAE,MAAM;MACdF,IAAI,EAAEL,MAAM,CAACC;IACf,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLG,GAAG,EAAEJ,MAAM,CAACE,CAAC;MACbG,IAAI,EAAE;IACR,CAAC;EACH;AACF;AAQO,IAAMG,WAAW,GAAG,SAAdA,WAAW,OAKA;EAAA,IAJtBR,MAAM,QAANA,MAAM;IACNS,cAAc,QAAdA,cAAc;IACdV,SAAS,QAATA,SAAS;IACTW,UAAU,QAAVA,UAAU;EAEV,oBACE;IACE,GAAG,EAAEA,UAAW;IAChB,KAAK,EAAEZ,0BAA0B,CAACC,SAAS,EAAEC,MAAM,CAAE;IACrD,SAAS,mBAAwB;IACjC,kBAAgBD;EAAU,gBAE1B;IACE,SAAS,EAAE,IAAAY,gBAAU,yBAA4BF,cAAc,CAAE;IACjE,KAAK,EAAC,IAAI;IACV,MAAM,EAAC,GAAG;IACV,OAAO,EAAC,UAAU;IAClB,IAAI,EAAC,MAAM;IACX,KAAK,EAAC;EAA4B,gBAElC;IACE,QAAQ,EAAC,SAAS;IAClB,QAAQ,EAAC,SAAS;IAClB,CAAC,EAAC,gDAAgD;IAClD,IAAI,EAAC;EAAc,EACnB,CACE,CACF;AAEV,CAAC;AAAC"}
|
|
@@ -13,7 +13,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _vkjs = require("@vkontakte/vkjs");
|
|
14
14
|
var _platform = require("../../lib/platform");
|
|
15
15
|
var _ConfigProviderContext = require("../ConfigProvider/ConfigProviderContext");
|
|
16
|
-
var
|
|
16
|
+
var _SplitColContext = require("../SplitCol/SplitColContext");
|
|
17
17
|
var _ScrollContext = require("../AppRoot/ScrollContext");
|
|
18
18
|
var _NavTransitionContext = require("../NavTransitionContext/NavTransitionContext");
|
|
19
19
|
var _getNavId = require("../../lib/getNavId");
|
|
@@ -44,7 +44,7 @@ var Root = function Root(_ref) {
|
|
|
44
44
|
var _useConfigProvider = (0, _ConfigProviderContext.useConfigProvider)(),
|
|
45
45
|
_useConfigProvider$tr = _useConfigProvider.transitionMotionEnabled,
|
|
46
46
|
transitionMotionEnabled = _useConfigProvider$tr === void 0 ? true : _useConfigProvider$tr;
|
|
47
|
-
var _React$useContext = React.useContext(
|
|
47
|
+
var _React$useContext = React.useContext(_SplitColContext.SplitColContext),
|
|
48
48
|
animate = _React$useContext.animate;
|
|
49
49
|
var disableAnimation = !transitionMotionEnabled || !animate;
|
|
50
50
|
var views = React.Children.toArray(children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","names":["warn","warnOnce","Root","children","_activeView","activeView","onTransition","nav","className","restProps","scroll","React","useContext","ScrollContext","platform","usePlatform","useDOM","document","scrolls","useRef","current","viewNodes","useConfigProvider","transitionMotionEnabled","SplitColContext","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","getNavId","props","indexOf","getScroll","y","finishTransition","useCallback","useIsomorphicLayoutEffect","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useTimeout","Platform","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","classNames","viewId","isTransitionTarget","compensateScroll","undefined","marginTop"],"sources":["../../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Platform } from '../../lib/platform';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContext } from '../SplitCol/SplitCol';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\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 styles from './Root.module.css';\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n className,\n ...restProps\n}: RootProps) => {\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 | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\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 scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === Platform.IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\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 ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['Root'],\n platform === Platform.IOS && styles['Root--ios'],\n transition && styles['Root--transition'],\n className,\n )}\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 const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Root.js","names":["warn","warnOnce","Root","children","_activeView","activeView","onTransition","nav","className","restProps","scroll","React","useContext","ScrollContext","platform","usePlatform","useDOM","document","scrolls","useRef","current","viewNodes","useConfigProvider","transitionMotionEnabled","SplitColContext","animate","disableAnimation","views","Children","toArray","useState","transition","prevView","isBack","_setState","transitionTo","panel","viewIds","map","view","getNavId","props","indexOf","getScroll","y","finishTransition","useCallback","useIsomorphicLayoutEffect","activeElement","blur","scrollTo","Boolean","from","to","fallbackTransition","useTimeout","Platform","IOS","useEffect","clear","set","onAnimationEnd","e","includes","animationName","classNames","viewId","isTransitionTarget","compensateScroll","undefined","marginTop"],"sources":["../../../../src/components/Root/Root.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Platform } from '../../lib/platform';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { SplitColContext } from '../SplitCol/SplitColContext';\nimport { ScrollContext } from '../AppRoot/ScrollContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\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 styles from './Root.module.css';\n\nexport interface RootProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n activeView: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n}\n\nexport interface RootState {\n activeView: string;\n transition: boolean;\n isBack?: boolean;\n prevView?: string;\n}\n\nconst warn = warnOnce('Root');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Root\n */\nexport const Root = ({\n children,\n activeView: _activeView,\n onTransition,\n nav,\n className,\n ...restProps\n}: RootProps) => {\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 | null>>({}).current;\n\n const { transitionMotionEnabled = true } = useConfigProvider();\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 scrolls[activeView] = scroll.getScroll().y;\n _setState({\n activeView: panel,\n prevView: activeView,\n transition: !disableAnimation,\n isBack,\n });\n }\n };\n const finishTransition = React.useCallback(\n () => _setState({ activeView, prevView, isBack, transition: false }),\n [activeView, isBack, prevView],\n );\n\n useIsomorphicLayoutEffect(() => {\n (document!.activeElement as HTMLElement).blur();\n }, [activeView]);\n\n // Нужен переход\n useIsomorphicLayoutEffect(() => transitionTo(_activeView), [_activeView]);\n useIsomorphicLayoutEffect(() => {\n if (!transition && prevView) {\n // Закончился переход\n scroll.scrollTo(0, isBack ? scrolls[activeView] : 0);\n onTransition &&\n onTransition({\n isBack: Boolean(isBack),\n from: prevView,\n to: activeView,\n });\n }\n }, [transition, prevView]);\n\n const fallbackTransition = useTimeout(finishTransition, platform === Platform.IOS ? 600 : 300);\n React.useEffect(() => {\n if (!transition) {\n fallbackTransition.clear();\n return;\n }\n fallbackTransition.set();\n }, [fallbackTransition, transition]);\n\n const onAnimationEnd = (e: React.AnimationEvent) => {\n if (\n [\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 ) {\n finishTransition();\n }\n };\n\n return (\n <div\n {...restProps}\n className={classNames(\n styles['Root'],\n platform === Platform.IOS && styles['Root--ios'],\n transition && styles['Root--transition'],\n className,\n )}\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 const compensateScroll =\n transition && (viewId === prevView || (isBack && viewId === activeView));\n return (\n <div\n key={viewId}\n ref={(e) => viewId && (viewNodes[viewId] = e)}\n onAnimationEnd={isTransitionTarget ? onAnimationEnd : undefined}\n className={classNames(\n styles['Root__view'],\n transition && viewId === prevView && isBack && styles['Root__view--hide-back'],\n transition && viewId === prevView && !isBack && styles['Root__view--hide-forward'],\n transition && viewId === activeView && isBack && styles['Root__view--show-back'],\n transition && viewId === activeView && !isBack && styles['Root__view--show-forward'],\n )}\n >\n <NavTransitionProvider entering={transition && viewId === activeView}>\n <div\n className={styles['Root__scrollCompensation']}\n style={{\n marginTop: compensateScroll ? viewId && -(scrolls[viewId] ?? 0) : undefined,\n }}\n >\n {view}\n </div>\n </NavTransitionProvider>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAsD;AAetD,IAAMA,IAAI,GAAG,IAAAC,kBAAQ,EAAC,MAAM,CAAC;;AAE7B;AACA;AACA;AACO,IAAMC,IAAI,GAAG,SAAPA,IAAI,OAOA;EAAA,IANfC,QAAQ,QAARA,QAAQ;IACIC,WAAW,QAAvBC,UAAU;IACVC,YAAY,QAAZA,YAAY;IACZC,GAAG,QAAHA,GAAG;IACHC,SAAS,QAATA,SAAS;IACNC,SAAS;EAEZ,IAAMC,MAAM,GAAGC,KAAK,CAACC,UAAU,CAACC,4BAAa,CAAC;EAC9C,IAAMC,QAAQ,GAAG,IAAAC,wBAAW,GAAE;EAC9B,cAAqB,IAAAC,WAAM,GAAE;IAArBC,QAAQ,WAARA,QAAQ;EAChB,IAAMC,OAAO,GAAGP,KAAK,CAACQ,MAAM,CAAyB,CAAC,CAAC,CAAC,CAACC,OAAO;EAChE,IAAMC,SAAS,GAAGV,KAAK,CAACQ,MAAM,CAAqC,CAAC,CAAC,CAAC,CAACC,OAAO;EAE9E,yBAA2C,IAAAE,wCAAiB,GAAE;IAAA,2CAAtDC,uBAAuB;IAAvBA,uBAAuB,sCAAG,IAAI;EACtC,wBAAoBZ,KAAK,CAACC,UAAU,CAACY,gCAAe,CAAC;IAA7CC,OAAO,qBAAPA,OAAO;EACf,IAAMC,gBAAgB,GAAG,CAACH,uBAAuB,IAAI,CAACE,OAAO;EAE7D,IAAME,KAAK,GAAGhB,KAAK,CAACiB,QAAQ,CAACC,OAAO,CAAC1B,QAAQ,CAAyB;EAEtE,sBAAkEQ,KAAK,CAACmB,QAAQ,CAAY;MAC1FzB,UAAU,EAAED,WAAW;MACvB2B,UAAU,EAAE;IACd,CAAC,CAAC;IAAA;IAAA;IAHOC,QAAQ,qBAARA,QAAQ;IAAE3B,UAAU,qBAAVA,UAAU;IAAE0B,UAAU,qBAAVA,UAAU;IAAEE,MAAM,qBAANA,MAAM;IAAIC,SAAS;EAI9D,IAAMC,YAAY,GAAG,SAAfA,YAAY,CAAIC,KAAa,EAAK;IACtC,IAAIA,KAAK,KAAK/B,UAAU,EAAE;MACxB,IAAMgC,OAAO,GAAGV,KAAK,CAACW,GAAG,CAAC,UAACC,IAAI;QAAA,OAAK,IAAAC,kBAAQ,EAACD,IAAI,CAACE,KAAK,EAAEzC,IAAI,CAAC;MAAA,EAAC;MAC/D,IAAMiC,OAAM,GAAGI,OAAO,CAACK,OAAO,CAACN,KAAK,CAAC,GAAGC,OAAO,CAACK,OAAO,CAACrC,UAAU,CAAC;MACnEa,OAAO,CAACb,UAAU,CAAC,GAAGK,MAAM,CAACiC,SAAS,EAAE,CAACC,CAAC;MAC1CV,SAAS,CAAC;QACR7B,UAAU,EAAE+B,KAAK;QACjBJ,QAAQ,EAAE3B,UAAU;QACpB0B,UAAU,EAAE,CAACL,gBAAgB;QAC7BO,MAAM,EAANA;MACF,CAAC,CAAC;IACJ;EACF,CAAC;EACD,IAAMY,gBAAgB,GAAGlC,KAAK,CAACmC,WAAW,CACxC;IAAA,OAAMZ,SAAS,CAAC;MAAE7B,UAAU,EAAVA,UAAU;MAAE2B,QAAQ,EAARA,QAAQ;MAAEC,MAAM,EAANA,MAAM;MAAEF,UAAU,EAAE;IAAM,CAAC,CAAC;EAAA,GACpE,CAAC1B,UAAU,EAAE4B,MAAM,EAAED,QAAQ,CAAC,CAC/B;EAED,IAAAe,oDAAyB,EAAC,YAAM;IAC7B9B,QAAQ,CAAE+B,aAAa,CAAiBC,IAAI,EAAE;EACjD,CAAC,EAAE,CAAC5C,UAAU,CAAC,CAAC;;EAEhB;EACA,IAAA0C,oDAAyB,EAAC;IAAA,OAAMZ,YAAY,CAAC/B,WAAW,CAAC;EAAA,GAAE,CAACA,WAAW,CAAC,CAAC;EACzE,IAAA2C,oDAAyB,EAAC,YAAM;IAC9B,IAAI,CAAChB,UAAU,IAAIC,QAAQ,EAAE;MAC3B;MACAtB,MAAM,CAACwC,QAAQ,CAAC,CAAC,EAAEjB,MAAM,GAAGf,OAAO,CAACb,UAAU,CAAC,GAAG,CAAC,CAAC;MACpDC,YAAY,IACVA,YAAY,CAAC;QACX2B,MAAM,EAAEkB,OAAO,CAAClB,MAAM,CAAC;QACvBmB,IAAI,EAAEpB,QAAQ;QACdqB,EAAE,EAAEhD;MACN,CAAC,CAAC;IACN;EACF,CAAC,EAAE,CAAC0B,UAAU,EAAEC,QAAQ,CAAC,CAAC;EAE1B,IAAMsB,kBAAkB,GAAG,IAAAC,sBAAU,EAACV,gBAAgB,EAAE/B,QAAQ,KAAK0C,kBAAQ,CAACC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;EAC9F9C,KAAK,CAAC+C,SAAS,CAAC,YAAM;IACpB,IAAI,CAAC3B,UAAU,EAAE;MACfuB,kBAAkB,CAACK,KAAK,EAAE;MAC1B;IACF;IACAL,kBAAkB,CAACM,GAAG,EAAE;EAC1B,CAAC,EAAE,CAACN,kBAAkB,EAAEvB,UAAU,CAAC,CAAC;EAEpC,IAAM8B,cAAc,GAAG,SAAjBA,cAAc,CAAIC,CAAuB,EAAK;IAClD,IACE,CACE,uCAAuC,EACvC,0CAA0C,EAC1C,mCAAmC,EACnC,sCAAsC,CACvC,CAACC,QAAQ,CAACD,CAAC,CAACE,aAAa,CAAC,EAC3B;MACAnB,gBAAgB,EAAE;IACpB;EACF,CAAC;EAED,oBACE,sDACMpC,SAAS;IACb,SAAS,EAAE,IAAAwD,gBAAU,cAEnBnD,QAAQ,KAAK0C,kBAAQ,CAACC,GAAG,mBAAuB,EAChD1B,UAAU,0BAA8B,EACxCvB,SAAS;EACT,IAEDmB,KAAK,CAACW,GAAG,CAAC,UAACC,IAAI,EAAK;IAAA;IACnB,IAAM2B,MAAM,GAAG,IAAA1B,kBAAQ,EAACD,IAAI,CAACE,KAAK,EAAEzC,IAAI,CAAC;IACzC,IAAIkE,MAAM,KAAK7D,UAAU,IAAI,EAAE0B,UAAU,IAAImC,MAAM,KAAKlC,QAAQ,CAAC,EAAE;MACjE,OAAO,IAAI;IACb;IACA,IAAMmC,kBAAkB,GAAGpC,UAAU,IAAImC,MAAM,MAAMjC,MAAM,GAAGD,QAAQ,GAAG3B,UAAU,CAAC;IACpF,IAAM+D,gBAAgB,GACpBrC,UAAU,KAAKmC,MAAM,KAAKlC,QAAQ,IAAKC,MAAM,IAAIiC,MAAM,KAAK7D,UAAW,CAAC;IAC1E,oBACE;MACE,GAAG,EAAE6D,MAAO;MACZ,GAAG,EAAE,aAACJ,CAAC;QAAA,OAAKI,MAAM,KAAK7C,SAAS,CAAC6C,MAAM,CAAC,GAAGJ,CAAC,CAAC;MAAA,CAAC;MAC9C,cAAc,EAAEK,kBAAkB,GAAGN,cAAc,GAAGQ,SAAU;MAChE,SAAS,EAAE,IAAAJ,gBAAU,oBAEnBlC,UAAU,IAAImC,MAAM,KAAKlC,QAAQ,IAAIC,MAAM,+BAAmC,EAC9EF,UAAU,IAAImC,MAAM,KAAKlC,QAAQ,IAAI,CAACC,MAAM,kCAAsC,EAClFF,UAAU,IAAImC,MAAM,KAAK7D,UAAU,IAAI4B,MAAM,+BAAmC,EAChFF,UAAU,IAAImC,MAAM,KAAK7D,UAAU,IAAI,CAAC4B,MAAM,kCAAsC;IACpF,gBAEF,oBAAC,2CAAqB;MAAC,QAAQ,EAAEF,UAAU,IAAImC,MAAM,KAAK7D;IAAW,gBACnE;MACE,SAAS,gCAAqC;MAC9C,KAAK,EAAE;QACLiE,SAAS,EAAEF,gBAAgB,GAAGF,MAAM,IAAI,qBAAEhD,OAAO,CAACgD,MAAM,CAAC,6DAAI,CAAC,CAAC,GAAGG;MACpE;IAAE,GAED9B,IAAI,CACD,CACgB,CACpB;EAEV,CAAC,CAAC,CACE;AAEV,CAAC;AAAC"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
export interface SplitColContextProps {
|
|
3
|
-
colRef: React.RefObject<HTMLDivElement> | null;
|
|
4
|
-
animate: boolean;
|
|
5
|
-
}
|
|
6
|
-
export declare const SplitColContext: React.Context<SplitColContextProps>;
|
|
7
|
-
export declare const useSplitCol: () => SplitColContextProps;
|
|
8
2
|
export interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
9
3
|
width?: number | string;
|
|
10
4
|
maxWidth?: number | string;
|
|
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.SplitCol = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
@@ -19,6 +19,7 @@ var _adaptivity = require("../../lib/adaptivity");
|
|
|
19
19
|
var _useObjectMemo = require("../../hooks/useObjectMemo");
|
|
20
20
|
var _useMediaQueries = require("../../hooks/useMediaQueries");
|
|
21
21
|
var _matchMedia = require("../../lib/matchMedia");
|
|
22
|
+
var _SplitColContext = require("./SplitColContext");
|
|
22
23
|
var _excluded = ["children", "width", "maxWidth", "minWidth", "spaced", "animate", "fixed", "style", "autoSpaced", "stretchedOnMobile", "className"];
|
|
23
24
|
function useTransitionAnimate(animateProp) {
|
|
24
25
|
var _useAdaptivity = (0, _useAdaptivity3.useAdaptivity)(),
|
|
@@ -50,15 +51,6 @@ function useTransitionAnimate(animateProp) {
|
|
|
50
51
|
}, [animateProp, viewWidth, mediaQueries]);
|
|
51
52
|
return animate;
|
|
52
53
|
}
|
|
53
|
-
var SplitColContext = /*#__PURE__*/React.createContext({
|
|
54
|
-
colRef: null,
|
|
55
|
-
animate: true
|
|
56
|
-
});
|
|
57
|
-
exports.SplitColContext = SplitColContext;
|
|
58
|
-
var useSplitCol = function useSplitCol() {
|
|
59
|
-
return React.useContext(SplitColContext);
|
|
60
|
-
};
|
|
61
|
-
exports.useSplitCol = useSplitCol;
|
|
62
54
|
/**
|
|
63
55
|
* @see https://vkcom.github.io/VKUI/#/SplitCol
|
|
64
56
|
*/
|
|
@@ -92,7 +84,7 @@ var SplitCol = function SplitCol(props) {
|
|
|
92
84
|
}),
|
|
93
85
|
ref: baseRef,
|
|
94
86
|
className: (0, _vkjs.classNames)("vkuiSplitCol", (0, _getSizeXClassName.getSizeXClassName)("vkuiSplitCol", sizeX), (0, _getViewWidthClassName.getViewWidthClassName)("vkuiSplitCol", viewWidth), spaced && "vkuiSplitCol--spaced", spaced === undefined && "vkuiSplitCol--spaced-none", autoSpaced && "vkuiSplitCol--spaced-auto", fixed && "vkuiSplitCol--fixed", stretchedOnMobile && "vkuiSplitCol--stretched-on-mobile", className)
|
|
95
|
-
}), /*#__PURE__*/React.createElement(SplitColContext.Provider, {
|
|
87
|
+
}), /*#__PURE__*/React.createElement(_SplitColContext.SplitColContext.Provider, {
|
|
96
88
|
value: contextValue
|
|
97
89
|
}, fixed ? /*#__PURE__*/React.createElement("div", {
|
|
98
90
|
className: "vkuiSplitCol__fixedInner"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitCol.js","names":["useTransitionAnimate","animateProp","useAdaptivity","viewWidth","React","useState","Boolean","animate","setAnimate","mediaQueries","useMediaQueries","useEffect","undefined","ViewWidth","TABLET","listener","smallTabletPlus","matches","matchMediaListAddListener","matchMediaListRemoveListener","
|
|
1
|
+
{"version":3,"file":"SplitCol.js","names":["useTransitionAnimate","animateProp","useAdaptivity","viewWidth","React","useState","Boolean","animate","setAnimate","mediaQueries","useMediaQueries","useEffect","undefined","ViewWidth","TABLET","listener","smallTabletPlus","matches","matchMediaListAddListener","matchMediaListRemoveListener","SplitCol","props","children","width","maxWidth","minWidth","spaced","fixed","style","autoSpaced","stretchedOnMobile","className","restProps","baseRef","useRef","sizeX","contextValue","useObjectMemo","colRef","classNames","getSizeXClassName","getViewWidthClassName"],"sources":["../../../../src/components/SplitCol/SplitCol.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { getSizeXClassName } from '../../helpers/getSizeXClassName';\nimport { getViewWidthClassName } from '../../helpers/getViewWidthClassName';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { ViewWidth } from '../../lib/adaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { useMediaQueries } from '../../hooks/useMediaQueries';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../../lib/matchMedia';\nimport { SplitColContext } from './SplitColContext';\nimport styles from './SplitCol.module.css';\n\nfunction useTransitionAnimate(animateProp?: boolean) {\n const { viewWidth } = useAdaptivity();\n const [animate, setAnimate] = React.useState(Boolean(animateProp));\n const mediaQueries = useMediaQueries();\n\n React.useEffect(() => {\n if (animateProp !== undefined) {\n setAnimate(animateProp);\n return;\n }\n\n if (viewWidth !== undefined) {\n setAnimate(viewWidth < ViewWidth.TABLET);\n return;\n }\n\n // eslint-disable-next-line no-restricted-properties\n const listener = () => setAnimate(!mediaQueries.smallTabletPlus.matches);\n listener();\n\n matchMediaListAddListener(mediaQueries.smallTabletPlus, listener);\n return () => {\n matchMediaListRemoveListener(mediaQueries.smallTabletPlus, listener);\n };\n }, [animateProp, viewWidth, mediaQueries]);\n\n return animate;\n}\n\nexport interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: number | string;\n maxWidth?: number | string;\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины\n */\n spaced?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины при ширине больше чем `smallTablet`\n */\n autoSpaced?: boolean;\n fixed?: boolean;\n /**\n * Если true, то ширина контейнера становится 100% при ширине меньше чем `tablet`\n */\n stretchedOnMobile?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitCol\n */\nexport const SplitCol = (props: SplitColProps) => {\n const {\n children,\n width,\n maxWidth,\n minWidth,\n spaced,\n animate: animateProp,\n fixed,\n style,\n autoSpaced,\n stretchedOnMobile,\n className,\n ...restProps\n } = props;\n const baseRef = React.useRef<HTMLDivElement>(null);\n const { viewWidth, sizeX } = useAdaptivity();\n const animate = useTransitionAnimate(animateProp);\n\n const contextValue = useObjectMemo({\n colRef: baseRef,\n animate,\n });\n\n return (\n <div\n {...restProps}\n style={{\n ...style,\n width: width,\n maxWidth: maxWidth,\n minWidth: minWidth,\n }}\n ref={baseRef}\n className={classNames(\n styles['SplitCol'],\n getSizeXClassName(styles['SplitCol'], sizeX),\n getViewWidthClassName(styles['SplitCol'], viewWidth),\n spaced && styles['SplitCol--spaced'],\n spaced === undefined && styles['SplitCol--spaced-none'],\n autoSpaced && styles['SplitCol--spaced-auto'],\n fixed && styles['SplitCol--fixed'],\n stretchedOnMobile && styles['SplitCol--stretched-on-mobile'],\n className,\n )}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? <div className={styles['SplitCol__fixedInner']}>{children}</div> : children}\n </SplitColContext.Provider>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface SplitColContextProps {
|
|
3
|
+
colRef: React.RefObject<HTMLDivElement> | null;
|
|
4
|
+
animate: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const SplitColContext: React.Context<SplitColContextProps>;
|
|
7
|
+
export declare const useSplitCol: () => SplitColContextProps;
|