@skbkontur/react-ui 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/cjs/components/FileUploader/FileUploader.d.ts +2 -1
  3. package/cjs/components/FileUploader/FileUploader.js +15 -2
  4. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  5. package/cjs/components/Input/Input.js +2 -1
  6. package/cjs/components/Input/Input.js.map +1 -1
  7. package/cjs/components/Input/Input.styles.d.ts +1 -0
  8. package/cjs/components/Input/Input.styles.js +17 -10
  9. package/cjs/components/Input/Input.styles.js.map +1 -1
  10. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  11. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +5 -9
  12. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  13. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  14. package/cjs/components/ResponsiveLayout/decorator.d.ts +1 -1
  15. package/cjs/components/ResponsiveLayout/types.d.ts +9 -1
  16. package/cjs/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  17. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +31 -15
  18. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  19. package/cjs/components/Token/Token.styles.js +2 -1
  20. package/cjs/components/Token/Token.styles.js.map +1 -1
  21. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  22. package/cjs/components/TokenInput/TokenInput.js +56 -13
  23. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  24. package/cjs/components/TokenInput/TokenInput.md +26 -0
  25. package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
  26. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  27. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  28. package/cjs/internal/themes/DefaultTheme.d.ts +2 -0
  29. package/cjs/internal/themes/DefaultTheme.js +7 -1
  30. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  31. package/components/FileUploader/FileUploader/FileUploader.js +8 -3
  32. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  33. package/components/FileUploader/FileUploader.d.ts +2 -1
  34. package/components/Input/Input/Input.js +1 -1
  35. package/components/Input/Input/Input.js.map +1 -1
  36. package/components/Input/Input.styles/Input.styles.js +13 -10
  37. package/components/Input/Input.styles/Input.styles.js.map +1 -1
  38. package/components/Input/Input.styles.d.ts +1 -0
  39. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -8
  40. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  41. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +6 -5
  42. package/components/ResponsiveLayout/ResponsiveLayout.md +31 -0
  43. package/components/ResponsiveLayout/decorator.d.ts +1 -1
  44. package/components/ResponsiveLayout/types.d.ts +9 -1
  45. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +42 -17
  46. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  47. package/components/ResponsiveLayout/useResponsiveLayout.d.ts +2 -2
  48. package/components/Token/Token.styles/Token.styles.js +1 -1
  49. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  50. package/components/TokenInput/TokenInput/TokenInput.js +82 -19
  51. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  52. package/components/TokenInput/TokenInput.d.ts +3 -0
  53. package/components/TokenInput/TokenInput.md +26 -0
  54. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  55. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  56. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  57. package/internal/themes/DefaultTheme/DefaultTheme.js +10 -0
  58. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  59. package/internal/themes/DefaultTheme.d.ts +2 -0
  60. package/package.json +3 -20
@@ -183,9 +183,12 @@ var _FileUploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
183
183
  return {
184
184
  focus: focus,
185
185
  blur: blur,
186
- reset: reset
186
+ reset: reset,
187
+ getRootNode: function getRootNode() {
188
+ return rootNodeRef.current;
189
+ }
187
190
  };
188
- }, [blur, focus, reset]);
191
+ }, [ref, blur, focus, reset]);
189
192
 
190
193
  var _useState = useState(false),
191
194
  focusedByTab = _useState[0],
@@ -227,12 +230,14 @@ var _FileUploader = /*#__PURE__*/React.forwardRef(function (props, ref) {
227
230
  var hasOneFile = files.length === 1;
228
231
  var hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;
229
232
  var linkClassNames = cx(jsStyles.link(theme), (_cx4 = {}, _cx4[jsStyles.linkHovered(theme)] = !disabled && hovered, _cx4[jsStyles.linkDisabled(theme)] = disabled, _cx4));
233
+ var rootNodeRef = useRef(null);
230
234
  return /*#__PURE__*/React.createElement(CommonWrapper, props, /*#__PURE__*/React.createElement("div", {
231
235
  "data-tid": FileUploaderDataTids.root,
232
236
  className: jsStyles.root(theme),
233
237
  style: useMemoObject({
234
238
  width: width
235
- })
239
+ }),
240
+ ref: rootNodeRef
236
241
  }, !hideFiles && !isSingleMode && !!files.length && /*#__PURE__*/React.createElement(FileUploaderFileList, {
237
242
  renderFile: renderFile
238
243
  }), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useImperativeHandle","useRef","useState","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","isBrowser","CommonWrapper","FileUploaderFileValidationResult","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","locale","inputRef","isAsync","isSingleMode","upload","tryValidateAndUpload","forEach","validationMessage","id","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","window","document","focus","isTabPressed","blur","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","uploadButtonWrapperClassNames","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","linkClassNames","linkHovered","linkDisabled","choosedFile","chooseFile","afterLinkText","singleFile","orDragHere","fileInput","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useImperativeHandle, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\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 { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { isBrowser } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\n\nimport { jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ninterface _FileUploaderProps extends CommonProps, React.InputHTMLAttributes<HTMLInputElement> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\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 {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\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) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\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) {\n windowRef.current = window.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 useImperativeHandle(ref, () => ({ focus, blur, reset }), [blur, focus, reset]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\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 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 [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(jsStyles.uploadButton(theme), {\n [jsStyles.uploadButtonFocus(theme)]: focusedByTab,\n [jsStyles.disabled(theme)]: disabled,\n [jsStyles.hovered(theme)]: !disabled && hovered,\n [jsStyles.warning(theme)]: !!warning,\n [jsStyles.error(theme)]: !!error,\n [jsStyles.dragOver(theme)]: isDraggable && !disabled,\n });\n\n const uploadButtonWrapperClassNames = cx({\n [jsStyles.windowDragOver(theme)]: isWindowDraggable && !disabled,\n });\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), {\n [jsStyles.iconDisabled(theme)]: disabled,\n });\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const linkClassNames = cx(jsStyles.link(theme), {\n [jsStyles.linkHovered(theme)]: !disabled && hovered,\n [jsStyles.linkDisabled(theme)]: disabled,\n });\n\n return (\n <CommonWrapper {...props}>\n <div data-tid={FileUploaderDataTids.root} className={jsStyles.root(theme)} style={useMemoObject({ width })}>\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div data-tid={FileUploaderDataTids.content} className={jsStyles.content()}>\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n &nbsp;\n <div className={jsStyles.afterLinkText()}>\n {hasOneFileForSingle ? (\n <div className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>\n <UploadIcon />\n </div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.fileInput()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
1
+ {"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useImperativeHandle","useRef","useState","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","isBrowser","CommonWrapper","FileUploaderFileValidationResult","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","locale","inputRef","isAsync","isSingleMode","upload","tryValidateAndUpload","forEach","validationMessage","id","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","window","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","uploadButtonWrapperClassNames","windowDragOver","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","linkClassNames","linkHovered","linkDisabled","choosedFile","chooseFile","afterLinkText","singleFile","orDragHere","fileInput","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useImperativeHandle, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { 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 { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { isBrowser } from '../../lib/client';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\n\nimport { jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ninterface _FileUploaderProps extends CommonProps, React.InputHTMLAttributes<HTMLInputElement> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\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 {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\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) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\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) {\n windowRef.current = window.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 useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\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 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 [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(jsStyles.uploadButton(theme), {\n [jsStyles.uploadButtonFocus(theme)]: focusedByTab,\n [jsStyles.disabled(theme)]: disabled,\n [jsStyles.hovered(theme)]: !disabled && hovered,\n [jsStyles.warning(theme)]: !!warning,\n [jsStyles.error(theme)]: !!error,\n [jsStyles.dragOver(theme)]: isDraggable && !disabled,\n });\n\n const uploadButtonWrapperClassNames = cx({\n [jsStyles.windowDragOver(theme)]: isWindowDraggable && !disabled,\n });\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), {\n [jsStyles.iconDisabled(theme)]: disabled,\n });\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const linkClassNames = cx(jsStyles.link(theme), {\n [jsStyles.linkHovered(theme)]: !disabled && hovered,\n [jsStyles.linkDisabled(theme)]: disabled,\n });\n\n const rootNodeRef = useRef(null);\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div data-tid={FileUploaderDataTids.content} className={jsStyles.content()}>\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n &nbsp;\n <div className={jsStyles.afterLinkText()}>\n {hasOneFileForSingle ? (\n <div className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere}&nbsp;\n <div className={uploadButtonIconClassNames}>\n <UploadIcon />\n </div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.fileInput()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { FileUploaderAttachedFile } from '../../internal/FileUploaderControl/fileUtils';
3
+ import { InstanceWithRootNode } from '../../lib/rootNode';
3
4
  import { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';
4
5
  import { CommonProps } from '../../internal/CommonWrapper';
5
6
  import { Nullable } from '../../typings/utility-types';
@@ -30,7 +31,7 @@ interface _FileUploaderProps extends CommonProps, React.InputHTMLAttributes<HTML
30
31
  * */
31
32
  renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;
32
33
  }
33
- export interface FileUploaderRef {
34
+ export interface FileUploaderRef extends InstanceWithRootNode {
34
35
  focus: () => void;
35
36
  blur: () => void;
36
37
  /** Сбрасывает выбранные файлы */
@@ -434,7 +434,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
434
434
  var disabled = this.props.disabled;
435
435
  var iconNode = icon instanceof Function ? icon() : icon;
436
436
  return /*#__PURE__*/React.createElement("span", {
437
- className: cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), (_cx5 = {}, _cx5[styles.iconDisabled()] = disabled, _cx5))
437
+ className: cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), (_cx5 = {}, _cx5[styles.iconFocus(this.theme)] = this.state.focused, _cx5[styles.iconDisabled()] = disabled, _cx5))
438
438
  }, iconNode);
439
439
  };
440
440
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Input.tsx"],"names":["invariant","React","raf","isIE11","isEdge","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","MaskedInput","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","styles","InputDataTids","root","Input","getProps","defaultProps","state","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","warning","leftIcon","rightIcon","borderless","align","type","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","rest","labelProps","className","theme","getSizeClassName","focus","blink","focusFallback","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","renderMaskedInput","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","componentWillUnmount","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconDisabled","defaultValue","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Boolean","Component","__KONTUR_REACT_UI__"],"mappings":"iqBAAA;AACA;AACA,OAAOA,SAAP,MAAsB,WAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAOC,GAAP,MAAgB,KAAhB;;AAEA,SAASC,MAAT,EAAiBC,MAAjB,QAA+B,kBAA/B;AACA,SAASC,cAAT,EAAyBC,WAAzB,EAAsCC,QAAtC,QAAsD,uCAAtD;AACA,SAASC,wBAAT,QAAyC,oCAAzC;;AAEA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,aAAT,QAAmE,8BAAnE;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,MAAT,QAAuB,gBAAvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,OAAO,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,aADqB,EAAtB;;;;;;;;;;AAWP,OALA;AACA;AACA;AACA,GAEA,IAAaC,KAAb,GADCL,QACD;;;;AAOUM,IAAAA,QAPV,GAOqBL,iBAAiB,CAACI,KAAK,CAACE,YAAP,CAPtC;;AASSC,IAAAA,KATT,GAS6B;AACzBb,MAAAA,wBAAwB,EAAxBA,wBADyB;AAEzBc,MAAAA,QAAQ,EAAE,KAFe;AAGzBC,MAAAA,OAAO,EAAE,KAHgB,EAT7B;;;AAeUC,IAAAA,WAfV,GAeuC,IAfvC;;AAiBUC,IAAAA,YAjBV,GAiByB,CAjBzB;AAkBUC,IAAAA,KAlBV,GAkB2C,IAlB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GSC,IAAAA,SA9GT,GA8GqB,YAAY;AAC7B,UAAI,MAAKD,KAAT,EAAgB;AACd,cAAKE,iBAAL,CAAuB,CAAvB,EAA0B,MAAKF,KAAL,CAAWG,KAAX,CAAiBC,MAA3C;AACD;AACF,KAlHH;;AAoHUC,IAAAA,cApHV,GAoH2B,oBAAe,MAAKP,WAAL,GAAmBtB,GAAG,CAAC,MAAKyB,SAAN,CAArC,EApH3B;;AAsHUK,IAAAA,sBAtHV,GAsHmC,YAAY;AAC3C,UAAI,MAAKR,WAAT,EAAsB;AACpBtB,QAAAA,GAAG,CAAC+B,MAAJ,CAAW,MAAKT,WAAhB;AACA,cAAKA,WAAL,GAAmB,IAAnB;AACD;AACF,KA3HH;;AA6HUU,IAAAA,WA7HV,GA6HwB,UAACC,QAAD,EAAiC;AACrD,UAAI,MAAKV,YAAT,EAAuB;AACrBW,QAAAA,YAAY,CAAC,MAAKX,YAAN,CAAZ;AACA,cAAKA,YAAL,GAAoB,CAApB;AACA,YAAI,MAAKJ,KAAL,CAAWC,QAAf,EAAyB;AACvB,gBAAKe,QAAL,CAAc,EAAEf,QAAQ,EAAE,KAAZ,EAAd,EAAmCa,QAAnC;AACA;AACD;AACF;AACD,UAAIA,QAAJ,EAAc;AACZA,QAAAA,QAAQ;AACT;AACF,KAzIH;;AA2IUG,IAAAA,UA3IV,GA2IuB,UAACC,KAAD,EAA+C;AAClE;AACEC,MAAAA,YADF;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BID,MAAAA,KA5BJ,CACEC,YADF,CAEEC,YAFF,GA4BIF,KA5BJ,CAEEE,YAFF,CAGEC,WAHF,GA4BIH,KA5BJ,CAGEG,WAHF,CAIEC,SAJF,GA4BIJ,KA5BJ,CAIEI,SAJF,CAKEC,UALF,GA4BIL,KA5BJ,CAKEK,UALF,CAMEC,aANF,GA4BIN,KA5BJ,CAMEM,aANF,CAOEC,KAPF,GA4BIP,KA5BJ,CAOEO,KAPF,CAQEC,KARF,GA4BIR,KA5BJ,CAQEQ,KARF,CASEC,OATF,GA4BIT,KA5BJ,CASES,OATF,CAUEC,QAVF,GA4BIV,KA5BJ,CAUEU,QAVF,CAWEC,SAXF,GA4BIX,KA5BJ,CAWEW,SAXF,CAYEC,UAZF,GA4BIZ,KA5BJ,CAYEY,UAZF,CAaEtB,KAbF,GA4BIU,KA5BJ,CAaEV,KAbF,CAcEuB,KAdF,GA4BIb,KA5BJ,CAcEa,KAdF,CAeEC,IAfF,GA4BId,KA5BJ,CAeEc,IAfF,CAgBEC,IAhBF,GA4BIf,KA5BJ,CAgBEe,IAhBF,CAiBEC,QAjBF,GA4BIhB,KA5BJ,CAiBEgB,QAjBF,CAkBEC,cAlBF,GA4BIjB,KA5BJ,CAkBEiB,cAlBF,CAmBEC,IAnBF,GA4BIlB,KA5BJ,CAmBEkB,IAnBF,CAoBEC,WApBF,GA4BInB,KA5BJ,CAoBEmB,WApBF,CAqBEC,gBArBF,GA4BIpB,KA5BJ,CAqBEoB,gBArBF,CAsBEC,QAtBF,GA4BIrB,KA5BJ,CAsBEqB,QAtBF,CAuBEC,iBAvBF,GA4BItB,KA5BJ,CAuBEsB,iBAvBF,CAwBEC,MAxBF,GA4BIvB,KA5BJ,CAwBEuB,MAxBF,CAyBEC,MAzBF,GA4BIxB,KA5BJ,CAyBEwB,MAzBF,CA0BEC,WA1BF,GA4BIzB,KA5BJ,CA0BEyB,WA1BF,CA2BKC,IA3BL,iCA4BI1B,KA5BJ;;AA8BA,wBAA8B,MAAKlB,KAAnC,CAAQC,QAAR,eAAQA,QAAR,CAAkBC,OAAlB,eAAkBA,OAAlB;;AAEA,UAAM2C,UAAU,GAAG;AACjBC,QAAAA,SAAS,EAAEvD,EAAE,CAACG,MAAM,CAACE,IAAP,CAAY,MAAKmD,KAAjB,CAAD,EAA0B,MAAKC,gBAAL,EAA1B;AACVtD,QAAAA,MAAM,CAACuD,KAAP,CAAa,MAAKF,KAAlB,CADU,IACiB7C,OADjB;AAEVR,QAAAA,MAAM,CAACwD,KAAP,CAAa,MAAKH,KAAlB,CAFU,IAEiB9C,QAFjB;AAGVP,QAAAA,MAAM,CAACoC,UAAP,EAHU,IAGYA,UAAU,IAAI,CAAC5B,OAH3B;AAIVR,QAAAA,MAAM,CAAC6C,QAAP,CAAgB,MAAKQ,KAArB,CAJU,IAIoBR,QAJpB;AAKV7C,QAAAA,MAAM,CAACiC,OAAP,CAAe,MAAKoB,KAApB,CALU,IAKmBpB,OALnB;AAMVjC,QAAAA,MAAM,CAACgC,KAAP,CAAa,MAAKqB,KAAlB,CANU,IAMiBrB,KANjB;AAOVhC,QAAAA,MAAM,CAACyD,aAAP,CAAqB,MAAKJ,KAA1B,CAPU,IAOyB7C,OAAO,KAAKpB,MAAM,IAAIC,MAAf,CAPhC;AAQVW,QAAAA,MAAM,CAAC0D,eAAP,CAAuB,MAAKL,KAA5B,CARU,IAQ2BpB,OAAO,KAAK7C,MAAM,IAAIC,MAAf,CARlC;AASVW,QAAAA,MAAM,CAAC2D,aAAP,CAAqB,MAAKN,KAA1B,CATU,IASyBrB,KAAK,KAAK5C,MAAM,IAAIC,MAAf,CAT9B,OADI;;AAYjBuE,QAAAA,KAAK,EAAE,EAAE7B,KAAK,EAALA,KAAF,EAZU;AAajBN,QAAAA,YAAY,EAAZA,YAbiB;AAcjBC,QAAAA,YAAY,EAAZA,YAdiB;AAejBC,QAAAA,WAAW,EAAXA,WAfiB,EAAnB;;;AAkBA,UAAMkC,UAAU;AACXX,MAAAA,IADW;AAEdE,QAAAA,SAAS,EAAEvD,EAAE,CAACG,MAAM,CAACW,KAAP,CAAa,MAAK0C,KAAlB,CAAD;AACVrD,QAAAA,MAAM,CAAC8D,UAAP,CAAkB,MAAKT,KAAvB,CADU,IACsB7C,OADtB;AAEVR,QAAAA,MAAM,CAAC+D,aAAP,CAAqB,MAAKV,KAA1B,CAFU,IAEyBR,QAFzB,QAFC;;AAMd/B,QAAAA,KAAK,EAALA,KANc;AAOdkD,QAAAA,QAAQ,EAAE,MAAKC,YAPD;AAQdC,QAAAA,OAAO,EAAE,MAAKC,WARA;AASdvC,QAAAA,SAAS,EAAE,MAAKwC,aATF;AAUdvC,QAAAA,UAAU,EAAE,MAAKwC,cAVH;AAWdC,QAAAA,MAAM,EAAE,MAAKC,UAXC;AAYdX,QAAAA,KAAK,EAAE,EAAEY,SAAS,EAAEnC,KAAb,EAZO;AAadoC,QAAAA,GAAG,EAAE,MAAKC,QAbI;AAcdpC,QAAAA,IAAI,EAAE,MAdQ;AAedK,QAAAA,WAAW,EAAE,CAAC,MAAKgC,aAAN,IAAuB,CAAClF,wBAAxB,GAAmDkD,WAAnD,GAAiEiC,SAfhE;AAgBd/B,QAAAA,QAAQ,EAARA,QAhBc,GAAhB;;;AAmBA,UAAIP,IAAI,KAAK,UAAb,EAAyB;AACvBuB,QAAAA,UAAU,CAACvB,IAAX,GAAkBA,IAAlB;AACD;;AAED,UAAM3B,KAAK,GAAG4B,IAAI,GAAG,MAAKsC,iBAAL,CAAuBhB,UAAvB,EAAmCtB,IAAnC,CAAH,gBAA8CrD,KAAK,CAAC4F,aAAN,CAAoB,OAApB,EAA6BjB,UAA7B,CAAhE;;AAEA;AACE,gDAAO,YAAU5D,aAAa,CAACC,IAA/B,IAAyCiD,UAAzC;AACE,sCAAM,SAAS,EAAEnD,MAAM,CAAC+E,aAAP,EAAjB;AACG,cAAKC,cAAL,EADH;AAEG,cAAKC,YAAL,EAFH,CADF;;AAKE,sCAAM,SAAS,EAAEjF,MAAM,CAACkF,OAAP,EAAjB;AACGvE,QAAAA,KADH;AAEG,cAAKwE,iBAAL,EAFH,CALF;;AASE,sCAAM,SAAS,EAAEtF,EAAE,CAACG,MAAM,CAAC+E,aAAP,EAAD,EAAyB/E,MAAM,CAACoF,cAAP,EAAzB,CAAnB;AACG,cAAKC,YAAL,EADH;AAEG,cAAKC,eAAL,EAFH,CATF,CADF;;;;AAgBD,KAvOH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoVUZ,IAAAA,QApVV,GAoVqB,UAACa,OAAD,EAAoD;AACrE,UAAIA,OAAO,YAAY7F,WAAvB,EAAoC;AAClC,cAAKiB,KAAL,GAAa4E,OAAO,CAAC5E,KAArB;AACD,OAFD,MAEO;AACL,cAAKA,KAAL,GAAa4E,OAAb;AACD;AACF,KA1VH;;AA4VUtB,IAAAA,YA5VV,GA4VyB,UAACuB,KAAD,EAAgD;AACrE,UAAI/F,wBAAJ,EAA8B;AAC5B,YAAMgG,YAAY,GAAGD,KAAK,CAACE,MAAN,CAAa5E,KAAb,KAAuB,EAA5C;AACA,YAAI,MAAKR,KAAL,CAAWb,wBAAX,KAAwCgG,YAA5C,EAA0D;AACxD,gBAAKnE,QAAL,CAAc,EAAE7B,wBAAwB,EAAEgG,YAA5B,EAAd;AACD;AACF;;AAED,UAAI,MAAKjE,KAAL,CAAWM,aAAf,EAA8B;AAC5B,cAAKN,KAAL,CAAWM,aAAX,CAAyB0D,KAAK,CAACE,MAAN,CAAa5E,KAAtC;AACD;;AAED,UAAI,MAAKU,KAAL,CAAWwC,QAAf,EAAyB;AACvB,cAAKxC,KAAL,CAAWwC,QAAX,CAAoBwB,KAApB;AACD;AACF,KA3WH;;AA6WUrB,IAAAA,WA7WV,GA6WwB,UAACqB,KAAD,EAA+C;AACnE,YAAKlE,QAAL,CAAc;AACZd,QAAAA,OAAO,EAAE,IADG,EAAd;;;AAIA,UAAI,MAAKgB,KAAL,CAAWoB,gBAAf,EAAiC;AAC/B;AACA,cAAKjC,KAAL,IAAc,CAACvB,MAAf,GAAwB,MAAKwB,SAAL,EAAxB,GAA2C,MAAKI,cAAL,EAA3C;AACD;;AAED,UAAI,MAAKQ,KAAL,CAAW0C,OAAf,EAAwB;AACtB,cAAK1C,KAAL,CAAW0C,OAAX,CAAmBsB,KAAnB;AACD;AACF,KA1XH;;AA4XUpB,IAAAA,aA5XV,GA4X0B,UAACuB,CAAD,EAA8C;AACpE,UAAI,MAAKnE,KAAL,CAAWI,SAAf,EAA0B;AACxB,cAAKJ,KAAL,CAAWI,SAAX,CAAqB+D,CAArB;AACD;;AAED,UAAMC,WAAW,GAAGpG,QAAQ,CAACF,cAAD,EAAiBC,WAAjB,CAAR,CAAsCoG,CAAtC,CAApB;;AAEA,UAAI,CAACA,CAAC,CAACE,aAAF,CAAgB/E,KAAjB,IAA0B8E,WAA1B,IAAyC,CAACD,CAAC,CAACG,MAAhD,EAAwD;AACtD,cAAKC,qBAAL;AACD;AACF,KAtYH;;AAwYU1B,IAAAA,cAxYV,GAwY2B,UAACmB,KAAD,EAAkD;AACzE,UAAI,MAAKhE,KAAL,CAAWK,UAAf,EAA2B;AACzB,cAAKL,KAAL,CAAWK,UAAX,CAAsB2D,KAAtB;AACD;;AAED,UAAI,MAAKhE,KAAL,CAAWwE,SAAX,KAAyBR,KAAK,CAACK,aAAN,CAAoB/E,KAApB,CAA0BC,MAAvD,EAA+D;AAC7D,cAAKgF,qBAAL,CAA2BP,KAAK,CAACK,aAAN,CAAoB/E,KAA/C;AACD;AACF,KAhZH;;AAkZUmF,IAAAA,uBAlZV,GAkZoC,UAACnF,KAAD,EAAmB;AACnD,UAAI,MAAKU,KAAL,CAAWM,aAAf,EAA8B;AAC5B,cAAKN,KAAL,CAAWM,aAAX,CAAyBhB,KAAzB;AACD;AACF,KAtZH;;AAwZUiF,IAAAA,qBAxZV,GAwZkC,UAACjF,KAAD,EAA4C,KAA3CA,KAA2C,cAA3CA,KAA2C,GAA3B,MAAKU,KAAL,CAAWV,KAAX,IAAoB,EAAO;AAC1E,UAAI,MAAKU,KAAL,CAAWsB,iBAAf,EAAkC;AAChC,cAAKtB,KAAL,CAAWsB,iBAAX,CAA6BhC,KAA7B;AACD,OAFD,MAEO;AACL,cAAK0C,KAAL;AACD;AACF,KA9ZH;;AAgaUe,IAAAA,UAhaV,GAgauB,UAACiB,KAAD,EAA+C;AAClE,YAAKlE,QAAL,CAAc,EAAEd,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKgB,KAAL,CAAW8C,MAAf,EAAuB;AACrB,cAAK9C,KAAL,CAAW8C,MAAX,CAAkBkB,KAAlB;AACD;AACF,KAtaH;;AAwaUP,IAAAA,YAxaV,GAwayB,YAAM;AAC3B,wBAA6B,MAAKzD,KAAlC,CAAQuB,MAAR,eAAQA,MAAR,CAAgBF,QAAhB,eAAgBA,QAAhB;;AAEA,UAAI,CAACE,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAElD,EAAE,CAACG,MAAM,CAAC+C,MAAP,CAAc,MAAKM,KAAnB,CAAD,mBAA+BrD,MAAM,CAACkG,cAAP,CAAsB,MAAK7C,KAA3B,CAA/B,IAAmER,QAAnE,QAAnB,IAAoGE,MAApG,CADF;;AAGD,KAlbH;;AAobUsC,IAAAA,YApbV,GAobyB,YAAM;AAC3B,yBAA6B,MAAK7D,KAAlC,CAAQwB,MAAR,gBAAQA,MAAR,CAAgBH,QAAhB,gBAAgBA,QAAhB;;AAEA,UAAI,CAACG,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAEnD,EAAE,CAACG,MAAM,CAACgD,MAAP,CAAc,MAAKK,KAAnB,CAAD,mBAA+BrD,MAAM,CAACmG,cAAP,CAAsB,MAAK9C,KAA3B,CAA/B,IAAmER,QAAnE,QAAnB,IAAoGG,MAApG,CADF;;AAGD,KA9bH,mDAqBSoD,oBArBT,GAqBE,gCAA8B,CAC5B,IAAI,KAAK1F,YAAT,EAAuB,CACrBW,YAAY,CAAC,KAAKX,YAAN,CAAZ,CACD,CACD,KAAKO,sBAAL,GACD,CA1BH,CA4BE;AACF;AACA,KA9BA,QA+BSsC,KA/BT,GA+BE,iBAAe,CACbtE,SAAS,CAAC,KAAK0B,KAAN,EAAa,kDAAb,CAAT,CACA,KAAKA,KAAL,CAAW4C,KAAX,GACD,CAlCH,CAoCE;AACF;AACA,KAtCA,QAuCS8C,IAvCT,GAuCE,gBAAc,CACZpH,SAAS,CAAC,KAAK0B,KAAN,EAAa,iDAAb,CAAT,CACA,KAAKA,KAAL,CAAW0F,IAAX,GACD,CA1CH,CA4CE;AACF;AACA,KA9CA,QA+CSC,OA/CT,GA+CE,mBAAiB,CACf,OAAO,KAAK3F,KAAZ,CACD,CAjDH,CAmDE;AACF;AACA,KArDA,QAsDS6C,KAtDT,GAsDE,iBAAe,mBACb,IAAI,KAAK9C,YAAT,EAAuB,CACrB,KAAKS,WAAL,CAAiB,YAAM,CACrB;AACA;AACA,cAAM,MAAI,CAACR,KAAL,IAAc,MAAI,CAACA,KAAL,CAAW4F,WAA/B,EACA,MAAI,CAAC/C,KAAL,GACD,CALD,EAMA,OACD,CACD,KAAKlC,QAAL,CAAc,EAAEf,QAAQ,EAAE,IAAZ,EAAd,EAAkC,YAAM,CACtC,MAAI,CAACG,YAAL,GAAoB8F,MAAM,CAACC,UAAP,CAAkB,MAAI,CAACtF,WAAvB,EAAoC,GAApC,CAApB,CACD,CAFD,EAGD,CAnEH,CAqEE;AACF;AACA;AACA;AACA,KAzEA,QA0ESN,iBA1ET,GA0EE,2BAAyB6F,KAAzB,EAAwCC,GAAxC,EAAqD,CACnD,IAAI,CAAC,KAAKhG,KAAV,EAAiB,CACf,MAAM,IAAIiG,KAAJ,CAAU,oDAAV,CAAN,CACD,CAED,IAAIC,QAAQ,CAACC,aAAT,KAA2B,KAAKnG,KAApC,EAA2C,CACzC,KAAK4C,KAAL,GACD,CAED,KAAK5C,KAAL,CAAWE,iBAAX,CAA6B6F,KAA7B,EAAoCC,GAApC,EACD,CApFH,QA4FSI,MA5FT,GA4FE,kBAA6B,mBAC3B,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAAC1D,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAAC2D,WAAjC,IAAkD,MAAI,CAACxF,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,CAzGH,CA2GE;AACF;AACA,KA7GA,QAyOUsD,iBAzOV,GAyOE,2BACEhB,UADF,EAIEtB,IAJF,EAKE,CACA,oBACE,oBAAC,WAAD,eACMsB,UADN,IAEE,IAAI,EAAEtB,IAFR,EAGE,QAAQ,EAAE,KAAKf,KAAL,CAAWgB,QAHvB,EAIE,cAAc,EAAE,KAAKhB,KAAL,CAAWiB,cAJ7B,EAKE,WAAW,EAAE,KAAKjB,KAAL,CAAWyB,WAL1B,EAME,QAAQ,EAAE,KAAKzB,KAAL,CAAWwC,QANvB,EAOE,aAAa,EAAE,KAAKiC,uBAPtB,EAQE,iBAAiB,EAAE,KAAKF,qBAR1B,IADF,CAYD,CA3PH,QA6PUkB,oBA7PV,GA6PE,8BAA6BC,KAA7B,EAA4C,KAAfA,KAAe,cAAfA,KAAe,GAAP,KAAO,EAC1C,QAAQ,KAAK9G,QAAL,GAAgBsC,IAAxB,GACE,KAAK,OAAL,CACE,OAAOwE,KAAK,GAAGlH,MAAM,CAACmH,cAAP,CAAsB,KAAK9D,KAA3B,CAAH,GAAuCrD,MAAM,CAACoH,aAAP,CAAqB,KAAK/D,KAA1B,CAAnD,CACF,KAAK,QAAL,CACE,OAAO6D,KAAK,GAAGlH,MAAM,CAACqH,eAAP,CAAuB,KAAKhE,KAA5B,CAAH,GAAwCrD,MAAM,CAACsH,cAAP,CAAsB,KAAKjE,KAA3B,CAApD,CACF,KAAK,OAAL,CACA,QACE,OAAO6D,KAAK,GAAGlH,MAAM,CAACuH,cAAP,CAAsB,KAAKlE,KAA3B,CAAH,GAAuCrD,MAAM,CAACwH,aAAP,CAAqB,KAAKnE,KAA1B,CAAnD,CAPJ,CASD,CAvQH,QAyQU2B,cAzQV,GAyQE,0BAAyB,CACvB,OAAO,KAAKyC,UAAL,CAAgB,KAAKjG,KAAL,CAAWU,QAA3B,EAAqC,KAAK+E,oBAAL,EAArC,CAAP,CACD,CA3QH,QA6QU3B,eA7QV,GA6QE,2BAA0B,CACxB,OAAO,KAAKmC,UAAL,CAAgB,KAAKjG,KAAL,CAAWW,SAA3B,EAAsC,KAAK8E,oBAAL,CAA0B,IAA1B,CAAtC,CAAP,CACD,CA/QH,QAiRUQ,UAjRV,GAiRE,oBAAmBC,IAAnB,EAAwCC,aAAxC,EAA+D,UAC7D,IAAI,CAACD,IAAL,EAAW,CACT,OAAO,IAAP,CACD,CACD,IAAQ7E,QAAR,GAAqB,KAAKrB,KAA1B,CAAQqB,QAAR,CACA,IAAM+E,QAAQ,GAAGF,IAAI,YAAYG,QAAhB,GAA2BH,IAAI,EAA/B,GAAoCA,IAArD,CAEA,oBACE,8BACE,SAAS,EAAE7H,EAAE,CAACG,MAAM,CAAC0H,IAAP,EAAD,EAAgBC,aAAhB,EAA+B3H,MAAM,CAAC8H,eAAP,CAAuB,KAAKzE,KAA5B,CAA/B,mBACVrD,MAAM,CAAC+H,YAAP,EADU,IACclF,QADd,QADf,IAKG+E,QALH,CADF,CASD,CAjSH,QAmSUzC,iBAnSV,GAmSE,6BAA4B,CAC1B,IAAQtC,QAAR,GAAqB,KAAKrB,KAA1B,CAAQqB,QAAR,CACA,IAAQrC,OAAR,GAAoB,KAAKF,KAAzB,CAAQE,OAAR,CACA,IAAImC,WAAW,GAAG,IAAlB,CAEA,IACE,KAAKrC,KAAL,CAAWb,wBAAX,IACA,KAAK+B,KAAL,CAAWmB,WADX,IAEA,CAAC,KAAKgC,aAFN,IAGA,CAAC,KAAKnD,KAAL,CAAWV,KAHZ,IAIA,CAAC,KAAKU,KAAL,CAAWwG,YALd,EAME,UACArF,WAAW,gBACT,6BACE,SAAS,EAAE9C,EAAE,CAACG,MAAM,CAAC2C,WAAP,CAAmB,KAAKU,KAAxB,CAAD,mBACVrD,MAAM,CAACiI,mBAAP,CAA2B,KAAK5E,KAAhC,CADU,IAC+BR,QAD/B,OAEV7C,MAAM,CAACkI,gBAAP,CAAwB,KAAK7E,KAA7B,CAFU,IAE4B7C,OAF5B,QADf,EAKE,KAAK,EAAE,EAAEgE,SAAS,EAAE,KAAKhD,KAAL,CAAWa,KAAX,IAAoB,SAAjC,EALT,IAOG,KAAKb,KAAL,CAAWmB,WAPd,CADF,CAWD,CAED,OAAOA,WAAP,CACD,CA7TH,QA+TUW,gBA/TV,GA+TE,4BAA2B,sBACzB,QAAQ,KAAKlD,QAAL,GAAgBsC,IAAxB,GACE,KAAK,OAAL,CACE,OAAO7C,EAAE,kBACNG,MAAM,CAACmI,SAAP,CAAiB,KAAK9E,KAAtB,CADM,IACyB,IADzB,OAENrD,MAAM,CAACoI,iBAAP,CAAyB,KAAK/E,KAA9B,CAFM,IAEiCjE,MAAM,IAAIC,MAF3C,QAAT,CAIF,KAAK,QAAL,CACE,OAAOQ,EAAE,kBACNG,MAAM,CAACqI,UAAP,CAAkB,KAAKhF,KAAvB,CADM,IAC0B,IAD1B,OAENrD,MAAM,CAACsI,kBAAP,CAA0B,KAAKjF,KAA/B,CAFM,IAEkCjE,MAAM,IAAIC,MAF5C,QAAT,CAIF,KAAK,OAAL,CACA,QACE,OAAOQ,EAAE,kBACNG,MAAM,CAACuI,SAAP,CAAiB,KAAKlF,KAAtB,CADM,IACyB,IADzB,OAENrD,MAAM,CAACwI,iBAAP,CAAyB,KAAKnF,KAA9B,CAFM,IAEiCjE,MAAM,IAAIC,MAF3C,QAAT,CAbJ,CAkBD,CAlVH,mDAsFE,eAAoC,CAClC,mBAAiC,KAAKmC,KAAtC,CAAQe,IAAR,gBAAQA,IAAR,CAAcE,cAAd,gBAAcA,cAAd,CACA,IAAQjC,OAAR,GAAoB,KAAKF,KAAzB,CAAQE,OAAR,CACA,OAAOiI,OAAO,CAAClG,IAAI,KAAK/B,OAAO,IAAIiC,cAAhB,CAAL,CAAd,CACD,CA1FH,oBAA2BvD,KAAK,CAACwJ,SAAjC,WACgBC,mBADhB,GACsC,OADtC,UAGgBtI,YAHhB,GAG6C,EACzCqC,IAAI,EAAE,OADmC,EAH7C","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport invariant from 'invariant';\nimport React from 'react';\nimport raf from 'raf';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Input.styles';\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = 'password' | 'text';\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport interface InputProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Тип */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size'>>;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n\n this.input.setSelectionRange(start, end);\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n style: { width },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type: 'text',\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n };\n\n if (type === 'password') {\n inputProps.type = type;\n }\n\n const input = mask ? this.renderMaskedInput(inputProps, mask) : React.createElement('input', inputProps);\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["Input.tsx"],"names":["invariant","React","raf","isIE11","isEdge","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","MaskedInput","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","styles","InputDataTids","root","Input","getProps","defaultProps","state","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","warning","leftIcon","rightIcon","borderless","align","type","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","rest","labelProps","className","theme","getSizeClassName","focus","blink","focusFallback","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","renderMaskedInput","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","componentWillUnmount","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconFocus","iconDisabled","defaultValue","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Boolean","Component","__KONTUR_REACT_UI__"],"mappings":"iqBAAA;AACA;AACA,OAAOA,SAAP,MAAsB,WAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAOC,GAAP,MAAgB,KAAhB;;AAEA,SAASC,MAAT,EAAiBC,MAAjB,QAA+B,kBAA/B;AACA,SAASC,cAAT,EAAyBC,WAAzB,EAAsCC,QAAtC,QAAsD,uCAAtD;AACA,SAASC,wBAAT,QAAyC,oCAAzC;;AAEA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,aAAT,QAAmE,8BAAnE;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,MAAT,QAAuB,gBAAvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FA,OAAO,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,aADqB,EAAtB;;;;;;;;;;AAWP,OALA;AACA;AACA;AACA,GAEA,IAAaC,KAAb,GADCL,QACD;;;;AAOUM,IAAAA,QAPV,GAOqBL,iBAAiB,CAACI,KAAK,CAACE,YAAP,CAPtC;;AASSC,IAAAA,KATT,GAS6B;AACzBb,MAAAA,wBAAwB,EAAxBA,wBADyB;AAEzBc,MAAAA,QAAQ,EAAE,KAFe;AAGzBC,MAAAA,OAAO,EAAE,KAHgB,EAT7B;;;AAeUC,IAAAA,WAfV,GAeuC,IAfvC;;AAiBUC,IAAAA,YAjBV,GAiByB,CAjBzB;AAkBUC,IAAAA,KAlBV,GAkB2C,IAlB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GSC,IAAAA,SA9GT,GA8GqB,YAAY;AAC7B,UAAI,MAAKD,KAAT,EAAgB;AACd,cAAKE,iBAAL,CAAuB,CAAvB,EAA0B,MAAKF,KAAL,CAAWG,KAAX,CAAiBC,MAA3C;AACD;AACF,KAlHH;;AAoHUC,IAAAA,cApHV,GAoH2B,oBAAe,MAAKP,WAAL,GAAmBtB,GAAG,CAAC,MAAKyB,SAAN,CAArC,EApH3B;;AAsHUK,IAAAA,sBAtHV,GAsHmC,YAAY;AAC3C,UAAI,MAAKR,WAAT,EAAsB;AACpBtB,QAAAA,GAAG,CAAC+B,MAAJ,CAAW,MAAKT,WAAhB;AACA,cAAKA,WAAL,GAAmB,IAAnB;AACD;AACF,KA3HH;;AA6HUU,IAAAA,WA7HV,GA6HwB,UAACC,QAAD,EAAiC;AACrD,UAAI,MAAKV,YAAT,EAAuB;AACrBW,QAAAA,YAAY,CAAC,MAAKX,YAAN,CAAZ;AACA,cAAKA,YAAL,GAAoB,CAApB;AACA,YAAI,MAAKJ,KAAL,CAAWC,QAAf,EAAyB;AACvB,gBAAKe,QAAL,CAAc,EAAEf,QAAQ,EAAE,KAAZ,EAAd,EAAmCa,QAAnC;AACA;AACD;AACF;AACD,UAAIA,QAAJ,EAAc;AACZA,QAAAA,QAAQ;AACT;AACF,KAzIH;;AA2IUG,IAAAA,UA3IV,GA2IuB,UAACC,KAAD,EAA+C;AAClE;AACEC,MAAAA,YADF;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BID,MAAAA,KA5BJ,CACEC,YADF,CAEEC,YAFF,GA4BIF,KA5BJ,CAEEE,YAFF,CAGEC,WAHF,GA4BIH,KA5BJ,CAGEG,WAHF,CAIEC,SAJF,GA4BIJ,KA5BJ,CAIEI,SAJF,CAKEC,UALF,GA4BIL,KA5BJ,CAKEK,UALF,CAMEC,aANF,GA4BIN,KA5BJ,CAMEM,aANF,CAOEC,KAPF,GA4BIP,KA5BJ,CAOEO,KAPF,CAQEC,KARF,GA4BIR,KA5BJ,CAQEQ,KARF,CASEC,OATF,GA4BIT,KA5BJ,CASES,OATF,CAUEC,QAVF,GA4BIV,KA5BJ,CAUEU,QAVF,CAWEC,SAXF,GA4BIX,KA5BJ,CAWEW,SAXF,CAYEC,UAZF,GA4BIZ,KA5BJ,CAYEY,UAZF,CAaEtB,KAbF,GA4BIU,KA5BJ,CAaEV,KAbF,CAcEuB,KAdF,GA4BIb,KA5BJ,CAcEa,KAdF,CAeEC,IAfF,GA4BId,KA5BJ,CAeEc,IAfF,CAgBEC,IAhBF,GA4BIf,KA5BJ,CAgBEe,IAhBF,CAiBEC,QAjBF,GA4BIhB,KA5BJ,CAiBEgB,QAjBF,CAkBEC,cAlBF,GA4BIjB,KA5BJ,CAkBEiB,cAlBF,CAmBEC,IAnBF,GA4BIlB,KA5BJ,CAmBEkB,IAnBF,CAoBEC,WApBF,GA4BInB,KA5BJ,CAoBEmB,WApBF,CAqBEC,gBArBF,GA4BIpB,KA5BJ,CAqBEoB,gBArBF,CAsBEC,QAtBF,GA4BIrB,KA5BJ,CAsBEqB,QAtBF,CAuBEC,iBAvBF,GA4BItB,KA5BJ,CAuBEsB,iBAvBF,CAwBEC,MAxBF,GA4BIvB,KA5BJ,CAwBEuB,MAxBF,CAyBEC,MAzBF,GA4BIxB,KA5BJ,CAyBEwB,MAzBF,CA0BEC,WA1BF,GA4BIzB,KA5BJ,CA0BEyB,WA1BF,CA2BKC,IA3BL,iCA4BI1B,KA5BJ;;AA8BA,wBAA8B,MAAKlB,KAAnC,CAAQC,QAAR,eAAQA,QAAR,CAAkBC,OAAlB,eAAkBA,OAAlB;;AAEA,UAAM2C,UAAU,GAAG;AACjBC,QAAAA,SAAS,EAAEvD,EAAE,CAACG,MAAM,CAACE,IAAP,CAAY,MAAKmD,KAAjB,CAAD,EAA0B,MAAKC,gBAAL,EAA1B;AACVtD,QAAAA,MAAM,CAACuD,KAAP,CAAa,MAAKF,KAAlB,CADU,IACiB7C,OADjB;AAEVR,QAAAA,MAAM,CAACwD,KAAP,CAAa,MAAKH,KAAlB,CAFU,IAEiB9C,QAFjB;AAGVP,QAAAA,MAAM,CAACoC,UAAP,EAHU,IAGYA,UAAU,IAAI,CAAC5B,OAH3B;AAIVR,QAAAA,MAAM,CAAC6C,QAAP,CAAgB,MAAKQ,KAArB,CAJU,IAIoBR,QAJpB;AAKV7C,QAAAA,MAAM,CAACiC,OAAP,CAAe,MAAKoB,KAApB,CALU,IAKmBpB,OALnB;AAMVjC,QAAAA,MAAM,CAACgC,KAAP,CAAa,MAAKqB,KAAlB,CANU,IAMiBrB,KANjB;AAOVhC,QAAAA,MAAM,CAACyD,aAAP,CAAqB,MAAKJ,KAA1B,CAPU,IAOyB7C,OAAO,KAAKpB,MAAM,IAAIC,MAAf,CAPhC;AAQVW,QAAAA,MAAM,CAAC0D,eAAP,CAAuB,MAAKL,KAA5B,CARU,IAQ2BpB,OAAO,KAAK7C,MAAM,IAAIC,MAAf,CARlC;AASVW,QAAAA,MAAM,CAAC2D,aAAP,CAAqB,MAAKN,KAA1B,CATU,IASyBrB,KAAK,KAAK5C,MAAM,IAAIC,MAAf,CAT9B,OADI;;AAYjBuE,QAAAA,KAAK,EAAE,EAAE7B,KAAK,EAALA,KAAF,EAZU;AAajBN,QAAAA,YAAY,EAAZA,YAbiB;AAcjBC,QAAAA,YAAY,EAAZA,YAdiB;AAejBC,QAAAA,WAAW,EAAXA,WAfiB,EAAnB;;;AAkBA,UAAMkC,UAAU;AACXX,MAAAA,IADW;AAEdE,QAAAA,SAAS,EAAEvD,EAAE,CAACG,MAAM,CAACW,KAAP,CAAa,MAAK0C,KAAlB,CAAD;AACVrD,QAAAA,MAAM,CAAC8D,UAAP,CAAkB,MAAKT,KAAvB,CADU,IACsB7C,OADtB;AAEVR,QAAAA,MAAM,CAAC+D,aAAP,CAAqB,MAAKV,KAA1B,CAFU,IAEyBR,QAFzB,QAFC;;AAMd/B,QAAAA,KAAK,EAALA,KANc;AAOdkD,QAAAA,QAAQ,EAAE,MAAKC,YAPD;AAQdC,QAAAA,OAAO,EAAE,MAAKC,WARA;AASdvC,QAAAA,SAAS,EAAE,MAAKwC,aATF;AAUdvC,QAAAA,UAAU,EAAE,MAAKwC,cAVH;AAWdC,QAAAA,MAAM,EAAE,MAAKC,UAXC;AAYdX,QAAAA,KAAK,EAAE,EAAEY,SAAS,EAAEnC,KAAb,EAZO;AAadoC,QAAAA,GAAG,EAAE,MAAKC,QAbI;AAcdpC,QAAAA,IAAI,EAAE,MAdQ;AAedK,QAAAA,WAAW,EAAE,CAAC,MAAKgC,aAAN,IAAuB,CAAClF,wBAAxB,GAAmDkD,WAAnD,GAAiEiC,SAfhE;AAgBd/B,QAAAA,QAAQ,EAARA,QAhBc,GAAhB;;;AAmBA,UAAIP,IAAI,KAAK,UAAb,EAAyB;AACvBuB,QAAAA,UAAU,CAACvB,IAAX,GAAkBA,IAAlB;AACD;;AAED,UAAM3B,KAAK,GAAG4B,IAAI,GAAG,MAAKsC,iBAAL,CAAuBhB,UAAvB,EAAmCtB,IAAnC,CAAH,gBAA8CrD,KAAK,CAAC4F,aAAN,CAAoB,OAApB,EAA6BjB,UAA7B,CAAhE;;AAEA;AACE,gDAAO,YAAU5D,aAAa,CAACC,IAA/B,IAAyCiD,UAAzC;AACE,sCAAM,SAAS,EAAEnD,MAAM,CAAC+E,aAAP,EAAjB;AACG,cAAKC,cAAL,EADH;AAEG,cAAKC,YAAL,EAFH,CADF;;AAKE,sCAAM,SAAS,EAAEjF,MAAM,CAACkF,OAAP,EAAjB;AACGvE,QAAAA,KADH;AAEG,cAAKwE,iBAAL,EAFH,CALF;;AASE,sCAAM,SAAS,EAAEtF,EAAE,CAACG,MAAM,CAAC+E,aAAP,EAAD,EAAyB/E,MAAM,CAACoF,cAAP,EAAzB,CAAnB;AACG,cAAKC,YAAL,EADH;AAEG,cAAKC,eAAL,EAFH,CATF,CADF;;;;AAgBD,KAvOH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqVUZ,IAAAA,QArVV,GAqVqB,UAACa,OAAD,EAAoD;AACrE,UAAIA,OAAO,YAAY7F,WAAvB,EAAoC;AAClC,cAAKiB,KAAL,GAAa4E,OAAO,CAAC5E,KAArB;AACD,OAFD,MAEO;AACL,cAAKA,KAAL,GAAa4E,OAAb;AACD;AACF,KA3VH;;AA6VUtB,IAAAA,YA7VV,GA6VyB,UAACuB,KAAD,EAAgD;AACrE,UAAI/F,wBAAJ,EAA8B;AAC5B,YAAMgG,YAAY,GAAGD,KAAK,CAACE,MAAN,CAAa5E,KAAb,KAAuB,EAA5C;AACA,YAAI,MAAKR,KAAL,CAAWb,wBAAX,KAAwCgG,YAA5C,EAA0D;AACxD,gBAAKnE,QAAL,CAAc,EAAE7B,wBAAwB,EAAEgG,YAA5B,EAAd;AACD;AACF;;AAED,UAAI,MAAKjE,KAAL,CAAWM,aAAf,EAA8B;AAC5B,cAAKN,KAAL,CAAWM,aAAX,CAAyB0D,KAAK,CAACE,MAAN,CAAa5E,KAAtC;AACD;;AAED,UAAI,MAAKU,KAAL,CAAWwC,QAAf,EAAyB;AACvB,cAAKxC,KAAL,CAAWwC,QAAX,CAAoBwB,KAApB;AACD;AACF,KA5WH;;AA8WUrB,IAAAA,WA9WV,GA8WwB,UAACqB,KAAD,EAA+C;AACnE,YAAKlE,QAAL,CAAc;AACZd,QAAAA,OAAO,EAAE,IADG,EAAd;;;AAIA,UAAI,MAAKgB,KAAL,CAAWoB,gBAAf,EAAiC;AAC/B;AACA,cAAKjC,KAAL,IAAc,CAACvB,MAAf,GAAwB,MAAKwB,SAAL,EAAxB,GAA2C,MAAKI,cAAL,EAA3C;AACD;;AAED,UAAI,MAAKQ,KAAL,CAAW0C,OAAf,EAAwB;AACtB,cAAK1C,KAAL,CAAW0C,OAAX,CAAmBsB,KAAnB;AACD;AACF,KA3XH;;AA6XUpB,IAAAA,aA7XV,GA6X0B,UAACuB,CAAD,EAA8C;AACpE,UAAI,MAAKnE,KAAL,CAAWI,SAAf,EAA0B;AACxB,cAAKJ,KAAL,CAAWI,SAAX,CAAqB+D,CAArB;AACD;;AAED,UAAMC,WAAW,GAAGpG,QAAQ,CAACF,cAAD,EAAiBC,WAAjB,CAAR,CAAsCoG,CAAtC,CAApB;;AAEA,UAAI,CAACA,CAAC,CAACE,aAAF,CAAgB/E,KAAjB,IAA0B8E,WAA1B,IAAyC,CAACD,CAAC,CAACG,MAAhD,EAAwD;AACtD,cAAKC,qBAAL;AACD;AACF,KAvYH;;AAyYU1B,IAAAA,cAzYV,GAyY2B,UAACmB,KAAD,EAAkD;AACzE,UAAI,MAAKhE,KAAL,CAAWK,UAAf,EAA2B;AACzB,cAAKL,KAAL,CAAWK,UAAX,CAAsB2D,KAAtB;AACD;;AAED,UAAI,MAAKhE,KAAL,CAAWwE,SAAX,KAAyBR,KAAK,CAACK,aAAN,CAAoB/E,KAApB,CAA0BC,MAAvD,EAA+D;AAC7D,cAAKgF,qBAAL,CAA2BP,KAAK,CAACK,aAAN,CAAoB/E,KAA/C;AACD;AACF,KAjZH;;AAmZUmF,IAAAA,uBAnZV,GAmZoC,UAACnF,KAAD,EAAmB;AACnD,UAAI,MAAKU,KAAL,CAAWM,aAAf,EAA8B;AAC5B,cAAKN,KAAL,CAAWM,aAAX,CAAyBhB,KAAzB;AACD;AACF,KAvZH;;AAyZUiF,IAAAA,qBAzZV,GAyZkC,UAACjF,KAAD,EAA4C,KAA3CA,KAA2C,cAA3CA,KAA2C,GAA3B,MAAKU,KAAL,CAAWV,KAAX,IAAoB,EAAO;AAC1E,UAAI,MAAKU,KAAL,CAAWsB,iBAAf,EAAkC;AAChC,cAAKtB,KAAL,CAAWsB,iBAAX,CAA6BhC,KAA7B;AACD,OAFD,MAEO;AACL,cAAK0C,KAAL;AACD;AACF,KA/ZH;;AAiaUe,IAAAA,UAjaV,GAiauB,UAACiB,KAAD,EAA+C;AAClE,YAAKlE,QAAL,CAAc,EAAEd,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKgB,KAAL,CAAW8C,MAAf,EAAuB;AACrB,cAAK9C,KAAL,CAAW8C,MAAX,CAAkBkB,KAAlB;AACD;AACF,KAvaH;;AAyaUP,IAAAA,YAzaV,GAyayB,YAAM;AAC3B,wBAA6B,MAAKzD,KAAlC,CAAQuB,MAAR,eAAQA,MAAR,CAAgBF,QAAhB,eAAgBA,QAAhB;;AAEA,UAAI,CAACE,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAElD,EAAE,CAACG,MAAM,CAAC+C,MAAP,CAAc,MAAKM,KAAnB,CAAD,mBAA+BrD,MAAM,CAACkG,cAAP,CAAsB,MAAK7C,KAA3B,CAA/B,IAAmER,QAAnE,QAAnB,IAAoGE,MAApG,CADF;;AAGD,KAnbH;;AAqbUsC,IAAAA,YArbV,GAqbyB,YAAM;AAC3B,yBAA6B,MAAK7D,KAAlC,CAAQwB,MAAR,gBAAQA,MAAR,CAAgBH,QAAhB,gBAAgBA,QAAhB;;AAEA,UAAI,CAACG,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAEnD,EAAE,CAACG,MAAM,CAACgD,MAAP,CAAc,MAAKK,KAAnB,CAAD,mBAA+BrD,MAAM,CAACmG,cAAP,CAAsB,MAAK9C,KAA3B,CAA/B,IAAmER,QAAnE,QAAnB,IAAoGG,MAApG,CADF;;AAGD,KA/bH,mDAqBSoD,oBArBT,GAqBE,gCAA8B,CAC5B,IAAI,KAAK1F,YAAT,EAAuB,CACrBW,YAAY,CAAC,KAAKX,YAAN,CAAZ,CACD,CACD,KAAKO,sBAAL,GACD,CA1BH,CA4BE;AACF;AACA,KA9BA,QA+BSsC,KA/BT,GA+BE,iBAAe,CACbtE,SAAS,CAAC,KAAK0B,KAAN,EAAa,kDAAb,CAAT,CACA,KAAKA,KAAL,CAAW4C,KAAX,GACD,CAlCH,CAoCE;AACF;AACA,KAtCA,QAuCS8C,IAvCT,GAuCE,gBAAc,CACZpH,SAAS,CAAC,KAAK0B,KAAN,EAAa,iDAAb,CAAT,CACA,KAAKA,KAAL,CAAW0F,IAAX,GACD,CA1CH,CA4CE;AACF;AACA,KA9CA,QA+CSC,OA/CT,GA+CE,mBAAiB,CACf,OAAO,KAAK3F,KAAZ,CACD,CAjDH,CAmDE;AACF;AACA,KArDA,QAsDS6C,KAtDT,GAsDE,iBAAe,mBACb,IAAI,KAAK9C,YAAT,EAAuB,CACrB,KAAKS,WAAL,CAAiB,YAAM,CACrB;AACA;AACA,cAAM,MAAI,CAACR,KAAL,IAAc,MAAI,CAACA,KAAL,CAAW4F,WAA/B,EACA,MAAI,CAAC/C,KAAL,GACD,CALD,EAMA,OACD,CACD,KAAKlC,QAAL,CAAc,EAAEf,QAAQ,EAAE,IAAZ,EAAd,EAAkC,YAAM,CACtC,MAAI,CAACG,YAAL,GAAoB8F,MAAM,CAACC,UAAP,CAAkB,MAAI,CAACtF,WAAvB,EAAoC,GAApC,CAApB,CACD,CAFD,EAGD,CAnEH,CAqEE;AACF;AACA;AACA;AACA,KAzEA,QA0ESN,iBA1ET,GA0EE,2BAAyB6F,KAAzB,EAAwCC,GAAxC,EAAqD,CACnD,IAAI,CAAC,KAAKhG,KAAV,EAAiB,CACf,MAAM,IAAIiG,KAAJ,CAAU,oDAAV,CAAN,CACD,CAED,IAAIC,QAAQ,CAACC,aAAT,KAA2B,KAAKnG,KAApC,EAA2C,CACzC,KAAK4C,KAAL,GACD,CAED,KAAK5C,KAAL,CAAWE,iBAAX,CAA6B6F,KAA7B,EAAoCC,GAApC,EACD,CApFH,QA4FSI,MA5FT,GA4FE,kBAA6B,mBAC3B,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAAC1D,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAAC2D,WAAjC,IAAkD,MAAI,CAACxF,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,CAzGH,CA2GE;AACF;AACA,KA7GA,QAyOUsD,iBAzOV,GAyOE,2BACEhB,UADF,EAIEtB,IAJF,EAKE,CACA,oBACE,oBAAC,WAAD,eACMsB,UADN,IAEE,IAAI,EAAEtB,IAFR,EAGE,QAAQ,EAAE,KAAKf,KAAL,CAAWgB,QAHvB,EAIE,cAAc,EAAE,KAAKhB,KAAL,CAAWiB,cAJ7B,EAKE,WAAW,EAAE,KAAKjB,KAAL,CAAWyB,WAL1B,EAME,QAAQ,EAAE,KAAKzB,KAAL,CAAWwC,QANvB,EAOE,aAAa,EAAE,KAAKiC,uBAPtB,EAQE,iBAAiB,EAAE,KAAKF,qBAR1B,IADF,CAYD,CA3PH,QA6PUkB,oBA7PV,GA6PE,8BAA6BC,KAA7B,EAA4C,KAAfA,KAAe,cAAfA,KAAe,GAAP,KAAO,EAC1C,QAAQ,KAAK9G,QAAL,GAAgBsC,IAAxB,GACE,KAAK,OAAL,CACE,OAAOwE,KAAK,GAAGlH,MAAM,CAACmH,cAAP,CAAsB,KAAK9D,KAA3B,CAAH,GAAuCrD,MAAM,CAACoH,aAAP,CAAqB,KAAK/D,KAA1B,CAAnD,CACF,KAAK,QAAL,CACE,OAAO6D,KAAK,GAAGlH,MAAM,CAACqH,eAAP,CAAuB,KAAKhE,KAA5B,CAAH,GAAwCrD,MAAM,CAACsH,cAAP,CAAsB,KAAKjE,KAA3B,CAApD,CACF,KAAK,OAAL,CACA,QACE,OAAO6D,KAAK,GAAGlH,MAAM,CAACuH,cAAP,CAAsB,KAAKlE,KAA3B,CAAH,GAAuCrD,MAAM,CAACwH,aAAP,CAAqB,KAAKnE,KAA1B,CAAnD,CAPJ,CASD,CAvQH,QAyQU2B,cAzQV,GAyQE,0BAAyB,CACvB,OAAO,KAAKyC,UAAL,CAAgB,KAAKjG,KAAL,CAAWU,QAA3B,EAAqC,KAAK+E,oBAAL,EAArC,CAAP,CACD,CA3QH,QA6QU3B,eA7QV,GA6QE,2BAA0B,CACxB,OAAO,KAAKmC,UAAL,CAAgB,KAAKjG,KAAL,CAAWW,SAA3B,EAAsC,KAAK8E,oBAAL,CAA0B,IAA1B,CAAtC,CAAP,CACD,CA/QH,QAiRUQ,UAjRV,GAiRE,oBAAmBC,IAAnB,EAAwCC,aAAxC,EAA+D,UAC7D,IAAI,CAACD,IAAL,EAAW,CACT,OAAO,IAAP,CACD,CACD,IAAQ7E,QAAR,GAAqB,KAAKrB,KAA1B,CAAQqB,QAAR,CACA,IAAM+E,QAAQ,GAAGF,IAAI,YAAYG,QAAhB,GAA2BH,IAAI,EAA/B,GAAoCA,IAArD,CAEA,oBACE,8BACE,SAAS,EAAE7H,EAAE,CAACG,MAAM,CAAC0H,IAAP,EAAD,EAAgBC,aAAhB,EAA+B3H,MAAM,CAAC8H,eAAP,CAAuB,KAAKzE,KAA5B,CAA/B,mBACVrD,MAAM,CAAC+H,SAAP,CAAiB,KAAK1E,KAAtB,CADU,IACqB,KAAK/C,KAAL,CAAWE,OADhC,OAEVR,MAAM,CAACgI,YAAP,EAFU,IAEcnF,QAFd,QADf,IAMG+E,QANH,CADF,CAUD,CAlSH,QAoSUzC,iBApSV,GAoSE,6BAA4B,CAC1B,IAAQtC,QAAR,GAAqB,KAAKrB,KAA1B,CAAQqB,QAAR,CACA,IAAQrC,OAAR,GAAoB,KAAKF,KAAzB,CAAQE,OAAR,CACA,IAAImC,WAAW,GAAG,IAAlB,CAEA,IACE,KAAKrC,KAAL,CAAWb,wBAAX,IACA,KAAK+B,KAAL,CAAWmB,WADX,IAEA,CAAC,KAAKgC,aAFN,IAGA,CAAC,KAAKnD,KAAL,CAAWV,KAHZ,IAIA,CAAC,KAAKU,KAAL,CAAWyG,YALd,EAME,UACAtF,WAAW,gBACT,6BACE,SAAS,EAAE9C,EAAE,CAACG,MAAM,CAAC2C,WAAP,CAAmB,KAAKU,KAAxB,CAAD,mBACVrD,MAAM,CAACkI,mBAAP,CAA2B,KAAK7E,KAAhC,CADU,IAC+BR,QAD/B,OAEV7C,MAAM,CAACmI,gBAAP,CAAwB,KAAK9E,KAA7B,CAFU,IAE4B7C,OAF5B,QADf,EAKE,KAAK,EAAE,EAAEgE,SAAS,EAAE,KAAKhD,KAAL,CAAWa,KAAX,IAAoB,SAAjC,EALT,IAOG,KAAKb,KAAL,CAAWmB,WAPd,CADF,CAWD,CAED,OAAOA,WAAP,CACD,CA9TH,QAgUUW,gBAhUV,GAgUE,4BAA2B,sBACzB,QAAQ,KAAKlD,QAAL,GAAgBsC,IAAxB,GACE,KAAK,OAAL,CACE,OAAO7C,EAAE,kBACNG,MAAM,CAACoI,SAAP,CAAiB,KAAK/E,KAAtB,CADM,IACyB,IADzB,OAENrD,MAAM,CAACqI,iBAAP,CAAyB,KAAKhF,KAA9B,CAFM,IAEiCjE,MAAM,IAAIC,MAF3C,QAAT,CAIF,KAAK,QAAL,CACE,OAAOQ,EAAE,kBACNG,MAAM,CAACsI,UAAP,CAAkB,KAAKjF,KAAvB,CADM,IAC0B,IAD1B,OAENrD,MAAM,CAACuI,kBAAP,CAA0B,KAAKlF,KAA/B,CAFM,IAEkCjE,MAAM,IAAIC,MAF5C,QAAT,CAIF,KAAK,OAAL,CACA,QACE,OAAOQ,EAAE,kBACNG,MAAM,CAACwI,SAAP,CAAiB,KAAKnF,KAAtB,CADM,IACyB,IADzB,OAENrD,MAAM,CAACyI,iBAAP,CAAyB,KAAKpF,KAA9B,CAFM,IAEiCjE,MAAM,IAAIC,MAF3C,QAAT,CAbJ,CAkBD,CAnVH,mDAsFE,eAAoC,CAClC,mBAAiC,KAAKmC,KAAtC,CAAQe,IAAR,gBAAQA,IAAR,CAAcE,cAAd,gBAAcA,cAAd,CACA,IAAQjC,OAAR,GAAoB,KAAKF,KAAzB,CAAQE,OAAR,CACA,OAAOkI,OAAO,CAACnG,IAAI,KAAK/B,OAAO,IAAIiC,cAAhB,CAAL,CAAd,CACD,CA1FH,oBAA2BvD,KAAK,CAACyJ,SAAjC,WACgBC,mBADhB,GACsC,OADtC,UAGgBvI,YAHhB,GAG6C,EACzCqC,IAAI,EAAE,OADmC,EAH7C","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport invariant from 'invariant';\nimport React from 'react';\nimport raf from 'raf';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Input.styles';\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = 'password' | 'text';\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport interface InputProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Тип */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size'>>;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n\n this.input.setSelectionRange(start, end);\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n style: { width },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type: 'text',\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n };\n\n if (type === 'password') {\n inputProps.type = type;\n }\n\n const input = mask ? this.renderMaskedInput(inputProps, mask) : React.createElement('input', inputProps);\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconFocus(this.theme)]: this.state.focused,\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41;
4
4
 
5
5
  import { css, keyframes, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  import { shift } from "../../../lib/styles/DimensionFunctions";
@@ -24,7 +24,7 @@ export var styles = memoizeStyle({
24
24
  return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.inputIconColor);
25
25
  },
26
26
  focus: function focus(t) {
27
- return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n border-color: ", ";\n box-shadow: ", ";\n outline: none;\n z-index: 2;\n "])), t.inputBorderColorFocus, t.inputFocusShadow);
27
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n background-color: ", ";\n border-color: ", ";\n box-shadow: ", ";\n outline: none;\n z-index: 2;\n "])), t.inputFocusedBg, t.inputBorderColorFocus, t.inputFocusShadow);
28
28
  },
29
29
  focusFallback: function focusFallback(t) {
30
30
  return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n box-shadow: none;\n outline: ", " solid ", ";\n "])), t.inputOutlineWidth, t.inputFocusOutline);
@@ -105,28 +105,31 @@ export var styles = memoizeStyle({
105
105
  icon: function icon() {
106
106
  return css(_templateObject32 || (_templateObject32 = _taggedTemplateLiteralLoose(["\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n "])));
107
107
  },
108
+ iconFocus: function iconFocus(t) {
109
+ return css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.inputFocusedIconColor);
110
+ },
108
111
  iconDisabled: function iconDisabled() {
109
- return css(_templateObject33 || (_templateObject33 = _taggedTemplateLiteralLoose(["\n cursor: default;\n "])));
112
+ return css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteralLoose(["\n cursor: default;\n "])));
110
113
  },
111
114
  leftIconSmall: function leftIconSmall(t) {
112
- return css(_templateObject34 || (_templateObject34 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-right: ", ";\n "])), t.inputIconSizeSmall, t.inputIconGapSmall);
115
+ return css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-right: ", ";\n "])), t.inputIconSizeSmall, t.inputIconGapSmall);
113
116
  },
114
117
  rightIconSmall: function rightIconSmall(t) {
115
- return css(_templateObject35 || (_templateObject35 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-left: ", ";\n "])), t.inputIconSizeSmall, t.inputIconGapSmall);
118
+ return css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-left: ", ";\n "])), t.inputIconSizeSmall, t.inputIconGapSmall);
116
119
  },
117
120
  leftIconMedium: function leftIconMedium(t) {
118
- return css(_templateObject36 || (_templateObject36 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-right: ", ";\n "])), t.inputIconSizeMedium, t.inputIconGapMedium);
121
+ return css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-right: ", ";\n "])), t.inputIconSizeMedium, t.inputIconGapMedium);
119
122
  },
120
123
  rightIconMedium: function rightIconMedium(t) {
121
- return css(_templateObject37 || (_templateObject37 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-left: ", ";\n "])), t.inputIconSizeMedium, t.inputIconGapMedium);
124
+ return css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-left: ", ";\n "])), t.inputIconSizeMedium, t.inputIconGapMedium);
122
125
  },
123
126
  leftIconLarge: function leftIconLarge(t) {
124
- return css(_templateObject38 || (_templateObject38 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-right: ", ";\n "])), t.inputIconSizeLarge, t.inputIconGapLarge);
127
+ return css(_templateObject39 || (_templateObject39 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-right: ", ";\n "])), t.inputIconSizeLarge, t.inputIconGapLarge);
125
128
  },
126
129
  rightIconLarge: function rightIconLarge(t) {
127
- return css(_templateObject39 || (_templateObject39 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-left: ", ";\n "])), t.inputIconSizeLarge, t.inputIconGapLarge);
130
+ return css(_templateObject40 || (_templateObject40 = _taggedTemplateLiteralLoose(["\n min-width: ", ";\n padding-left: ", ";\n "])), t.inputIconSizeLarge, t.inputIconGapLarge);
128
131
  },
129
132
  hideBlinkingCursor: function hideBlinkingCursor() {
130
- return css(_templateObject40 || (_templateObject40 = _taggedTemplateLiteralLoose(["\n caret-color: transparent;\n "])));
133
+ return css(_templateObject41 || (_templateObject41 = _taggedTemplateLiteralLoose(["\n caret-color: transparent;\n "])));
131
134
  }
132
135
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Input.styles.ts"],"names":["css","keyframes","memoizeStyle","shift","resetText","shouldCompensateFontFamily","fontFamilyCompensation","Boolean","parseInt","styles","wrapper","root","t","inputBg","inputBorderWidth","inputBorderColor","inputBorderTopColor","inputShadow","inputColor","inputWidth","borderless","useDefaultColor","inputIconColor","focus","inputBorderColorFocus","inputFocusShadow","focusFallback","inputOutlineWidth","inputFocusOutline","placeholder","inputPlaceholderColor","placeholderFocus","inputPlaceholderColorLight","placeholderDisabled","inputPlaceholderColorDisabled","input","inputTextColor","inputFocus","inputDisabled","inputTextColorDisabled","warning","inputBorderColorWarning","warningFallback","error","inputBorderColorError","errorFallback","disabled","inputDisabledBg","inputDisabledBorderColor","blink","blinkAnimation","inputBlinkColor","sizeSmall","inputFontSizeSmall","inputLineHeightSmall","inputPaddingYSmall","inputPaddingXSmall","inputHeightSmall","inputBorderRadiusSmall","sizeSmallFallback","fontFamilyCompensationBaseline","sizeMedium","inputFontSizeMedium","inputLineHeightMedium","inputPaddingYMedium","inputPaddingXMedium","inputHeightMedium","inputBorderRadiusMedium","sizeMediumFallback","sizeLarge","inputFontSizeLarge","inputLineHeightLarge","inputHeightLarge","inputPaddingYLarge","inputPaddingXLarge","inputBorderRadiusLarge","sizeLargeFallback","prefix","prefixDisabled","suffix","suffixDisabled","sideContainer","rightContainer","icon","iconDisabled","leftIconSmall","inputIconSizeSmall","inputIconGapSmall","rightIconSmall","leftIconMedium","inputIconSizeMedium","inputIconGapMedium","rightIconMedium","leftIconLarge","inputIconSizeLarge","inputIconGapLarge","rightIconLarge","hideBlinkingCursor"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { shift } from '../../lib/styles/DimensionFunctions';\nimport { resetText } from '../../lib/styles/Mixins';\n\nconst shouldCompensateFontFamily = (fontFamilyCompensation: string): boolean =>\n Boolean(parseInt(fontFamilyCompensation));\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n ${resetText()};\n\n align-items: center;\n background-clip: padding-box;\n background-color: ${t.inputBg};\n border: ${t.inputBorderWidth} solid ${t.inputBorderColor};\n border-top-color: ${t.inputBorderTopColor};\n box-shadow: ${t.inputShadow};\n box-sizing: border-box;\n color: ${t.inputColor};\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ${t.inputWidth};\n\n & * {\n box-sizing: border-box;\n }\n `;\n },\n\n borderless() {\n return css`\n box-shadow: none;\n border-color: transparent;\n `;\n },\n\n useDefaultColor(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorFocus};\n box-shadow: ${t.inputFocusShadow};\n outline: none;\n z-index: 2;\n `;\n },\n\n focusFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputOutlineWidth} solid ${t.inputFocusOutline};\n `;\n },\n\n placeholder(t: Theme) {\n return css`\n -ms-user-select: none;\n color: ${t.inputPlaceholderColor};\n cursor: text;\n font-size: inherit;\n height: 100%;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n top: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n `;\n },\n\n placeholderFocus(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorLight};\n `;\n },\n\n placeholderDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n input(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ${t.inputTextColor};\n font: inherit;\n line-height: inherit;\n margin: 0;\n outline: none;\n padding: 0;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n &::-ms-clear {\n display: none;\n }\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColor};\n }\n `;\n },\n\n inputFocus(t: Theme) {\n return css`\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n color: ${t.inputTextColorDisabled};\n /* fix text color in safari https://bugs.webkit.org/show_bug.cgi?id=115510 */\n -webkit-text-fill-color: ${t.inputTextColorDisabled};\n\n &:-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorWarning};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorWarning};\n z-index: 2;\n `;\n },\n\n warningFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorError};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorError};\n z-index: 2;\n `;\n },\n\n errorFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorError};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background-color: ${t.inputDisabledBg};\n border-color: ${t.inputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n blink(t: Theme) {\n const blinkAnimation = keyframes`\n 0% {\n background-color: ${t.inputBlinkColor};\n }\n `;\n return css`\n animation: ${blinkAnimation} 0.15s ease-in;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n line-height: ${t.inputLineHeightSmall};\n padding-top: ${t.inputPaddingYSmall};\n padding-bottom: ${t.inputPaddingYSmall};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n height: ${t.inputHeightSmall};\n border-radius: ${t.inputBorderRadiusSmall};\n `;\n },\n\n sizeSmallFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n line-height: normal;\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n line-height: ${t.inputLineHeightMedium};\n padding-top: ${t.inputPaddingYMedium};\n padding-bottom: ${t.inputPaddingYMedium};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n height: ${t.inputHeightMedium};\n border-radius: ${t.inputBorderRadiusMedium};\n `;\n },\n\n sizeMediumFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n line-height: normal;\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n line-height: ${t.inputLineHeightLarge};\n height: ${t.inputHeightLarge};\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n border-radius: ${t.inputBorderRadiusLarge};\n `;\n },\n\n sizeLargeFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-2' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '2' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n line-height: normal;\n `;\n },\n\n prefix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n prefixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n suffix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n suffixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n sideContainer() {\n return css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n height: 100%;\n\n &::before {\n content: '\\\\a0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n rightContainer() {\n return css`\n justify-self: flex-end;\n margin: 0 0 0 auto;\n padding-left: 0;\n `;\n },\n\n icon() {\n return css`\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n `;\n },\n\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n\n leftIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-right: ${t.inputIconGapSmall};\n `;\n },\n\n rightIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-left: ${t.inputIconGapSmall};\n `;\n },\n\n leftIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-right: ${t.inputIconGapMedium};\n `;\n },\n\n rightIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-left: ${t.inputIconGapMedium};\n `;\n },\n\n leftIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-right: ${t.inputIconGapLarge};\n `;\n },\n\n rightIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-left: ${t.inputIconGapLarge};\n `;\n },\n\n hideBlinkingCursor() {\n return css`\n caret-color: transparent;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Input.styles.ts"],"names":["css","keyframes","memoizeStyle","shift","resetText","shouldCompensateFontFamily","fontFamilyCompensation","Boolean","parseInt","styles","wrapper","root","t","inputBg","inputBorderWidth","inputBorderColor","inputBorderTopColor","inputShadow","inputColor","inputWidth","borderless","useDefaultColor","inputIconColor","focus","inputFocusedBg","inputBorderColorFocus","inputFocusShadow","focusFallback","inputOutlineWidth","inputFocusOutline","placeholder","inputPlaceholderColor","placeholderFocus","inputPlaceholderColorLight","placeholderDisabled","inputPlaceholderColorDisabled","input","inputTextColor","inputFocus","inputDisabled","inputTextColorDisabled","warning","inputBorderColorWarning","warningFallback","error","inputBorderColorError","errorFallback","disabled","inputDisabledBg","inputDisabledBorderColor","blink","blinkAnimation","inputBlinkColor","sizeSmall","inputFontSizeSmall","inputLineHeightSmall","inputPaddingYSmall","inputPaddingXSmall","inputHeightSmall","inputBorderRadiusSmall","sizeSmallFallback","fontFamilyCompensationBaseline","sizeMedium","inputFontSizeMedium","inputLineHeightMedium","inputPaddingYMedium","inputPaddingXMedium","inputHeightMedium","inputBorderRadiusMedium","sizeMediumFallback","sizeLarge","inputFontSizeLarge","inputLineHeightLarge","inputHeightLarge","inputPaddingYLarge","inputPaddingXLarge","inputBorderRadiusLarge","sizeLargeFallback","prefix","prefixDisabled","suffix","suffixDisabled","sideContainer","rightContainer","icon","iconFocus","inputFocusedIconColor","iconDisabled","leftIconSmall","inputIconSizeSmall","inputIconGapSmall","rightIconSmall","leftIconMedium","inputIconSizeMedium","inputIconGapMedium","rightIconMedium","leftIconLarge","inputIconSizeLarge","inputIconGapLarge","rightIconLarge","hideBlinkingCursor"],"mappings":"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","sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { shift } from '../../lib/styles/DimensionFunctions';\nimport { resetText } from '../../lib/styles/Mixins';\n\nconst shouldCompensateFontFamily = (fontFamilyCompensation: string): boolean =>\n Boolean(parseInt(fontFamilyCompensation));\n\nexport const styles = memoizeStyle({\n wrapper() {\n return css`\n align-items: center;\n display: flex;\n margin: 0;\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &::before {\n content: '\\\\A0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n root(t: Theme) {\n return css`\n ${resetText()};\n\n align-items: center;\n background-clip: padding-box;\n background-color: ${t.inputBg};\n border: ${t.inputBorderWidth} solid ${t.inputBorderColor};\n border-top-color: ${t.inputBorderTopColor};\n box-shadow: ${t.inputShadow};\n box-sizing: border-box;\n color: ${t.inputColor};\n cursor: text;\n display: inline-flex;\n outline: none;\n position: relative;\n width: ${t.inputWidth};\n\n & * {\n box-sizing: border-box;\n }\n `;\n },\n\n borderless() {\n return css`\n box-shadow: none;\n border-color: transparent;\n `;\n },\n\n useDefaultColor(t: Theme) {\n return css`\n color: ${t.inputIconColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n background-color: ${t.inputFocusedBg};\n border-color: ${t.inputBorderColorFocus};\n box-shadow: ${t.inputFocusShadow};\n outline: none;\n z-index: 2;\n `;\n },\n\n focusFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputOutlineWidth} solid ${t.inputFocusOutline};\n `;\n },\n\n placeholder(t: Theme) {\n return css`\n -ms-user-select: none;\n color: ${t.inputPlaceholderColor};\n cursor: text;\n font-size: inherit;\n height: 100%;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n position: absolute;\n top: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n `;\n },\n\n placeholderFocus(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorLight};\n `;\n },\n\n placeholderDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n input(t: Theme) {\n return css`\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ${t.inputTextColor};\n font: inherit;\n line-height: inherit;\n margin: 0;\n outline: none;\n padding: 0;\n text-overflow: clip;\n white-space: nowrap;\n width: 100%;\n\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n &::-ms-clear {\n display: none;\n }\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColor};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColor};\n }\n `;\n },\n\n inputFocus(t: Theme) {\n return css`\n &:-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::-moz-placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n &::placeholder {\n color: ${t.inputPlaceholderColorLight};\n }\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n color: ${t.inputTextColorDisabled};\n /* fix text color in safari https://bugs.webkit.org/show_bug.cgi?id=115510 */\n -webkit-text-fill-color: ${t.inputTextColorDisabled};\n\n &:-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::-moz-placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n &::placeholder {\n -webkit-text-fill-color: ${t.inputPlaceholderColorDisabled};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorWarning};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorWarning};\n z-index: 2;\n `;\n },\n\n warningFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.inputBorderColorError};\n box-shadow: 0 0 0 ${t.inputOutlineWidth} ${t.inputBorderColorError};\n z-index: 2;\n `;\n },\n\n errorFallback(t: Theme) {\n return css`\n box-shadow: none;\n outline: ${t.inputBorderWidth} solid ${t.inputBorderColorError};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n background-color: ${t.inputDisabledBg};\n border-color: ${t.inputDisabledBorderColor};\n box-shadow: none;\n `;\n },\n\n blink(t: Theme) {\n const blinkAnimation = keyframes`\n 0% {\n background-color: ${t.inputBlinkColor};\n }\n `;\n return css`\n animation: ${blinkAnimation} 0.15s ease-in;\n `;\n },\n\n sizeSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n line-height: ${t.inputLineHeightSmall};\n padding-top: ${t.inputPaddingYSmall};\n padding-bottom: ${t.inputPaddingYSmall};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n height: ${t.inputHeightSmall};\n border-radius: ${t.inputBorderRadiusSmall};\n `;\n },\n\n sizeSmallFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYSmall,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXSmall};\n padding-right: ${t.inputPaddingXSmall};\n line-height: normal;\n `;\n },\n\n sizeMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n line-height: ${t.inputLineHeightMedium};\n padding-top: ${t.inputPaddingYMedium};\n padding-bottom: ${t.inputPaddingYMedium};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n height: ${t.inputHeightMedium};\n border-radius: ${t.inputBorderRadiusMedium};\n `;\n },\n\n sizeMediumFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYMedium,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXMedium};\n padding-right: ${t.inputPaddingXMedium};\n line-height: normal;\n `;\n },\n\n sizeLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n line-height: ${t.inputLineHeightLarge};\n height: ${t.inputHeightLarge};\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-1' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '1' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n border-radius: ${t.inputBorderRadiusLarge};\n `;\n },\n\n sizeLargeFallback(t: Theme) {\n return css`\n padding-top: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '-2' : '0',\n )};\n padding-bottom: ${shift(\n t.inputPaddingYLarge,\n shouldCompensateFontFamily(t.fontFamilyCompensationBaseline) ? '2' : '0',\n )};\n padding-left: ${t.inputPaddingXLarge};\n padding-right: ${t.inputPaddingXLarge};\n line-height: normal;\n `;\n },\n\n prefix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n prefixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n suffix(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColor};\n `;\n },\n\n suffixDisabled(t: Theme) {\n return css`\n color: ${t.inputPlaceholderColorDisabled};\n `;\n },\n\n sideContainer() {\n return css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n height: 100%;\n\n &::before {\n content: '\\\\a0';\n display: inline-block;\n width: 0;\n }\n `;\n },\n\n rightContainer() {\n return css`\n justify-self: flex-end;\n margin: 0 0 0 auto;\n padding-left: 0;\n `;\n },\n\n icon() {\n return css`\n flex-shrink: 0;\n cursor: text;\n z-index: 2;\n text-align: center;\n box-sizing: content-box !important; // fix possible \"reset.css\" problem\n `;\n },\n\n iconFocus(t: Theme) {\n return css`\n color: ${t.inputFocusedIconColor};\n `;\n },\n\n iconDisabled() {\n return css`\n cursor: default;\n `;\n },\n\n leftIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-right: ${t.inputIconGapSmall};\n `;\n },\n\n rightIconSmall(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeSmall};\n padding-left: ${t.inputIconGapSmall};\n `;\n },\n\n leftIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-right: ${t.inputIconGapMedium};\n `;\n },\n\n rightIconMedium(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeMedium};\n padding-left: ${t.inputIconGapMedium};\n `;\n },\n\n leftIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-right: ${t.inputIconGapLarge};\n `;\n },\n\n rightIconLarge(t: Theme) {\n return css`\n min-width: ${t.inputIconSizeLarge};\n padding-left: ${t.inputIconGapLarge};\n `;\n },\n\n hideBlinkingCursor() {\n return css`\n caret-color: transparent;\n `;\n },\n});\n"]}
@@ -31,6 +31,7 @@ export declare const styles: {
31
31
  sideContainer(): string;
32
32
  rightContainer(): string;
33
33
  icon(): string;
34
+ iconFocus(t: Theme): string;
34
35
  iconDisabled(): string;
35
36
  leftIconSmall(t: Theme): string;
36
37
  rightIconSmall(t: Theme): string;
@@ -1,5 +1,4 @@
1
1
  import React, { useEffect } from 'react';
2
- import propTypes from 'prop-types';
3
2
  import { isFunction } from "../../../lib/utils";
4
3
  import { CommonWrapper } from "../../../internal/CommonWrapper";
5
4
  import { useResponsiveLayout } from "../useResponsiveLayout";
@@ -7,18 +6,16 @@ import { useResponsiveLayout } from "../useResponsiveLayout";
7
6
  * Компонент для определения текущего лэйаута.
8
7
  */
9
8
 
10
- export var ResponsiveLayout = function ResponsiveLayout(props) {
9
+ export function ResponsiveLayout(props) {
11
10
  var _props$children, _props$children2;
12
11
 
13
- var layoutFlags = useResponsiveLayout();
12
+ var layoutFlags = useResponsiveLayout({
13
+ customMediaQueries: props.customMediaQueries
14
+ });
14
15
  useEffect(function () {
15
16
  if (props.onLayoutChange) {
16
17
  props.onLayoutChange(layoutFlags);
17
18
  }
18
19
  }, [layoutFlags]);
19
20
  return /*#__PURE__*/React.createElement(CommonWrapper, props, isFunction(props.children) ? (_props$children = props.children(layoutFlags)) != null ? _props$children : null : (_props$children2 = props.children) != null ? _props$children2 : null);
20
- };
21
- ResponsiveLayout.propTypes = {
22
- onLayoutChange: propTypes.func,
23
- children: propTypes.oneOfType([propTypes.node, propTypes.func])
24
- };
21
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","propTypes","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","onLayoutChange","children","func","oneOfType","node"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;AAOA;AACA;AACA;;AAEA,OAAO,IAAMC,gBAAiD,GAAG,SAApDA,gBAAoD,CAACC,KAAD,EAAW;AAC1E,MAAMC,WAAW,GAAGH,mBAAmB,EAAvC;;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIM,KAAK,CAACE,cAAV,EAA0B;AACxBF,MAAAA,KAAK,CAACE,cAAN,CAAqBD,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACG,QAAP,CAAV,sBAA6BH,KAAK,CAACG,QAAN,CAAeF,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACG,QAAzE,+BAAqF,IADxF,CADF;;;AAKD,CAdM;;AAgBPJ,gBAAgB,CAACJ,SAAjB,GAA6B;AAC3BO,EAAAA,cAAc,EAAEP,SAAS,CAACS,IADC;AAE3BD,EAAAA,QAAQ,EAAER,SAAS,CAACU,SAAV,CAAoB,CAACV,SAAS,CAACW,IAAX,EAAiBX,SAAS,CAACS,IAA3B,CAApB,CAFiB,EAA7B","sourcesContent":["import React, { useEffect } from 'react';\nimport propTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps {\n onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport const ResponsiveLayout: React.FC<ResponsiveLayoutProps> = (props) => {\n const layoutFlags = useResponsiveLayout();\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n};\n\nResponsiveLayout.propTypes = {\n onLayoutChange: propTypes.func,\n children: propTypes.oneOfType([propTypes.node, propTypes.func]),\n};\n"]}
1
+ {"version":3,"sources":["ResponsiveLayout.tsx"],"names":["React","useEffect","isFunction","CommonWrapper","useResponsiveLayout","ResponsiveLayout","props","layoutFlags","customMediaQueries","onLayoutChange","children"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;;AAEA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,aAAT,QAA8B,8BAA9B;;;AAGA,SAASC,mBAAT,QAAoC,uBAApC;;;;;;;;AAQA;AACA;AACA;;AAEA,OAAO,SAASC,gBAAT,CAAoEC,KAApE,EAAqG;AAC1G,MAAMC,WAAW,GAAGH,mBAAmB,CAAI,EAAEI,kBAAkB,EAAEF,KAAK,CAACE,kBAA5B,EAAJ,CAAvC;;AAEAP,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIK,KAAK,CAACG,cAAV,EAA0B;AACxBH,MAAAA,KAAK,CAACG,cAAN,CAAqBF,WAArB;AACD;AACF,GAJQ,EAIN,CAACA,WAAD,CAJM,CAAT;;AAMA;AACE,wBAAC,aAAD,EAAmBD,KAAnB;AACGJ,IAAAA,UAAU,CAACI,KAAK,CAACI,QAAP,CAAV,sBAA6BJ,KAAK,CAACI,QAAN,CAAeH,WAAf,CAA7B,8BAA4D,IAA5D,uBAAmED,KAAK,CAACI,QAAzE,+BAAqF,IADxF,CADF;;;AAKD","sourcesContent":["import React, { useEffect } from 'react';\n\nimport { isFunction } from '../../lib/utils';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';\nimport { useResponsiveLayout } from './useResponsiveLayout';\n\ninterface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {\n onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;\n children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);\n customMediaQueries?: T;\n}\n\n/**\n * Компонент для определения текущего лэйаута.\n */\n\nexport function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>) {\n const layoutFlags = useResponsiveLayout<T>({ customMediaQueries: props.customMediaQueries });\n\n useEffect(() => {\n if (props.onLayoutChange) {\n props.onLayoutChange(layoutFlags);\n }\n }, [layoutFlags]);\n\n return (\n <CommonWrapper {...props}>\n {isFunction(props.children) ? props.children(layoutFlags) ?? null : props.children ?? null}\n </CommonWrapper>\n );\n}\n"]}
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- import { ResponsiveLayoutFlags } from './types';
3
- interface ResponsiveLayoutProps {
4
- onLayoutChange?: (layout: ResponsiveLayoutFlags) => void;
5
- children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags) => React.ReactNode);
2
+ import { EmptyObject, MediaQueriesType, ResponsiveLayoutFlags } from './types';
3
+ interface ResponsiveLayoutProps<T extends MediaQueriesType = EmptyObject> {
4
+ onLayoutChange?: (layout: ResponsiveLayoutFlags<T>) => void;
5
+ children?: React.ReactNode | ((currentLayout: ResponsiveLayoutFlags<T>) => React.ReactNode);
6
+ customMediaQueries?: T;
6
7
  }
7
8
  /**
8
9
  * Компонент для определения текущего лэйаута.
9
10
  */
10
- export declare const ResponsiveLayout: React.FC<ResponsiveLayoutProps>;
11
+ export declare function ResponsiveLayout<T extends MediaQueriesType = EmptyObject>(props: ResponsiveLayoutProps<T>): JSX.Element;
11
12
  export {};
@@ -40,4 +40,35 @@ class SomeComponent {
40
40
  }
41
41
  ```
42
42
 
43
+ В компонент можно передать проп `customMediaQueries: MediaQueriesType`, который позволяет кастомизировать возвращаемые флаги:
44
+ ```ts static
45
+ type MediaQueriesType = Record<string, string>;
46
+ ```
47
+ 1. Без кастомизации есть только флаг isMobile
48
+ 2. Поля из `customMediaQueries` дополняют список возвращаемых флагов в `ResponsiveLayoutFlags`
49
+ 3. При добавлении кастомного флага isMobile, значение дефолтного флага перезаписывается в пользу кастомного
50
+
51
+ ```jsx static
52
+ import { ResponsiveLayout } from '@skbkontur/react-ui';
53
+
54
+ const customMediaQueries = {
55
+ isTablet: '(min-width: 577px)',
56
+ isDesktop: '(min-width: 1280px)',
57
+ };
58
+
59
+ class SomeComponent {
60
+ public render() {
61
+ return (
62
+ <ResponsiveLayout customMediaQueries={customMediaQueries}>
63
+ {
64
+ ({ isMobile, isTablet, isDesktop }) => {
65
+ /* ... */
66
+ }
67
+ }
68
+ </ResponsiveLayout>
69
+ )
70
+ }
71
+ }
72
+ ```
73
+
43
74
  Как альтернативу можно использовать хук [useResponsiveLayout](#/Mobiles).