@skbkontur/react-ui 5.6.2-07e9a.0 → 5.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +4 -4
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +14 -16
- package/cjs/components/Toggle/Toggle.js +2 -4
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +4 -4
- package/components/Toggle/Toggle/Toggle.js +2 -4
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +14 -16
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.6.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.1...@skbkontur/react-ui@5.6.2) (2026-01-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Input:** decrease rerenders count ([07e9ae5](https://github.com/skbkontur/retail-ui/commit/07e9ae5ddb8168777c2f89ec17d22d2cb286b0d0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [5.6.1](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.6.0...@skbkontur/react-ui@5.6.1) (2026-01-14)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -2,12 +2,12 @@ import type { HTMLAttributes } from 'react';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
4
4
|
export interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {
|
|
5
|
-
/**
|
|
5
|
+
/** Минимальное количество отображаемых знаков после запятой.
|
|
6
6
|
* @default 2 */
|
|
7
7
|
fractionDigits?: number;
|
|
8
|
-
/**
|
|
8
|
+
/** Значение. */
|
|
9
9
|
value: number;
|
|
10
|
-
/**
|
|
10
|
+
/** Символ валюты. */
|
|
11
11
|
currencySymbol?: React.ReactNode;
|
|
12
12
|
/** Убирает лишние нули после запятой. */
|
|
13
13
|
hideTrailingZeros?: boolean;
|
|
@@ -16,7 +16,7 @@ export declare const CurrencyLabelDataTids: {
|
|
|
16
16
|
readonly root: "CurrencyLabel__root";
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Подпись для денежных сумм и других числовых значений.
|
|
20
20
|
*/
|
|
21
21
|
declare const CurrencyLabel: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, CurrencyLabelProps> & Record<never, never>;
|
|
22
22
|
export { CurrencyLabel };
|
|
@@ -30,7 +30,7 @@ var CurrencyLabelDataTids = exports.CurrencyLabelDataTids = {
|
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Подпись для денежных сумм и других числовых значений.
|
|
34
34
|
*/
|
|
35
35
|
var CurrencyLabel = exports.CurrencyLabel = (0, _forwardRefAndName.forwardRefAndName)(
|
|
36
36
|
'CurrencyLabel',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_warning","_constants","_CurrencyHelper","_CommonWrapper","_forwardRefAndName","_excluded","FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","exports","root","CurrencyLabel","forwardRefAndName","_ref","ref","id","value","_ref$fractionDigits","fractionDigits","currencySymbol","_ref$hideTrailingZero","hideTrailingZeros","rest","_objectWithoutPropertiesLoose2","default","React","useEffect","warning","MAX_SAFE_DIGITS","_ref2","CurrencyHelper","destructString","String","fraction","length","Number","isInteger","createElement","CommonWrapper","format","fromCharCode"],"sources":["CurrencyLabel.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nexport interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /**
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_warning","_constants","_CurrencyHelper","_CommonWrapper","_forwardRefAndName","_excluded","FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","exports","root","CurrencyLabel","forwardRefAndName","_ref","ref","id","value","_ref$fractionDigits","fractionDigits","currencySymbol","_ref$hideTrailingZero","hideTrailingZeros","rest","_objectWithoutPropertiesLoose2","default","React","useEffect","warning","MAX_SAFE_DIGITS","_ref2","CurrencyHelper","destructString","String","fraction","length","Number","isInteger","createElement","CommonWrapper","format","fromCharCode"],"sources":["CurrencyLabel.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nexport interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Минимальное количество отображаемых знаков после запятой.\n * @default 2 */\n fractionDigits?: number;\n\n /** Значение. */\n value: number;\n\n /** Символ валюты. */\n currencySymbol?: React.ReactNode;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n}\n\nconst FRACTION_DIGITS_DEFAULT = 2;\n\nexport const CurrencyLabelDataTids = {\n root: 'CurrencyLabel__root',\n} as const;\n\n/**\n * Подпись для денежных сумм и других числовых значений.\n */\nconst CurrencyLabel = forwardRefAndName(\n 'CurrencyLabel',\n function CurrencyLabel(\n {\n id,\n value,\n fractionDigits = FRACTION_DIGITS_DEFAULT,\n currencySymbol,\n hideTrailingZeros = false,\n ...rest\n }: CurrencyLabelProps,\n ref: React.Ref<HTMLDivElement>,\n ) {\n React.useEffect(() => {\n warning(\n fractionDigits <= MAX_SAFE_DIGITS,\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.\\nSee CurrencyInput documentation`,\n );\n\n const { fraction } = CurrencyHelper.destructString(String(value)) || { fraction: '' };\n warning(\n fraction.length <= fractionDigits,\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n\n warning(\n Number.isInteger(fractionDigits),\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }, [fractionDigits, value]);\n\n return (\n <CommonWrapper {...rest}>\n <span id={id} data-tid={CurrencyLabelDataTids.root} ref={ref}>\n {CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros })}\n {currencySymbol && String.fromCharCode(0xa0) /* */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n },\n);\n\nexport { CurrencyLabel };\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA,gCAAgE,IAAAM,SAAA;;;;;;;;;;;;;;;;;AAiBhE,IAAMC,uBAAuB,GAAG,CAAC;;AAE1B,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACnCE,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA,IAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,IAAAC,oCAAiB;EACrC,eAAe;EACf,SAASD,aAAaA,CAAAE,IAAA;;;;;;;;;EASpBC,GAA8B;EAC9B,KAREC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CACFC,KAAK,GAAAH,IAAA,CAALG,KAAK,CAAAC,mBAAA,GAAAJ,IAAA,CACLK,cAAc,CAAdA,cAAc,GAAAD,mBAAA,cAAGV,uBAAuB,GAAAU,mBAAA,CACxCE,cAAc,GAAAN,IAAA,CAAdM,cAAc,CAAAC,qBAAA,GAAAP,IAAA,CACdQ,iBAAiB,CAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CACtBE,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAAX,IAAA,EAAAP,SAAA;IAITmB,cAAK,CAACC,SAAS,CAAC,YAAM;MACpB,IAAAC,gBAAO;QACLT,cAAc,IAAIU,0BAAe;QACiBA,0BAAe;MACnE,CAAC;;MAED,IAAAC,KAAA,GAAqBC,8BAAc,CAACC,cAAc,CAACC,MAAM,CAAChB,KAAK,CAAC,CAAC,IAAI,EAAEiB,QAAQ,EAAE,EAAE,CAAC,CAAC,CAA7EA,QAAQ,GAAAJ,KAAA,CAARI,QAAQ;MAChB,IAAAN,gBAAO;QACLM,QAAQ,CAACC,MAAM,IAAIhB,cAAc;QACjC;;MAEF,CAAC;;MAED,IAAAS,gBAAO;QACLQ,MAAM,CAACC,SAAS,CAAClB,cAAc,CAAC;;MAElC,CAAC;IACH,CAAC,EAAE,CAACA,cAAc,EAAEF,KAAK,CAAC,CAAC;;IAE3B;MACElB,MAAA,CAAA0B,OAAA,CAAAa,aAAA,CAACjC,cAAA,CAAAkC,aAAa,EAAKhB,IAAI;MACrBxB,MAAA,CAAA0B,OAAA,CAAAa,aAAA,WAAMtB,EAAE,EAAEA,EAAG,EAAC,YAAUP,qBAAqB,CAACE,IAAK,EAACI,GAAG,EAAEA,GAAI;MAC1DgB,8BAAc,CAACS,MAAM,CAACvB,KAAK,EAAE,EAAEE,cAAc,EAAdA,cAAc,EAAEG,iBAAiB,EAAjBA,iBAAiB,CAAC,CAAC,CAAC;MACnEF,cAAc,IAAIa,MAAM,CAACQ,YAAY,CAAC,IAAI,CAAC,CAAC;MAC5CrB;MACG;MACO,CAAC;;EAEpB;AACF,CAAC","ignoreList":[]}
|
|
@@ -6,36 +6,36 @@ import type { SizeProp } from '../../lib/types/props';
|
|
|
6
6
|
export interface ToggleProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'name'>, CommonProps {
|
|
7
7
|
/** @ignore */
|
|
8
8
|
children?: React.ReactNode;
|
|
9
|
-
/**
|
|
9
|
+
/** Расположение названия относительно переключателя.
|
|
10
10
|
* @default 'right' */
|
|
11
11
|
captionPosition?: 'left' | 'right';
|
|
12
12
|
/** Включает тогл.
|
|
13
13
|
* @default false */
|
|
14
14
|
checked?: boolean;
|
|
15
|
-
/** Делает
|
|
15
|
+
/** Делает тогл включенным по умолчанию. Не работает, если задан проп `checked`. */
|
|
16
16
|
defaultChecked?: boolean;
|
|
17
|
-
/**
|
|
17
|
+
/** Блокирует тогл. */
|
|
18
18
|
disabled?: boolean;
|
|
19
|
-
/**
|
|
19
|
+
/** Событие изменения значения. */
|
|
20
20
|
onValueChange?: (value: boolean) => void;
|
|
21
|
-
/**
|
|
21
|
+
/** Событие клика на тогл. */
|
|
22
22
|
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
23
|
-
/** Переводит
|
|
23
|
+
/** Переводит тогл в состояние предупреждения.
|
|
24
24
|
* @default false */
|
|
25
25
|
warning?: boolean;
|
|
26
|
-
/** Переводит
|
|
26
|
+
/** Переводит тогл в состояние ошибки.
|
|
27
27
|
* @default false */
|
|
28
28
|
error?: boolean;
|
|
29
|
-
/** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает
|
|
29
|
+
/** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает тогл.*/
|
|
30
30
|
loading?: boolean;
|
|
31
|
-
/**
|
|
31
|
+
/** Устанавливает фокус на тогл после окончания загрузки страницы.
|
|
32
32
|
* @default false */
|
|
33
33
|
autoFocus?: boolean;
|
|
34
|
-
/**
|
|
34
|
+
/** Размер тогла. */
|
|
35
35
|
size?: SizeProp;
|
|
36
|
-
/**
|
|
36
|
+
/** Событие получения тоглом фокуса.*/
|
|
37
37
|
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
38
|
-
/**
|
|
38
|
+
/** Событие потери тоглом фокуса. */
|
|
39
39
|
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
40
40
|
/** Отключает анимацию. */
|
|
41
41
|
disableAnimations?: boolean;
|
|
@@ -49,10 +49,8 @@ export declare const ToggleDataTids: {
|
|
|
49
49
|
};
|
|
50
50
|
type DefaultProps = Required<Pick<ToggleProps, 'disabled' | 'loading' | 'captionPosition' | 'disableAnimations'>>;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* `Toggle` нельзя использовать для выбора элементов в списке. Например, выбрать несколько писем.
|
|
52
|
+
* Тогл переключает состояния. Например, включает или отключает уведомления в настройках.
|
|
53
|
+
* Состоит из надписи и переключателя.
|
|
56
54
|
*/
|
|
57
55
|
export declare class Toggle extends React.Component<ToggleProps, ToggleState> {
|
|
58
56
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -84,10 +84,8 @@ var ToggleDataTids = exports.ToggleDataTids = {
|
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* `Toggle` нельзя использовать для выбора элементов в списке. Например, выбрать несколько писем.
|
|
87
|
+
* Тогл переключает состояния. Например, включает или отключает уведомления в настройках.
|
|
88
|
+
* Состоит из надписи и переключателя.
|
|
91
89
|
*/var
|
|
92
90
|
|
|
93
91
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_currentEnvironment","_FocusControlWrapper","_SizeDecorator","_Toggle2","_class","_Toggle","ToggleDataTids","exports","root","Toggle","rootNode","withSize","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","input","focus","keyListener","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","resetFocus","handleBlur","onBlur","state","defaultChecked","_inheritsLoose2","default","_proto","prototype","componentDidMount","autoFocus","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","getContainerSizeClassName","size","styles","containerLarge","containerMedium","containerSmall","getHandleSizeClassName","handleLarge","handleMedium","handleSmall","getButtonSizeClassName","buttonLarge","buttonMedium","buttonSmall","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","getCaptionSizeClassName","captionLarge","captionMedium","captionSmall","_cx","_cx2","_cx4","_cx5","_this$props","children","warning","error","id","name","ariaDescribedby","ariaLabel","_this$getProps","loading","captionPosition","disableAnimations","disabled","containerClassNames","cx","container","containerDisabled","globalClasses","containerLoading","labelClassNames","rootLeft","disableAnimation","caption","_cx3","captionClass","captionLeft","disabledCaption","className","CommonWrapper","_extends2","rootNodeRef","setRootNode","button","buttonRight","isWarning","isError","focused","FocusControlWrapper","onBlurWhenDisabled","type","ref","role","handle","handleDisabled","undefined","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Toggle.tsx"],"sourcesContent":["import React from 'react';\nimport type { AriaAttributes, InputHTMLAttributes } from 'react';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nexport interface ToggleProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'name'>,\n CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает положение `children` относительно переключателя.\n * @default 'right' */\n captionPosition?: 'left' | 'right';\n\n /** Включает тогл.\n * @default false */\n checked?: boolean;\n\n /** Делает `тогл` включенным по умолчанию. Не работает при заданном пропе `checked`. */\n defaultChecked?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает функцию, вызывающуюся при изменении значения. */\n onValueChange?: (value: boolean) => void;\n\n /** Задает функцию, которая вызывается при клике на `тогл`. */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n\n /** Переводит контрол в состояние валидации \"предупреждение\".\n * @default false */\n warning?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\".\n * @default false */\n error?: boolean;\n\n /** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает `тогл`.*/\n loading?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\".\n * @default false */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается, когда `тогл` получает фокус.*/\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Задает функцию, которая вызывается, когда `тогл` теряет фокус. */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\nexport const ToggleDataTids = {\n root: 'Toggle__root',\n} as const;\n\ntype DefaultProps = Required<Pick<ToggleProps, 'disabled' | 'loading' | 'captionPosition' | 'disableAnimations'>>;\n\n/**\n * `Toggle` переключает состояния. Например, включает или отключает уведомления в настройках.\n * `Toggle` представляет из себя надпись + переключатель.\n *\n * `Toggle` нельзя использовать для выбора элементов в списке. Например, выбрать несколько писем.\n */\n@rootNode\n@withSize\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n public static displayName = 'Toggle';\n\n public static defaultProps: DefaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n disableAnimations: isTestEnv,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Toggle.defaultProps);\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getContainerSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.containerLarge(this.theme);\n case 'medium':\n return styles.containerMedium(this.theme);\n case 'small':\n default:\n return styles.containerSmall(this.theme);\n }\n }\n\n private getHandleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.handleLarge(this.theme);\n case 'medium':\n return styles.handleMedium(this.theme);\n case 'small':\n default:\n return styles.handleSmall(this.theme);\n }\n }\n\n private getButtonSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.buttonLarge(this.theme);\n case 'medium':\n return styles.buttonMedium(this.theme);\n case 'small':\n default:\n return styles.buttonSmall(this.theme);\n }\n }\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private getCaptionSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n }\n\n private renderMain() {\n const {\n children,\n warning,\n error,\n id,\n name,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { loading, captionPosition, disableAnimations } = this.getProps();\n const disabled = this.getProps().disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(this.getContainerSizeClassName(), {\n [styles.container(this.theme)]: true,\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n [styles.disableAnimation()]: disableAnimations,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(this.getCaptionSizeClassName(), {\n [styles.caption(this.theme)]: true,\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <label data-tid={ToggleDataTids.root} className={labelClassNames}>\n <div\n className={cx(this.getButtonSizeClassName(), {\n [styles.button(this.theme)]: true,\n [styles.buttonRight()]: captionPosition === 'left',\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={cx(this.getInputSizeClassName(), styles.input(this.theme))}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n name={name}\n role=\"switch\"\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </FocusControlWrapper>\n <div className={containerClassNames} />\n <div\n className={cx(this.getHandleSizeClassName(), globalClasses.handle, {\n [styles.handle(this.theme)]: true,\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private resetFocus = () => this.setState({ focusByTab: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_currentEnvironment","_FocusControlWrapper","_SizeDecorator","_Toggle2","_class","_Toggle","ToggleDataTids","exports","root","Toggle","rootNode","withSize","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","input","focus","keyListener","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","resetFocus","handleBlur","onBlur","state","defaultChecked","_inheritsLoose2","default","_proto","prototype","componentDidMount","autoFocus","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","getContainerSizeClassName","size","styles","containerLarge","containerMedium","containerSmall","getHandleSizeClassName","handleLarge","handleMedium","handleSmall","getButtonSizeClassName","buttonLarge","buttonMedium","buttonSmall","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","getCaptionSizeClassName","captionLarge","captionMedium","captionSmall","_cx","_cx2","_cx4","_cx5","_this$props","children","warning","error","id","name","ariaDescribedby","ariaLabel","_this$getProps","loading","captionPosition","disableAnimations","disabled","containerClassNames","cx","container","containerDisabled","globalClasses","containerLoading","labelClassNames","rootLeft","disableAnimation","caption","_cx3","captionClass","captionLeft","disabledCaption","className","CommonWrapper","_extends2","rootNodeRef","setRootNode","button","buttonRight","isWarning","isError","focused","FocusControlWrapper","onBlurWhenDisabled","type","ref","role","handle","handleDisabled","undefined","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Toggle.tsx"],"sourcesContent":["import React from 'react';\nimport type { AriaAttributes, InputHTMLAttributes } from 'react';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nexport interface ToggleProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'name'>,\n CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Расположение названия относительно переключателя.\n * @default 'right' */\n captionPosition?: 'left' | 'right';\n\n /** Включает тогл.\n * @default false */\n checked?: boolean;\n\n /** Делает тогл включенным по умолчанию. Не работает, если задан проп `checked`. */\n defaultChecked?: boolean;\n\n /** Блокирует тогл. */\n disabled?: boolean;\n\n /** Событие изменения значения. */\n onValueChange?: (value: boolean) => void;\n\n /** Событие клика на тогл. */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n\n /** Переводит тогл в состояние предупреждения.\n * @default false */\n warning?: boolean;\n\n /** Переводит тогл в состояние ошибки.\n * @default false */\n error?: boolean;\n\n /** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает тогл.*/\n loading?: boolean;\n\n /** Устанавливает фокус на тогл после окончания загрузки страницы.\n * @default false */\n autoFocus?: boolean;\n\n /** Размер тогла. */\n size?: SizeProp;\n\n /** Событие получения тоглом фокуса.*/\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Событие потери тоглом фокуса. */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\nexport const ToggleDataTids = {\n root: 'Toggle__root',\n} as const;\n\ntype DefaultProps = Required<Pick<ToggleProps, 'disabled' | 'loading' | 'captionPosition' | 'disableAnimations'>>;\n\n/**\n * Тогл переключает состояния. Например, включает или отключает уведомления в настройках.\n * Состоит из надписи и переключателя.\n */\n@rootNode\n@withSize\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n public static displayName = 'Toggle';\n\n public static defaultProps: DefaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n disableAnimations: isTestEnv,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Toggle.defaultProps);\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getContainerSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.containerLarge(this.theme);\n case 'medium':\n return styles.containerMedium(this.theme);\n case 'small':\n default:\n return styles.containerSmall(this.theme);\n }\n }\n\n private getHandleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.handleLarge(this.theme);\n case 'medium':\n return styles.handleMedium(this.theme);\n case 'small':\n default:\n return styles.handleSmall(this.theme);\n }\n }\n\n private getButtonSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.buttonLarge(this.theme);\n case 'medium':\n return styles.buttonMedium(this.theme);\n case 'small':\n default:\n return styles.buttonSmall(this.theme);\n }\n }\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private getCaptionSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n }\n\n private renderMain() {\n const {\n children,\n warning,\n error,\n id,\n name,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { loading, captionPosition, disableAnimations } = this.getProps();\n const disabled = this.getProps().disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(this.getContainerSizeClassName(), {\n [styles.container(this.theme)]: true,\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n [styles.disableAnimation()]: disableAnimations,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(this.getCaptionSizeClassName(), {\n [styles.caption(this.theme)]: true,\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <label data-tid={ToggleDataTids.root} className={labelClassNames}>\n <div\n className={cx(this.getButtonSizeClassName(), {\n [styles.button(this.theme)]: true,\n [styles.buttonRight()]: captionPosition === 'left',\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={cx(this.getInputSizeClassName(), styles.input(this.theme))}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n name={name}\n role=\"switch\"\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </FocusControlWrapper>\n <div className={containerClassNames} />\n <div\n className={cx(this.getHandleSizeClassName(), globalClasses.handle, {\n [styles.handle(this.theme)]: true,\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private resetFocus = () => this.setState({ focusByTab: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"],"mappings":"qWAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;AAGA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;;AAGA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;;AAEA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;;AAEA,IAAAQ,oBAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;;AAEA,IAAAU,QAAA,GAAAV,OAAA,oBAAwD,IAAAW,MAAA,EAAAC,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DjD,IAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,IAAI,EAAE;AACR,CAAU;;;;AAIV;AACA;AACA;AACA,GAHA;;;AAMaC,MAAM,GAAAF,OAAA,CAAAE,MAAA,OAFlBC,kBAAQ,EAAAN,MAAA,OACRO,uBAAQ,EAAAP,MAAA,IAAAC,OAAA,0BAAAO,gBAAA;;;;;;;;;;;;;;;;;;;EAoBP,SAAAH,OAAYI,KAAkB,EAAE,KAAAC,KAAA;IAC9BA,KAAA,GAAAF,gBAAA,CAAAG,IAAA,OAAMF,KAAK,CAAC,SAACC,KAAA,CARPE,QAAQ,GAAG,IAAAC,oCAAiB,EAACR,MAAM,CAACS,YAAY,CAAC,CAAAJ,KAAA,CAGjDK,KAAK,GAA4B,IAAI;;;;;;;;;;;;;;;IAoB7C;AACF;AACA,OAFEL,KAAA;IAGOM,KAAK,GAAG,YAAM;MACnB,IAAIN,KAAA,CAAKK,KAAK,EAAE;QACdE,wBAAW,CAACC,YAAY,GAAG,IAAI;QAC/BR,KAAA,CAAKK,KAAK,CAACC,KAAK,CAAC,CAAC;MACpB;IACF,CAAC,CAAAN,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwKOS,QAAQ,GAAG,UAACC,OAAyB,EAAK;MAChDV,KAAA,CAAKK,KAAK,GAAGK,OAAO;IACtB,CAAC,CAAAV,KAAA;;IAEOW,YAAY,GAAG,UAACC,KAA0C,EAAK;MACrE,IAAIZ,KAAA,CAAKD,KAAK,CAACc,aAAa,EAAE;QAC5Bb,KAAA,CAAKD,KAAK,CAACc,aAAa,CAACD,KAAK,CAACE,MAAM,CAACC,OAAO,CAAC;MAChD;;MAEA,IAAIf,KAAA,CAAKgB,cAAc,CAAC,CAAC,EAAE;QACzBhB,KAAA,CAAKiB,QAAQ,CAAC;UACZF,OAAO,EAAEH,KAAK,CAACE,MAAM,CAACC;QACxB,CAAC,CAAC;MACJ;;MAEA,IAAIf,KAAA,CAAKD,KAAK,CAACmB,QAAQ,EAAE;QACvBlB,KAAA,CAAKD,KAAK,CAACmB,QAAQ,CAACN,KAAK,CAAC;MAC5B;IACF,CAAC,CAAAZ,KAAA;;IAEOmB,WAAW,GAAG,UAACP,KAAyC,EAAK;MACnE,IAAIZ,KAAA,CAAKD,KAAK,CAACqB,OAAO,EAAE;QACtBpB,KAAA,CAAKD,KAAK,CAACqB,OAAO,CAACR,KAAK,CAAC;MAC3B;;MAEA,IAAIL,wBAAW,CAACC,YAAY,EAAE;QAC5BR,KAAA,CAAKiB,QAAQ,CAAC,EAAEI,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;MACrC;IACF,CAAC,CAAArB,KAAA;;IAEOsB,UAAU,GAAG,oBAAMtB,KAAA,CAAKiB,QAAQ,CAAC,EAAEI,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,GAAArB,KAAA;;IAEvDuB,UAAU,GAAG,UAACX,KAAyC,EAAK;MAClEZ,KAAA,CAAKsB,UAAU,CAAC,CAAC;MACjBtB,KAAA,CAAKD,KAAK,CAACyB,MAAM,YAAjBxB,KAAA,CAAKD,KAAK,CAACyB,MAAM,CAAGZ,KAAK,CAAC;IAC5B,CAAC,CAhOCZ,KAAA,CAAKyB,KAAK,GAAG,EACXJ,UAAU,EAAE,KAAK,EACjBN,OAAO,EAAEhB,KAAK,CAAC2B,cAAc,CAC/B,CAAC,CAAC,OAAA1B,KAAA,CACJ,CAAC,IAAA2B,eAAA,CAAAC,OAAA,EAAAjC,MAAA,EAAAG,gBAAA,MAAA+B,MAAA,GAAAlC,MAAA,CAAAmC,SAAA,CAAAD,MAAA,CAEME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAAChC,KAAK,CAACiC,SAAS,EAAE,CACxBzB,wBAAW,CAACC,YAAY,GAAG,IAAI,CAC/B,IAAI,CAACF,KAAK,CAAC,CAAC,CACd,CACF,CAAC,CAAAuB,MAAA,CAYMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEzD,MAAA,CAAAmD,OAAA,CAAAO,aAAA,CAACtD,aAAA,CAAAuD,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVJ,MAAI,CAACI,KAAK,GAAGA,KAAK,CAClB,OAAOJ,MAAI,CAACK,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAAAV,MAAA,CAEOW,yBAAyB,GAAjC,SAAAA,0BAAA,EAAoC,CAClC,QAAQ,IAAI,CAACC,IAAI,GACf,KAAK,OAAO,CACV,OAAOC,eAAM,CAACC,cAAc,CAAC,IAAI,CAACL,KAAK,CAAC,CAC1C,KAAK,QAAQ,CACX,OAAOI,eAAM,CAACE,eAAe,CAAC,IAAI,CAACN,KAAK,CAAC,CAC3C,KAAK,OAAO,CACZ,QACE,OAAOI,eAAM,CAACG,cAAc,CAAC,IAAI,CAACP,KAAK,CAAC,CAC5C,CACF,CAAC,CAAAT,MAAA,CAEOiB,sBAAsB,GAA9B,SAAAA,uBAAA,EAAiC,CAC/B,QAAQ,IAAI,CAACL,IAAI,GACf,KAAK,OAAO,CACV,OAAOC,eAAM,CAACK,WAAW,CAAC,IAAI,CAACT,KAAK,CAAC,CACvC,KAAK,QAAQ,CACX,OAAOI,eAAM,CAACM,YAAY,CAAC,IAAI,CAACV,KAAK,CAAC,CACxC,KAAK,OAAO,CACZ,QACE,OAAOI,eAAM,CAACO,WAAW,CAAC,IAAI,CAACX,KAAK,CAAC,CACzC,CACF,CAAC,CAAAT,MAAA,CAEOqB,sBAAsB,GAA9B,SAAAA,uBAAA,EAAiC,CAC/B,QAAQ,IAAI,CAACT,IAAI,GACf,KAAK,OAAO,CACV,OAAOC,eAAM,CAACS,WAAW,CAAC,IAAI,CAACb,KAAK,CAAC,CACvC,KAAK,QAAQ,CACX,OAAOI,eAAM,CAACU,YAAY,CAAC,IAAI,CAACd,KAAK,CAAC,CACxC,KAAK,OAAO,CACZ,QACE,OAAOI,eAAM,CAACW,WAAW,CAAC,IAAI,CAACf,KAAK,CAAC,CACzC,CACF,CAAC,CAAAT,MAAA,CAEOyB,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,QAAQ,IAAI,CAACb,IAAI,GACf,KAAK,OAAO,CACV,OAAOC,eAAM,CAACa,SAAS,CAAC,IAAI,CAACjB,KAAK,CAAC,CACrC,KAAK,QAAQ,CACX,OAAOI,eAAM,CAACc,UAAU,CAAC,IAAI,CAAClB,KAAK,CAAC,CACtC,KAAK,OAAO,CACZ,QACE,OAAOI,eAAM,CAACe,SAAS,CAAC,IAAI,CAACnB,KAAK,CAAC,CACvC,CACF,CAAC,CAAAT,MAAA,CAEO6B,qBAAqB,GAA7B,SAAAA,sBAAA,EAAgC,CAC9B,QAAQ,IAAI,CAACjB,IAAI,GACf,KAAK,OAAO,CACV,OAAOC,eAAM,CAACiB,UAAU,CAAC,IAAI,CAACrB,KAAK,CAAC,CACtC,KAAK,QAAQ,CACX,OAAOI,eAAM,CAACkB,WAAW,CAAC,IAAI,CAACtB,KAAK,CAAC,CACvC,KAAK,OAAO,CACZ,QACE,OAAOI,eAAM,CAACmB,UAAU,CAAC,IAAI,CAACvB,KAAK,CAAC,CACxC,CACF,CAAC,CAAAT,MAAA,CAEOiC,uBAAuB,GAA/B,SAAAA,wBAAA,EAAkC,CAChC,QAAQ,IAAI,CAACrB,IAAI,GACf,KAAK,OAAO,CACV,OAAOC,eAAM,CAACqB,YAAY,CAAC,IAAI,CAACzB,KAAK,CAAC,CACxC,KAAK,QAAQ,CACX,OAAOI,eAAM,CAACsB,aAAa,CAAC,IAAI,CAAC1B,KAAK,CAAC,CACzC,KAAK,OAAO,CACZ,QACE,OAAOI,eAAM,CAACuB,YAAY,CAAC,IAAI,CAAC3B,KAAK,CAAC,CAC1C,CACF,CAAC,CAAAT,MAAA,CAEOU,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAA2B,GAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,CACnB,IAAAC,WAAA,GAQI,IAAI,CAACvE,KAAK,CAPZwE,QAAQ,GAAAD,WAAA,CAARC,QAAQ,CACRC,OAAO,GAAAF,WAAA,CAAPE,OAAO,CACPC,KAAK,GAAAH,WAAA,CAALG,KAAK,CACLC,EAAE,GAAAJ,WAAA,CAAFI,EAAE,CACFC,IAAI,GAAAL,WAAA,CAAJK,IAAI,CACgBC,eAAe,GAAAN,WAAA,CAAnC,kBAAkB,EACJO,SAAS,GAAAP,WAAA,CAAvB,YAAY,EAEd,IAAAQ,cAAA,GAAwD,IAAI,CAAC5E,QAAQ,CAAC,CAAC,CAA/D6E,OAAO,GAAAD,cAAA,CAAPC,OAAO,CAAEC,eAAe,GAAAF,cAAA,CAAfE,eAAe,CAAEC,iBAAiB,GAAAH,cAAA,CAAjBG,iBAAiB,CACnD,IAAMC,QAAQ,GAAG,IAAI,CAAChF,QAAQ,CAAC,CAAC,CAACgF,QAAQ,IAAIH,OAAO,CACpD,IAAMhE,OAAO,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC,GAAG,IAAI,CAACS,KAAK,CAACV,OAAO,GAAG,IAAI,CAAChB,KAAK,CAACgB,OAAO,CAE/E,IAAMoE,mBAAmB,GAAG,IAAAC,WAAE,EAAC,IAAI,CAAC5C,yBAAyB,CAAC,CAAC,GAAA0B,GAAA,OAAAA,GAAA,CAC5DxB,eAAM,CAAC2C,SAAS,CAAC,IAAI,CAAC/C,KAAK,CAAC,IAAG,IAAI,EAAA4B,GAAA,CACnCxB,eAAM,CAAC4C,iBAAiB,CAAC,IAAI,CAAChD,KAAK,CAAC,IAAG,CAAC,CAAC4C,QAAQ,EAAAhB,GAAA,CACjDqB,sBAAa,CAACF,SAAS,IAAG,IAAI,EAAAnB,GAAA,CAC9BqB,sBAAa,CAACD,iBAAiB,IAAG,CAAC,CAACJ,QAAQ,EAAAhB,GAAA,CAC5CqB,sBAAa,CAACC,gBAAgB,IAAGT,OAAO,EAAAb,GAAA,CAC1C,CAAC,CAEF,IAAMuB,eAAe,GAAG,IAAAL,WAAE,EAAC,IAAI,CAAC9B,oBAAoB,CAAC,CAAC,GAAAa,IAAA,OAAAA,IAAA,CACnDzB,eAAM,CAAChD,IAAI,CAAC,IAAI,CAAC4C,KAAK,CAAC,IAAG,IAAI,EAAA6B,IAAA,CAC9BzB,eAAM,CAACgD,QAAQ,CAAC,CAAC,IAAGV,eAAe,KAAK,MAAM,EAAAb,IAAA,CAC9CzB,eAAM,CAACwC,QAAQ,CAAC,CAAC,IAAG,CAAC,CAACA,QAAQ,EAAAf,IAAA,CAC9BoB,sBAAa,CAACL,QAAQ,IAAG,CAAC,CAACA,QAAQ,EAAAf,IAAA,CACnCzB,eAAM,CAACiD,gBAAgB,CAAC,CAAC,IAAGV,iBAAiB,EAAAd,IAAA,CAC/C,CAAC,CAEF,IAAIyB,OAAO,GAAG,IAAI,CAClB,IAAIrB,QAAQ,EAAE,KAAAsB,IAAA,CACZ,IAAMC,YAAY,GAAG,IAAAV,WAAE,EAAC,IAAI,CAACtB,uBAAuB,CAAC,CAAC,GAAA+B,IAAA,OAAAA,IAAA,CACnDnD,eAAM,CAACkD,OAAO,CAAC,IAAI,CAACtD,KAAK,CAAC,IAAG,IAAI,EAAAuD,IAAA,CACjCnD,eAAM,CAACqD,WAAW,CAAC,IAAI,CAACzD,KAAK,CAAC,IAAG0C,eAAe,KAAK,MAAM,EAAAa,IAAA,CAC3DnD,eAAM,CAACsD,eAAe,CAAC,IAAI,CAAC1D,KAAK,CAAC,IAAG,CAAC,CAAC4C,QAAQ,EAAAW,IAAA,CACjD,CAAC,CACFD,OAAO,gBAAGnH,MAAA,CAAAmD,OAAA,CAAAO,aAAA,WAAM8D,SAAS,EAAEH,YAAa,IAAEvB,QAAe,CAAC,CAC5D,CAEA,oBACE9F,MAAA,CAAAmD,OAAA,CAAAO,aAAA,CAACrD,cAAA,CAAAoH,aAAa,MAAAC,SAAA,CAAAvE,OAAA,IAACwE,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACtG,KAAK,gBAC1DtB,MAAA,CAAAmD,OAAA,CAAAO,aAAA,YAAO,YAAU3C,cAAc,CAACE,IAAK,EAACuG,SAAS,EAAER,eAAgB,iBAC/DhH,MAAA,CAAAmD,OAAA,CAAAO,aAAA,UACE8D,SAAS,EAAE,IAAAb,WAAE,EAAC,IAAI,CAAClC,sBAAsB,CAAC,CAAC,GAAAkB,IAAA,OAAAA,IAAA,CACxC1B,eAAM,CAAC4D,MAAM,CAAC,IAAI,CAAChE,KAAK,CAAC,IAAG,IAAI,EAAA8B,IAAA,CAChC1B,eAAM,CAAC6D,WAAW,CAAC,CAAC,IAAGvB,eAAe,KAAK,MAAM,EAAAZ,IAAA,CACjD1B,eAAM,CAAC8D,SAAS,CAAC,IAAI,CAAClE,KAAK,CAAC,IAAG,CAAC,CAACkC,OAAO,EAAAJ,IAAA,CACxC1B,eAAM,CAAC+D,OAAO,CAAC,IAAI,CAACnE,KAAK,CAAC,IAAG,CAAC,CAACmC,KAAK,EAAAL,IAAA,CACpC1B,eAAM,CAACgE,OAAO,CAAC,IAAI,CAACpE,KAAK,CAAC,IAAG,CAAC4C,QAAQ,IAAI,CAAC,CAAC,IAAI,CAACzD,KAAK,CAACJ,UAAU,EAAA+C,IAAA,CACnE,CAAE,iBAEH3F,MAAA,CAAAmD,OAAA,CAAAO,aAAA,CAAChD,oBAAA,CAAAwH,mBAAmB,IAACC,kBAAkB,EAAE,IAAI,CAACtF,UAAW,iBACvD7C,MAAA,CAAAmD,OAAA,CAAAO,aAAA,YACE0E,IAAI,EAAC,UAAU,EACf9F,OAAO,EAAEA,OAAQ,EACjBG,QAAQ,EAAE,IAAI,CAACP,YAAa,EAC5BsF,SAAS,EAAE,IAAAb,WAAE,EAAC,IAAI,CAAC1B,qBAAqB,CAAC,CAAC,EAAEhB,eAAM,CAACrC,KAAK,CAAC,IAAI,CAACiC,KAAK,CAAC,CAAE,EACtElB,OAAO,EAAE,IAAI,CAACD,WAAY,EAC1BK,MAAM,EAAE,IAAI,CAACD,UAAW,EACxBuF,GAAG,EAAE,IAAI,CAACrG,QAAS,EACnByE,QAAQ,EAAEA,QAAS,EACnBR,EAAE,EAAEA,EAAG,EACPC,IAAI,EAAEA,IAAK,EACXoC,IAAI,EAAC,QAAQ,EACb,cAAYlC,SAAU,EACtB,oBAAkBD,eAAgB,EACnC,CACkB,CAAC,eACtBnG,MAAA,CAAAmD,OAAA,CAAAO,aAAA,UAAK8D,SAAS,EAAEd,mBAAoB,EAAE,CAAC,eACvC1G,MAAA,CAAAmD,OAAA,CAAAO,aAAA,UACE8D,SAAS,EAAE,IAAAb,WAAE,EAAC,IAAI,CAACtC,sBAAsB,CAAC,CAAC,EAAEyC,sBAAa,CAACyB,MAAM,GAAA3C,IAAA,OAAAA,IAAA,CAC9D3B,eAAM,CAACsE,MAAM,CAAC,IAAI,CAAC1E,KAAK,CAAC,IAAG,IAAI,EAAA+B,IAAA,CAChC3B,eAAM,CAACuE,cAAc,CAAC,IAAI,CAAC3E,KAAK,CAAC,IAAG4C,QAAQ,EAAAb,IAAA,CAC9C,CAAE,EACJ,CACE,CAAC,EACLuB,OACI,CACM,CAAC,CAEpB,CAAC,CAAA/D,MAAA;;EAuCOb,cAAc,GAAtB,SAAAA,eAAA,EAAyB;IACvB,OAAO,IAAI,CAACjB,KAAK,CAACgB,OAAO,KAAKmG,SAAS;EACzC,CAAC,QAAAvH,MAAA,GA1PyBwH,cAAK,CAACC,SAAS,GAAA7H,OAAA,CAC3B8H,mBAAmB,GAAG,QAAQ,EAAA9H,OAAA,CAC9B+H,WAAW,GAAG,QAAQ,EAAA/H,OAAA,CAEtBa,YAAY,GAAiB,EACzC8E,QAAQ,EAAE,KAAK,EACfH,OAAO,EAAE,KAAK,EACdC,eAAe,EAAE,OAAO,EACxBC,iBAAiB,EAAEsC,6BAAS,CAC9B,CAAC,EAAAhI,OAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ export var CurrencyLabelDataTids = {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Подпись для денежных сумм и других числовых значений.
|
|
16
16
|
*/
|
|
17
17
|
var CurrencyLabel = forwardRefAndName('CurrencyLabel', function CurrencyLabel(_ref, ref) {
|
|
18
18
|
var id = _ref.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","warning","MAX_SAFE_DIGITS","CurrencyHelper","CommonWrapper","forwardRefAndName","FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","root","CurrencyLabel","_ref","ref","id","value","_ref$fractionDigits","fractionDigits","currencySymbol","_ref$hideTrailingZero","hideTrailingZeros","rest","_objectWithoutPropertiesLoose","_excluded","useEffect","_ref2","destructString","String","fraction","length","Number","isInteger","createElement","format","fromCharCode"],"sources":["CurrencyLabel.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nexport interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /**
|
|
1
|
+
{"version":3,"names":["React","warning","MAX_SAFE_DIGITS","CurrencyHelper","CommonWrapper","forwardRefAndName","FRACTION_DIGITS_DEFAULT","CurrencyLabelDataTids","root","CurrencyLabel","_ref","ref","id","value","_ref$fractionDigits","fractionDigits","currencySymbol","_ref$hideTrailingZero","hideTrailingZeros","rest","_objectWithoutPropertiesLoose","_excluded","useEffect","_ref2","destructString","String","fraction","length","Number","isInteger","createElement","format","fromCharCode"],"sources":["CurrencyLabel.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { MAX_SAFE_DIGITS } from '../CurrencyInput/constants';\nimport { CurrencyHelper } from '../CurrencyInput/CurrencyHelper';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nexport interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Минимальное количество отображаемых знаков после запятой.\n * @default 2 */\n fractionDigits?: number;\n\n /** Значение. */\n value: number;\n\n /** Символ валюты. */\n currencySymbol?: React.ReactNode;\n\n /** Убирает лишние нули после запятой. */\n hideTrailingZeros?: boolean;\n}\n\nconst FRACTION_DIGITS_DEFAULT = 2;\n\nexport const CurrencyLabelDataTids = {\n root: 'CurrencyLabel__root',\n} as const;\n\n/**\n * Подпись для денежных сумм и других числовых значений.\n */\nconst CurrencyLabel = forwardRefAndName(\n 'CurrencyLabel',\n function CurrencyLabel(\n {\n id,\n value,\n fractionDigits = FRACTION_DIGITS_DEFAULT,\n currencySymbol,\n hideTrailingZeros = false,\n ...rest\n }: CurrencyLabelProps,\n ref: React.Ref<HTMLDivElement>,\n ) {\n React.useEffect(() => {\n warning(\n fractionDigits <= MAX_SAFE_DIGITS,\n `[CurrencyLabel]: Prop 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.\\nSee CurrencyInput documentation`,\n );\n\n const { fraction } = CurrencyHelper.destructString(String(value)) || { fraction: '' };\n warning(\n fraction.length <= fractionDigits,\n `[CurrencyLabel]: Prop 'fractionDigits' less than fractional part of the 'value' property,` +\n `'value' will not be cutted`,\n );\n\n warning(\n Number.isInteger(fractionDigits),\n `[CurrencyLabel]: Prop 'fractionDigits' is not integer, fraction part of these property will not be used`,\n );\n }, [fractionDigits, value]);\n\n return (\n <CommonWrapper {...rest}>\n <span id={id} data-tid={CurrencyLabelDataTids.root} ref={ref}>\n {CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros })}\n {currencySymbol && String.fromCharCode(0xa0) /* */}\n {currencySymbol}\n </span>\n </CommonWrapper>\n );\n },\n);\n\nexport { CurrencyLabel };\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,OAAO,MAAM,SAAS;;AAE7B,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,cAAc,QAAQ,iCAAiC;;AAEhE,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,iBAAiB,QAAQ,6BAA6B;;;;;;;;;;;;;;;;;AAiB/D,IAAMC,uBAAuB,GAAG,CAAC;;AAEjC,OAAO,IAAMC,qBAAqB,GAAG;EACnCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA,IAAMC,aAAa,GAAGJ,iBAAiB;EACrC,eAAe;EACf,SAASI,aAAaA,CAAAC,IAAA;;;;;;;;;EASpBC,GAA8B;EAC9B,KAREC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CACFC,KAAK,GAAAH,IAAA,CAALG,KAAK,CAAAC,mBAAA,GAAAJ,IAAA,CACLK,cAAc,CAAdA,cAAc,GAAAD,mBAAA,cAAGR,uBAAuB,GAAAQ,mBAAA,CACxCE,cAAc,GAAAN,IAAA,CAAdM,cAAc,CAAAC,qBAAA,GAAAP,IAAA,CACdQ,iBAAiB,CAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CACtBE,IAAI,GAAAC,6BAAA,CAAAV,IAAA,EAAAW,SAAA;IAITrB,KAAK,CAACsB,SAAS,CAAC,YAAM;MACpBrB,OAAO;QACLc,cAAc,IAAIb,eAAe;QACiBA,eAAe;MACnE,CAAC;;MAED,IAAAqB,KAAA,GAAqBpB,cAAc,CAACqB,cAAc,CAACC,MAAM,CAACZ,KAAK,CAAC,CAAC,IAAI,EAAEa,QAAQ,EAAE,EAAE,CAAC,CAAC,CAA7EA,QAAQ,GAAAH,KAAA,CAARG,QAAQ;MAChBzB,OAAO;QACLyB,QAAQ,CAACC,MAAM,IAAIZ,cAAc;QACjC;;MAEF,CAAC;;MAEDd,OAAO;QACL2B,MAAM,CAACC,SAAS,CAACd,cAAc,CAAC;;MAElC,CAAC;IACH,CAAC,EAAE,CAACA,cAAc,EAAEF,KAAK,CAAC,CAAC;;IAE3B;MACEb,KAAA,CAAA8B,aAAA,CAAC1B,aAAa,EAAKe,IAAI;MACrBnB,KAAA,CAAA8B,aAAA,WAAMlB,EAAE,EAAEA,EAAG,EAAC,YAAUL,qBAAqB,CAACC,IAAK,EAACG,GAAG,EAAEA,GAAI;MAC1DR,cAAc,CAAC4B,MAAM,CAAClB,KAAK,EAAE,EAAEE,cAAc,EAAdA,cAAc,EAAEG,iBAAiB,EAAjBA,iBAAiB,CAAC,CAAC,CAAC;MACnEF,cAAc,IAAIS,MAAM,CAACO,YAAY,CAAC,IAAI,CAAC,CAAC;MAC5ChB;MACG;MACO,CAAC;;EAEpB;AACF,CAAC;;AAED,SAASP,aAAa","ignoreList":[]}
|
|
@@ -2,12 +2,12 @@ import type { HTMLAttributes } from 'react';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
4
4
|
export interface CurrencyLabelProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {
|
|
5
|
-
/**
|
|
5
|
+
/** Минимальное количество отображаемых знаков после запятой.
|
|
6
6
|
* @default 2 */
|
|
7
7
|
fractionDigits?: number;
|
|
8
|
-
/**
|
|
8
|
+
/** Значение. */
|
|
9
9
|
value: number;
|
|
10
|
-
/**
|
|
10
|
+
/** Символ валюты. */
|
|
11
11
|
currencySymbol?: React.ReactNode;
|
|
12
12
|
/** Убирает лишние нули после запятой. */
|
|
13
13
|
hideTrailingZeros?: boolean;
|
|
@@ -16,7 +16,7 @@ export declare const CurrencyLabelDataTids: {
|
|
|
16
16
|
readonly root: "CurrencyLabel__root";
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Подпись для денежных сумм и других числовых значений.
|
|
20
20
|
*/
|
|
21
21
|
declare const CurrencyLabel: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, CurrencyLabelProps> & Record<never, never>;
|
|
22
22
|
export { CurrencyLabel };
|
|
@@ -17,10 +17,8 @@ export var ToggleDataTids = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* `Toggle` нельзя использовать для выбора элементов в списке. Например, выбрать несколько писем.
|
|
20
|
+
* Тогл переключает состояния. Например, включает или отключает уведомления в настройках.
|
|
21
|
+
* Состоит из надписи и переключателя.
|
|
24
22
|
*/
|
|
25
23
|
export var Toggle = rootNode(_class = withSize(_class = (_Toggle = /*#__PURE__*/function (_React$Component) {
|
|
26
24
|
function Toggle(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","keyListener","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","isTestEnv","FocusControlWrapper","withSize","styles","globalClasses","ToggleDataTids","root","Toggle","_class","_Toggle","_React$Component","props","_this","call","getProps","defaultProps","input","focus","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","resetFocus","handleBlur","onBlur","state","defaultChecked","_inheritsLoose","_proto","prototype","componentDidMount","autoFocus","render","_this2","createElement","Consumer","theme","renderMain","getContainerSizeClassName","size","containerLarge","containerMedium","containerSmall","getHandleSizeClassName","handleLarge","handleMedium","handleSmall","getButtonSizeClassName","buttonLarge","buttonMedium","buttonSmall","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","getCaptionSizeClassName","captionLarge","captionMedium","captionSmall","_cx","_cx2","_cx4","_cx5","_this$props","children","warning","error","id","name","ariaDescribedby","ariaLabel","_this$getProps","loading","captionPosition","disableAnimations","disabled","containerClassNames","container","containerDisabled","containerLoading","labelClassNames","rootLeft","disableAnimation","caption","_cx3","captionClass","captionLeft","disabledCaption","className","_extends","rootNodeRef","setRootNode","button","buttonRight","isWarning","isError","focused","onBlurWhenDisabled","type","ref","role","handle","handleDisabled","undefined","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Toggle.tsx"],"sourcesContent":["import React from 'react';\nimport type { AriaAttributes, InputHTMLAttributes } from 'react';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nexport interface ToggleProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'name'>,\n CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает положение `children` относительно переключателя.\n * @default 'right' */\n captionPosition?: 'left' | 'right';\n\n /** Включает тогл.\n * @default false */\n checked?: boolean;\n\n /** Делает `тогл` включенным по умолчанию. Не работает при заданном пропе `checked`. */\n defaultChecked?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает функцию, вызывающуюся при изменении значения. */\n onValueChange?: (value: boolean) => void;\n\n /** Задает функцию, которая вызывается при клике на `тогл`. */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n\n /** Переводит контрол в состояние валидации \"предупреждение\".\n * @default false */\n warning?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\".\n * @default false */\n error?: boolean;\n\n /** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает `тогл`.*/\n loading?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\".\n * @default false */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается, когда `тогл` получает фокус.*/\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Задает функцию, которая вызывается, когда `тогл` теряет фокус. */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\nexport const ToggleDataTids = {\n root: 'Toggle__root',\n} as const;\n\ntype DefaultProps = Required<Pick<ToggleProps, 'disabled' | 'loading' | 'captionPosition' | 'disableAnimations'>>;\n\n/**\n * `Toggle` переключает состояния. Например, включает или отключает уведомления в настройках.\n * `Toggle` представляет из себя надпись + переключатель.\n *\n * `Toggle` нельзя использовать для выбора элементов в списке. Например, выбрать несколько писем.\n */\n@rootNode\n@withSize\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n public static displayName = 'Toggle';\n\n public static defaultProps: DefaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n disableAnimations: isTestEnv,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Toggle.defaultProps);\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getContainerSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.containerLarge(this.theme);\n case 'medium':\n return styles.containerMedium(this.theme);\n case 'small':\n default:\n return styles.containerSmall(this.theme);\n }\n }\n\n private getHandleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.handleLarge(this.theme);\n case 'medium':\n return styles.handleMedium(this.theme);\n case 'small':\n default:\n return styles.handleSmall(this.theme);\n }\n }\n\n private getButtonSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.buttonLarge(this.theme);\n case 'medium':\n return styles.buttonMedium(this.theme);\n case 'small':\n default:\n return styles.buttonSmall(this.theme);\n }\n }\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private getCaptionSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n }\n\n private renderMain() {\n const {\n children,\n warning,\n error,\n id,\n name,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { loading, captionPosition, disableAnimations } = this.getProps();\n const disabled = this.getProps().disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(this.getContainerSizeClassName(), {\n [styles.container(this.theme)]: true,\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n [styles.disableAnimation()]: disableAnimations,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(this.getCaptionSizeClassName(), {\n [styles.caption(this.theme)]: true,\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <label data-tid={ToggleDataTids.root} className={labelClassNames}>\n <div\n className={cx(this.getButtonSizeClassName(), {\n [styles.button(this.theme)]: true,\n [styles.buttonRight()]: captionPosition === 'left',\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={cx(this.getInputSizeClassName(), styles.input(this.theme))}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n name={name}\n role=\"switch\"\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </FocusControlWrapper>\n <div className={containerClassNames} />\n <div\n className={cx(this.getHandleSizeClassName(), globalClasses.handle, {\n [styles.handle(this.theme)]: true,\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private resetFocus = () => this.setState({ focusByTab: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","keyListener","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","isTestEnv","FocusControlWrapper","withSize","styles","globalClasses","ToggleDataTids","root","Toggle","_class","_Toggle","_React$Component","props","_this","call","getProps","defaultProps","input","focus","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","resetFocus","handleBlur","onBlur","state","defaultChecked","_inheritsLoose","_proto","prototype","componentDidMount","autoFocus","render","_this2","createElement","Consumer","theme","renderMain","getContainerSizeClassName","size","containerLarge","containerMedium","containerSmall","getHandleSizeClassName","handleLarge","handleMedium","handleSmall","getButtonSizeClassName","buttonLarge","buttonMedium","buttonSmall","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","getCaptionSizeClassName","captionLarge","captionMedium","captionSmall","_cx","_cx2","_cx4","_cx5","_this$props","children","warning","error","id","name","ariaDescribedby","ariaLabel","_this$getProps","loading","captionPosition","disableAnimations","disabled","containerClassNames","container","containerDisabled","containerLoading","labelClassNames","rootLeft","disableAnimation","caption","_cx3","captionClass","captionLeft","disabledCaption","className","_extends","rootNodeRef","setRootNode","button","buttonRight","isWarning","isError","focused","onBlurWhenDisabled","type","ref","role","handle","handleDisabled","undefined","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Toggle.tsx"],"sourcesContent":["import React from 'react';\nimport type { AriaAttributes, InputHTMLAttributes } from 'react';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nexport interface ToggleProps\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'name'>,\n CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Расположение названия относительно переключателя.\n * @default 'right' */\n captionPosition?: 'left' | 'right';\n\n /** Включает тогл.\n * @default false */\n checked?: boolean;\n\n /** Делает тогл включенным по умолчанию. Не работает, если задан проп `checked`. */\n defaultChecked?: boolean;\n\n /** Блокирует тогл. */\n disabled?: boolean;\n\n /** Событие изменения значения. */\n onValueChange?: (value: boolean) => void;\n\n /** Событие клика на тогл. */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n\n /** Переводит тогл в состояние предупреждения.\n * @default false */\n warning?: boolean;\n\n /** Переводит тогл в состояние ошибки.\n * @default false */\n error?: boolean;\n\n /** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает тогл.*/\n loading?: boolean;\n\n /** Устанавливает фокус на тогл после окончания загрузки страницы.\n * @default false */\n autoFocus?: boolean;\n\n /** Размер тогла. */\n size?: SizeProp;\n\n /** Событие получения тоглом фокуса.*/\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Событие потери тоглом фокуса. */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\nexport const ToggleDataTids = {\n root: 'Toggle__root',\n} as const;\n\ntype DefaultProps = Required<Pick<ToggleProps, 'disabled' | 'loading' | 'captionPosition' | 'disableAnimations'>>;\n\n/**\n * Тогл переключает состояния. Например, включает или отключает уведомления в настройках.\n * Состоит из надписи и переключателя.\n */\n@rootNode\n@withSize\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n public static displayName = 'Toggle';\n\n public static defaultProps: DefaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n disableAnimations: isTestEnv,\n };\n private size!: SizeProp;\n\n private getProps = createPropsGetter(Toggle.defaultProps);\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getContainerSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.containerLarge(this.theme);\n case 'medium':\n return styles.containerMedium(this.theme);\n case 'small':\n default:\n return styles.containerSmall(this.theme);\n }\n }\n\n private getHandleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.handleLarge(this.theme);\n case 'medium':\n return styles.handleMedium(this.theme);\n case 'small':\n default:\n return styles.handleSmall(this.theme);\n }\n }\n\n private getButtonSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.buttonLarge(this.theme);\n case 'medium':\n return styles.buttonMedium(this.theme);\n case 'small':\n default:\n return styles.buttonSmall(this.theme);\n }\n }\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private getCaptionSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.captionLarge(this.theme);\n case 'medium':\n return styles.captionMedium(this.theme);\n case 'small':\n default:\n return styles.captionSmall(this.theme);\n }\n }\n\n private renderMain() {\n const {\n children,\n warning,\n error,\n id,\n name,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { loading, captionPosition, disableAnimations } = this.getProps();\n const disabled = this.getProps().disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(this.getContainerSizeClassName(), {\n [styles.container(this.theme)]: true,\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n [styles.disableAnimation()]: disableAnimations,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(this.getCaptionSizeClassName(), {\n [styles.caption(this.theme)]: true,\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <label data-tid={ToggleDataTids.root} className={labelClassNames}>\n <div\n className={cx(this.getButtonSizeClassName(), {\n [styles.button(this.theme)]: true,\n [styles.buttonRight()]: captionPosition === 'left',\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={cx(this.getInputSizeClassName(), styles.input(this.theme))}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n name={name}\n role=\"switch\"\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </FocusControlWrapper>\n <div className={containerClassNames} />\n <div\n className={cx(this.getHandleSizeClassName(), globalClasses.handle, {\n [styles.handle(this.theme)]: true,\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private resetFocus = () => this.setState({ focusByTab: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(event);\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,36 +6,36 @@ import type { SizeProp } from '../../lib/types/props';
|
|
|
6
6
|
export interface ToggleProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'name'>, CommonProps {
|
|
7
7
|
/** @ignore */
|
|
8
8
|
children?: React.ReactNode;
|
|
9
|
-
/**
|
|
9
|
+
/** Расположение названия относительно переключателя.
|
|
10
10
|
* @default 'right' */
|
|
11
11
|
captionPosition?: 'left' | 'right';
|
|
12
12
|
/** Включает тогл.
|
|
13
13
|
* @default false */
|
|
14
14
|
checked?: boolean;
|
|
15
|
-
/** Делает
|
|
15
|
+
/** Делает тогл включенным по умолчанию. Не работает, если задан проп `checked`. */
|
|
16
16
|
defaultChecked?: boolean;
|
|
17
|
-
/**
|
|
17
|
+
/** Блокирует тогл. */
|
|
18
18
|
disabled?: boolean;
|
|
19
|
-
/**
|
|
19
|
+
/** Событие изменения значения. */
|
|
20
20
|
onValueChange?: (value: boolean) => void;
|
|
21
|
-
/**
|
|
21
|
+
/** Событие клика на тогл. */
|
|
22
22
|
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
23
|
-
/** Переводит
|
|
23
|
+
/** Переводит тогл в состояние предупреждения.
|
|
24
24
|
* @default false */
|
|
25
25
|
warning?: boolean;
|
|
26
|
-
/** Переводит
|
|
26
|
+
/** Переводит тогл в состояние ошибки.
|
|
27
27
|
* @default false */
|
|
28
28
|
error?: boolean;
|
|
29
|
-
/** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает
|
|
29
|
+
/** Переводит тогл в состояние загрузки: добавляет стили для состояния `loading` и отключает тогл.*/
|
|
30
30
|
loading?: boolean;
|
|
31
|
-
/**
|
|
31
|
+
/** Устанавливает фокус на тогл после окончания загрузки страницы.
|
|
32
32
|
* @default false */
|
|
33
33
|
autoFocus?: boolean;
|
|
34
|
-
/**
|
|
34
|
+
/** Размер тогла. */
|
|
35
35
|
size?: SizeProp;
|
|
36
|
-
/**
|
|
36
|
+
/** Событие получения тоглом фокуса.*/
|
|
37
37
|
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
38
|
-
/**
|
|
38
|
+
/** Событие потери тоглом фокуса. */
|
|
39
39
|
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
40
40
|
/** Отключает анимацию. */
|
|
41
41
|
disableAnimations?: boolean;
|
|
@@ -49,10 +49,8 @@ export declare const ToggleDataTids: {
|
|
|
49
49
|
};
|
|
50
50
|
type DefaultProps = Required<Pick<ToggleProps, 'disabled' | 'loading' | 'captionPosition' | 'disableAnimations'>>;
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* `Toggle` нельзя использовать для выбора элементов в списке. Например, выбрать несколько писем.
|
|
52
|
+
* Тогл переключает состояния. Например, включает или отключает уведомления в настройках.
|
|
53
|
+
* Состоит из надписи и переключателя.
|
|
56
54
|
*/
|
|
57
55
|
export declare class Toggle extends React.Component<ToggleProps, ToggleState> {
|
|
58
56
|
static __KONTUR_REACT_UI__: string;
|