@vkontakte/vkui 4.40.0 → 4.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +12 -10
- package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +4 -3
- package/dist/cjs/components/Checkbox/Checkbox.d.ts +4 -3
- package/dist/cjs/components/Checkbox/Checkbox.js +12 -2
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js +3 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -0
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +4 -3
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +4 -3
- package/dist/components/Checkbox/Checkbox.js +12 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +3 -1
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +1 -0
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/Search/Search.js +4 -3
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components.css +5 -5
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +4 -3
- package/dist/cssm/components/Checkbox/Checkbox.js +12 -2
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -0
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.css +1 -1
- package/dist/cssm/components/Popper/Popper.css +1 -1
- package/dist/cssm/components/Root/Root.css +1 -1
- package/dist/cssm/components/Search/Search.js +4 -3
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
- package/dist/cssm/components/View/View.css +1 -1
- package/dist/cssm/styles/components.css +5 -5
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/vkui.css +6 -6
- package/dist/vkui.css.map +1 -1
- package/package.json +2 -2
- package/src/components/Checkbox/Checkbox.tsx +20 -2
- package/src/components/ChipsSelect/ChipsSelect.tsx +46 -43
- package/src/components/CustomScrollView/CustomScrollView.tsx +6 -1
- package/src/components/CustomSelect/CustomSelect.tsx +1 -0
- package/src/components/PopoutRoot/PopoutRoot.css +3 -3
- package/src/components/Popper/Popper.css +1 -1
- package/src/components/Root/Root.css +2 -2
- package/src/components/Search/Search.tsx +9 -3
- package/src/components/Snackbar/Snackbar.css +1 -1
- package/src/components/SplitLayout/SplitLayout.css +2 -2
- package/src/components/View/View.css +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomSelect.js","names":["React","SelectMimicry","debounce","multiRef","getTitleFromChildren","classNames","withAdaptivity","CustomSelectOption","Input","DropdownIcon","Caption","warnOnce","defaultFilterFn","getFormFieldModeFromSelectType","CustomSelectDropdown","SelectType","useIsomorphicLayoutEffect","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","handleOptionDown","e","preventDefault","findSelectedIndex","Number","filter","inputValue","filterFn","defaultOptions","CustomSelectComponent","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","sizeY","platform","style","onChange","children","onInputChangeProp","onInputChange","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","default","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOption","renderOptionProp","optionsProp","emptyText","icon","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","containerRef","useRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","onKeyboardInput","key","fullInput","optionIndex","label","toLowerCase","close","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","focusOption","type","nextIndex","beforeIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","placeholder","CustomSelect"],"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SelectMimicry } from \"../SelectMimicry/SelectMimicry\";\nimport { debounce, multiRef, getTitleFromChildren } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport { Input } from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n defaultFilterFn,\n getFormFieldModeFromSelectType,\n} from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { TrackerOptionsProps } from \"../CustomScrollView/useTrackerVisibility\";\nimport { SelectType } from \"../Select/Select\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.\",\n \"error\"\n );\n }\n};\n\nfunction defaultRenderOptionFn({\n option,\n ...props\n}: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (\n e: React.MouseEvent<HTMLElement>\n) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue\n) {\n return (\n options.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps,\n TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nfunction CustomSelectComponent(props: CustomSelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n sizeY,\n platform,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = SelectType.default,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = \"Ничего не найдено\",\n filterFn = defaultFilterFn,\n icon = <DropdownIcon opened={opened} />,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(optionsProp);\n }\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const selectElRef = React.useRef<HTMLSelectElement>(null);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<\n number | undefined\n >(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(\n props.value !== undefined\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n props.value ?? props.defaultValue\n );\n const [keyboardInput, setKeyboardInput] = React.useState(\"\");\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<\n number | undefined\n >(findSelectedIndex(optionsProp, props.value ?? props.defaultValue));\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue(\n (nativeSelectValue) => props.value ?? nativeSelectValue\n );\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (nativeSelectValue !== undefined) {\n const event = new Event(\"change\", { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n classNames(\n opened && \"Select--open\",\n opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes(\"top\")\n ? \"Select--pop-up\"\n : \"Select--pop-down\")\n ),\n [dropdownOffsetDistance, opened, popperPlacement]\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput(\"\");\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\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 isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length]\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (options.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex\n );\n },\n [options, scrollToElement]\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label)\n .toLowerCase()\n .includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options]\n );\n\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue(\"\");\n setOpened(false);\n setFocusedOptionIndex(-1);\n setOptions(optionsProp);\n onClose?.();\n }, [onClose, optionsProp, resetKeyboardInput]);\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex !== undefined && isValidIndex(focusedOptionIndex)) {\n const item = options[focusedOptionIndex];\n\n setNativeSelectValue(item?.value);\n close();\n }\n }, [close, focusedOptionIndex, isValidIndex, options]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === \"function\") {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n React.useEffect(() => {\n if (\n opened &&\n selectedOptionIndex !== undefined &&\n isValidIndex(selectedOptionIndex)\n ) {\n scrollToElement(selectedOptionIndex, true);\n }\n }, [isValidIndex, opened, scrollToElement, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event(\"blur\");\n selectElRef.current?.dispatchEvent(event);\n }, [close]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event(\"focus\");\n selectElRef.current?.dispatchEvent(event);\n }, []);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(\n () => debounce(resetKeyboardInput, 1000),\n [resetKeyboardInput]\n );\n\n const focusOption = React.useCallback(\n (type: \"next\" | \"prev\") => {\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options]\n );\n\n React.useEffect(() => {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value));\n }, [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n ]);\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback(\n (e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n },\n []\n );\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> =\n React.useCallback(\n (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n },\n [isControlledOutside, onChange, options, selectedOptionIndex]\n );\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> =\n React.useCallback(\n (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n areOptionsShown() && focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n areOptionsShown() && focusOption(\"next\");\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused]\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> =\n React.useCallback(\n (e) => {\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет \" +\n \"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.\"\n );\n }\n setOptions(options);\n setSelectedOptionIndex(\n findSelectedIndex(options, nativeSelectValue)\n );\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp]\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== \" \") {\n onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n areOptionsShown() && focusOption(\"prev\");\n } else {\n open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n areOptionsShown() && focusOption(\"next\");\n } else {\n open();\n }\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [\n areOptionsShown,\n close,\n focusOption,\n onKeyboardInput,\n open,\n opened,\n selectFocused,\n ]\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectFocused();\n }\n },\n [options, selectFocused]\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n },\n [focusOptionByIndex]\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ]\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">{emptyText}</Caption>\n );\n\n if (typeof renderDropdown === \"function\") {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n return (\n <label\n vkuiClass=\"CustomSelect\"\n className={className}\n style={style}\n ref={multiRef(containerRef, getRootRef)}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={props.onClick}\n before={before}\n after={icon}\n placeholder={restProps.placeholder}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n after={icon}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n observableRefs={scrollBoxRef}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport const CustomSelect = withAdaptivity(CustomSelectComponent, {\n sizeY: true,\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CustomSelect.js","names":["React","SelectMimicry","debounce","multiRef","getTitleFromChildren","classNames","withAdaptivity","CustomSelectOption","Input","DropdownIcon","Caption","warnOnce","defaultFilterFn","getFormFieldModeFromSelectType","CustomSelectDropdown","SelectType","useIsomorphicLayoutEffect","findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","handleOptionDown","e","preventDefault","findSelectedIndex","Number","filter","inputValue","filterFn","defaultOptions","CustomSelectComponent","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","sizeY","platform","style","onChange","children","onInputChangeProp","onInputChange","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","default","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOption","renderOptionProp","optionsProp","emptyText","icon","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","containerRef","useRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","onKeyboardInput","key","fullInput","optionIndex","label","toLowerCase","close","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","focusOption","type","nextIndex","beforeIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","placeholder","CustomSelect"],"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SelectMimicry } from \"../SelectMimicry/SelectMimicry\";\nimport { debounce, multiRef, getTitleFromChildren } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport { Input } from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n defaultFilterFn,\n getFormFieldModeFromSelectType,\n} from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { TrackerOptionsProps } from \"../CustomScrollView/useTrackerVisibility\";\nimport { SelectType } from \"../Select/Select\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.\",\n \"error\"\n );\n }\n};\n\nfunction defaultRenderOptionFn({\n option,\n ...props\n}: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (\n e: React.MouseEvent<HTMLElement>\n) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue\n) {\n return (\n options.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps,\n TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nfunction CustomSelectComponent(props: CustomSelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n sizeY,\n platform,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = SelectType.default,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = \"Ничего не найдено\",\n filterFn = defaultFilterFn,\n icon = <DropdownIcon opened={opened} />,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(optionsProp);\n }\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const selectElRef = React.useRef<HTMLSelectElement>(null);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<\n number | undefined\n >(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(\n props.value !== undefined\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n props.value ?? props.defaultValue\n );\n const [keyboardInput, setKeyboardInput] = React.useState(\"\");\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<\n number | undefined\n >(findSelectedIndex(optionsProp, props.value ?? props.defaultValue));\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue(\n (nativeSelectValue) => props.value ?? nativeSelectValue\n );\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (nativeSelectValue !== undefined) {\n const event = new Event(\"change\", { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n classNames(\n opened && \"Select--open\",\n opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes(\"top\")\n ? \"Select--pop-up\"\n : \"Select--pop-down\")\n ),\n [dropdownOffsetDistance, opened, popperPlacement]\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput(\"\");\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\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 isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length]\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (options.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex\n );\n },\n [options, scrollToElement]\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label)\n .toLowerCase()\n .includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options]\n );\n\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue(\"\");\n setOpened(false);\n setFocusedOptionIndex(-1);\n setOptions(optionsProp);\n onClose?.();\n }, [onClose, optionsProp, resetKeyboardInput]);\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex !== undefined && isValidIndex(focusedOptionIndex)) {\n const item = options[focusedOptionIndex];\n\n setNativeSelectValue(item?.value);\n close();\n }\n }, [close, focusedOptionIndex, isValidIndex, options]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === \"function\") {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n React.useEffect(() => {\n if (\n opened &&\n selectedOptionIndex !== undefined &&\n isValidIndex(selectedOptionIndex)\n ) {\n scrollToElement(selectedOptionIndex, true);\n }\n }, [isValidIndex, opened, scrollToElement, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event(\"blur\");\n selectElRef.current?.dispatchEvent(event);\n }, [close]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event(\"focus\");\n selectElRef.current?.dispatchEvent(event);\n }, []);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(\n () => debounce(resetKeyboardInput, 1000),\n [resetKeyboardInput]\n );\n\n const focusOption = React.useCallback(\n (type: \"next\" | \"prev\") => {\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options]\n );\n\n React.useEffect(() => {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value));\n }, [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n ]);\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback(\n (e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n },\n []\n );\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> =\n React.useCallback(\n (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n },\n [isControlledOutside, onChange, options, selectedOptionIndex]\n );\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> =\n React.useCallback(\n (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n areOptionsShown() && focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n areOptionsShown() && focusOption(\"next\");\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused]\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> =\n React.useCallback(\n (e) => {\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет \" +\n \"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.\"\n );\n }\n setOptions(options);\n setSelectedOptionIndex(\n findSelectedIndex(options, nativeSelectValue)\n );\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp]\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== \" \") {\n onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n areOptionsShown() && focusOption(\"prev\");\n } else {\n open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n areOptionsShown() && focusOption(\"next\");\n } else {\n open();\n }\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [\n areOptionsShown,\n close,\n focusOption,\n onKeyboardInput,\n open,\n opened,\n selectFocused,\n ]\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectFocused();\n }\n },\n [options, selectFocused]\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n },\n [focusOptionByIndex]\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ]\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">{emptyText}</Caption>\n );\n\n if (typeof renderDropdown === \"function\") {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n return (\n <label\n vkuiClass=\"CustomSelect\"\n className={className}\n style={style}\n ref={multiRef(containerRef, getRootRef)}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={props.onClick}\n before={before}\n after={icon}\n placeholder={restProps.placeholder}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n before={before}\n after={icon}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n observableRefs={scrollBoxRef}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport const CustomSelect = withAdaptivity(CustomSelectComponent, {\n sizeY: true,\n});\n"],"mappings":";;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,aAAa;AACtB,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,oBAAoB;AACjD,SAASC,UAAU;AAEnB,SAASC,cAAc;AACvB,SACEC,kBAAkB;AAKpB,SAASC,KAAK;AACd,SAASC,YAAY;AACrB,SAASC,OAAO;AAChB,SAASC,QAAQ;AACjB,SACEC,eAAe,EACfC,8BAA8B;AAGhC,SAASC,oBAAoB;AAE7B,SAASC,UAAU;AACnB,SAASC,yBAAyB;AAClC;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAc,GAGf;EAAA,IAFHC,OAAsC,uEAAG,EAAE;EAAA,IAC3CC,UAAU,uEAAG,CAAC,CAAC;EAEf,IAAIA,UAAU,IAAID,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;IACpC,OAAO,CAAC,CAAC;EACX;EACA,OAAOF,OAAO,CAACG,SAAS,CAAC,UAACC,MAAM,EAAEC,CAAC;IAAA,OAAKA,CAAC,GAAGJ,UAAU,IAAI,CAACG,MAAM,CAACE,QAAQ;EAAA,EAAC;AAC7E,CAAC;AAED,IAAMC,eAAe,GAAG,SAAlBA,eAAe,GAGhB;EAAA,IAFHP,OAAsC,uEAAG,EAAE;EAAA,IAC3CQ,QAAgB,uEAAGR,OAAO,CAACE,MAAM;EAEjC,IAAIO,MAAM,GAAG,CAAC,CAAC;EACf,IAAID,QAAQ,IAAI,CAAC,EAAE;IACjB,OAAOC,MAAM;EACf;EACA,KAAK,IAAIJ,CAAC,GAAGG,QAAQ,GAAG,CAAC,EAAEH,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACtC,IAAID,OAAM,GAAGJ,OAAO,CAACK,CAAC,CAAC;IAEvB,IAAI,CAACD,OAAM,CAACE,QAAQ,EAAE;MACpBG,MAAM,GAAGJ,CAAC;MACV;IACF;EACF;EACA,OAAOI,MAAM;AACf,CAAC;AAED,IAAMC,IAAI,GAAGjB,QAAQ,CAAC,cAAc,CAAC;AAErC,IAAMkB,qBAAqB,GAAG,SAAxBA,qBAAqB,CAAIX,OAAsC,EAAK;EACxE,IAAI,IAAIY,GAAG,CAACZ,OAAO,CAACa,GAAG,CAAC,UAACC,IAAI;IAAA,eAAYA,IAAI,CAACC,KAAK;EAAA,EAAC,CAAC,CAACC,IAAI,GAAG,CAAC,EAAE;IAC9DN,IAAI,CACF,6FAA6F,EAC7F,OAAO,CACR;EACH;AACF,CAAC;AAED,SAASO,qBAAqB,OAGe;EAAA,IAF3Cb,MAAM,QAANA,MAAM;IACHc,KAAK;EAER,OAAO,oBAAC,kBAAkB,EAAKA,KAAK,CAAI;AAC1C;AAEA,IAAMC,gBAAmC,GAAG,SAAtCA,gBAAmC,CACvCC,CAAgC,EAC7B;EACHA,CAAC,CAACC,cAAc,EAAE;AACpB,CAAC;AAED,SAASC,iBAAiB,CACxBtB,OAAsC,EACtCe,KAAkB,EAClB;EAAA;EACA,6BACEf,OAAO,CAACG,SAAS,CAAC,UAACW,IAAI,EAAK;IAC1BC,KAAK,GAAG,OAAOD,IAAI,CAACC,KAAK,KAAK,QAAQ,GAAGQ,MAAM,CAACR,KAAK,CAAC,GAAGA,KAAK;IAC9D,OAAOD,IAAI,CAACC,KAAK,KAAKA,KAAK;EAC7B,CAAC,CAAC,mEAAI,CAAC,CAAC;AAEZ;AAEA,IAAMS,MAAM,GAAG,SAATA,MAAM,CACVxB,OAAqC,EACrCyB,UAAkB,EAClBC,QAAuC,EACpC;EACH,OAAO,OAAOA,QAAQ,KAAK,UAAU,GACjC1B,OAAO,CAACwB,MAAM,CAAC,UAACpB,MAAM;IAAA,OAAKsB,QAAQ,CAACD,UAAU,EAAErB,MAAM,CAAC;EAAA,EAAC,GACxDJ,OAAO;AACb,CAAC;AAED,IAAM2B,cAA6C,GAAG,EAAE;AAyExD,SAASC,qBAAqB,CAACV,KAAwB,EAAE;EAAA;EACvD,sBAA4BpC,KAAK,CAAC+C,QAAQ,CAAC,KAAK,CAAC;IAAA;IAA1CC,MAAM;IAAEC,SAAS;EACxB,IACEC,MAAM,GA6BJd,KAAK,CA7BPc,MAAM;IACNC,IAAI,GA4BFf,KAAK,CA5BPe,IAAI;IACJC,SAAS,GA2BPhB,KAAK,CA3BPgB,SAAS;IACTC,MAAM,GA0BJjB,KAAK,CA1BPiB,MAAM;IACNC,UAAU,GAyBRlB,KAAK,CAzBPkB,UAAU;IACVC,cAAc,GAwBZnB,KAAK,CAxBPmB,cAAc;IACdC,KAAK,GAuBHpB,KAAK,CAvBPoB,KAAK;IACLC,QAAQ,GAsBNrB,KAAK,CAtBPqB,QAAQ;IACRC,KAAK,GAqBHtB,KAAK,CArBPsB,KAAK;IACLC,QAAQ,GAoBNvB,KAAK,CApBPuB,QAAQ;IACRC,QAAQ,GAmBNxB,KAAK,CAnBPwB,QAAQ;IACOC,iBAAiB,GAkB9BzB,KAAK,CAlBP0B,aAAa;IACbC,cAAc,GAiBZ3B,KAAK,CAjBP2B,cAAc;IACdC,MAAM,GAgBJ5B,KAAK,CAhBP4B,MAAM;IACNC,OAAO,GAeL7B,KAAK,CAfP6B,OAAO;IACPC,QAAQ,GAcN9B,KAAK,CAdP8B,QAAQ;IACRC,mBAAmB,GAajB/B,KAAK,CAbP+B,mBAAmB;IAAA,oBAajB/B,KAAK,CAZPgC,UAAU;IAAVA,UAAU,kCAAGrD,UAAU,CAACsD,OAAO;IAC/BC,iBAAiB,GAWflC,KAAK,CAXPkC,iBAAiB;IACjBC,sBAAsB,GAUpBnC,KAAK,CAVPmC,sBAAsB;IAAA,oBAUpBnC,KAAK,CATPoC,UAAU;IAAVA,UAAU,kCAAG,KAAK;IAAA,sBAShBpC,KAAK,CARPqC,YAAY;IAAEC,gBAAgB,oCAAGvC,qBAAqB;IAAA,iBAQpDC,KAAK,CAPPlB,OAAO;IAAEyD,WAAW,+BAAG9B,cAAc;IAAA,mBAOnCT,KAAK,CANPwC,SAAS;IAATA,SAAS,iCAAG,mBAAmB;IAAA,kBAM7BxC,KAAK,CALPQ,QAAQ;IAARA,QAAQ,gCAAGhC,eAAe;IAAA,cAKxBwB,KAAK,CAJPyC,IAAI;IAAJA,IAAI,4BAAG,oBAAC,YAAY;MAAC,MAAM,EAAE7B;IAAO,EAAG;IAAA,wBAIrCZ,KAAK,CAHP0C,sBAAsB;IAAtBA,sBAAsB,sCAAG,CAAC;IAAA,wBAGxB1C,KAAK,CAFP2C,gBAAgB;IAAhBA,gBAAgB,sCAAG,IAAI;IACpBC,SAAS,4BACV5C,KAAK;EAET,IAAI6C,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;IAC1CtD,qBAAqB,CAAC8C,WAAW,CAAC;EACpC;EAEA,IAAMS,YAAY,GAAGpF,KAAK,CAACqF,MAAM,CAAmB,IAAI,CAAC;EACzD,IAAMC,YAAY,GAAGtF,KAAK,CAACqF,MAAM,CAAiB,IAAI,CAAC;EACvD,IAAME,WAAW,GAAGvF,KAAK,CAACqF,MAAM,CAAoB,IAAI,CAAC;EAEzD,uBAAoDrF,KAAK,CAAC+C,QAAQ,CAEhE,CAAC,CAAC,CAAC;IAAA;IAFEyC,kBAAkB;IAAEC,qBAAqB;EAGhD,uBAAsDzF,KAAK,CAAC+C,QAAQ,CAClEX,KAAK,CAACH,KAAK,KAAKyD,SAAS,CAC1B;IAAA;IAFMC,mBAAmB;IAAEC,sBAAsB;EAGlD,uBAAoC5F,KAAK,CAAC+C,QAAQ,CAAC,EAAE,CAAC;IAAA;IAA/CJ,UAAU;IAAEkD,aAAa;EAChC,uBAAkD7F,KAAK,CAAC+C,QAAQ,iBAC9DX,KAAK,CAACH,KAAK,uDAAIG,KAAK,CAAC0D,YAAY,CAClC;IAAA;IAFMC,iBAAiB;IAAEC,oBAAoB;EAG9C,wBAA0ChG,KAAK,CAAC+C,QAAQ,CAAC,EAAE,CAAC;IAAA;IAArDkD,aAAa;IAAEC,gBAAgB;EACtC,wBAA8ClG,KAAK,CAAC+C,QAAQ,CAE1D2C,SAAS,CAAC;IAAA;IAFLS,eAAe;IAAEC,kBAAkB;EAG1C,wBAA8BpG,KAAK,CAAC+C,QAAQ,CAAC4B,WAAW,CAAC;IAAA;IAAlDzD,OAAO;IAAEmF,UAAU;EAC1B,wBAAsDrG,KAAK,CAAC+C,QAAQ,CAElEP,iBAAiB,CAACmC,WAAW,mBAAEvC,KAAK,CAACH,KAAK,yDAAIG,KAAK,CAAC0D,YAAY,CAAC,CAAC;IAAA;IAF7DQ,mBAAmB;IAAEC,sBAAsB;EAIlDvG,KAAK,CAACwG,SAAS,CAAC,YAAM;IACpBZ,sBAAsB,CAACxD,KAAK,CAACH,KAAK,KAAKyD,SAAS,CAAC;IACjDM,oBAAoB,CAClB,UAACD,iBAAiB;MAAA;MAAA,wBAAK3D,KAAK,CAACH,KAAK,yDAAI8D,iBAAiB;IAAA,EACxD;EACH,CAAC,EAAE,CAAC3D,KAAK,CAACH,KAAK,CAAC,CAAC;EAEjBjB,yBAAyB,CAAC,YAAM;IAC9B,IAAI+E,iBAAiB,KAAKL,SAAS,EAAE;MAAA;MACnC,IAAMe,MAAK,GAAG,IAAIC,KAAK,CAAC,QAAQ,EAAE;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAEpD,wBAAApB,WAAW,CAACqB,OAAO,yDAAnB,qBAAqBC,aAAa,CAACJ,MAAK,CAAC;IAC3C;EACF,CAAC,EAAE,CAACV,iBAAiB,CAAC,CAAC;EAEvB,IAAMe,QAAQ,GAAG9G,KAAK,CAAC+G,OAAO,CAAC,YAAM;IACnC,IAAI,CAAC7F,OAAO,CAACE,MAAM,EAAE;MACnB,OAAO,IAAI;IACb;IAEA,OAAOkF,mBAAmB,KAAKZ,SAAS,GACpCxE,OAAO,CAACoF,mBAAmB,CAAC,GAC5BZ,SAAS;EACf,CAAC,EAAE,CAACxE,OAAO,EAAEoF,mBAAmB,CAAC,CAAC;EAElC,IAAMU,gBAAgB,GAAGhH,KAAK,CAAC+G,OAAO,CACpC;IAAA,OACE1G,UAAU,CACR2C,MAAM,IAAI,cAAc,EACxBA,MAAM,IACJ8B,sBAAsB,KAAK,CAAC,KAC3BqB,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAEc,QAAQ,CAAC,KAAK,CAAC,GAC7B,gBAAgB,GAChB,kBAAkB,CAAC,CAC1B;EAAA,GACH,CAACnC,sBAAsB,EAAE9B,MAAM,EAAEmD,eAAe,CAAC,CAClD;EAED,IAAMe,kBAAkB,GAAGlH,KAAK,CAACmH,WAAW,CAAC,YAAM;IACjDjB,gBAAgB,CAAC,EAAE,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMkB,eAAe,GAAGpH,KAAK,CAACmH,WAAW,CAAC,UAACE,KAAa,EAAqB;IAAA,IAAnBC,MAAM,uEAAG,KAAK;IACtE,IAAMC,QAAQ,GAAGjC,YAAY,CAACsB,OAAO;IACrC,IAAM5E,IAAI,GAAGuF,QAAQ,GAAIA,QAAQ,CAAC3D,QAAQ,CAACyD,KAAK,CAAC,GAAmB,IAAI;IAExE,IAAI,CAACrF,IAAI,IAAI,CAACuF,QAAQ,EAAE;MACtB;IACF;IAEA,IAAMC,cAAc,GAAGD,QAAQ,CAACE,YAAY;IAC5C,IAAMC,SAAS,GAAGH,QAAQ,CAACG,SAAS;IACpC,IAAMC,OAAO,GAAG3F,IAAI,CAAC4F,SAAS;IAC9B,IAAMC,UAAU,GAAG7F,IAAI,CAACyF,YAAY;IAEpC,IAAIH,MAAM,EAAE;MACVC,QAAQ,CAACG,SAAS,GAAGC,OAAO,GAAGH,cAAc,GAAG,CAAC,GAAGK,UAAU,GAAG,CAAC;IACpE,CAAC,MAAM,IAAIF,OAAO,GAAGE,UAAU,GAAGL,cAAc,GAAGE,SAAS,EAAE;MAC5DH,QAAQ,CAACG,SAAS,GAAGC,OAAO,GAAGH,cAAc,GAAGK,UAAU;IAC5D,CAAC,MAAM,IAAIF,OAAO,GAAGD,SAAS,EAAE;MAC9BH,QAAQ,CAACG,SAAS,GAAGC,OAAO;IAC9B;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMG,YAAY,GAAG9H,KAAK,CAACmH,WAAW,CACpC,UAACE,KAAa,EAAK;IAAA;IACjB,OAAOA,KAAK,IAAI,CAAC,IAAIA,KAAK,uBAAInG,OAAO,CAACE,MAAM,6DAAI,CAAC,CAAC;EACpD,CAAC,EACD,CAACF,OAAO,CAACE,MAAM,CAAC,CACjB;EAED,IAAM2G,kBAAkB,GAAG/H,KAAK,CAACmH,WAAW,CAC1C,UAACE,KAAyB,EAAsB;IAAA;IAAA,IAApBW,QAAQ,uEAAG,IAAI;IACzC,IACEX,KAAK,KAAK3B,SAAS,IACnB2B,KAAK,GAAG,CAAC,IACTA,KAAK,GAAG,qBAACnG,OAAO,CAACE,MAAM,+DAAI,CAAC,IAAI,CAAC,EACjC;MACA;IACF;IAEA,IAAME,MAAM,GAAGJ,OAAO,CAACmG,KAAK,CAAC;IAE7B,IAAI/F,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEE,QAAQ,EAAE;MACpB;IACF;IAEA,IAAIwG,QAAQ,EAAE;MACZZ,eAAe,CAACC,KAAK,CAAC;IACxB;;IAEA;IACA5B,qBAAqB,CAAC,UAACD,kBAAkB;MAAA,OACvCA,kBAAkB,KAAK6B,KAAK,GAAGA,KAAK,GAAG7B,kBAAkB;IAAA,EAC1D;EACH,CAAC,EACD,CAACtE,OAAO,EAAEkG,eAAe,CAAC,CAC3B;EAED,IAAMa,eAAe,GAAGjI,KAAK,CAACmH,WAAW,CAAC,YAAM;IAC9C,OAAO7B,YAAY,CAACsB,OAAO,KAAK,IAAI;EACtC,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMsB,eAAe,GAAGlI,KAAK,CAACmH,WAAW,CACvC,UAACgB,GAAW,EAAK;IACf,IAAMC,SAAS,GAAGnC,aAAa,GAAGkC,GAAG;IAErC,IAAME,WAAW,GAAGnH,OAAO,CAACG,SAAS,CAAC,UAACC,MAAM,EAAK;MAChD,OAAOlB,oBAAoB,CAACkB,MAAM,CAACgH,KAAK,CAAC,CACtCC,WAAW,EAAE,CACbtB,QAAQ,CAACmB,SAAS,CAAC;IACxB,CAAC,CAAC;IAEF,IAAIC,WAAW,KAAK3C,SAAS,IAAI2C,WAAW,GAAG,CAAC,CAAC,EAAE;MACjDN,kBAAkB,CAACM,WAAW,CAAC;IACjC;IAEAnC,gBAAgB,CAACkC,SAAS,CAAC;EAC7B,CAAC,EACD,CAACL,kBAAkB,EAAE9B,aAAa,EAAE/E,OAAO,CAAC,CAC7C;EAED,IAAMsH,KAAK,GAAGxI,KAAK,CAACmH,WAAW,CAAC,YAAM;IACpCD,kBAAkB,EAAE;IAEpBrB,aAAa,CAAC,EAAE,CAAC;IACjB5C,SAAS,CAAC,KAAK,CAAC;IAChBwC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzBY,UAAU,CAAC1B,WAAW,CAAC;IACvBV,OAAO,aAAPA,OAAO,uBAAPA,OAAO,EAAI;EACb,CAAC,EAAE,CAACA,OAAO,EAAEU,WAAW,EAAEuC,kBAAkB,CAAC,CAAC;EAE9C,IAAMuB,aAAa,GAAGzI,KAAK,CAACmH,WAAW,CAAC,YAAM;IAC5C,IAAI3B,kBAAkB,KAAKE,SAAS,IAAIoC,YAAY,CAACtC,kBAAkB,CAAC,EAAE;MACxE,IAAMxD,IAAI,GAAGd,OAAO,CAACsE,kBAAkB,CAAC;MAExCQ,oBAAoB,CAAChE,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,KAAK,CAAC;MACjCuG,KAAK,EAAE;IACT;EACF,CAAC,EAAE,CAACA,KAAK,EAAEhD,kBAAkB,EAAEsC,YAAY,EAAE5G,OAAO,CAAC,CAAC;EAEtD,IAAMwH,IAAI,GAAG1I,KAAK,CAACmH,WAAW,CAAC,YAAM;IACnClE,SAAS,CAAC,IAAI,CAAC;IACfwC,qBAAqB,CAACa,mBAAmB,CAAC;IAE1C,IAAI,OAAOtC,MAAM,KAAK,UAAU,EAAE;MAChCA,MAAM,EAAE;IACV;EACF,CAAC,EAAE,CAACA,MAAM,EAAEsC,mBAAmB,CAAC,CAAC;EAEjCtG,KAAK,CAACwG,SAAS,CAAC,YAAM;IACpB,IACExD,MAAM,IACNsD,mBAAmB,KAAKZ,SAAS,IACjCoC,YAAY,CAACxB,mBAAmB,CAAC,EACjC;MACAc,eAAe,CAACd,mBAAmB,EAAE,IAAI,CAAC;IAC5C;EACF,CAAC,EAAE,CAACwB,YAAY,EAAE9E,MAAM,EAAEoE,eAAe,EAAEd,mBAAmB,CAAC,CAAC;EAEhE,IAAMqC,MAAM,GAAG3I,KAAK,CAACmH,WAAW,CAAC,YAAM;IAAA;IACrCqB,KAAK,EAAE;IACP,IAAM/B,KAAK,GAAG,IAAIC,KAAK,CAAC,MAAM,CAAC;IAC/B,yBAAAnB,WAAW,CAACqB,OAAO,0DAAnB,sBAAqBC,aAAa,CAACJ,KAAK,CAAC;EAC3C,CAAC,EAAE,CAAC+B,KAAK,CAAC,CAAC;EAEX,IAAMI,kBAAkB,GAAG5I,KAAK,CAACmH,WAAW,CAAC,YAAM;IACjD1B,qBAAqB,CAAC,CAAC,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMoD,OAAO,GAAG7I,KAAK,CAACmH,WAAW,CAAC,YAAM;IAAA;IACtC,IAAMV,KAAK,GAAG,IAAIC,KAAK,CAAC,OAAO,CAAC;IAChC,yBAAAnB,WAAW,CAACqB,OAAO,0DAAnB,sBAAqBC,aAAa,CAACJ,KAAK,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMqC,OAAO,GAAG9I,KAAK,CAACmH,WAAW,CAAC,YAAM;IACtC,IAAInE,MAAM,EAAE;MACVwF,KAAK,EAAE;IACT,CAAC,MAAM;MACLE,IAAI,EAAE;IACR;EACF,CAAC,EAAE,CAACF,KAAK,EAAEE,IAAI,EAAE1F,MAAM,CAAC,CAAC;EAEzB,IAAM+F,WAAW,GAAG/I,KAAK,CAAC+G,OAAO,CAC/B;IAAA,OAAM7G,QAAQ,CAACgH,kBAAkB,EAAE,IAAI,CAAC;EAAA,GACxC,CAACA,kBAAkB,CAAC,CACrB;EAED,IAAM8B,WAAW,GAAGhJ,KAAK,CAACmH,WAAW,CACnC,UAAC8B,IAAqB,EAAK;IACzB,IAAI5B,KAAK,GAAG7B,kBAAkB;IAE9B,IAAIyD,IAAI,KAAK,MAAM,EAAE;MACnB,IAAMC,SAAS,GAAGjI,cAAc,CAACC,OAAO,EAAEmG,KAAK,CAAC;MAChDA,KAAK,GAAG6B,SAAS,KAAK,CAAC,CAAC,GAAGjI,cAAc,CAACC,OAAO,CAAC,GAAGgI,SAAS,CAAC,CAAC;IAClE,CAAC,MAAM,IAAID,IAAI,KAAK,MAAM,EAAE;MAC1B,IAAME,WAAW,GAAG1H,eAAe,CAACP,OAAO,EAAEmG,KAAK,CAAC;MACnDA,KAAK,GAAG8B,WAAW,KAAK,CAAC,CAAC,GAAG1H,eAAe,CAACP,OAAO,CAAC,GAAGiI,WAAW,CAAC,CAAC;IACvE;;IAEApB,kBAAkB,CAACV,KAAK,CAAC;EAC3B,CAAC,EACD,CAACU,kBAAkB,EAAEvC,kBAAkB,EAAEtE,OAAO,CAAC,CAClD;EAEDlB,KAAK,CAACwG,SAAS,CAAC,YAAM;IAAA;IACpB,IAAMvE,KAAK,6BAAGG,KAAK,CAACH,KAAK,yDAAI8D,iBAAiB,yCAAI3D,KAAK,CAAC0D,YAAY;IAEpE,IAAM5E,OAAO,GACXsD,UAAU,IAAI7B,UAAU,KAAK+C,SAAS,GAClChD,MAAM,CAACiC,WAAW,EAAEhC,UAAU,EAAEC,QAAQ,CAAC,GACzC+B,WAAW;IAEjB0B,UAAU,CAACnF,OAAO,CAAC;IACnBqF,sBAAsB,CAAC/D,iBAAiB,CAACtB,OAAO,EAAEe,KAAK,CAAC,CAAC;EAC3D,CAAC,EAAE,CACDW,QAAQ,EACRD,UAAU,EACVoD,iBAAiB,EACjBpB,WAAW,EACXvC,KAAK,CAAC0D,YAAY,EAClB1D,KAAK,CAACH,KAAK,EACXuC,UAAU,CACX,CAAC;;EAEF;AACF;AACA;AACA;EACE,IAAM4E,YAAY,GAAGpJ,KAAK,CAACmH,WAAW,CACpC,UAAC7E,CAAqC,EAAK;IAAA;IACzC,6BAAIgD,YAAY,CAACsB,OAAO,kDAApB,sBAAsByC,QAAQ,CAAC/G,CAAC,CAACgH,MAAM,CAAS,EAAE;MACpDhH,CAAC,CAACC,cAAc,EAAE;IACpB;EACF,CAAC,EACD,EAAE,CACH;EAED,IAAMgH,oBAAiE,GACrEvJ,KAAK,CAACmH,WAAW,CACf,UAAC7E,CAAC,EAAK;IACL,IAAMkH,sBAAsB,GAAGhH,iBAAiB,CAC9CtB,OAAO,EACPoB,CAAC,CAACmH,aAAa,CAACxH,KAAK,CACtB;IAED,IAAIqE,mBAAmB,KAAKkD,sBAAsB,EAAE;MAClD,IAAI,CAAC7D,mBAAmB,EAAE;QACxBY,sBAAsB,CAACiD,sBAAsB,CAAC;MAChD;MACA7F,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGrB,CAAC,CAAC;IACf;EACF,CAAC,EACD,CAACqD,mBAAmB,EAAEhC,QAAQ,EAAEzC,OAAO,EAAEoF,mBAAmB,CAAC,CAC9D;EAEH,IAAMoD,cAA4D,GAChE1J,KAAK,CAACmH,WAAW,CACf,UAACV,KAAK,EAAK;IACT,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAACQ,QAAQ,CAACR,KAAK,CAAC0B,GAAG,CAAC,IAC7DF,eAAe,EAAE,IACjBxB,KAAK,CAAClE,cAAc,EAAE;IAExB,QAAQkE,KAAK,CAAC0B,GAAG;MACf,KAAK,SAAS;QACZF,eAAe,EAAE,IAAIe,WAAW,CAAC,MAAM,CAAC;QACxC;MACF,KAAK,WAAW;QACdf,eAAe,EAAE,IAAIe,WAAW,CAAC,MAAM,CAAC;QACxC;MACF,KAAK,QAAQ;QACXR,KAAK,EAAE;QACP;MACF,KAAK,OAAO;QACVP,eAAe,EAAE,IAAIQ,aAAa,EAAE;QACpC;IAAM;EAEZ,CAAC,EACD,CAACR,eAAe,EAAEO,KAAK,EAAEQ,WAAW,EAAEP,aAAa,CAAC,CACrD;EAEH,IAAM3E,aAAyD,GAC7D9D,KAAK,CAACmH,WAAW,CACf,UAAC7E,CAAC,EAAK;IACL,IAAIuB,iBAAiB,EAAE;MACrB,IAAM3C,QAAO,GAAG2C,iBAAiB,CAACvB,CAAC,EAAEqC,WAAW,CAAC;MACjD,IAAIzD,QAAO,EAAE;QACX,IAAI+D,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,EAAE;UAC1CvD,IAAI,CACF,2EAA2E,GACzE,qHAAqH,CACxH;QACH;QACAyE,UAAU,CAACnF,QAAO,CAAC;QACnBqF,sBAAsB,CACpB/D,iBAAiB,CAACtB,QAAO,EAAE6E,iBAAiB,CAAC,CAC9C;MACH;IACF,CAAC,MAAM;MACL,IAAM7E,SAAO,GAAGwB,MAAM,CAACiC,WAAW,EAAErC,CAAC,CAACgH,MAAM,CAACrH,KAAK,EAAEW,QAAQ,CAAC;MAC7DyD,UAAU,CAACnF,SAAO,CAAC;MACnBqF,sBAAsB,CAAC/D,iBAAiB,CAACtB,SAAO,EAAE6E,iBAAiB,CAAC,CAAC;IACvE;IACAF,aAAa,CAACvD,CAAC,CAACgH,MAAM,CAACrH,KAAK,CAAC;EAC/B,CAAC,EACD,CAACW,QAAQ,EAAEmD,iBAAiB,EAAElC,iBAAiB,EAAEc,WAAW,CAAC,CAC9D;EAEH,IAAMgF,mBAAmB,GAAG3J,KAAK,CAACmH,WAAW,CAC3C,UAACV,KAA0B,EAAK;IAC9B,IAAIA,KAAK,CAAC0B,GAAG,CAAC/G,MAAM,KAAK,CAAC,IAAIqF,KAAK,CAAC0B,GAAG,KAAK,GAAG,EAAE;MAC/CD,eAAe,CAACzB,KAAK,CAAC0B,GAAG,CAAC;MAC1B;IACF;IAEA,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAClB,QAAQ,CAACR,KAAK,CAAC0B,GAAG,CAAC,IAC7DF,eAAe,EAAE,IACjBxB,KAAK,CAAClE,cAAc,EAAE;IAExB,QAAQkE,KAAK,CAAC0B,GAAG;MACf,KAAK,SAAS;QACZ,IAAInF,MAAM,EAAE;UACViF,eAAe,EAAE,IAAIe,WAAW,CAAC,MAAM,CAAC;QAC1C,CAAC,MAAM;UACLN,IAAI,EAAE;QACR;QACA;MACF,KAAK,WAAW;QACd,IAAI1F,MAAM,EAAE;UACViF,eAAe,EAAE,IAAIe,WAAW,CAAC,MAAM,CAAC;QAC1C,CAAC,MAAM;UACLN,IAAI,EAAE;QACR;QACA;MACF,KAAK,QAAQ;QACXF,KAAK,EAAE;QACP;MACF,KAAK,OAAO;MACZ,KAAK,UAAU;MACf,KAAK,GAAG;QACN,IAAIxF,MAAM,EAAE;UACViF,eAAe,EAAE,IAAIQ,aAAa,EAAE;QACtC,CAAC,MAAM;UACLC,IAAI,EAAE;QACR;QACA;IAAM;EAEZ,CAAC,EACD,CACET,eAAe,EACfO,KAAK,EACLQ,WAAW,EACXd,eAAe,EACfQ,IAAI,EACJ1F,MAAM,EACNyF,aAAa,CACd,CACF;EAED,IAAMmB,iBAAiB,GAAG5J,KAAK,CAACmH,WAAW,CACzC,UAAC7E,CAAgC,EAAK;IAAA;IACpC,IAAM+E,KAAK,GAAGwC,KAAK,CAACC,SAAS,CAACC,OAAO,CAACC,IAAI,0BACxC1H,CAAC,CAACmH,aAAa,CAACQ,UAAU,0DAA1B,sBAA4BrG,QAAQ,EACpCtB,CAAC,CAACmH,aAAa,CAChB;IACD,IAAMnI,MAAM,GAAGJ,OAAO,CAACmG,KAAK,CAAC;IAE7B,IAAI/F,MAAM,IAAI,CAACA,MAAM,CAACE,QAAQ,EAAE;MAC9BiH,aAAa,EAAE;IACjB;EACF,CAAC,EACD,CAACvH,OAAO,EAAEuH,aAAa,CAAC,CACzB;EAED,IAAMyB,iBAAiB,GAAGlK,KAAK,CAACmH,WAAW,CACzC,UAAC7E,CAAgC,EAAK;IAAA;IACpCyF,kBAAkB,CAChB8B,KAAK,CAACC,SAAS,CAACC,OAAO,CAACC,IAAI,2BAC1B1H,CAAC,CAACmH,aAAa,CAACQ,UAAU,2DAA1B,uBAA4BrG,QAAQ,EACpCtB,CAAC,CAACmH,aAAa,CAChB,EACD,KAAK,CACN;EACH,CAAC,EACD,CAAC1B,kBAAkB,CAAC,CACrB;EAED,IAAMtD,YAAY,GAAGzE,KAAK,CAACmH,WAAW,CACpC,UAAC7F,MAAmC,EAAE+F,KAAa,EAAK;IACtD,IAAM8C,OAAO,GAAG9C,KAAK,KAAK7B,kBAAkB;IAC5C,IAAMsB,QAAQ,GAAGO,KAAK,KAAKf,mBAAmB;IAE9C,OACE,oBAAC,KAAK,CAAC,QAAQ;MAAC,GAAG,YAAKhF,MAAM,CAACW,KAAK;IAAG,GACpCyC,gBAAgB,CAAC;MAChBpD,MAAM,EAANA,MAAM;MACN6I,OAAO,EAAPA,OAAO;MACPvG,QAAQ,EAAEtC,MAAM,CAACgH,KAAK;MACtBxB,QAAQ,EAARA,QAAQ;MACRtF,QAAQ,EAAEF,MAAM,CAACE,QAAQ;MACzBsH,OAAO,EAAEc,iBAAiB;MAC1BQ,WAAW,EAAE/H,gBAAgB;MAC7B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAgI,WAAW,EAAEH;IACf,CAAC,CAAC,CACa;EAErB,CAAC,EACD,CACE1E,kBAAkB,EAClBoE,iBAAiB,EACjBM,iBAAiB,EACjBxF,gBAAgB,EAChB4B,mBAAmB,CACpB,CACF;EAED,IAAMgE,eAAe,GAAGtK,KAAK,CAAC+G,OAAO,CAAC,YAAM;IAC1C,IAAMwD,sBAAsB,GAC1B,CAAArJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,MAAM,IAAG,CAAC,GACjBF,OAAO,CAACa,GAAG,CAAC0C,YAAY,CAAC,GAEzB,oBAAC,OAAO;MAAC,SAAS,EAAC;IAAqB,GAAEG,SAAS,CACpD;IAEH,IAAI,OAAOb,cAAc,KAAK,UAAU,EAAE;MACxC,OAAOA,cAAc,CAAC;QAAEwG,sBAAsB,EAAtBA;MAAuB,CAAC,CAAC;IACnD,CAAC,MAAM;MACL,OAAOA,sBAAsB;IAC/B;EACF,CAAC,EAAE,CAAC3F,SAAS,EAAE1D,OAAO,EAAE6C,cAAc,EAAEU,YAAY,CAAC,CAAC;EAEtD,OACE;IACE,SAAS,EAAC,cAAc;IACxB,SAAS,EAAErB,SAAU;IACrB,KAAK,EAAEM,KAAM;IACb,GAAG,EAAEvD,QAAQ,CAACiF,YAAY,EAAE9B,UAAU,CAAE;IACxC,OAAO,EAAE8F;EAAa,GAErBpG,MAAM,IAAIwB,UAAU,GACnB,oBAAC,KAAK,eACAQ,SAAS;IACb,SAAS;IACT,MAAM,EAAE2D,MAAO;IACf,SAAS,EAAE3B,gBAAiB;IAC5B,KAAK,EAAErE,UAAW;IAClB,SAAS,EAAE+G,cAAe;IAC1B,QAAQ,EAAE5F;IACV;IACA;IACA;IAAA;IACA,OAAO,EAAE1B,KAAK,CAAC0G,OAAQ;IACvB,MAAM,EAAE5F,MAAO;IACf,KAAK,EAAE2B,IAAK;IACZ,WAAW,EAAEG,SAAS,CAACwF,WAAY;IACnC,IAAI,EAAE3J,8BAA8B,CAACuD,UAAU;EAAE,GACjD,GAEF,oBAAC,aAAa,eACRY,SAAS;IACb,eAAa,IAAK;IAClB,OAAO,EAAE8D,OAAQ;IACjB,SAAS,EAAEa,mBAAoB;IAC/B,OAAO,EAAEZ,WAAY;IACrB,OAAO,EAAEF,OAAQ;IACjB,MAAM,EAAEF,MAAO;IACf,SAAS,EAAE3B,gBAAiB;IAC5B,MAAM,EAAE9D,MAAO;IACf,KAAK,EAAE2B,IAAK;IACZ,UAAU,EAAET;EAAW,IAEtB0C,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEwB,KAAK,CAEnB,EACD;IACE,GAAG,EAAE/C,WAAY;IACjB,IAAI,EAAEpC,IAAK;IACX,QAAQ,EAAEoG,oBAAqB;IAC/B,MAAM,EAAEnH,KAAK,CAACuG,MAAO;IACrB,OAAO,EAAEvG,KAAK,CAACyG,OAAQ;IACvB,OAAO,EAAEzG,KAAK,CAAC0G,OAAQ;IACvB,KAAK,EAAE/C,iBAAkB;IACzB,eAAa,IAAK;IAClB,SAAS,EAAC;EAAuB,GAEhCpB,WAAW,CAAC5C,GAAG,CAAC,UAACC,IAAI;IAAA,OACpB;MAAQ,GAAG,YAAKA,IAAI,CAACC,KAAK,CAAG;MAAC,KAAK,EAAED,IAAI,CAACC;IAAM,EAAG;EAAA,CACpD,CAAC,CACK,EACRe,MAAM,IACL,oBAAC,oBAAoB;IACnB,SAAS,EAAEoC,YAAa;IACxB,SAAS,EAAE7B,cAAe;IAC1B,YAAY,EAAE+B,YAAa;IAC3B,iBAAiB,EAAEc,kBAAmB;IACtC,YAAY,EAAEwC,kBAAmB;IACjC,QAAQ,EAAE1E,QAAS;IACnB,cAAc,EAAEY,sBAAuB;IACvC,SAAS,EAAEC,gBAAiB;IAC5B,WAAW,EAAEZ,mBAAoB;IACjC,iBAAiB,EAAEG,iBAAkB;IACrC,sBAAsB,EAAEC,sBAAuB;IAC/C,cAAc,EAAEe;EAAa,GAE5BgF,eAAe,CAEnB,CACK;AAEZ;;AAEA;AACA;AACA;AACA,OAAO,IAAMG,YAAY,GAAGnK,cAAc,CAACwC,qBAAqB,EAAE;EAChEU,KAAK,EAAE;AACT,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiPopoutRoot{height:100%;position:relative;width:100%}.vkuiPopoutRoot__popout{
|
|
1
|
+
.vkuiPopoutRoot{height:100%;position:relative;width:100%}.vkuiPopoutRoot__popout{position:fixed}.vkuiPopoutRoot--absolute,.vkuiPopoutRoot__popout{height:100%;left:0;top:0;width:100%;z-index:100;z-index:var(--vkui--z_index_popout,100)}.vkuiPopoutRoot--absolute{position:absolute}.vkuiPopoutRoot__modal{height:100%;left:0;position:fixed;top:0;width:100%;z-index:99;z-index:var(--vkui--z_index_modal,99)}.vkuiPopoutRoot__modal:empty{display:none}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiPopper{z-index:100}
|
|
1
|
+
.vkuiPopper{z-index:100;z-index:var(--vkui--z_index_popout,100)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiRoot{height:100%;position:relative;width:100%}.vkuiRoot--transition{pointer-events:none}.vkuiRoot__view{height:100%;position:relative;width:100%}.vkuiRoot--transition .vkuiRoot__view{left:0;overflow:hidden;position:fixed;top:0}.vkuiRoot__scrollCompensation{height:100%;width:100%}.vkuiRoot__view--hide-forward,.vkuiRoot__view--show-back{z-index:1}.vkuiRoot__view--hide-back,.vkuiRoot__view--show-forward{z-index:2}.vkuiRoot__view--show-forward{-webkit-animation:vkui-root-android-animation-show-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-root-android-animation-show-forward .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-root-android-animation-show-forward .3s var(--android-easing);animation:vkui-root-android-animation-show-forward .3s var(--android-easing)}.vkuiRoot__view--hide-back{-webkit-animation:vkui-root-android-animation-hide-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-root-android-animation-hide-back .3s cubic-bezier(.4,0,.2,1) forwards;-webkit-animation:vkui-root-android-animation-hide-back .3s var(--android-easing) forwards;animation:vkui-root-android-animation-hide-back .3s var(--android-easing) forwards}.vkuiRoot__popout{z-index:100}.vkuiRoot__modal,.vkuiRoot__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiRoot__modal{z-index:99}.vkuiRoot__modal:empty{display:none}.vkuiRoot--ios .vkuiRoot__view--hide-forward:after,.vkuiRoot--ios .vkuiRoot__view--show-back:after{background-color:#000;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:6}.vkuiRoot--ios .vkuiRoot__view--show-back:after{-webkit-animation:vkui-root-ios-animation-show-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-root-ios-animation-show-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-root-ios-animation-show-back .6s var(--ios-easing) forwards;animation:vkui-root-ios-animation-show-back .6s var(--ios-easing) forwards}.vkuiRoot--ios .vkuiRoot__view--hide-forward:after{-webkit-animation:vkui-root-ios-animation-hide-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-root-ios-animation-hide-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-root-ios-animation-hide-forward .6s var(--ios-easing);animation:vkui-root-ios-animation-hide-forward .6s var(--ios-easing)}.vkuiRoot--ios .vkuiRoot__view--show-forward{-webkit-animation:vkui-root-ios-animation-show-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-root-ios-animation-show-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-root-ios-animation-show-forward .6s var(--ios-easing);animation:vkui-root-ios-animation-show-forward .6s var(--ios-easing)}.vkuiRoot--ios .vkuiRoot__view--hide-back{-webkit-animation:vkui-root-ios-animation-hide-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-root-ios-animation-hide-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-root-ios-animation-hide-back .6s var(--ios-easing) forwards;animation:vkui-root-ios-animation-hide-back .6s var(--ios-easing) forwards}@-webkit-keyframes vkui-root-ios-animation-show-back{0%{opacity:.3}to{opacity:0}}@keyframes vkui-root-ios-animation-show-back{0%{opacity:.3}to{opacity:0}}@-webkit-keyframes vkui-root-ios-animation-hide-forward{0%{opacity:0}to{opacity:.3}}@keyframes vkui-root-ios-animation-hide-forward{0%{opacity:0}to{opacity:.3}}@-webkit-keyframes vkui-root-ios-animation-hide-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes vkui-root-ios-animation-hide-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes vkui-root-ios-animation-show-forward{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-root-ios-animation-show-forward{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-root-android-animation-hide-back{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}}@keyframes vkui-root-android-animation-hide-back{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}}@-webkit-keyframes vkui-root-android-animation-show-forward{0%{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes vkui-root-android-animation-show-forward{0%{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}
|
|
1
|
+
.vkuiRoot{height:100%;position:relative;width:100%}.vkuiRoot--transition{pointer-events:none}.vkuiRoot__view{height:100%;position:relative;width:100%}.vkuiRoot--transition .vkuiRoot__view{left:0;overflow:hidden;position:fixed;top:0}.vkuiRoot__scrollCompensation{height:100%;width:100%}.vkuiRoot__view--hide-forward,.vkuiRoot__view--show-back{z-index:1}.vkuiRoot__view--hide-back,.vkuiRoot__view--show-forward{z-index:2}.vkuiRoot__view--show-forward{-webkit-animation:vkui-root-android-animation-show-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-root-android-animation-show-forward .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-root-android-animation-show-forward .3s var(--android-easing);animation:vkui-root-android-animation-show-forward .3s var(--android-easing)}.vkuiRoot__view--hide-back{-webkit-animation:vkui-root-android-animation-hide-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-root-android-animation-hide-back .3s cubic-bezier(.4,0,.2,1) forwards;-webkit-animation:vkui-root-android-animation-hide-back .3s var(--android-easing) forwards;animation:vkui-root-android-animation-hide-back .3s var(--android-easing) forwards}.vkuiRoot__popout{z-index:100;z-index:var(--vkui--z_index_popout,100)}.vkuiRoot__modal,.vkuiRoot__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiRoot__modal{z-index:99;z-index:var(--vkui--z_index_modal,99)}.vkuiRoot__modal:empty{display:none}.vkuiRoot--ios .vkuiRoot__view--hide-forward:after,.vkuiRoot--ios .vkuiRoot__view--show-back:after{background-color:#000;content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:6}.vkuiRoot--ios .vkuiRoot__view--show-back:after{-webkit-animation:vkui-root-ios-animation-show-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-root-ios-animation-show-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-root-ios-animation-show-back .6s var(--ios-easing) forwards;animation:vkui-root-ios-animation-show-back .6s var(--ios-easing) forwards}.vkuiRoot--ios .vkuiRoot__view--hide-forward:after{-webkit-animation:vkui-root-ios-animation-hide-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-root-ios-animation-hide-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-root-ios-animation-hide-forward .6s var(--ios-easing);animation:vkui-root-ios-animation-hide-forward .6s var(--ios-easing)}.vkuiRoot--ios .vkuiRoot__view--show-forward{-webkit-animation:vkui-root-ios-animation-show-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-root-ios-animation-show-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-root-ios-animation-show-forward .6s var(--ios-easing);animation:vkui-root-ios-animation-show-forward .6s var(--ios-easing)}.vkuiRoot--ios .vkuiRoot__view--hide-back{-webkit-animation:vkui-root-ios-animation-hide-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-root-ios-animation-hide-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-root-ios-animation-hide-back .6s var(--ios-easing) forwards;animation:vkui-root-ios-animation-hide-back .6s var(--ios-easing) forwards}@-webkit-keyframes vkui-root-ios-animation-show-back{0%{opacity:.3}to{opacity:0}}@keyframes vkui-root-ios-animation-show-back{0%{opacity:.3}to{opacity:0}}@-webkit-keyframes vkui-root-ios-animation-hide-forward{0%{opacity:0}to{opacity:.3}}@keyframes vkui-root-ios-animation-hide-forward{0%{opacity:0}to{opacity:.3}}@-webkit-keyframes vkui-root-ios-animation-hide-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes vkui-root-ios-animation-hide-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes vkui-root-ios-animation-show-forward{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-root-ios-animation-show-forward{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-root-android-animation-hide-back{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}}@keyframes vkui-root-android-animation-hide-back{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}}@-webkit-keyframes vkui-root-android-animation-show-forward{0%{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes vkui-root-android-animation-show-forward{0%{opacity:0;-webkit-transform:scale(1.05);transform:scale(1.05)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}
|
|
@@ -135,8 +135,7 @@ var SearchComponent = function SearchComponent(_ref2) {
|
|
|
135
135
|
}, placeholder)), isFocused && platform === IOS && after && createScopedElement("div", {
|
|
136
136
|
vkuiClass: "Search__after-width"
|
|
137
137
|
}, after))), createScopedElement("div", {
|
|
138
|
-
vkuiClass: "Search__after"
|
|
139
|
-
onClick: onCancel
|
|
138
|
+
vkuiClass: "Search__after"
|
|
140
139
|
}, createScopedElement("div", {
|
|
141
140
|
vkuiClass: "Search__icons"
|
|
142
141
|
}, icon && createScopedElement(Touch, {
|
|
@@ -144,9 +143,11 @@ var SearchComponent = function SearchComponent(_ref2) {
|
|
|
144
143
|
vkuiClass: "Search__icon"
|
|
145
144
|
}, icon), !!value && createScopedElement(Touch, {
|
|
146
145
|
onStart: onIconCancelClickStart,
|
|
146
|
+
onClick: onCancel,
|
|
147
147
|
vkuiClass: "Search__icon"
|
|
148
148
|
}, platform === IOS ? createScopedElement(Icon16Clear, null) : createScopedElement(Icon24Cancel, null))), platform === IOS && after && createScopedElement("div", {
|
|
149
|
-
vkuiClass: "Search__after-in"
|
|
149
|
+
vkuiClass: "Search__after-in",
|
|
150
|
+
onClick: onCancel
|
|
150
151
|
}, after))), platform === VKCOM && createScopedElement(Separator, {
|
|
151
152
|
vkuiClass: "Search__separator",
|
|
152
153
|
wide: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","names":["React","classNames","withPlatform","Icon16SearchOutline","Icon16Clear","Icon24Cancel","IOS","VKCOM","ANDROID","Touch","noop","Text","Title","Headline","Separator","useExternRef","useEnsuredControl","useAdaptivity","SearchPlaceholderTypography","platform","children","restProps","SearchComponent","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","autoComplete","inputProps","inputRef","useState","isFocused","setFocused","value","onChange","sizeY","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","Search","displayName"],"sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Separator } from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\ninterface SearchPlaceholderTypographyProps\n extends HasPlatform,\n React.HTMLAttributes<HTMLElement> {}\n\nconst SearchPlaceholderTypography = ({\n platform,\n children,\n ...restProps\n}: SearchPlaceholderTypographyProps) => {\n switch (platform) {\n case IOS:\n return (\n <Title {...restProps} level=\"3\" weight=\"3\">\n {children}\n </Title>\n );\n case VKCOM:\n return <Text {...restProps}>{children}</Text>;\n case ANDROID:\n default:\n return (\n <Headline {...restProps} weight=\"3\">\n {children}\n </Headline>\n );\n }\n};\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nconst SearchComponent = ({\n before = <Icon16SearchOutline aria-hidden />,\n className,\n defaultValue = \"\",\n placeholder = \"Поиск\",\n after = \"Отмена\",\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n autoComplete = \"off\",\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n const { sizeY } = useAdaptivity();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(\n \"Search\",\n platform === VKCOM && \"Search--vkcom\",\n platform === IOS && \"Search--ios\",\n // TODO: V5 перенести на новую адаптивность\n `Search--sizeY-${sizeY}`,\n isFocused && \"Search--focused\",\n value && \"Search--has-value\",\n icon && \"Search--has-after\",\n after && \"Search--has-icon\"\n )}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n autoComplete={autoComplete}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n <SearchPlaceholderTypography\n vkuiClass=\"Search__placeholder-text\"\n platform={platform}\n >\n {placeholder}\n </SearchPlaceholderTypography>\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nexport const Search = withPlatform(SearchComponent);\n\nSearch.displayName = \"Search\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Search.js","names":["React","classNames","withPlatform","Icon16SearchOutline","Icon16Clear","Icon24Cancel","IOS","VKCOM","ANDROID","Touch","noop","Text","Title","Headline","Separator","useExternRef","useEnsuredControl","useAdaptivity","SearchPlaceholderTypography","platform","children","restProps","SearchComponent","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","style","autoComplete","inputProps","inputRef","useState","isFocused","setFocused","value","onChange","sizeY","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","Search","displayName"],"sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Separator } from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\ninterface SearchPlaceholderTypographyProps\n extends HasPlatform,\n React.HTMLAttributes<HTMLElement> {}\n\nconst SearchPlaceholderTypography = ({\n platform,\n children,\n ...restProps\n}: SearchPlaceholderTypographyProps) => {\n switch (platform) {\n case IOS:\n return (\n <Title {...restProps} level=\"3\" weight=\"3\">\n {children}\n </Title>\n );\n case VKCOM:\n return <Text {...restProps}>{children}</Text>;\n case ANDROID:\n default:\n return (\n <Headline {...restProps} weight=\"3\">\n {children}\n </Headline>\n );\n }\n};\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nconst SearchComponent = ({\n before = <Icon16SearchOutline aria-hidden />,\n className,\n defaultValue = \"\",\n placeholder = \"Поиск\",\n after = \"Отмена\",\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n autoComplete = \"off\",\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n const { sizeY } = useAdaptivity();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(\n \"Search\",\n platform === VKCOM && \"Search--vkcom\",\n platform === IOS && \"Search--ios\",\n // TODO: V5 перенести на новую адаптивность\n `Search--sizeY-${sizeY}`,\n isFocused && \"Search--focused\",\n value && \"Search--has-value\",\n icon && \"Search--has-after\",\n after && \"Search--has-icon\"\n )}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n autoComplete={autoComplete}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n <SearchPlaceholderTypography\n vkuiClass=\"Search__placeholder-text\"\n platform={platform}\n >\n {placeholder}\n </SearchPlaceholderTypography>\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\">\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch\n onStart={onIconCancelClickStart}\n onClick={onCancel}\n vkuiClass=\"Search__icon\"\n >\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\" onClick={onCancel}>\n {after}\n </div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nexport const Search = withPlatform(SearchComponent);\n\nSearch.displayName = \"Search\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiSnackbar{bottom:0;left:auto;padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom);padding-left:0;padding-left:var(--safe-area-inset-left);padding-right:0;padding-right:var(--safe-area-inset-right);position:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:
|
|
1
|
+
.vkuiSnackbar{bottom:0;left:auto;padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom);padding-left:0;padding-left:var(--safe-area-inset-left);padding-right:0;padding-right:var(--safe-area-inset-right);position:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:calc(100 + 1);z-index:calc(var(--vkui--z_index_popout,100) + 1)}.vkuiEpic .vkuiSnackbar{padding-bottom:calc(48px + 0px);padding-bottom:calc(var(--tabbar_height) + var(--safe-area-inset-bottom))}.vkuiSnackbar__body,.vkuiSnackbar__in{transition:-webkit-transform .32s cubic-bezier(.4,0,.2,1);transition:transform .32s cubic-bezier(.4,0,.2,1);transition:transform .32s cubic-bezier(.4,0,.2,1),-webkit-transform .32s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .32s var(--android-easing);transition:transform .32s var(--android-easing);transition:transform .32s var(--android-easing),-webkit-transform .32s var(--android-easing)}.vkuiSnackbar__in{-webkit-animation:vkui-animation-snackbar-intro-vertical .34s cubic-bezier(.4,0,.2,1);animation:vkui-animation-snackbar-intro-vertical .34s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-snackbar-intro-vertical .34s var(--android-easing);animation:vkui-animation-snackbar-intro-vertical .34s var(--android-easing);padding:8px}.vkuiSnackbar--closing .vkuiSnackbar__in{-webkit-transform:translate3d(0,140%,0);transform:translate3d(0,140%,0)}.vkuiSnackbar__body{align-items:center;background:#fff;background:var(--modal_card_background,var(--vkui--color_background_modal));border-radius:8px;border-radius:var(--vkui--size_border_radius--regular,8px);box-shadow:0 0 8px rgba(0,0,0,.12),0 16px 16px rgba(0,0,0,.16);box-shadow:var(--vkui--elevation4,0 0 8px rgba(0,0,0,.12),0 16px 16px rgba(0,0,0,.16));box-sizing:border-box;display:flex;min-height:56px;padding:12px 16px}.vkuiSnackbar--dark .vkuiSnackbar__body{background:#2d2d2e;background:var(--vkui--color_background_contrast_inverse,#2d2d2e)}.vkuiSnackbar__before{margin-left:-4px;margin-right:12px}.vkuiSnackbar__after{margin-left:12px;margin-right:-4px}.vkuiSnackbar__content{align-items:center;display:flex;flex:1;overflow:hidden}.vkuiSnackbar--l-vertical .vkuiSnackbar__content{align-items:flex-start;flex-direction:column}.vkuiSnackbar__content-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#000;color:var(--text_primary,var(--vkui--color_text_primary));display:-webkit-box;flex:1;overflow:hidden;width:100%}.vkuiSnackbar--dark .vkuiSnackbar__content-text{color:#fff;color:var(--vkui--color_text_contrast,#fff)}.vkuiSnackbar--l-horizontal .vkuiSnackbar__action{margin-right:calc(-1 * 12px);margin-right:calc(-1 * var(--vkui--size_button_tertiary_small_padding_horizontal--regular,12px));position:relative}.vkuiSnackbar--l-vertical .vkuiSnackbar__action{margin-bottom:-6px;margin-left:calc(-1 * 12px);margin-left:calc(-1 * var(--vkui--size_button_tertiary_small_padding_horizontal--regular,12px))}.vkuiModalRoot .vkuiSnackbar{padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom)}.vkuiSnackbar--ios .vkuiSnackbar__body,.vkuiSnackbar--ios .vkuiSnackbar__in{transition:-webkit-transform .4s cubic-bezier(.36,.66,.04,1);transition:transform .4s cubic-bezier(.36,.66,.04,1);transition:transform .4s cubic-bezier(.36,.66,.04,1),-webkit-transform .4s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .4s var(--ios-easing);transition:transform .4s var(--ios-easing);transition:transform .4s var(--ios-easing),-webkit-transform .4s var(--ios-easing)}.vkuiSnackbar--ios .vkuiSnackbar__in{-webkit-animation:vkui-animation-snackbar-intro-vertical .34s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-snackbar-intro-vertical .34s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-snackbar-intro-vertical .34s var(--ios-easing);animation:vkui-animation-snackbar-intro-vertical .34s var(--ios-easing)}.vkuiSnackbar--desktop{bottom:0;left:0;max-width:328px}.vkuiSnackbar--desktop .vkuiSnackbar__in{-webkit-animation-name:vkui-animation-snackbar-intro-horizontal;animation-name:vkui-animation-snackbar-intro-horizontal;padding:12px}.vkuiSnackbar--desktop.vkuiSnackbar--closing .vkuiSnackbar__in{-webkit-transform:translate3d(-140%,0,0);transform:translate3d(-140%,0,0)}.vkuiSnackbar--touched .vkuiSnackbar__body{transition:none}@-webkit-keyframes vkui-animation-snackbar-intro-vertical{0%{-webkit-transform:translate3d(0,140%,0);transform:translate3d(0,140%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-animation-snackbar-intro-vertical{0%{-webkit-transform:translate3d(0,140%,0);transform:translate3d(0,140%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-animation-snackbar-intro-horizontal{0%{-webkit-transform:translate3d(-140%,0,0);transform:translate3d(-140%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-animation-snackbar-intro-horizontal{0%{-webkit-transform:translate3d(-140%,0,0);transform:translate3d(-140%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
) + var(--safe-area-inset-top)));position:relative;z-index:11}.vkuiSplitLayout--ios .vkuiSplitLayout__inner--header{margin-top:calc(-1 * (52px + 0px));margin-top:calc(-1 * (var(
|
|
5
5
|
--panelheader_height_ios,
|
|
6
6
|
var(--vkui--size_panel_header_height--regular)
|
|
7
|
-
) + var(--safe-area-inset-top)))}.vkuiSplitLayout__popout{z-index:100}.vkuiSplitLayout__modal,.vkuiSplitLayout__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiSplitLayout__modal{z-index:99}.vkuiSplitLayout__modal:empty{display:none}
|
|
7
|
+
) + var(--safe-area-inset-top)))}.vkuiSplitLayout__popout{z-index:100;z-index:var(--vkui--z_index_popout,100)}.vkuiSplitLayout__modal,.vkuiSplitLayout__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiSplitLayout__modal{z-index:99;z-index:var(--vkui--z_index_modal,99)}.vkuiSplitLayout__modal:empty{display:none}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiView--ios .vkuiPanel__in{padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom);padding:0;padding:0 var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left)}.vkuiView--ios .vkuiView__panel--swipe-back-prev{box-shadow:-2px 0 12px rgba(0,0,0,.3)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-success{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success,.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{-webkit-transform:translateZ(0);transform:translateZ(0)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed,.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success,.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.vkuiView--ios .vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-prev-forward .6s var(--ios-easing);animation:vkui-animation-ios-prev-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-back .6s var(--ios-easing);animation:vkui-animation-ios-next-back .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-forward .6s var(--ios-easing);animation:vkui-animation-ios-next-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards;animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{background:#000;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-fade-in .6s var(--ios-easing);animation:vkui-animation-ios-fade-in .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards;animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next .vkuiPanel__fade{display:none}.vkuiView--ios.vkuiView--no-motion .vkuiView__panel,.vkuiView--ios.vkuiView--no-motion .vkuiView__panel .vkuiPanel__in{-webkit-animation:none;animation:none}.vkuiView--ios .vkuiView__panel--active .vkuiPanel__fade{display:none}@-webkit-keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@-webkit-keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@-webkit-keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}@keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}.vkuiView{word-wrap:break-word;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common);height:100%;position:relative;width:100%}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView__header{position:fixed;width:100%;z-index:2}.vkuiView--animated .vkuiView__header,.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel{pointer-events:none}.vkuiView__panel,.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{box-sizing:border-box;position:relative;z-index:1}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{left:0;overflow:hidden;position:fixed;top:0}.vkuiView__popout{z-index:100}.vkuiView__modal,.vkuiView__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiView__modal{z-index:99}.vkuiView__modal:empty{display:none}.vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;-webkit-animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards;animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-view-next-forward .3s var(--android-easing);animation:vkui-animation-view-next-forward .3s var(--android-easing)}.vkuiView--no-motion .vkuiView__panel{-webkit-animation:none;animation:none}@-webkit-keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@-webkit-keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}
|
|
1
|
+
.vkuiView--ios .vkuiPanel__in{padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom);padding:0;padding:0 var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left)}.vkuiView--ios .vkuiView__panel--swipe-back-prev{box-shadow:-2px 0 12px rgba(0,0,0,.3)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-success{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success,.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{-webkit-transform:translateZ(0);transform:translateZ(0)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed,.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success,.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.vkuiView--ios .vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-prev-forward .6s var(--ios-easing);animation:vkui-animation-ios-prev-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-back .6s var(--ios-easing);animation:vkui-animation-ios-next-back .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-forward .6s var(--ios-easing);animation:vkui-animation-ios-next-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards;animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{background:#000;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-fade-in .6s var(--ios-easing);animation:vkui-animation-ios-fade-in .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards;animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next .vkuiPanel__fade{display:none}.vkuiView--ios.vkuiView--no-motion .vkuiView__panel,.vkuiView--ios.vkuiView--no-motion .vkuiView__panel .vkuiPanel__in{-webkit-animation:none;animation:none}.vkuiView--ios .vkuiView__panel--active .vkuiPanel__fade{display:none}@-webkit-keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@-webkit-keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@-webkit-keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}@keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}.vkuiView{word-wrap:break-word;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common);height:100%;position:relative;width:100%}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView__header{position:fixed;width:100%;z-index:2}.vkuiView--animated .vkuiView__header,.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel{pointer-events:none}.vkuiView__panel,.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{box-sizing:border-box;position:relative;z-index:1}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{left:0;overflow:hidden;position:fixed;top:0}.vkuiView__popout{z-index:100;z-index:var(--vkui--z_index_popout,100)}.vkuiView__modal,.vkuiView__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiView__modal{z-index:99;z-index:var(--vkui--z_index_modal,99)}.vkuiView__modal:empty{display:none}.vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;-webkit-animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards;animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-view-next-forward .3s var(--android-easing);animation:vkui-animation-view-next-forward .3s var(--android-easing)}.vkuiView--no-motion .vkuiView__panel{-webkit-animation:none;animation:none}@-webkit-keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@-webkit-keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}
|