@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/AppRoot/AppRoot.tsx"],"names":["React","useDOM","classNames","AppRootContext","withAdaptivity","SizeType","useIsomorphicLayoutEffect","classScopingMode","IconSettingsProvider","ElementScrollController","GlobalScrollController","noop","warnOnce","useKeyboardInputTracker","useInsets","ConfigProviderContext","isRefObject","warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","portalRoot","portalRootProp","disablePortal","props","isKeyboardInputActive","rootRef","useRef","useState","setPortalRoot","document","insets","useContext","appearance","noConflict","process","env","NODE_ENV","portal","current","createElement","classList","add","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","REGULAR","container","ScrollController","useMemo","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n ElementScrollController,\n GlobalScrollController,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { isRefObject } from \"../../lib/isRefObject\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n /** Элемент используемый в качестве root для порталов\n * При передаче своего элемента необходимо задать ему class=\"vkui__portal-root\" и добавить в DOM\n */\n // TODO: v5.0.0 изменить тип на HTMLElement\n portalRoot?: HTMLDivElement | React.RefObject<HTMLDivElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\nconst warn = warnOnce(\"AppRoot\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n portalRoot: portalRootProp = null,\n disablePortal,\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { document } = useDOM();\n const insets = useInsets();\n const { appearance } = React.useContext(ConfigProviderContext);\n\n classScopingMode.noConflict = noLegacyClasses;\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\n `Свойство scroll=\"${scroll}\" поддерживается только в режиме embedded`,\n \"error\"\n );\n }\n if (_mode && _embedded) {\n warn(`Свойство mode=\"${mode}\" приоритетнее, чем \"embedded\"`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLDivElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === \"full\") {\n document!.documentElement.classList.add(\"vkui\");\n\n return () => {\n document!.documentElement.classList.remove(\"vkui\");\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== \"full\" || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty(\"color-scheme\", appearance);\n\n return () =>\n document!.documentElement.style.removeProperty(\"color-scheme\");\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () =>\n scroll === \"contain\" ? ElementScrollController : GlobalScrollController,\n [scroll]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n"],"file":"AppRoot.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["React","useDOM","classNames","AppRootContext","withAdaptivity","SizeType","useIsomorphicLayoutEffect","classScopingMode","IconSettingsProvider","ElementScrollController","GlobalScrollController","noop","warnOnce","useKeyboardInputTracker","useInsets","ConfigProviderContext","isRefObject","warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","portalRoot","portalRootProp","disablePortal","props","isKeyboardInputActive","rootRef","useRef","useState","setPortalRoot","document","insets","useContext","appearance","noConflict","process","env","NODE_ENV","portal","current","createElement","classList","add","body","appendChild","parentElement","removeChild","parent","classes","concat","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","REGULAR","container","ScrollController","useMemo","content","appRoot","keyboardInput","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n ElementScrollController,\n GlobalScrollController,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { isRefObject } from \"../../lib/isRefObject\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n /** Элемент используемый в качестве root для порталов\n * При передаче своего элемента необходимо задать ему class=\"vkui__portal-root\" и добавить в DOM\n */\n // TODO: v5.0.0 изменить тип на HTMLElement\n portalRoot?: HTMLDivElement | React.RefObject<HTMLDivElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\nconst warn = warnOnce(\"AppRoot\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n portalRoot: portalRootProp = null,\n disablePortal,\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { document } = useDOM();\n const insets = useInsets();\n const { appearance } = React.useContext(ConfigProviderContext);\n\n classScopingMode.noConflict = noLegacyClasses;\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\n `Свойство scroll=\"${scroll}\" поддерживается только в режиме embedded`,\n \"error\"\n );\n }\n if (_mode && _embedded) {\n warn(`Свойство mode=\"${mode}\" приоритетнее, чем \"embedded\"`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLDivElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === \"full\") {\n document!.documentElement.classList.add(\"vkui\");\n\n return () => {\n document!.documentElement.classList.remove(\"vkui\");\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== \"full\" || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty(\"color-scheme\", appearance);\n\n return () =>\n document!.documentElement.style.removeProperty(\"color-scheme\");\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () =>\n scroll === \"contain\" ? ElementScrollController : GlobalScrollController,\n [scroll]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n\nAppRoot.displayName = \"AppRoot\";\n"],"file":"AppRoot.js"}
|
|
@@ -32,4 +32,4 @@
|
|
|
32
32
|
)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{background-color:rgba(255,255,255,.28);background-color:var(--vkui--color_background_contrast_secondary_alpha--active,rgba(255, 255, 255, 0.28)
|
|
33
33
|
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{color:#2c2d2e;color:var(--media_overlay_button_foreground,
|
|
34
34
|
var(--vkui--color_text_primary_invariably)
|
|
35
|
-
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover,#000102)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active,#000105)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay,.vkuiButton--lvl-outline.vkuiButton--clr-overlay{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover,#F5F5F7)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active,#EBECEF)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--white, var(--vkui--color_stroke_contrast))}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover,#F5F5F7)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active,#EBECEF)}.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton__after:not(:first-child){margin-left:6px}.vkuiButton--sz-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--sz-l .vkuiButton__after:not(:first-child){margin-left:8px}.vkuiButton--sz-
|
|
35
|
+
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover,#000102)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active,#000105)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay,.vkuiButton--lvl-outline.vkuiButton--clr-overlay{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover,#F5F5F7)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active,#EBECEF)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--white, var(--vkui--color_stroke_contrast))}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover,#F5F5F7)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active,#EBECEF)}.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton__after:not(:first-child){margin-left:6px}.vkuiButton--sz-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--sz-l .vkuiButton__after:not(:first-child){margin-left:8px}.vkuiButton--sz-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact,32px)}.vkuiButton--sz-m.vkuiButton--singleIcon{width:32px;width:var(--vkui--size_button_medium_height--compact,32px)}.vkuiButton--sz-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact,36px)}.vkuiButton--sz-l.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_large_height--compact,36px)}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular,30px)}.vkuiButton--sizeY-regular.vkuiButton--singleIcon{width:30px;width:var(--vkui--size_button_small_height--regular,30px)}.vkuiButton--sizeY-regular.vkuiButton--sz-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular,36px)}.vkuiButton--sizeY-regular.vkuiButton--sz-l.vkuiButton--singleIcon{width:36px;width:var(--vkui--size_button_medium_height--regular,36px)}.vkuiButton--sizeY-regular.vkuiButton--sz-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular,44px)}.vkuiButton--sizeY-regular.vkuiButton--sz-l.vkuiButton--singleIcon{width:44px;width:var(--vkui--size_button_large_height--regular,44px)}.vkuiBanner__actions>.vkuiButton{margin-top:12px;margin-right:16px;margin-bottom:6px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary{margin:4px 16px 2px calc(-1*12px);margin:4px 16px 2px calc(-1*var(--vkui--size_button_tertiary_small_padding_horizontal--regular,12px))}.vkuiBanner__actions>.vkuiButton--sz-m.vkuiButton--lvl-tertiary{margin-left:calc(-1*12px);margin-left:calc(-1*var(--vkui--size_button_tertiary_medium_padding_horizontal--regular,12px))}.vkuiBanner__actions>.vkuiButton--sz-l.vkuiButton--lvl-tertiary{margin-left:calc(-1*16px);margin-left:calc(-1*var(--vkui--size_button_tertiary_large_padding_horizontal--regular,16px))}.vkuiBanner__actions>.vkuiButton--lvl-tertiary:first-child{margin-top:4px}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton:not(.vkuiButton--lvl-tertiary){margin-top:0}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton--lvl-tertiary{margin-top:2px;margin-left:-12px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary+.vkuiButton--lvl-tertiary{margin-top:2px}.vkuiModalCardBase__actions .vkuiButton{flex:1;margin-left:6px;margin-right:6px;width:0}.vkuiModalCardBase__actions--v .vkuiButton{margin-left:0;margin-right:0;width:100%}.vkuiModalCardBase__actions--v .vkuiButton+.vkuiButton{margin-top:12px}.vkuiRichCell__actions>.vkuiButton+.vkuiButton{margin-left:8px}
|
|
@@ -158,15 +158,16 @@ var ButtonComponent = function ButtonComponent(_ref2) {
|
|
|
158
158
|
resolvedAppearance = _resolveButtonAppeara.resolvedAppearance;
|
|
159
159
|
|
|
160
160
|
var hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;
|
|
161
|
-
return createScopedElement(Tappable, _extends({
|
|
161
|
+
return createScopedElement(Tappable, _extends({
|
|
162
|
+
hoverMode: hasNewTokens ? "Button--hover" : "background",
|
|
163
|
+
activeMode: hasNewTokens ? "Button--active" : "opacity"
|
|
164
|
+
}, restProps, {
|
|
162
165
|
Component: restProps.href ? "a" : Component,
|
|
163
166
|
onClick: loading ? undefined : onClick,
|
|
164
167
|
focusVisibleMode: "outside",
|
|
165
168
|
stopPropagation: stopPropagation,
|
|
166
169
|
vkuiClass: classNames("Button", "Button--sz-".concat(size), "Button--lvl-".concat(resolvedMode), "Button--clr-".concat(resolvedAppearance), "Button--aln-".concat(align), "Button--sizeY-".concat(sizeY), stretched && "Button--stretched", hasIcons && "Button--with-icon", hasIconOnly && "Button--singleIcon", loading && "Button--loading"),
|
|
167
|
-
getRootRef: getRootRef
|
|
168
|
-
hoverMode: hasNewTokens ? "Button--hover" : "background",
|
|
169
|
-
activeMode: hasNewTokens ? "Button--active" : "opacity"
|
|
170
|
+
getRootRef: getRootRef
|
|
170
171
|
}), loading && createScopedElement(Spinner, {
|
|
171
172
|
size: "small",
|
|
172
173
|
vkuiClass: "Button__spinner"
|
|
@@ -194,4 +195,5 @@ var ButtonComponent = function ButtonComponent(_ref2) {
|
|
|
194
195
|
export var Button = withAdaptivity(ButtonComponent, {
|
|
195
196
|
sizeY: true
|
|
196
197
|
});
|
|
198
|
+
Button.displayName = "Button";
|
|
197
199
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["React","classNames","ConfigProviderContext","Tappable","Title","Text","Subhead","Caption","usePlatform","SizeType","withAdaptivity","IOS","VKCOM","ANDROID","Spinner","Headline","ButtonTypography","size","sizeY","platform","restProps","isCompact","COMPACT","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","ButtonComponent","stretched","align","children","before","after","getRootRef","Component","loading","onClick","stopPropagation","hasIcons","Boolean","hasIconOnly","hasNewTokens","useContext","href","Button"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { PlatformType, IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography = ({\n size,\n sizeY,\n platform,\n ...restProps\n}: ButtonTypographyProps) => {\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"2\" {...restProps} />;\n }\n if (platform === ANDROID) {\n return <Headline weight=\"2\" {...restProps} />;\n }\n return <Title level=\"3\" weight=\"2\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead weight={platform === VKCOM ? \"3\" : \"2\"} {...restProps} />\n );\n }\n\n return <Text weight=\"2\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"2\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption weight=\"2\" {...restProps} />;\n }\n\n return <Subhead weight=\"2\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst ButtonComponent = ({\n size = \"s\",\n mode = \"primary\",\n appearance,\n stretched = false,\n align = \"center\",\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n stopPropagation = true,\n ...restProps\n}: ButtonProps) => {\n const platform = usePlatform();\n const hasIcons = Boolean(before || after);\n const hasIconOnly = !children && Boolean(after) !== Boolean(before);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n stopPropagation={stopPropagation}\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n stretched && \"Button--stretched\",\n hasIcons && \"Button--with-icon\",\n hasIconOnly && \"Button--singleIcon\",\n loading && \"Button--loading\"\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && (\n <span vkuiClass=\"Button__before\" role=\"presentation\">\n {before}\n </span>\n )}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && (\n <span vkuiClass=\"Button__after\" role=\"presentation\">\n {after}\n </span>\n )}\n </span>\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Button\n */\nexport const Button = withAdaptivity(ButtonComponent, {\n sizeY: true,\n});\n"],"file":"Button.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["React","classNames","ConfigProviderContext","Tappable","Title","Text","Subhead","Caption","usePlatform","SizeType","withAdaptivity","IOS","VKCOM","ANDROID","Spinner","Headline","ButtonTypography","size","sizeY","platform","restProps","isCompact","COMPACT","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","ButtonComponent","stretched","align","children","before","after","getRootRef","Component","loading","onClick","stopPropagation","hasIcons","Boolean","hasIconOnly","hasNewTokens","useContext","href","Button","displayName"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,qBAAT;AACA,SAAwBC,QAAxB;AACA,SAASC,KAAT;AACA,SAASC,IAAT;AACA,SAASC,OAAT;AACA,SAASC,OAAT;AAEA,SAASC,WAAT;AACA,SAEEC,QAFF,EAGEC,cAHF;AAKA,SAAuBC,GAAvB,EAA4BC,KAA5B,EAAmCC,OAAnC;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA;;AAmCA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAKI;AAAA,MAJ3BC,IAI2B,QAJ3BA,IAI2B;AAAA,MAH3BC,KAG2B,QAH3BA,KAG2B;AAAA,MAF3BC,QAE2B,QAF3BA,QAE2B;AAAA,MADxBC,SACwB;;AAC3B,MAAMC,SAAS,GAAGH,KAAK,KAAKT,QAAQ,CAACa,OAArC;;AAEA,UAAQL,IAAR;AACE,SAAK,GAAL;AACE,UAAII,SAAJ,EAAe;AACb,eAAO,oBAAC,IAAD;AAAM,UAAA,MAAM,EAAC;AAAb,WAAqBD,SAArB,EAAP;AACD;;AACD,UAAID,QAAQ,KAAKN,OAAjB,EAA0B;AACxB,eAAO,oBAAC,QAAD;AAAU,UAAA,MAAM,EAAC;AAAjB,WAAyBO,SAAzB,EAAP;AACD;;AACD,aAAO,oBAAC,KAAD;AAAO,QAAA,KAAK,EAAC,GAAb;AAAiB,QAAA,MAAM,EAAC;AAAxB,SAAgCA,SAAhC,EAAP;;AACF,SAAK,GAAL;AACE,UAAIC,SAAJ,EAAe;AACb,eACE,oBAAC,OAAD;AAAS,UAAA,MAAM,EAAEF,QAAQ,KAAKP,KAAb,GAAqB,GAArB,GAA2B;AAA5C,WAAqDQ,SAArD,EADF;AAGD;;AAED,aAAO,oBAAC,IAAD;AAAM,QAAA,MAAM,EAAC;AAAb,SAAqBA,SAArB,EAAP;;AACF,SAAK,GAAL;AACA;AACE,UAAID,QAAQ,KAAKR,GAAjB,EAAsB;AACpB,eAAO,oBAAC,OAAD;AAAS,UAAA,MAAM,EAAC;AAAhB,WAAwBS,SAAxB,EAAP;AACD;;AAED,UAAID,QAAQ,KAAKP,KAAjB,EAAwB;AACtB,eAAO,oBAAC,OAAD,EAAaQ,SAAb,CAAP;AACD;;AAED,UAAIC,SAAJ,EAAe;AACb,eAAO,oBAAC,OAAD;AAAS,UAAA,MAAM,EAAC;AAAhB,WAAwBD,SAAxB,EAAP;AACD;;AAED,aAAO,oBAAC,OAAD;AAAS,QAAA,MAAM,EAAC;AAAhB,SAAwBA,SAAxB,EAAP;AA/BJ;AAiCD,CAzCD;;AAgDA,SAASG,uBAAT,CACEC,UADF,EAEEC,IAFF,EAG4B;AAC1B,MAAIC,kBAA6C,GAAGF,UAApD;AACA,MAAIG,YAAiC,GAAGF,IAAxC;;AAEA,MAAID,UAAU,KAAKI,SAAnB,EAA8B;AAC5B,YAAQH,IAAR;AACE,WAAK,UAAL;AACA,WAAK,WAAL;AACA,WAAK,SAAL;AACA,WAAK,SAAL;AACEC,QAAAA,kBAAkB,GAAG,QAArB;AACA;;AACF,WAAK,UAAL;AACEC,QAAAA,YAAY,GAAG,SAAf;AACAD,QAAAA,kBAAkB,GAAG,UAArB;AACA;;AACF,WAAK,aAAL;AACEC,QAAAA,YAAY,GAAG,SAAf;AACAD,QAAAA,kBAAkB,GAAG,UAArB;AACA;;AACF,WAAK,iBAAL;AACEC,QAAAA,YAAY,GAAG,SAAf;AACAD,QAAAA,kBAAkB,GAAG,SAArB;AACA;;AACF,WAAK,mBAAL;AACEC,QAAAA,YAAY,GAAG,WAAf;AACAD,QAAAA,kBAAkB,GAAG,SAArB;AACA;;AACF,WAAK,iBAAL;AACEC,QAAAA,YAAY,GAAG,SAAf;AACAD,QAAAA,kBAAkB,GAAG,SAArB;AACA;AA1BJ;AA4BD;;AAED,SAAO;AACLA,IAAAA,kBAAkB,EAAlBA,kBADK;AAELC,IAAAA,YAAY,EAAZA;AAFK,GAAP;AAID;;AAED,IAAME,eAAe,GAAG,SAAlBA,eAAkB,QAgBL;AAAA,yBAfjBZ,IAeiB;AAAA,MAfjBA,IAeiB,2BAfV,GAeU;AAAA,yBAdjBQ,IAciB;AAAA,MAdjBA,IAciB,2BAdV,SAcU;AAAA,MAbjBD,UAaiB,SAbjBA,UAaiB;AAAA,8BAZjBM,SAYiB;AAAA,MAZjBA,SAYiB,gCAZL,KAYK;AAAA,0BAXjBC,KAWiB;AAAA,MAXjBA,KAWiB,4BAXT,QAWS;AAAA,MAVjBC,QAUiB,SAVjBA,QAUiB;AAAA,MATjBC,MASiB,SATjBA,MASiB;AAAA,MARjBC,KAQiB,SARjBA,KAQiB;AAAA,MAPjBC,UAOiB,SAPjBA,UAOiB;AAAA,MANjBjB,KAMiB,SANjBA,KAMiB;AAAA,8BALjBkB,SAKiB;AAAA,MALjBA,SAKiB,gCALL,QAKK;AAAA,MAJjBC,OAIiB,SAJjBA,OAIiB;AAAA,MAHjBC,OAGiB,SAHjBA,OAGiB;AAAA,oCAFjBC,eAEiB;AAAA,MAFjBA,eAEiB,sCAFC,IAED;AAAA,MADdnB,SACc;;AACjB,MAAMD,QAAQ,GAAGX,WAAW,EAA5B;AACA,MAAMgC,QAAQ,GAAGC,OAAO,CAACR,MAAM,IAAIC,KAAX,CAAxB;AACA,MAAMQ,WAAW,GAAG,CAACV,QAAD,IAAaS,OAAO,CAACP,KAAD,CAAP,KAAmBO,OAAO,CAACR,MAAD,CAA3D;;AACA,8BAA6CV,uBAAuB,CAClEC,UADkE,EAElEC,IAFkE,CAApE;AAAA,MAAQE,YAAR,yBAAQA,YAAR;AAAA,MAAsBD,kBAAtB,yBAAsBA,kBAAtB;;AAIA,MAAMiB,YAAY,GAAG3C,KAAK,CAAC4C,UAAN,CAAiB1C,qBAAjB,EAAwCyC,YAA7D;AAEA,SACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAEA,YAAY,GAAG,eAAH,GAAqB,YAD9C;AAEE,IAAA,UAAU,EAAEA,YAAY,GAAG,gBAAH,GAAsB;AAFhD,KAGMvB,SAHN;AAIE,IAAA,SAAS,EAAEA,SAAS,CAACyB,IAAV,GAAiB,GAAjB,GAAuBT,SAJpC;AAKE,IAAA,OAAO,EAAEC,OAAO,GAAGT,SAAH,GAAeU,OALjC;AAME,IAAA,gBAAgB,EAAC,SANnB;AAOE,IAAA,eAAe,EAAEC,eAPnB;AAQE,IAAA,SAAS,EAAEtC,UAAU,CACnB,QADmB,uBAELgB,IAFK,yBAGJU,YAHI,yBAIJD,kBAJI,yBAKJK,KALI,2BAMFb,KANE,GAOnBY,SAAS,IAAI,mBAPM,EAQnBU,QAAQ,IAAI,mBARO,EASnBE,WAAW,IAAI,oBATI,EAUnBL,OAAO,IAAI,iBAVQ,CARvB;AAoBE,IAAA,UAAU,EAAEF;AApBd,MAsBGE,OAAO,IAAI,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,OAAd;AAAsB,IAAA,SAAS,EAAC;AAAhC,IAtBd,EAuBE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGJ,MAAM,IACL;AAAM,IAAA,SAAS,EAAC,gBAAhB;AAAiC,IAAA,IAAI,EAAC;AAAtC,KACGA,MADH,CAFJ,EAMGD,QAAQ,IACP,oBAAC,gBAAD;AACE,IAAA,IAAI,EAAEf,IADR;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,QAAQ,EAAEC,QAHZ;AAIE,IAAA,SAAS,EAAC,iBAJZ;AAKE,IAAA,SAAS,EAAC;AALZ,KAOGa,QAPH,CAPJ,EAiBGE,KAAK,IACJ;AAAM,IAAA,SAAS,EAAC,eAAhB;AAAgC,IAAA,IAAI,EAAC;AAArC,KACGA,KADH,CAlBJ,CAvBF,CADF;AAiDD,CA3ED;AA6EA;AACA;AACA;;;AACA,OAAO,IAAMY,MAAM,GAAGpC,cAAc,CAACmB,eAAD,EAAkB;AACpDX,EAAAA,KAAK,EAAE;AAD6C,CAAlB,CAA7B;AAIP4B,MAAM,CAACC,WAAP,GAAqB,QAArB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { PlatformType, IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography = ({\n size,\n sizeY,\n platform,\n ...restProps\n}: ButtonTypographyProps) => {\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"2\" {...restProps} />;\n }\n if (platform === ANDROID) {\n return <Headline weight=\"2\" {...restProps} />;\n }\n return <Title level=\"3\" weight=\"2\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead weight={platform === VKCOM ? \"3\" : \"2\"} {...restProps} />\n );\n }\n\n return <Text weight=\"2\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"2\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption weight=\"2\" {...restProps} />;\n }\n\n return <Subhead weight=\"2\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst ButtonComponent = ({\n size = \"s\",\n mode = \"primary\",\n appearance,\n stretched = false,\n align = \"center\",\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n stopPropagation = true,\n ...restProps\n}: ButtonProps) => {\n const platform = usePlatform();\n const hasIcons = Boolean(before || after);\n const hasIconOnly = !children && Boolean(after) !== Boolean(before);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n stopPropagation={stopPropagation}\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n stretched && \"Button--stretched\",\n hasIcons && \"Button--with-icon\",\n hasIconOnly && \"Button--singleIcon\",\n loading && \"Button--loading\"\n )}\n getRootRef={getRootRef}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && (\n <span vkuiClass=\"Button__before\" role=\"presentation\">\n {before}\n </span>\n )}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && (\n <span vkuiClass=\"Button__after\" role=\"presentation\">\n {after}\n </span>\n )}\n </span>\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Button\n */\nexport const Button = withAdaptivity(ButtonComponent, {\n sizeY: true,\n});\n\nButton.displayName = \"Button\";\n"],"file":"Button.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"names":["React","DropdownIcon","classNames","ChipsInput","chipsInputDefaultProps","CustomSelectOption","useChipsSelect","withAdaptivity","noop","useDOM","Caption","prefixClass","useExternRef","useGlobalEventListener","defaultFilterFn","CustomSelectDropdown","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","emptyText","creatableText","onChangeStart","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","renderOption","option","restProps","ChipsSelectComponent","props","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","sizeY","after","document","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","rootNode","current","target","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter","ChipsSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n ChipsInput,\n ChipsInputOption,\n ChipsInputProps,\n ChipsInputValue,\n RenderChip,\n chipsInputDefaultProps,\n} from \"../ChipsInput/ChipsInput\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { useChipsSelect } from \"./useChipsSelect\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { noop } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport \"./ChipsSelect.css\";\n\nexport interface ChipsSelectProps<Option extends ChipsInputOption>\n extends ChipsInputProps<Option>,\n AdaptivityProps {\n popupDirection?: \"top\" | \"bottom\";\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<\n ChipsInputProps<Option>,\n \"getOptionLabel\"\n >[\"getOptionLabel\"]\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (\n e: React.MouseEvent | React.KeyboardEvent,\n option: Option\n ) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n}\n\ntype FocusActionType = \"next\" | \"prev\";\n\nconst FOCUS_ACTION_NEXT: FocusActionType = \"next\";\nconst FOCUS_ACTION_PREV: FocusActionType = \"prev\";\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: \"Ничего не найдено\",\n creatableText: \"Создать значение\",\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption({ option, ...restProps }) {\n return <CustomSelectOption {...restProps} />;\n },\n};\n\nconst ChipsSelectComponent = <Option extends ChipsInputOption>(\n props: ChipsSelectProps<Option>\n) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n sizeY,\n closeAfterSelect,\n onChangeStart,\n after,\n options,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n const { current: rootNode } = rootRef;\n if (\n rootNode &&\n e.target !== rootNode &&\n !rootNode.contains(e.target as Node)\n ) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== \"number\" ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === \"ArrowUp\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === \"ArrowDown\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (\n e.key === \"Enter\" &&\n !e.defaultPrevented &&\n opened &&\n focusedOptionIndex != null\n ) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if ([\"Escape\", \"Tab\"].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (\n index === -1 &&\n !!filteredOptions.length &&\n !showCreatable &&\n closeAfterSelect\n ) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [\n filteredOptions,\n focusedOption,\n showCreatable,\n closeAfterSelect,\n setFocusedOption,\n ]);\n\n useGlobalEventListener(document, \"click\", handleClickOutside);\n\n const renderChipWrapper = (\n renderChipProps: RenderChip<Option> | undefined\n ) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (\n e: React.MouseEvent | undefined,\n value: ChipsInputValue | undefined\n ) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes(\"top\");\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement]\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(\n () => [scrollBoxRef, rootRef],\n [rootRef, scrollBoxRef]\n );\n\n return (\n <div\n vkuiClass={classNames(\"ChipsSelect\", `ChipsSelect--sizeY-${sizeY}`)}\n ref={rootRef}\n style={style}\n className={className}\n >\n <ChipsInput\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n vkuiClass={classNames(\n opened && \"Select--open\",\n opened &&\n (isPopperDirectionTop ? \"Select--pop-up\" : \"Select--pop-down\")\n )}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n after={<DropdownIcon />}\n />\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n vkuiClass=\"ChipsSelect__options\"\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Caption vkuiClass=\"ChipsSelect__empty\">{emptyText}</Caption>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption &&\n getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find(\n (selectedOption: Option) => {\n return (\n getOptionValue!(selectedOption) === getOptionValue!(option)\n );\n }\n );\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: prefixClass(\"ChipsSelect__option\"),\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = withAdaptivity(ChipsSelectComponent, {\n sizeY: true,\n});\n"],"file":"ChipsSelect.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"names":["React","DropdownIcon","classNames","ChipsInput","chipsInputDefaultProps","CustomSelectOption","useChipsSelect","withAdaptivity","noop","useDOM","Caption","prefixClass","useExternRef","useGlobalEventListener","defaultFilterFn","CustomSelectDropdown","FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","emptyText","creatableText","onChangeStart","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","renderOption","option","restProps","ChipsSelectComponent","props","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","sizeY","after","document","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","rootNode","current","target","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter","ChipsSelect","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n ChipsInput,\n ChipsInputOption,\n ChipsInputProps,\n ChipsInputValue,\n RenderChip,\n chipsInputDefaultProps,\n} from \"../ChipsInput/ChipsInput\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { useChipsSelect } from \"./useChipsSelect\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { noop } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport \"./ChipsSelect.css\";\n\nexport interface ChipsSelectProps<Option extends ChipsInputOption>\n extends ChipsInputProps<Option>,\n AdaptivityProps {\n popupDirection?: \"top\" | \"bottom\";\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<\n ChipsInputProps<Option>,\n \"getOptionLabel\"\n >[\"getOptionLabel\"]\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (\n e: React.MouseEvent | React.KeyboardEvent,\n option: Option\n ) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n}\n\ntype FocusActionType = \"next\" | \"prev\";\n\nconst FOCUS_ACTION_NEXT: FocusActionType = \"next\";\nconst FOCUS_ACTION_PREV: FocusActionType = \"prev\";\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: \"Ничего не найдено\",\n creatableText: \"Создать значение\",\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption({ option, ...restProps }) {\n return <CustomSelectOption {...restProps} />;\n },\n};\n\nconst ChipsSelectComponent = <Option extends ChipsInputOption>(\n props: ChipsSelectProps<Option>\n) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n sizeY,\n closeAfterSelect,\n onChangeStart,\n after,\n options,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n const { current: rootNode } = rootRef;\n if (\n rootNode &&\n e.target !== rootNode &&\n !rootNode.contains(e.target as Node)\n ) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== \"number\" ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === \"ArrowUp\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === \"ArrowDown\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (\n e.key === \"Enter\" &&\n !e.defaultPrevented &&\n opened &&\n focusedOptionIndex != null\n ) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if ([\"Escape\", \"Tab\"].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (\n index === -1 &&\n !!filteredOptions.length &&\n !showCreatable &&\n closeAfterSelect\n ) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [\n filteredOptions,\n focusedOption,\n showCreatable,\n closeAfterSelect,\n setFocusedOption,\n ]);\n\n useGlobalEventListener(document, \"click\", handleClickOutside);\n\n const renderChipWrapper = (\n renderChipProps: RenderChip<Option> | undefined\n ) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (\n e: React.MouseEvent | undefined,\n value: ChipsInputValue | undefined\n ) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes(\"top\");\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement]\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(\n () => [scrollBoxRef, rootRef],\n [rootRef, scrollBoxRef]\n );\n\n return (\n <div\n vkuiClass={classNames(\"ChipsSelect\", `ChipsSelect--sizeY-${sizeY}`)}\n ref={rootRef}\n style={style}\n className={className}\n >\n <ChipsInput\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n vkuiClass={classNames(\n opened && \"Select--open\",\n opened &&\n (isPopperDirectionTop ? \"Select--pop-up\" : \"Select--pop-down\")\n )}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n after={<DropdownIcon />}\n />\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n vkuiClass=\"ChipsSelect__options\"\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Caption vkuiClass=\"ChipsSelect__empty\">{emptyText}</Caption>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption &&\n getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find(\n (selectedOption: Option) => {\n return (\n getOptionValue!(selectedOption) === getOptionValue!(option)\n );\n }\n );\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: prefixClass(\"ChipsSelect__option\"),\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = withAdaptivity(ChipsSelectComponent, {\n sizeY: true,\n});\n\nChipsSelect.displayName = \"ChipsSelect\";\n"],"file":"ChipsSelect.js"}
|
|
@@ -200,4 +200,5 @@ var HorizontalScrollComponent = function HorizontalScrollComponent(_ref2) {
|
|
|
200
200
|
export var HorizontalScroll = withAdaptivity(HorizontalScrollComponent, {
|
|
201
201
|
hasMouse: true
|
|
202
202
|
});
|
|
203
|
+
HorizontalScroll.displayName = "HorizontalScroll";
|
|
203
204
|
//# sourceMappingURL=HorizontalScroll.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":["React","withAdaptivity","HorizontalScrollArrow","easeInOutSine","useEventListener","useExternRef","classNames","now","performance","Date","roundUpElementScrollLeft","el","Math","ceil","scrollLeft","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToRightBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","maxLeft","offsetWidth","startLeft","endLeft","startTime","scroll","time","elapsed","min","value","currentLeft","max","requestAnimationFrame","shift","length","HorizontalScrollComponent","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","hasMouse","getRef","restProps","useState","canScrollLeft","setCanScrollLeft","canScrollRight","setCanScrollRight","isCustomScrollingRef","useRef","scrollerRef","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToLeft","i","scrollToRight","onscroll","scrollEvent","useEffect","add","HorizontalScroll"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { HorizontalScrollArrow } from \"./HorizontalScrollArrow\";\nimport { easeInOutSine } from \"../../lib/fx\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { HasRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./HorizontalScroll.css\";\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToRightBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n arrowSize?: \"m\" | \"l\";\n showArrows?: boolean | \"always\";\n scrollAnimationDuration?: number;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Округляем el.scrollLeft\n * https://github.com/VKCOM/VKUI/pull/2445\n */\nconst roundUpElementScrollLeft = (el: HTMLElement) => Math.ceil(el.scrollLeft);\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToRightBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * максимальное значение сдвига влево\n */\n const maxLeft = initialScrollWidth - scrollElement.offsetWidth;\n\n let startLeft = roundUpElementScrollLeft(scrollElement);\n let endLeft = getScrollPosition(startLeft);\n\n onScrollStart();\n\n if (endLeft >= maxLeft) {\n onScrollToRightBorder();\n endLeft = maxLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentLeft = startLeft + (endLeft - startLeft) * value;\n scrollElement.scrollLeft = Math.ceil(currentLeft);\n\n if (\n roundUpElementScrollLeft(scrollElement) !== Math.max(0, endLeft) &&\n elapsed !== 1\n ) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\nconst HorizontalScrollComponent = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = \"l\",\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n hasMouse,\n getRef,\n ...restProps\n}: HorizontalScrollProps) => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const scrollTo = React.useCallback(\n (getScrollPosition: ScrollPositionHandler) => {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToRightBorder: () => setCanScrollRight(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth:\n scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n })\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n },\n [scrollAnimationDuration, scrollerRef]\n );\n\n const scrollToLeft = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToRight = React.useCallback(() => {\n const getScrollPosition =\n getScrollToRight ?? ((i: number) => i + scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToRight, scrollTo, scrollerRef]);\n\n const onscroll = React.useCallback(() => {\n if (\n showArrows &&\n hasMouse &&\n scrollerRef.current &&\n !isCustomScrollingRef.current\n ) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollLeft(scrollElement.scrollLeft > 0);\n setCanScrollRight(\n roundUpElementScrollLeft(scrollElement) + scrollElement.offsetWidth <\n scrollElement.scrollWidth\n );\n }\n }, [hasMouse, scrollerRef, showArrows]);\n\n const scrollEvent = useEventListener(\"scroll\", onscroll);\n React.useEffect(() => {\n if (scrollerRef.current) {\n scrollEvent.add(scrollerRef.current);\n }\n }, [scrollEvent, scrollerRef]);\n React.useEffect(onscroll, [scrollerRef, children, onscroll]);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"HorizontalScroll\",\n showArrows === \"always\" && \"HorizontalScroll--withConstArrows\"\n )}\n >\n {showArrows && hasMouse && canScrollLeft && (\n <HorizontalScrollArrow\n size={arrowSize}\n direction=\"left\"\n vkuiClass=\"HorizontalScroll__arrowLeft\"\n onClick={scrollToLeft}\n />\n )}\n {showArrows && hasMouse && canScrollRight && (\n <HorizontalScrollArrow\n size={arrowSize}\n direction=\"right\"\n vkuiClass=\"HorizontalScroll__arrowRight\"\n onClick={scrollToRight}\n />\n )}\n <div vkuiClass=\"HorizontalScroll__in\" ref={scrollerRef}>\n <div vkuiClass=\"HorizontalScroll__in-wrapper\">{children}</div>\n </div>\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalScroll\n */\nexport const HorizontalScroll = withAdaptivity(HorizontalScrollComponent, {\n hasMouse: true,\n});\n"],"file":"HorizontalScroll.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/HorizontalScroll/HorizontalScroll.tsx"],"names":["React","withAdaptivity","HorizontalScrollArrow","easeInOutSine","useEventListener","useExternRef","classNames","now","performance","Date","roundUpElementScrollLeft","el","Math","ceil","scrollLeft","SCROLL_ONE_FRAME_TIME","doScroll","scrollElement","getScrollPosition","animationQueue","onScrollToRightBorder","onScrollEnd","onScrollStart","initialScrollWidth","scrollAnimationDuration","maxLeft","offsetWidth","startLeft","endLeft","startTime","scroll","time","elapsed","min","value","currentLeft","max","requestAnimationFrame","shift","length","HorizontalScrollComponent","children","getScrollToLeft","getScrollToRight","showArrows","arrowSize","hasMouse","getRef","restProps","useState","canScrollLeft","setCanScrollLeft","canScrollRight","setCanScrollRight","isCustomScrollingRef","useRef","scrollerRef","scrollTo","useCallback","current","push","firstElementChild","scrollWidth","scrollToLeft","i","scrollToRight","onscroll","scrollEvent","useEffect","add","HorizontalScroll","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { HorizontalScrollArrow } from \"./HorizontalScrollArrow\";\nimport { easeInOutSine } from \"../../lib/fx\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { HasRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./HorizontalScroll.css\";\n\ninterface ScrollContext {\n scrollElement: HTMLElement | null;\n scrollAnimationDuration: number;\n animationQueue: VoidFunction[];\n getScrollPosition: (currentPosition: number) => number;\n onScrollToRightBorder: VoidFunction;\n onScrollEnd: VoidFunction;\n onScrollStart: VoidFunction;\n /**\n * Начальная ширина прокрутки.\n * В некоторых случаях может отличаться от текущей ширины прокрутки из-за transforms: translate\n */\n initialScrollWidth: number;\n}\n\nexport type ScrollPositionHandler = (currentPosition: number) => number;\n\nexport interface HorizontalScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps,\n HasRef<HTMLDivElement> {\n /**\n * Функция для расчета величины прокрутки при клике на левую стрелку.\n */\n getScrollToLeft?: ScrollPositionHandler;\n /**\n * Функция для расчета величины прокрутки при клике на правую стрелку.\n */\n getScrollToRight?: ScrollPositionHandler;\n arrowSize?: \"m\" | \"l\";\n showArrows?: boolean | \"always\";\n scrollAnimationDuration?: number;\n}\n\n/**\n * timing method\n */\nfunction now() {\n return performance && performance.now ? performance.now() : Date.now();\n}\n\n/**\n * Округляем el.scrollLeft\n * https://github.com/VKCOM/VKUI/pull/2445\n */\nconst roundUpElementScrollLeft = (el: HTMLElement) => Math.ceil(el.scrollLeft);\n\n/**\n * Код анимации скрола, на основе полифила: https://github.com/iamdustan/smoothscroll\n * Константа взята из полифила (468), на дизайн-ревью уточнили до 250\n * @var {number} SCROLL_ONE_FRAME_TIME время анимации скролла\n */\nconst SCROLL_ONE_FRAME_TIME = 250;\n\nfunction doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue,\n onScrollToRightBorder,\n onScrollEnd,\n onScrollStart,\n initialScrollWidth,\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n}: ScrollContext) {\n if (!scrollElement || !getScrollPosition) {\n return;\n }\n\n /**\n * максимальное значение сдвига влево\n */\n const maxLeft = initialScrollWidth - scrollElement.offsetWidth;\n\n let startLeft = roundUpElementScrollLeft(scrollElement);\n let endLeft = getScrollPosition(startLeft);\n\n onScrollStart();\n\n if (endLeft >= maxLeft) {\n onScrollToRightBorder();\n endLeft = maxLeft;\n }\n\n const startTime = now();\n\n (function scroll() {\n if (!scrollElement) {\n onScrollEnd();\n return;\n }\n\n const time = now();\n const elapsed = Math.min((time - startTime) / scrollAnimationDuration, 1);\n\n const value = easeInOutSine(elapsed);\n\n const currentLeft = startLeft + (endLeft - startLeft) * value;\n scrollElement.scrollLeft = Math.ceil(currentLeft);\n\n if (\n roundUpElementScrollLeft(scrollElement) !== Math.max(0, endLeft) &&\n elapsed !== 1\n ) {\n requestAnimationFrame(scroll);\n return;\n }\n\n onScrollEnd();\n animationQueue.shift();\n if (animationQueue.length > 0) {\n animationQueue[0]();\n }\n })();\n}\n\nconst HorizontalScrollComponent = ({\n children,\n getScrollToLeft,\n getScrollToRight,\n showArrows = true,\n arrowSize = \"l\",\n scrollAnimationDuration = SCROLL_ONE_FRAME_TIME,\n hasMouse,\n getRef,\n ...restProps\n}: HorizontalScrollProps) => {\n const [canScrollLeft, setCanScrollLeft] = React.useState(false);\n const [canScrollRight, setCanScrollRight] = React.useState(false);\n\n const isCustomScrollingRef = React.useRef(false);\n\n const scrollerRef = useExternRef(getRef);\n\n const animationQueue = React.useRef<VoidFunction[]>([]);\n\n const scrollTo = React.useCallback(\n (getScrollPosition: ScrollPositionHandler) => {\n const scrollElement = scrollerRef.current;\n\n animationQueue.current.push(() =>\n doScroll({\n scrollElement,\n getScrollPosition,\n animationQueue: animationQueue.current,\n onScrollToRightBorder: () => setCanScrollRight(false),\n onScrollEnd: () => (isCustomScrollingRef.current = false),\n onScrollStart: () => (isCustomScrollingRef.current = true),\n initialScrollWidth:\n scrollElement?.firstElementChild?.scrollWidth || 0,\n scrollAnimationDuration,\n })\n );\n if (animationQueue.current.length === 1) {\n animationQueue.current[0]();\n }\n },\n [scrollAnimationDuration, scrollerRef]\n );\n\n const scrollToLeft = React.useCallback(() => {\n const getScrollPosition =\n getScrollToLeft ?? ((i: number) => i - scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToLeft, scrollTo, scrollerRef]);\n\n const scrollToRight = React.useCallback(() => {\n const getScrollPosition =\n getScrollToRight ?? ((i: number) => i + scrollerRef.current!.offsetWidth);\n scrollTo(getScrollPosition);\n }, [getScrollToRight, scrollTo, scrollerRef]);\n\n const onscroll = React.useCallback(() => {\n if (\n showArrows &&\n hasMouse &&\n scrollerRef.current &&\n !isCustomScrollingRef.current\n ) {\n const scrollElement = scrollerRef.current;\n\n setCanScrollLeft(scrollElement.scrollLeft > 0);\n setCanScrollRight(\n roundUpElementScrollLeft(scrollElement) + scrollElement.offsetWidth <\n scrollElement.scrollWidth\n );\n }\n }, [hasMouse, scrollerRef, showArrows]);\n\n const scrollEvent = useEventListener(\"scroll\", onscroll);\n React.useEffect(() => {\n if (scrollerRef.current) {\n scrollEvent.add(scrollerRef.current);\n }\n }, [scrollEvent, scrollerRef]);\n React.useEffect(onscroll, [scrollerRef, children, onscroll]);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"HorizontalScroll\",\n showArrows === \"always\" && \"HorizontalScroll--withConstArrows\"\n )}\n >\n {showArrows && hasMouse && canScrollLeft && (\n <HorizontalScrollArrow\n size={arrowSize}\n direction=\"left\"\n vkuiClass=\"HorizontalScroll__arrowLeft\"\n onClick={scrollToLeft}\n />\n )}\n {showArrows && hasMouse && canScrollRight && (\n <HorizontalScrollArrow\n size={arrowSize}\n direction=\"right\"\n vkuiClass=\"HorizontalScroll__arrowRight\"\n onClick={scrollToRight}\n />\n )}\n <div vkuiClass=\"HorizontalScroll__in\" ref={scrollerRef}>\n <div vkuiClass=\"HorizontalScroll__in-wrapper\">{children}</div>\n </div>\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalScroll\n */\nexport const HorizontalScroll = withAdaptivity(HorizontalScrollComponent, {\n hasMouse: true,\n});\n\nHorizontalScroll.displayName = \"HorizontalScroll\";\n"],"file":"HorizontalScroll.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"names":["classNames","FormField","withAdaptivity","InputComponent","type","align","getRef","className","getRootRef","sizeY","style","before","after","restProps","disabled","Input"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA;;AAUA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAWL;AAAA,uBAVhBC,IAUgB;AAAA,MAVhBA,IAUgB,0BAVT,MAUS;AAAA,MAThBC,KASgB,QAThBA,KASgB;AAAA,MARhBC,MAQgB,QARhBA,MAQgB;AAAA,MAPhBC,SAOgB,QAPhBA,SAOgB;AAAA,MANhBC,UAMgB,QANhBA,UAMgB;AAAA,MALhBC,KAKgB,QALhBA,KAKgB;AAAA,MAJhBC,KAIgB,QAJhBA,KAIgB;AAAA,MAHhBC,MAGgB,QAHhBA,MAGgB;AAAA,MAFhBC,KAEgB,QAFhBA,KAEgB;AAAA,MADbC,SACa;;AAChB,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAEb,UAAU,CACnB,OADmB,EAEnB,CAAC,CAACK,KAAF,qBAAqBA,KAArB,CAFmB,yBAGHI,KAHG,GAGM;AACzBE,IAAAA,MAAM,IAAI,kBAJS,EAKnBC,KAAK,IAAI,iBALU,CADvB;AAQE,IAAA,KAAK,EAAEF,KART;AASE,IAAA,SAAS,EAAEH,SATb;AAUE,IAAA,UAAU,EAAEC,UAVd;AAWE,IAAA,MAAM,EAAEG,MAXV;AAYE,IAAA,KAAK,EAAEC,KAZT;AAaE,IAAA,QAAQ,EAAEC,SAAS,CAACC;AAbtB,KAeE,0CAAWD,SAAX;AAAsB,IAAA,IAAI,EAAET,IAA5B;AAAkC,IAAA,SAAS,EAAC,WAA5C;AAAwD,IAAA,GAAG,EAAEE;AAA7D,KAfF,CADF;AAmBD,CA/BD;AAiCA;AACA;AACA;;;AACA,OAAO,IAAMS,KAAK,GAAGb,cAAc,CAACC,cAAD,EAAiB;AAClDM,EAAAA,KAAK,EAAE;AAD2C,CAAjB,CAA5B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport \"./Input.css\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n AdaptivityProps,\n FormFieldProps {}\n\nconst InputComponent = ({\n type = \"text\",\n align,\n getRef,\n className,\n getRootRef,\n sizeY,\n style,\n before,\n after,\n ...restProps\n}: InputProps) => {\n return (\n <FormField\n vkuiClass={classNames(\n \"Input\",\n !!align && `Input--${align}`,\n `Input--sizeY-${sizeY}`, // TODO v5.0.0 поправить под новую адаптивность\n before && \"Input--hasBefore\",\n after && \"Input--hasAfter\"\n )}\n style={style}\n className={className}\n getRootRef={getRootRef}\n before={before}\n after={after}\n disabled={restProps.disabled}\n >\n <input {...restProps} type={type} vkuiClass=\"Input__el\" ref={getRef} />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Input\n */\nexport const Input = withAdaptivity(InputComponent, {\n sizeY: true,\n});\n"],"file":"Input.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"names":["classNames","FormField","withAdaptivity","InputComponent","type","align","getRef","className","getRootRef","sizeY","style","before","after","restProps","disabled","Input","displayName"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA;;AAUA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAWL;AAAA,uBAVhBC,IAUgB;AAAA,MAVhBA,IAUgB,0BAVT,MAUS;AAAA,MAThBC,KASgB,QAThBA,KASgB;AAAA,MARhBC,MAQgB,QARhBA,MAQgB;AAAA,MAPhBC,SAOgB,QAPhBA,SAOgB;AAAA,MANhBC,UAMgB,QANhBA,UAMgB;AAAA,MALhBC,KAKgB,QALhBA,KAKgB;AAAA,MAJhBC,KAIgB,QAJhBA,KAIgB;AAAA,MAHhBC,MAGgB,QAHhBA,MAGgB;AAAA,MAFhBC,KAEgB,QAFhBA,KAEgB;AAAA,MADbC,SACa;;AAChB,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAEb,UAAU,CACnB,OADmB,EAEnB,CAAC,CAACK,KAAF,qBAAqBA,KAArB,CAFmB,yBAGHI,KAHG,GAGM;AACzBE,IAAAA,MAAM,IAAI,kBAJS,EAKnBC,KAAK,IAAI,iBALU,CADvB;AAQE,IAAA,KAAK,EAAEF,KART;AASE,IAAA,SAAS,EAAEH,SATb;AAUE,IAAA,UAAU,EAAEC,UAVd;AAWE,IAAA,MAAM,EAAEG,MAXV;AAYE,IAAA,KAAK,EAAEC,KAZT;AAaE,IAAA,QAAQ,EAAEC,SAAS,CAACC;AAbtB,KAeE,0CAAWD,SAAX;AAAsB,IAAA,IAAI,EAAET,IAA5B;AAAkC,IAAA,SAAS,EAAC,WAA5C;AAAwD,IAAA,GAAG,EAAEE;AAA7D,KAfF,CADF;AAmBD,CA/BD;AAiCA;AACA;AACA;;;AACA,OAAO,IAAMS,KAAK,GAAGb,cAAc,CAACC,cAAD,EAAiB;AAClDM,EAAAA,KAAK,EAAE;AAD2C,CAAjB,CAA5B;AAIPM,KAAK,CAACC,WAAN,GAAoB,OAApB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport \"./Input.css\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n AdaptivityProps,\n FormFieldProps {}\n\nconst InputComponent = ({\n type = \"text\",\n align,\n getRef,\n className,\n getRootRef,\n sizeY,\n style,\n before,\n after,\n ...restProps\n}: InputProps) => {\n return (\n <FormField\n vkuiClass={classNames(\n \"Input\",\n !!align && `Input--${align}`,\n `Input--sizeY-${sizeY}`, // TODO v5.0.0 поправить под новую адаптивность\n before && \"Input--hasBefore\",\n after && \"Input--hasAfter\"\n )}\n style={style}\n className={className}\n getRootRef={getRootRef}\n before={before}\n after={after}\n disabled={restProps.disabled}\n >\n <input {...restProps} type={type} vkuiClass=\"Input__el\" ref={getRef} />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Input\n */\nexport const Input = withAdaptivity(InputComponent, {\n sizeY: true,\n});\n\nInput.displayName = \"Input\";\n"],"file":"Input.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"names":["hasReactNode","Title","Subhead","classNames","getClassName","usePlatform","ViewWidth","withAdaptivity","PanelHeaderButton","IOS","Platform","ModalDismissButton","Icon24Dismiss","useKeyboard","useAdaptivityIsDesktop","ModalCardBase","getRootRef","icon","header","subheader","children","actions","actionsLayout","viewWidth","hasMouse","viewHeight","onClose","dismissLabel","restProps","platform","isDesktop","isSoftwareKeyboardOpened","isOpened","canShowCloseBtn","SMALL_TABLET","VKCOM","canShowCloseBtnIos"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,KAAT;AACA,SAASC,OAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,SAAT,EAAoBC,cAApB;AAEA,SAASC,iBAAT;AACA,SAASC,GAAT,EAAcC,QAAd;AACA,SAASC,kBAAT;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,WAAT;AAEA,SAASC,sBAAT;AACA;;AAyCA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAGR,cAAc,CAGzC,gBAcM;AAAA,MAbJS,UAaI,QAbJA,UAaI;AAAA,MAZJC,IAYI,QAZJA,IAYI;AAAA,MAXJC,MAWI,QAXJA,MAWI;AAAA,MAVJC,SAUI,QAVJA,SAUI;AAAA,MATJC,QASI,QATJA,QASI;AAAA,MARJC,OAQI,QARJA,OAQI;AAAA,MAPJC,aAOI,QAPJA,aAOI;AAAA,MANJC,SAMI,QANJA,SAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AAAA,MAJJC,UAII,QAJJA,UAII;AAAA,MAHJC,OAGI,QAHJA,OAGI;AAAA,+BAFJC,YAEI;AAAA,MAFJA,YAEI,kCAFW,QAEX;AAAA,MADDC,SACC;;AACJ,MAAMC,QAAQ,GAAGxB,WAAW,EAA5B;AACA,MAAMyB,SAAS,GAAGhB,sBAAsB,EAAxC;AACA,MAAMiB,wBAAwB,GAAGlB,WAAW,GAAGmB,QAA/C;AAEA,MAAMC,eAAe,GACnBV,SAAS,IAAIjB,SAAS,CAAC4B,YAAvB,IAAuCL,QAAQ,KAAKnB,QAAQ,CAACyB,KAD/D;AAEA,MAAMC,kBAAkB,GAAGP,QAAQ,KAAKpB,GAAb,IAAoB,CAACwB,eAAhD;AAEA,SACE,wCACML,SADN;AAEE,IAAA,SAAS,EAAEzB,UAAU,CACnBC,YAAY,CAAC,eAAD,EAAkByB,QAAlB,CADO,EAEnBC,SAAS,IAAI,wBAFM,CAFvB;AAME,IAAA,GAAG,EAAEd;AANP,MAQE;AACE,IAAA,SAAS,EAAEb,UAAU,CACnB,0BADmB,EAEnB4B,wBAAwB,IACtB,kDAHiB;AADvB,KAOG/B,YAAY,CAACiB,IAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,IAAtC,CARJ,EAUGjB,YAAY,CAACkB,MAAD,CAAZ,IACC,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,GAAxB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGA,MADH,CAXJ,EAeGlB,YAAY,CAACmB,SAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAA+CA,SAA/C,CAhBJ,EAmBGC,QAnBH,EAqBGpB,YAAY,CAACqB,OAAD,CAAZ,IACC;AACE,IAAA,SAAS,EAAElB,UAAU,CACnB,wBADmB,EAEnBmB,aAAa,KAAK,UAAlB,IAAgC,2BAFb;AADvB,KAMGD,OANH,CAtBJ,EAgCGY,eAAe,IAAI,oBAAC,kBAAD;AAAoB,IAAA,OAAO,EAAEP;AAA7B,IAhCtB,EAiCGU,kBAAkB,IACjB,oBAAC,iBAAD;AACE,kBAAYT,YADd;AAEE,IAAA,SAAS,EAAC,wBAFZ;AAGE,IAAA,OAAO,EAAED;AAHX,KAKE,oBAAC,aAAD,OALF,CAlCJ,CARF,CADF;AAsDD,CAhFwC,EAiFzC;AACEH,EAAAA,SAAS,EAAE,IADb;AAEEE,EAAAA,UAAU,EAAE,IAFd;AAGED,EAAAA,QAAQ,EAAE;AAHZ,CAjFyC,CAApC","sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { ViewWidth, withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { HasRootRef } from \"../../types\";\nimport { PanelHeaderButton } from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { IOS, Platform } from \"../../lib/platform\";\nimport { ModalDismissButton } from \"../ModalDismissButton/ModalDismissButton\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport { useKeyboard } from \"../../hooks/useKeyboard\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport { useAdaptivityIsDesktop } from \"../../hooks/useAdaptivity\";\nimport \"./ModalCardBase.css\";\n\nexport interface ModalCardBaseProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия.\n *\n * Рекомендуется использовать `<Button size=\"l\" mode=\"primary\" />` или `<Button size=\"l\" mode=\"secondary\" />`\n */\n actions?: React.ReactNode;\n\n /**\n * Тип отображения кнопок: вертикальный или горизонтальный\n */\n actionsLayout?: \"vertical\" | \"horizontal\";\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCardBase\n */\nexport const ModalCardBase = withAdaptivity<\n ModalCardBaseProps & AdaptivityContextInterface\n>(\n ({\n getRootRef,\n icon,\n header,\n subheader,\n children,\n actions,\n actionsLayout,\n viewWidth,\n hasMouse,\n viewHeight,\n onClose,\n dismissLabel = \"Скрыть\",\n ...restProps\n }) => {\n const platform = usePlatform();\n const isDesktop = useAdaptivityIsDesktop();\n const isSoftwareKeyboardOpened = useKeyboard().isOpened;\n\n const canShowCloseBtn =\n viewWidth >= ViewWidth.SMALL_TABLET || platform === Platform.VKCOM;\n const canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"ModalCardBase\", platform),\n isDesktop && \"ModalCardBase--desktop\"\n )}\n ref={getRootRef}\n >\n <div\n vkuiClass={classNames(\n \"ModalCardBase__container\",\n isSoftwareKeyboardOpened &&\n \"ModalCardBase__container--softwareKeyboardOpened\"\n )}\n >\n {hasReactNode(icon) && (\n <div vkuiClass=\"ModalCardBase__icon\">{icon}</div>\n )}\n {hasReactNode(header) && (\n <Title level=\"2\" weight=\"2\" vkuiClass=\"ModalCardBase__header\">\n {header}\n </Title>\n )}\n {hasReactNode(subheader) && (\n <Subhead vkuiClass=\"ModalCardBase__subheader\">{subheader}</Subhead>\n )}\n\n {children}\n\n {hasReactNode(actions) && (\n <div\n vkuiClass={classNames(\n \"ModalCardBase__actions\",\n actionsLayout === \"vertical\" && \"ModalCardBase__actions--v\"\n )}\n >\n {actions}\n </div>\n )}\n\n {canShowCloseBtn && <ModalDismissButton onClick={onClose} />}\n {canShowCloseBtnIos && (\n <PanelHeaderButton\n aria-label={dismissLabel}\n vkuiClass=\"ModalCardBase__dismiss\"\n onClick={onClose}\n >\n <Icon24Dismiss />\n </PanelHeaderButton>\n )}\n </div>\n </div>\n );\n },\n {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n }\n);\n"],"file":"ModalCardBase.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"names":["hasReactNode","Title","Subhead","classNames","getClassName","usePlatform","ViewWidth","withAdaptivity","PanelHeaderButton","IOS","Platform","ModalDismissButton","Icon24Dismiss","useKeyboard","useAdaptivityIsDesktop","ModalCardBase","getRootRef","icon","header","subheader","children","actions","actionsLayout","viewWidth","hasMouse","viewHeight","onClose","dismissLabel","restProps","platform","isDesktop","isSoftwareKeyboardOpened","isOpened","canShowCloseBtn","SMALL_TABLET","VKCOM","canShowCloseBtnIos","displayName"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,KAAT;AACA,SAASC,OAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,SAAT,EAAoBC,cAApB;AAEA,SAASC,iBAAT;AACA,SAASC,GAAT,EAAcC,QAAd;AACA,SAASC,kBAAT;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,WAAT;AAEA,SAASC,sBAAT;AACA;;AAyCA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAGR,cAAc,CAGzC,gBAcM;AAAA,MAbJS,UAaI,QAbJA,UAaI;AAAA,MAZJC,IAYI,QAZJA,IAYI;AAAA,MAXJC,MAWI,QAXJA,MAWI;AAAA,MAVJC,SAUI,QAVJA,SAUI;AAAA,MATJC,QASI,QATJA,QASI;AAAA,MARJC,OAQI,QARJA,OAQI;AAAA,MAPJC,aAOI,QAPJA,aAOI;AAAA,MANJC,SAMI,QANJA,SAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AAAA,MAJJC,UAII,QAJJA,UAII;AAAA,MAHJC,OAGI,QAHJA,OAGI;AAAA,+BAFJC,YAEI;AAAA,MAFJA,YAEI,kCAFW,QAEX;AAAA,MADDC,SACC;;AACJ,MAAMC,QAAQ,GAAGxB,WAAW,EAA5B;AACA,MAAMyB,SAAS,GAAGhB,sBAAsB,EAAxC;AACA,MAAMiB,wBAAwB,GAAGlB,WAAW,GAAGmB,QAA/C;AAEA,MAAMC,eAAe,GACnBV,SAAS,IAAIjB,SAAS,CAAC4B,YAAvB,IAAuCL,QAAQ,KAAKnB,QAAQ,CAACyB,KAD/D;AAEA,MAAMC,kBAAkB,GAAGP,QAAQ,KAAKpB,GAAb,IAAoB,CAACwB,eAAhD;AAEA,SACE,wCACML,SADN;AAEE,IAAA,SAAS,EAAEzB,UAAU,CACnBC,YAAY,CAAC,eAAD,EAAkByB,QAAlB,CADO,EAEnBC,SAAS,IAAI,wBAFM,CAFvB;AAME,IAAA,GAAG,EAAEd;AANP,MAQE;AACE,IAAA,SAAS,EAAEb,UAAU,CACnB,0BADmB,EAEnB4B,wBAAwB,IACtB,kDAHiB;AADvB,KAOG/B,YAAY,CAACiB,IAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,IAAtC,CARJ,EAUGjB,YAAY,CAACkB,MAAD,CAAZ,IACC,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,GAAxB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGA,MADH,CAXJ,EAeGlB,YAAY,CAACmB,SAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAA+CA,SAA/C,CAhBJ,EAmBGC,QAnBH,EAqBGpB,YAAY,CAACqB,OAAD,CAAZ,IACC;AACE,IAAA,SAAS,EAAElB,UAAU,CACnB,wBADmB,EAEnBmB,aAAa,KAAK,UAAlB,IAAgC,2BAFb;AADvB,KAMGD,OANH,CAtBJ,EAgCGY,eAAe,IAAI,oBAAC,kBAAD;AAAoB,IAAA,OAAO,EAAEP;AAA7B,IAhCtB,EAiCGU,kBAAkB,IACjB,oBAAC,iBAAD;AACE,kBAAYT,YADd;AAEE,IAAA,SAAS,EAAC,wBAFZ;AAGE,IAAA,OAAO,EAAED;AAHX,KAKE,oBAAC,aAAD,OALF,CAlCJ,CARF,CADF;AAsDD,CAhFwC,EAiFzC;AACEH,EAAAA,SAAS,EAAE,IADb;AAEEE,EAAAA,UAAU,EAAE,IAFd;AAGED,EAAAA,QAAQ,EAAE;AAHZ,CAjFyC,CAApC;AAwFPT,aAAa,CAACsB,WAAd,GAA4B,eAA5B","sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { ViewWidth, withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { HasRootRef } from \"../../types\";\nimport { PanelHeaderButton } from \"../PanelHeaderButton/PanelHeaderButton\";\nimport { IOS, Platform } from \"../../lib/platform\";\nimport { ModalDismissButton } from \"../ModalDismissButton/ModalDismissButton\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport { useKeyboard } from \"../../hooks/useKeyboard\";\nimport { AdaptivityContextInterface } from \"../AdaptivityProvider/AdaptivityContext\";\nimport { useAdaptivityIsDesktop } from \"../../hooks/useAdaptivity\";\nimport \"./ModalCardBase.css\";\n\nexport interface ModalCardBaseProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия.\n *\n * Рекомендуется использовать `<Button size=\"l\" mode=\"primary\" />` или `<Button size=\"l\" mode=\"secondary\" />`\n */\n actions?: React.ReactNode;\n\n /**\n * Тип отображения кнопок: вертикальный или горизонтальный\n */\n actionsLayout?: \"vertical\" | \"horizontal\";\n onClose?: VoidFunction;\n\n /**\n * `aria-label` для кнопки закрытия. Необходим, чтобы кнопка была доступной.\n */\n dismissLabel?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalCardBase\n */\nexport const ModalCardBase = withAdaptivity<\n ModalCardBaseProps & AdaptivityContextInterface\n>(\n ({\n getRootRef,\n icon,\n header,\n subheader,\n children,\n actions,\n actionsLayout,\n viewWidth,\n hasMouse,\n viewHeight,\n onClose,\n dismissLabel = \"Скрыть\",\n ...restProps\n }) => {\n const platform = usePlatform();\n const isDesktop = useAdaptivityIsDesktop();\n const isSoftwareKeyboardOpened = useKeyboard().isOpened;\n\n const canShowCloseBtn =\n viewWidth >= ViewWidth.SMALL_TABLET || platform === Platform.VKCOM;\n const canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"ModalCardBase\", platform),\n isDesktop && \"ModalCardBase--desktop\"\n )}\n ref={getRootRef}\n >\n <div\n vkuiClass={classNames(\n \"ModalCardBase__container\",\n isSoftwareKeyboardOpened &&\n \"ModalCardBase__container--softwareKeyboardOpened\"\n )}\n >\n {hasReactNode(icon) && (\n <div vkuiClass=\"ModalCardBase__icon\">{icon}</div>\n )}\n {hasReactNode(header) && (\n <Title level=\"2\" weight=\"2\" vkuiClass=\"ModalCardBase__header\">\n {header}\n </Title>\n )}\n {hasReactNode(subheader) && (\n <Subhead vkuiClass=\"ModalCardBase__subheader\">{subheader}</Subhead>\n )}\n\n {children}\n\n {hasReactNode(actions) && (\n <div\n vkuiClass={classNames(\n \"ModalCardBase__actions\",\n actionsLayout === \"vertical\" && \"ModalCardBase__actions--v\"\n )}\n >\n {actions}\n </div>\n )}\n\n {canShowCloseBtn && <ModalDismissButton onClick={onClose} />}\n {canShowCloseBtnIos && (\n <PanelHeaderButton\n aria-label={dismissLabel}\n vkuiClass=\"ModalCardBase__dismiss\"\n onClick={onClose}\n >\n <Icon24Dismiss />\n </PanelHeaderButton>\n )}\n </div>\n </div>\n );\n },\n {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n }\n);\n\nModalCardBase.displayName = \"ModalCardBase\";\n"],"file":"ModalCardBase.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/NativeSelect/NativeSelect.tsx"],"names":["React","classNames","DropdownIcon","FormField","withAdaptivity","getClassName","useIsomorphicLayoutEffect","useEnsuredControl","useExternRef","usePlatform","SelectType","SelectTypography","NativeSelectComponent","style","defaultValue","align","placeholder","children","className","getRef","getRootRef","disabled","sizeX","sizeY","multiline","selectType","default","restProps","platform","useState","title","setTitle","empty","setEmpty","value","onChange","selectRef","selectedOption","current","options","selectedIndex","text","NativeSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { SelectType, SelectTypography } from \"../Select/Select\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"../Select/Select.css\";\n\nexport interface NativeSelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement>,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLLabelElement>,\n HasAlign,\n AdaptivityProps {\n placeholder?: string;\n multiline?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n title?: string;\n notSelected?: boolean;\n}\n\nconst NativeSelectComponent = ({\n style,\n defaultValue = \"\",\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n sizeX,\n sizeY,\n multiline,\n selectType = SelectType.default,\n ...restProps\n}: NativeSelectProps & AdaptivityContextInterface) => {\n const platform = usePlatform();\n const [title, setTitle] = React.useState(\"\");\n const [empty, setEmpty] = React.useState(false);\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const selectRef = useExternRef(getRef);\n useIsomorphicLayoutEffect(() => {\n const selectedOption =\n selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setEmpty(selectedOption.value === \"\" && placeholder != null);\n }\n }, [value, children]);\n\n return (\n <FormField\n Component=\"label\"\n vkuiClass={classNames(\n getClassName(\"Select\", platform),\n `Select--${selectType}`,\n empty && \"Select--empty\",\n multiline && \"Select--multiline\",\n align && `Select--align-${align}`,\n `Select--sizeX-${sizeX}`,\n `Select--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n after={<DropdownIcon />}\n >\n <select\n {...restProps}\n disabled={disabled}\n vkuiClass=\"Select__el\"\n onChange={onChange}\n value={value}\n ref={selectRef}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {children}\n </select>\n <div vkuiClass=\"Select__container\">\n {/* TODO v5.0.0 поправить под новую адаптивность */}\n <SelectTypography vkuiClass=\"Select__title\">{title}</SelectTypography>\n </div>\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/NativeSelect\n */\nexport const NativeSelect = withAdaptivity(NativeSelectComponent, {\n sizeX: true,\n sizeY: true,\n});\n"],"file":"NativeSelect.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/NativeSelect/NativeSelect.tsx"],"names":["React","classNames","DropdownIcon","FormField","withAdaptivity","getClassName","useIsomorphicLayoutEffect","useEnsuredControl","useExternRef","usePlatform","SelectType","SelectTypography","NativeSelectComponent","style","defaultValue","align","placeholder","children","className","getRef","getRootRef","disabled","sizeX","sizeY","multiline","selectType","default","restProps","platform","useState","title","setTitle","empty","setEmpty","value","onChange","selectRef","selectedOption","current","options","selectedIndex","text","NativeSelect","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { SelectType, SelectTypography } from \"../Select/Select\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"../Select/Select.css\";\n\nexport interface NativeSelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement>,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLLabelElement>,\n HasAlign,\n AdaptivityProps {\n placeholder?: string;\n multiline?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n title?: string;\n notSelected?: boolean;\n}\n\nconst NativeSelectComponent = ({\n style,\n defaultValue = \"\",\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n sizeX,\n sizeY,\n multiline,\n selectType = SelectType.default,\n ...restProps\n}: NativeSelectProps & AdaptivityContextInterface) => {\n const platform = usePlatform();\n const [title, setTitle] = React.useState(\"\");\n const [empty, setEmpty] = React.useState(false);\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const selectRef = useExternRef(getRef);\n useIsomorphicLayoutEffect(() => {\n const selectedOption =\n selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setEmpty(selectedOption.value === \"\" && placeholder != null);\n }\n }, [value, children]);\n\n return (\n <FormField\n Component=\"label\"\n vkuiClass={classNames(\n getClassName(\"Select\", platform),\n `Select--${selectType}`,\n empty && \"Select--empty\",\n multiline && \"Select--multiline\",\n align && `Select--align-${align}`,\n `Select--sizeX-${sizeX}`,\n `Select--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n after={<DropdownIcon />}\n >\n <select\n {...restProps}\n disabled={disabled}\n vkuiClass=\"Select__el\"\n onChange={onChange}\n value={value}\n ref={selectRef}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {children}\n </select>\n <div vkuiClass=\"Select__container\">\n {/* TODO v5.0.0 поправить под новую адаптивность */}\n <SelectTypography vkuiClass=\"Select__title\">{title}</SelectTypography>\n </div>\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/NativeSelect\n */\nexport const NativeSelect = withAdaptivity(NativeSelectComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nNativeSelect.displayName = \"NativeSelect\";\n"],"file":"NativeSelect.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Panel/Panel.tsx"],"names":["getClassName","classNames","Touch","TooltipContainer","withAdaptivity","IOS","usePlatform","Panel","centered","children","getRootRef","sizeX","nav","restProps","platform"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,KAAT;AACA,SAASC,gBAAT;AAEA,SAASC,cAAT;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AAMA;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,GAAGH,cAAc,CACjC,gBAA0E;AAAA,2BAAvEI,QAAuE;AAAA,MAAvEA,QAAuE,8BAA5D,KAA4D;AAAA,MAArDC,QAAqD,QAArDA,QAAqD;AAAA,MAA3CC,UAA2C,QAA3CA,UAA2C;AAAA,MAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBC,GAAwB,QAAxBA,GAAwB;AAAA,MAAhBC,SAAgB;;AACxE,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,wCACMO,SADN;AAEE,IAAA,GAAG,EAAEH,UAFP,CAGE;AAHF;AAIE,IAAA,SAAS,EAAET,UAAU,CACnBD,YAAY,CAAC,OAAD,EAAUc,QAAV,CADO,mBAETH,KAFS;AAIjB,yBAAmBH;AAJF,8BAKAG,KALA,GAKU,IALV;AAJvB,MAaE,oBAAC,KAAD;AAAO,IAAA,SAAS,EAAER,gBAAlB;AAAoC,IAAA,SAAS,EAAC;AAA9C,KACGW,QAAQ,KAAKT,GAAb,IAAoB;AAAK,IAAA,SAAS,EAAC;AAAf,IADvB,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,IAFF,EAGGG,QAAQ,GACP;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCC,QAAlC,CADO,GAGPA,QANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,IARF,CAbF,CADF;AA0BD,CA9BgC,EA+BjC;AACEE,EAAAA,KAAK,EAAE;AADT,CA/BiC,CAA5B","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Touch } from \"../Touch/Touch\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { HasRootRef } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { NavIdProps } from \"../../lib/getNavId\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Panel.css\";\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps,\n NavIdProps {\n centered?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Panel\n */\nexport const Panel = withAdaptivity<PanelProps & AdaptivityContextInterface>(\n ({ centered = false, children, getRootRef, sizeX, nav, ...restProps }) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"Panel\", platform),\n `Panel--${sizeX}`,\n {\n \"Panel--centered\": centered,\n [`Panel--sizeX-${sizeX}`]: true,\n }\n )}\n >\n <Touch Component={TooltipContainer} vkuiClass=\"Panel__in\">\n {platform === IOS && <div vkuiClass=\"Panel__fade\" />}\n <div vkuiClass=\"Panel__in-before\" />\n {centered ? (\n <div vkuiClass=\"Panel__centered\">{children}</div>\n ) : (\n children\n )}\n <div vkuiClass=\"Panel__in-after\" />\n </Touch>\n </div>\n );\n },\n {\n sizeX: true,\n }\n);\n"],"file":"Panel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Panel/Panel.tsx"],"names":["getClassName","classNames","Touch","TooltipContainer","withAdaptivity","IOS","usePlatform","Panel","centered","children","getRootRef","sizeX","nav","restProps","platform","displayName"],"mappings":";;;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AACA,SAASC,KAAT;AACA,SAASC,gBAAT;AAEA,SAASC,cAAT;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AAMA;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,GAAGH,cAAc,CACjC,gBAA0E;AAAA,2BAAvEI,QAAuE;AAAA,MAAvEA,QAAuE,8BAA5D,KAA4D;AAAA,MAArDC,QAAqD,QAArDA,QAAqD;AAAA,MAA3CC,UAA2C,QAA3CA,UAA2C;AAAA,MAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,MAAxBC,GAAwB,QAAxBA,GAAwB;AAAA,MAAhBC,SAAgB;;AACxE,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AAEA,SACE,wCACMO,SADN;AAEE,IAAA,GAAG,EAAEH,UAFP,CAGE;AAHF;AAIE,IAAA,SAAS,EAAET,UAAU,CACnBD,YAAY,CAAC,OAAD,EAAUc,QAAV,CADO,mBAETH,KAFS;AAIjB,yBAAmBH;AAJF,8BAKAG,KALA,GAKU,IALV;AAJvB,MAaE,oBAAC,KAAD;AAAO,IAAA,SAAS,EAAER,gBAAlB;AAAoC,IAAA,SAAS,EAAC;AAA9C,KACGW,QAAQ,KAAKT,GAAb,IAAoB;AAAK,IAAA,SAAS,EAAC;AAAf,IADvB,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,IAFF,EAGGG,QAAQ,GACP;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCC,QAAlC,CADO,GAGPA,QANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,IARF,CAbF,CADF;AA0BD,CA9BgC,EA+BjC;AACEE,EAAAA,KAAK,EAAE;AADT,CA/BiC,CAA5B;AAoCPJ,KAAK,CAACQ,WAAN,GAAoB,OAApB","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Touch } from \"../Touch/Touch\";\nimport { TooltipContainer } from \"../Tooltip/TooltipContainer\";\nimport { HasRootRef } from \"../../types\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { NavIdProps } from \"../../lib/getNavId\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Panel.css\";\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps,\n NavIdProps {\n centered?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Panel\n */\nexport const Panel = withAdaptivity<PanelProps & AdaptivityContextInterface>(\n ({ centered = false, children, getRootRef, sizeX, nav, ...restProps }) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"Panel\", platform),\n `Panel--${sizeX}`,\n {\n \"Panel--centered\": centered,\n [`Panel--sizeX-${sizeX}`]: true,\n }\n )}\n >\n <Touch Component={TooltipContainer} vkuiClass=\"Panel__in\">\n {platform === IOS && <div vkuiClass=\"Panel__fade\" />}\n <div vkuiClass=\"Panel__in-before\" />\n {centered ? (\n <div vkuiClass=\"Panel__centered\">{children}</div>\n ) : (\n children\n )}\n <div vkuiClass=\"Panel__in-after\" />\n </Touch>\n </div>\n );\n },\n {\n sizeX: true,\n }\n);\n\nPanel.displayName = \"Panel\";\n"],"file":"Panel.js"}
|