@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
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useSplitCol = exports.SplitColContext = void 0;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var SplitColContext = /*#__PURE__*/React.createContext({
|
|
10
|
+
colRef: null,
|
|
11
|
+
animate: true
|
|
12
|
+
});
|
|
13
|
+
exports.SplitColContext = SplitColContext;
|
|
14
|
+
var useSplitCol = function useSplitCol() {
|
|
15
|
+
return React.useContext(SplitColContext);
|
|
16
|
+
};
|
|
17
|
+
exports.useSplitCol = useSplitCol;
|
|
18
|
+
//# sourceMappingURL=SplitColContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplitColContext.js","names":["SplitColContext","React","createContext","colRef","animate","useSplitCol","useContext"],"sources":["../../../../src/components/SplitCol/SplitColContext.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport interface SplitColContextProps {\n colRef: React.RefObject<HTMLDivElement> | null;\n animate: boolean;\n}\n\nexport const SplitColContext = React.createContext<SplitColContextProps>({\n colRef: null,\n animate: true,\n});\n\nexport const useSplitCol = () => React.useContext(SplitColContext);\n"],"mappings":";;;;;;;AAAA;AAOO,IAAMA,eAAe,gBAAGC,KAAK,CAACC,aAAa,CAAuB;EACvEC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;AACX,CAAC,CAAC;AAAC;AAEI,IAAMC,WAAW,GAAG,SAAdA,WAAW;EAAA,OAASJ,KAAK,CAACK,UAAU,CAACN,eAAe,CAAC;AAAA;AAAC"}
|
|
@@ -14,7 +14,10 @@ var _usePlatform = require("../../hooks/usePlatform");
|
|
|
14
14
|
var _Tappable = require("../Tappable/Tappable");
|
|
15
15
|
var _Footnote = require("../Typography/Footnote/Footnote");
|
|
16
16
|
var _platform = require("../../lib/platform");
|
|
17
|
+
var _warnOnce = require("../../lib/warnOnce");
|
|
17
18
|
var _excluded = ["children", "selected", "indicator", "text", "href", "Component", "disabled", "className"];
|
|
19
|
+
var warn = (0, _warnOnce.warnOnce)('TabbarItem');
|
|
20
|
+
|
|
18
21
|
/**
|
|
19
22
|
* @see https://vkcom.github.io/VKUI/#/TabbarItem
|
|
20
23
|
*/
|
|
@@ -30,6 +33,12 @@ var TabbarItem = function TabbarItem(_ref) {
|
|
|
30
33
|
className = _ref.className,
|
|
31
34
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
32
35
|
var platform = (0, _usePlatform.usePlatform)();
|
|
36
|
+
if (process.env.NODE_ENV === 'development') {
|
|
37
|
+
var isAccessible = !text && (!restProps['aria-label'] || !restProps['aria-labelledby']);
|
|
38
|
+
if (!isAccessible) {
|
|
39
|
+
warn(_warnOnce.COMMON_WARNINGS.a11y[Component === 'a' ? 'link-name' : 'button-name'], 'error');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
return /*#__PURE__*/React.createElement(Component, (0, _extends2.default)({}, restProps, {
|
|
34
43
|
disabled: disabled,
|
|
35
44
|
href: href,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabbarItem.js","names":["TabbarItem","children","selected","indicator","text","href","Component","disabled","className","restProps","platform","usePlatform","classNames","Platform","IOS","ANDROID","hasReactNode"],"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HasRootRef } from '../../types';\nimport styles from './TabbarItem.module.css';\n\nexport interface TabbarItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Текст рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabbarItem\n */\nexport const TabbarItem = ({\n children,\n selected,\n indicator,\n text,\n href,\n Component = href ? 'a' : 'button',\n disabled,\n className,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n className={classNames(\n styles['TabbarItem'],\n platform === Platform.IOS && styles['TabbarItem--ios'],\n platform === Platform.ANDROID && styles['TabbarItem--android'],\n selected && styles['TabbarItem--selected'],\n !!text && styles['TabbarItem--text'],\n className,\n )}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS ? styles['TabbarItem__tappable--active'] : 'background'\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n className={styles['TabbarItem__tappable']}\n />\n <div className={styles['TabbarItem__in']}>\n <div className={styles['TabbarItem__icon']}>\n {children}\n <div className={styles['TabbarItem__label']}>{hasReactNode(indicator) && indicator}</div>\n </div>\n {text && (\n <Footnote Component=\"div\" className={styles['TabbarItem__text']} weight=\"2\">\n {text}\n </Footnote>\n )}\n </div>\n </Component>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;
|
|
1
|
+
{"version":3,"file":"TabbarItem.js","names":["warn","warnOnce","TabbarItem","children","selected","indicator","text","href","Component","disabled","className","restProps","platform","usePlatform","process","env","NODE_ENV","isAccessible","COMMON_WARNINGS","a11y","classNames","Platform","IOS","ANDROID","hasReactNode"],"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Platform } from '../../lib/platform';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport styles from './TabbarItem.module.css';\n\nexport interface TabbarItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Текст рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n}\n\nconst warn = warnOnce('TabbarItem');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabbarItem\n */\nexport const TabbarItem = ({\n children,\n selected,\n indicator,\n text,\n href,\n Component = href ? 'a' : 'button',\n disabled,\n className,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (process.env.NODE_ENV === 'development') {\n const isAccessible = !text && (!restProps['aria-label'] || !restProps['aria-labelledby']);\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[Component === 'a' ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n className={classNames(\n styles['TabbarItem'],\n platform === Platform.IOS && styles['TabbarItem--ios'],\n platform === Platform.ANDROID && styles['TabbarItem--android'],\n selected && styles['TabbarItem--selected'],\n !!text && styles['TabbarItem--text'],\n className,\n )}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS ? styles['TabbarItem__tappable--active'] : 'background'\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n className={styles['TabbarItem__tappable']}\n />\n <div className={styles['TabbarItem__in']}>\n <div className={styles['TabbarItem__icon']}>\n {children}\n <div className={styles['TabbarItem__label']}>{hasReactNode(indicator) && indicator}</div>\n </div>\n {text && (\n <Footnote Component=\"div\" className={styles['TabbarItem__text']} weight=\"2\">\n {text}\n </Footnote>\n )}\n </div>\n </Component>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAA+D;AAkB/D,IAAMA,IAAI,GAAG,IAAAC,kBAAQ,EAAC,YAAY,CAAC;;AAEnC;AACA;AACA;AACO,IAAMC,UAAU,GAAG,SAAbA,UAAU,OAUA;EAAA,IATrBC,QAAQ,QAARA,QAAQ;IACRC,QAAQ,QAARA,QAAQ;IACRC,SAAS,QAATA,SAAS;IACTC,IAAI,QAAJA,IAAI;IACJC,IAAI,QAAJA,IAAI;IAAA,sBACJC,SAAS;IAATA,SAAS,+BAAGD,IAAI,GAAG,GAAG,GAAG,QAAQ;IACjCE,QAAQ,QAARA,QAAQ;IACRC,SAAS,QAATA,SAAS;IACNC,SAAS;EAEZ,IAAMC,QAAQ,GAAG,IAAAC,wBAAW,GAAE;EAE9B,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;IAC1C,IAAMC,YAAY,GAAG,CAACX,IAAI,KAAK,CAACK,SAAS,CAAC,YAAY,CAAC,IAAI,CAACA,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAEzF,IAAI,CAACM,YAAY,EAAE;MACjBjB,IAAI,CAACkB,yBAAe,CAACC,IAAI,CAACX,SAAS,KAAK,GAAG,GAAG,WAAW,GAAG,aAAa,CAAC,EAAE,OAAO,CAAC;IACtF;EACF;EAEA,oBACE,oBAAC,SAAS,6BACJG,SAAS;IACb,QAAQ,EAAEF,QAAS;IACnB,IAAI,EAAEF,IAAK;IACX,SAAS,EAAE,IAAAa,gBAAU,oBAEnBR,QAAQ,KAAKS,kBAAQ,CAACC,GAAG,yBAA6B,EACtDV,QAAQ,KAAKS,kBAAQ,CAACE,OAAO,6BAAiC,EAC9DnB,QAAQ,8BAAkC,EAC1C,CAAC,CAACE,IAAI,0BAA8B,EACpCI,SAAS;EACT,iBAEF,oBAAC,kBAAQ;IACP,IAAI,EAAC,cAAc;IACnB,SAAS,EAAC,KAAK;IACf,QAAQ,EAAED,QAAS;IACnB,UAAU,EACRG,QAAQ,KAAKS,kBAAQ,CAACC,GAAG,wCAA4C,YACtE;IACD,iBAAiB,EAAEV,QAAQ,KAAKS,kBAAQ,CAACC,GAAG,GAAG,CAAC,GAAG,GAAI;IACvD,QAAQ,EAAE,KAAM;IAChB,SAAS;EAAiC,EAC1C,eACF;IAAK,SAAS;EAA2B,gBACvC;IAAK,SAAS;EAA6B,GACxCnB,QAAQ,eACT;IAAK,SAAS;EAA8B,GAAE,IAAAqB,kBAAY,EAACnB,SAAS,CAAC,IAAIA,SAAS,CAAO,CACrF,EACLC,IAAI,iBACH,oBAAC,kBAAQ;IAAC,SAAS,EAAC,KAAK;IAAC,SAAS,wBAA6B;IAAC,MAAM,EAAC;EAAG,GACxEA,IAAI,CAER,CACG,CACI;AAEhB,CAAC;AAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { type PlacementWithAuto } from '../../lib/floating';
|
|
3
3
|
import { HasRootRef } from '../../types';
|
|
4
4
|
export interface TooltipProps {
|
|
5
5
|
/**
|
|
@@ -61,7 +61,7 @@ export interface TooltipProps {
|
|
|
61
61
|
/**
|
|
62
62
|
* По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
|
|
63
63
|
*/
|
|
64
|
-
placement?:
|
|
64
|
+
placement?: PlacementWithAuto;
|
|
65
65
|
/**
|
|
66
66
|
* Пользовательские css-классы, будут добавлены на root-элемент
|
|
67
67
|
*/
|
|
@@ -70,4 +70,4 @@ export interface TooltipProps {
|
|
|
70
70
|
/**
|
|
71
71
|
* @see https://vkcom.github.io/VKUI/#/Tooltip
|
|
72
72
|
*/
|
|
73
|
-
export declare const Tooltip: ({ children, isShown:
|
|
73
|
+
export declare const Tooltip: ({ children, isShown: isShownProp, offsetX, offsetY, alignX, alignY, onClose, cornerOffset, cornerAbsoluteOffset, appearance, arrow, placement: placementProp, text, header, className, ...restProps }: TooltipProps) => JSX.Element;
|
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.Tooltip = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
14
14
|
var React = _interopRequireWildcard(require("react"));
|
|
15
15
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
@@ -17,52 +17,24 @@ var _vkjs = require("@vkontakte/vkjs");
|
|
|
17
17
|
var _Subhead = require("../Typography/Subhead/Subhead");
|
|
18
18
|
var _NavTransitionContext = require("../NavTransitionContext/NavTransitionContext");
|
|
19
19
|
var _PopperArrow = require("../PopperArrow/PopperArrow");
|
|
20
|
-
var
|
|
20
|
+
var _floating = require("../../lib/floating");
|
|
21
21
|
var _TooltipContainer = require("./TooltipContainer");
|
|
22
22
|
var _useExternRef = require("../../hooks/useExternRef");
|
|
23
23
|
var _dom = require("../../lib/dom");
|
|
24
24
|
var _warnOnce = require("../../lib/warnOnce");
|
|
25
25
|
var _useGlobalEventListener = require("../../hooks/useGlobalEventListener");
|
|
26
|
-
var _excluded = ["className"]
|
|
27
|
-
_excluded2 = ["children", "isShown", "offsetX", "offsetY", "alignX", "alignY", "onClose", "cornerOffset", "cornerAbsoluteOffset", "appearance", "arrow", "placement"];
|
|
26
|
+
var _excluded = ["children", "isShown", "offsetX", "offsetY", "alignX", "alignY", "onClose", "cornerOffset", "cornerAbsoluteOffset", "appearance", "arrow", "placement", "text", "header", "className"];
|
|
28
27
|
var isDOMTypeElement = function isDOMTypeElement(element) {
|
|
29
28
|
return /*#__PURE__*/React.isValidElement(element) && typeof element.type === 'string';
|
|
30
29
|
};
|
|
31
30
|
var warn = (0, _warnOnce.warnOnce)('Tooltip');
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
arrow = _ref.arrow,
|
|
40
|
-
_ref$style = _ref.style,
|
|
41
|
-
popperStyles = _ref$style === void 0 ? {} : _ref$style,
|
|
42
|
-
attributes = _ref.attributes,
|
|
43
|
-
className = _ref.className;
|
|
44
|
-
var _ref2 = (_attributes$container = attributes === null || attributes === void 0 ? void 0 : attributes.container) !== null && _attributes$container !== void 0 ? _attributes$container : {},
|
|
45
|
-
containerClassName = _ref2.className,
|
|
46
|
-
restContainerAttributes = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
47
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
48
|
-
className: (0, _vkjs.classNames)("vkuiTooltip", styles["Tooltip--appearance-".concat(appearance)], className)
|
|
49
|
-
}, /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
|
|
50
|
-
className: (0, _vkjs.classNames)("vkuiTooltip__container", containerClassName),
|
|
51
|
-
ref: ref,
|
|
52
|
-
style: popperStyles.container
|
|
53
|
-
}, restContainerAttributes), arrow && /*#__PURE__*/React.createElement(_PopperArrow.PopperArrow, {
|
|
54
|
-
style: popperStyles.arrow,
|
|
55
|
-
attributes: attributes === null || attributes === void 0 ? void 0 : attributes.arrow,
|
|
56
|
-
arrowClassName: "vkuiTooltip__arrow"
|
|
57
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
58
|
-
className: "vkuiTooltip__content"
|
|
59
|
-
}, header && /*#__PURE__*/React.createElement(_Subhead.Subhead, {
|
|
60
|
-
weight: "2",
|
|
61
|
-
className: "vkuiTooltip__title"
|
|
62
|
-
}, header), text && /*#__PURE__*/React.createElement(_Subhead.Subhead, {
|
|
63
|
-
className: "vkuiTooltip__text"
|
|
64
|
-
}, text))));
|
|
65
|
-
});
|
|
31
|
+
var stylesAppearance = {
|
|
32
|
+
accent: "vkuiTooltip--appearance-accent",
|
|
33
|
+
neutral: "vkuiTooltip--appearance-neutral",
|
|
34
|
+
white: "vkuiTooltip--appearance-white",
|
|
35
|
+
black: "vkuiTooltip--appearance-black",
|
|
36
|
+
inversion: "vkuiTooltip--appearance-inversion"
|
|
37
|
+
};
|
|
66
38
|
function mapAlignX(x) {
|
|
67
39
|
switch (x) {
|
|
68
40
|
case 'left':
|
|
@@ -73,7 +45,7 @@ function mapAlignX(x) {
|
|
|
73
45
|
return '';
|
|
74
46
|
}
|
|
75
47
|
}
|
|
76
|
-
function
|
|
48
|
+
function getDefaultPlacement(alignX, alignY) {
|
|
77
49
|
return [alignY || 'bottom', mapAlignX(alignX || 'left')].filter(function (p) {
|
|
78
50
|
return !!p;
|
|
79
51
|
}).join('-');
|
|
@@ -85,150 +57,142 @@ function isVerticalPlacement(placement) {
|
|
|
85
57
|
/**
|
|
86
58
|
* @see https://vkcom.github.io/VKUI/#/Tooltip
|
|
87
59
|
*/
|
|
88
|
-
var Tooltip = function Tooltip(
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
appearance =
|
|
104
|
-
|
|
105
|
-
arrow =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
60
|
+
var Tooltip = function Tooltip(_ref) {
|
|
61
|
+
var children = _ref.children,
|
|
62
|
+
_ref$isShown = _ref.isShown,
|
|
63
|
+
isShownProp = _ref$isShown === void 0 ? true : _ref$isShown,
|
|
64
|
+
_ref$offsetX = _ref.offsetX,
|
|
65
|
+
offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,
|
|
66
|
+
_ref$offsetY = _ref.offsetY,
|
|
67
|
+
offsetY = _ref$offsetY === void 0 ? 15 : _ref$offsetY,
|
|
68
|
+
alignX = _ref.alignX,
|
|
69
|
+
alignY = _ref.alignY,
|
|
70
|
+
onClose = _ref.onClose,
|
|
71
|
+
_ref$cornerOffset = _ref.cornerOffset,
|
|
72
|
+
cornerOffset = _ref$cornerOffset === void 0 ? 0 : _ref$cornerOffset,
|
|
73
|
+
cornerAbsoluteOffset = _ref.cornerAbsoluteOffset,
|
|
74
|
+
_ref$appearance = _ref.appearance,
|
|
75
|
+
appearance = _ref$appearance === void 0 ? 'accent' : _ref$appearance,
|
|
76
|
+
_ref$arrow = _ref.arrow,
|
|
77
|
+
arrow = _ref$arrow === void 0 ? true : _ref$arrow,
|
|
78
|
+
placementProp = _ref.placement,
|
|
79
|
+
text = _ref.text,
|
|
80
|
+
header = _ref.header,
|
|
81
|
+
className = _ref.className,
|
|
82
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
83
|
+
var arrowRef = React.useRef(null);
|
|
111
84
|
var _React$useState = React.useState(null),
|
|
112
85
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
target
|
|
118
|
-
|
|
119
|
-
|
|
86
|
+
target = _React$useState2[0],
|
|
87
|
+
setTarget = _React$useState2[1];
|
|
88
|
+
/* eslint-disable no-restricted-properties */
|
|
89
|
+
var tooltipContainer = React.useMemo(function () {
|
|
90
|
+
return target === null || target === void 0 ? void 0 : target.closest("[".concat(_TooltipContainer.tooltipContainerAttr, "]"));
|
|
91
|
+
}, [target]);
|
|
92
|
+
var _useNavTransition = (0, _NavTransitionContext.useNavTransition)(),
|
|
93
|
+
entering = _useNavTransition.entering;
|
|
94
|
+
var isShown = isShownProp && tooltipContainer && !entering;
|
|
95
|
+
var placement = placementProp || getDefaultPlacement(alignX, alignY);
|
|
96
|
+
var isNotAutoPlacement = (0, _floating.checkIsNotAutoPlacement)(placement);
|
|
97
|
+
if (process.env.NODE_ENV === 'development') {
|
|
120
98
|
var multiChildren = React.Children.count(children) > 1;
|
|
121
99
|
// Empty children is a noop
|
|
122
100
|
var primitiveChild = (0, _vkjs.hasReactNode)(children) && (0, _typeof2.default)(children) !== 'object';
|
|
123
101
|
(multiChildren || primitiveChild) && warn(['children должен быть одним React элементом, получено', multiChildren && 'несколько', primitiveChild && JSON.stringify(children)].filter(Boolean).join(' '), 'error');
|
|
124
102
|
}
|
|
125
|
-
|
|
126
|
-
/* eslint-disable no-restricted-properties */
|
|
127
|
-
/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion*/
|
|
128
|
-
var tooltipContainer = React.useMemo(function () {
|
|
129
|
-
return target === null || target === void 0 ? void 0 : target.closest("[".concat(_TooltipContainer.tooltipContainerAttr, "]"));
|
|
130
|
-
}, [target]);
|
|
131
|
-
var strategy = React.useMemo(function () {
|
|
103
|
+
var floatingPositionStrategy = React.useMemo(function () {
|
|
132
104
|
return (target === null || target === void 0 ? void 0 : target.style.position) === 'fixed' ? 'fixed' : 'absolute';
|
|
133
105
|
}, [target]);
|
|
134
|
-
|
|
135
|
-
/* eslint-enable no-restricted-properties */
|
|
136
|
-
|
|
137
|
-
if (IS_DEV && target && !tooltipContainer) {
|
|
106
|
+
if (process.env.NODE_ENV === 'development' && target && !tooltipContainer) {
|
|
138
107
|
throw new Error('Use TooltipContainer for Tooltip outside Panel (see docs)');
|
|
139
108
|
}
|
|
140
|
-
var
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
109
|
+
var memoizedMiddlewares = React.useMemo(function () {
|
|
110
|
+
var middlewares = [(0, _floating.offsetMiddleware)({
|
|
111
|
+
crossAxis: offsetX,
|
|
112
|
+
mainAxis: offsetY
|
|
113
|
+
})];
|
|
114
|
+
|
|
115
|
+
// см. https://floating-ui.com/docs/flip#conflict-with-autoplacement
|
|
116
|
+
if (isNotAutoPlacement) {
|
|
117
|
+
middlewares.push((0, _floating.flipMiddleware)());
|
|
118
|
+
} else {
|
|
119
|
+
middlewares.push((0, _floating.autoPlacementMiddleware)({
|
|
120
|
+
alignment: placement ? (0, _floating.getAutoPlacementAlign)(placement) : null
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
middlewares.push((0, _floating.shiftMiddleware)());
|
|
124
|
+
|
|
125
|
+
// см. https://floating-ui.com/docs/arrow#order
|
|
151
126
|
if (arrow) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
});
|
|
158
|
-
modifiers.push({
|
|
127
|
+
middlewares.push((0, _floating.arrowMiddleware)({
|
|
128
|
+
element: arrowRef,
|
|
129
|
+
padding: 14
|
|
130
|
+
}));
|
|
131
|
+
middlewares.push({
|
|
159
132
|
name: 'arrowOffset',
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return;
|
|
133
|
+
fn: function fn(_ref2) {
|
|
134
|
+
var placement = _ref2.placement,
|
|
135
|
+
middlewareData = _ref2.middlewareData;
|
|
136
|
+
if (!middlewareData.arrow) {
|
|
137
|
+
return Promise.resolve({});
|
|
166
138
|
}
|
|
167
|
-
if (isVerticalPlacement(
|
|
139
|
+
if (isVerticalPlacement(placement)) {
|
|
168
140
|
if (cornerAbsoluteOffset !== undefined) {
|
|
169
|
-
|
|
170
|
-
} else {
|
|
171
|
-
|
|
172
|
-
if (((_state$modifiersData$ = state.modifiersData.arrow) === null || _state$modifiersData$ === void 0 ? void 0 : _state$modifiersData$.x) !== undefined) {
|
|
173
|
-
state.modifiersData.arrow.x += cornerOffset;
|
|
174
|
-
}
|
|
141
|
+
middlewareData.arrow.x = cornerAbsoluteOffset;
|
|
142
|
+
} else if (middlewareData.arrow.x !== undefined) {
|
|
143
|
+
middlewareData.arrow.x += cornerOffset;
|
|
175
144
|
}
|
|
176
145
|
} else {
|
|
177
146
|
if (cornerAbsoluteOffset !== undefined) {
|
|
178
|
-
|
|
179
|
-
} else {
|
|
180
|
-
|
|
181
|
-
if (((_state$modifiersData$2 = state.modifiersData.arrow) === null || _state$modifiersData$2 === void 0 ? void 0 : _state$modifiersData$2.y) !== undefined) {
|
|
182
|
-
state.modifiersData.arrow.y += cornerOffset;
|
|
183
|
-
}
|
|
147
|
+
middlewareData.arrow.y = cornerAbsoluteOffset;
|
|
148
|
+
} else if (middlewareData.arrow.y !== undefined) {
|
|
149
|
+
middlewareData.arrow.y += cornerOffset;
|
|
184
150
|
}
|
|
185
151
|
}
|
|
152
|
+
return Promise.resolve({});
|
|
186
153
|
}
|
|
187
154
|
});
|
|
188
155
|
}
|
|
189
|
-
return
|
|
190
|
-
}, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY]);
|
|
191
|
-
var
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
156
|
+
return middlewares;
|
|
157
|
+
}, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY, placement, isNotAutoPlacement]);
|
|
158
|
+
var _useFloating = (0, _floating.useFloating)({
|
|
159
|
+
strategy: floatingPositionStrategy,
|
|
160
|
+
placement: isNotAutoPlacement ? placement : undefined,
|
|
161
|
+
middleware: memoizedMiddlewares,
|
|
162
|
+
whileElementsMounted: _floating.autoUpdateFloatingElement
|
|
196
163
|
}),
|
|
197
|
-
|
|
198
|
-
|
|
164
|
+
floatingDataX = _useFloating.x,
|
|
165
|
+
floatingDataY = _useFloating.y,
|
|
166
|
+
resolvedPlacement = _useFloating.placement,
|
|
167
|
+
refs = _useFloating.refs,
|
|
168
|
+
arrowCoords = _useFloating.middlewareData.arrow;
|
|
199
169
|
var _useDOM = (0, _dom.useDOM)(),
|
|
200
170
|
document = _useDOM.document;
|
|
201
171
|
(0, _useGlobalEventListener.useGlobalEventListener)(document, 'click', isShown && onClose, {
|
|
202
172
|
capture: true,
|
|
203
173
|
passive: true
|
|
204
174
|
});
|
|
205
|
-
// NOTE: setting isShown to true used to trigger usePopper().forceUpdate()
|
|
206
|
-
|
|
207
175
|
var childRef = isDOMTypeElement(children) ? children.ref : /*#__PURE__*/React.isValidElement(children) ? children.props.getRootRef : null;
|
|
208
|
-
var patchedRef = (0, _useExternRef.useExternRef)(setTarget, childRef);
|
|
176
|
+
var patchedRef = (0, _useExternRef.useExternRef)(setTarget, refs.setReference, childRef);
|
|
209
177
|
var child = /*#__PURE__*/React.isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, (0, _defineProperty2.default)({}, isDOMTypeElement(children) ? 'ref' : 'getRootRef', patchedRef)) : children;
|
|
210
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, child, isShown && target != null && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/React.createElement(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
ref:
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
178
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, child, isShown && target != null && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/React.createElement("div", (0, _extends2.default)({}, restProps, {
|
|
179
|
+
className: (0, _vkjs.classNames)("vkuiTooltip", stylesAppearance[appearance], className)
|
|
180
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
181
|
+
ref: refs.setFloating,
|
|
182
|
+
style: (0, _floating.convertFloatingDataToReactCSSProperties)(floatingPositionStrategy, floatingDataX, floatingDataY)
|
|
183
|
+
}, arrow && /*#__PURE__*/React.createElement(_PopperArrow.PopperArrow, {
|
|
184
|
+
coords: arrowCoords,
|
|
185
|
+
placement: resolvedPlacement,
|
|
186
|
+
arrowClassName: "vkuiTooltip__arrow",
|
|
187
|
+
getRootRef: arrowRef
|
|
188
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
189
|
+
className: "vkuiTooltip__content"
|
|
190
|
+
}, header && /*#__PURE__*/React.createElement(_Subhead.Subhead, {
|
|
191
|
+
weight: "2",
|
|
192
|
+
className: "vkuiTooltip__title"
|
|
193
|
+
}, header), text && /*#__PURE__*/React.createElement(_Subhead.Subhead, {
|
|
194
|
+
className: "vkuiTooltip__text"
|
|
195
|
+
}, text)))), tooltipContainer));
|
|
225
196
|
};
|
|
226
197
|
exports.Tooltip = Tooltip;
|
|
227
|
-
var styles = {
|
|
228
|
-
"Tooltip--appearance-accent": "vkuiTooltip--appearance-accent",
|
|
229
|
-
"Tooltip--appearance-white": "vkuiTooltip--appearance-white",
|
|
230
|
-
"Tooltip--appearance-black": "vkuiTooltip--appearance-black",
|
|
231
|
-
"Tooltip--appearance-inversion": "vkuiTooltip--appearance-inversion",
|
|
232
|
-
"Tooltip--appearance-neutral": "vkuiTooltip--appearance-neutral"
|
|
233
|
-
};
|
|
234
198
|
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["isDOMTypeElement","element","React","isValidElement","type","warn","warnOnce","IS_DEV","process","env","NODE_ENV","SimpleTooltip","forwardRef","ref","appearance","header","text","arrow","style","popperStyles","attributes","className","container","containerClassName","restContainerAttributes","classNames","styles","mapAlignX","x","getPlacement","alignX","alignY","filter","p","join","isVerticalPlacement","placement","startsWith","Tooltip","children","isShown","_isShown","offsetX","offsetY","onClose","cornerOffset","cornerAbsoluteOffset","restProps","useNavTransition","entering","useState","tooltipRef","setTooltipRef","target","setTarget","multiChildren","Children","count","primitiveChild","hasReactNode","JSON","stringify","Boolean","tooltipContainer","useMemo","closest","tooltipContainerAttr","strategy","position","Error","modifiers","name","options","offset","push","padding","enabled","phase","fn","state","modifiersData","undefined","y","_placement","usePopper","useDOM","document","useGlobalEventListener","capture","passive","childRef","props","getRootRef","patchedRef","useExternRef","child","cloneElement","ReactDOM","createPortal","el","popper"],"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { useNavTransition } from '../NavTransitionContext/NavTransitionContext';\nimport { PopperArrow } from '../PopperArrow/PopperArrow';\nimport { Modifier, usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport { tooltipContainerAttr } from './TooltipContainer';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useDOM } from '../../lib/dom';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { HasRootRef } from '../../types';\nimport styles from './Tooltip.module.css';\n\ninterface SimpleTooltipProps extends Partial<TooltipProps> {\n target?: HTMLDivElement;\n style?: {\n arrow: React.CSSProperties;\n container: React.CSSProperties;\n };\n attributes?: {\n arrow: React.HTMLAttributes<HTMLDivElement> | null;\n container: React.HTMLAttributes<HTMLDivElement> | null;\n };\n className?: string;\n}\n\n/**\n * Перебиваем `ref`.\n *\n * В оригинальном `React.DOMElement` задаётся `React.LegacyRef<T>`, в котором есть `string`.\n * Когда как `{ ref: \"string\" }` уже давно депрекейтнут.\n */\ninterface DOMElement<P extends React.HTMLAttributes<T> | React.SVGAttributes<T>, T extends Element>\n extends React.DOMElement<P, T> {\n ref: React.Ref<T>;\n}\n\nconst isDOMTypeElement = <\n P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,\n T extends Element,\n>(\n element: React.ReactElement,\n): element is DOMElement<P, T> => {\n return React.isValidElement(element) && typeof element.type === 'string';\n};\n\nconst warn = warnOnce('Tooltip');\nconst IS_DEV = process.env.NODE_ENV === 'development';\n\nconst SimpleTooltip = React.forwardRef<HTMLDivElement, SimpleTooltipProps>(function SimpleTooltip(\n { appearance = 'accent', header, text, arrow, style: popperStyles = {}, attributes, className },\n ref,\n) {\n const { className: containerClassName, ...restContainerAttributes } = attributes?.container ?? {};\n\n return (\n <div\n className={classNames(\n styles['Tooltip'],\n styles[`Tooltip--appearance-${appearance}`],\n className,\n )}\n >\n <div\n className={classNames(styles['Tooltip__container'], containerClassName)}\n ref={ref}\n style={popperStyles.container}\n {...restContainerAttributes}\n >\n {arrow && (\n <PopperArrow\n style={popperStyles.arrow}\n attributes={attributes?.arrow}\n arrowClassName={styles['Tooltip__arrow']}\n />\n )}\n <div className={styles['Tooltip__content']}>\n {header && (\n <Subhead weight=\"2\" className={styles['Tooltip__title']}>\n {header}\n </Subhead>\n )}\n {text && <Subhead className={styles['Tooltip__text']}>{text}</Subhead>}\n </div>\n </div>\n </div>\n );\n});\n\nexport interface TooltipProps {\n /**\n * **Важно**: если в `children` передан React-компонент, то необходимо убедиться в том, что он поддерживает\n * свойство `getRootRef`, которое должно возвращаться ссылку на корневой DOM-элемент компонента,\n * иначе тултип показан не будет. Если передан React-element, то такой проблемы нет.\n */\n children: React.ReactElement<HasRootRef<any>> | React.ReactElement;\n /**\n * Стиль отображения подсказки\n */\n appearance?: 'accent' | 'neutral' | 'white' | 'black' | 'inversion';\n /**\n * Если передан `false`, то рисуется просто `children`.\n */\n isShown?: boolean;\n /**\n * Текст тултипа.\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа.\n */\n header?: React.ReactNode;\n /**\n * Положение по горизонтали (прижатие к левому или правому краю `children`).\n * Если не задано, позиция по горизонтали определятся автоматически\n */\n alignX?: 'center' | 'left' | 'right';\n /**\n * Положение по вертикали (расположение над или под `children`).\n * Если не задано, позиция по вертикали определятся автоматически\n */\n alignY?: 'top' | 'bottom';\n /**\n * Сдвиг по горизонтали (относительно портала, в котором рисуется тултип).\n */\n offsetX?: number;\n /**\n * Сдвиг по вертикали (относительно портала, в котором рисуется тултип).\n */\n offsetY?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Сдвиг стрелочки относительно центра дочернего элемента.\n */\n cornerOffset?: number;\n /**\n * Сдвиг стрелочки относительно ширины тултипа\n */\n cornerAbsoluteOffset?: number;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: () => void;\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Пользовательские css-классы, будут добавлены на root-элемент\n */\n className?: string;\n}\n\nfunction mapAlignX(x: TooltipProps['alignX']) {\n switch (x) {\n case 'left':\n return 'start';\n case 'right':\n return 'end';\n default:\n return '';\n }\n}\nfunction getPlacement(alignX: TooltipProps['alignX'], alignY: TooltipProps['alignY']): Placement {\n return [alignY || 'bottom', mapAlignX(alignX || 'left')]\n .filter((p) => !!p)\n .join('-') as Placement;\n}\nfunction isVerticalPlacement(placement: Placement) {\n return placement.startsWith('top') || placement.startsWith('bottom');\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tooltip\n */\nexport const Tooltip = ({\n children,\n isShown: _isShown = true,\n offsetX = 0,\n offsetY = 15,\n alignX,\n alignY,\n onClose,\n cornerOffset = 0,\n cornerAbsoluteOffset,\n appearance,\n arrow = true,\n placement,\n ...restProps\n}: TooltipProps) => {\n const { entering } = useNavTransition();\n const isShown = _isShown && !entering;\n const [tooltipRef, setTooltipRef] = React.useState<HTMLElement | null>(null);\n const [target, setTarget] = React.useState<HTMLElement>();\n\n if (IS_DEV) {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild = hasReactNode(children) && typeof children !== 'object';\n (multiChildren || primitiveChild) &&\n warn(\n [\n 'children должен быть одним React элементом, получено',\n multiChildren && 'несколько',\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(' '),\n 'error',\n );\n }\n\n /* eslint-disable no-restricted-properties */\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion*/\n const tooltipContainer = React.useMemo(\n () => target?.closest(`[${tooltipContainerAttr}]`) as HTMLDivElement,\n [target],\n );\n const strategy = React.useMemo(\n () => (target?.style.position === 'fixed' ? 'fixed' : 'absolute'),\n [target],\n );\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion*/\n /* eslint-enable no-restricted-properties */\n\n if (IS_DEV && target && !tooltipContainer) {\n throw new Error('Use TooltipContainer for Tooltip outside Panel (see docs)');\n }\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: 'offset',\n options: {\n offset: [offsetX, offsetY],\n },\n },\n {\n name: 'preventOverflow',\n },\n {\n name: 'flip',\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: 'arrow',\n options: {\n padding: 14,\n },\n });\n modifiers.push({\n name: 'arrowOffset',\n enabled: true,\n phase: 'main',\n fn({ state }) {\n if (!state.modifiersData.arrow) {\n return;\n }\n if (isVerticalPlacement(state.placement)) {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.x = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.x !== undefined) {\n state.modifiersData.arrow.x += cornerOffset;\n }\n }\n } else {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.y = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.y !== undefined) {\n state.modifiersData.arrow.y += cornerOffset;\n }\n }\n }\n },\n });\n }\n\n return modifiers;\n }, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY]);\n\n const _placement = placement ?? getPlacement(alignX, alignY);\n const { styles: popperStyles, attributes } = usePopper(target, tooltipRef, {\n strategy,\n placement: _placement,\n modifiers,\n });\n\n const { document } = useDOM();\n useGlobalEventListener(document, 'click', isShown && onClose, {\n capture: true,\n passive: true,\n });\n // NOTE: setting isShown to true used to trigger usePopper().forceUpdate()\n\n const childRef = isDOMTypeElement<React.HTMLAttributes<HTMLElement>, HTMLElement>(children)\n ? children.ref\n : React.isValidElement<HasRootRef<HTMLElement>>(children)\n ? children.props.getRootRef\n : null;\n const patchedRef = useExternRef(setTarget, childRef);\n const child = React.isValidElement(children)\n ? React.cloneElement(children, {\n [isDOMTypeElement(children) ? 'ref' : 'getRootRef']: patchedRef,\n })\n : children;\n\n return (\n <React.Fragment>\n {child}\n {isShown &&\n target != null &&\n ReactDOM.createPortal(\n <SimpleTooltip\n {...restProps}\n appearance={appearance}\n arrow={arrow}\n ref={(el) => setTooltipRef(el)}\n style={{\n arrow: popperStyles.arrow,\n container: popperStyles.popper,\n }}\n attributes={{\n arrow: attributes.arrow ?? null,\n container: attributes.popper ?? null,\n }}\n />,\n tooltipContainer,\n )}\n </React.Fragment>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["isDOMTypeElement","element","React","isValidElement","type","warn","warnOnce","stylesAppearance","accent","neutral","white","black","inversion","mapAlignX","x","getDefaultPlacement","alignX","alignY","filter","p","join","isVerticalPlacement","placement","startsWith","Tooltip","children","isShown","isShownProp","offsetX","offsetY","onClose","cornerOffset","cornerAbsoluteOffset","appearance","arrow","placementProp","text","header","className","restProps","arrowRef","useRef","useState","target","setTarget","tooltipContainer","useMemo","closest","tooltipContainerAttr","useNavTransition","entering","isNotAutoPlacement","checkIsNotAutoPlacement","process","env","NODE_ENV","multiChildren","Children","count","primitiveChild","hasReactNode","JSON","stringify","Boolean","floatingPositionStrategy","style","position","Error","memoizedMiddlewares","middlewares","offsetMiddleware","crossAxis","mainAxis","push","flipMiddleware","autoPlacementMiddleware","alignment","getAutoPlacementAlign","shiftMiddleware","arrowMiddleware","padding","name","fn","middlewareData","Promise","resolve","undefined","y","useFloating","strategy","middleware","whileElementsMounted","autoUpdateFloatingElement","floatingDataX","floatingDataY","resolvedPlacement","refs","arrowCoords","useDOM","document","useGlobalEventListener","capture","passive","childRef","ref","props","getRootRef","patchedRef","useExternRef","setReference","child","cloneElement","ReactDOM","createPortal","classNames","setFloating","convertFloatingDataToReactCSSProperties"],"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { useNavTransition } from '../NavTransitionContext/NavTransitionContext';\nimport { PopperArrow } from '../PopperArrow/PopperArrow';\nimport {\n type Placement,\n type PlacementWithAuto,\n type UseFloatingMiddleware,\n useFloating,\n checkIsNotAutoPlacement,\n convertFloatingDataToReactCSSProperties,\n offsetMiddleware,\n shiftMiddleware,\n flipMiddleware,\n arrowMiddleware,\n autoUpdateFloatingElement,\n getAutoPlacementAlign,\n autoPlacementMiddleware,\n} from '../../lib/floating';\nimport { tooltipContainerAttr } from './TooltipContainer';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useDOM } from '../../lib/dom';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { HasRootRef } from '../../types';\nimport styles from './Tooltip.module.css';\n\n/**\n * Перебиваем `ref`.\n *\n * В оригинальном `React.DOMElement` задаётся `React.LegacyRef<T>`, в котором есть `string`.\n * Когда как `{ ref: \"string\" }` уже давно депрекейтнут.\n */\ninterface DOMElement<P extends React.HTMLAttributes<T> | React.SVGAttributes<T>, T extends Element>\n extends React.DOMElement<P, T> {\n ref: React.Ref<T>;\n}\n\nconst isDOMTypeElement = <\n P extends React.HTMLAttributes<T> | React.SVGAttributes<T>,\n T extends Element,\n>(\n element: React.ReactElement,\n): element is DOMElement<P, T> => {\n return React.isValidElement(element) && typeof element.type === 'string';\n};\n\nconst warn = warnOnce('Tooltip');\n\nconst stylesAppearance = {\n accent: styles['Tooltip--appearance-accent'],\n neutral: styles['Tooltip--appearance-neutral'],\n white: styles['Tooltip--appearance-white'],\n black: styles['Tooltip--appearance-black'],\n inversion: styles['Tooltip--appearance-inversion'],\n};\n\nexport interface TooltipProps {\n /**\n * **Важно**: если в `children` передан React-компонент, то необходимо убедиться в том, что он поддерживает\n * свойство `getRootRef`, которое должно возвращаться ссылку на корневой DOM-элемент компонента,\n * иначе тултип показан не будет. Если передан React-element, то такой проблемы нет.\n */\n children: React.ReactElement<HasRootRef<any>> | React.ReactElement;\n /**\n * Стиль отображения подсказки\n */\n appearance?: 'accent' | 'neutral' | 'white' | 'black' | 'inversion';\n /**\n * Если передан `false`, то рисуется просто `children`.\n */\n isShown?: boolean;\n /**\n * Текст тултипа.\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа.\n */\n header?: React.ReactNode;\n /**\n * Положение по горизонтали (прижатие к левому или правому краю `children`).\n * Если не задано, позиция по горизонтали определятся автоматически\n */\n alignX?: 'center' | 'left' | 'right';\n /**\n * Положение по вертикали (расположение над или под `children`).\n * Если не задано, позиция по вертикали определятся автоматически\n */\n alignY?: 'top' | 'bottom';\n /**\n * Сдвиг по горизонтали (относительно портала, в котором рисуется тултип).\n */\n offsetX?: number;\n /**\n * Сдвиг по вертикали (относительно портала, в котором рисуется тултип).\n */\n offsetY?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Сдвиг стрелочки относительно центра дочернего элемента.\n */\n cornerOffset?: number;\n /**\n * Сдвиг стрелочки относительно ширины тултипа\n */\n cornerAbsoluteOffset?: number;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: () => void;\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: PlacementWithAuto;\n /**\n * Пользовательские css-классы, будут добавлены на root-элемент\n */\n className?: string;\n}\n\nfunction mapAlignX(x: TooltipProps['alignX']) {\n switch (x) {\n case 'left':\n return 'start';\n case 'right':\n return 'end';\n default:\n return '';\n }\n}\nfunction getDefaultPlacement(\n alignX: TooltipProps['alignX'],\n alignY: TooltipProps['alignY'],\n): Placement {\n return [alignY || 'bottom', mapAlignX(alignX || 'left')]\n .filter((p) => !!p)\n .join('-') as Placement;\n}\nfunction isVerticalPlacement(placement: PlacementWithAuto) {\n return placement.startsWith('top') || placement.startsWith('bottom');\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tooltip\n */\nexport const Tooltip = ({\n children,\n isShown: isShownProp = true,\n offsetX = 0,\n offsetY = 15,\n alignX,\n alignY,\n onClose,\n cornerOffset = 0,\n cornerAbsoluteOffset,\n appearance = 'accent',\n arrow = true,\n placement: placementProp,\n text,\n header,\n className,\n ...restProps\n}: TooltipProps) => {\n const arrowRef = React.useRef<HTMLDivElement>(null);\n const [target, setTarget] = React.useState<HTMLElement | null>(null);\n /* eslint-disable no-restricted-properties */\n const tooltipContainer = React.useMemo(\n () => target?.closest<HTMLDivElement>(`[${tooltipContainerAttr}]`),\n [target],\n );\n const { entering } = useNavTransition();\n const isShown = isShownProp && tooltipContainer && !entering;\n\n const placement = placementProp || getDefaultPlacement(alignX, alignY);\n const isNotAutoPlacement = checkIsNotAutoPlacement(placement);\n\n if (process.env.NODE_ENV === 'development') {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild = hasReactNode(children) && typeof children !== 'object';\n (multiChildren || primitiveChild) &&\n warn(\n [\n 'children должен быть одним React элементом, получено',\n multiChildren && 'несколько',\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(' '),\n 'error',\n );\n }\n\n const floatingPositionStrategy = React.useMemo(\n () => (target?.style.position === 'fixed' ? 'fixed' : 'absolute'),\n [target],\n );\n\n if (process.env.NODE_ENV === 'development' && target && !tooltipContainer) {\n throw new Error('Use TooltipContainer for Tooltip outside Panel (see docs)');\n }\n\n const memoizedMiddlewares = React.useMemo(() => {\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetX,\n mainAxis: offsetY,\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({\n alignment: placement ? getAutoPlacementAlign(placement) : null,\n }),\n );\n }\n\n middlewares.push(shiftMiddleware());\n\n // см. https://floating-ui.com/docs/arrow#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware({\n element: arrowRef,\n padding: 14,\n }),\n );\n middlewares.push({\n name: 'arrowOffset',\n fn({ placement, middlewareData }) {\n if (!middlewareData.arrow) {\n return Promise.resolve({});\n }\n if (isVerticalPlacement(placement)) {\n if (cornerAbsoluteOffset !== undefined) {\n middlewareData.arrow.x = cornerAbsoluteOffset;\n } else if (middlewareData.arrow.x !== undefined) {\n middlewareData.arrow.x += cornerOffset;\n }\n } else {\n if (cornerAbsoluteOffset !== undefined) {\n middlewareData.arrow.y = cornerAbsoluteOffset;\n } else if (middlewareData.arrow.y !== undefined) {\n middlewareData.arrow.y += cornerOffset;\n }\n }\n return Promise.resolve({});\n },\n });\n }\n\n return middlewares;\n }, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY, placement, isNotAutoPlacement]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n placement: resolvedPlacement,\n refs,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n strategy: floatingPositionStrategy,\n placement: isNotAutoPlacement ? placement : undefined,\n middleware: memoizedMiddlewares,\n whileElementsMounted: autoUpdateFloatingElement,\n });\n\n const { document } = useDOM();\n useGlobalEventListener(document, 'click', isShown && onClose, {\n capture: true,\n passive: true,\n });\n\n const childRef = isDOMTypeElement<React.HTMLAttributes<HTMLElement>, HTMLElement>(children)\n ? children.ref\n : React.isValidElement<HasRootRef<HTMLElement>>(children)\n ? children.props.getRootRef\n : null;\n const patchedRef = useExternRef<HTMLElement>(setTarget, refs.setReference, childRef);\n const child = React.isValidElement(children)\n ? React.cloneElement(children, {\n [isDOMTypeElement(children) ? 'ref' : 'getRootRef']: patchedRef,\n })\n : children;\n\n return (\n <React.Fragment>\n {child}\n {isShown &&\n target != null &&\n ReactDOM.createPortal(\n <div\n {...restProps}\n className={classNames(styles['Tooltip'], stylesAppearance[appearance], className)}\n >\n <div\n ref={refs.setFloating}\n style={convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n )}\n >\n {arrow && (\n <PopperArrow\n coords={arrowCoords}\n placement={resolvedPlacement}\n arrowClassName={styles['Tooltip__arrow']}\n getRootRef={arrowRef}\n />\n )}\n <div className={styles['Tooltip__content']}>\n {header && (\n <Subhead weight=\"2\" className={styles['Tooltip__title']}>\n {header}\n </Subhead>\n )}\n {text && <Subhead className={styles['Tooltip__text']}>{text}</Subhead>}\n </div>\n </div>\n </div>,\n tooltipContainer,\n )}\n </React.Fragment>\n );\n};\n"],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ var _supportEvents = require("../../lib/supportEvents");
|
|
|
15
15
|
var _platform = require("../../lib/platform");
|
|
16
16
|
var _Touch = require("../Touch/Touch");
|
|
17
17
|
var _ConfigProviderContext = require("../ConfigProvider/ConfigProviderContext");
|
|
18
|
-
var
|
|
18
|
+
var _SplitColContext = require("../SplitCol/SplitColContext");
|
|
19
19
|
var _dom = require("../../lib/dom");
|
|
20
20
|
var _ScrollContext = require("../AppRoot/ScrollContext");
|
|
21
21
|
var _NavTransitionContext = require("../NavTransitionContext/NavTransitionContext");
|
|
@@ -74,7 +74,7 @@ var View = function View(_ref) {
|
|
|
74
74
|
document = _useDOM.document;
|
|
75
75
|
var scroll = (0, _ScrollContext.useScroll)();
|
|
76
76
|
var configProvider = (0, _ConfigProviderContext.useConfigProvider)();
|
|
77
|
-
var splitCol = (0,
|
|
77
|
+
var splitCol = (0, _SplitColContext.useSplitCol)();
|
|
78
78
|
var platform = (0, _usePlatform.usePlatform)();
|
|
79
79
|
var _React$useState = React.useState(false),
|
|
80
80
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|