@skbkontur/react-ui 5.5.1-9e084.0 → 5.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -2
- package/cjs/components/Checkbox/Checkbox.mixins.js +14 -6
- package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +13 -8
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +9 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +13 -2
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +1 -0
- package/cjs/components/FileUploader/FileUploader.js +3 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +25 -22
- package/cjs/components/Modal/Modal.js +10 -7
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +5 -5
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +3 -3
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +11 -10
- package/cjs/components/Radio/Radio.js +5 -4
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +21 -28
- package/cjs/components/RadioGroup/RadioGroup.js +2 -9
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +5 -1
- package/cjs/components/Textarea/Textarea.js +10 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +5 -0
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +3 -0
- package/cjs/internal/themes/BasicTheme.js +6 -1
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +4 -4
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins.d.ts +2 -2
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +7 -7
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +4 -2
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +9 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -0
- package/components/Modal/Modal/Modal.js +5 -7
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +25 -22
- package/components/Modal/ModalBody/ModalBody.js +1 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +5 -5
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +3 -3
- package/components/Radio/Radio/Radio.js +5 -4
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +11 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -9
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +21 -28
- package/components/Textarea/Textarea/Textarea.js +5 -0
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +5 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -0
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/BasicTheme/BasicTheme.js +3 -0
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +3 -0
- package/package.json +1 -1
|
@@ -141,6 +141,8 @@ var stopPropagation = function stopPropagation(e) {return e.stopPropagation();};
|
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
|
|
144
|
+
|
|
145
|
+
|
|
144
146
|
|
|
145
147
|
|
|
146
148
|
|
|
@@ -614,4 +616,5 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
614
616
|
var FileUploader = exports.FileUploader = (0, _withFileUploaderControlProvider.withFileUploaderControlProvider)( /*#__PURE__*/
|
|
615
617
|
_react.default.memo(_FileUploader)
|
|
616
618
|
);
|
|
619
|
+
|
|
617
620
|
FileUploader.displayName = 'FileUploader';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_globalObject","_fileUtils","_Emotion","_useMemoObject","_FileUploaderControlContext","_useControlLocale","_useUpload","_useDrop3","_ThemeContext","_withFileUploaderControlProvider","_keyListener","_FileUploaderFile","_FileUploaderFileList","_CommonWrapper","_FileUploaderFileValidationResult","_useFileUploaderSize","_forwardRefAndName","_FocusControlWrapper","_ThemeHelpers","_UploadIcon","_FileUploader2","_excluded","stopPropagation","e","FileUploaderDataTids","exports","root","content","link","input","defaultRenderFile","_file","_fileNode","props","default","createElement","FileUploaderFile","_FileUploader","forwardRefAndName","ref","_files$","_files$2","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","_cx","theme","useContext","ThemeContext","disabled","error","warning","_props$withValidation","withValidationTooltip","validationTooltipPosition","_props$withWarningIco","withWarningIcon","_props$multiple","multiple","uploaderText","uploaderIcon","_props$view","view","_props$uploadButtonPo","uploadButtonPosition","_props$validationSumm","validationSummary","_props$validationSumm2","validationSummaryStart","_props$width","width","fileUploaderWidth","_props$hideFiles","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","_props$size","size","_props$renderFile","renderFile","inputProps","_objectWithoutPropertiesLoose2","_useContext","FileUploaderControlContext","files","setFiles","removeFile","reset","setFileValidationResult","versionGTE5_5","isThemeGTE","locale","useControlLocale","inputRef","useRef","fileDivRef","isAsync","isSingleMode","_useState","useState","hovered","setHovered","upload","useUpload","tryValidateAndUpload","useCallback","forEach","_ref","_asyncToGenerator2","_regenerator","mark","_callee","file","validationMessage","wrap","_callee$","_context","prev","next","t0","sent","id","FileUploaderFileValidationResult","message","status","FileUploaderFileStatus","Error","stop","_x","apply","arguments","isTileView","jsViewStyles","jsTileStyles","jsRowStyles","sizeClassName","useFileUploaderSize","small","sizeSmall","medium","sizeMedium","large","sizeLarge","uploadButtonTileWithFileClassName","uploadButtonTileWithFileSmall","uploadButtonTileWithFileMedium","uploadButtonTileWithFileLarge","uploadButtonIconGapClass","uploadButtonIconGapSmall","uploadButtonIconGapMedium","uploadButtonIconGapLarge","sizeIconClass","jsStyles","iconSmall5_5","iconSmall","iconMedium5_5","iconMedium","iconLarge5_5","iconLarge","sizeWrapperClass","uploadButtonWrapperSmall","uploadButtonWrapperMedium","uploadButtonWrapperLarge","sizeWrapperEmptyFileClass","uploadButtonWrapperEmptyFileSmall","uploadButtonWrapperEmptyFileMedium","uploadButtonWrapperEmptyFileLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","length","filesArray","Array","from","attachedFiles","map","getAttachedFile","handleDrop","event","dataTransfer","_dataTransfer$files","dropEffect","current","_useDrop","useDrop","onDrop","isDraggable","labelRef","_useDrop2","isWindowDraggable","windowRef","isBrowser","globalObject","document","focus","_inputRef$current","keyListener","isTabPressed","blur","_inputRef$current2","removeFileFromNativeInput","fileId","DataTransfer","filter","f","items","add","originalFile","handleRemoveFile","handleReset","useImperativeHandle","getRootNode","rootNodeRef","_useState2","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hasFiles","hasOneFile","hasOneFileForSingle","hasError","hasWarning","Warning","uploadButtonClassNames","cx","uploadButton","uploadButtonWithFile","uploadButtonFocus","disabledBackground","warningButton","errorButton","warningFile","errorFile","hoveredBorderColor","dragOver","canDrop","uploadButtonWrapperClassNames","uploadButtonWrapper","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","iconRight","rootClassNames","root5_5","contentClassNames","contentWithFiles","afterLinkTextClassNames","globalClasses","afterLinkText","afterLinkText_HasFiles","afterLinkTextColor","linkClassNames","linkHovered","linkDisabled","useEffect","UploadIcon","chooseFileText","chooseFile","chooseFileLocale","String","fromCharCode","hideUploaderText","renderChooseFileText","className","choosedFile","renderFileList","propsVersionGTE5_5","FileUploaderFileList","_extends2","onRemove","fileProps","fileElement","CommonWrapper","style","useMemoObject","fileUploaderTileWidth","onMouseEnter","onMouseLeave","singleFile","Fragment","orDragHere","FocusControlWrapper","onBlurWhenDisabled","tabIndex","type","visuallyHidden","onClick","FileUploader","withFileUploaderControlProvider","React","memo","displayName"],"sources":["FileUploader.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type {\n FileUploaderAttachedFile,\n FileUploaderUploadButtonPosition,\n FileUploaderValidationSummary,\n FileUploaderView,\n} from '../../internal/FileUploaderControl/fileUtils';\nimport { FileUploaderFileStatus, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { FileUploaderFileProps } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport type { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';\n\nimport { UploadIcon } from './UploadIcon';\nimport { globalClasses, jsStyles, jsRowStyles, jsTileStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n /** Состояние ошибки всего контрола */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\" */\n warning?: boolean;\n\n /** Задает приоритетное расположение подсказки относительно контрола\n * @default 'top left' */\n validationTooltipPosition?: ShortPopupPositionsType | PopupPositionsType;\n\n /** Использовать тултип для отображения валидации\n * @default false */\n withValidationTooltip?: boolean;\n\n /** Использовать иконку для ворнинга (восклицательный знак)\n * @default false */\n withWarningIcon?: boolean;\n\n /** Задает длину компонента. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт размер контрола.\n * @default small */\n size?: SizeProp;\n\n /** Скрывает отображение файлов.\n * @default false */\n hideFiles?: boolean;\n\n /** Пользовательский текст для загрузки файла\n * @default 'Загрузить файл'\n */\n uploaderText?: string;\n\n /** Пользовательская иконка для загрузки файла\n * @default UploadIcon\n */\n uploaderIcon?: React.ReactNode;\n\n /** Вид компонента\n * - `row` — строчный вид\n * - `tile` — плиточный вид\n * @default row\n */\n view?: FileUploaderView;\n\n /** Отображать ли саммари с детализацией ошибок. Работает с версией темы >= 5_5.\n * - `auto` — саммари отображается, если количество загруженных файлов >= validationSummaryStart\n * - `enabled` — всегда включено\n * - `disabled` — всегда отключено\n * @default auto\n */\n validationSummary?: FileUploaderValidationSummary;\n\n /** Количество файлов, от которого показываем саммари (при validationSummary = `auto`)\n * @default 5 */\n validationSummaryStart?: number;\n\n /** Позиционирование области загрузки файла\n * @default start */\n uploadButtonPosition?: FileUploaderUploadButtonPosition;\n\n /** Задает функцию, через которую отправляются файлы. Используется для отслеживания статуса загрузки файла.\n * @param {FileUploaderAttachedFile} file - файл, статус загрузки которого необходимо отследить. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n\n /** Задает функцию, которая вызывается при удачной попытке отправки через request. */\n onRequestSuccess?: (fileId: string) => void;\n\n /** Задает функцию, которая вызывается при неудачной попытке отправки через request. */\n onRequestError?: (fileId: string) => void;\n\n /** Определяет функцию валидации каждого файла. Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку или объект с ошибкой.\n * @returns {Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>} */\n validateBeforeUpload?: (\n file: FileUploaderAttachedFile,\n ) => Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>;\n\n /**\n * Задает функцию, которая позволяет кастомизировать файлы. Через нее можно вешать кастомные валидации на каждый файл.\n * @param {FileUploaderAttachedFile} file - файл, отображение которого нужно кастомизировать.\n * @param {fileNode} fileNode - `reactElement` компонента `FileUploaderFile`\n * @param {FileUploaderFileProps} props - пропы компонента `FileUploaderFile`, смотри примеры использования в документации.\n */\n renderFile?: (\n file: FileUploaderAttachedFile,\n fileNode: React.ReactElement,\n props: FileUploaderFileProps,\n ) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n removeFile: (fileId: string) => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (\n _file: FileUploaderAttachedFile,\n _fileNode: React.ReactElement,\n props: FileUploaderFileProps,\n) => <FileUploaderFile {...props} />;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\n disabled,\n error,\n warning,\n withValidationTooltip = false,\n validationTooltipPosition,\n withWarningIcon = false,\n multiple = false,\n uploaderText,\n uploaderIcon,\n view = 'row',\n uploadButtonPosition = 'start',\n validationSummary = 'auto',\n validationSummaryStart = 5,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = useContext(FileUploaderControlContext);\n\n const versionGTE5_5 = isThemeGTE(theme, '5.5');\n const locale = useControlLocale(versionGTE5_5);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [hovered, setHovered] = useState(false);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else if (typeof validationMessage === 'object') {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage.message),\n validationMessage.status,\n );\n } else {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage),\n FileUploaderFileStatus.Error,\n );\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const isTileView = view === 'tile';\n const jsViewStyles = versionGTE5_5 && isTileView ? jsTileStyles : jsRowStyles;\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsViewStyles.sizeSmall(theme),\n medium: jsViewStyles.sizeMedium(theme),\n large: jsViewStyles.sizeLarge(theme),\n });\n\n const uploadButtonTileWithFileClassName = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonTileWithFileSmall(theme),\n medium: jsTileStyles.uploadButtonTileWithFileMedium(theme),\n large: jsTileStyles.uploadButtonTileWithFileLarge(theme),\n });\n\n const uploadButtonIconGapClass = useFileUploaderSize(size, {\n small: jsViewStyles.uploadButtonIconGapSmall(theme),\n medium: jsViewStyles.uploadButtonIconGapMedium(theme),\n large: jsViewStyles.uploadButtonIconGapLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: versionGTE5_5 ? jsStyles.iconSmall5_5(theme) : jsStyles.iconSmall(theme),\n medium: versionGTE5_5 ? jsStyles.iconMedium5_5(theme) : jsStyles.iconMedium(theme),\n large: versionGTE5_5 ? jsStyles.iconLarge5_5(theme) : jsStyles.iconLarge(theme),\n });\n\n const sizeWrapperClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperMedium(theme),\n large: jsTileStyles.uploadButtonWrapperLarge(theme),\n });\n\n const sizeWrapperEmptyFileClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperEmptyFileSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperEmptyFileMedium(theme),\n large: jsTileStyles.uploadButtonWrapperEmptyFileLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !newFiles.length) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event: DragEvent) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n if (dataTransfer) {\n if (isSingleMode && dataTransfer.files.length > 1) {\n dataTransfer.dropEffect = 'none';\n return;\n }\n if (dataTransfer.files?.length > 0) {\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n handleChange(dataTransfer.files);\n }\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n const removeFileFromNativeInput = useCallback(\n (fileId: string) => {\n const dataTransfer = new DataTransfer();\n files\n .filter((f) => f.id !== fileId)\n .forEach((file) => {\n dataTransfer.items.add(file.originalFile);\n });\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n },\n [files],\n );\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n removeFile(fileId);\n removeFileFromNativeInput(fileId);\n },\n [removeFileFromNativeInput, removeFile],\n );\n\n const handleReset = useCallback(() => {\n reset();\n const dataTransfer = new DataTransfer();\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, [reset, handleRemoveFile]);\n\n useImperativeHandle(\n ref,\n () => ({\n focus,\n blur,\n reset: handleReset,\n removeFile: handleRemoveFile,\n getRootNode: () => rootNodeRef.current,\n }),\n [ref, blur, focus, handleReset, handleRemoveFile],\n );\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n setHovered(false);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const hasFiles = files.length > 0;\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const hasError = !!error || files[0]?.status === FileUploaderFileStatus.Error;\n const hasWarning = !!warning || files[0]?.status === FileUploaderFileStatus.Warning;\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n jsViewStyles.uploadButton(),\n sizeClassName,\n versionGTE5_5 && hasOneFileForSingle && jsViewStyles.uploadButtonWithFile(theme),\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && {\n [jsStyles.disabled(theme)]: true,\n [jsStyles.disabledBackground(theme)]: !versionGTE5_5 || !hasFiles,\n },\n (focusedByTab || !hasOneFileForSingle || !versionGTE5_5) && {\n [jsStyles.warningButton(theme)]: hasWarning,\n [jsStyles.errorButton(theme)]: hasError,\n },\n versionGTE5_5 &&\n hasOneFileForSingle && {\n [uploadButtonTileWithFileClassName]: isTileView,\n [jsStyles.warningFile(theme)]: (!isTileView || hovered) && hasWarning,\n [jsStyles.errorFile(theme)]: (!isTileView || hovered) && hasError,\n },\n !disabled &&\n hovered && {\n [jsStyles.hovered(theme)]: true,\n [jsStyles.hoveredBorderColor(theme)]: !versionGTE5_5,\n },\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n isTileView && {\n [sizeWrapperClass]: true,\n [sizeWrapperEmptyFileClass]: !hasOneFileForSingle,\n },\n jsViewStyles.uploadButtonWrapper(),\n canDrop && jsStyles.windowDragOver(theme),\n );\n\n const uploadButtonIconClassNames = cx(\n jsStyles.icon(theme),\n sizeIconClass,\n disabled && jsStyles.iconDisabled(theme),\n !versionGTE5_5 && jsStyles.iconRight(),\n versionGTE5_5 && uploadButtonIconGapClass,\n );\n\n const rootClassNames = cx(\n jsStyles.root(theme),\n versionGTE5_5 && {\n [jsStyles.root5_5()]: true,\n [jsRowStyles.root()]: !isTileView,\n },\n );\n\n const contentClassNames = cx(jsViewStyles.content(), {\n [jsViewStyles.contentWithFiles()]: hasOneFileForSingle,\n [contentInnerClass]: !isTileView && (!files.length || !isSingleMode),\n });\n\n const afterLinkTextClassNames = cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles() : jsStyles.afterLinkText(),\n !versionGTE5_5 && jsStyles.afterLinkTextColor(theme),\n );\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n if (!files || !files.length || !inputRef.current) {\n return;\n }\n\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file.originalFile));\n inputRef.current.files = dataTransfer.files;\n }, []);\n\n const rootNodeRef = useRef(null);\n\n const icon = uploaderIcon ?? <UploadIcon size={size} view={view} />;\n const chooseFileText = uploaderText ?? locale.chooseFile;\n const chooseFileLocale = `${chooseFileText}${String.fromCharCode(0xa0)}`; /* */\n const hideUploaderText = versionGTE5_5 && isTileView && uploaderText === '';\n const renderChooseFileText = () =>\n !hideUploaderText && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {versionGTE5_5 && !hasOneFileForSingle && chooseFileLocale}\n {!versionGTE5_5 && (hasOneFileForSingle ? locale.choosedFile : locale.chooseFile)}\n {versionGTE5_5 ? null : String.fromCharCode(0xa0) /* */}\n </span>\n );\n\n const renderFileList = () => {\n const propsVersionGTE5_5 = {\n withValidationTooltip,\n validationSummary,\n validationSummaryStart,\n withWarningIcon,\n disabled,\n };\n\n return (\n !hideFiles &&\n !isSingleMode &&\n !!files.length && (\n <FileUploaderFileList\n renderFile={renderFile}\n size={size}\n view={view}\n onRemove={handleRemoveFile}\n validationTooltipPosition={validationTooltipPosition}\n {...(versionGTE5_5 && propsVersionGTE5_5)}\n />\n )\n );\n };\n\n const fileProps: FileUploaderFileProps = {\n file: files[0],\n size,\n view,\n onRemove: handleRemoveFile,\n error,\n warning,\n withValidationTooltip,\n validationTooltipPosition,\n withWarningIcon,\n hovered,\n disabled,\n };\n\n const fileElement = renderFile(files[0], <FileUploaderFile {...fileProps} />, fileProps);\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={rootClassNames}\n style={useMemoObject({ width: isTileView && !multiple ? theme.fileUploaderTileWidth : width })}\n ref={rootNodeRef}\n >\n {(!versionGTE5_5 || uploadButtonPosition === 'end') && renderFileList()}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n {versionGTE5_5 && !hasOneFileForSingle && <div className={uploadButtonIconClassNames}>{icon}</div>}\n <div data-tid={FileUploaderDataTids.content} className={contentClassNames}>\n {renderChooseFileText()}\n <div className={afterLinkTextClassNames}>\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {fileElement}\n </div>\n ) : (\n !versionGTE5_5 && (\n <>\n {locale.orDragHere} \n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n {versionGTE5_5 && uploadButtonPosition === 'start' && renderFileList()}\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\n/**\n * `FileUploader` — контрол для выбора пользователем файла на компьютере и отображения статуса его отправки на сервер.\n *\n * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.\n */\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"],"mappings":"mqBAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;;;;;;;AAQA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;;AAEA,IAAAU,gCAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAX,OAAA;;AAEA,IAAAY,iBAAA,GAAAZ,OAAA;AACA,IAAAa,qBAAA,GAAAb,OAAA;;AAEA,IAAAc,cAAA,GAAAd,OAAA;;AAEA,IAAAe,iCAAA,GAAAf,OAAA;AACA,IAAAgB,oBAAA,GAAAhB,OAAA;;AAEA,IAAAiB,kBAAA,GAAAjB,OAAA;AACA,IAAAkB,oBAAA,GAAAlB,OAAA;AACA,IAAAmB,aAAA,GAAAnB,OAAA;;;AAGA,IAAAoB,WAAA,GAAApB,OAAA;AACA,IAAAqB,cAAA,GAAArB,OAAA,0BAA2F,IAAAsB,SAAA;;AAE3F,IAAMC,eAAwC,GAAG,SAA3CA,eAAwCA,CAAIC,CAAC,UAAKA,CAAC,CAACD,eAAe,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GpE,IAAME,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAClCE,IAAI,EAAE,oBAAoB;EAC1BC,OAAO,EAAE,uBAAuB;EAChCC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAE;AACT,CAAU;;AAEV,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA;AACrBC,KAA+B;AAC/BC,SAA6B;AAC7BC,KAA4B;IACzBpC,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACxB,iBAAA,CAAAyB,gBAAgB,EAAKH,KAAQ,CAAC;;AAEpC,IAAMI,aAAa,GAAG,IAAAC,oCAAiB,EAAsC,cAAc,EAAE,UAACL,KAAK,EAAEM,GAAG,EAAK,KAAAC,OAAA,EAAAC,QAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,GAAA;EAC3G,IAAMC,KAAK,GAAG,IAAAC,iBAAU,EAACC,0BAAY,CAAC;;EAEtC;IACEC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;IAyBNnB,KAAK,CAzBPmB,QAAQ,CACRC,KAAK,GAwBHpB,KAAK,CAxBPoB,KAAK,CACLC,OAAO,GAuBLrB,KAAK,CAvBPqB,OAAO,CAAAC,qBAAA,GAuBLtB,KAAK,CAtBPuB,qBAAqB,CAArBA,qBAAqB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAC7BE,yBAAyB,GAqBvBxB,KAAK,CArBPwB,yBAAyB,CAAAC,qBAAA,GAqBvBzB,KAAK,CApBP0B,eAAe,CAAfA,eAAe,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAAE,eAAA,GAoBrB3B,KAAK,CAnBP4B,QAAQ,CAARA,QAAQ,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA,CAChBE,YAAY,GAkBV7B,KAAK,CAlBP6B,YAAY,CACZC,YAAY,GAiBV9B,KAAK,CAjBP8B,YAAY,CAAAC,WAAA,GAiBV/B,KAAK,CAhBPgC,IAAI,CAAJA,IAAI,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA,CAAAE,qBAAA,GAgBVjC,KAAK,CAfPkC,oBAAoB,CAApBA,oBAAoB,GAAAD,qBAAA,cAAG,OAAO,GAAAA,qBAAA,CAAAE,qBAAA,GAe5BnC,KAAK,CAdPoC,iBAAiB,CAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,MAAM,GAAAA,qBAAA,CAAAE,sBAAA,GAcxBrC,KAAK,CAbPsC,sBAAsB,CAAtBA,sBAAsB,GAAAD,sBAAA,cAAG,CAAC,GAAAA,sBAAA,CAAAE,YAAA,GAaxBvC,KAAK,CAZPwC,KAAK,CAALA,KAAK,GAAAD,YAAA,cAAGvB,KAAK,CAACyB,iBAAiB,GAAAF,YAAA,CAAAG,gBAAA,GAY7B1C,KAAK,CAXP2C,SAAS,CAATA,SAAS,GAAAD,gBAAA,cAAG,KAAK,GAAAA,gBAAA,CACjBE,MAAM,GAUJ5C,KAAK,CAVP4C,MAAM,CACNC,OAAO,GASL7C,KAAK,CATP6C,OAAO,CACPC,QAAQ,GAQN9C,KAAK,CARP8C,QAAQ,CACRC,OAAO,GAOL/C,KAAK,CAPP+C,OAAO,CACPC,oBAAoB,GAMlBhD,KAAK,CANPgD,oBAAoB,CACpBC,gBAAgB,GAKdjD,KAAK,CALPiD,gBAAgB,CAChBC,cAAc,GAIZlD,KAAK,CAJPkD,cAAc,CAAAC,WAAA,GAIZnD,KAAK,CAHPoD,IAAI,CAAJA,IAAI,GAAAD,WAAA,cAAG,OAAO,GAAAA,WAAA,CAAAE,iBAAA,GAGZrD,KAAK,CAFPsD,UAAU,CAAVA,UAAU,GAAAD,iBAAA,cAAGxD,iBAAiB,GAAAwD,iBAAA,CAC3BE,UAAU,OAAAC,8BAAA,CAAAvD,OAAA,EACXD,KAAK,EAAAZ,SAAA;;EAET,IAAAqE,WAAA,GAAwE,IAAAxC,iBAAU,EAACyC,sDAA0B,CAAC,CAAtGC,KAAK,GAAAF,WAAA,CAALE,KAAK,CAAEC,QAAQ,GAAAH,WAAA,CAARG,QAAQ,CAAEC,UAAU,GAAAJ,WAAA,CAAVI,UAAU,CAAEC,KAAK,GAAAL,WAAA,CAALK,KAAK,CAAEC,uBAAuB,GAAAN,WAAA,CAAvBM,uBAAuB;;EAEnE,IAAMC,aAAa,GAAG,IAAAC,wBAAU,EAACjD,KAAK,EAAE,KAAK,CAAC;EAC9C,IAAMkD,MAAM,GAAG,IAAAC,kCAAgB,EAACH,aAAa,CAAC;;EAE9C,IAAMI,QAAQ,GAAG,IAAAC,aAAM,EAAmB,IAAI,CAAC;EAC/C,IAAMC,UAAU,GAAG,IAAAD,aAAM,EAAiB,IAAI,CAAC;;EAE/C,IAAME,OAAO,GAAG,CAAC,CAACxB,OAAO;EACzB,IAAMyB,YAAY,GAAG,CAAC5C,QAAQ;;EAE9B,IAAA6C,SAAA,GAA8B,IAAAC,eAAQ,EAAC,KAAK,CAAC,CAAtCC,OAAO,GAAAF,SAAA,IAAEG,UAAU,GAAAH,SAAA;EAC1B,IAAMI,MAAM,GAAG,IAAAC,oBAAS,EAAC/B,OAAO,EAAEE,gBAAgB,EAAEC,cAAc,CAAC;;EAEnE,IAAM6B,oBAAoB,GAAG,IAAAC,kBAAW;IACtC,UAACrB,KAAiC,EAAK;MACrCA,KAAK,CAACsB,OAAO,gCAAAC,IAAA,OAAAC,kBAAA,CAAAlF,OAAA,gBAAAmF,YAAA,CAAAnF,OAAA,CAAAoF,IAAA,CAAC,SAAAC,QAAOC,IAAI,OAAAC,iBAAA,QAAAJ,YAAA,CAAAnF,OAAA,CAAAwF,IAAA,UAAAC,SAAAC,QAAA,qBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA,UAAAF,QAAA,CAAAG,EAAA;gBACG9C,oBAAoB,MAAA2C,QAAA,CAAAG,EAAA,GAAAH,QAAA,CAAAE,IAAA,YAAAF,QAAA,CAAAE,IAAA,YAAW7C,oBAAoB,CAACuC,IAAI,CAAC,QAAAI,QAAA,CAAAG,EAAA,GAAAH,QAAA,CAAAI,IAAA,QAA7EP,iBAAiB,GAAAG,QAAA,CAAAG,EAAA;;gBAEvB,IAAI,CAACN,iBAAiB,EAAE;kBACtBjB,OAAO,IAAIM,MAAM,CAACU,IAAI,CAAC;gBACzB,CAAC,MAAM,IAAI,OAAOC,iBAAiB,KAAK,QAAQ,EAAE;kBAChDzB,uBAAuB;oBACrBwB,IAAI,CAACS,EAAE;oBACPC,kEAAgC,CAAC7E,KAAK,CAACoE,iBAAiB,CAACU,OAAO,CAAC;oBACjEV,iBAAiB,CAACW;kBACpB,CAAC;gBACH,CAAC,MAAM;kBACLpC,uBAAuB;oBACrBwB,IAAI,CAACS,EAAE;oBACPC,kEAAgC,CAAC7E,KAAK,CAACoE,iBAAiB,CAAC;oBACzDY,iCAAsB,CAACC;kBACzB,CAAC;gBACH,CAAC,yBAAAV,QAAA,CAAAW,IAAA,OAAAhB,OAAA,GACF,oBAAAiB,EAAA,UAAArB,IAAA,CAAAsB,KAAA,OAAAC,SAAA;MAAA,CAAC;IACJ,CAAC;IACD,CAACzD,oBAAoB,EAAEuB,OAAO,EAAEM,MAAM,EAAEd,uBAAuB;EACjE,CAAC;;EAED,IAAM2C,UAAU,GAAG1E,IAAI,KAAK,MAAM;EAClC,IAAM2E,YAAY,GAAG3C,aAAa,IAAI0C,UAAU,GAAGE,2BAAY,GAAGC,0BAAW;;EAE7E,IAAMC,aAAa,GAAG,IAAAC,wCAAmB,EAAC3D,IAAI,EAAE;IAC9C4D,KAAK,EAAEL,YAAY,CAACM,SAAS,CAACjG,KAAK,CAAC;IACpCkG,MAAM,EAAEP,YAAY,CAACQ,UAAU,CAACnG,KAAK,CAAC;IACtCoG,KAAK,EAAET,YAAY,CAACU,SAAS,CAACrG,KAAK;EACrC,CAAC,CAAC;;EAEF,IAAMsG,iCAAiC,GAAG,IAAAP,wCAAmB,EAAC3D,IAAI,EAAE;IAClE4D,KAAK,EAAEJ,2BAAY,CAACW,6BAA6B,CAACvG,KAAK,CAAC;IACxDkG,MAAM,EAAEN,2BAAY,CAACY,8BAA8B,CAACxG,KAAK,CAAC;IAC1DoG,KAAK,EAAER,2BAAY,CAACa,6BAA6B,CAACzG,KAAK;EACzD,CAAC,CAAC;;EAEF,IAAM0G,wBAAwB,GAAG,IAAAX,wCAAmB,EAAC3D,IAAI,EAAE;IACzD4D,KAAK,EAAEL,YAAY,CAACgB,wBAAwB,CAAC3G,KAAK,CAAC;IACnDkG,MAAM,EAAEP,YAAY,CAACiB,yBAAyB,CAAC5G,KAAK,CAAC;IACrDoG,KAAK,EAAET,YAAY,CAACkB,wBAAwB,CAAC7G,KAAK;EACpD,CAAC,CAAC;;EAEF,IAAM8G,aAAa,GAAG,IAAAf,wCAAmB,EAAC3D,IAAI,EAAE;IAC9C4D,KAAK,EAAEhD,aAAa,GAAG+D,uBAAQ,CAACC,YAAY,CAAChH,KAAK,CAAC,GAAG+G,uBAAQ,CAACE,SAAS,CAACjH,KAAK,CAAC;IAC/EkG,MAAM,EAAElD,aAAa,GAAG+D,uBAAQ,CAACG,aAAa,CAAClH,KAAK,CAAC,GAAG+G,uBAAQ,CAACI,UAAU,CAACnH,KAAK,CAAC;IAClFoG,KAAK,EAAEpD,aAAa,GAAG+D,uBAAQ,CAACK,YAAY,CAACpH,KAAK,CAAC,GAAG+G,uBAAQ,CAACM,SAAS,CAACrH,KAAK;EAChF,CAAC,CAAC;;EAEF,IAAMsH,gBAAgB,GAAG,IAAAvB,wCAAmB,EAAC3D,IAAI,EAAE;IACjD4D,KAAK,EAAEJ,2BAAY,CAAC2B,wBAAwB,CAACvH,KAAK,CAAC;IACnDkG,MAAM,EAAEN,2BAAY,CAAC4B,yBAAyB,CAACxH,KAAK,CAAC;IACrDoG,KAAK,EAAER,2BAAY,CAAC6B,wBAAwB,CAACzH,KAAK;EACpD,CAAC,CAAC;;EAEF,IAAM0H,yBAAyB,GAAG,IAAA3B,wCAAmB,EAAC3D,IAAI,EAAE;IAC1D4D,KAAK,EAAEJ,2BAAY,CAAC+B,iCAAiC,CAAC3H,KAAK,CAAC;IAC5DkG,MAAM,EAAEN,2BAAY,CAACgC,kCAAkC,CAAC5H,KAAK,CAAC;IAC9DoG,KAAK,EAAER,2BAAY,CAACiC,iCAAiC,CAAC7H,KAAK;EAC7D,CAAC,CAAC;;EAEF,IAAM8H,iBAAiB,GAAG,IAAA/B,wCAAmB,EAAC3D,IAAI,EAAE;IAClD4D,KAAK,EAAEe,uBAAQ,CAACgB,iBAAiB,CAAC/H,KAAK,CAAC;IACxCkG,MAAM,EAAEa,uBAAQ,CAACiB,kBAAkB,CAAChI,KAAK,CAAC;IAC1CoG,KAAK,EAAEW,uBAAQ,CAACkB,iBAAiB,CAACjI,KAAK;EACzC,CAAC,CAAC;;EAEF;EACA,IAAMkI,YAAY,GAAG,IAAAlE,kBAAW;IAC9B,UAACmE,QAAyB,EAAK;MAC7B,IAAI,CAACA,QAAQ,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;QACjC;MACF;;MAEA,IAAIC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACJ,QAAQ,CAAC;;MAErC,IAAI3E,YAAY,EAAE;QAChB6E,UAAU,GAAG,CAACA,UAAU,CAAC,CAAC,CAAC,CAAC;MAC9B;;MAEA,IAAMG,aAAa,GAAGH,UAAU,CAACI,GAAG,CAACC,0BAAe,CAAC;;MAErD,IAAIlF,YAAY,IAAIgF,aAAa,CAACJ,MAAM,IAAIzF,KAAK,CAACyF,MAAM,EAAE;QACxDvF,UAAU,CAACF,KAAK,CAAC,CAAC,CAAC,CAACqC,EAAE,CAAC;MACzB;;MAEA,IAAIwD,aAAa,CAACJ,MAAM,EAAE;QACxBxF,QAAQ,CAAC4F,aAAa,CAAC;QACvBzE,oBAAoB,CAACyE,aAAa,CAAC;MACrC;IACF,CAAC;IACD,CAACzE,oBAAoB,EAAEnB,QAAQ,EAAEY,YAAY,EAAEb,KAAK,EAAEE,UAAU;EAClE,CAAC;;EAED,IAAM8F,UAAU,GAAG,IAAA3E,kBAAW;IAC5B,UAAC4E,KAAgB,EAAK;MACpB,IAAIzI,QAAQ,EAAE;QACZ;MACF;;MAEA,IAAQ0I,YAAY,GAAKD,KAAK,CAAtBC,YAAY;MACpB,IAAIA,YAAY,EAAE,KAAAC,mBAAA;QAChB,IAAItF,YAAY,IAAIqF,YAAY,CAAClG,KAAK,CAACyF,MAAM,GAAG,CAAC,EAAE;UACjDS,YAAY,CAACE,UAAU,GAAG,MAAM;UAChC;QACF;QACA,IAAI,EAAAD,mBAAA,GAAAD,YAAY,CAAClG,KAAK,qBAAlBmG,mBAAA,CAAoBV,MAAM,IAAG,CAAC,EAAE;UAClChF,QAAQ,CAAC4F,OAAO,KAAK5F,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK,CAAC;UACjEuF,YAAY,CAACW,YAAY,CAAClG,KAAK,CAAC;QAClC;MACF;IACF,CAAC;IACD,CAACuF,YAAY,EAAE/H,QAAQ;EACzB,CAAC;;EAED,IAAA8I,QAAA,GAAuC,IAAAC,iBAAO,EAAmB,EAAEC,MAAM,EAAER,UAAU,CAAC,CAAC,CAAC,CAAhFS,WAAW,GAAAH,QAAA,CAAXG,WAAW,CAAOC,QAAQ,GAAAJ,QAAA,CAAb3J,GAAG;EACxB,IAAAgK,SAAA,GAA2D,IAAAJ,iBAAO,EAAW,CAAC,CAAzDK,iBAAiB,GAAAD,SAAA,CAA9BF,WAAW,CAA0BI,SAAS,GAAAF,SAAA,CAAdhK,GAAG;;EAE3C,IAAI,IAAAmK,uBAAS,EAACC,0BAAY,CAAC,EAAE;IAC3BF,SAAS,CAACR,OAAO,GAAGU,0BAAY,CAACC,QAAQ;EAC3C;;EAEA,IAAMC,KAAK,GAAG,IAAA5F,kBAAW,EAAC,YAAM,KAAA6F,iBAAA;IAC9BC,wBAAW,CAACC,YAAY,GAAG,IAAI;IAC/B,CAAAF,iBAAA,GAAAzG,QAAQ,CAAC4F,OAAO,aAAhBa,iBAAA,CAAkBD,KAAK,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAMI,IAAI,GAAG,IAAAhG,kBAAW,EAAC,YAAM,KAAAiG,kBAAA;IAC7B,CAAAA,kBAAA,GAAA7G,QAAQ,CAAC4F,OAAO,aAAhBiB,kBAAA,CAAkBD,IAAI,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAME,yBAAyB,GAAG,IAAAlG,kBAAW;IAC3C,UAACmG,MAAc,EAAK;MAClB,IAAMtB,YAAY,GAAG,IAAIuB,YAAY,CAAC,CAAC;MACvCzH,KAAK;MACF0H,MAAM,CAAC,UAACC,CAAC,UAAKA,CAAC,CAACtF,EAAE,KAAKmF,MAAM,GAAC;MAC9BlG,OAAO,CAAC,UAACM,IAAI,EAAK;QACjBsE,YAAY,CAAC0B,KAAK,CAACC,GAAG,CAACjG,IAAI,CAACkG,YAAY,CAAC;MAC3C,CAAC,CAAC;MACJrH,QAAQ,CAAC4F,OAAO,KAAK5F,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK,CAAC;IACnE,CAAC;IACD,CAACA,KAAK;EACR,CAAC;;EAED,IAAM+H,gBAAgB,GAAG,IAAA1G,kBAAW;IAClC,UAACmG,MAAc,EAAK;MAClBtH,UAAU,CAACsH,MAAM,CAAC;MAClBD,yBAAyB,CAACC,MAAM,CAAC;IACnC,CAAC;IACD,CAACD,yBAAyB,EAAErH,UAAU;EACxC,CAAC;;EAED,IAAM8H,WAAW,GAAG,IAAA3G,kBAAW,EAAC,YAAM;IACpClB,KAAK,CAAC,CAAC;IACP,IAAM+F,YAAY,GAAG,IAAIuB,YAAY,CAAC,CAAC;IACvChH,QAAQ,CAAC4F,OAAO,KAAK5F,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK,CAAC;EACnE,CAAC,EAAE,CAACG,KAAK,EAAE4H,gBAAgB,CAAC,CAAC;;EAE7B,IAAAE,0BAAmB;IACjBtL,GAAG;IACH,oBAAO;QACLsK,KAAK,EAALA,KAAK;QACLI,IAAI,EAAJA,IAAI;QACJlH,KAAK,EAAE6H,WAAW;QAClB9H,UAAU,EAAE6H,gBAAgB;QAC5BG,WAAW,EAAE,SAAAA,YAAA,UAAMC,WAAW,CAAC9B,OAAO;MACxC,CAAC,EAAC;IACF,CAAC1J,GAAG,EAAE0K,IAAI,EAAEJ,KAAK,EAAEe,WAAW,EAAED,gBAAgB;EAClD,CAAC;;EAED,IAAAK,UAAA,GAAwC,IAAArH,eAAQ,EAAC,KAAK,CAAC,CAAhDsH,YAAY,GAAAD,UAAA,IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAItC,KAA0C,EAAK;IACxE9G,QAAQ,YAARA,QAAQ,CAAG8G,KAAK,CAAC;IACjBV,YAAY,CAACU,KAAK,CAACuC,MAAM,CAACxI,KAAK,CAAC;IAChCiB,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC;;EAED,IAAMwH,WAAW,GAAG,SAAdA,WAAWA,CAAI9M,CAAqC,EAAK;IAC7D,IAAI,CAAC6B,QAAQ,EAAE;MACb;MACA;MACAuJ,0BAAY,CAAC2B,qBAAqB,YAAlC3B,0BAAY,CAAC2B,qBAAqB,CAAG,YAAM;QACzC,IAAIvB,wBAAW,CAACC,YAAY,EAAE;UAC5BkB,eAAe,CAAC,IAAI,CAAC;QACvB;MACF,CAAC,CAAC;MACFpJ,OAAO,YAAPA,OAAO,CAAGvD,CAAC,CAAC;IACd;EACF,CAAC;;EAED,IAAMgN,UAAU,GAAG,SAAbA,UAAUA,CAAIhN,CAAqC,EAAK;IAC5D2M,eAAe,CAAC,KAAK,CAAC;IACtB,IAAI,CAAC9K,QAAQ,EAAE;MACbyB,MAAM,YAANA,MAAM,CAAGtD,CAAC,CAAC;IACb;EACF,CAAC;;EAED,IAAMiN,QAAQ,GAAG5I,KAAK,CAACyF,MAAM,GAAG,CAAC;EACjC,IAAMoD,UAAU,GAAG7I,KAAK,CAACyF,MAAM,KAAK,CAAC;EACrC,IAAMqD,mBAAmB,GAAGjI,YAAY,IAAIgI,UAAU,IAAI,CAAC7J,SAAS;;EAEpE,IAAM+J,QAAQ,GAAG,CAAC,CAACtL,KAAK,IAAI,EAAAb,OAAA,GAAAoD,KAAK,CAAC,CAAC,CAAC,qBAARpD,OAAA,CAAU4F,MAAM,MAAKC,iCAAsB,CAACC,KAAK;EAC7E,IAAMsG,UAAU,GAAG,CAAC,CAACtL,OAAO,IAAI,EAAAb,QAAA,GAAAmD,KAAK,CAAC,CAAC,CAAC,qBAARnD,QAAA,CAAU2F,MAAM,MAAKC,iCAAsB,CAACwG,OAAO;;EAEnF,IAAMC,sBAAsB,GAAG,IAAAC,WAAE;IAC/B/E,uBAAQ,CAACgF,YAAY,CAAC/L,KAAK,CAAC;IAC5B2F,YAAY,CAACoG,YAAY,CAAC,CAAC;IAC3BjG,aAAa;IACb9C,aAAa,IAAIyI,mBAAmB,IAAI9F,YAAY,CAACqG,oBAAoB,CAAChM,KAAK,CAAC;IAChFgL,YAAY,IAAIjE,uBAAQ,CAACkF,iBAAiB,CAACjM,KAAK,CAAC;IACjDG,QAAQ,KAAAV,KAAA,OAAAA,KAAA;IACLsH,uBAAQ,CAAC5G,QAAQ,CAACH,KAAK,CAAC,IAAG,IAAI,EAAAP,KAAA;IAC/BsH,uBAAQ,CAACmF,kBAAkB,CAAClM,KAAK,CAAC,IAAG,CAACgD,aAAa,IAAI,CAACuI,QAAQ,EAAA9L,KAAA,CAClE;;IACD,CAACuL,YAAY,IAAI,CAACS,mBAAmB,IAAI,CAACzI,aAAa,MAAAtD,KAAA,OAAAA,KAAA;IACpDqH,uBAAQ,CAACoF,aAAa,CAACnM,KAAK,CAAC,IAAG2L,UAAU,EAAAjM,KAAA;IAC1CqH,uBAAQ,CAACqF,WAAW,CAACpM,KAAK,CAAC,IAAG0L,QAAQ,EAAAhM,KAAA,CACxC;;IACDsD,aAAa;IACXyI,mBAAmB,KAAA9L,KAAA,OAAAA,KAAA;IAChB2G,iCAAiC,IAAGZ,UAAU,EAAA/F,KAAA;IAC9CoH,uBAAQ,CAACsF,WAAW,CAACrM,KAAK,CAAC,IAAG,CAAC,CAAC0F,UAAU,IAAI/B,OAAO,KAAKgI,UAAU,EAAAhM,KAAA;IACpEoH,uBAAQ,CAACuF,SAAS,CAACtM,KAAK,CAAC,IAAG,CAAC,CAAC0F,UAAU,IAAI/B,OAAO,KAAK+H,QAAQ,EAAA/L,KAAA,CAClE;;IACH,CAACQ,QAAQ;IACPwD,OAAO,KAAA/D,KAAA,OAAAA,KAAA;IACJmH,uBAAQ,CAACpD,OAAO,CAAC3D,KAAK,CAAC,IAAG,IAAI,EAAAJ,KAAA;IAC9BmH,uBAAQ,CAACwF,kBAAkB,CAACvM,KAAK,CAAC,IAAG,CAACgD,aAAa,EAAApD,KAAA,CACrD;;IACHwJ,WAAW,IAAI,CAACjJ,QAAQ,IAAI4G,uBAAQ,CAACyF,QAAQ,CAACxM,KAAK;EACrD,CAAC;;EAED,IAAMyM,OAAO,GAAGlD,iBAAiB,IAAI,CAACpJ,QAAQ;EAC9C,IAAMuM,6BAA6B,GAAG,IAAAZ,WAAE;IACtCpG,UAAU,KAAA7F,KAAA,OAAAA,KAAA;IACPyH,gBAAgB,IAAG,IAAI,EAAAzH,KAAA;IACvB6H,yBAAyB,IAAG,CAAC+D,mBAAmB,EAAA5L,KAAA,CAClD;;IACD8F,YAAY,CAACgH,mBAAmB,CAAC,CAAC;IAClCF,OAAO,IAAI1F,uBAAQ,CAAC6F,cAAc,CAAC5M,KAAK;EAC1C,CAAC;;EAED,IAAM6M,0BAA0B,GAAG,IAAAf,WAAE;IACnC/E,uBAAQ,CAAC+F,IAAI,CAAC9M,KAAK,CAAC;IACpB8G,aAAa;IACb3G,QAAQ,IAAI4G,uBAAQ,CAACgG,YAAY,CAAC/M,KAAK,CAAC;IACxC,CAACgD,aAAa,IAAI+D,uBAAQ,CAACiG,SAAS,CAAC,CAAC;IACtChK,aAAa,IAAI0D;EACnB,CAAC;;EAED,IAAMuG,cAAc,GAAG,IAAAnB,WAAE;IACvB/E,uBAAQ,CAACtI,IAAI,CAACuB,KAAK,CAAC;IACpBgD,aAAa,KAAAlD,KAAA,OAAAA,KAAA;IACViH,uBAAQ,CAACmG,OAAO,CAAC,CAAC,IAAG,IAAI,EAAApN,KAAA;IACzB+F,0BAAW,CAACpH,IAAI,CAAC,CAAC,IAAG,CAACiH,UAAU,EAAA5F,KAAA;;EAErC,CAAC;;EAED,IAAMqN,iBAAiB,GAAG,IAAArB,WAAE,EAACnG,YAAY,CAACjH,OAAO,CAAC,CAAC,GAAAqB,GAAA,OAAAA,GAAA;EAChD4F,YAAY,CAACyH,gBAAgB,CAAC,CAAC,IAAG3B,mBAAmB,EAAA1L,GAAA;EACrD+H,iBAAiB,IAAG,CAACpC,UAAU,KAAK,CAAC/C,KAAK,CAACyF,MAAM,IAAI,CAAC5E,YAAY,CAAC,EAAAzD,GAAA;EACrE,CAAC;;EAEF,IAAMsN,uBAAuB,GAAG,IAAAvB,WAAE;IAChCwB,4BAAa,CAACC,aAAa;IAC3B9B,mBAAmB,GAAG1E,uBAAQ,CAACyG,sBAAsB,CAAC,CAAC,GAAGzG,uBAAQ,CAACwG,aAAa,CAAC,CAAC;IAClF,CAACvK,aAAa,IAAI+D,uBAAQ,CAAC0G,kBAAkB,CAACzN,KAAK;EACrD,CAAC;;EAED,IAAM0N,cAAc,GAAG,IAAA5B,WAAE;IACvB/E,uBAAQ,CAACpI,IAAI,CAACqB,KAAK,CAAC;IACpB,CAACG,QAAQ,IAAIwD,OAAO,IAAIoD,uBAAQ,CAAC4G,WAAW,CAAC3N,KAAK,CAAC;IACnDG,QAAQ,IAAI4G,uBAAQ,CAAC6G,YAAY,CAAC5N,KAAK;EACzC,CAAC;;EAED,IAAA6N,gBAAS,EAAC,YAAM;IACd,IAAI,CAAClL,KAAK,IAAI,CAACA,KAAK,CAACyF,MAAM,IAAI,CAAChF,QAAQ,CAAC4F,OAAO,EAAE;MAChD;IACF;;IAEA,IAAMH,YAAY,GAAG,IAAIuB,YAAY,CAAC,CAAC;IACvCzH,KAAK,CAACsB,OAAO,CAAC,UAACM,IAAI,UAAKsE,YAAY,CAAC0B,KAAK,CAACC,GAAG,CAACjG,IAAI,CAACkG,YAAY,CAAC,GAAC;IAClErH,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK;EAC7C,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAMmI,WAAW,GAAG,IAAAzH,aAAM,EAAC,IAAI,CAAC;;EAEhC,IAAMyJ,IAAI,GAAGhM,YAAY,WAAZA,YAAY,gBAAIlE,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAChB,WAAA,CAAA4P,UAAU,IAAC1L,IAAI,EAAEA,IAAK,EAACpB,IAAI,EAAEA,IAAK,EAAE,CAAC;EACnE,IAAM+M,cAAc,GAAGlN,YAAY,WAAZA,YAAY,GAAIqC,MAAM,CAAC8K,UAAU;EACxD,IAAMC,gBAAgB,QAAMF,cAAc,GAAGG,MAAM,CAACC,YAAY,CAAC,IAAI,CAAG,CAAC,CAAC;EAC1E,IAAMC,gBAAgB,GAAGpL,aAAa,IAAI0C,UAAU,IAAI7E,YAAY,KAAK,EAAE;EAC3E,IAAMwN,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA;MACxB,CAACD,gBAAgB;MACfxR,MAAA,CAAAqC,OAAA,CAAAC,aAAA,WAAM,YAAUX,oBAAoB,CAACI,IAAK,EAAC2P,SAAS,EAAEZ,cAAe;MAClE1K,aAAa,IAAI,CAACyI,mBAAmB,IAAIwC,gBAAgB;MACzD,CAACjL,aAAa,KAAKyI,mBAAmB,GAAGvI,MAAM,CAACqL,WAAW,GAAGrL,MAAM,CAAC8K,UAAU,CAAC;MAChFhL,aAAa,GAAG,IAAI,GAAGkL,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC9C,CACP;;;EAEH,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,IAAMC,kBAAkB,GAAG;MACzBlO,qBAAqB,EAArBA,qBAAqB;MACrBa,iBAAiB,EAAjBA,iBAAiB;MACjBE,sBAAsB,EAAtBA,sBAAsB;MACtBZ,eAAe,EAAfA,eAAe;MACfP,QAAQ,EAARA;IACF,CAAC;;IAED;MACE,CAACwB,SAAS;MACV,CAAC6B,YAAY;MACb,CAAC,CAACb,KAAK,CAACyF,MAAM;MACZxL,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACvB,qBAAA,CAAA+Q,oBAAoB,MAAAC,SAAA,CAAA1P,OAAA;QACnBqD,UAAU,EAAEA,UAAW;QACvBF,IAAI,EAAEA,IAAK;QACXpB,IAAI,EAAEA,IAAK;QACX4N,QAAQ,EAAElE,gBAAiB;QAC3BlK,yBAAyB,EAAEA,yBAA0B;MAChDwC,aAAa,IAAIyL,kBAAkB;MACzC,CACF;;;EAEL,CAAC;;EAED,IAAMI,SAAgC,GAAG;IACvCtK,IAAI,EAAE5B,KAAK,CAAC,CAAC,CAAC;IACdP,IAAI,EAAJA,IAAI;IACJpB,IAAI,EAAJA,IAAI;IACJ4N,QAAQ,EAAElE,gBAAgB;IAC1BtK,KAAK,EAALA,KAAK;IACLC,OAAO,EAAPA,OAAO;IACPE,qBAAqB,EAArBA,qBAAqB;IACrBC,yBAAyB,EAAzBA,yBAAyB;IACzBE,eAAe,EAAfA,eAAe;IACfiD,OAAO,EAAPA,OAAO;IACPxD,QAAQ,EAARA;EACF,CAAC;;EAED,IAAM2O,WAAW,GAAGxM,UAAU,CAACK,KAAK,CAAC,CAAC,CAAC,eAAE/F,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACxB,iBAAA,CAAAyB,gBAAgB,EAAK0P,SAAY,CAAC,EAAEA,SAAS,CAAC;;EAExF;IACEjS,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACtB,cAAA,CAAAmR,aAAa,EAAK/P,KAAK;IACtBpC,MAAA,CAAAqC,OAAA,CAAAC,aAAA;MACE,YAAUX,oBAAoB,CAACE,IAAK;MACpC6P,SAAS,EAAErB,cAAe;MAC1B+B,KAAK,EAAE,IAAAC,4BAAa,EAAC,EAAEzN,KAAK,EAAEkE,UAAU,IAAI,CAAC9E,QAAQ,GAAGZ,KAAK,CAACkP,qBAAqB,GAAG1N,KAAK,CAAC,CAAC,CAAE;MAC/FlC,GAAG,EAAEwL,WAAY;;IAEhB,CAAC,CAAC9H,aAAa,IAAI9B,oBAAoB,KAAK,KAAK,KAAKsN,cAAc,CAAC,CAAC;IACvE5R,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAE5B,6BAA8B;IAC5C9P,MAAA,CAAAqC,OAAA,CAAAC,aAAA;MACEiQ,YAAY,EAAE,SAAAA,aAAA,UAAMvL,UAAU,CAAC,IAAI,CAAC,EAAC;MACrCwL,YAAY,EAAE,SAAAA,aAAA,UAAMxL,UAAU,CAAC,KAAK,CAAC,EAAC;MACtCtE,GAAG,EAAE+J,QAAS;MACdiF,SAAS,EAAEzC,sBAAuB;;IAEjC7I,aAAa,IAAI,CAACyI,mBAAmB,iBAAI7O,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAEzB,0BAA2B,IAAEC,IAAU,CAAC;IAClGlQ,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAK,YAAUX,oBAAoB,CAACG,OAAQ,EAAC4P,SAAS,EAAEnB,iBAAkB;IACvEkB,oBAAoB,CAAC,CAAC;IACvBzR,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAEjB,uBAAwB;IACrC5B,mBAAmB;IAClB7O,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKI,GAAG,EAAEgE,UAAW,EAACgL,SAAS,EAAEvH,uBAAQ,CAACsI,UAAU,CAAC,CAAE;IACpDP;IACE,CAAC;;IAEN,CAAC9L,aAAa;IACZpG,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAAtC,MAAA,CAAAqC,OAAA,CAAAqQ,QAAA;IACGpM,MAAM,CAACqM,UAAU,EAAC,MACnB;IAAA3S,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAEzB,0BAA2B,IAAEC,IAAU;IACvD;;;IAGH;IACF,CAAC;IACNlQ,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAClB,oBAAA,CAAAwR,mBAAmB,IAACC,kBAAkB,EAAE,SAAAA,mBAAA,UAAMxE,eAAe,CAAC,KAAK,CAAC,EAAC;IACpErO,MAAA,CAAAqC,OAAA,CAAAC,aAAA,cAAAyP,SAAA,CAAA1P,OAAA;IACMsD,UAAU;MACd,YAAUhE,oBAAoB,CAACK,KAAM;MACrCU,GAAG,EAAE8D,QAAS;MACdsM,QAAQ,EAAEvP,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;MAC5BwP,IAAI,EAAC,MAAM;MACXxP,QAAQ,EAAEA,QAAS;MACnBS,QAAQ,EAAEA,QAAS;MACnB0N,SAAS,EAAEvH,uBAAQ,CAAC6I,cAAc,CAAC,CAAE;MACrCC,OAAO,EAAExR,eAAgB;MACzByD,QAAQ,EAAEoJ,iBAAkB;MAC5BrJ,OAAO,EAAEuJ,WAAY;MACrBxJ,MAAM,EAAE0J,UAAW;IACpB;IACkB;IAChB;IACJ,CAAC;IACLtI,aAAa,IAAI9B,oBAAoB,KAAK,OAAO,IAAIsN,cAAc,CAAC;IAClE;IACQ,CAAC;;AAEpB,CAAC,CAAC;;;;AAIF;AACA;AACA;AACA;AACA;AACO,IAAMsB,YAAY,GAAAtR,OAAA,CAAAsR,YAAA,GAAG,IAAAC,gEAA+B;EACzDC,cAAK,CAACC,IAAI,CAAC7Q,aAAa;AAC1B,CAAC;AACD0Q,YAAY,CAACI,WAAW,GAAG,cAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_globalObject","_fileUtils","_Emotion","_useMemoObject","_FileUploaderControlContext","_useControlLocale","_useUpload","_useDrop3","_ThemeContext","_withFileUploaderControlProvider","_keyListener","_FileUploaderFile","_FileUploaderFileList","_CommonWrapper","_FileUploaderFileValidationResult","_useFileUploaderSize","_forwardRefAndName","_FocusControlWrapper","_ThemeHelpers","_UploadIcon","_FileUploader2","_excluded","stopPropagation","e","FileUploaderDataTids","exports","root","content","link","input","defaultRenderFile","_file","_fileNode","props","default","createElement","FileUploaderFile","_FileUploader","forwardRefAndName","ref","_files$","_files$2","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","_cx","theme","useContext","ThemeContext","disabled","error","warning","_props$withValidation","withValidationTooltip","validationTooltipPosition","_props$withWarningIco","withWarningIcon","_props$multiple","multiple","uploaderText","uploaderIcon","_props$view","view","_props$uploadButtonPo","uploadButtonPosition","_props$validationSumm","validationSummary","_props$validationSumm2","validationSummaryStart","_props$width","width","fileUploaderWidth","_props$hideFiles","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","_props$size","size","_props$renderFile","renderFile","inputProps","_objectWithoutPropertiesLoose2","_useContext","FileUploaderControlContext","files","setFiles","removeFile","reset","setFileValidationResult","versionGTE5_5","isThemeGTE","locale","useControlLocale","inputRef","useRef","fileDivRef","isAsync","isSingleMode","_useState","useState","hovered","setHovered","upload","useUpload","tryValidateAndUpload","useCallback","forEach","_ref","_asyncToGenerator2","_regenerator","mark","_callee","file","validationMessage","wrap","_callee$","_context","prev","next","t0","sent","id","FileUploaderFileValidationResult","message","status","FileUploaderFileStatus","Error","stop","_x","apply","arguments","isTileView","jsViewStyles","jsTileStyles","jsRowStyles","sizeClassName","useFileUploaderSize","small","sizeSmall","medium","sizeMedium","large","sizeLarge","uploadButtonTileWithFileClassName","uploadButtonTileWithFileSmall","uploadButtonTileWithFileMedium","uploadButtonTileWithFileLarge","uploadButtonIconGapClass","uploadButtonIconGapSmall","uploadButtonIconGapMedium","uploadButtonIconGapLarge","sizeIconClass","jsStyles","iconSmall5_5","iconSmall","iconMedium5_5","iconMedium","iconLarge5_5","iconLarge","sizeWrapperClass","uploadButtonWrapperSmall","uploadButtonWrapperMedium","uploadButtonWrapperLarge","sizeWrapperEmptyFileClass","uploadButtonWrapperEmptyFileSmall","uploadButtonWrapperEmptyFileMedium","uploadButtonWrapperEmptyFileLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","length","filesArray","Array","from","attachedFiles","map","getAttachedFile","handleDrop","event","dataTransfer","_dataTransfer$files","dropEffect","current","_useDrop","useDrop","onDrop","isDraggable","labelRef","_useDrop2","isWindowDraggable","windowRef","isBrowser","globalObject","document","focus","_inputRef$current","keyListener","isTabPressed","blur","_inputRef$current2","removeFileFromNativeInput","fileId","DataTransfer","filter","f","items","add","originalFile","handleRemoveFile","handleReset","useImperativeHandle","getRootNode","rootNodeRef","_useState2","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hasFiles","hasOneFile","hasOneFileForSingle","hasError","hasWarning","Warning","uploadButtonClassNames","cx","uploadButton","uploadButtonWithFile","uploadButtonFocus","disabledBackground","warningButton","errorButton","warningFile","errorFile","hoveredBorderColor","dragOver","canDrop","uploadButtonWrapperClassNames","uploadButtonWrapper","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","iconRight","rootClassNames","root5_5","contentClassNames","contentWithFiles","afterLinkTextClassNames","globalClasses","afterLinkText","afterLinkText_HasFiles","afterLinkTextColor","linkClassNames","linkHovered","linkDisabled","useEffect","UploadIcon","chooseFileText","chooseFile","chooseFileLocale","String","fromCharCode","hideUploaderText","renderChooseFileText","className","choosedFile","renderFileList","propsVersionGTE5_5","FileUploaderFileList","_extends2","onRemove","fileProps","fileElement","CommonWrapper","style","useMemoObject","fileUploaderTileWidth","onMouseEnter","onMouseLeave","singleFile","Fragment","orDragHere","FocusControlWrapper","onBlurWhenDisabled","tabIndex","type","visuallyHidden","onClick","FileUploader","withFileUploaderControlProvider","React","memo","displayName"],"sources":["FileUploader.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type {\n FileUploaderAttachedFile,\n FileUploaderUploadButtonPosition,\n FileUploaderValidationSummary,\n FileUploaderView,\n} from '../../internal/FileUploaderControl/fileUtils';\nimport { FileUploaderFileStatus, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { FileUploaderFileProps } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport type { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';\n\nimport { UploadIcon } from './UploadIcon';\nimport { globalClasses, jsStyles, jsRowStyles, jsTileStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n /** Состояние ошибки всего контрола */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\" */\n warning?: boolean;\n\n /** Задает приоритетное расположение подсказки относительно контрола\n * @default 'top left' */\n validationTooltipPosition?: ShortPopupPositionsType | PopupPositionsType;\n\n /** Использовать тултип для отображения валидации\n * @default false */\n withValidationTooltip?: boolean;\n\n /** Использовать иконку для ворнинга (восклицательный знак)\n * @default false */\n withWarningIcon?: boolean;\n\n /** Задает длину компонента. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт размер контрола.\n * @default small */\n size?: SizeProp;\n\n /** Скрывает отображение файлов.\n * @default false */\n hideFiles?: boolean;\n\n /** Пользовательский текст для загрузки файла\n * @default 'Загрузить файл'\n */\n uploaderText?: string;\n\n /** Пользовательская иконка для загрузки файла\n * @default UploadIcon\n */\n uploaderIcon?: React.ReactNode;\n\n /** Вид компонента\n * - `row` — строчный вид\n * - `tile` — плиточный вид\n * @default row\n */\n view?: FileUploaderView;\n\n /** Отображать ли саммари с детализацией ошибок. Работает с версией темы >= 5_5.\n * - `auto` — саммари отображается, если количество загруженных файлов >= validationSummaryStart\n * - `enabled` — всегда включено\n * - `disabled` — всегда отключено\n * @default auto\n */\n validationSummary?: FileUploaderValidationSummary;\n\n /** Количество файлов, от которого показываем саммари (при validationSummary = `auto`)\n * @default 5 */\n validationSummaryStart?: number;\n\n /** Позиционирование области загрузки файла\n * @default start */\n uploadButtonPosition?: FileUploaderUploadButtonPosition;\n\n /** Задает функцию, через которую отправляются файлы. Используется для отслеживания статуса загрузки файла.\n * @param {FileUploaderAttachedFile} file - файл, статус загрузки которого необходимо отследить. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n\n /** Задает функцию, которая вызывается при удачной попытке отправки через request. */\n onRequestSuccess?: (fileId: string) => void;\n\n /** Задает функцию, которая вызывается при неудачной попытке отправки через request. */\n onRequestError?: (fileId: string) => void;\n\n /** Определяет функцию валидации каждого файла. Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку или объект с ошибкой.\n * @returns {Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>} */\n validateBeforeUpload?: (\n file: FileUploaderAttachedFile,\n ) => Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>;\n\n /**\n * Задает функцию, которая позволяет кастомизировать файлы. Через нее можно вешать кастомные валидации на каждый файл.\n * @param {FileUploaderAttachedFile} file - файл, отображение которого нужно кастомизировать.\n * @param {fileNode} fileNode - `reactElement` компонента `FileUploaderFile`\n * @param {FileUploaderFileProps} props - пропы компонента `FileUploaderFile`, смотри примеры использования в документации.\n */\n renderFile?: (\n file: FileUploaderAttachedFile,\n fileNode: React.ReactElement,\n props: FileUploaderFileProps,\n ) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n removeFile: (fileId: string) => void;\n}\n\nexport type FileUploader = FileUploaderRef;\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (\n _file: FileUploaderAttachedFile,\n _fileNode: React.ReactElement,\n props: FileUploaderFileProps,\n) => <FileUploaderFile {...props} />;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\n disabled,\n error,\n warning,\n withValidationTooltip = false,\n validationTooltipPosition,\n withWarningIcon = false,\n multiple = false,\n uploaderText,\n uploaderIcon,\n view = 'row',\n uploadButtonPosition = 'start',\n validationSummary = 'auto',\n validationSummaryStart = 5,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = useContext(FileUploaderControlContext);\n\n const versionGTE5_5 = isThemeGTE(theme, '5.5');\n const locale = useControlLocale(versionGTE5_5);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [hovered, setHovered] = useState(false);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else if (typeof validationMessage === 'object') {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage.message),\n validationMessage.status,\n );\n } else {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage),\n FileUploaderFileStatus.Error,\n );\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const isTileView = view === 'tile';\n const jsViewStyles = versionGTE5_5 && isTileView ? jsTileStyles : jsRowStyles;\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsViewStyles.sizeSmall(theme),\n medium: jsViewStyles.sizeMedium(theme),\n large: jsViewStyles.sizeLarge(theme),\n });\n\n const uploadButtonTileWithFileClassName = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonTileWithFileSmall(theme),\n medium: jsTileStyles.uploadButtonTileWithFileMedium(theme),\n large: jsTileStyles.uploadButtonTileWithFileLarge(theme),\n });\n\n const uploadButtonIconGapClass = useFileUploaderSize(size, {\n small: jsViewStyles.uploadButtonIconGapSmall(theme),\n medium: jsViewStyles.uploadButtonIconGapMedium(theme),\n large: jsViewStyles.uploadButtonIconGapLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: versionGTE5_5 ? jsStyles.iconSmall5_5(theme) : jsStyles.iconSmall(theme),\n medium: versionGTE5_5 ? jsStyles.iconMedium5_5(theme) : jsStyles.iconMedium(theme),\n large: versionGTE5_5 ? jsStyles.iconLarge5_5(theme) : jsStyles.iconLarge(theme),\n });\n\n const sizeWrapperClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperMedium(theme),\n large: jsTileStyles.uploadButtonWrapperLarge(theme),\n });\n\n const sizeWrapperEmptyFileClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperEmptyFileSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperEmptyFileMedium(theme),\n large: jsTileStyles.uploadButtonWrapperEmptyFileLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !newFiles.length) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event: DragEvent) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n if (dataTransfer) {\n if (isSingleMode && dataTransfer.files.length > 1) {\n dataTransfer.dropEffect = 'none';\n return;\n }\n if (dataTransfer.files?.length > 0) {\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n handleChange(dataTransfer.files);\n }\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n const removeFileFromNativeInput = useCallback(\n (fileId: string) => {\n const dataTransfer = new DataTransfer();\n files\n .filter((f) => f.id !== fileId)\n .forEach((file) => {\n dataTransfer.items.add(file.originalFile);\n });\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n },\n [files],\n );\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n removeFile(fileId);\n removeFileFromNativeInput(fileId);\n },\n [removeFileFromNativeInput, removeFile],\n );\n\n const handleReset = useCallback(() => {\n reset();\n const dataTransfer = new DataTransfer();\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, [reset, handleRemoveFile]);\n\n useImperativeHandle(\n ref,\n () => ({\n focus,\n blur,\n reset: handleReset,\n removeFile: handleRemoveFile,\n getRootNode: () => rootNodeRef.current,\n }),\n [ref, blur, focus, handleReset, handleRemoveFile],\n );\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n setHovered(false);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const hasFiles = files.length > 0;\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const hasError = !!error || files[0]?.status === FileUploaderFileStatus.Error;\n const hasWarning = !!warning || files[0]?.status === FileUploaderFileStatus.Warning;\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n jsViewStyles.uploadButton(),\n sizeClassName,\n versionGTE5_5 && hasOneFileForSingle && jsViewStyles.uploadButtonWithFile(theme),\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && {\n [jsStyles.disabled(theme)]: true,\n [jsStyles.disabledBackground(theme)]: !versionGTE5_5 || !hasFiles,\n },\n (focusedByTab || !hasOneFileForSingle || !versionGTE5_5) && {\n [jsStyles.warningButton(theme)]: hasWarning,\n [jsStyles.errorButton(theme)]: hasError,\n },\n versionGTE5_5 &&\n hasOneFileForSingle && {\n [uploadButtonTileWithFileClassName]: isTileView,\n [jsStyles.warningFile(theme)]: (!isTileView || hovered) && hasWarning,\n [jsStyles.errorFile(theme)]: (!isTileView || hovered) && hasError,\n },\n !disabled &&\n hovered && {\n [jsStyles.hovered(theme)]: true,\n [jsStyles.hoveredBorderColor(theme)]: !versionGTE5_5,\n },\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n isTileView && {\n [sizeWrapperClass]: true,\n [sizeWrapperEmptyFileClass]: !hasOneFileForSingle,\n },\n jsViewStyles.uploadButtonWrapper(),\n canDrop && jsStyles.windowDragOver(theme),\n );\n\n const uploadButtonIconClassNames = cx(\n jsStyles.icon(theme),\n sizeIconClass,\n disabled && jsStyles.iconDisabled(theme),\n !versionGTE5_5 && jsStyles.iconRight(),\n versionGTE5_5 && uploadButtonIconGapClass,\n );\n\n const rootClassNames = cx(\n jsStyles.root(theme),\n versionGTE5_5 && {\n [jsStyles.root5_5()]: true,\n [jsRowStyles.root()]: !isTileView,\n },\n );\n\n const contentClassNames = cx(jsViewStyles.content(), {\n [jsViewStyles.contentWithFiles()]: hasOneFileForSingle,\n [contentInnerClass]: !isTileView && (!files.length || !isSingleMode),\n });\n\n const afterLinkTextClassNames = cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles() : jsStyles.afterLinkText(),\n !versionGTE5_5 && jsStyles.afterLinkTextColor(theme),\n );\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n if (!files || !files.length || !inputRef.current) {\n return;\n }\n\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file.originalFile));\n inputRef.current.files = dataTransfer.files;\n }, []);\n\n const rootNodeRef = useRef(null);\n\n const icon = uploaderIcon ?? <UploadIcon size={size} view={view} />;\n const chooseFileText = uploaderText ?? locale.chooseFile;\n const chooseFileLocale = `${chooseFileText}${String.fromCharCode(0xa0)}`; /* */\n const hideUploaderText = versionGTE5_5 && isTileView && uploaderText === '';\n const renderChooseFileText = () =>\n !hideUploaderText && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {versionGTE5_5 && !hasOneFileForSingle && chooseFileLocale}\n {!versionGTE5_5 && (hasOneFileForSingle ? locale.choosedFile : locale.chooseFile)}\n {versionGTE5_5 ? null : String.fromCharCode(0xa0) /* */}\n </span>\n );\n\n const renderFileList = () => {\n const propsVersionGTE5_5 = {\n withValidationTooltip,\n validationSummary,\n validationSummaryStart,\n withWarningIcon,\n disabled,\n };\n\n return (\n !hideFiles &&\n !isSingleMode &&\n !!files.length && (\n <FileUploaderFileList\n renderFile={renderFile}\n size={size}\n view={view}\n onRemove={handleRemoveFile}\n validationTooltipPosition={validationTooltipPosition}\n {...(versionGTE5_5 && propsVersionGTE5_5)}\n />\n )\n );\n };\n\n const fileProps: FileUploaderFileProps = {\n file: files[0],\n size,\n view,\n onRemove: handleRemoveFile,\n error,\n warning,\n withValidationTooltip,\n validationTooltipPosition,\n withWarningIcon,\n hovered,\n disabled,\n };\n\n const fileElement = renderFile(files[0], <FileUploaderFile {...fileProps} />, fileProps);\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={rootClassNames}\n style={useMemoObject({ width: isTileView && !multiple ? theme.fileUploaderTileWidth : width })}\n ref={rootNodeRef}\n >\n {(!versionGTE5_5 || uploadButtonPosition === 'end') && renderFileList()}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n {versionGTE5_5 && !hasOneFileForSingle && <div className={uploadButtonIconClassNames}>{icon}</div>}\n <div data-tid={FileUploaderDataTids.content} className={contentClassNames}>\n {renderChooseFileText()}\n <div className={afterLinkTextClassNames}>\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {fileElement}\n </div>\n ) : (\n !versionGTE5_5 && (\n <>\n {locale.orDragHere} \n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n {versionGTE5_5 && uploadButtonPosition === 'start' && renderFileList()}\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\n/**\n * `FileUploader` — контрол для выбора пользователем файла на компьютере и отображения статуса его отправки на сервер.\n *\n * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.\n */\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\n\nFileUploader.displayName = 'FileUploader';\n"],"mappings":"mqBAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;;;;;;;AAQA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;;AAEA,IAAAU,gCAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAX,OAAA;;AAEA,IAAAY,iBAAA,GAAAZ,OAAA;AACA,IAAAa,qBAAA,GAAAb,OAAA;;AAEA,IAAAc,cAAA,GAAAd,OAAA;;AAEA,IAAAe,iCAAA,GAAAf,OAAA;AACA,IAAAgB,oBAAA,GAAAhB,OAAA;;AAEA,IAAAiB,kBAAA,GAAAjB,OAAA;AACA,IAAAkB,oBAAA,GAAAlB,OAAA;AACA,IAAAmB,aAAA,GAAAnB,OAAA;;;AAGA,IAAAoB,WAAA,GAAApB,OAAA;AACA,IAAAqB,cAAA,GAAArB,OAAA,0BAA2F,IAAAsB,SAAA;;AAE3F,IAAMC,eAAwC,GAAG,SAA3CA,eAAwCA,CAAIC,CAAC,UAAKA,CAAC,CAACD,eAAe,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GpE,IAAME,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG;EAClCE,IAAI,EAAE,oBAAoB;EAC1BC,OAAO,EAAE,uBAAuB;EAChCC,IAAI,EAAE,oBAAoB;EAC1BC,KAAK,EAAE;AACT,CAAU;;AAEV,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA;AACrBC,KAA+B;AAC/BC,SAA6B;AAC7BC,KAA4B;IACzBpC,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACxB,iBAAA,CAAAyB,gBAAgB,EAAKH,KAAQ,CAAC;;AAEpC,IAAMI,aAAa,GAAG,IAAAC,oCAAiB,EAAsC,cAAc,EAAE,UAACL,KAAK,EAAEM,GAAG,EAAK,KAAAC,OAAA,EAAAC,QAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,GAAA;EAC3G,IAAMC,KAAK,GAAG,IAAAC,iBAAU,EAACC,0BAAY,CAAC;;EAEtC;IACEC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;IAyBNnB,KAAK,CAzBPmB,QAAQ,CACRC,KAAK,GAwBHpB,KAAK,CAxBPoB,KAAK,CACLC,OAAO,GAuBLrB,KAAK,CAvBPqB,OAAO,CAAAC,qBAAA,GAuBLtB,KAAK,CAtBPuB,qBAAqB,CAArBA,qBAAqB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAC7BE,yBAAyB,GAqBvBxB,KAAK,CArBPwB,yBAAyB,CAAAC,qBAAA,GAqBvBzB,KAAK,CApBP0B,eAAe,CAAfA,eAAe,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAAE,eAAA,GAoBrB3B,KAAK,CAnBP4B,QAAQ,CAARA,QAAQ,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA,CAChBE,YAAY,GAkBV7B,KAAK,CAlBP6B,YAAY,CACZC,YAAY,GAiBV9B,KAAK,CAjBP8B,YAAY,CAAAC,WAAA,GAiBV/B,KAAK,CAhBPgC,IAAI,CAAJA,IAAI,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA,CAAAE,qBAAA,GAgBVjC,KAAK,CAfPkC,oBAAoB,CAApBA,oBAAoB,GAAAD,qBAAA,cAAG,OAAO,GAAAA,qBAAA,CAAAE,qBAAA,GAe5BnC,KAAK,CAdPoC,iBAAiB,CAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,MAAM,GAAAA,qBAAA,CAAAE,sBAAA,GAcxBrC,KAAK,CAbPsC,sBAAsB,CAAtBA,sBAAsB,GAAAD,sBAAA,cAAG,CAAC,GAAAA,sBAAA,CAAAE,YAAA,GAaxBvC,KAAK,CAZPwC,KAAK,CAALA,KAAK,GAAAD,YAAA,cAAGvB,KAAK,CAACyB,iBAAiB,GAAAF,YAAA,CAAAG,gBAAA,GAY7B1C,KAAK,CAXP2C,SAAS,CAATA,SAAS,GAAAD,gBAAA,cAAG,KAAK,GAAAA,gBAAA,CACjBE,MAAM,GAUJ5C,KAAK,CAVP4C,MAAM,CACNC,OAAO,GASL7C,KAAK,CATP6C,OAAO,CACPC,QAAQ,GAQN9C,KAAK,CARP8C,QAAQ,CACRC,OAAO,GAOL/C,KAAK,CAPP+C,OAAO,CACPC,oBAAoB,GAMlBhD,KAAK,CANPgD,oBAAoB,CACpBC,gBAAgB,GAKdjD,KAAK,CALPiD,gBAAgB,CAChBC,cAAc,GAIZlD,KAAK,CAJPkD,cAAc,CAAAC,WAAA,GAIZnD,KAAK,CAHPoD,IAAI,CAAJA,IAAI,GAAAD,WAAA,cAAG,OAAO,GAAAA,WAAA,CAAAE,iBAAA,GAGZrD,KAAK,CAFPsD,UAAU,CAAVA,UAAU,GAAAD,iBAAA,cAAGxD,iBAAiB,GAAAwD,iBAAA,CAC3BE,UAAU,OAAAC,8BAAA,CAAAvD,OAAA,EACXD,KAAK,EAAAZ,SAAA;;EAET,IAAAqE,WAAA,GAAwE,IAAAxC,iBAAU,EAACyC,sDAA0B,CAAC,CAAtGC,KAAK,GAAAF,WAAA,CAALE,KAAK,CAAEC,QAAQ,GAAAH,WAAA,CAARG,QAAQ,CAAEC,UAAU,GAAAJ,WAAA,CAAVI,UAAU,CAAEC,KAAK,GAAAL,WAAA,CAALK,KAAK,CAAEC,uBAAuB,GAAAN,WAAA,CAAvBM,uBAAuB;;EAEnE,IAAMC,aAAa,GAAG,IAAAC,wBAAU,EAACjD,KAAK,EAAE,KAAK,CAAC;EAC9C,IAAMkD,MAAM,GAAG,IAAAC,kCAAgB,EAACH,aAAa,CAAC;;EAE9C,IAAMI,QAAQ,GAAG,IAAAC,aAAM,EAAmB,IAAI,CAAC;EAC/C,IAAMC,UAAU,GAAG,IAAAD,aAAM,EAAiB,IAAI,CAAC;;EAE/C,IAAME,OAAO,GAAG,CAAC,CAACxB,OAAO;EACzB,IAAMyB,YAAY,GAAG,CAAC5C,QAAQ;;EAE9B,IAAA6C,SAAA,GAA8B,IAAAC,eAAQ,EAAC,KAAK,CAAC,CAAtCC,OAAO,GAAAF,SAAA,IAAEG,UAAU,GAAAH,SAAA;EAC1B,IAAMI,MAAM,GAAG,IAAAC,oBAAS,EAAC/B,OAAO,EAAEE,gBAAgB,EAAEC,cAAc,CAAC;;EAEnE,IAAM6B,oBAAoB,GAAG,IAAAC,kBAAW;IACtC,UAACrB,KAAiC,EAAK;MACrCA,KAAK,CAACsB,OAAO,gCAAAC,IAAA,OAAAC,kBAAA,CAAAlF,OAAA,gBAAAmF,YAAA,CAAAnF,OAAA,CAAAoF,IAAA,CAAC,SAAAC,QAAOC,IAAI,OAAAC,iBAAA,QAAAJ,YAAA,CAAAnF,OAAA,CAAAwF,IAAA,UAAAC,SAAAC,QAAA,qBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA,UAAAF,QAAA,CAAAG,EAAA;gBACG9C,oBAAoB,MAAA2C,QAAA,CAAAG,EAAA,GAAAH,QAAA,CAAAE,IAAA,YAAAF,QAAA,CAAAE,IAAA,YAAW7C,oBAAoB,CAACuC,IAAI,CAAC,QAAAI,QAAA,CAAAG,EAAA,GAAAH,QAAA,CAAAI,IAAA,QAA7EP,iBAAiB,GAAAG,QAAA,CAAAG,EAAA;;gBAEvB,IAAI,CAACN,iBAAiB,EAAE;kBACtBjB,OAAO,IAAIM,MAAM,CAACU,IAAI,CAAC;gBACzB,CAAC,MAAM,IAAI,OAAOC,iBAAiB,KAAK,QAAQ,EAAE;kBAChDzB,uBAAuB;oBACrBwB,IAAI,CAACS,EAAE;oBACPC,kEAAgC,CAAC7E,KAAK,CAACoE,iBAAiB,CAACU,OAAO,CAAC;oBACjEV,iBAAiB,CAACW;kBACpB,CAAC;gBACH,CAAC,MAAM;kBACLpC,uBAAuB;oBACrBwB,IAAI,CAACS,EAAE;oBACPC,kEAAgC,CAAC7E,KAAK,CAACoE,iBAAiB,CAAC;oBACzDY,iCAAsB,CAACC;kBACzB,CAAC;gBACH,CAAC,yBAAAV,QAAA,CAAAW,IAAA,OAAAhB,OAAA,GACF,oBAAAiB,EAAA,UAAArB,IAAA,CAAAsB,KAAA,OAAAC,SAAA;MAAA,CAAC;IACJ,CAAC;IACD,CAACzD,oBAAoB,EAAEuB,OAAO,EAAEM,MAAM,EAAEd,uBAAuB;EACjE,CAAC;;EAED,IAAM2C,UAAU,GAAG1E,IAAI,KAAK,MAAM;EAClC,IAAM2E,YAAY,GAAG3C,aAAa,IAAI0C,UAAU,GAAGE,2BAAY,GAAGC,0BAAW;;EAE7E,IAAMC,aAAa,GAAG,IAAAC,wCAAmB,EAAC3D,IAAI,EAAE;IAC9C4D,KAAK,EAAEL,YAAY,CAACM,SAAS,CAACjG,KAAK,CAAC;IACpCkG,MAAM,EAAEP,YAAY,CAACQ,UAAU,CAACnG,KAAK,CAAC;IACtCoG,KAAK,EAAET,YAAY,CAACU,SAAS,CAACrG,KAAK;EACrC,CAAC,CAAC;;EAEF,IAAMsG,iCAAiC,GAAG,IAAAP,wCAAmB,EAAC3D,IAAI,EAAE;IAClE4D,KAAK,EAAEJ,2BAAY,CAACW,6BAA6B,CAACvG,KAAK,CAAC;IACxDkG,MAAM,EAAEN,2BAAY,CAACY,8BAA8B,CAACxG,KAAK,CAAC;IAC1DoG,KAAK,EAAER,2BAAY,CAACa,6BAA6B,CAACzG,KAAK;EACzD,CAAC,CAAC;;EAEF,IAAM0G,wBAAwB,GAAG,IAAAX,wCAAmB,EAAC3D,IAAI,EAAE;IACzD4D,KAAK,EAAEL,YAAY,CAACgB,wBAAwB,CAAC3G,KAAK,CAAC;IACnDkG,MAAM,EAAEP,YAAY,CAACiB,yBAAyB,CAAC5G,KAAK,CAAC;IACrDoG,KAAK,EAAET,YAAY,CAACkB,wBAAwB,CAAC7G,KAAK;EACpD,CAAC,CAAC;;EAEF,IAAM8G,aAAa,GAAG,IAAAf,wCAAmB,EAAC3D,IAAI,EAAE;IAC9C4D,KAAK,EAAEhD,aAAa,GAAG+D,uBAAQ,CAACC,YAAY,CAAChH,KAAK,CAAC,GAAG+G,uBAAQ,CAACE,SAAS,CAACjH,KAAK,CAAC;IAC/EkG,MAAM,EAAElD,aAAa,GAAG+D,uBAAQ,CAACG,aAAa,CAAClH,KAAK,CAAC,GAAG+G,uBAAQ,CAACI,UAAU,CAACnH,KAAK,CAAC;IAClFoG,KAAK,EAAEpD,aAAa,GAAG+D,uBAAQ,CAACK,YAAY,CAACpH,KAAK,CAAC,GAAG+G,uBAAQ,CAACM,SAAS,CAACrH,KAAK;EAChF,CAAC,CAAC;;EAEF,IAAMsH,gBAAgB,GAAG,IAAAvB,wCAAmB,EAAC3D,IAAI,EAAE;IACjD4D,KAAK,EAAEJ,2BAAY,CAAC2B,wBAAwB,CAACvH,KAAK,CAAC;IACnDkG,MAAM,EAAEN,2BAAY,CAAC4B,yBAAyB,CAACxH,KAAK,CAAC;IACrDoG,KAAK,EAAER,2BAAY,CAAC6B,wBAAwB,CAACzH,KAAK;EACpD,CAAC,CAAC;;EAEF,IAAM0H,yBAAyB,GAAG,IAAA3B,wCAAmB,EAAC3D,IAAI,EAAE;IAC1D4D,KAAK,EAAEJ,2BAAY,CAAC+B,iCAAiC,CAAC3H,KAAK,CAAC;IAC5DkG,MAAM,EAAEN,2BAAY,CAACgC,kCAAkC,CAAC5H,KAAK,CAAC;IAC9DoG,KAAK,EAAER,2BAAY,CAACiC,iCAAiC,CAAC7H,KAAK;EAC7D,CAAC,CAAC;;EAEF,IAAM8H,iBAAiB,GAAG,IAAA/B,wCAAmB,EAAC3D,IAAI,EAAE;IAClD4D,KAAK,EAAEe,uBAAQ,CAACgB,iBAAiB,CAAC/H,KAAK,CAAC;IACxCkG,MAAM,EAAEa,uBAAQ,CAACiB,kBAAkB,CAAChI,KAAK,CAAC;IAC1CoG,KAAK,EAAEW,uBAAQ,CAACkB,iBAAiB,CAACjI,KAAK;EACzC,CAAC,CAAC;;EAEF;EACA,IAAMkI,YAAY,GAAG,IAAAlE,kBAAW;IAC9B,UAACmE,QAAyB,EAAK;MAC7B,IAAI,CAACA,QAAQ,IAAI,CAACA,QAAQ,CAACC,MAAM,EAAE;QACjC;MACF;;MAEA,IAAIC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACJ,QAAQ,CAAC;;MAErC,IAAI3E,YAAY,EAAE;QAChB6E,UAAU,GAAG,CAACA,UAAU,CAAC,CAAC,CAAC,CAAC;MAC9B;;MAEA,IAAMG,aAAa,GAAGH,UAAU,CAACI,GAAG,CAACC,0BAAe,CAAC;;MAErD,IAAIlF,YAAY,IAAIgF,aAAa,CAACJ,MAAM,IAAIzF,KAAK,CAACyF,MAAM,EAAE;QACxDvF,UAAU,CAACF,KAAK,CAAC,CAAC,CAAC,CAACqC,EAAE,CAAC;MACzB;;MAEA,IAAIwD,aAAa,CAACJ,MAAM,EAAE;QACxBxF,QAAQ,CAAC4F,aAAa,CAAC;QACvBzE,oBAAoB,CAACyE,aAAa,CAAC;MACrC;IACF,CAAC;IACD,CAACzE,oBAAoB,EAAEnB,QAAQ,EAAEY,YAAY,EAAEb,KAAK,EAAEE,UAAU;EAClE,CAAC;;EAED,IAAM8F,UAAU,GAAG,IAAA3E,kBAAW;IAC5B,UAAC4E,KAAgB,EAAK;MACpB,IAAIzI,QAAQ,EAAE;QACZ;MACF;;MAEA,IAAQ0I,YAAY,GAAKD,KAAK,CAAtBC,YAAY;MACpB,IAAIA,YAAY,EAAE,KAAAC,mBAAA;QAChB,IAAItF,YAAY,IAAIqF,YAAY,CAAClG,KAAK,CAACyF,MAAM,GAAG,CAAC,EAAE;UACjDS,YAAY,CAACE,UAAU,GAAG,MAAM;UAChC;QACF;QACA,IAAI,EAAAD,mBAAA,GAAAD,YAAY,CAAClG,KAAK,qBAAlBmG,mBAAA,CAAoBV,MAAM,IAAG,CAAC,EAAE;UAClChF,QAAQ,CAAC4F,OAAO,KAAK5F,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK,CAAC;UACjEuF,YAAY,CAACW,YAAY,CAAClG,KAAK,CAAC;QAClC;MACF;IACF,CAAC;IACD,CAACuF,YAAY,EAAE/H,QAAQ;EACzB,CAAC;;EAED,IAAA8I,QAAA,GAAuC,IAAAC,iBAAO,EAAmB,EAAEC,MAAM,EAAER,UAAU,CAAC,CAAC,CAAC,CAAhFS,WAAW,GAAAH,QAAA,CAAXG,WAAW,CAAOC,QAAQ,GAAAJ,QAAA,CAAb3J,GAAG;EACxB,IAAAgK,SAAA,GAA2D,IAAAJ,iBAAO,EAAW,CAAC,CAAzDK,iBAAiB,GAAAD,SAAA,CAA9BF,WAAW,CAA0BI,SAAS,GAAAF,SAAA,CAAdhK,GAAG;;EAE3C,IAAI,IAAAmK,uBAAS,EAACC,0BAAY,CAAC,EAAE;IAC3BF,SAAS,CAACR,OAAO,GAAGU,0BAAY,CAACC,QAAQ;EAC3C;;EAEA,IAAMC,KAAK,GAAG,IAAA5F,kBAAW,EAAC,YAAM,KAAA6F,iBAAA;IAC9BC,wBAAW,CAACC,YAAY,GAAG,IAAI;IAC/B,CAAAF,iBAAA,GAAAzG,QAAQ,CAAC4F,OAAO,aAAhBa,iBAAA,CAAkBD,KAAK,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAMI,IAAI,GAAG,IAAAhG,kBAAW,EAAC,YAAM,KAAAiG,kBAAA;IAC7B,CAAAA,kBAAA,GAAA7G,QAAQ,CAAC4F,OAAO,aAAhBiB,kBAAA,CAAkBD,IAAI,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAME,yBAAyB,GAAG,IAAAlG,kBAAW;IAC3C,UAACmG,MAAc,EAAK;MAClB,IAAMtB,YAAY,GAAG,IAAIuB,YAAY,CAAC,CAAC;MACvCzH,KAAK;MACF0H,MAAM,CAAC,UAACC,CAAC,UAAKA,CAAC,CAACtF,EAAE,KAAKmF,MAAM,GAAC;MAC9BlG,OAAO,CAAC,UAACM,IAAI,EAAK;QACjBsE,YAAY,CAAC0B,KAAK,CAACC,GAAG,CAACjG,IAAI,CAACkG,YAAY,CAAC;MAC3C,CAAC,CAAC;MACJrH,QAAQ,CAAC4F,OAAO,KAAK5F,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK,CAAC;IACnE,CAAC;IACD,CAACA,KAAK;EACR,CAAC;;EAED,IAAM+H,gBAAgB,GAAG,IAAA1G,kBAAW;IAClC,UAACmG,MAAc,EAAK;MAClBtH,UAAU,CAACsH,MAAM,CAAC;MAClBD,yBAAyB,CAACC,MAAM,CAAC;IACnC,CAAC;IACD,CAACD,yBAAyB,EAAErH,UAAU;EACxC,CAAC;;EAED,IAAM8H,WAAW,GAAG,IAAA3G,kBAAW,EAAC,YAAM;IACpClB,KAAK,CAAC,CAAC;IACP,IAAM+F,YAAY,GAAG,IAAIuB,YAAY,CAAC,CAAC;IACvChH,QAAQ,CAAC4F,OAAO,KAAK5F,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK,CAAC;EACnE,CAAC,EAAE,CAACG,KAAK,EAAE4H,gBAAgB,CAAC,CAAC;;EAE7B,IAAAE,0BAAmB;IACjBtL,GAAG;IACH,oBAAO;QACLsK,KAAK,EAALA,KAAK;QACLI,IAAI,EAAJA,IAAI;QACJlH,KAAK,EAAE6H,WAAW;QAClB9H,UAAU,EAAE6H,gBAAgB;QAC5BG,WAAW,EAAE,SAAAA,YAAA,UAAMC,WAAW,CAAC9B,OAAO;MACxC,CAAC,EAAC;IACF,CAAC1J,GAAG,EAAE0K,IAAI,EAAEJ,KAAK,EAAEe,WAAW,EAAED,gBAAgB;EAClD,CAAC;;EAED,IAAAK,UAAA,GAAwC,IAAArH,eAAQ,EAAC,KAAK,CAAC,CAAhDsH,YAAY,GAAAD,UAAA,IAAEE,eAAe,GAAAF,UAAA;EACpC,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAItC,KAA0C,EAAK;IACxE9G,QAAQ,YAARA,QAAQ,CAAG8G,KAAK,CAAC;IACjBV,YAAY,CAACU,KAAK,CAACuC,MAAM,CAACxI,KAAK,CAAC;IAChCiB,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC;;EAED,IAAMwH,WAAW,GAAG,SAAdA,WAAWA,CAAI9M,CAAqC,EAAK;IAC7D,IAAI,CAAC6B,QAAQ,EAAE;MACb;MACA;MACAuJ,0BAAY,CAAC2B,qBAAqB,YAAlC3B,0BAAY,CAAC2B,qBAAqB,CAAG,YAAM;QACzC,IAAIvB,wBAAW,CAACC,YAAY,EAAE;UAC5BkB,eAAe,CAAC,IAAI,CAAC;QACvB;MACF,CAAC,CAAC;MACFpJ,OAAO,YAAPA,OAAO,CAAGvD,CAAC,CAAC;IACd;EACF,CAAC;;EAED,IAAMgN,UAAU,GAAG,SAAbA,UAAUA,CAAIhN,CAAqC,EAAK;IAC5D2M,eAAe,CAAC,KAAK,CAAC;IACtB,IAAI,CAAC9K,QAAQ,EAAE;MACbyB,MAAM,YAANA,MAAM,CAAGtD,CAAC,CAAC;IACb;EACF,CAAC;;EAED,IAAMiN,QAAQ,GAAG5I,KAAK,CAACyF,MAAM,GAAG,CAAC;EACjC,IAAMoD,UAAU,GAAG7I,KAAK,CAACyF,MAAM,KAAK,CAAC;EACrC,IAAMqD,mBAAmB,GAAGjI,YAAY,IAAIgI,UAAU,IAAI,CAAC7J,SAAS;;EAEpE,IAAM+J,QAAQ,GAAG,CAAC,CAACtL,KAAK,IAAI,EAAAb,OAAA,GAAAoD,KAAK,CAAC,CAAC,CAAC,qBAARpD,OAAA,CAAU4F,MAAM,MAAKC,iCAAsB,CAACC,KAAK;EAC7E,IAAMsG,UAAU,GAAG,CAAC,CAACtL,OAAO,IAAI,EAAAb,QAAA,GAAAmD,KAAK,CAAC,CAAC,CAAC,qBAARnD,QAAA,CAAU2F,MAAM,MAAKC,iCAAsB,CAACwG,OAAO;;EAEnF,IAAMC,sBAAsB,GAAG,IAAAC,WAAE;IAC/B/E,uBAAQ,CAACgF,YAAY,CAAC/L,KAAK,CAAC;IAC5B2F,YAAY,CAACoG,YAAY,CAAC,CAAC;IAC3BjG,aAAa;IACb9C,aAAa,IAAIyI,mBAAmB,IAAI9F,YAAY,CAACqG,oBAAoB,CAAChM,KAAK,CAAC;IAChFgL,YAAY,IAAIjE,uBAAQ,CAACkF,iBAAiB,CAACjM,KAAK,CAAC;IACjDG,QAAQ,KAAAV,KAAA,OAAAA,KAAA;IACLsH,uBAAQ,CAAC5G,QAAQ,CAACH,KAAK,CAAC,IAAG,IAAI,EAAAP,KAAA;IAC/BsH,uBAAQ,CAACmF,kBAAkB,CAAClM,KAAK,CAAC,IAAG,CAACgD,aAAa,IAAI,CAACuI,QAAQ,EAAA9L,KAAA,CAClE;;IACD,CAACuL,YAAY,IAAI,CAACS,mBAAmB,IAAI,CAACzI,aAAa,MAAAtD,KAAA,OAAAA,KAAA;IACpDqH,uBAAQ,CAACoF,aAAa,CAACnM,KAAK,CAAC,IAAG2L,UAAU,EAAAjM,KAAA;IAC1CqH,uBAAQ,CAACqF,WAAW,CAACpM,KAAK,CAAC,IAAG0L,QAAQ,EAAAhM,KAAA,CACxC;;IACDsD,aAAa;IACXyI,mBAAmB,KAAA9L,KAAA,OAAAA,KAAA;IAChB2G,iCAAiC,IAAGZ,UAAU,EAAA/F,KAAA;IAC9CoH,uBAAQ,CAACsF,WAAW,CAACrM,KAAK,CAAC,IAAG,CAAC,CAAC0F,UAAU,IAAI/B,OAAO,KAAKgI,UAAU,EAAAhM,KAAA;IACpEoH,uBAAQ,CAACuF,SAAS,CAACtM,KAAK,CAAC,IAAG,CAAC,CAAC0F,UAAU,IAAI/B,OAAO,KAAK+H,QAAQ,EAAA/L,KAAA,CAClE;;IACH,CAACQ,QAAQ;IACPwD,OAAO,KAAA/D,KAAA,OAAAA,KAAA;IACJmH,uBAAQ,CAACpD,OAAO,CAAC3D,KAAK,CAAC,IAAG,IAAI,EAAAJ,KAAA;IAC9BmH,uBAAQ,CAACwF,kBAAkB,CAACvM,KAAK,CAAC,IAAG,CAACgD,aAAa,EAAApD,KAAA,CACrD;;IACHwJ,WAAW,IAAI,CAACjJ,QAAQ,IAAI4G,uBAAQ,CAACyF,QAAQ,CAACxM,KAAK;EACrD,CAAC;;EAED,IAAMyM,OAAO,GAAGlD,iBAAiB,IAAI,CAACpJ,QAAQ;EAC9C,IAAMuM,6BAA6B,GAAG,IAAAZ,WAAE;IACtCpG,UAAU,KAAA7F,KAAA,OAAAA,KAAA;IACPyH,gBAAgB,IAAG,IAAI,EAAAzH,KAAA;IACvB6H,yBAAyB,IAAG,CAAC+D,mBAAmB,EAAA5L,KAAA,CAClD;;IACD8F,YAAY,CAACgH,mBAAmB,CAAC,CAAC;IAClCF,OAAO,IAAI1F,uBAAQ,CAAC6F,cAAc,CAAC5M,KAAK;EAC1C,CAAC;;EAED,IAAM6M,0BAA0B,GAAG,IAAAf,WAAE;IACnC/E,uBAAQ,CAAC+F,IAAI,CAAC9M,KAAK,CAAC;IACpB8G,aAAa;IACb3G,QAAQ,IAAI4G,uBAAQ,CAACgG,YAAY,CAAC/M,KAAK,CAAC;IACxC,CAACgD,aAAa,IAAI+D,uBAAQ,CAACiG,SAAS,CAAC,CAAC;IACtChK,aAAa,IAAI0D;EACnB,CAAC;;EAED,IAAMuG,cAAc,GAAG,IAAAnB,WAAE;IACvB/E,uBAAQ,CAACtI,IAAI,CAACuB,KAAK,CAAC;IACpBgD,aAAa,KAAAlD,KAAA,OAAAA,KAAA;IACViH,uBAAQ,CAACmG,OAAO,CAAC,CAAC,IAAG,IAAI,EAAApN,KAAA;IACzB+F,0BAAW,CAACpH,IAAI,CAAC,CAAC,IAAG,CAACiH,UAAU,EAAA5F,KAAA;;EAErC,CAAC;;EAED,IAAMqN,iBAAiB,GAAG,IAAArB,WAAE,EAACnG,YAAY,CAACjH,OAAO,CAAC,CAAC,GAAAqB,GAAA,OAAAA,GAAA;EAChD4F,YAAY,CAACyH,gBAAgB,CAAC,CAAC,IAAG3B,mBAAmB,EAAA1L,GAAA;EACrD+H,iBAAiB,IAAG,CAACpC,UAAU,KAAK,CAAC/C,KAAK,CAACyF,MAAM,IAAI,CAAC5E,YAAY,CAAC,EAAAzD,GAAA;EACrE,CAAC;;EAEF,IAAMsN,uBAAuB,GAAG,IAAAvB,WAAE;IAChCwB,4BAAa,CAACC,aAAa;IAC3B9B,mBAAmB,GAAG1E,uBAAQ,CAACyG,sBAAsB,CAAC,CAAC,GAAGzG,uBAAQ,CAACwG,aAAa,CAAC,CAAC;IAClF,CAACvK,aAAa,IAAI+D,uBAAQ,CAAC0G,kBAAkB,CAACzN,KAAK;EACrD,CAAC;;EAED,IAAM0N,cAAc,GAAG,IAAA5B,WAAE;IACvB/E,uBAAQ,CAACpI,IAAI,CAACqB,KAAK,CAAC;IACpB,CAACG,QAAQ,IAAIwD,OAAO,IAAIoD,uBAAQ,CAAC4G,WAAW,CAAC3N,KAAK,CAAC;IACnDG,QAAQ,IAAI4G,uBAAQ,CAAC6G,YAAY,CAAC5N,KAAK;EACzC,CAAC;;EAED,IAAA6N,gBAAS,EAAC,YAAM;IACd,IAAI,CAAClL,KAAK,IAAI,CAACA,KAAK,CAACyF,MAAM,IAAI,CAAChF,QAAQ,CAAC4F,OAAO,EAAE;MAChD;IACF;;IAEA,IAAMH,YAAY,GAAG,IAAIuB,YAAY,CAAC,CAAC;IACvCzH,KAAK,CAACsB,OAAO,CAAC,UAACM,IAAI,UAAKsE,YAAY,CAAC0B,KAAK,CAACC,GAAG,CAACjG,IAAI,CAACkG,YAAY,CAAC,GAAC;IAClErH,QAAQ,CAAC4F,OAAO,CAACrG,KAAK,GAAGkG,YAAY,CAAClG,KAAK;EAC7C,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAMmI,WAAW,GAAG,IAAAzH,aAAM,EAAC,IAAI,CAAC;;EAEhC,IAAMyJ,IAAI,GAAGhM,YAAY,WAAZA,YAAY,gBAAIlE,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAChB,WAAA,CAAA4P,UAAU,IAAC1L,IAAI,EAAEA,IAAK,EAACpB,IAAI,EAAEA,IAAK,EAAE,CAAC;EACnE,IAAM+M,cAAc,GAAGlN,YAAY,WAAZA,YAAY,GAAIqC,MAAM,CAAC8K,UAAU;EACxD,IAAMC,gBAAgB,QAAMF,cAAc,GAAGG,MAAM,CAACC,YAAY,CAAC,IAAI,CAAG,CAAC,CAAC;EAC1E,IAAMC,gBAAgB,GAAGpL,aAAa,IAAI0C,UAAU,IAAI7E,YAAY,KAAK,EAAE;EAC3E,IAAMwN,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA;MACxB,CAACD,gBAAgB;MACfxR,MAAA,CAAAqC,OAAA,CAAAC,aAAA,WAAM,YAAUX,oBAAoB,CAACI,IAAK,EAAC2P,SAAS,EAAEZ,cAAe;MAClE1K,aAAa,IAAI,CAACyI,mBAAmB,IAAIwC,gBAAgB;MACzD,CAACjL,aAAa,KAAKyI,mBAAmB,GAAGvI,MAAM,CAACqL,WAAW,GAAGrL,MAAM,CAAC8K,UAAU,CAAC;MAChFhL,aAAa,GAAG,IAAI,GAAGkL,MAAM,CAACC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC9C,CACP;;;EAEH,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,IAAMC,kBAAkB,GAAG;MACzBlO,qBAAqB,EAArBA,qBAAqB;MACrBa,iBAAiB,EAAjBA,iBAAiB;MACjBE,sBAAsB,EAAtBA,sBAAsB;MACtBZ,eAAe,EAAfA,eAAe;MACfP,QAAQ,EAARA;IACF,CAAC;;IAED;MACE,CAACwB,SAAS;MACV,CAAC6B,YAAY;MACb,CAAC,CAACb,KAAK,CAACyF,MAAM;MACZxL,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACvB,qBAAA,CAAA+Q,oBAAoB,MAAAC,SAAA,CAAA1P,OAAA;QACnBqD,UAAU,EAAEA,UAAW;QACvBF,IAAI,EAAEA,IAAK;QACXpB,IAAI,EAAEA,IAAK;QACX4N,QAAQ,EAAElE,gBAAiB;QAC3BlK,yBAAyB,EAAEA,yBAA0B;MAChDwC,aAAa,IAAIyL,kBAAkB;MACzC,CACF;;;EAEL,CAAC;;EAED,IAAMI,SAAgC,GAAG;IACvCtK,IAAI,EAAE5B,KAAK,CAAC,CAAC,CAAC;IACdP,IAAI,EAAJA,IAAI;IACJpB,IAAI,EAAJA,IAAI;IACJ4N,QAAQ,EAAElE,gBAAgB;IAC1BtK,KAAK,EAALA,KAAK;IACLC,OAAO,EAAPA,OAAO;IACPE,qBAAqB,EAArBA,qBAAqB;IACrBC,yBAAyB,EAAzBA,yBAAyB;IACzBE,eAAe,EAAfA,eAAe;IACfiD,OAAO,EAAPA,OAAO;IACPxD,QAAQ,EAARA;EACF,CAAC;;EAED,IAAM2O,WAAW,GAAGxM,UAAU,CAACK,KAAK,CAAC,CAAC,CAAC,eAAE/F,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACxB,iBAAA,CAAAyB,gBAAgB,EAAK0P,SAAY,CAAC,EAAEA,SAAS,CAAC;;EAExF;IACEjS,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAACtB,cAAA,CAAAmR,aAAa,EAAK/P,KAAK;IACtBpC,MAAA,CAAAqC,OAAA,CAAAC,aAAA;MACE,YAAUX,oBAAoB,CAACE,IAAK;MACpC6P,SAAS,EAAErB,cAAe;MAC1B+B,KAAK,EAAE,IAAAC,4BAAa,EAAC,EAAEzN,KAAK,EAAEkE,UAAU,IAAI,CAAC9E,QAAQ,GAAGZ,KAAK,CAACkP,qBAAqB,GAAG1N,KAAK,CAAC,CAAC,CAAE;MAC/FlC,GAAG,EAAEwL,WAAY;;IAEhB,CAAC,CAAC9H,aAAa,IAAI9B,oBAAoB,KAAK,KAAK,KAAKsN,cAAc,CAAC,CAAC;IACvE5R,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAE5B,6BAA8B;IAC5C9P,MAAA,CAAAqC,OAAA,CAAAC,aAAA;MACEiQ,YAAY,EAAE,SAAAA,aAAA,UAAMvL,UAAU,CAAC,IAAI,CAAC,EAAC;MACrCwL,YAAY,EAAE,SAAAA,aAAA,UAAMxL,UAAU,CAAC,KAAK,CAAC,EAAC;MACtCtE,GAAG,EAAE+J,QAAS;MACdiF,SAAS,EAAEzC,sBAAuB;;IAEjC7I,aAAa,IAAI,CAACyI,mBAAmB,iBAAI7O,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAEzB,0BAA2B,IAAEC,IAAU,CAAC;IAClGlQ,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAK,YAAUX,oBAAoB,CAACG,OAAQ,EAAC4P,SAAS,EAAEnB,iBAAkB;IACvEkB,oBAAoB,CAAC,CAAC;IACvBzR,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAEjB,uBAAwB;IACrC5B,mBAAmB;IAClB7O,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKI,GAAG,EAAEgE,UAAW,EAACgL,SAAS,EAAEvH,uBAAQ,CAACsI,UAAU,CAAC,CAAE;IACpDP;IACE,CAAC;;IAEN,CAAC9L,aAAa;IACZpG,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAAtC,MAAA,CAAAqC,OAAA,CAAAqQ,QAAA;IACGpM,MAAM,CAACqM,UAAU,EAAC,MACnB;IAAA3S,MAAA,CAAAqC,OAAA,CAAAC,aAAA,UAAKoP,SAAS,EAAEzB,0BAA2B,IAAEC,IAAU;IACvD;;;IAGH;IACF,CAAC;IACNlQ,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAClB,oBAAA,CAAAwR,mBAAmB,IAACC,kBAAkB,EAAE,SAAAA,mBAAA,UAAMxE,eAAe,CAAC,KAAK,CAAC,EAAC;IACpErO,MAAA,CAAAqC,OAAA,CAAAC,aAAA,cAAAyP,SAAA,CAAA1P,OAAA;IACMsD,UAAU;MACd,YAAUhE,oBAAoB,CAACK,KAAM;MACrCU,GAAG,EAAE8D,QAAS;MACdsM,QAAQ,EAAEvP,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;MAC5BwP,IAAI,EAAC,MAAM;MACXxP,QAAQ,EAAEA,QAAS;MACnBS,QAAQ,EAAEA,QAAS;MACnB0N,SAAS,EAAEvH,uBAAQ,CAAC6I,cAAc,CAAC,CAAE;MACrCC,OAAO,EAAExR,eAAgB;MACzByD,QAAQ,EAAEoJ,iBAAkB;MAC5BrJ,OAAO,EAAEuJ,WAAY;MACrBxJ,MAAM,EAAE0J,UAAW;IACpB;IACkB;IAChB;IACJ,CAAC;IACLtI,aAAa,IAAI9B,oBAAoB,KAAK,OAAO,IAAIsN,cAAc,CAAC;IAClE;IACQ,CAAC;;AAEpB,CAAC,CAAC;;;;AAIF;AACA;AACA;AACA;AACA;AACO,IAAMsB,YAAY,GAAAtR,OAAA,CAAAsR,YAAA,GAAG,IAAAC,gEAA+B;EACzDC,cAAK,CAACC,IAAI,CAAC7Q,aAAa;AAC1B,CAAC;;AAED0Q,YAAY,CAACI,WAAW,GAAG,cAAc","ignoreList":[]}
|
|
@@ -7,29 +7,34 @@ import { ModalHeader } from './ModalHeader';
|
|
|
7
7
|
import { ModalBody } from './ModalBody';
|
|
8
8
|
export type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';
|
|
9
9
|
export interface ModalProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {
|
|
10
|
-
/** Отключает событие `onClose` и
|
|
10
|
+
/** Отключает событие `onClose` и блокирует кнопку закрытия модального окна. */
|
|
11
11
|
disableClose?: boolean;
|
|
12
|
-
/** Выравнивает окно по верху страницы. */
|
|
12
|
+
/** Выравнивает модальное окно по верху страницы. */
|
|
13
13
|
alignTop?: boolean;
|
|
14
|
-
/** Оставляет окно
|
|
14
|
+
/** Оставляет модальное окно открытым, когда пользователь кликнул на фон вне модального окна. */
|
|
15
15
|
ignoreBackgroundClick?: boolean;
|
|
16
|
-
/**
|
|
16
|
+
/** Скрывает крестик для закрытия модального окна. */
|
|
17
17
|
noClose?: boolean;
|
|
18
|
-
/**
|
|
18
|
+
/** Ширина модального окна. */
|
|
19
19
|
width?: number | string;
|
|
20
|
-
/**
|
|
20
|
+
/** Событие закрытия модального окна. Вызывается при клике на фон или крестик, и при нажатии Esc. */
|
|
21
21
|
onClose?: () => void;
|
|
22
|
-
/**
|
|
22
|
+
/** Выключает ограничение на фокус. По умолчанию модальное окно не позволяет установить фокус за переделами своего содержимого.
|
|
23
|
+
*
|
|
24
|
+
* По умолчанию `"true"` для Internet Explorer 11. */
|
|
23
25
|
disableFocusLock?: boolean;
|
|
24
|
-
/**
|
|
26
|
+
/** Объект с переменными темы. Он будет объединён с темой из `<ThemeContext>`.
|
|
27
|
+
*
|
|
28
|
+
* Общие переменные темы и переменные для модального окна (с префиксом modal) смотрите на странице [ThemePlayground](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_information-themeplayground--docs).
|
|
29
|
+
*/
|
|
25
30
|
theme?: ThemeIn;
|
|
26
|
-
/**
|
|
27
|
-
* - `auto` — если футера нет,
|
|
28
|
-
* - `top` —
|
|
29
|
-
* - `center` —
|
|
30
|
-
* - `bottom` —
|
|
31
|
-
* - `fullscreen-spacing` —
|
|
32
|
-
* - `fullscreen` —
|
|
31
|
+
/** Задаёт внешний вид модального окна в мобильном режиме. Работает с версией темы >= 5_2.
|
|
32
|
+
* - `"auto"` — если футера нет, модальное окно распологается в центре экрана, если есть — модальное окно растягивается на весь экран с отступами и закругленными краями.
|
|
33
|
+
* - `"top"` — модальное окно располагается сверху независимо от наличия футера.
|
|
34
|
+
* - `"center"` — модальное окно располагается в центре независимо от наличия футера.
|
|
35
|
+
* - `"bottom"` — модальное окно располагается снизу независимо от наличия футера.
|
|
36
|
+
* - `"fullscreen-spacing"` — модальное окно растягивается на весь экран с отступами и закругленными краями.
|
|
37
|
+
* - `"fullscreen"` — модальное окно растягивается на весь экран.
|
|
33
38
|
* @default auto
|
|
34
39
|
*/
|
|
35
40
|
mobileAppearance?: MobileModalAppearance;
|
|
@@ -52,14 +57,12 @@ export declare const ModalZIndexPriority: {
|
|
|
52
57
|
readonly Content: 1;
|
|
53
58
|
};
|
|
54
59
|
type DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;
|
|
55
|
-
/**
|
|
56
|
-
* Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.
|
|
57
|
-
*
|
|
58
|
-
* Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.
|
|
59
|
-
*
|
|
60
|
-
* Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.
|
|
60
|
+
/** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.
|
|
61
61
|
*
|
|
62
|
-
*
|
|
62
|
+
* Составной компонент, включает в себя:
|
|
63
|
+
* - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;
|
|
64
|
+
* - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);
|
|
65
|
+
* - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).
|
|
63
66
|
*/
|
|
64
67
|
export declare class Modal extends React.Component<ModalProps, ModalState> {
|
|
65
68
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -81,6 +81,11 @@ var mountedModalsCount = 0;
|
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
84
89
|
|
|
85
90
|
|
|
86
91
|
|
|
@@ -100,14 +105,12 @@ var ModalZIndexPriority = exports.ModalZIndexPriority = {
|
|
|
100
105
|
|
|
101
106
|
|
|
102
107
|
|
|
103
|
-
/**
|
|
104
|
-
* Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.
|
|
105
|
-
*
|
|
106
|
-
* Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.
|
|
107
|
-
*
|
|
108
|
-
* Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.
|
|
108
|
+
/** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.
|
|
109
109
|
*
|
|
110
|
-
*
|
|
110
|
+
* Составной компонент, включает в себя:
|
|
111
|
+
* - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;
|
|
112
|
+
* - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);
|
|
113
|
+
* - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).
|
|
111
114
|
*/var
|
|
112
115
|
Modal = exports.Modal = /*#__PURE__*/function (_React$Component) {function Modal() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
113
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactFocusLock","_lodash","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_RenderContainer","_ZIndex","_stopPropagation","_HideBodyVerticalScroll","_ModalStack","_ResizeDetector","_ThemeContext","_client","_CommonWrapper","_Emotion","_createPropsGetter","_ResponsiveLayout","_ThemeHelpers","_typeGuards","_ModalContext","_ModalFooter","_ModalHeader","_ModalBody","_ModalClose","_Modal2","_getModalTheme","mountedModalsCount","ModalDataTids","exports","container","content","close","ModalZIndexPriority","Cross","Content","Modal","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","getMobileContainerClassName","mobileAppearance","styles","mobileContainerSmall5_2","mobileContainerFullscreen5_2","mobileContainerSmallBottom5_2","mobileContainerSmallTop5_2","catchUnreachableWarning","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","isKeyEscape","stopPropagation","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","throttle","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose2","default","_proto","prototype","componentDidMount","add","globalObject","addEventListener","componentWillUnmount","removeEventListener","isNonNullable","remove","render","_this2","createElement","ThemeContext","Consumer","theme","getModalTheme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","mobileOnFullScreen","additionalPadding","versionGTE5_2","isThemeGTE","style","containerStyle","getMobileCenterContainerClassNames","_cx","cx","mobileCenterContainer5_2","mobileCenterContainerBig5_2","mobileCenterContainerFullscreen5_2","mobileCenterContainer","RenderContainer","CommonWrapper","ZIndex","priority","className","root","HideBodyVerticalScroll","onMouseDown","onMouseUp","onClick","bg","ResponsiveLayout","_ref","_cx2","_cx3","_cx4","_cx5","_cx6","isMobile","ref","container5_2","containerDesktop","containerMobile","centerContainer","Boolean","undefined","window","mobileWindow","mobileWindowFullscreen5_2","ResizeDetector","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWrapper5_2","ModalClose","mobileCloseWithoutHeader","mobileCloseWithoutHeader5_2","ModalContext","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"sources":["Modal.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { ModalContextProps } from './ModalContext';\nimport { ModalContext } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Отключает событие `onClose` и дизейблит кнопку закрытия модалки. */\n disableClose?: boolean;\n\n /** Выравнивает окно по верху страницы. */\n alignTop?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Убирает крестик для закрытия окна */\n noClose?: boolean;\n\n /** Задает ширину модалки. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается, когда пользователь запросил закрытие окна (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Отключает фокус-лок внутри модалки. По умолчанию true для IE11. */\n disableFocusLock?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает внешний вид модалки. Работает с версией темы >= 5_2.\n * - `auto` — если футера нет, модалка распологается в центре экрана, если футер есть -- модалка растягивается на весь экран с отступами и закругленными краями\n * - `top` — модалка располагается сверху независимо от наличия футера\n * - `center` — модалка располагается в центре независимо от наличия футера\n * - `bottom` — модалка располагается снизу независимо от наличия футера\n * - `fullscreen-spacing` — модалка растягивается на весь экран с отступами и закругленными краями\n * - `fullscreen` — модалка растягивается на весь экран\n * @default auto\n */\n mobileAppearance?: MobileModalAppearance;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\nexport const ModalZIndexPriority = {\n Cross: 2,\n Content: 1,\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;\n\n/**\n * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.\n *\n * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.\n *\n * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n mobileAppearance: 'auto',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getMobileContainerClassName = () => {\n const mobileAppearance = this.getProps().mobileAppearance;\n switch (mobileAppearance) {\n case 'fullscreen-spacing':\n return;\n case 'auto':\n if (this.state.hasFooter) {\n return;\n }\n return [styles.mobileContainerSmall5_2()];\n case 'fullscreen':\n return [styles.mobileContainerFullscreen5_2()];\n case 'center':\n return [styles.mobileContainerSmall5_2()];\n case 'bottom':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallBottom5_2()];\n case 'top':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallTop5_2()];\n default:\n return catchUnreachableWarning(mobileAppearance, false);\n }\n };\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n mobileAppearance,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen',\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter || hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const getMobileCenterContainerClassNames = () => {\n if (versionGTE5_2) {\n return cx(styles.mobileCenterContainer5_2(this.theme), {\n [styles.mobileCenterContainerBig5_2(this.theme)]:\n mobileAppearance === 'fullscreen-spacing' || (mobileAppearance === 'auto' && hasFooter),\n [styles.mobileCenterContainerFullscreen5_2()]: mobileAppearance === 'fullscreen',\n });\n }\n return cx(styles.mobileCenterContainer());\n };\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(\n styles.container(),\n versionGTE5_2 && styles.container5_2(),\n (!versionGTE5_2 || !isMobile) && styles.containerDesktop(),\n !versionGTE5_2 && isMobile && styles.containerMobile(this.theme),\n versionGTE5_2 && isMobile && this.getMobileContainerClassName(),\n )}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [getMobileCenterContainerClassNames()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n [styles.mobileWindowFullscreen5_2()]:\n versionGTE5_2 && isMobile && mobileAppearance === 'fullscreen',\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n priority={ModalZIndexPriority.Cross}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n [styles.mobileCloseWrapper5_2(this.theme)]: versionGTE5_2 && isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n [styles.mobileCloseWithoutHeader5_2(this.theme)]:\n versionGTE5_2 && isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactFocusLock","_lodash","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_RenderContainer","_ZIndex","_stopPropagation","_HideBodyVerticalScroll","_ModalStack","_ResizeDetector","_ThemeContext","_client","_CommonWrapper","_Emotion","_createPropsGetter","_ResponsiveLayout","_ThemeHelpers","_typeGuards","_ModalContext","_ModalFooter","_ModalHeader","_ModalBody","_ModalClose","_Modal2","_getModalTheme","mountedModalsCount","ModalDataTids","exports","container","content","close","ModalZIndexPriority","Cross","Content","Modal","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","getMobileContainerClassName","mobileAppearance","styles","mobileContainerSmall5_2","mobileContainerFullscreen5_2","mobileContainerSmallBottom5_2","mobileContainerSmallTop5_2","catchUnreachableWarning","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","isKeyEscape","stopPropagation","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","throttle","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose2","default","_proto","prototype","componentDidMount","add","globalObject","addEventListener","componentWillUnmount","removeEventListener","isNonNullable","remove","render","_this2","createElement","ThemeContext","Consumer","theme","getModalTheme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","mobileOnFullScreen","additionalPadding","versionGTE5_2","isThemeGTE","style","containerStyle","getMobileCenterContainerClassNames","_cx","cx","mobileCenterContainer5_2","mobileCenterContainerBig5_2","mobileCenterContainerFullscreen5_2","mobileCenterContainer","RenderContainer","CommonWrapper","ZIndex","priority","className","root","HideBodyVerticalScroll","onMouseDown","onMouseUp","onClick","bg","ResponsiveLayout","_ref","_cx2","_cx3","_cx4","_cx5","_cx6","isMobile","ref","container5_2","containerDesktop","containerMobile","centerContainer","Boolean","undefined","window","mobileWindow","mobileWindowFullscreen5_2","ResizeDetector","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWrapper5_2","ModalClose","mobileCloseWithoutHeader","mobileCloseWithoutHeader5_2","ModalContext","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"sources":["Modal.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { ModalContextProps } from './ModalContext';\nimport { ModalContext } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Отключает событие `onClose` и блокирует кнопку закрытия модального окна. */\n disableClose?: boolean;\n\n /** Выравнивает модальное окно по верху страницы. */\n alignTop?: boolean;\n\n /** Оставляет модальное окно открытым, когда пользователь кликнул на фон вне модального окна. */\n ignoreBackgroundClick?: boolean;\n\n /** Скрывает крестик для закрытия модального окна. */\n noClose?: boolean;\n\n /** Ширина модального окна. */\n width?: number | string;\n\n /** Событие закрытия модального окна. Вызывается при клике на фон или крестик, и при нажатии Esc. */\n onClose?: () => void;\n\n /** Выключает ограничение на фокус. По умолчанию модальное окно не позволяет установить фокус за переделами своего содержимого.\n *\n * По умолчанию `\"true\"` для Internet Explorer 11. */\n disableFocusLock?: boolean;\n\n /** Объект с переменными темы. Он будет объединён с темой из `<ThemeContext>`.\n *\n * Общие переменные темы и переменные для модального окна (с префиксом modal) смотрите на странице [ThemePlayground](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_information-themeplayground--docs).\n */\n theme?: ThemeIn;\n\n /** Задаёт внешний вид модального окна в мобильном режиме. Работает с версией темы >= 5_2.\n * - `\"auto\"` — если футера нет, модальное окно распологается в центре экрана, если есть — модальное окно растягивается на весь экран с отступами и закругленными краями.\n * - `\"top\"` — модальное окно располагается сверху независимо от наличия футера.\n * - `\"center\"` — модальное окно располагается в центре независимо от наличия футера.\n * - `\"bottom\"` — модальное окно располагается снизу независимо от наличия футера.\n * - `\"fullscreen-spacing\"` — модальное окно растягивается на весь экран с отступами и закругленными краями.\n * - `\"fullscreen\"` — модальное окно растягивается на весь экран.\n * @default auto\n */\n mobileAppearance?: MobileModalAppearance;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\nexport const ModalZIndexPriority = {\n Cross: 2,\n Content: 1,\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;\n\n/** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.\n *\n * Составной компонент, включает в себя:\n * - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;\n * - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);\n * - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n mobileAppearance: 'auto',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getMobileContainerClassName = () => {\n const mobileAppearance = this.getProps().mobileAppearance;\n switch (mobileAppearance) {\n case 'fullscreen-spacing':\n return;\n case 'auto':\n if (this.state.hasFooter) {\n return;\n }\n return [styles.mobileContainerSmall5_2()];\n case 'fullscreen':\n return [styles.mobileContainerFullscreen5_2()];\n case 'center':\n return [styles.mobileContainerSmall5_2()];\n case 'bottom':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallBottom5_2()];\n case 'top':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallTop5_2()];\n default:\n return catchUnreachableWarning(mobileAppearance, false);\n }\n };\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n mobileAppearance,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen',\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter || hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const getMobileCenterContainerClassNames = () => {\n if (versionGTE5_2) {\n return cx(styles.mobileCenterContainer5_2(this.theme), {\n [styles.mobileCenterContainerBig5_2(this.theme)]:\n mobileAppearance === 'fullscreen-spacing' || (mobileAppearance === 'auto' && hasFooter),\n [styles.mobileCenterContainerFullscreen5_2()]: mobileAppearance === 'fullscreen',\n });\n }\n return cx(styles.mobileCenterContainer());\n };\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(\n styles.container(),\n versionGTE5_2 && styles.container5_2(),\n (!versionGTE5_2 || !isMobile) && styles.containerDesktop(),\n !versionGTE5_2 && isMobile && styles.containerMobile(this.theme),\n versionGTE5_2 && isMobile && this.getMobileContainerClassName(),\n )}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [getMobileCenterContainerClassNames()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n [styles.mobileWindowFullscreen5_2()]:\n versionGTE5_2 && isMobile && mobileAppearance === 'fullscreen',\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n priority={ModalZIndexPriority.Cross}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n [styles.mobileCloseWrapper5_2(this.theme)]: versionGTE5_2 && isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n [styles.mobileCloseWithoutHeader5_2(this.theme)]:\n versionGTE5_2 && isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
|