@vkontakte/vkui 4.34.1 → 4.34.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +20 -19
- package/.cache/ts/src/components/Textarea/Textarea.d.ts +3 -0
- package/dist/cjs/components/AppRoot/AppRoot.js +1 -0
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +6 -4
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +1 -0
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/Input/Input.js +1 -0
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -0
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -0
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +1 -0
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +1 -0
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js +5 -3
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.js +1 -0
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/RangeSlider/UniversalSlider.js +1 -0
- package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +1 -0
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -0
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -0
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +5 -4
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +1 -0
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/Button/Button.js +6 -4
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +1 -0
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -0
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/Input/Input.js +1 -0
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +1 -0
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +1 -0
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Panel/Panel.js +1 -0
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +1 -0
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/Popper/Popper.js +5 -3
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Radio/Radio.js +1 -0
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/RangeSlider/UniversalSlider.js +1 -0
- package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/components/Select/Select.js +1 -0
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -0
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +1 -0
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +3 -0
- package/dist/components/Textarea/Textarea.js +5 -4
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components.css +2 -2
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +1 -0
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +1 -1
- package/dist/cssm/components/Button/Button.js +6 -4
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/Input/Input.js +1 -0
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -0
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -0
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +1 -0
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -0
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +5 -3
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +1 -0
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -0
- package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -0
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -0
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.css +1 -1
- package/dist/cssm/components/Textarea/Textarea.d.ts +3 -0
- package/dist/cssm/components/Textarea/Textarea.js +5 -4
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/styles/components.css +2 -2
- package/dist/vkui.css +2 -2
- package/dist/vkui.css.map +1 -1
- package/package.json +1 -1
- package/src/components/AppRoot/AppRoot.tsx +2 -0
- package/src/components/Button/Button.css +0 -4
- package/src/components/Button/Button.tsx +4 -2
- package/src/components/Button/Readme.md +30 -59
- package/src/components/ChipsSelect/ChipsSelect.tsx +2 -0
- package/src/components/Group/Readme.md +1 -1
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +2 -0
- package/src/components/Input/Input.tsx +2 -0
- package/src/components/ModalCardBase/ModalCardBase.tsx +2 -0
- package/src/components/NativeSelect/NativeSelect.tsx +2 -0
- package/src/components/Panel/Panel.tsx +2 -0
- package/src/components/PanelHeader/PanelHeader.tsx +2 -0
- package/src/components/Popper/Popper.tsx +4 -2
- package/src/components/Radio/Radio.tsx +2 -0
- package/src/components/RangeSlider/UniversalSlider.tsx +2 -0
- package/src/components/Select/Select.tsx +2 -0
- package/src/components/SelectMimicry/SelectMimicry.tsx +2 -0
- package/src/components/SimpleCell/SimpleCell.tsx +2 -0
- package/src/components/Switch/Switch.css +6 -2
- package/src/components/Textarea/Textarea.tsx +5 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/PanelHeader/PanelHeader.tsx"],"names":["React","usePlatform","getClassName","classNames","warnOnce","FixedLayout","Separator","Platform","VKCOM","ConfigProviderContext","WebviewType","SizeType","withAdaptivity","Text","TooltipContainer","ModalRootContext","Spacing","PanelHeaderIn","before","after","separator","children","useContext","webviewType","isInsideModal","platform","INTERNAL","warn","PanelHeaderComponent","propsBefore","left","propsAfter","right","visor","transparent","shadow","getRef","getRootRef","sizeX","sizeY","fixed","restProps","needShadow","REGULAR","isFixed","undefined","process","env","NODE_ENV","innerProps","VKAPPS","PanelHeader"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { FixedLayout } from \"../FixedLayout/FixedLayout\";\nimport { Separator } from \"../Separator/Separator\";\nimport { Platform, VKCOM } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport {\n ConfigProviderContext,\n WebviewType,\n} from \"../ConfigProvider/ConfigProviderContext\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { ModalRootContext } from \"../ModalRoot/ModalRootContext\";\nimport { Spacing } from \"../Spacing/Spacing\";\nimport \"./PanelHeader.css\";\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps {\n before?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `before`\n */\n left?: React.ReactNode;\n after?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `after`\n */\n right?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n}: PanelHeaderProps) => {\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n return (\n <React.Fragment>\n <TooltipContainer fixed vkuiClass=\"PanelHeader__in\">\n <div vkuiClass=\"PanelHeader__before\">{before}</div>\n <div vkuiClass=\"PanelHeader__content\">\n {platform === VKCOM ? (\n <Text weight=\"2\">{children}</Text>\n ) : (\n <span vkuiClass=\"PanelHeader__content-in\">{children}</span>\n )}\n </div>\n <div vkuiClass=\"PanelHeader__after\">\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === VKCOM && <Separator wide />}\n </React.Fragment>\n );\n};\n\nconst warn = warnOnce(\"PanelHeader\");\nconst PanelHeaderComponent = ({\n // TODO: поправить перед 5.0.0\n before: propsBefore,\n left,\n after: propsAfter,\n right,\n // /end TODO\n children,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n sizeX,\n sizeY,\n fixed,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const needShadow = shadow && sizeX === SizeType.REGULAR;\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n // TODO: удалить перед 5.0.0\n const before = propsBefore ?? left;\n const after = propsAfter ?? right;\n\n if (process.env.NODE_ENV === \"development\") {\n right &&\n warn(\n \"Свойство right устарелo и будет удалено в 5.0.0. Используйте after.\"\n );\n left &&\n warn(\n \"Свойство left устарелo и будет удалено в 5.0.0. Используйте before.\"\n );\n }\n // /end TODO\n\n const innerProps = { before, after, separator, children };\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"PanelHeader\", platform),\n {\n \"PanelHeader--trnsp\": transparent,\n \"PanelHeader--shadow\": needShadow,\n \"PanelHeader--vis\": visor,\n \"PanelHeader--sep\": separator && visor,\n \"PanelHeader--vkapps\":\n webviewType === WebviewType.VKAPPS && !isInsideModal,\n \"PanelHeader--no-before\": !before,\n \"PanelHeader--no-after\": !after,\n \"PanelHeader--fixed\": isFixed,\n },\n `PanelHeader--sizeX-${sizeX}`\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n vkuiClass=\"PanelHeader__fixed\"\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn {...innerProps} />\n </FixedLayout>\n ) : (\n <PanelHeaderIn {...innerProps} />\n )}\n {separator &&\n visor &&\n platform !== VKCOM &&\n (sizeX === SizeType.REGULAR ? <Spacing size={16} /> : <Separator />)}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = withAdaptivity(PanelHeaderComponent, {\n sizeX: true,\n sizeY: true,\n});\n"],"file":"PanelHeader.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/PanelHeader/PanelHeader.tsx"],"names":["React","usePlatform","getClassName","classNames","warnOnce","FixedLayout","Separator","Platform","VKCOM","ConfigProviderContext","WebviewType","SizeType","withAdaptivity","Text","TooltipContainer","ModalRootContext","Spacing","PanelHeaderIn","before","after","separator","children","useContext","webviewType","isInsideModal","platform","INTERNAL","warn","PanelHeaderComponent","propsBefore","left","propsAfter","right","visor","transparent","shadow","getRef","getRootRef","sizeX","sizeY","fixed","restProps","needShadow","REGULAR","isFixed","undefined","process","env","NODE_ENV","innerProps","VKAPPS","PanelHeader","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { FixedLayout } from \"../FixedLayout/FixedLayout\";\nimport { Separator } from \"../Separator/Separator\";\nimport { Platform, VKCOM } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport {\n ConfigProviderContext,\n WebviewType,\n} from \"../ConfigProvider/ConfigProviderContext\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { ModalRootContext } from \"../ModalRoot/ModalRootContext\";\nimport { Spacing } from \"../Spacing/Spacing\";\nimport \"./PanelHeader.css\";\n\nexport interface PanelHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps {\n before?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `before`\n */\n left?: React.ReactNode;\n after?: React.ReactNode;\n /**\n * @deprecated Будет удалено в 5.0.0. Используйте `after`\n */\n right?: React.ReactNode;\n separator?: boolean;\n transparent?: boolean;\n shadow?: boolean;\n /**\n * Если `false`, то шапка будет нулевой высоты и контент панели \"залезет\" под неё\n */\n visor?: boolean;\n /**\n * Если `false`, то шапка будет в потоке. По умолчанию `true`, но если платформа vkcom, то по умолчанию `false`.\n */\n fixed?: boolean;\n}\n\nconst PanelHeaderIn = ({\n before,\n after,\n separator,\n children,\n}: PanelHeaderProps) => {\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const platform = usePlatform();\n\n return (\n <React.Fragment>\n <TooltipContainer fixed vkuiClass=\"PanelHeader__in\">\n <div vkuiClass=\"PanelHeader__before\">{before}</div>\n <div vkuiClass=\"PanelHeader__content\">\n {platform === VKCOM ? (\n <Text weight=\"2\">{children}</Text>\n ) : (\n <span vkuiClass=\"PanelHeader__content-in\">{children}</span>\n )}\n </div>\n <div vkuiClass=\"PanelHeader__after\">\n {(webviewType === WebviewType.INTERNAL || isInsideModal) && after}\n </div>\n </TooltipContainer>\n {separator && platform === VKCOM && <Separator wide />}\n </React.Fragment>\n );\n};\n\nconst warn = warnOnce(\"PanelHeader\");\nconst PanelHeaderComponent = ({\n // TODO: поправить перед 5.0.0\n before: propsBefore,\n left,\n after: propsAfter,\n right,\n // /end TODO\n children,\n separator = true,\n visor = true,\n transparent = false,\n shadow,\n getRef,\n getRootRef,\n sizeX,\n sizeY,\n fixed,\n ...restProps\n}: PanelHeaderProps) => {\n const platform = usePlatform();\n const { webviewType } = React.useContext(ConfigProviderContext);\n const { isInsideModal } = React.useContext(ModalRootContext);\n const needShadow = shadow && sizeX === SizeType.REGULAR;\n let isFixed = fixed !== undefined ? fixed : platform !== Platform.VKCOM;\n\n // TODO: удалить перед 5.0.0\n const before = propsBefore ?? left;\n const after = propsAfter ?? right;\n\n if (process.env.NODE_ENV === \"development\") {\n right &&\n warn(\n \"Свойство right устарелo и будет удалено в 5.0.0. Используйте after.\"\n );\n left &&\n warn(\n \"Свойство left устарелo и будет удалено в 5.0.0. Используйте before.\"\n );\n }\n // /end TODO\n\n const innerProps = { before, after, separator, children };\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"PanelHeader\", platform),\n {\n \"PanelHeader--trnsp\": transparent,\n \"PanelHeader--shadow\": needShadow,\n \"PanelHeader--vis\": visor,\n \"PanelHeader--sep\": separator && visor,\n \"PanelHeader--vkapps\":\n webviewType === WebviewType.VKAPPS && !isInsideModal,\n \"PanelHeader--no-before\": !before,\n \"PanelHeader--no-after\": !after,\n \"PanelHeader--fixed\": isFixed,\n },\n `PanelHeader--sizeX-${sizeX}`\n )}\n ref={isFixed ? getRootRef : getRef}\n >\n {isFixed ? (\n <FixedLayout\n vkuiClass=\"PanelHeader__fixed\"\n vertical=\"top\"\n getRootRef={getRef}\n >\n <PanelHeaderIn {...innerProps} />\n </FixedLayout>\n ) : (\n <PanelHeaderIn {...innerProps} />\n )}\n {separator &&\n visor &&\n platform !== VKCOM &&\n (sizeX === SizeType.REGULAR ? <Spacing size={16} /> : <Separator />)}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeader\n */\nexport const PanelHeader = withAdaptivity(PanelHeaderComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nPanelHeader.displayName = \"PanelHeader\";\n"],"file":"PanelHeader.js"}
|
|
@@ -39,8 +39,7 @@ export var Popper = function Popper(_ref) {
|
|
|
39
39
|
_ref$forcePortal = _ref.forcePortal,
|
|
40
40
|
forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
|
|
41
41
|
compStyles = _ref.style,
|
|
42
|
-
|
|
43
|
-
customModifiers = _ref$customModifiers === void 0 ? [] : _ref$customModifiers,
|
|
42
|
+
customModifiers = _ref.customModifiers,
|
|
44
43
|
restProps = _objectWithoutProperties(_ref, _excluded);
|
|
45
44
|
|
|
46
45
|
var _React$useState = React.useState(null),
|
|
@@ -97,7 +96,10 @@ export var Popper = function Popper(_ref) {
|
|
|
97
96
|
modifiers.push(_sameWidth);
|
|
98
97
|
}
|
|
99
98
|
|
|
100
|
-
|
|
99
|
+
if (customModifiers) {
|
|
100
|
+
modifiers.push.apply(modifiers, _toConsumableArray(customModifiers));
|
|
101
|
+
}
|
|
102
|
+
|
|
101
103
|
return modifiers;
|
|
102
104
|
}, [arrow, sameWidth, smallTargetOffsetSkidding, offsetSkidding, offsetDistance, customModifiers]);
|
|
103
105
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined"],"mappings":";;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,SAAT,QAAoC,cAApC;AACA,SAASC,aAAT;AAEA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,YAAT;AACA,SAASC,yBAAT;AACA;AAoDA,IAAMC,aAAa,GAAG,CAAtB;AACA,IAAMC,WAAW,GAAG,EAApB;AACA,IAAMC,YAAY,GAAG,CAArB;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAeH;AAAA;;AAAA,MAdjBC,SAciB,QAdjBA,SAciB;AAAA,MAbjBC,QAaiB,QAbjBA,QAaiB;AAAA,MAZjBC,MAYiB,QAZjBA,MAYiB;AAAA,4BAXjBC,SAWiB;AAAA,MAXjBA,SAWiB,+BAXL,cAWK;AAAA,MAVjBC,iBAUiB,QAVjBA,iBAUiB;AAAA,MATjBC,KASiB,QATjBA,KASiB;AAAA,MARjBC,cAQiB,QARjBA,cAQiB;AAAA,MAPjBC,SAOiB,QAPjBA,SAOiB;AAAA,iCANjBC,cAMiB;AAAA,MANjBA,cAMiB,oCANA,CAMA;AAAA,iCALjBC,cAKiB;AAAA,MALjBA,cAKiB,oCALA,CAKA;AAAA,8BAJjBC,WAIiB;AAAA,MAJjBA,WAIiB,iCAJH,IAIG;AAAA,MAHVC,UAGU,QAHjBC,KAGiB;AAAA,kCAFjBC,eAEiB;AAAA,MAFjBA,eAEiB,qCAFC,EAED;AAAA,MADdC,SACc;;AACjB,wBAAoCzB,KAAK,CAAC0B,QAAN,CAClC,IADkC,CAApC;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AAGA,yBACE5B,KAAK,CAAC0B,QAAN,CAAe,CAAf,CADF;AAAA;AAAA,MAAOG,yBAAP;AAAA,MAAkCC,4BAAlC;;AAEA,MAAMC,QAAQ,GAAG5B,WAAW,EAA5B;AAEA,MAAM6B,cAAc,GAAG3B,YAAY,CAAiBQ,MAAjB,EAAyBe,aAAzB,CAAnC;AAEA,MAAMK,SAAS,GAAGjC,KAAK,CAACkC,OAAN,CAAc,YAAM;AACpC,QAAMD,SAAkC,GAAG,CACzC;AACEE,MAAAA,IAAI,EAAE,iBADR;AAEEC,MAAAA,OAAO,EAAE;AACPC,QAAAA,QAAQ,EAAE;AADH;AAFX,KADyC,EAOzC;AACEF,MAAAA,IAAI,EAAE,QADR;AAEEC,MAAAA,OAAO,EAAE;AACPE,QAAAA,MAAM,EAAE,CACNtB,KAAK,GAAGI,cAAc,GAAGS,yBAApB,GAAgDT,cAD/C,EAENJ,KAAK,GAAGG,cAAc,GAAGV,YAApB,GAAmCU,cAFlC;AADD;AAFX,KAPyC,EAgBzC;AACEgB,MAAAA,IAAI,EAAE;AADR,KAhByC,CAA3C;;AAqBA,QAAInB,KAAJ,EAAW;AACTiB,MAAAA,SAAS,CAACM,IAAV,CAAe;AACbJ,QAAAA,IAAI,EAAE,OADO;AAEbC,QAAAA,OAAO,EAAE;AACPI,UAAAA,OAAO,EAAEjC;AADF;AAFI,OAAf;AAMD;;AAED,QAAIW,SAAJ,EAAe;AACb,UAAMA,UAA2B,GAAG;AAClCiB,QAAAA,IAAI,EAAE,WAD4B;AAElCM,QAAAA,OAAO,EAAE,IAFyB;AAGlCC,QAAAA,KAAK,EAAE,aAH2B;AAIlCC,QAAAA,QAAQ,EAAE,CAAC,eAAD,CAJwB;AAKlCC,QAAAA,EAAE,EAAE,mBAAe;AAAA,cAAZC,KAAY,SAAZA,KAAY;AACjBA,UAAAA,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoBC,KAApB,aAA+BH,KAAK,CAACI,KAAN,CAAYC,SAAZ,CAAsBF,KAArD;AACD,SAPiC;AAQlCG,QAAAA,MAAM,EAAE,uBAAe;AAAA,cAAZN,KAAY,SAAZA,KAAY;AACrBA,UAAAA,KAAK,CAACO,QAAN,CAAeL,MAAf,CAAsBxB,KAAtB,CAA4ByB,KAA5B,aACGH,KAAK,CAACO,QAAN,CAAeF,SAAhB,CAA0CG,WAD5C;AAGD;AAZiC,OAApC;AAeApB,MAAAA,SAAS,CAACM,IAAV,CAAerB,UAAf;AACD;;AAEDe,IAAAA,SAAS,CAACM,IAAV,OAAAN,SAAS,qBAAST,eAAT,EAAT;AACA,WAAOS,SAAP;AACD,GApDiB,EAoDf,CACDjB,KADC,EAEDE,SAFC,EAGDW,yBAHC,EAIDT,cAJC,EAKDD,cALC,EAMDK,eANC,CApDe,CAAlB;;AA6DA,mBAAsCvB,SAAS,CAC7CU,SAAS,CAAC2C,OADmC,EAE7C3B,UAF6C,EAG7C;AACEb,IAAAA,SAAS,EAATA,SADF;AAEEmB,IAAAA,SAAS,EAATA;AAFF,GAH6C,CAA/C;AAAA,MAAQa,MAAR,cAAQA,MAAR;AAAA,MAAgBD,KAAhB,cAAgBA,KAAhB;AAAA,MAAuBU,UAAvB,cAAuBA,UAAvB;;AASA,MAAMC,iBAAiB,GAAGX,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAE/B,SAAjC;AACA,MAAM2C,eAAe,GACnB,CAAC,CAACD,iBAAF,IAAuBA,iBAAiB,CAACE,QAAlB,CAA2B,GAA3B,CADzB,CAjFiB,CAkFyC;AAE1D;AACA;;AACApD,EAAAA,yBAAyB,CAAC,YAAM;AAC9B,QAAIU,KAAK,IAAIyC,eAAb,EAA8B;AAAA;;AAC5B,UAAME,kBAAkB,GACtBH,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,IAAAA,iBAAiB,CAAEI,UAAnB,CAA8B,QAA9B,KACAJ,iBADA,aACAA,iBADA,eACAA,iBAAiB,CAAEI,UAAnB,CAA8B,KAA9B,CADA,GAEI,UAFJ,GAGI,YAJN;AAMA,UAAMC,SAAS,GACbF,kBAAkB,KAAK,UAAvB,GAAoCnD,WAApC,GAAkDC,YADpD;AAEA,UAAMqD,UAAU,YACbH,kBAAkB,KAAK,UAAvB,yBACGhD,SAAS,CAAC2C,OADb,uDACG,mBAAmBD,WADtB,0BAEG1C,SAAS,CAAC2C,OAFb,wDAEG,oBAAmBS,YAHT,yCAG0B,CAH1C;;AAKA,UAAID,UAAU,GAAGD,SAAS,GAAG,IAAItD,aAAjC,EAAgD;AAC9CuB,QAAAA,4BAA4B,CAACvB,aAAa,GAAGsD,SAAS,GAAG,CAA7B,CAA5B;AACD;AACF,KAjBD,MAiBO;AACL/B,MAAAA,4BAA4B,CAAC,CAAD,CAA5B;AACD;AACF,GArBwB,EAqBtB,CAACd,KAAD,EAAQyC,eAAR,CArBsB,CAAzB;AAuBAzD,EAAAA,KAAK,CAACgE,SAAN,CAAgB,YAAM;AACpB,QAAIR,iBAAJ,EAAuB;AACrBzC,MAAAA,iBAAiB,IAAIA,iBAAiB,CAAC;AAAED,QAAAA,SAAS,EAAE0C;AAAb,OAAD,CAAtC;AACD;AACF,GAJD,EAIG,CAACzC,iBAAD,EAAoByC,iBAApB,CAJH;AAMA,MAAMS,QAAQ,GACZ,wCACMxC,SADN,EAEM8B,UAAU,CAACR,MAFjB;AAGE,IAAA,SAAS,EAAE3C,YAAY,CAAC,QAAD,EAAW2B,QAAX,CAHzB;AAIE,IAAA,GAAG,EAAEC,cAJP;AAKE,IAAA,KAAK,gDACAV,UADA,GAEAwB,MAAM,CAACC,MAFP;AAGHmB,MAAAA,QAAQ,EAAEhD,SAAS,0BAAGP,SAAS,CAAC2C,OAAb,wDAAG,oBAAmBa,WAAtB,GAAoCC;AAHpD;AALP,MAWGpD,KAAK,IACJ,wCACMuC,UAAU,CAACvC,KADjB;AAEE,IAAA,SAAS,EAAC,eAFZ;AAGE,yBAAmB,IAHrB;AAIE,IAAA,KAAK,EAAE8B,MAAM,CAAC9B;AAJhB,MAME;AACE,IAAA,SAAS,EAAC,kBADZ;AAEE,IAAA,SAAS,EAAEC,cAFb;AAGE,IAAA,KAAK,EAAC,IAHR;AAIE,IAAA,MAAM,EAAC,GAJT;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,IAAI,EAAC,MANP;AAOE,IAAA,KAAK,EAAC;AAPR,KASE;AACE,IAAA,QAAQ,EAAC,SADX;AAEE,IAAA,QAAQ,EAAC,SAFX;AAGE,IAAA,CAAC,EAAC,gDAHJ;AAIE,IAAA,IAAI,EAAC;AAJP,IATF,CANF,CAZJ,EAoCE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCL,QAAlC,CApCF,CADF;AAyCA,SACE,oBAAC,aAAD;AAAe,IAAA,WAAW,EAAES,WAA5B;AAAyC,IAAA,SAAS,EAAC;AAAnD,KACG4C,QADH,CADF;AAKD,CAhLM","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.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 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 arrow?: boolean;\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\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\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 ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n 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 {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: 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 modifiers.push(sameWidth);\n }\n\n modifiers.push(...customModifiers);\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n 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 vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <div\n {...attributes.arrow}\n vkuiClass=\"Popper__arrow\"\n data-popper-arrow={true}\n style={styles.arrow}\n >\n <svg\n vkuiClass=\"Popper__arrow-in\"\n className={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 <div vkuiClass=\"Popper__content\">{children}</div>\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.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 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 arrow?: boolean;\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\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\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 ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n 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 {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: 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 modifiers.push(sameWidth);\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 { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n 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 vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <div\n {...attributes.arrow}\n vkuiClass=\"Popper__arrow\"\n data-popper-arrow={true}\n style={styles.arrow}\n >\n <svg\n vkuiClass=\"Popper__arrow-in\"\n className={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 <div vkuiClass=\"Popper__content\">{children}</div>\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Radio/Radio.tsx"],"names":["ACTIVE_EFFECT_DELAY","Tappable","classNames","IOS","VKCOM","usePlatform","withAdaptivity","SizeType","hasReactNode","VisuallyHiddenInput","Caption","Headline","Text","RadioIcon","props","RadioComponent","children","description","style","className","getRootRef","sizeY","restProps","platform","RadioTypography","COMPACT","disabled","Radio"],"mappings":";;;;AACA,SAASA,mBAAT,EAA8BC,QAA9B;AACA,SAASC,UAAT;AACA,SAASC,GAAT,EAAcC,KAAd;AAEA,SAASC,WAAT;AACA,SACEC,cADF,EAGEC,QAHF;AAKA,SAASC,YAAT;AACA,SAASC,mBAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,IAAT;AACA;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD,EAA0C;AAC1D,SACE;AACE,IAAA,KAAK,EAAC,4BADR;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE;AAHF,KAIMA,KAJN,GAME;AACE,IAAA,EAAE,EAAC,IADL;AAEE,IAAA,EAAE,EAAC,IAFL;AAGE,IAAA,CAAC,EAAC,IAHJ;AAIE,IAAA,MAAM,EAAC,cAJT;AAKE,IAAA,WAAW,EAAC,GALd;AAME,IAAA,IAAI,EAAC;AANP,IANF,EAcE;AACE,IAAA,EAAE,EAAC,IADL;AAEE,IAAA,EAAE,EAAC,IAFL;AAGE,IAAA,CAAC,EAAC,KAHJ;AAIE,IAAA,SAAS,EAAC,YAJZ;AAKE,IAAA,IAAI,EAAC;AALP,IAdF,CADF;AAwBD,CAzBD;;AAmCA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAQL;AAAA,MAPhBC,QAOgB,QAPhBA,QAOgB;AAAA,MANhBC,WAMgB,QANhBA,WAMgB;AAAA,MALhBC,KAKgB,QALhBA,KAKgB;AAAA,MAJhBC,SAIgB,QAJhBA,SAIgB;AAAA,MAHhBC,UAGgB,QAHhBA,UAGgB;AAAA,MAFhBC,KAEgB,QAFhBA,KAEgB;AAAA,MADbC,SACa;;AAChB,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,MAAMmB,eAAe,GACnBD,QAAQ,KAAKnB,KAAb,IAAsBiB,KAAK,KAAKd,QAAQ,CAACkB,OAAzC,GAAmDb,IAAnD,GAA0DD,QAD5D;AAGA,SACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,KAAK,EAAEO,KAFT;AAGE,IAAA,SAAS,EAAEC,SAHb;AAIE,IAAA,SAAS,EAAEjB,UAAU,CAAC,OAAD,yBAA0BmB,KAA1B,EAJvB;AAKE,IAAA,iBAAiB,EAAEE,QAAQ,KAAKpB,GAAb,GAAmB,GAAnB,GAAyBH,mBAL9C;AAME,IAAA,QAAQ,EAAEsB,SAAS,CAACI,QANtB;AAOE,IAAA,UAAU,EAAEN;AAPd,KASE,oBAAC,mBAAD,eACME,SADN;AAEE,IAAA,SAAS,EAAC,cAFZ;AAGE,IAAA,IAAI,EAAC;AAHP,KATF,EAcE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAC;AAArB,IADF,EAEE,oBAAC,eAAD;AAAiB,IAAA,SAAS,EAAC,gBAA3B;AAA4C,IAAA,SAAS,EAAC;AAAtD,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCN,QAAlC,CADF,EAEGR,YAAY,CAACS,WAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAyCA,WAAzC,CAHJ,CAFF,CAdF,CADF;AA0BD,CAxCD;AA0CA;AACA;AACA;;;AACA,OAAO,IAAMU,KAAK,GAAGrB,cAAc,CAACS,cAAD,EAAiB;AAClDM,EAAAA,KAAK,EAAE;AAD2C,CAAjB,CAA5B","sourcesContent":["import * as React from \"react\";\nimport { ACTIVE_EFFECT_DELAY, Tappable } from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport { IOS, VKCOM } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n withAdaptivity,\n AdaptivityProps,\n SizeType,\n} from \"../../hoc/withAdaptivity\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { VisuallyHiddenInput } from \"../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Text } from \"../Typography/Text/Text\";\nimport \"./Radio.css\";\n\nconst RadioIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden\n {...props}\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"11\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n fill=\"none\"\n />\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"7.5\"\n vkuiClass=\"Radio__pin\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n AdaptivityProps {\n description?: React.ReactNode;\n}\n\nconst RadioComponent = ({\n children,\n description,\n style,\n className,\n getRootRef,\n sizeY,\n ...restProps\n}: RadioProps) => {\n const platform = usePlatform();\n\n const RadioTypography =\n platform === VKCOM || sizeY === SizeType.COMPACT ? Text : Headline;\n\n return (\n <Tappable\n Component=\"label\"\n style={style}\n className={className}\n vkuiClass={classNames(\"Radio\", `Radio--sizeY-${sizeY}`)}\n activeEffectDelay={platform === IOS ? 100 : ACTIVE_EFFECT_DELAY}\n disabled={restProps.disabled}\n getRootRef={getRootRef}\n >\n <VisuallyHiddenInput\n {...restProps}\n vkuiClass=\"Radio__input\"\n type=\"radio\"\n />\n <div vkuiClass=\"Radio__container\">\n <RadioIcon vkuiClass=\"Radio__icon\" />\n <RadioTypography vkuiClass=\"Radio__content\" Component=\"div\">\n <div vkuiClass=\"Radio__children\">{children}</div>\n {hasReactNode(description) && (\n <Caption vkuiClass=\"Radio__description\">{description}</Caption>\n )}\n </RadioTypography>\n </div>\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Radio\n */\nexport const Radio = withAdaptivity(RadioComponent, {\n sizeY: true,\n});\n"],"file":"Radio.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Radio/Radio.tsx"],"names":["ACTIVE_EFFECT_DELAY","Tappable","classNames","IOS","VKCOM","usePlatform","withAdaptivity","SizeType","hasReactNode","VisuallyHiddenInput","Caption","Headline","Text","RadioIcon","props","RadioComponent","children","description","style","className","getRootRef","sizeY","restProps","platform","RadioTypography","COMPACT","disabled","Radio","displayName"],"mappings":";;;;AACA,SAASA,mBAAT,EAA8BC,QAA9B;AACA,SAASC,UAAT;AACA,SAASC,GAAT,EAAcC,KAAd;AAEA,SAASC,WAAT;AACA,SACEC,cADF,EAGEC,QAHF;AAKA,SAASC,YAAT;AACA,SAASC,mBAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,IAAT;AACA;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD,EAA0C;AAC1D,SACE;AACE,IAAA,KAAK,EAAC,4BADR;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE;AAHF,KAIMA,KAJN,GAME;AACE,IAAA,EAAE,EAAC,IADL;AAEE,IAAA,EAAE,EAAC,IAFL;AAGE,IAAA,CAAC,EAAC,IAHJ;AAIE,IAAA,MAAM,EAAC,cAJT;AAKE,IAAA,WAAW,EAAC,GALd;AAME,IAAA,IAAI,EAAC;AANP,IANF,EAcE;AACE,IAAA,EAAE,EAAC,IADL;AAEE,IAAA,EAAE,EAAC,IAFL;AAGE,IAAA,CAAC,EAAC,KAHJ;AAIE,IAAA,SAAS,EAAC,YAJZ;AAKE,IAAA,IAAI,EAAC;AALP,IAdF,CADF;AAwBD,CAzBD;;AAmCA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAQL;AAAA,MAPhBC,QAOgB,QAPhBA,QAOgB;AAAA,MANhBC,WAMgB,QANhBA,WAMgB;AAAA,MALhBC,KAKgB,QALhBA,KAKgB;AAAA,MAJhBC,SAIgB,QAJhBA,SAIgB;AAAA,MAHhBC,UAGgB,QAHhBA,UAGgB;AAAA,MAFhBC,KAEgB,QAFhBA,KAEgB;AAAA,MADbC,SACa;;AAChB,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,MAAMmB,eAAe,GACnBD,QAAQ,KAAKnB,KAAb,IAAsBiB,KAAK,KAAKd,QAAQ,CAACkB,OAAzC,GAAmDb,IAAnD,GAA0DD,QAD5D;AAGA,SACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,KAAK,EAAEO,KAFT;AAGE,IAAA,SAAS,EAAEC,SAHb;AAIE,IAAA,SAAS,EAAEjB,UAAU,CAAC,OAAD,yBAA0BmB,KAA1B,EAJvB;AAKE,IAAA,iBAAiB,EAAEE,QAAQ,KAAKpB,GAAb,GAAmB,GAAnB,GAAyBH,mBAL9C;AAME,IAAA,QAAQ,EAAEsB,SAAS,CAACI,QANtB;AAOE,IAAA,UAAU,EAAEN;AAPd,KASE,oBAAC,mBAAD,eACME,SADN;AAEE,IAAA,SAAS,EAAC,cAFZ;AAGE,IAAA,IAAI,EAAC;AAHP,KATF,EAcE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAC;AAArB,IADF,EAEE,oBAAC,eAAD;AAAiB,IAAA,SAAS,EAAC,gBAA3B;AAA4C,IAAA,SAAS,EAAC;AAAtD,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCN,QAAlC,CADF,EAEGR,YAAY,CAACS,WAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAyCA,WAAzC,CAHJ,CAFF,CAdF,CADF;AA0BD,CAxCD;AA0CA;AACA;AACA;;;AACA,OAAO,IAAMU,KAAK,GAAGrB,cAAc,CAACS,cAAD,EAAiB;AAClDM,EAAAA,KAAK,EAAE;AAD2C,CAAjB,CAA5B;AAIPM,KAAK,CAACC,WAAN,GAAoB,OAApB","sourcesContent":["import * as React from \"react\";\nimport { ACTIVE_EFFECT_DELAY, Tappable } from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport { IOS, VKCOM } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n withAdaptivity,\n AdaptivityProps,\n SizeType,\n} from \"../../hoc/withAdaptivity\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { VisuallyHiddenInput } from \"../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Text } from \"../Typography/Text/Text\";\nimport \"./Radio.css\";\n\nconst RadioIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n aria-hidden\n {...props}\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"11\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n fill=\"none\"\n />\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"7.5\"\n vkuiClass=\"Radio__pin\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLLabelElement>,\n AdaptivityProps {\n description?: React.ReactNode;\n}\n\nconst RadioComponent = ({\n children,\n description,\n style,\n className,\n getRootRef,\n sizeY,\n ...restProps\n}: RadioProps) => {\n const platform = usePlatform();\n\n const RadioTypography =\n platform === VKCOM || sizeY === SizeType.COMPACT ? Text : Headline;\n\n return (\n <Tappable\n Component=\"label\"\n style={style}\n className={className}\n vkuiClass={classNames(\"Radio\", `Radio--sizeY-${sizeY}`)}\n activeEffectDelay={platform === IOS ? 100 : ACTIVE_EFFECT_DELAY}\n disabled={restProps.disabled}\n getRootRef={getRootRef}\n >\n <VisuallyHiddenInput\n {...restProps}\n vkuiClass=\"Radio__input\"\n type=\"radio\"\n />\n <div vkuiClass=\"Radio__container\">\n <RadioIcon vkuiClass=\"Radio__icon\" />\n <RadioTypography vkuiClass=\"Radio__content\" Component=\"div\">\n <div vkuiClass=\"Radio__children\">{children}</div>\n {hasReactNode(description) && (\n <Caption vkuiClass=\"Radio__description\">{description}</Caption>\n )}\n </RadioTypography>\n </div>\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Radio\n */\nexport const Radio = withAdaptivity(RadioComponent, {\n sizeY: true,\n});\n\nRadio.displayName = \"Radio\";\n"],"file":"Radio.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/RangeSlider/UniversalSlider.tsx"],"names":["React","Touch","classNames","rescale","withAdaptivity","useExternRef","UniversalSliderDumb","min","max","step","value","defaultValue","onChange","getRootRef","sizeY","disabled","restProps","start","end","isRange","gesture","useRef","dragging","startX","containerWidth","current","container","thumbStart","thumbEnd","offsetToValue","absolute","updateRange","nextValue","snapDirection","pos","target","Math","abs","onStart","e","boundingRect","getBoundingClientRect","width","absolutePosition","left","originalEvent","stopPropagation","onMove","shiftX","preventDefault","onEnd","toPercent","v","draggerStyle","join","UniversalSlider"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,KAAT;AACA,SAASC,UAAT;AAEA,SAASC,OAAT;AACA,SAASC,cAAT;AACA,SAASC,YAAT;AACA;;AAoBA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,OAWgB;AAAA,sBAV1CC,GAU0C;AAAA,MAV1CA,GAU0C,yBAVpC,CAUoC;AAAA,sBAT1CC,GAS0C;AAAA,MAT1CA,GAS0C,yBATpC,GASoC;AAAA,MAR1CC,IAQ0C,QAR1CA,IAQ0C;AAAA,wBAP1CC,KAO0C;AAAA,MAP1CA,KAO0C,2BAPlC,CAAC,CAAD,EAAI,CAAJ,CAOkC;AAAA,MAN1CC,YAM0C,QAN1CA,YAM0C;AAAA,MAL1CC,QAK0C,QAL1CA,QAK0C;AAAA,MAJ1CC,UAI0C,QAJ1CA,UAI0C;AAAA,MAH1CC,KAG0C,QAH1CA,KAG0C;AAAA,MAF1CC,QAE0C,QAF1CA,QAE0C;AAAA,MADvCC,SACuC;;AAC1C,8BAAqBN,KAArB;AAAA,MAAOO,KAAP;AAAA,MAAcC,GAAd;;AACA,MAAMC,OAAO,GAAGF,KAAK,IAAI,IAAzB;AACA,MAAMG,OAAO,GAAGpB,KAAK,CAACqB,MAAN,CAAa;AAC3BC,IAAAA,QAAQ,EAAE,KADiB;AAE3BC,IAAAA,MAAM,EAAE,CAFmB;AAG3BC,IAAAA,cAAc,EAAE;AAHW,GAAb,EAIbC,OAJH;AAKA,MAAMC,SAAS,GAAGrB,YAAY,CAACQ,UAAD,CAA9B;AACA,MAAMc,UAAU,GAAG3B,KAAK,CAACqB,MAAN,CAA6B,IAA7B,CAAnB;AACA,MAAMO,QAAQ,GAAG5B,KAAK,CAACqB,MAAN,CAA6B,IAA7B,CAAjB;;AAEA,MAAMQ,aAAa,GAAG,SAAhBA,aAAgB,CAACC,QAAD,EAAsB;AAC1C,WAAO3B,OAAO,CAAC2B,QAAD,EAAW,CAAC,CAAD,EAAIV,OAAO,CAACI,cAAZ,CAAX,EAAwC,CAACjB,GAAD,EAAMC,GAAN,CAAxC,EAAoD;AAAEC,MAAAA,IAAI,EAAJA;AAAF,KAApD,CAAd;AACD,GAFD;;AAIA,MAAMsB,WAAW,GAAG,SAAdA,WAAc,CAACC,SAAD,EAAuC;AACzD,QAAIf,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAO,CAAC,IAAD,EAAOe,SAAP,CAAP;AACD;;AAED,QAAQV,QAAR,GAAqBF,OAArB,CAAQE,QAAR;;AACA,QAAIA,QAAQ,KAAK,OAAjB,EAA0B;AACxB,UAAIU,SAAS,GAAGd,GAAhB,EAAqB;AACnB;AACAE,QAAAA,OAAO,CAACE,QAAR,GAAmB,KAAnB;AACA,eAAO,CAACJ,GAAD,EAAMc,SAAN,CAAP;AACD;;AACD,aAAO,CAACA,SAAD,EAAYd,GAAZ,CAAP;AACD;;AACD,QAAII,QAAQ,KAAK,KAAjB,EAAwB;AACtB,UAAIU,SAAS,GAAGf,KAAhB,EAAuB;AACrB;AACAG,QAAAA,OAAO,CAACE,QAAR,GAAmB,OAAnB;AACA,eAAO,CAACU,SAAD,EAAYf,KAAZ,CAAP;AACD;;AACD,aAAO,CAACA,KAAD,EAAQe,SAAR,CAAP;AACD;;AAED,WAAOtB,KAAP;AACD,GAxBD;;AA0BA,MAAMuB,aAAa,GAAG,SAAhBA,aAAgB,CAACC,GAAD,EAAcC,MAAd,EAA6C;AACjE,QAAIA,MAAM,KAAKR,UAAU,CAACF,OAA1B,EAAmC;AACjC,aAAO,OAAP;AACD;;AACD,QAAIU,MAAM,KAAKP,QAAQ,CAACH,OAAxB,EAAiC;AAC/B,aAAO,KAAP;AACD;;AACD,WAAOW,IAAI,CAACC,GAAL,CAAS,CAACpB,KAAD,aAACA,KAAD,cAACA,KAAD,GAAU,CAAV,IAAeiB,GAAxB,KAAgCE,IAAI,CAACC,GAAL,CAASnB,GAAG,GAAGgB,GAAf,CAAhC,GACH,OADG,GAEH,KAFJ;AAGD,GAVD;;AAYA,MAAMI,OAA0B,GAAG,SAA7BA,OAA6B,CAACC,CAAD,EAAmB;AAAA;;AACpD,QAAMC,YAAY,yBAAGd,SAAS,CAACD,OAAb,uDAAG,mBAAmBgB,qBAAnB,EAArB;AACArB,IAAAA,OAAO,CAACI,cAAR,0BAAyBgB,YAAzB,aAAyBA,YAAzB,uBAAyBA,YAAY,CAAEE,KAAvC,qEAAgD,CAAhD;AAEA,QAAMC,gBAAgB,GAAGJ,CAAC,CAAChB,MAAF,0BAAYiB,YAAZ,aAAYA,YAAZ,uBAAYA,YAAY,CAAEI,IAA1B,mEAAkC,CAAlC,CAAzB;AACA,QAAMV,GAAG,GAAGL,aAAa,CAACc,gBAAD,CAAzB;AACAvB,IAAAA,OAAO,CAACE,QAAR,GAAmBW,aAAa,CAACC,GAAD,EAAMK,CAAC,CAACM,aAAF,CAAgBV,MAAtB,CAAhC;AACAf,IAAAA,OAAO,CAACG,MAAR,GAAiBoB,gBAAjB;AAEA/B,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGmB,WAAW,CAACG,GAAD,CAAd,EAAqBK,CAArB,CAAR;AACAA,IAAAA,CAAC,CAACM,aAAF,CAAgBC,eAAhB;AACD,GAXD;;AAaA,MAAMC,MAAyB,GAAG,SAA5BA,MAA4B,CAACR,CAAD,EAAmB;AACnD3B,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAGmB,WAAW,CAACF,aAAa,CAACT,OAAO,CAACG,MAAR,IAAkBgB,CAAC,CAACS,MAAF,IAAY,CAA9B,CAAD,CAAd,CAAd,EAAiET,CAAjE,CAAR;AAEAA,IAAAA,CAAC,CAACM,aAAF,CAAgBC,eAAhB;AACAP,IAAAA,CAAC,CAACM,aAAF,CAAgBI,cAAhB;AACD,GALD;;AAOA,MAAMC,KAAwB,GAAG,SAA3BA,KAA2B,CAACX,CAAD,EAAO;AACtCnB,IAAAA,OAAO,CAACE,QAAR,GAAmB,KAAnB;AACAiB,IAAAA,CAAC,CAACM,aAAF,CAAgBC,eAAhB;AACD,GAHD;;AAKA,MAAMK,SAAS,GAAG,SAAZA,SAAY,CAACC,CAAD;AAAA,WAAgB,CAACA,CAAC,GAAG7C,GAAL,KAAaC,GAAG,GAAGD,GAAnB,CAAD,GAA4B,GAA3C;AAAA,GAAlB;;AACA,MAAM8C,YAAY,GAAGlC,OAAO,GACxB;AACEuB,IAAAA,KAAK,YAAKS,SAAS,CAACjC,GAAD,CAAT,GAAiBiC,SAAS,CAAClC,KAAD,aAACA,KAAD,cAACA,KAAD,GAAU,CAAV,CAA/B,MADP;AAEE2B,IAAAA,IAAI,YAAKO,SAAS,CAAClC,KAAD,aAACA,KAAD,cAACA,KAAD,GAAU,CAAV,CAAd;AAFN,GADwB,GAKxB;AACEyB,IAAAA,KAAK,YAAKS,SAAS,CAACjC,GAAD,CAAd;AADP,GALJ;AASA,SACE,oBAAC,KAAD;AACE,kBAAYC,OAAO,GAAGT,KAAK,CAAC4C,IAAN,CAAW,GAAX,CAAH,GAAqB5C;AAD1C,KAEMM,SAFN,EAGOD,QAAQ,GAAG,EAAH,GAAQ;AAAEuB,IAAAA,OAAO,EAAPA,OAAF;AAAWS,IAAAA,MAAM,EAANA,MAAX;AAAmBG,IAAAA,KAAK,EAALA;AAAnB,GAHvB;AAIE,IAAA,SAAS,EAAEhD,UAAU,CACnB,QADmB,0BAEFY,KAFE,GAGnBC,QAAQ,IAAI,kBAHO;AAJvB,MAUE;AAAK,IAAA,GAAG,EAAEW,SAAV;AAAqB,IAAA,SAAS,EAAC;AAA/B,KACE;AAAK,IAAA,SAAS,EAAC,iBAAf;AAAiC,IAAA,KAAK,EAAE2B;AAAxC,KACGlC,OAAO,IACN;AACE,IAAA,SAAS,EAAEjB,UAAU,CAAC,eAAD,EAAkB,sBAAlB,CADvB;AAEE,IAAA,GAAG,EAAEyB;AAFP,IAFJ,EAOE;AACE,IAAA,SAAS,EAAEzB,UAAU,CAAC,eAAD,EAAkB,oBAAlB,CADvB;AAEE,IAAA,GAAG,EAAE0B;AAFP,IAPF,CADF,CAVF,CADF;AA2BD,CA/HD;;AAiIA,OAAO,IAAM2B,eAAe,GAAGnD,cAAc,CAACE,mBAAD,EAAsB;AACjEQ,EAAAA,KAAK,EAAE;AAD0D,CAAtB,CAAtC","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent, TouchEventHandler } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { rescale } from \"../../helpers/math\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"../Slider/Slider.css\";\n\nexport type UniversalValue = [number | null, number];\n\nexport interface UniversalSliderProps<Value>\n extends HasRootRef<HTMLDivElement>,\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"value\" | \"defaultValue\" | \"onChange\"\n >,\n AdaptivityProps {\n min?: number;\n max?: number;\n step?: number;\n value?: Value;\n defaultValue?: Value;\n disabled?: boolean;\n onChange?(value: Value, e: TouchEvent): void;\n}\n\nconst UniversalSliderDumb = ({\n min = 0,\n max = 100,\n step,\n value = [0, 0],\n defaultValue,\n onChange,\n getRootRef,\n sizeY,\n disabled,\n ...restProps\n}: UniversalSliderProps<UniversalValue>) => {\n const [start, end] = value;\n const isRange = start != null;\n const gesture = React.useRef({\n dragging: false as false | \"start\" | \"end\",\n startX: 0,\n containerWidth: 0,\n }).current;\n const container = useExternRef(getRootRef);\n const thumbStart = React.useRef<HTMLDivElement>(null);\n const thumbEnd = React.useRef<HTMLDivElement>(null);\n\n const offsetToValue = (absolute: number) => {\n return rescale(absolute, [0, gesture.containerWidth], [min, max], { step });\n };\n\n const updateRange = (nextValue: number): UniversalValue => {\n if (start == null) {\n return [null, nextValue];\n }\n\n const { dragging } = gesture;\n if (dragging === \"start\") {\n if (nextValue > end) {\n // \"перехватиться\", если перетянули за конец\n gesture.dragging = \"end\";\n return [end, nextValue];\n }\n return [nextValue, end];\n }\n if (dragging === \"end\") {\n if (nextValue < start) {\n // \"перехватиться\", если перетянули за начало\n gesture.dragging = \"start\";\n return [nextValue, start];\n }\n return [start, nextValue];\n }\n\n return value;\n };\n\n const snapDirection = (pos: number, target: EventTarget | null) => {\n if (target === thumbStart.current) {\n return \"start\";\n }\n if (target === thumbEnd.current) {\n return \"end\";\n }\n return Math.abs((start ?? 0) - pos) <= Math.abs(end - pos)\n ? \"start\"\n : \"end\";\n };\n\n const onStart: TouchEventHandler = (e: TouchEvent) => {\n const boundingRect = container.current?.getBoundingClientRect();\n gesture.containerWidth = boundingRect?.width ?? 0;\n\n const absolutePosition = e.startX - (boundingRect?.left ?? 0);\n const pos = offsetToValue(absolutePosition);\n gesture.dragging = snapDirection(pos, e.originalEvent.target);\n gesture.startX = absolutePosition;\n\n onChange?.(updateRange(pos), e);\n e.originalEvent.stopPropagation();\n };\n\n const onMove: TouchEventHandler = (e: TouchEvent) => {\n onChange?.(updateRange(offsetToValue(gesture.startX + (e.shiftX || 0))), e);\n\n e.originalEvent.stopPropagation();\n e.originalEvent.preventDefault();\n };\n\n const onEnd: TouchEventHandler = (e) => {\n gesture.dragging = false;\n e.originalEvent.stopPropagation();\n };\n\n const toPercent = (v: number) => ((v - min) / (max - min)) * 100;\n const draggerStyle = isRange\n ? {\n width: `${toPercent(end) - toPercent(start ?? 0)}%`,\n left: `${toPercent(start ?? 0)}%`,\n }\n : {\n width: `${toPercent(end)}%`,\n };\n\n return (\n <Touch\n data-value={isRange ? value.join(\",\") : value}\n {...restProps}\n {...(disabled ? {} : { onStart, onMove, onEnd })}\n vkuiClass={classNames(\n \"Slider\",\n `Slider--sizeY-${sizeY}`,\n disabled && \"Slider--disabled\"\n )}\n >\n <div ref={container} vkuiClass=\"Slider__in\">\n <div vkuiClass=\"Slider__dragger\" style={draggerStyle}>\n {isRange && (\n <span\n vkuiClass={classNames(\"Slider__thumb\", \"Slider__thumb--start\")}\n ref={thumbStart}\n />\n )}\n <span\n vkuiClass={classNames(\"Slider__thumb\", \"Slider__thumb--end\")}\n ref={thumbEnd}\n />\n </div>\n </div>\n </Touch>\n );\n};\n\nexport const UniversalSlider = withAdaptivity(UniversalSliderDumb, {\n sizeY: true,\n});\n"],"file":"UniversalSlider.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/RangeSlider/UniversalSlider.tsx"],"names":["React","Touch","classNames","rescale","withAdaptivity","useExternRef","UniversalSliderDumb","min","max","step","value","defaultValue","onChange","getRootRef","sizeY","disabled","restProps","start","end","isRange","gesture","useRef","dragging","startX","containerWidth","current","container","thumbStart","thumbEnd","offsetToValue","absolute","updateRange","nextValue","snapDirection","pos","target","Math","abs","onStart","e","boundingRect","getBoundingClientRect","width","absolutePosition","left","originalEvent","stopPropagation","onMove","shiftX","preventDefault","onEnd","toPercent","v","draggerStyle","join","UniversalSlider","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Touch, TouchEvent, TouchEventHandler } from \"../Touch/Touch\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { rescale } from \"../../helpers/math\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"../Slider/Slider.css\";\n\nexport type UniversalValue = [number | null, number];\n\nexport interface UniversalSliderProps<Value>\n extends HasRootRef<HTMLDivElement>,\n Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"value\" | \"defaultValue\" | \"onChange\"\n >,\n AdaptivityProps {\n min?: number;\n max?: number;\n step?: number;\n value?: Value;\n defaultValue?: Value;\n disabled?: boolean;\n onChange?(value: Value, e: TouchEvent): void;\n}\n\nconst UniversalSliderDumb = ({\n min = 0,\n max = 100,\n step,\n value = [0, 0],\n defaultValue,\n onChange,\n getRootRef,\n sizeY,\n disabled,\n ...restProps\n}: UniversalSliderProps<UniversalValue>) => {\n const [start, end] = value;\n const isRange = start != null;\n const gesture = React.useRef({\n dragging: false as false | \"start\" | \"end\",\n startX: 0,\n containerWidth: 0,\n }).current;\n const container = useExternRef(getRootRef);\n const thumbStart = React.useRef<HTMLDivElement>(null);\n const thumbEnd = React.useRef<HTMLDivElement>(null);\n\n const offsetToValue = (absolute: number) => {\n return rescale(absolute, [0, gesture.containerWidth], [min, max], { step });\n };\n\n const updateRange = (nextValue: number): UniversalValue => {\n if (start == null) {\n return [null, nextValue];\n }\n\n const { dragging } = gesture;\n if (dragging === \"start\") {\n if (nextValue > end) {\n // \"перехватиться\", если перетянули за конец\n gesture.dragging = \"end\";\n return [end, nextValue];\n }\n return [nextValue, end];\n }\n if (dragging === \"end\") {\n if (nextValue < start) {\n // \"перехватиться\", если перетянули за начало\n gesture.dragging = \"start\";\n return [nextValue, start];\n }\n return [start, nextValue];\n }\n\n return value;\n };\n\n const snapDirection = (pos: number, target: EventTarget | null) => {\n if (target === thumbStart.current) {\n return \"start\";\n }\n if (target === thumbEnd.current) {\n return \"end\";\n }\n return Math.abs((start ?? 0) - pos) <= Math.abs(end - pos)\n ? \"start\"\n : \"end\";\n };\n\n const onStart: TouchEventHandler = (e: TouchEvent) => {\n const boundingRect = container.current?.getBoundingClientRect();\n gesture.containerWidth = boundingRect?.width ?? 0;\n\n const absolutePosition = e.startX - (boundingRect?.left ?? 0);\n const pos = offsetToValue(absolutePosition);\n gesture.dragging = snapDirection(pos, e.originalEvent.target);\n gesture.startX = absolutePosition;\n\n onChange?.(updateRange(pos), e);\n e.originalEvent.stopPropagation();\n };\n\n const onMove: TouchEventHandler = (e: TouchEvent) => {\n onChange?.(updateRange(offsetToValue(gesture.startX + (e.shiftX || 0))), e);\n\n e.originalEvent.stopPropagation();\n e.originalEvent.preventDefault();\n };\n\n const onEnd: TouchEventHandler = (e) => {\n gesture.dragging = false;\n e.originalEvent.stopPropagation();\n };\n\n const toPercent = (v: number) => ((v - min) / (max - min)) * 100;\n const draggerStyle = isRange\n ? {\n width: `${toPercent(end) - toPercent(start ?? 0)}%`,\n left: `${toPercent(start ?? 0)}%`,\n }\n : {\n width: `${toPercent(end)}%`,\n };\n\n return (\n <Touch\n data-value={isRange ? value.join(\",\") : value}\n {...restProps}\n {...(disabled ? {} : { onStart, onMove, onEnd })}\n vkuiClass={classNames(\n \"Slider\",\n `Slider--sizeY-${sizeY}`,\n disabled && \"Slider--disabled\"\n )}\n >\n <div ref={container} vkuiClass=\"Slider__in\">\n <div vkuiClass=\"Slider__dragger\" style={draggerStyle}>\n {isRange && (\n <span\n vkuiClass={classNames(\"Slider__thumb\", \"Slider__thumb--start\")}\n ref={thumbStart}\n />\n )}\n <span\n vkuiClass={classNames(\"Slider__thumb\", \"Slider__thumb--end\")}\n ref={thumbEnd}\n />\n </div>\n </div>\n </Touch>\n );\n};\n\nexport const UniversalSlider = withAdaptivity(UniversalSliderDumb, {\n sizeY: true,\n});\n\nUniversalSlider.displayName = \"UniversalSlider\";\n"],"file":"UniversalSlider.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["NativeSelect","CustomSelect","withAdaptivity","useAdaptivity","usePlatform","Platform","VKCOM","SizeType","Paragraph","Text","Headline","SelectType","default","plain","accent","SelectTypography","selectType","children","restProps","platform","sizeY","ANDROID","Component","COMPACT","SelectComponent","hasMouse","props","options","popupDirection","renderOption","map","label","value","Select"],"mappings":";;;;;;;AACA,SAASA,YAAT;AACA,SAASC,YAAT;AACA,SAASC,cAAT;AACA,SAASC,aAAT;AACA,SAASC,WAAT;AACA,SAASC,QAAT,EAAmBC,KAAnB;AACA,SAGEC,QAHF;AAKA,SAASC,SAAT;AACA,SAASC,IAAT;AACA,SAASC,QAAT;AAEA,OAAO,IAAMC,UAAU,GAAG;AACxBC,EAAAA,OAAO,EAAE,SADe;AAExBC,EAAAA,KAAK,EAAE,OAFiB;AAGxBC,EAAAA,MAAM,EAAE;AAHgB,CAAnB,C,CAMP;;AACA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAIsC;AAAA,6BAHpEC,UAGoE;AAAA,MAHpEA,UAGoE,gCAHvDL,UAAU,CAACC,OAG4C;AAAA,MAFpEK,QAEoE,QAFpEA,QAEoE;AAAA,MADjEC,SACiE;;AACpE,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;;AACA,uBAAkBD,aAAa,EAA/B;AAAA,MAAQiB,KAAR,kBAAQA,KAAR;;AAEA,MAAIJ,UAAU,KAAKL,UAAU,CAACG,MAA9B,EAAsC;AACpC,WACE,oBAAC,SAAD;AACE,MAAA,MAAM,EAAEK,QAAQ,KAAKd,QAAQ,CAACgB,OAAtB,GAAgC,GAAhC,GAAsC;AADhD,OAEMH,SAFN,GAIGD,QAJH,CADF;AAQD;;AAED,MAAMK,SAAS,GACbH,QAAQ,KAAKb,KAAb,IAAsBc,KAAK,KAAKb,QAAQ,CAACgB,OAAzC,GAAmDd,IAAnD,GAA0DC,QAD5D;AAGA,SACE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAC;AAArB,KAAgCQ,SAAhC,GACGD,QADH,CADF;AAKD,CA3BM;;AA+BP,IAAMO,eAAe,GAAG,SAAlBA,eAAkB,QAGwB;AAAA,MAF9CC,QAE8C,SAF9CA,QAE8C;AAAA,MAD3CC,KAC2C;;AAC9C;AACA,MAAID,QAAJ,EAAc;AACZ,QAAQR,QAAR,GAAmCS,KAAnC,CAAQT,QAAR;AAAA,QAAqBC,UAArB,4BAAmCQ,KAAnC;;AAEA,WAAO,oBAAC,YAAD,EAAkBR,UAAlB,CAAP;AACD;;AAED,uBAAqEQ,KAArE,CAAQC,OAAR;AAAA,MAAQA,OAAR,+BAAkB,EAAlB;AAAA,MAAsBC,cAAtB,GAAqEF,KAArE,CAAsBE,cAAtB;AAAA,MAAsCC,YAAtC,GAAqEH,KAArE,CAAsCG,YAAtC;AAAA,MAAuDX,SAAvD,4BAAqEQ,KAArE;;AAEA,SACE,oBAAC,YAAD,EAAkBR,SAAlB,EACGS,OAAO,CAACG,GAAR,CAAY;AAAA,QAAGC,KAAH,SAAGA,KAAH;AAAA,QAAUC,KAAV,SAAUA,KAAV;AAAA,WACX;AAAQ,MAAA,KAAK,EAAEA,KAAf;AAAsB,MAAA,GAAG,YAAKA,KAAL;AAAzB,OACGD,KADH,CADW;AAAA,GAAZ,CADH,CADF;AASD,CAtBD;AAwBA;AACA;AACA;;;AACA,OAAO,IAAME,MAAM,GAAG/B,cAAc,CAACsB,eAAD,EAAkB;AACpDC,EAAAA,QAAQ,EAAE;AAD0C,CAAlB,CAA7B","sourcesContent":["import * as React from \"react\";\nimport { NativeSelect } from \"../NativeSelect/NativeSelect\";\nimport { CustomSelect, CustomSelectProps } from \"../CustomSelect/CustomSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Platform, VKCOM } from \"../../lib/platform\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n SizeType,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Headline } from \"../Typography/Headline/Headline\";\n\nexport const SelectType = {\n default: \"default\",\n plain: \"plain\",\n accent: \"accent\",\n} as const;\n\n// TODO v5.0.0 поправить под новую адаптивность\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectTypography\n */\nexport const SelectTypography = ({\n selectType = SelectType.default,\n children,\n ...restProps\n}: React.PropsWithChildren<Pick<CustomSelectProps, \"selectType\">>) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n\n if (selectType === SelectType.accent) {\n return (\n <Paragraph\n weight={platform === Platform.ANDROID ? \"2\" : \"1\"}\n {...restProps}\n >\n {children}\n </Paragraph>\n );\n }\n\n const Component =\n platform === VKCOM || sizeY === SizeType.COMPACT ? Text : Headline;\n\n return (\n <Component Component=\"span\" {...restProps}>\n {children}\n </Component>\n );\n};\n\nexport interface SelectProps extends CustomSelectProps, AdaptivityProps {}\n\nconst SelectComponent = ({\n hasMouse,\n ...props\n}: SelectProps & AdaptivityContextInterface) => {\n // Use custom select if device has connected a mouse\n if (hasMouse) {\n const { children, ...restProps } = props;\n\n return <CustomSelect {...restProps} />;\n }\n\n const { options = [], popupDirection, renderOption, ...restProps } = props;\n\n return (\n <NativeSelect {...restProps}>\n {options.map(({ label, value }) => (\n <option value={value} key={`${value}`}>\n {label}\n </option>\n ))}\n </NativeSelect>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Select\n */\nexport const Select = withAdaptivity(SelectComponent, {\n hasMouse: true,\n});\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["NativeSelect","CustomSelect","withAdaptivity","useAdaptivity","usePlatform","Platform","VKCOM","SizeType","Paragraph","Text","Headline","SelectType","default","plain","accent","SelectTypography","selectType","children","restProps","platform","sizeY","ANDROID","Component","COMPACT","SelectComponent","hasMouse","props","options","popupDirection","renderOption","map","label","value","Select","displayName"],"mappings":";;;;;;;AACA,SAASA,YAAT;AACA,SAASC,YAAT;AACA,SAASC,cAAT;AACA,SAASC,aAAT;AACA,SAASC,WAAT;AACA,SAASC,QAAT,EAAmBC,KAAnB;AACA,SAGEC,QAHF;AAKA,SAASC,SAAT;AACA,SAASC,IAAT;AACA,SAASC,QAAT;AAEA,OAAO,IAAMC,UAAU,GAAG;AACxBC,EAAAA,OAAO,EAAE,SADe;AAExBC,EAAAA,KAAK,EAAE,OAFiB;AAGxBC,EAAAA,MAAM,EAAE;AAHgB,CAAnB,C,CAMP;;AACA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAIsC;AAAA,6BAHpEC,UAGoE;AAAA,MAHpEA,UAGoE,gCAHvDL,UAAU,CAACC,OAG4C;AAAA,MAFpEK,QAEoE,QAFpEA,QAEoE;AAAA,MADjEC,SACiE;;AACpE,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;;AACA,uBAAkBD,aAAa,EAA/B;AAAA,MAAQiB,KAAR,kBAAQA,KAAR;;AAEA,MAAIJ,UAAU,KAAKL,UAAU,CAACG,MAA9B,EAAsC;AACpC,WACE,oBAAC,SAAD;AACE,MAAA,MAAM,EAAEK,QAAQ,KAAKd,QAAQ,CAACgB,OAAtB,GAAgC,GAAhC,GAAsC;AADhD,OAEMH,SAFN,GAIGD,QAJH,CADF;AAQD;;AAED,MAAMK,SAAS,GACbH,QAAQ,KAAKb,KAAb,IAAsBc,KAAK,KAAKb,QAAQ,CAACgB,OAAzC,GAAmDd,IAAnD,GAA0DC,QAD5D;AAGA,SACE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAC;AAArB,KAAgCQ,SAAhC,GACGD,QADH,CADF;AAKD,CA3BM;;AA+BP,IAAMO,eAAe,GAAG,SAAlBA,eAAkB,QAGwB;AAAA,MAF9CC,QAE8C,SAF9CA,QAE8C;AAAA,MAD3CC,KAC2C;;AAC9C;AACA,MAAID,QAAJ,EAAc;AACZ,QAAQR,QAAR,GAAmCS,KAAnC,CAAQT,QAAR;AAAA,QAAqBC,UAArB,4BAAmCQ,KAAnC;;AAEA,WAAO,oBAAC,YAAD,EAAkBR,UAAlB,CAAP;AACD;;AAED,uBAAqEQ,KAArE,CAAQC,OAAR;AAAA,MAAQA,OAAR,+BAAkB,EAAlB;AAAA,MAAsBC,cAAtB,GAAqEF,KAArE,CAAsBE,cAAtB;AAAA,MAAsCC,YAAtC,GAAqEH,KAArE,CAAsCG,YAAtC;AAAA,MAAuDX,SAAvD,4BAAqEQ,KAArE;;AAEA,SACE,oBAAC,YAAD,EAAkBR,SAAlB,EACGS,OAAO,CAACG,GAAR,CAAY;AAAA,QAAGC,KAAH,SAAGA,KAAH;AAAA,QAAUC,KAAV,SAAUA,KAAV;AAAA,WACX;AAAQ,MAAA,KAAK,EAAEA,KAAf;AAAsB,MAAA,GAAG,YAAKA,KAAL;AAAzB,OACGD,KADH,CADW;AAAA,GAAZ,CADH,CADF;AASD,CAtBD;AAwBA;AACA;AACA;;;AACA,OAAO,IAAME,MAAM,GAAG/B,cAAc,CAACsB,eAAD,EAAkB;AACpDC,EAAAA,QAAQ,EAAE;AAD0C,CAAlB,CAA7B;AAIPQ,MAAM,CAACC,WAAP,GAAqB,QAArB","sourcesContent":["import * as React from \"react\";\nimport { NativeSelect } from \"../NativeSelect/NativeSelect\";\nimport { CustomSelect, CustomSelectProps } from \"../CustomSelect/CustomSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Platform, VKCOM } from \"../../lib/platform\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n SizeType,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Headline } from \"../Typography/Headline/Headline\";\n\nexport const SelectType = {\n default: \"default\",\n plain: \"plain\",\n accent: \"accent\",\n} as const;\n\n// TODO v5.0.0 поправить под новую адаптивность\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectTypography\n */\nexport const SelectTypography = ({\n selectType = SelectType.default,\n children,\n ...restProps\n}: React.PropsWithChildren<Pick<CustomSelectProps, \"selectType\">>) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n\n if (selectType === SelectType.accent) {\n return (\n <Paragraph\n weight={platform === Platform.ANDROID ? \"2\" : \"1\"}\n {...restProps}\n >\n {children}\n </Paragraph>\n );\n }\n\n const Component =\n platform === VKCOM || sizeY === SizeType.COMPACT ? Text : Headline;\n\n return (\n <Component Component=\"span\" {...restProps}>\n {children}\n </Component>\n );\n};\n\nexport interface SelectProps extends CustomSelectProps, AdaptivityProps {}\n\nconst SelectComponent = ({\n hasMouse,\n ...props\n}: SelectProps & AdaptivityContextInterface) => {\n // Use custom select if device has connected a mouse\n if (hasMouse) {\n const { children, ...restProps } = props;\n\n return <CustomSelect {...restProps} />;\n }\n\n const { options = [], popupDirection, renderOption, ...restProps } = props;\n\n return (\n <NativeSelect {...restProps}>\n {options.map(({ label, value }) => (\n <option value={value} key={`${value}`}>\n {label}\n </option>\n ))}\n </NativeSelect>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Select\n */\nexport const Select = withAdaptivity(SelectComponent, {\n hasMouse: true,\n});\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SelectMimicry/SelectMimicry.tsx"],"names":["classNames","DropdownIcon","FormField","withAdaptivity","usePlatform","getClassName","getFormFieldModeFromSelectType","SelectType","SelectTypography","SelectMimicryComponent","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","sizeX","sizeY","before","after","selectType","default","restProps","platform","title","undefined","SelectMimicry"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,8BAAT;AACA,SAASC,UAAT,EAAqBC,gBAArB;AACA;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,OAeL;AAAA,2BAdxBC,QAcwB;AAAA,MAdxBA,QAcwB,8BAdb,CAca;AAAA,MAbxBC,WAawB,QAbxBA,WAawB;AAAA,MAZxBC,QAYwB,QAZxBA,QAYwB;AAAA,MAXxBC,KAWwB,QAXxBA,KAWwB;AAAA,MAVxBC,UAUwB,QAVxBA,UAUwB;AAAA,MATxBC,SASwB,QATxBA,SASwB;AAAA,MARxBC,QAQwB,QARxBA,QAQwB;AAAA,MAPxBC,OAOwB,QAPxBA,OAOwB;AAAA,MANxBC,KAMwB,QANxBA,KAMwB;AAAA,MALxBC,KAKwB,QALxBA,KAKwB;AAAA,MAJxBC,MAIwB,QAJxBA,MAIwB;AAAA,wBAHxBC,KAGwB;AAAA,MAHxBA,KAGwB,2BAHhB,oBAAC,YAAD,OAGgB;AAAA,6BAFxBC,UAEwB;AAAA,MAFxBA,UAEwB,gCAFXf,UAAU,CAACgB,OAEA;AAAA,MADrBC,SACqB;;AACxB,MAAMC,QAAQ,GAAGrB,WAAW,EAA5B;AACA,MAAMsB,KAAK,GAAGd,QAAQ,IAAID,WAA1B;AAEA,SACE,oBAAC,SAAD,eACMa,SADN;AAEE,IAAA,QAAQ,EAAER,QAAQ,GAAGW,SAAH,GAAejB,QAFnC;AAGE,IAAA,SAAS,EAAEV,UAAU,CACnBK,YAAY,CAAC,QAAD,EAAWoB,QAAX,CADO,oBAERH,UAFQ,GAGnB,CAACV,QAAD,IAAa,eAHM,EAInBG,SAAS,IAAI,mBAJM,EAKnBF,KAAK,4BAAqBA,KAArB,CALc,0BAMFK,KANE,GAMO;AANP,4BAOFC,KAPE,GAOO;AAC1BC,IAAAA,MAAM,IAAI,mBARS,EASnBC,KAAK,IAAI,kBATU,CAHvB;AAcE,IAAA,UAAU,EAAEP,UAdd;AAeE,IAAA,OAAO,EAAEE,QAAQ,GAAGW,SAAH,GAAeV,OAflC;AAgBE,IAAA,QAAQ,EAAED,QAhBZ;AAiBE,IAAA,MAAM,EAAEI,MAjBV;AAkBE,IAAA,KAAK,EAAEC,KAlBT;AAmBE,IAAA,IAAI,EAAEf,8BAA8B,CAACgB,UAAD;AAnBtC,MAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEE,oBAAC,gBAAD;AAAkB,IAAA,UAAU,EAAEA,UAA9B;AAA0C,IAAA,SAAS,EAAC;AAApD,KACGI,KADH,CAFF,CArBF,CADF;AA8BD,CAjDD;AAmDA;AACA;AACA;;;AACA,OAAO,IAAME,aAAa,GAAGzB,cAAc,CAACM,sBAAD,EAAyB;AAClES,EAAAA,KAAK,EAAE,IAD2D;AAElEC,EAAAA,KAAK,EAAE;AAF2D,CAAzB,CAApC","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasAlign, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getFormFieldModeFromSelectType } from \"../../lib/select\";\nimport { SelectType, SelectTypography } from \"../Select/Select\";\nimport \"../Select/Select.css\";\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<FormFieldProps, \"before\" | \"after\"> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\nconst SelectMimicryComponent = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n sizeX,\n sizeY,\n before,\n after = <DropdownIcon />,\n selectType = SelectType.default,\n ...restProps\n}: SelectMimicryProps) => {\n const platform = usePlatform();\n const title = children || placeholder;\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n vkuiClass={classNames(\n getClassName(\"Select\", platform),\n `Select--${selectType}`,\n !children && \"Select--empty\",\n multiline && \"Select--multiline\",\n align && `Select--align-${align}`,\n `Select--sizeX-${sizeX}`, // TODO v5.0.0 поправить под новую адаптивность\n `Select--sizeY-${sizeY}`, // TODO v5.0.0 поправить под новую адаптивность\n before && \"Select--hasBefore\",\n after && \"Select--hasAfter\"\n )}\n getRootRef={getRootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n >\n <div vkuiClass=\"Select__container\">\n {/* TODO v5.0.0 поправить под новую адаптивность */}\n <SelectTypography selectType={selectType} vkuiClass=\"Select__title\">\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = withAdaptivity(SelectMimicryComponent, {\n sizeX: true,\n sizeY: true,\n});\n"],"file":"SelectMimicry.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SelectMimicry/SelectMimicry.tsx"],"names":["classNames","DropdownIcon","FormField","withAdaptivity","usePlatform","getClassName","getFormFieldModeFromSelectType","SelectType","SelectTypography","SelectMimicryComponent","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","sizeX","sizeY","before","after","selectType","default","restProps","platform","title","undefined","SelectMimicry","displayName"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,8BAAT;AACA,SAASC,UAAT,EAAqBC,gBAArB;AACA;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,OAeL;AAAA,2BAdxBC,QAcwB;AAAA,MAdxBA,QAcwB,8BAdb,CAca;AAAA,MAbxBC,WAawB,QAbxBA,WAawB;AAAA,MAZxBC,QAYwB,QAZxBA,QAYwB;AAAA,MAXxBC,KAWwB,QAXxBA,KAWwB;AAAA,MAVxBC,UAUwB,QAVxBA,UAUwB;AAAA,MATxBC,SASwB,QATxBA,SASwB;AAAA,MARxBC,QAQwB,QARxBA,QAQwB;AAAA,MAPxBC,OAOwB,QAPxBA,OAOwB;AAAA,MANxBC,KAMwB,QANxBA,KAMwB;AAAA,MALxBC,KAKwB,QALxBA,KAKwB;AAAA,MAJxBC,MAIwB,QAJxBA,MAIwB;AAAA,wBAHxBC,KAGwB;AAAA,MAHxBA,KAGwB,2BAHhB,oBAAC,YAAD,OAGgB;AAAA,6BAFxBC,UAEwB;AAAA,MAFxBA,UAEwB,gCAFXf,UAAU,CAACgB,OAEA;AAAA,MADrBC,SACqB;;AACxB,MAAMC,QAAQ,GAAGrB,WAAW,EAA5B;AACA,MAAMsB,KAAK,GAAGd,QAAQ,IAAID,WAA1B;AAEA,SACE,oBAAC,SAAD,eACMa,SADN;AAEE,IAAA,QAAQ,EAAER,QAAQ,GAAGW,SAAH,GAAejB,QAFnC;AAGE,IAAA,SAAS,EAAEV,UAAU,CACnBK,YAAY,CAAC,QAAD,EAAWoB,QAAX,CADO,oBAERH,UAFQ,GAGnB,CAACV,QAAD,IAAa,eAHM,EAInBG,SAAS,IAAI,mBAJM,EAKnBF,KAAK,4BAAqBA,KAArB,CALc,0BAMFK,KANE,GAMO;AANP,4BAOFC,KAPE,GAOO;AAC1BC,IAAAA,MAAM,IAAI,mBARS,EASnBC,KAAK,IAAI,kBATU,CAHvB;AAcE,IAAA,UAAU,EAAEP,UAdd;AAeE,IAAA,OAAO,EAAEE,QAAQ,GAAGW,SAAH,GAAeV,OAflC;AAgBE,IAAA,QAAQ,EAAED,QAhBZ;AAiBE,IAAA,MAAM,EAAEI,MAjBV;AAkBE,IAAA,KAAK,EAAEC,KAlBT;AAmBE,IAAA,IAAI,EAAEf,8BAA8B,CAACgB,UAAD;AAnBtC,MAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEE,oBAAC,gBAAD;AAAkB,IAAA,UAAU,EAAEA,UAA9B;AAA0C,IAAA,SAAS,EAAC;AAApD,KACGI,KADH,CAFF,CArBF,CADF;AA8BD,CAjDD;AAmDA;AACA;AACA;;;AACA,OAAO,IAAME,aAAa,GAAGzB,cAAc,CAACM,sBAAD,EAAyB;AAClES,EAAAA,KAAK,EAAE,IAD2D;AAElEC,EAAAA,KAAK,EAAE;AAF2D,CAAzB,CAApC;AAKPS,aAAa,CAACC,WAAd,GAA4B,eAA5B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasAlign, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getFormFieldModeFromSelectType } from \"../../lib/select\";\nimport { SelectType, SelectTypography } from \"../Select/Select\";\nimport \"../Select/Select.css\";\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<FormFieldProps, \"before\" | \"after\"> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\nconst SelectMimicryComponent = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n sizeX,\n sizeY,\n before,\n after = <DropdownIcon />,\n selectType = SelectType.default,\n ...restProps\n}: SelectMimicryProps) => {\n const platform = usePlatform();\n const title = children || placeholder;\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n vkuiClass={classNames(\n getClassName(\"Select\", platform),\n `Select--${selectType}`,\n !children && \"Select--empty\",\n multiline && \"Select--multiline\",\n align && `Select--align-${align}`,\n `Select--sizeX-${sizeX}`, // TODO v5.0.0 поправить под новую адаптивность\n `Select--sizeY-${sizeY}`, // TODO v5.0.0 поправить под новую адаптивность\n before && \"Select--hasBefore\",\n after && \"Select--hasAfter\"\n )}\n getRootRef={getRootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n >\n <div vkuiClass=\"Select__container\">\n {/* TODO v5.0.0 поправить под новую адаптивность */}\n <SelectTypography selectType={selectType} vkuiClass=\"Select__title\">\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = withAdaptivity(SelectMimicryComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nSelectMimicry.displayName = \"SelectMimicry\";\n"],"file":"SelectMimicry.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","ANDROID","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","Headline","SimpleCellTypography","props","sizeY","platform","COMPACT","SimpleCellComponent","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter","SimpleCell"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography = (props: SimpleCellTypographyProps) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"3\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCellComponent = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead Component=\"span\" vkuiClass=\"SimpleCell__description\">\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = withAdaptivity(SimpleCellComponent, { sizeY: true });\n"],"file":"SimpleCell.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","ANDROID","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","Headline","SimpleCellTypography","props","sizeY","platform","COMPACT","SimpleCellComponent","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter","SimpleCell","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography = (props: SimpleCellTypographyProps) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"3\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCellComponent = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead Component=\"span\" vkuiClass=\"SimpleCell__description\">\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = withAdaptivity(SimpleCellComponent, { sizeY: true });\n\nSimpleCell.displayName = \"SimpleCell\";\n"],"file":"SimpleCell.js"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
.vkuiSwitch{position:relative;display:block;cursor:pointer;padding:calc((20px - 14px)/2);padding:calc((var(--vkui--size_switch_pin--regular,20px) - var(--vkui--size_switch_height--regular,14px))/2)}.vkuiSwitch--sizeY-compact{padding:calc((18px - 12px)/2);padding:calc((var(--vkui--size_switch_pin--compact,18px) - var(--vkui--size_switch_height--compact,12px))/2)}.vkuiSwitch--disabled{cursor:default}.vkuiSwitch__pseudo{position:relative;display:block;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.vkuiSwitch__pseudo::before{position:absolute;content:"";border-radius:50%;box-sizing:border-box;background:#f2f3f5;background:var(--vkui--color_icon_contrast_secondary,#F2F3F5);box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24);top:calc((14px - 20px)/2);top:calc((var(--vkui--size_switch_height--regular,14px) - var(--vkui--size_switch_pin--regular,20px))/2);left:calc((14px - 20px)/2);left:calc((var(--vkui--size_switch_height--regular,14px) - var(--vkui--size_switch_pin--regular,20px))/2);width:20px;width:var(--vkui--size_switch_pin--regular,20px);height:20px;height:var(--vkui--size_switch_pin--regular,20px)}.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::before{top:calc((12px - 18px)/2);top:calc((var(--vkui--size_switch_height--compact,12px) - var(--vkui--size_switch_pin--compact,18px))/2);left:calc((12px - 18px)/2);left:calc((var(--vkui--size_switch_height--compact,12px) - var(--vkui--size_switch_pin--compact,18px))/2);width:18px;width:var(--vkui--size_switch_pin--compact,18px);height:18px;height:var(--vkui--size_switch_pin--compact,18px)}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#2688eb;background:var(--accent, var(--vkui--color_icon_accent));-webkit-transform:translateX(calc(34px - 14px));transform:translateX(calc(34px - 14px));-webkit-transform:translateX(calc(var(--vkui--size_switch_width--regular,34px) - var(--vkui--size_switch_height--regular,14px)));transform:translateX(calc(var(--vkui--size_switch_width--regular,34px) - var(--vkui--size_switch_height--regular,14px)))}.vkuiSwitch__pseudo::after{content:"";display:block;background:rgba(0,0,0,.24);background:var(--vkui--color_icon_tertiary_alpha,rgba(0, 0, 0, 0.24));border-radius:calc(34px/2);border-radius:calc(var(--vkui--size_switch_width--regular,34px)/2);width:34px;width:var(--vkui--size_switch_width--regular,34px);height:14px;height:var(--vkui--size_switch_height--regular,14px)}.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::after{border-radius:calc(32px/2);border-radius:calc(var(--vkui--size_switch_width--compact,32px)/2);width:32px;width:var(--vkui--size_switch_width--compact,32px);height:12px;height:var(--vkui--size_switch_height--compact,12px)}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{opacity:.48;background:#2688eb;background:var(--accent, var(--vkui--color_icon_accent))}.vkuiSwitch--sizeY-compact .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{-webkit-transform:translateX(calc(32px - 12px));transform:translateX(calc(32px - 12px));-webkit-transform:translateX(calc(var(--vkui--size_switch_width--compact,32px) - var(--vkui--size_switch_height--compact,12px)));transform:translateX(calc(var(--vkui--size_switch_width--compact,32px) - var(--vkui--size_switch_height--compact,12px)))}.vkuiSwitch__self[disabled]+.vkuiSwitch__pseudo{opacity:.4;opacity:var(--vkui--opacity_disable,0.4)}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{background:#fff;background:var(--white);box-shadow:0 3px 8px rgba(0,0,0,.15),0 3px 1px rgba(0,0,0,.06),inset 0 0 0 .5px rgba(0,0,0,.04)}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#fff;background:var(--white)}.vkuiSwitch--ios .vkuiSwitch__pseudo::after{background:rgba(0,28,61,.08);background:var(--placeholder_icon_background,
|
|
2
2
|
var(--vkui--color_track_background)
|
|
3
|
-
)}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{opacity:1}@media (prefers-reduced-motion:no-preference){.vkuiSwitch__pseudo::after{transition:background-color .1s ease}.vkuiSwitch__pseudo::before{transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease,-webkit-transform .1s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::after{transition:background-color .2s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{transition:-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32),-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32)}}.
|
|
3
|
+
)}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{opacity:1}@media (prefers-reduced-motion:no-preference){.vkuiSwitch__pseudo::after{transition:background-color .1s ease}.vkuiSwitch__pseudo::before{transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease,-webkit-transform .1s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::after{transition:background-color .2s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{transition:-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32),-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32)}}.vkuiSimpleCell__after>.vkuiSwitch{margin-left:12px}.vkuiSimpleCell>.vkuiSwitch:first-child{margin-right:12px}
|
|
@@ -7,4 +7,7 @@ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextArea
|
|
|
7
7
|
onResize?(el: HTMLTextAreaElement): void;
|
|
8
8
|
defaultValue?: string;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* @see https://vkcom.github.io/VKUI/#/Textarea
|
|
12
|
+
*/
|
|
10
13
|
export declare const Textarea: React.FC<Pick<TextareaProps, "required" | "disabled" | "hidden" | "dir" | "form" | "slot" | "style" | "title" | "color" | "wrap" | "maxHeight" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "name" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "value" | "autoFocus" | "autoComplete" | "maxLength" | "minLength" | "readOnly" | "cols" | "dirName" | "rows" | "getRootRef" | "getRef" | "grow" | "onResize"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
@@ -11,9 +11,6 @@ import { useEnsuredControl } from "../../hooks/useEnsuredControl";
|
|
|
11
11
|
import { useExternRef } from "../../hooks/useExternRef";
|
|
12
12
|
import "./Textarea.css";
|
|
13
13
|
|
|
14
|
-
/**
|
|
15
|
-
* @see https://vkcom.github.io/VKUI/#/Textarea
|
|
16
|
-
*/
|
|
17
14
|
var TextareaComponent = function TextareaComponent(_ref) {
|
|
18
15
|
var _ref$defaultValue = _ref.defaultValue,
|
|
19
16
|
defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
|
|
@@ -70,10 +67,14 @@ var TextareaComponent = function TextareaComponent(_ref) {
|
|
|
70
67
|
onChange: onChange,
|
|
71
68
|
ref: elementRef
|
|
72
69
|
})));
|
|
73
|
-
};
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* @see https://vkcom.github.io/VKUI/#/Textarea
|
|
73
|
+
*/
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
export var Textarea = withAdaptivity(TextareaComponent, {
|
|
77
77
|
sizeY: true
|
|
78
78
|
});
|
|
79
|
+
Textarea.displayName = "Textarea";
|
|
79
80
|
//# sourceMappingURL=Textarea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","useEnsuredControl","useExternRef","TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","restProps","value","onChange","currentScrollHeight","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;AACA;;AAaA
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","useEnsuredControl","useExternRef","TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","restProps","value","onChange","currentScrollHeight","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea","displayName"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;AACA;;AAaA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAYL;AAAA,+BAXnBC,YAWmB;AAAA,MAXnBA,YAWmB,kCAXJ,EAWI;AAAA,uBAVnBC,IAUmB;AAAA,MAVnBA,IAUmB,0BAVZ,IAUY;AAAA,MATnBC,KASmB,QATnBA,KASmB;AAAA,MARnBC,QAQmB,QARnBA,QAQmB;AAAA,MAPnBC,SAOmB,QAPnBA,SAOmB;AAAA,MANnBC,UAMmB,QANnBA,UAMmB;AAAA,MALnBC,MAKmB,QALnBA,MAKmB;AAAA,MAJnBC,KAImB,QAJnBA,KAImB;AAAA,uBAHnBC,IAGmB;AAAA,MAHnBA,IAGmB,0BAHZ,CAGY;AAAA,MAFnBC,SAEmB,QAFnBA,SAEmB;AAAA,MADhBC,SACgB;;AACnB,2BAA0Bb,iBAAiB,CAACa,SAAD,EAAY;AAAEV,IAAAA,YAAY,EAAZA;AAAF,GAAZ,CAA3C;AAAA;AAAA,MAAOW,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGpB,KAAK,CAACqB,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAGjB,YAAY,CAACQ,MAAD,CAA/B,CAHmB,CAKnB;;AACAb,EAAAA,KAAK,CAACuB,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AAEA,QAAIjB,IAAI,IAAIgB,EAAJ,aAAIA,EAAJ,eAAIA,EAAE,CAAEE,YAAhB,EAA8B;AAC5BF,MAAAA,EAAE,CAACf,KAAH,CAASkB,MAAT,GAAkB,EAAlB;AACAH,MAAAA,EAAE,CAACf,KAAH,CAASkB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBR,mBAAmB,CAACK,OAAxC,IAAmDf,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACc,EAAD,CAAR;AACAJ,QAAAA,mBAAmB,CAACK,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACpB,IAAD,EAAOU,KAAP,EAAcJ,KAAd,EAAqBQ,UAArB,EAAiCZ,QAAjC,CAZH;AAcA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAET,UAAU,CACnB,UADmB,EAEnB;AAFmB,8BAGAa,KAHA,EADvB;AAME,IAAA,SAAS,EAAEH,SANb;AAOE,IAAA,KAAK,EAAEF,KAPT;AAQE,IAAA,UAAU,EAAEG,UARd;AASE,IAAA,QAAQ,EAAEK,SAAS,CAACY;AATtB,KAWE,6CACMZ,SADN;AAEE,IAAA,KAAK,EAAE;AAAED,MAAAA,SAAS,EAATA;AAAF,KAFT;AAGE,IAAA,IAAI,EAAED,IAHR;AAIE,IAAA,SAAS,EAAC,cAJZ;AAKE,IAAA,KAAK,EAAEG,KALT;AAME,IAAA,QAAQ,EAAEC,QANZ;AAOE,IAAA,GAAG,EAAEG;AAPP,KAXF,CADF;AAuBD,CAvDD;AAyDA;AACA;AACA;;;AACA,OAAO,IAAMQ,QAAQ,GAAG3B,cAAc,CAACG,iBAAD,EAAoB;AAAEQ,EAAAA,KAAK,EAAE;AAAT,CAApB,CAA/B;AAEPgB,QAAQ,CAACC,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./Textarea.css\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<React.CSSProperties, \"maxHeight\"> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst TextareaComponent = ({\n defaultValue = \"\",\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n maxHeight,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = \"\";\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n vkuiClass={classNames(\n \"Textarea\",\n // TODO. v5.0.0 Новая адаптивность\n `Textarea--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <textarea\n {...restProps}\n style={{ maxHeight }}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = withAdaptivity(TextareaComponent, { sizeY: true });\n\nTextarea.displayName = \"Textarea\";\n"],"file":"Textarea.js"}
|