@skbkontur/react-ui 3.9.2 → 3.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/Button/Button.d.ts +3 -0
  3. package/cjs/components/Button/Button.js +8 -1
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Checkbox/Checkbox.d.ts +0 -1
  6. package/cjs/components/Checkbox/Checkbox.js +21 -18
  7. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  8. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +2 -1
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +29 -1
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  12. package/cjs/components/Gapped/Gapped.js +14 -9
  13. package/cjs/components/Gapped/Gapped.js.map +1 -1
  14. package/cjs/components/Input/Input.d.ts +4 -0
  15. package/cjs/components/Input/Input.js +9 -0
  16. package/cjs/components/Input/Input.js.map +1 -1
  17. package/cjs/components/Loader/Loader.js +2 -1
  18. package/cjs/components/Loader/Loader.js.map +1 -1
  19. package/cjs/components/Radio/Radio.js +4 -1
  20. package/cjs/components/Radio/Radio.js.map +1 -1
  21. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -10
  22. package/cjs/components/RadioGroup/RadioGroup.js +10 -11
  23. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  24. package/cjs/components/Select/Select.js +3 -2
  25. package/cjs/components/Select/Select.js.map +1 -1
  26. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  27. package/cjs/components/SidePage/SidePage.js +3 -1
  28. package/cjs/components/SidePage/SidePage.js.map +1 -1
  29. package/cjs/internal/Popup/Popup.js +5 -1
  30. package/cjs/internal/Popup/Popup.js.map +1 -1
  31. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  32. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  33. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  34. package/cjs/lib/getDisplayName.d.ts +3 -0
  35. package/cjs/lib/getDisplayName.js +9 -0
  36. package/cjs/lib/getDisplayName.js.map +1 -0
  37. package/cjs/lib/withClassWrapper.d.ts +71 -0
  38. package/cjs/lib/withClassWrapper.js +59 -0
  39. package/cjs/lib/withClassWrapper.js.map +1 -0
  40. package/components/Button/Button/Button.js +10 -0
  41. package/components/Button/Button/Button.js.map +1 -1
  42. package/components/Button/Button.d.ts +3 -0
  43. package/components/Checkbox/Checkbox/Checkbox.js +18 -20
  44. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  45. package/components/Checkbox/Checkbox.d.ts +0 -1
  46. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +34 -1
  47. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  48. package/components/CurrencyInput/CurrencyInput.d.ts +2 -1
  49. package/components/Gapped/Gapped/Gapped.js +9 -10
  50. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  51. package/components/Gapped/Gapped.d.ts +1 -0
  52. package/components/Input/Input/Input.js +8 -0
  53. package/components/Input/Input/Input.js.map +1 -1
  54. package/components/Input/Input.d.ts +4 -0
  55. package/components/Loader/Loader/Loader.js +3 -2
  56. package/components/Loader/Loader/Loader.js.map +1 -1
  57. package/components/Radio/Radio/Radio.js +4 -1
  58. package/components/Radio/Radio/Radio.js.map +1 -1
  59. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -0
  60. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  61. package/components/RadioGroup/RadioGroup.d.ts +9 -10
  62. package/components/Select/Select/Select.js +6 -1
  63. package/components/Select/Select/Select.js.map +1 -1
  64. package/components/SidePage/SidePage/SidePage.js +2 -0
  65. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  66. package/components/SidePage/SidePage.d.ts +1 -0
  67. package/internal/Popup/Popup/Popup.js +6 -1
  68. package/internal/Popup/Popup/Popup.js.map +1 -1
  69. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  70. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  71. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  72. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  73. package/lib/getDisplayName/getDisplayName.js +3 -0
  74. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  75. package/lib/getDisplayName/package.json +6 -0
  76. package/lib/getDisplayName.d.ts +3 -0
  77. package/lib/withClassWrapper/package.json +6 -0
  78. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  79. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  80. package/lib/withClassWrapper.d.ts +71 -0
  81. package/package.json +4 -2
@@ -9,6 +9,7 @@ import { OkIcon, SquareIcon } from "../../../internal/icons/16px";
9
9
  import { isEdge, isFirefox, isIE11 } from "../../../lib/client";
10
10
  import { CommonWrapper } from "../../../internal/CommonWrapper";
11
11
  import { cx } from "../../../lib/theming/Emotion";
12
+ import { fixFirefoxModifiedClickOnLabel } from "../../../lib/events/fixFirefoxModifiedClickOnLabel";
12
13
  import { styles, globalClasses } from "../Checkbox.styles";
13
14
  export var Checkbox = /*#__PURE__*/function (_React$Component) {
14
15
  _inheritsLoose(Checkbox, _React$Component);
@@ -26,11 +27,11 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
26
27
  indeterminate: _this.props.initialIndeterminate || false
27
28
  };
28
29
  _this.theme = void 0;
29
- _this.input = void 0;
30
+ _this.input = /*#__PURE__*/React.createRef();
30
31
 
31
32
  _this.componentDidMount = function () {
32
- if (_this.state.indeterminate && _this.input) {
33
- _this.input.indeterminate = true;
33
+ if (_this.state.indeterminate && _this.input.current) {
34
+ _this.input.current.indeterminate = true;
34
35
  }
35
36
  };
36
37
 
@@ -39,8 +40,8 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
39
40
  indeterminate: true
40
41
  });
41
42
 
42
- if (_this.input) {
43
- _this.input.indeterminate = true;
43
+ if (_this.input.current) {
44
+ _this.input.current.indeterminate = true;
44
45
  }
45
46
  };
46
47
 
@@ -49,8 +50,8 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
49
50
  indeterminate: false
50
51
  });
51
52
 
52
- if (_this.input) {
53
- _this.input.indeterminate = false;
53
+ if (_this.input.current) {
54
+ _this.input.current.indeterminate = false;
54
55
  }
55
56
  };
56
57
 
@@ -77,7 +78,7 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
77
78
  onFocus: _this.handleFocus,
78
79
  onBlur: _this.handleBlur,
79
80
  onClick: _this.handleClick,
80
- ref: _this.inputRef
81
+ ref: _this.input
81
82
  });
82
83
 
83
84
  var caption = null;
@@ -103,7 +104,8 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
103
104
  className: rootClass,
104
105
  onMouseEnter: onMouseEnter,
105
106
  onMouseLeave: onMouseLeave,
106
- onMouseOver: onMouseOver
107
+ onMouseOver: onMouseOver,
108
+ onClick: fixFirefoxModifiedClickOnLabel(_this.input)
107
109
  }, /*#__PURE__*/React.createElement("input", inputProps), box, caption);
108
110
  };
109
111
 
@@ -133,10 +135,6 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
133
135
  });
134
136
  };
135
137
 
136
- _this.inputRef = function (ref) {
137
- _this.input = ref;
138
- };
139
-
140
138
  _this.handleChange = function (event) {
141
139
  var checked = event.currentTarget.checked;
142
140
  _this.props.onValueChange == null ? void 0 : _this.props.onValueChange(checked);
@@ -155,12 +153,12 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
155
153
  // because we cant simulate real native onChange event
156
154
 
157
155
 
158
- if (_this.props.onValueChange && _this.input) {
159
- var checked = !_this.input.checked;
156
+ if (_this.props.onValueChange && _this.input.current) {
157
+ var checked = !_this.input.current.checked;
160
158
 
161
159
  if (_this.props.checked === undefined) {
162
160
  // in case of uncontrolled mode
163
- _this.input.checked = checked;
161
+ _this.input.current.checked = checked;
164
162
  }
165
163
 
166
164
  _this.props.onValueChange(checked);
@@ -194,10 +192,10 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
194
192
  ;
195
193
 
196
194
  _proto.focus = function focus() {
197
- var _this$input;
195
+ var _this$input$current;
198
196
 
199
197
  keyListener.isTabPressed = true;
200
- (_this$input = this.input) == null ? void 0 : _this$input.focus();
198
+ (_this$input$current = this.input.current) == null ? void 0 : _this$input$current.focus();
201
199
  }
202
200
  /**
203
201
  * Программное снятие фокуса с чекбокса.
@@ -206,9 +204,9 @@ export var Checkbox = /*#__PURE__*/function (_React$Component) {
206
204
  ;
207
205
 
208
206
  _proto.blur = function blur() {
209
- var _this$input2;
207
+ var _this$input$current2;
210
208
 
211
- (_this$input2 = this.input) == null ? void 0 : _this$input2.blur();
209
+ (_this$input$current2 = this.input.current) == null ? void 0 : _this$input$current2.blur();
212
210
  }
213
211
  /**
214
212
  * Устанавливает чекбокс в HTML-состояние `indeterminate`.
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isFirefox","isIE11","CommonWrapper","cx","styles","globalClasses","Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","theme","input","componentDidMount","setIndeterminate","setState","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","rest","isIndeterminate","rootClass","root","rootFallback","rootChecked","checked","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","inputRef","caption","children","captionClass","captionIE11","iconClass","iconUnchecked","iconFixBaseline","box","boxChecked","boxDisabled","boxFocus","boxError","boxWarning","e","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","UNSAFE_componentWillReceiveProps","nextProps","render","focus","blur","Component","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isFirefox, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Checkbox.styles';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n}\n\nexport class Checkbox extends React.Component<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n };\n\n private theme!: Theme;\n private input: Nullable<HTMLInputElement>;\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input) {\n this.input.indeterminate = true;\n }\n };\n\n public UNSAFE_componentWillReceiveProps(nextProps: CheckboxProps) {\n if (nextProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input) {\n this.input.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input) {\n this.input.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.inputRef,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const iconClass = cx({\n [styles.iconUnchecked()]: !props.checked && !isIndeterminate,\n [styles.iconFixBaseline()]: isFirefox || isIE11 || isEdge,\n });\n\n const box = (\n <span\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxDisabled(this.theme)]: props.disabled,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n })}\n >\n {(isIndeterminate && <SquareIcon className={iconClass} />) || <OkIcon className={iconClass} />}\n </span>\n );\n\n return (\n <label className={rootClass} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} onMouseOver={onMouseOver}>\n <input {...inputProps} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private inputRef = (ref: HTMLInputElement | null) => {\n this.input = ref;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input) {\n const checked = !this.input.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isFirefox","isIE11","CommonWrapper","cx","fixFirefoxModifiedClickOnLabel","styles","globalClasses","Checkbox","state","focusedByTab","indeterminate","props","initialIndeterminate","theme","input","createRef","componentDidMount","current","setIndeterminate","setState","resetIndeterminate","renderMain","error","warning","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","rest","isIndeterminate","rootClass","root","rootFallback","rootChecked","checked","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","iconClass","iconUnchecked","iconFixBaseline","box","boxChecked","boxDisabled","boxFocus","boxError","boxWarning","e","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","UNSAFE_componentWillReceiveProps","nextProps","render","focus","blur","Component","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isFirefox, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\n\nimport { styles, globalClasses } from './Checkbox.styles';\n\nexport interface CheckboxProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n}\n\nexport class Checkbox extends React.Component<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n public UNSAFE_componentWillReceiveProps(nextProps: CheckboxProps) {\n if (nextProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const rootClass = cx({\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const iconClass = cx({\n [styles.iconUnchecked()]: !props.checked && !isIndeterminate,\n [styles.iconFixBaseline()]: isFirefox || isIE11 || isEdge,\n });\n\n const box = (\n <span\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxDisabled(this.theme)]: props.disabled,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n })}\n >\n {(isIndeterminate && <SquareIcon className={iconClass} />) || <OkIcon className={iconClass} />}\n </span>\n );\n\n return (\n <label\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
@@ -90,7 +90,6 @@ export declare class Checkbox extends React.Component<CheckboxProps, CheckboxSta
90
90
  private renderMain;
91
91
  private handleFocus;
92
92
  private handleBlur;
93
- private inputRef;
94
93
  private handleChange;
95
94
  private handleClick;
96
95
  }
@@ -219,6 +219,35 @@ export var CurrencyInput = /*#__PURE__*/function (_React$Component) {
219
219
  }
220
220
  };
221
221
 
222
+ _this.scrollInput = function () {
223
+ var _this$input;
224
+
225
+ var node = (_this$input = _this.input) == null ? void 0 : _this$input.getNode();
226
+
227
+ if (!node || node.scrollWidth === node.clientWidth) {
228
+ return;
229
+ }
230
+
231
+ var PAD = 1;
232
+ var SHIFT = 3;
233
+ var selection = _this.state.selection;
234
+ var selected = selection.start !== selection.end;
235
+ var position = selected && selection.direction === 'forward' ? selection.end : selection.start;
236
+ var charsCount = _this.state.formatted.length;
237
+ var charWidth = node.scrollWidth / charsCount;
238
+ var frame = Math.ceil(node.clientWidth / charWidth);
239
+ var frameStart = Math.ceil(node.scrollLeft / charWidth);
240
+ var frameEnd = frameStart + frame;
241
+
242
+ if (position < frameStart + PAD) {
243
+ node.scrollLeft = (position - SHIFT) * charWidth;
244
+ }
245
+
246
+ if (position > frameEnd - PAD) {
247
+ node.scrollLeft = (position - frame + SHIFT) * charWidth;
248
+ }
249
+ };
250
+
222
251
  _this.getSelection = function (input) {
223
252
  var selection = getInputSelectionFromEvent(input);
224
253
  return {
@@ -402,13 +431,17 @@ export var CurrencyInput = /*#__PURE__*/function (_React$Component) {
402
431
  }
403
432
  };
404
433
 
405
- _proto.componentDidUpdate = function componentDidUpdate() {
434
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
406
435
  if (this.state.focused && this.input) {
407
436
  var _this$state$selection = this.state.selection,
408
437
  start = _this$state$selection.start,
409
438
  end = _this$state$selection.end;
410
439
  this.input.setSelectionRange(start, end);
411
440
  }
441
+
442
+ if (prevState.selection !== this.state.selection) {
443
+ this.scrollInput();
444
+ }
412
445
  };
413
446
 
414
447
  _proto.render = function render() {
@@ -1 +1 @@
1
- {"version":3,"sources":["CurrencyInput.tsx"],"names":["React","PropTypes","warning","debounce","isIE11","Input","CommonWrapper","MAX_SAFE_DIGITS","SelectionHelper","CurrencyHelper","CurrencyInputHelper","CURRENCY_INPUT_ACTIONS","extractAction","CurrencyInput","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","input","tempSelectionForOnChange","fromPosition","renderMain","signed","onSubmit","integerDigits","rest","placeholder","format","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","focus","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","getInputSelectionFromEvent","direction","step","position","extended","result","safeInsert","unsigned","parsedValue","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLenght","onFocus","onBlur","element","componentDidMount","maxLength","undefined","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","setSelectionRange","render","normilized","normalizeSelection","Component","__KONTUR_REACT_UI__","propTypes","align","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","string","size","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros: boolean;\n /** Кол-во цифр после зяпятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\nexport class CurrencyInput extends React.Component<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: PropTypes.number,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n public state: CurrencyInputState = {\n ...this.getState(this.props.value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n\n public componentDidMount(): void {\n const { maxLength, integerDigits, fractionDigits } = this.props;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: CurrencyInputProps) {\n const { value, fractionDigits, hideTrailingZeros } = nextProps;\n if (value !== CurrencyHelper.parse(this.state.formatted) || fractionDigits !== this.props.fractionDigits) {\n const state = this.getState(value, fractionDigits, hideTrailingZeros);\n this.setState(state);\n }\n }\n\n public componentDidUpdate() {\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n }\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n const placeholder =\n this.props.placeholder == null\n ? CurrencyHelper.format(0, { fractionDigits, hideTrailingZeros })\n : this.props.placeholder;\n\n return (\n <Input\n {...rest}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : placeholder}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.props.fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (delta != null && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLenght = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLenght,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLenght,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart!,\n end: input.selectionEnd!,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n"]}
1
+ {"version":3,"sources":["CurrencyInput.tsx"],"names":["React","PropTypes","warning","debounce","isIE11","Input","CommonWrapper","MAX_SAFE_DIGITS","SelectionHelper","CurrencyHelper","CurrencyInputHelper","CURRENCY_INPUT_ACTIONS","extractAction","CurrencyInput","state","getState","props","value","fractionDigits","hideTrailingZeros","focused","input","tempSelectionForOnChange","fromPosition","renderMain","signed","onSubmit","integerDigits","rest","placeholder","format","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","focus","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","scrollInput","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLenght","onFocus","onBlur","element","componentDidMount","maxLength","undefined","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","prevProps","prevState","setSelectionRange","render","normilized","normalizeSelection","Component","__KONTUR_REACT_UI__","propTypes","align","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","string","size","width","oneOfType","func","isRequired","defaultProps","inputMode","HTMLInputElement","Error"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros: boolean;\n /** Кол-во цифр после зяпятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\nexport class CurrencyInput extends React.Component<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: PropTypes.number,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n public state: CurrencyInputState = {\n ...this.getState(this.props.value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n\n public componentDidMount(): void {\n const { maxLength, integerDigits, fractionDigits } = this.props;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: CurrencyInputProps) {\n const { value, fractionDigits, hideTrailingZeros } = nextProps;\n if (value !== CurrencyHelper.parse(this.state.formatted) || fractionDigits !== this.props.fractionDigits) {\n const state = this.getState(value, fractionDigits, hideTrailingZeros);\n this.setState(state);\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<CurrencyInputProps>, prevState: Readonly<CurrencyInputState>) {\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n const placeholder =\n this.props.placeholder == null\n ? CurrencyHelper.format(0, { fractionDigits, hideTrailingZeros })\n : this.props.placeholder;\n\n return (\n <Input\n {...rest}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : placeholder}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.props.fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (delta != null && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLenght = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLenght,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLenght,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.props.fractionDigits, this.props.hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart!,\n end: input.selectionEnd!,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n"]}
@@ -74,7 +74,7 @@ export declare class CurrencyInput extends React.Component<CurrencyInputProps, C
74
74
  private tempSelectionForOnChange;
75
75
  componentDidMount(): void;
76
76
  UNSAFE_componentWillReceiveProps(nextProps: CurrencyInputProps): void;
77
- componentDidUpdate(): void;
77
+ componentDidUpdate(prevProps: Readonly<CurrencyInputProps>, prevState: Readonly<CurrencyInputState>): void;
78
78
  render(): JSX.Element;
79
79
  renderMain: (props: CommonWrapperRestProps<CurrencyInputProps>) => JSX.Element;
80
80
  /**
@@ -90,6 +90,7 @@ export declare class CurrencyInput extends React.Component<CurrencyInputProps, C
90
90
  private readonly debouncedSetSelectionFromEvent;
91
91
  private handleMouseUp;
92
92
  private handleKeyDown;
93
+ private scrollInput;
93
94
  private getSelection;
94
95
  private moveCursor;
95
96
  private extendSelection;
@@ -51,16 +51,11 @@ export var Gapped = /*#__PURE__*/function (_React$Component) {
51
51
  var subsequentItemStyle = {
52
52
  paddingTop: this.getGapValue()
53
53
  };
54
- var isFirst = true;
55
- var children = React.Children.map(this.props.children, function (child) {
56
- if (!child) {
57
- return child;
58
- }
59
-
60
- var style = isFirst ? undefined : subsequentItemStyle;
61
- isFirst = false;
54
+ var children = React.Children.toArray(this.props.children).filter(this.filterChildren).map(function (child, index) {
55
+ var style = index === 0 ? undefined : subsequentItemStyle;
62
56
  return /*#__PURE__*/React.createElement("div", {
63
- style: style
57
+ style: style,
58
+ key: index
64
59
  }, child);
65
60
  });
66
61
  return /*#__PURE__*/React.createElement("div", null, children);
@@ -94,7 +89,7 @@ export var Gapped = /*#__PURE__*/function (_React$Component) {
94
89
  style: rootStyle
95
90
  }, /*#__PURE__*/React.createElement("div", {
96
91
  style: contStyle
97
- }, React.Children.toArray(children).map(function (child, index) {
92
+ }, React.Children.toArray(children).filter(this.filterChildren).map(function (child, index) {
98
93
  var marginLeft = index === 0 ? undefined : gap;
99
94
  return /*#__PURE__*/React.createElement("span", {
100
95
  key: index,
@@ -105,6 +100,10 @@ export var Gapped = /*#__PURE__*/function (_React$Component) {
105
100
  })));
106
101
  };
107
102
 
103
+ _proto.filterChildren = function filterChildren(child) {
104
+ return Boolean(child) || typeof child === 'number';
105
+ };
106
+
108
107
  return Gapped;
109
108
  }(React.Component);
110
109
  Gapped.__KONTUR_REACT_UI__ = 'Gapped';
@@ -1 +1 @@
1
- {"version":3,"sources":["Gapped.tsx"],"names":["React","PropTypes","CommonWrapper","is8pxTheme","ThemeContext","Gapped","theme","render","props","vertical","renderVertical","renderHorizontal","getGapValue","propsGap","gap","undefined","subsequentItemStyle","paddingTop","isFirst","children","Children","map","child","style","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","toArray","index","Component","__KONTUR_REACT_UI__","propTypes","number","bool","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { is8pxTheme } from '../../lib/theming/ThemeHelpers';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nexport interface GappedProps extends CommonProps {\n /**\n * Расстояние между элементами в пикселях\n * @default 8\n */\n gap?: number;\n /**\n * Вертикальное выравнивание\n * @default \"baseline\"\n */\n verticalAlign: 'top' | 'middle' | 'baseline' | 'bottom';\n /**\n * Расположение элементов по вертикали\n * @default false\n */\n vertical: boolean;\n /**\n * Перенос элементов на новую строку при горизонтальном расположении\n * @default false\n */\n wrap: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Контейнер, расстояние между элементами в котором равно `gap`.\n */\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = 'Gapped';\n\n public static propTypes = {\n /**\n * Расстояние между элементами.\n */\n gap: PropTypes.number,\n\n /**\n * Располагать элементы вертикально.\n */\n vertical: PropTypes.bool,\n\n /**\n * Вертикальное выравнивание элементов.\n */\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'baseline', 'bottom']),\n };\n\n private theme!: Theme;\n\n public static defaultProps = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper {...this.props}>\n {this.props.vertical ? this.renderVertical() : this.renderHorizontal()}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getGapValue() {\n // DEPRECATED remove in 4.0\n const { gap: propsGap } = this.props;\n if (propsGap !== undefined && propsGap !== null) {\n return propsGap;\n } else {\n const gap = is8pxTheme(this.theme) ? 8 : 10;\n return gap;\n }\n }\n\n private renderVertical() {\n const subsequentItemStyle: React.CSSProperties = {\n paddingTop: this.getGapValue(),\n };\n let isFirst = true;\n const children = React.Children.map(this.props.children, (child) => {\n if (!child) {\n return child;\n }\n const style = isFirst ? undefined : subsequentItemStyle;\n\n isFirst = false;\n\n return <div style={style}>{child}</div>;\n });\n\n return <div>{children}</div>;\n }\n\n private renderHorizontal() {\n const { children, verticalAlign, wrap } = this.props;\n const gap = this.getGapValue();\n const itemStyle: React.CSSProperties = {\n display: 'inline-block',\n verticalAlign,\n ...(wrap ? { marginLeft: gap, marginTop: gap } : {}),\n };\n const rootStyle: React.CSSProperties = wrap ? { paddingTop: 1 } : {};\n const contStyle: React.CSSProperties = wrap ? { marginTop: -gap - 1, marginLeft: -gap } : { whiteSpace: 'nowrap' };\n\n return (\n <div style={rootStyle}>\n <div style={contStyle}>\n {React.Children.toArray(children).map((child, index) => {\n const marginLeft = index === 0 ? undefined : gap;\n return (\n <span key={index} style={{ marginLeft, ...itemStyle }}>\n {child}\n </span>\n );\n })}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["Gapped.tsx"],"names":["React","PropTypes","CommonWrapper","is8pxTheme","ThemeContext","Gapped","theme","render","props","vertical","renderVertical","renderHorizontal","getGapValue","propsGap","gap","undefined","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","propTypes","number","bool","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { is8pxTheme } from '../../lib/theming/ThemeHelpers';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nexport interface GappedProps extends CommonProps {\n /**\n * Расстояние между элементами в пикселях\n * @default 8\n */\n gap?: number;\n /**\n * Вертикальное выравнивание\n * @default \"baseline\"\n */\n verticalAlign: 'top' | 'middle' | 'baseline' | 'bottom';\n /**\n * Расположение элементов по вертикали\n * @default false\n */\n vertical: boolean;\n /**\n * Перенос элементов на новую строку при горизонтальном расположении\n * @default false\n */\n wrap: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Контейнер, расстояние между элементами в котором равно `gap`.\n */\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = 'Gapped';\n\n public static propTypes = {\n /**\n * Расстояние между элементами.\n */\n gap: PropTypes.number,\n\n /**\n * Располагать элементы вертикально.\n */\n vertical: PropTypes.bool,\n\n /**\n * Вертикальное выравнивание элементов.\n */\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'baseline', 'bottom']),\n };\n\n private theme!: Theme;\n\n public static defaultProps = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper {...this.props}>\n {this.props.vertical ? this.renderVertical() : this.renderHorizontal()}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getGapValue() {\n // DEPRECATED remove in 4.0\n const { gap: propsGap } = this.props;\n if (propsGap !== undefined && propsGap !== null) {\n return propsGap;\n } else {\n const gap = is8pxTheme(this.theme) ? 8 : 10;\n return gap;\n }\n }\n\n private renderVertical() {\n const subsequentItemStyle: React.CSSProperties = {\n paddingTop: this.getGapValue(),\n };\n const children = React.Children.toArray(this.props.children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const style = index === 0 ? undefined : subsequentItemStyle;\n return (\n <div style={style} key={index}>\n {child}\n </div>\n );\n });\n\n return <div>{children}</div>;\n }\n\n private renderHorizontal() {\n const { children, verticalAlign, wrap } = this.props;\n const gap = this.getGapValue();\n const itemStyle: React.CSSProperties = {\n display: 'inline-block',\n verticalAlign,\n ...(wrap ? { marginLeft: gap, marginTop: gap } : {}),\n };\n const rootStyle: React.CSSProperties = wrap ? { paddingTop: 1 } : {};\n const contStyle: React.CSSProperties = wrap ? { marginTop: -gap - 1, marginLeft: -gap } : { whiteSpace: 'nowrap' };\n\n return (\n <div style={rootStyle}>\n <div style={contStyle}>\n {React.Children.toArray(children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const marginLeft = index === 0 ? undefined : gap;\n return (\n <span key={index} style={{ marginLeft, ...itemStyle }}>\n {child}\n </span>\n );\n })}\n </div>\n </div>\n );\n }\n\n private filterChildren(child: React.ReactNode): boolean {\n return Boolean(child) || typeof child === 'number';\n }\n}\n"]}
@@ -53,4 +53,5 @@ export declare class Gapped extends React.Component<GappedProps> {
53
53
  private getGapValue;
54
54
  private renderVertical;
55
55
  private renderHorizontal;
56
+ private filterChildren;
56
57
  }
@@ -326,6 +326,14 @@ export var Input = /*#__PURE__*/function (_React$Component) {
326
326
  */
327
327
  ;
328
328
 
329
+ _proto.getNode = function getNode() {
330
+ return this.input;
331
+ }
332
+ /**
333
+ * @public
334
+ */
335
+ ;
336
+
329
337
  _proto.blink = function blink() {
330
338
  var _this2 = this;
331
339