@skbkontur/react-ui 4.13.3-fix-use-global → 4.13.4-fix-tooltip-focus.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/cjs/components/Input/Input.d.ts +8 -4
- package/cjs/components/Input/Input.js +32 -6
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.md +49 -0
- package/cjs/components/Input/Input.styles.js +2 -1
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Toast/Toast.md +2 -2
- package/cjs/components/Tooltip/Tooltip.js +3 -3
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme.js +6 -5
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +1 -0
- package/cjs/internal/themes/DefaultTheme.js +4 -3
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/ModalStack.js +1 -0
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/net/fetch.js +4 -4
- package/cjs/lib/net/fetch.js.map +1 -1
- package/cjs/typings/global.d.ts +4 -0
- package/components/Input/Input/Input.js +18 -5
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +8 -4
- package/components/Input/Input.md +49 -0
- package/components/Input/Input.styles/Input.styles.js +1 -1
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Toast/Toast.md +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js +3 -3
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DarkTheme/DarkTheme.js +2 -3
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +1 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +5 -4
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +1 -0
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/net/fetch/fetch.js +2 -3
- package/lib/net/fetch/fetch.js.map +1 -1
- package/package.json +1 -1
- package/typings/global.d.ts +4 -0
package/cjs/lib/ModalStack.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","globalThat","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":";AACA
|
|
1
|
+
{"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","globalThat","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\nimport { globalThat } from './SSRSafe';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: readonly React.Component[]) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-expect-error: `remove` is method of `ModalStack`.\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = globalThat as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = <T>(componentName: string) => {\n return (instance: React.Component): instance is React.Component<T> => {\n const { constructor } = instance;\n\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-expect-error: React doesn't know about existence of __KONTUR_REACT_UI__.\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n };\n};\n\nconst isSidePage = isReactUIInstance<SidePageProps>('SidePage');\n\nconst isModal = isReactUIInstance<ModalProps>('Modal');\n"]}
|
package/cjs/lib/net/fetch.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.fetch = fetch;
|
|
1
|
+
"use strict";exports.__esModule = true;exports.fetch = fetch;var _SSRSafe = require("../SSRSafe");
|
|
2
|
+
|
|
3
|
+
|
|
2
4
|
|
|
3
5
|
|
|
4
6
|
|
|
@@ -34,9 +36,7 @@ function fetch(uri, options) {if (options === void 0) {options = {};}
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
function createXHR() {
|
|
37
|
-
|
|
38
|
-
if (global.XDomainRequest) {
|
|
39
|
-
// @ts-expect-error: Read the comment above.
|
|
39
|
+
if ('XDomainRequest' in _SSRSafe.globalThat) {
|
|
40
40
|
return new XDomainRequest();
|
|
41
41
|
}
|
|
42
42
|
return new XMLHttpRequest();
|
package/cjs/lib/net/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["fetch.ts"],"names":["fetch","uri","options","method","xhr","createXHR","promise","Promise","resolve","reject","onerror","ontimeout","onload","ok","status","statusText","text","responseText","json","JSON","parse","open","send","body","
|
|
1
|
+
{"version":3,"sources":["fetch.ts"],"names":["fetch","uri","options","method","xhr","createXHR","promise","Promise","resolve","reject","onerror","ontimeout","onload","ok","status","statusText","text","responseText","json","JSON","parse","open","send","body","globalThat","XDomainRequest","XMLHttpRequest"],"mappings":"6DAAA;;;;;;;;;;;;AAYO,SAASA,KAAT,CAAeC,GAAf,EAA4BC,OAA5B,EAA8F,KAAlEA,OAAkE,cAAlEA,OAAkE,GAAZ,EAAY;AACnG,MAAMC,MAAM,GAAGD,OAAO,CAACC,MAAR,IAAkB,KAAjC;AACA,MAAMC,GAAG,GAAGC,SAAS,EAArB;;AAEA,MAAMC,OAAO,GAAG,IAAIC,OAAJ,CAA6B,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAChEL,IAAAA,GAAG,CAACM,OAAJ,GAAcD,MAAd;AACAL,IAAAA,GAAG,CAACO,SAAJ,GAAgBF,MAAhB;;AAEAL,IAAAA,GAAG,CAACQ,MAAJ,GAAa,YAAM;AACjBJ,MAAAA,OAAO,CAAC;AACNK,QAAAA,EAAE,EAAET,GAAG,CAACU,MAAJ,IAAc,GAAd,IAAqBV,GAAG,CAACU,MAAJ,GAAa,GADhC;AAENA,QAAAA,MAAM,EAAEV,GAAG,CAACU,MAFN;AAGNC,QAAAA,UAAU,EAAEX,GAAG,CAACW,UAHV;AAINC,QAAAA,IAAI,EAAE,wBAAMT,OAAO,CAACC,OAAR,CAAgBJ,GAAG,CAACa,YAApB,CAAN,EAJA;AAKNC,QAAAA,IAAI,EAAE,wBAAMX,OAAO,CAACC,OAAR,CAAgBW,IAAI,CAACC,KAAL,CAAWhB,GAAG,CAACa,YAAf,CAAhB,CAAN,EALA,EAAD,CAAP;;AAOD,KARD;AASD,GAbe,CAAhB;;AAeAb,EAAAA,GAAG,CAACiB,IAAJ,CAASlB,MAAT,EAAiBF,GAAjB;AACAG,EAAAA,GAAG,CAACkB,IAAJ,CAASpB,OAAO,CAACqB,IAAjB;;AAEA,SAAOjB,OAAP;AACD;;AAED,SAASD,SAAT,GAAqB;AACnB,MAAI,oBAAoBmB,mBAAxB,EAAoC;AAClC,WAAO,IAAIC,cAAJ,EAAP;AACD;AACD,SAAO,IAAIC,cAAJ,EAAP;AACD","sourcesContent":["import { globalThat } from '../SSRSafe';\n\ninterface ApiResponseType {\n ok: boolean;\n status: number;\n statusText: string;\n text: () => Promise<string>;\n json: () => Promise<Record<string, any>>;\n}\n\ntype Result = Promise<ApiResponseType>;\n\nexport function fetch(uri: string, options: { method?: 'GET' | 'POST'; body?: string } = {}): Result {\n const method = options.method || 'GET';\n const xhr = createXHR();\n\n const promise = new Promise<ApiResponseType>((resolve, reject) => {\n xhr.onerror = reject;\n xhr.ontimeout = reject;\n\n xhr.onload = () => {\n resolve({\n ok: xhr.status >= 200 && xhr.status < 300,\n status: xhr.status,\n statusText: xhr.statusText,\n text: () => Promise.resolve(xhr.responseText),\n json: () => Promise.resolve(JSON.parse(xhr.responseText)),\n });\n };\n });\n\n xhr.open(method, uri);\n xhr.send(options.body);\n\n return promise;\n}\n\nfunction createXHR() {\n if ('XDomainRequest' in globalThat) {\n return new XDomainRequest();\n }\n return new XMLHttpRequest();\n}\n"]}
|
package/cjs/typings/global.d.ts
CHANGED
|
@@ -4,3 +4,7 @@ declare interface Window {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
declare var __RetailUiZIndexes: number[];
|
|
7
|
+
|
|
8
|
+
// XDomainRequest is IE-specific API, therefore it was removed from `lib.d.ts`
|
|
9
|
+
// See: https://github.com/Microsoft/TypeScript/issues/2927
|
|
10
|
+
declare var XDomainRequest: typeof XMLHttpRequest;
|
|
@@ -104,7 +104,8 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
104
104
|
borderless = props.borderless,
|
|
105
105
|
value = props.value,
|
|
106
106
|
align = props.align,
|
|
107
|
-
type = props.type,
|
|
107
|
+
_props$type = props.type,
|
|
108
|
+
type = _props$type === void 0 ? 'text' : _props$type,
|
|
108
109
|
mask = props.mask,
|
|
109
110
|
maskChar = props.maskChar,
|
|
110
111
|
alwaysShowMask = props.alwaysShowMask,
|
|
@@ -144,17 +145,19 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
144
145
|
textAlign: align
|
|
145
146
|
},
|
|
146
147
|
ref: _this.refInput,
|
|
147
|
-
type:
|
|
148
|
+
type: type,
|
|
148
149
|
placeholder: !_this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,
|
|
149
150
|
disabled: disabled,
|
|
150
151
|
'aria-describedby': ariaDescribedby
|
|
151
152
|
});
|
|
152
153
|
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
var typesDisallowedWithMask = ['number', 'date', 'time', 'hidden'];
|
|
155
|
+
var input = mask && !typesDisallowedWithMask.includes(type) ? _this.renderMaskedInput(inputProps, mask) : /*#__PURE__*/React.createElement('input', inputProps);
|
|
156
|
+
|
|
157
|
+
if (type === 'hidden') {
|
|
158
|
+
return input;
|
|
155
159
|
}
|
|
156
160
|
|
|
157
|
-
var input = mask ? _this.renderMaskedInput(inputProps, mask) : /*#__PURE__*/React.createElement('input', inputProps);
|
|
158
161
|
return /*#__PURE__*/React.createElement("label", _extends({
|
|
159
162
|
"data-tid": InputDataTids.root
|
|
160
163
|
}, labelProps), /*#__PURE__*/React.createElement("span", {
|
|
@@ -201,6 +204,14 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
201
204
|
|
|
202
205
|
if (_this.props.selectAllOnFocus) {
|
|
203
206
|
// https://github.com/facebook/react/issues/7769
|
|
207
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange
|
|
208
|
+
var allowedTypes = ['text', 'password', 'tel', 'search', 'url'];
|
|
209
|
+
var canBeSelected = !_this.props.type || _this.props.type && allowedTypes.includes(_this.props.type);
|
|
210
|
+
|
|
211
|
+
if (!canBeSelected) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
|
|
204
215
|
_this.input && !isIE11 ? _this.selectAll() : _this.delaySelectAll();
|
|
205
216
|
}
|
|
206
217
|
|
|
@@ -397,6 +408,8 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
397
408
|
});
|
|
398
409
|
}
|
|
399
410
|
/**
|
|
411
|
+
* Работает с типами `text`, `password`, `tel`, `search`, `url`
|
|
412
|
+
* [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
|
|
400
413
|
* @public
|
|
401
414
|
*/
|
|
402
415
|
;
|
|
@@ -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","ariaDescribedby","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":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport invariant from 'invariant';\nimport React, { AriaAttributes } 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 * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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 if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\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 'aria-describedby': ariaDescribedby,\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 'aria-describedby': ariaDescribedby,\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
|
+
{"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","ariaDescribedby","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","typesDisallowedWithMask","includes","renderMaskedInput","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","allowedTypes","canBeSelected","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":"qrBAAA;AACA;AACA,OAAOA,SAAP,MAAsB,WAAtB;AACA,OAAOC,KAAP,MAAsC,OAAtC;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqHSC,IAAAA,SArHT,GAqHqB,YAAY;AAC7B,UAAI,MAAKD,KAAT,EAAgB;AACd,cAAKE,iBAAL,CAAuB,CAAvB,EAA0B,MAAKF,KAAL,CAAWG,KAAX,CAAiBC,MAA3C;AACD;AACF,KAzHH;;AA2HUC,IAAAA,cA3HV,GA2H2B,oBAAe,MAAKP,WAAL,GAAmBtB,GAAG,CAAC,MAAKyB,SAAN,CAArC,EA3H3B;;AA6HUK,IAAAA,sBA7HV,GA6HmC,YAAY;AAC3C,UAAI,MAAKR,WAAT,EAAsB;AACpBtB,QAAAA,GAAG,CAAC+B,MAAJ,CAAW,MAAKT,WAAhB;AACA,cAAKA,WAAL,GAAmB,IAAnB;AACD;AACF,KAlIH;;AAoIUU,IAAAA,WApIV,GAoIwB,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,KAhJH;;AAkJUG,IAAAA,UAlJV,GAkJuB,UAACC,KAAD,EAA+C;AAClE;AACEC,MAAAA,YADF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BID,MAAAA,KA7BJ,CACEC,YADF,CAEEC,YAFF,GA6BIF,KA7BJ,CAEEE,YAFF,CAGEC,WAHF,GA6BIH,KA7BJ,CAGEG,WAHF,CAIEC,SAJF,GA6BIJ,KA7BJ,CAIEI,SAJF,CAKEC,UALF,GA6BIL,KA7BJ,CAKEK,UALF,CAMEC,aANF,GA6BIN,KA7BJ,CAMEM,aANF,CAOEC,KAPF,GA6BIP,KA7BJ,CAOEO,KAPF,CAQEC,KARF,GA6BIR,KA7BJ,CAQEQ,KARF,CASEC,OATF,GA6BIT,KA7BJ,CASES,OATF,CAUEC,QAVF,GA6BIV,KA7BJ,CAUEU,QAVF,CAWEC,SAXF,GA6BIX,KA7BJ,CAWEW,SAXF,CAYEC,UAZF,GA6BIZ,KA7BJ,CAYEY,UAZF,CAaEtB,KAbF,GA6BIU,KA7BJ,CAaEV,KAbF,CAcEuB,KAdF,GA6BIb,KA7BJ,CAcEa,KAdF,eA6BIb,KA7BJ,CAeEc,IAfF,CAeEA,IAfF,4BAeS,MAfT,eAgBEC,IAhBF,GA6BIf,KA7BJ,CAgBEe,IAhBF,CAiBEC,QAjBF,GA6BIhB,KA7BJ,CAiBEgB,QAjBF,CAkBEC,cAlBF,GA6BIjB,KA7BJ,CAkBEiB,cAlBF,CAmBEC,IAnBF,GA6BIlB,KA7BJ,CAmBEkB,IAnBF,CAoBEC,WApBF,GA6BInB,KA7BJ,CAoBEmB,WApBF,CAqBEC,gBArBF,GA6BIpB,KA7BJ,CAqBEoB,gBArBF,CAsBEC,QAtBF,GA6BIrB,KA7BJ,CAsBEqB,QAtBF,CAuBEC,iBAvBF,GA6BItB,KA7BJ,CAuBEsB,iBAvBF,CAwBEC,MAxBF,GA6BIvB,KA7BJ,CAwBEuB,MAxBF,CAyBEC,MAzBF,GA6BIxB,KA7BJ,CAyBEwB,MAzBF,CA0BEC,WA1BF,GA6BIzB,KA7BJ,CA0BEyB,WA1BF,CA2BsBC,eA3BtB,GA6BI1B,KA7BJ,CA2BE,kBA3BF,EA4BK2B,IA5BL,iCA6BI3B,KA7BJ;;AA+BA,wBAA8B,MAAKlB,KAAnC,CAAQC,QAAR,eAAQA,QAAR,CAAkBC,OAAlB,eAAkBA,OAAlB;;AAEA,UAAM4C,UAAU,GAAG;AACjBC,QAAAA,SAAS,EAAExD,EAAE,CAACG,MAAM,CAACE,IAAP,CAAY,MAAKoD,KAAjB,CAAD,EAA0B,MAAKC,gBAAL,EAA1B;AACVvD,QAAAA,MAAM,CAACwD,KAAP,CAAa,MAAKF,KAAlB,CADU,IACiB9C,OADjB;AAEVR,QAAAA,MAAM,CAACyD,KAAP,CAAa,MAAKH,KAAlB,CAFU,IAEiB/C,QAFjB;AAGVP,QAAAA,MAAM,CAACoC,UAAP,EAHU,IAGYA,UAAU,IAAI,CAAC5B,OAH3B;AAIVR,QAAAA,MAAM,CAAC6C,QAAP,CAAgB,MAAKS,KAArB,CAJU,IAIoBT,QAJpB;AAKV7C,QAAAA,MAAM,CAACiC,OAAP,CAAe,MAAKqB,KAApB,CALU,IAKmBrB,OALnB;AAMVjC,QAAAA,MAAM,CAACgC,KAAP,CAAa,MAAKsB,KAAlB,CANU,IAMiBtB,KANjB;AAOVhC,QAAAA,MAAM,CAAC0D,aAAP,CAAqB,MAAKJ,KAA1B,CAPU,IAOyB9C,OAAO,KAAKpB,MAAM,IAAIC,MAAf,CAPhC;AAQVW,QAAAA,MAAM,CAAC2D,eAAP,CAAuB,MAAKL,KAA5B,CARU,IAQ2BrB,OAAO,KAAK7C,MAAM,IAAIC,MAAf,CARlC;AASVW,QAAAA,MAAM,CAAC4D,aAAP,CAAqB,MAAKN,KAA1B,CATU,IASyBtB,KAAK,KAAK5C,MAAM,IAAIC,MAAf,CAT9B,OADI;;AAYjBwE,QAAAA,KAAK,EAAE,EAAE9B,KAAK,EAALA,KAAF,EAZU;AAajBN,QAAAA,YAAY,EAAZA,YAbiB;AAcjBC,QAAAA,YAAY,EAAZA,YAdiB;AAejBC,QAAAA,WAAW,EAAXA,WAfiB,EAAnB;;;AAkBA,UAAMmC,UAAU;AACXX,MAAAA,IADW;AAEdE,QAAAA,SAAS,EAAExD,EAAE,CAACG,MAAM,CAACW,KAAP,CAAa,MAAK2C,KAAlB,CAAD;AACVtD,QAAAA,MAAM,CAAC+D,UAAP,CAAkB,MAAKT,KAAvB,CADU,IACsB9C,OADtB;AAEVR,QAAAA,MAAM,CAACgE,aAAP,CAAqB,MAAKV,KAA1B,CAFU,IAEyBT,QAFzB,QAFC;;AAMd/B,QAAAA,KAAK,EAALA,KANc;AAOdmD,QAAAA,QAAQ,EAAE,MAAKC,YAPD;AAQdC,QAAAA,OAAO,EAAE,MAAKC,WARA;AASdxC,QAAAA,SAAS,EAAE,MAAKyC,aATF;AAUdxC,QAAAA,UAAU,EAAE,MAAKyC,cAVH;AAWdC,QAAAA,MAAM,EAAE,MAAKC,UAXC;AAYdX,QAAAA,KAAK,EAAE,EAAEY,SAAS,EAAEpC,KAAb,EAZO;AAadqC,QAAAA,GAAG,EAAE,MAAKC,QAbI;AAcdrC,QAAAA,IAAI,EAAJA,IAdc;AAedK,QAAAA,WAAW,EAAE,CAAC,MAAKiC,aAAN,IAAuB,CAACnF,wBAAxB,GAAmDkD,WAAnD,GAAiEkC,SAfhE;AAgBdhC,QAAAA,QAAQ,EAARA,QAhBc;AAiBd,4BAAoBK,eAjBN,GAAhB;;;AAoBA,UAAM4B,uBAAoC,GAAG,CAAC,QAAD,EAAW,MAAX,EAAmB,MAAnB,EAA2B,QAA3B,CAA7C;AACA,UAAMnE,KAAK;AACT4B,MAAAA,IAAI,IAAI,CAACuC,uBAAuB,CAACC,QAAxB,CAAiCzC,IAAjC,CAAT;AACI,YAAK0C,iBAAL,CAAuBlB,UAAvB,EAAmCvB,IAAnC,CADJ;AAEIrD,MAAAA,KAAK,CAAC+F,aAAN,CAAoB,OAApB,EAA6BnB,UAA7B,CAHN;;AAKA,UAAIxB,IAAI,KAAK,QAAb,EAAuB;AACrB,eAAO3B,KAAP;AACD;;AAED;AACE,gDAAO,YAAUV,aAAa,CAACC,IAA/B,IAAyCkD,UAAzC;AACE,sCAAM,SAAS,EAAEpD,MAAM,CAACkF,aAAP,EAAjB;AACG,cAAKC,cAAL,EADH;AAEG,cAAKC,YAAL,EAFH,CADF;;AAKE,sCAAM,SAAS,EAAEpF,MAAM,CAACqF,OAAP,EAAjB;AACG1E,QAAAA,KADH;AAEG,cAAK2E,iBAAL,EAFH,CALF;;AASE,sCAAM,SAAS,EAAEzF,EAAE,CAACG,MAAM,CAACkF,aAAP,EAAD,EAAyBlF,MAAM,CAACuF,cAAP,EAAzB,CAAnB;AACG,cAAKC,YAAL,EADH;AAEG,cAAKC,eAAL,EAFH,CATF,CADF;;;;AAgBD,KApPH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkWUd,IAAAA,QAlWV,GAkWqB,UAACe,OAAD,EAAoD;AACrE,UAAIA,OAAO,YAAYhG,WAAvB,EAAoC;AAClC,cAAKiB,KAAL,GAAa+E,OAAO,CAAC/E,KAArB;AACD,OAFD,MAEO;AACL,cAAKA,KAAL,GAAa+E,OAAb;AACD;AACF,KAxWH;;AA0WUxB,IAAAA,YA1WV,GA0WyB,UAACyB,KAAD,EAAgD;AACrE,UAAIlG,wBAAJ,EAA8B;AAC5B,YAAMmG,YAAY,GAAGD,KAAK,CAACE,MAAN,CAAa/E,KAAb,KAAuB,EAA5C;AACA,YAAI,MAAKR,KAAL,CAAWb,wBAAX,KAAwCmG,YAA5C,EAA0D;AACxD,gBAAKtE,QAAL,CAAc,EAAE7B,wBAAwB,EAAEmG,YAA5B,EAAd;AACD;AACF;;AAED,UAAI,MAAKpE,KAAL,CAAWM,aAAf,EAA8B;AAC5B,cAAKN,KAAL,CAAWM,aAAX,CAAyB6D,KAAK,CAACE,MAAN,CAAa/E,KAAtC;AACD;;AAED,UAAI,MAAKU,KAAL,CAAWyC,QAAf,EAAyB;AACvB,cAAKzC,KAAL,CAAWyC,QAAX,CAAoB0B,KAApB;AACD;AACF,KAzXH;;AA2XUvB,IAAAA,WA3XV,GA2XwB,UAACuB,KAAD,EAA+C;AACnE,YAAKrE,QAAL,CAAc;AACZd,QAAAA,OAAO,EAAE,IADG,EAAd;;;AAIA,UAAI,MAAKgB,KAAL,CAAWoB,gBAAf,EAAiC;AAC/B;AACA;AACA,YAAMkD,YAAyB,GAAG,CAAC,MAAD,EAAS,UAAT,EAAqB,KAArB,EAA4B,QAA5B,EAAsC,KAAtC,CAAlC;AACA,YAAMC,aAAa,GAAG,CAAC,MAAKvE,KAAL,CAAWc,IAAZ,IAAqB,MAAKd,KAAL,CAAWc,IAAX,IAAmBwD,YAAY,CAACf,QAAb,CAAsB,MAAKvD,KAAL,CAAWc,IAAjC,CAA9D;AACA,YAAI,CAACyD,aAAL,EAAoB;AAClB;AACD;AACD,cAAKpF,KAAL,IAAc,CAACvB,MAAf,GAAwB,MAAKwB,SAAL,EAAxB,GAA2C,MAAKI,cAAL,EAA3C;AACD;;AAED,UAAI,MAAKQ,KAAL,CAAW2C,OAAf,EAAwB;AACtB,cAAK3C,KAAL,CAAW2C,OAAX,CAAmBwB,KAAnB;AACD;AACF,KA9YH;;AAgZUtB,IAAAA,aAhZV,GAgZ0B,UAAC2B,CAAD,EAA8C;AACpE,UAAI,MAAKxE,KAAL,CAAWI,SAAf,EAA0B;AACxB,cAAKJ,KAAL,CAAWI,SAAX,CAAqBoE,CAArB;AACD;;AAED,UAAMC,WAAW,GAAGzG,QAAQ,CAACF,cAAD,EAAiBC,WAAjB,CAAR,CAAsCyG,CAAtC,CAApB;;AAEA,UAAI,CAACA,CAAC,CAACE,aAAF,CAAgBpF,KAAjB,IAA0BmF,WAA1B,IAAyC,CAACD,CAAC,CAACG,MAAhD,EAAwD;AACtD,cAAKC,qBAAL;AACD;AACF,KA1ZH;;AA4ZU9B,IAAAA,cA5ZV,GA4Z2B,UAACqB,KAAD,EAAkD;AACzE,UAAI,MAAKnE,KAAL,CAAWK,UAAf,EAA2B;AACzB,cAAKL,KAAL,CAAWK,UAAX,CAAsB8D,KAAtB;AACD;;AAED,UAAI,MAAKnE,KAAL,CAAW6E,SAAX,KAAyBV,KAAK,CAACO,aAAN,CAAoBpF,KAApB,CAA0BC,MAAvD,EAA+D;AAC7D,cAAKqF,qBAAL,CAA2BT,KAAK,CAACO,aAAN,CAAoBpF,KAA/C;AACD;AACF,KApaH;;AAsaUwF,IAAAA,uBAtaV,GAsaoC,UAACxF,KAAD,EAAmB;AACnD,UAAI,MAAKU,KAAL,CAAWM,aAAf,EAA8B;AAC5B,cAAKN,KAAL,CAAWM,aAAX,CAAyBhB,KAAzB;AACD;AACF,KA1aH;;AA4aUsF,IAAAA,qBA5aV,GA4akC,UAACtF,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,cAAK2C,KAAL;AACD;AACF,KAlbH;;AAobUe,IAAAA,UApbV,GAobuB,UAACmB,KAAD,EAA+C;AAClE,YAAKrE,QAAL,CAAc,EAAEd,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKgB,KAAL,CAAW+C,MAAf,EAAuB;AACrB,cAAK/C,KAAL,CAAW+C,MAAX,CAAkBoB,KAAlB;AACD;AACF,KA1bH;;AA4bUP,IAAAA,YA5bV,GA4byB,YAAM;AAC3B,wBAA6B,MAAK5D,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,MAAKO,KAAnB,CAAD,mBAA+BtD,MAAM,CAACuG,cAAP,CAAsB,MAAKjD,KAA3B,CAA/B,IAAmET,QAAnE,QAAnB,IAAoGE,MAApG,CADF;;AAGD,KAtcH;;AAwcUyC,IAAAA,YAxcV,GAwcyB,YAAM;AAC3B,yBAA6B,MAAKhE,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,MAAKM,KAAnB,CAAD,mBAA+BtD,MAAM,CAACwG,cAAP,CAAsB,MAAKlD,KAA3B,CAA/B,IAAmET,QAAnE,QAAnB,IAAoGG,MAApG,CADF;;AAGD,KAldH,mDAqBSyD,oBArBT,GAqBE,gCAA8B,CAC5B,IAAI,KAAK/F,YAAT,EAAuB,CACrBW,YAAY,CAAC,KAAKX,YAAN,CAAZ,CACD,CACD,KAAKO,sBAAL,GACD,CA1BH,CA4BE;AACF;AACA,KA9BA,QA+BSuC,KA/BT,GA+BE,iBAAe,CACbvE,SAAS,CAAC,KAAK0B,KAAN,EAAa,kDAAb,CAAT,CACA,KAAKA,KAAL,CAAW6C,KAAX,GACD,CAlCH,CAoCE;AACF;AACA,KAtCA,QAuCSkD,IAvCT,GAuCE,gBAAc,CACZzH,SAAS,CAAC,KAAK0B,KAAN,EAAa,iDAAb,CAAT,CACA,KAAKA,KAAL,CAAW+F,IAAX,GACD,CA1CH,CA4CE;AACF;AACA,KA9CA,QA+CSC,OA/CT,GA+CE,mBAAiB,CACf,OAAO,KAAKhG,KAAZ,CACD,CAjDH,CAmDE;AACF;AACA,KArDA,QAsDS8C,KAtDT,GAsDE,iBAAe,mBACb,IAAI,KAAK/C,YAAT,EAAuB,CACrB,KAAKS,WAAL,CAAiB,YAAM,CACrB;AACA;AACA,cAAM,MAAI,CAACR,KAAL,IAAc,MAAI,CAACA,KAAL,CAAWiG,WAA/B,EACA,MAAI,CAACnD,KAAL,GACD,CALD,EAMA,OACD,CACD,KAAKnC,QAAL,CAAc,EAAEf,QAAQ,EAAE,IAAZ,EAAd,EAAkC,YAAM,CACtC,MAAI,CAACG,YAAL,GAAoBmG,MAAM,CAACC,UAAP,CAAkB,MAAI,CAAC3F,WAAvB,EAAoC,GAApC,CAApB,CACD,CAFD,EAGD,CAnEH,CAqEE;AACF;AACA;AACA;AACA,KAzEA,QA0ESN,iBA1ET,GA0EE,2BAAyBkG,KAAzB,EAAwCC,GAAxC,EAAqD,qCACnD,IAAI,CAAC,KAAKrG,KAAV,EAAiB,CACf,MAAM,IAAIsG,KAAJ,CAAU,oDAAV,CAAN,CACD,CAED,IAAIC,QAAQ,CAACC,aAAT,KAA2B,KAAKxG,KAApC,EAA2C,CACzC,KAAK6C,KAAL,GACD,CACD,IAAI,KAAKhC,KAAL,CAAWe,IAAX,IAAmB,KAAKf,KAAL,CAAWV,KAA9B,IAAuC,2BAAKU,KAAL,CAAWV,KAAX,uCAAkBC,MAAlB,IAA2B,KAAKS,KAAL,CAAWe,IAAX,CAAgBxB,MAAtF,EAA8F,CAC5F+F,UAAU,CAAC,YAAM,kBACf,gBAAA,MAAI,CAACnG,KAAL,kCAAYE,iBAAZ,CAA8BkG,KAA9B,EAAqCC,GAArC,EACD,CAFS,EAEP,GAFO,CAAV,CAGD,CAJD,MAIO,iBACL,oBAAKrG,KAAL,iCAAYE,iBAAZ,CAA8BkG,KAA9B,EAAqCC,GAArC,EACD,CACF,CAzFH,QAiGSI,MAjGT,GAiGE,kBAA6B,mBAC3B,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAAC9D,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAAC+D,WAAjC,IAAkD,MAAI,CAAC7F,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,CA9GH,CAgHE;AACF;AACA;AACA;AACA,KApHA,QAsPUyD,iBAtPV,GAsPE,2BACElB,UADF,EAIEvB,IAJF,EAKE,CACA,oBACE,oBAAC,WAAD,eACMuB,UADN,IAEE,IAAI,EAAEvB,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,CAAWyC,QANvB,EAOE,aAAa,EAAE,KAAKqC,uBAPtB,EAQE,iBAAiB,EAAE,KAAKF,qBAR1B,IADF,CAYD,CAxQH,QA0QUkB,oBA1QV,GA0QE,8BAA6BC,KAA7B,EAA4C,KAAfA,KAAe,cAAfA,KAAe,GAAP,KAAO,EAC1C,QAAQ,KAAKnH,QAAL,GAAgBsC,IAAxB,GACE,KAAK,OAAL,CACE,OAAO6E,KAAK,GAAGvH,MAAM,CAACwH,cAAP,CAAsB,KAAKlE,KAA3B,CAAH,GAAuCtD,MAAM,CAACyH,aAAP,CAAqB,KAAKnE,KAA1B,CAAnD,CACF,KAAK,QAAL,CACE,OAAOiE,KAAK,GAAGvH,MAAM,CAAC0H,eAAP,CAAuB,KAAKpE,KAA5B,CAAH,GAAwCtD,MAAM,CAAC2H,cAAP,CAAsB,KAAKrE,KAA3B,CAApD,CACF,KAAK,OAAL,CACA,QACE,OAAOiE,KAAK,GAAGvH,MAAM,CAAC4H,cAAP,CAAsB,KAAKtE,KAA3B,CAAH,GAAuCtD,MAAM,CAAC6H,aAAP,CAAqB,KAAKvE,KAA1B,CAAnD,CAPJ,CASD,CApRH,QAsRU6B,cAtRV,GAsRE,0BAAyB,CACvB,OAAO,KAAK2C,UAAL,CAAgB,KAAKtG,KAAL,CAAWU,QAA3B,EAAqC,KAAKoF,oBAAL,EAArC,CAAP,CACD,CAxRH,QA0RU7B,eA1RV,GA0RE,2BAA0B,CACxB,OAAO,KAAKqC,UAAL,CAAgB,KAAKtG,KAAL,CAAWW,SAA3B,EAAsC,KAAKmF,oBAAL,CAA0B,IAA1B,CAAtC,CAAP,CACD,CA5RH,QA8RUQ,UA9RV,GA8RE,oBAAmBC,IAAnB,EAAwCC,aAAxC,EAA+D,UAC7D,IAAI,CAACD,IAAL,EAAW,CACT,OAAO,IAAP,CACD,CACD,IAAQlF,QAAR,GAAqB,KAAKrB,KAA1B,CAAQqB,QAAR,CACA,IAAMoF,QAAQ,GAAGF,IAAI,YAAYG,QAAhB,GAA2BH,IAAI,EAA/B,GAAoCA,IAArD,CAEA,oBACE,8BACE,SAAS,EAAElI,EAAE,CAACG,MAAM,CAAC+H,IAAP,EAAD,EAAgBC,aAAhB,EAA+BhI,MAAM,CAACmI,eAAP,CAAuB,KAAK7E,KAA5B,CAA/B,mBACVtD,MAAM,CAACoI,SAAP,CAAiB,KAAK9E,KAAtB,CADU,IACqB,KAAKhD,KAAL,CAAWE,OADhC,OAEVR,MAAM,CAACqI,YAAP,EAFU,IAEcxF,QAFd,QADf,IAMGoF,QANH,CADF,CAUD,CA/SH,QAiTU3C,iBAjTV,GAiTE,6BAA4B,CAC1B,IAAQzC,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,KAAKiC,aAFN,IAGA,CAAC,KAAKpD,KAAL,CAAWV,KAHZ,IAIA,CAAC,KAAKU,KAAL,CAAW8G,YALd,EAME,UACA3F,WAAW,gBACT,6BACE,SAAS,EAAE9C,EAAE,CAACG,MAAM,CAAC2C,WAAP,CAAmB,KAAKW,KAAxB,CAAD,mBACVtD,MAAM,CAACuI,mBAAP,CAA2B,KAAKjF,KAAhC,CADU,IAC+BT,QAD/B,OAEV7C,MAAM,CAACwI,gBAAP,CAAwB,KAAKlF,KAA7B,CAFU,IAE4B9C,OAF5B,QADf,EAKE,KAAK,EAAE,EAAEiE,SAAS,EAAE,KAAKjD,KAAL,CAAWa,KAAX,IAAoB,SAAjC,EALT,IAOG,KAAKb,KAAL,CAAWmB,WAPd,CADF,CAWD,CAED,OAAOA,WAAP,CACD,CA3UH,QA6UUY,gBA7UV,GA6UE,4BAA2B,sBACzB,QAAQ,KAAKnD,QAAL,GAAgBsC,IAAxB,GACE,KAAK,OAAL,CACE,OAAO7C,EAAE,kBACNG,MAAM,CAACyI,SAAP,CAAiB,KAAKnF,KAAtB,CADM,IACyB,IADzB,OAENtD,MAAM,CAAC0I,iBAAP,CAAyB,KAAKpF,KAA9B,CAFM,IAEiClE,MAAM,IAAIC,MAF3C,QAAT,CAIF,KAAK,QAAL,CACE,OAAOQ,EAAE,kBACNG,MAAM,CAAC2I,UAAP,CAAkB,KAAKrF,KAAvB,CADM,IAC0B,IAD1B,OAENtD,MAAM,CAAC4I,kBAAP,CAA0B,KAAKtF,KAA/B,CAFM,IAEkClE,MAAM,IAAIC,MAF5C,QAAT,CAIF,KAAK,OAAL,CACA,QACE,OAAOQ,EAAE,kBACNG,MAAM,CAAC6I,SAAP,CAAiB,KAAKvF,KAAtB,CADM,IACyB,IADzB,OAENtD,MAAM,CAAC8I,iBAAP,CAAyB,KAAKxF,KAA9B,CAFM,IAEiClE,MAAM,IAAIC,MAF3C,QAAT,CAbJ,CAkBD,CAhWH,mDA2FE,eAAoC,CAClC,mBAAiC,KAAKmC,KAAtC,CAAQe,IAAR,gBAAQA,IAAR,CAAcE,cAAd,gBAAcA,cAAd,CACA,IAAQjC,OAAR,GAAoB,KAAKF,KAAzB,CAAQE,OAAR,CACA,OAAOuI,OAAO,CAACxG,IAAI,KAAK/B,OAAO,IAAIiC,cAAhB,CAAL,CAAd,CACD,CA/FH,oBAA2BvD,KAAK,CAAC8J,SAAjC,WACgBC,mBADhB,GACsC,OADtC,UAGgB5I,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, { AriaAttributes } 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 =\n | 'password'\n | 'text'\n | 'number'\n | 'tel'\n | 'search'\n | 'time'\n | 'date'\n | 'url'\n | 'email'\n | 'hidden';\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 /** Паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url` */\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 * Тип. Возможные значения: 'password' | 'text' | 'number' | 'tel' | 'search' | 'time' | 'date' | 'url' | 'email' | 'hidden'\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 /** Выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n /**\n * Атрибут для указания id элемента(-ов), описывающих его\n */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\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 if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\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 * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\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 = 'text',\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n 'aria-describedby': ariaDescribedby,\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,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n };\n\n const typesDisallowedWithMask: InputType[] = ['number', 'date', 'time', 'hidden'];\n const input =\n mask && !typesDisallowedWithMask.includes(type)\n ? this.renderMaskedInput(inputProps, mask)\n : React.createElement('input', inputProps);\n\n if (type === 'hidden') {\n return input;\n }\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 // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n const allowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\n const canBeSelected = !this.props.type || (this.props.type && allowedTypes.includes(this.props.type));\n if (!canBeSelected) {\n return;\n }\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"]}
|
|
@@ -3,7 +3,7 @@ import { Nullable, Override } from '../../typings/utility-types';
|
|
|
3
3
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
4
4
|
export declare type InputSize = 'small' | 'medium' | 'large';
|
|
5
5
|
export declare type InputAlign = 'left' | 'center' | 'right';
|
|
6
|
-
export declare type InputType = 'password' | 'text';
|
|
6
|
+
export declare type InputType = 'password' | 'text' | 'number' | 'tel' | 'search' | 'time' | 'date' | 'url' | 'email' | 'hidden';
|
|
7
7
|
export declare type InputIconType = React.ReactNode | (() => React.ReactNode);
|
|
8
8
|
export interface InputProps extends CommonProps, Override<React.InputHTMLAttributes<HTMLInputElement>, {
|
|
9
9
|
/**
|
|
@@ -30,7 +30,7 @@ export interface InputProps extends CommonProps, Override<React.InputHTMLAttribu
|
|
|
30
30
|
borderless?: boolean;
|
|
31
31
|
/** Выравнивание текста */
|
|
32
32
|
align?: InputAlign;
|
|
33
|
-
/** Паттерн
|
|
33
|
+
/** Паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url` */
|
|
34
34
|
mask?: Nullable<string>;
|
|
35
35
|
/** Символ маски */
|
|
36
36
|
maskChar?: Nullable<string>;
|
|
@@ -51,7 +51,9 @@ export interface InputProps extends CommonProps, Override<React.InputHTMLAttribu
|
|
|
51
51
|
onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;
|
|
52
52
|
/** Вызывается на label */
|
|
53
53
|
onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
|
|
54
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Тип. Возможные значения: 'password' | 'text' | 'number' | 'tel' | 'search' | 'time' | 'date' | 'url' | 'email' | 'hidden'
|
|
56
|
+
* */
|
|
55
57
|
type?: InputType;
|
|
56
58
|
/** Значение */
|
|
57
59
|
value?: string;
|
|
@@ -66,7 +68,7 @@ export interface InputProps extends CommonProps, Override<React.InputHTMLAttribu
|
|
|
66
68
|
* `ReactNode` после значения, но перед правой иконкой
|
|
67
69
|
*/
|
|
68
70
|
suffix?: React.ReactNode;
|
|
69
|
-
/** Выделять введенное значение при
|
|
71
|
+
/** Выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */
|
|
70
72
|
selectAllOnFocus?: boolean;
|
|
71
73
|
/**
|
|
72
74
|
* Обработчик неправильного ввода.
|
|
@@ -133,6 +135,8 @@ export declare class Input extends React.Component<InputProps, InputState> {
|
|
|
133
135
|
get isMaskVisible(): boolean;
|
|
134
136
|
render(): JSX.Element;
|
|
135
137
|
/**
|
|
138
|
+
* Работает с типами `text`, `password`, `tel`, `search`, `url`
|
|
139
|
+
* [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)
|
|
136
140
|
* @public
|
|
137
141
|
*/
|
|
138
142
|
selectAll: () => void;
|
|
@@ -5,6 +5,7 @@ import SearchIcon from '@skbkontur/react-icons/Search';
|
|
|
5
5
|
```
|
|
6
6
|
|
|
7
7
|
Очистить значение в `Input`'е можно только с помощью пустой строки
|
|
8
|
+
|
|
8
9
|
```jsx harmony
|
|
9
10
|
import { Button, Group } from '@skbkontur/react-ui';
|
|
10
11
|
|
|
@@ -27,3 +28,51 @@ import SearchIcon from '@skbkontur/react-icons/Search';
|
|
|
27
28
|
rightIcon={<SearchIcon />}
|
|
28
29
|
/>;
|
|
29
30
|
```
|
|
31
|
+
|
|
32
|
+
Примеры разных значений `type`:
|
|
33
|
+
|
|
34
|
+
```jsx harmony
|
|
35
|
+
import { Gapped, Input, Tooltip } from '@skbkontur/react-ui';
|
|
36
|
+
|
|
37
|
+
<Gapped vertical gap={20}>
|
|
38
|
+
<Gapped gap={20}>
|
|
39
|
+
<Input type="password" />
|
|
40
|
+
<span>type = "password"</span>
|
|
41
|
+
</Gapped>
|
|
42
|
+
|
|
43
|
+
<Gapped gap={20}>
|
|
44
|
+
<Input type="number" />
|
|
45
|
+
<span>type = "number"</span>
|
|
46
|
+
</Gapped>
|
|
47
|
+
|
|
48
|
+
<Gapped gap={20}>
|
|
49
|
+
<Input type="tel" />
|
|
50
|
+
<span>type = "tel"</span>
|
|
51
|
+
</Gapped>
|
|
52
|
+
|
|
53
|
+
<Gapped gap={20}>
|
|
54
|
+
<Input type="search" />
|
|
55
|
+
<span>type = "search"</span>
|
|
56
|
+
</Gapped>
|
|
57
|
+
|
|
58
|
+
<Gapped gap={20}>
|
|
59
|
+
<Input type="time" />
|
|
60
|
+
<span>type = "time"</span>
|
|
61
|
+
</Gapped>
|
|
62
|
+
|
|
63
|
+
<Gapped gap={20}>
|
|
64
|
+
<Input type="date" />
|
|
65
|
+
<span>type = "date"</span>
|
|
66
|
+
</Gapped>
|
|
67
|
+
|
|
68
|
+
<Gapped gap={20}>
|
|
69
|
+
<Input type="url" />
|
|
70
|
+
<span>type = "url"</span>
|
|
71
|
+
</Gapped>
|
|
72
|
+
|
|
73
|
+
<Gapped gap={20}>
|
|
74
|
+
<Input type="email" />
|
|
75
|
+
<span>type = "email"</span>
|
|
76
|
+
</Gapped>
|
|
77
|
+
</Gapped>
|
|
78
|
+
```
|
|
@@ -39,7 +39,7 @@ export var styles = memoizeStyle({
|
|
|
39
39
|
return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.inputPlaceholderColorDisabled);
|
|
40
40
|
},
|
|
41
41
|
input: function input(t) {
|
|
42
|
-
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ", ";\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: ", ";\n }\n &::-moz-placeholder {\n color: ", ";\n }\n &::placeholder {\n color: ", ";\n }\n "])), t.inputTextColor, t.inputPlaceholderColor, t.inputPlaceholderColor, t.inputPlaceholderColor);
|
|
42
|
+
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n -webkit-appearance: none;\n background: transparent;\n border: 0 none;\n color: ", ";\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 color-scheme: ", ";\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: ", ";\n }\n &::-moz-placeholder {\n color: ", ";\n }\n &::placeholder {\n color: ", ";\n }\n "])), t.inputTextColor, t.inputColorScheme, t.inputPlaceholderColor, t.inputPlaceholderColor, t.inputPlaceholderColor);
|
|
43
43
|
},
|
|
44
44
|
inputFocus: function inputFocus(t) {
|
|
45
45
|
return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n &:-moz-placeholder {\n color: ", ";\n }\n &::-moz-placeholder {\n color: ", ";\n }\n &::placeholder {\n color: ", ";\n }\n "])), t.inputPlaceholderColorLight, t.inputPlaceholderColorLight, t.inputPlaceholderColorLight);
|
|
@@ -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","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":"o2BAAA,SAASA,GAAT,EAAcC,SAAd,EAAyBC,YAAzB,QAA6C,2BAA7C;;AAEA,SAASC,KAAT,QAAsB,qCAAtB;AACA,SAASC,SAAT,QAA0B,yBAA1B;;AAEA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,sBAAD;AACjCC,IAAAA,OAAO,CAACC,QAAQ,CAACF,sBAAD,CAAT,CAD0B,GAAnC;;AAGA,OAAO,IAAMG,MAAM,GAAGP,YAAY,CAAC;AACjCQ,EAAAA,OADiC,qBACvB;AACR,WAAOV,GAAP;;;;;;;;;;;;;;;;;AAiBD,GAnBgC;;AAqBjCW,EAAAA,IArBiC,gBAqB5BC,CArB4B,EAqBlB;AACb,WAAOZ,GAAP;AACII,IAAAA,SAAS,EADb;;;;AAKsBQ,IAAAA,CAAC,CAACC,OALxB;AAMYD,IAAAA,CAAC,CAACE,gBANd,EAMwCF,CAAC,CAACG,gBAN1C;AAOsBH,IAAAA,CAAC,CAACI,mBAPxB;AAQgBJ,IAAAA,CAAC,CAACK,WARlB;;AAUWL,IAAAA,CAAC,CAACM,UAVb;;;;;AAeWN,IAAAA,CAAC,CAACO,UAfb;;;;;;AAqBD,GA3CgC;;AA6CjCC,EAAAA,UA7CiC,wBA6CpB;AACX,WAAOpB,GAAP;;;;AAID,GAlDgC;;AAoDjCqB,EAAAA,eApDiC,2BAoDjBT,CApDiB,EAoDP;AACxB,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACU,cADb;;AAGD,GAxDgC;;AA0DjCC,EAAAA,KA1DiC,iBA0D3BX,CA1D2B,EA0DjB;AACd,WAAOZ,GAAP;AACsBY,IAAAA,CAAC,CAACY,cADxB;AAEkBZ,IAAAA,CAAC,CAACa,qBAFpB;AAGgBb,IAAAA,CAAC,CAACc,gBAHlB;;;;AAOD,GAlEgC;;AAoEjCC,EAAAA,aApEiC,yBAoEnBf,CApEmB,EAoET;AACtB,WAAOZ,GAAP;;AAEaY,IAAAA,CAAC,CAACgB,iBAFf,EAE0ChB,CAAC,CAACiB,iBAF5C;;AAID,GAzEgC;;AA2EjCC,EAAAA,WA3EiC,uBA2ErBlB,CA3EqB,EA2EX;AACpB,WAAOZ,GAAP;;AAEWY,IAAAA,CAAC,CAACmB,qBAFb;;;;;;;;;;;;;AAeD,GA3FgC;;AA6FjCC,EAAAA,gBA7FiC,4BA6FhBpB,CA7FgB,EA6FN;AACzB,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACqB,0BADb;;AAGD,GAjGgC;;AAmGjCC,EAAAA,mBAnGiC,+BAmGbtB,CAnGa,EAmGH;AAC5B,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACuB,6BADb;;AAGD,GAvGgC;;AAyGjCC,EAAAA,KAzGiC,iBAyG3BxB,CAzG2B,EAyGjB;AACd,WAAOZ,GAAP;;;;AAIWY,IAAAA,CAAC,CAACyB,cAJb;;;;;;;;;;;;;;;;;;;;AAwBazB,IAAAA,CAAC,CAACmB,qBAxBf;;;AA2BanB,IAAAA,CAAC,CAACmB,qBA3Bf;;;AA8BanB,IAAAA,CAAC,CAACmB,qBA9Bf;;;AAiCD,GA3IgC;;AA6IjCO,EAAAA,UA7IiC,sBA6ItB1B,CA7IsB,EA6IZ;AACnB,WAAOZ,GAAP;;AAEaY,IAAAA,CAAC,CAACqB,0BAFf;;;AAKarB,IAAAA,CAAC,CAACqB,0BALf;;;AAQarB,IAAAA,CAAC,CAACqB,0BARf;;;AAWD,GAzJgC;;AA2JjCM,EAAAA,aA3JiC,yBA2JnB3B,CA3JmB,EA2JT;AACtB,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAAC4B,sBADb;;AAG6B5B,IAAAA,CAAC,CAAC4B,sBAH/B;;;AAM+B5B,IAAAA,CAAC,CAACuB,6BANjC;;;AAS+BvB,IAAAA,CAAC,CAACuB,6BATjC;;;AAY+BvB,IAAAA,CAAC,CAACuB,6BAZjC;;;AAeD,GA3KgC;;AA6KjCM,EAAAA,OA7KiC,mBA6KzB7B,CA7KyB,EA6Kf;AAChB,WAAOZ,GAAP;AACkBY,IAAAA,CAAC,CAAC8B,uBADpB;AAEsB9B,IAAAA,CAAC,CAACgB,iBAFxB,EAE6ChB,CAAC,CAAC8B,uBAF/C;;;AAKD,GAnLgC;;AAqLjCC,EAAAA,eArLiC,2BAqLjB/B,CArLiB,EAqLP;AACxB,WAAOZ,GAAP;;AAEaY,IAAAA,CAAC,CAACE,gBAFf,EAEyCF,CAAC,CAAC8B,uBAF3C;;AAID,GA1LgC;;AA4LjCE,EAAAA,KA5LiC,iBA4L3BhC,CA5L2B,EA4LjB;AACd,WAAOZ,GAAP;AACkBY,IAAAA,CAAC,CAACiC,qBADpB;AAEsBjC,IAAAA,CAAC,CAACgB,iBAFxB,EAE6ChB,CAAC,CAACiC,qBAF/C;;;AAKD,GAlMgC;;AAoMjCC,EAAAA,aApMiC,yBAoMnBlC,CApMmB,EAoMT;AACtB,WAAOZ,GAAP;;AAEaY,IAAAA,CAAC,CAACE,gBAFf,EAEyCF,CAAC,CAACiC,qBAF3C;;AAID,GAzMgC;;AA2MjCE,EAAAA,QA3MiC,oBA2MxBnC,CA3MwB,EA2Md;AACjB,WAAOZ,GAAP;AACsBY,IAAAA,CAAC,CAACoC,eADxB;AAEkBpC,IAAAA,CAAC,CAACqC,wBAFpB;;;AAKD,GAjNgC;;AAmNjCC,EAAAA,KAnNiC,iBAmN3BtC,CAnN2B,EAmNjB;AACd,QAAMuC,cAAc,GAAGlD,SAAH;;AAEEW,IAAAA,CAAC,CAACwC,eAFJ,CAApB;;;AAKA,WAAOpD,GAAP;AACemD,IAAAA,cADf;;AAGD,GA5NgC;;AA8NjCE,EAAAA,SA9NiC,qBA8NvBzC,CA9NuB,EA8Nb;AAClB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAAC0C,kBADjB;AAEiB1C,IAAAA,CAAC,CAAC2C,oBAFnB;AAGiB3C,IAAAA,CAAC,CAAC4C,kBAHnB;AAIoB5C,IAAAA,CAAC,CAAC4C,kBAJtB;AAKkB5C,IAAAA,CAAC,CAAC6C,kBALpB;AAMmB7C,IAAAA,CAAC,CAAC6C,kBANrB;AAOY7C,IAAAA,CAAC,CAAC8C,gBAPd;AAQmB9C,IAAAA,CAAC,CAAC+C,sBARrB;;AAUD,GAzOgC;;AA2OjCC,EAAAA,iBA3OiC,6BA2OfhD,CA3Oe,EA2OL;AAC1B,WAAOZ,GAAP;AACiBG,IAAAA,KAAK;AAClBS,IAAAA,CAAC,CAAC4C,kBADgB;AAElBnD,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,IAA/D,GAAsE,GAFpD,CADtB;;AAKoB1D,IAAAA,KAAK;AACrBS,IAAAA,CAAC,CAAC4C,kBADmB;AAErBnD,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,GAA/D,GAAqE,GAFhD,CALzB;;AASkBjD,IAAAA,CAAC,CAAC6C,kBATpB;AAUmB7C,IAAAA,CAAC,CAAC6C,kBAVrB;;;AAaD,GAzPgC;;AA2PjCK,EAAAA,UA3PiC,sBA2PtBlD,CA3PsB,EA2PZ;AACnB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAACmD,mBADjB;AAEiBnD,IAAAA,CAAC,CAACoD,qBAFnB;AAGiBpD,IAAAA,CAAC,CAACqD,mBAHnB;AAIoBrD,IAAAA,CAAC,CAACqD,mBAJtB;AAKkBrD,IAAAA,CAAC,CAACsD,mBALpB;AAMmBtD,IAAAA,CAAC,CAACsD,mBANrB;AAOYtD,IAAAA,CAAC,CAACuD,iBAPd;AAQmBvD,IAAAA,CAAC,CAACwD,uBARrB;;AAUD,GAtQgC;;AAwQjCC,EAAAA,kBAxQiC,8BAwQdzD,CAxQc,EAwQJ;AAC3B,WAAOZ,GAAP;AACiBG,IAAAA,KAAK;AAClBS,IAAAA,CAAC,CAACqD,mBADgB;AAElB5D,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,IAA/D,GAAsE,GAFpD,CADtB;;AAKoB1D,IAAAA,KAAK;AACrBS,IAAAA,CAAC,CAACqD,mBADmB;AAErB5D,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,GAA/D,GAAqE,GAFhD,CALzB;;AASkBjD,IAAAA,CAAC,CAACsD,mBATpB;AAUmBtD,IAAAA,CAAC,CAACsD,mBAVrB;;;AAaD,GAtRgC;;AAwRjCI,EAAAA,SAxRiC,qBAwRvB1D,CAxRuB,EAwRb;AAClB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAAC2D,kBADjB;AAEiB3D,IAAAA,CAAC,CAAC4D,oBAFnB;AAGY5D,IAAAA,CAAC,CAAC6D,gBAHd;AAIiBtE,IAAAA,KAAK;AAClBS,IAAAA,CAAC,CAAC8D,kBADgB;AAElBrE,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,IAA/D,GAAsE,GAFpD,CAJtB;;AAQoB1D,IAAAA,KAAK;AACrBS,IAAAA,CAAC,CAAC8D,kBADmB;AAErBrE,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,GAA/D,GAAqE,GAFhD,CARzB;;AAYkBjD,IAAAA,CAAC,CAAC+D,kBAZpB;AAamB/D,IAAAA,CAAC,CAAC+D,kBAbrB;AAcmB/D,IAAAA,CAAC,CAACgE,sBAdrB;;AAgBD,GAzSgC;;AA2SjCC,EAAAA,iBA3SiC,6BA2SfjE,CA3Se,EA2SL;AAC1B,WAAOZ,GAAP;AACiBG,IAAAA,KAAK;AAClBS,IAAAA,CAAC,CAAC8D,kBADgB;AAElBrE,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,IAA/D,GAAsE,GAFpD,CADtB;;AAKoB1D,IAAAA,KAAK;AACrBS,IAAAA,CAAC,CAAC8D,kBADmB;AAErBrE,IAAAA,0BAA0B,CAACO,CAAC,CAACiD,8BAAH,CAA1B,GAA+D,GAA/D,GAAqE,GAFhD,CALzB;;AASkBjD,IAAAA,CAAC,CAAC+D,kBATpB;AAUmB/D,IAAAA,CAAC,CAAC+D,kBAVrB;;;AAaD,GAzTgC;;AA2TjCG,EAAAA,MA3TiC,kBA2T1BlE,CA3T0B,EA2ThB;AACf,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACmB,qBADb;;AAGD,GA/TgC;;AAiUjCgD,EAAAA,cAjUiC,0BAiUlBnE,CAjUkB,EAiUR;AACvB,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACuB,6BADb;;AAGD,GArUgC;;AAuUjC6C,EAAAA,MAvUiC,kBAuU1BpE,CAvU0B,EAuUhB;AACf,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACmB,qBADb;;AAGD,GA3UgC;;AA6UjCkD,EAAAA,cA7UiC,0BA6UlBrE,CA7UkB,EA6UR;AACvB,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAACuB,6BADb;;AAGD,GAjVgC;;AAmVjC+C,EAAAA,aAnViC,2BAmVjB;AACd,WAAOlF,GAAP;;;;;;;;;;;;AAYD,GAhWgC;;AAkWjCmF,EAAAA,cAlWiC,4BAkWhB;AACf,WAAOnF,GAAP;;;;;AAKD,GAxWgC;;AA0WjCoF,EAAAA,IA1WiC,kBA0W1B;AACL,WAAOpF,GAAP;;;;;;;AAOD,GAlXgC;;AAoXjCqF,EAAAA,SApXiC,qBAoXvBzE,CApXuB,EAoXb;AAClB,WAAOZ,GAAP;AACWY,IAAAA,CAAC,CAAC0E,qBADb;;AAGD,GAxXgC;;AA0XjCC,EAAAA,YA1XiC,0BA0XlB;AACb,WAAOvF,GAAP;;;AAGD,GA9XgC;;AAgYjCwF,EAAAA,aAhYiC,yBAgYnB5E,CAhYmB,EAgYT;AACtB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAAC6E,kBADjB;AAEmB7E,IAAAA,CAAC,CAAC8E,iBAFrB;;AAID,GArYgC;;AAuYjCC,EAAAA,cAvYiC,0BAuYlB/E,CAvYkB,EAuYR;AACvB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAAC6E,kBADjB;AAEkB7E,IAAAA,CAAC,CAAC8E,iBAFpB;;AAID,GA5YgC;;AA8YjCE,EAAAA,cA9YiC,0BA8YlBhF,CA9YkB,EA8YR;AACvB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAACiF,mBADjB;AAEmBjF,IAAAA,CAAC,CAACkF,kBAFrB;;AAID,GAnZgC;;AAqZjCC,EAAAA,eArZiC,2BAqZjBnF,CArZiB,EAqZP;AACxB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAACiF,mBADjB;AAEkBjF,IAAAA,CAAC,CAACkF,kBAFpB;;AAID,GA1ZgC;;AA4ZjCE,EAAAA,aA5ZiC,yBA4ZnBpF,CA5ZmB,EA4ZT;AACtB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAACqF,kBADjB;AAEmBrF,IAAAA,CAAC,CAACsF,iBAFrB;;AAID,GAjagC;;AAmajCC,EAAAA,cAnaiC,0BAmalBvF,CAnakB,EAmaR;AACvB,WAAOZ,GAAP;AACeY,IAAAA,CAAC,CAACqF,kBADjB;AAEkBrF,IAAAA,CAAC,CAACsF,iBAFpB;;AAID,GAxagC;;AA0ajCE,EAAAA,kBA1aiC,gCA0aZ;AACnB,WAAOpG,GAAP;;;AAGD,GA9agC,EAAD,CAA3B","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"]}
|
|
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","inputColorScheme","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 color-scheme: ${t.inputColorScheme};\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"]}
|
|
@@ -70,10 +70,10 @@ class Toaster extends React.Component {
|
|
|
70
70
|
|
|
71
71
|
### SuperToast
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Вы можете объединить удобство статических методов и кастамизируемость классического способа через `ref`.
|
|
74
74
|
Для этого можно добавить обёртку, которая позволяет Toast работать по примеру GlobalLoader.
|
|
75
75
|
|
|
76
|
-
Т.е. кастомный Toast можно добавить в единственном месте
|
|
76
|
+
Т.е. кастомный Toast можно добавить в единственном месте в проекте, а статические методы будут всегда использовать последний отрендеренный экземпляр Toast:
|
|
77
77
|
|
|
78
78
|
Также в обёртке можно изменить логику появления всплывашки, по рекомендации Гайдов:
|
|
79
79
|
https://guides.kontur.ru/components/toast/#08
|
|
@@ -131,18 +131,18 @@ export var Tooltip = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
131
131
|
focused: true
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
-
_this.open
|
|
134
|
+
window.setTimeout(_this.open);
|
|
135
135
|
};
|
|
136
136
|
|
|
137
137
|
_this.handleBlur = function () {
|
|
138
138
|
var trigger = _this.getProps().trigger;
|
|
139
139
|
|
|
140
140
|
if (trigger === 'hover&focus' && _this.clickedOutside) {
|
|
141
|
-
_this.close
|
|
141
|
+
window.setTimeout(_this.close);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
if (trigger === 'focus') {
|
|
145
|
-
_this.close
|
|
145
|
+
window.setTimeout(_this.close);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
_this.clickedOutside = true;
|