@skbkontur/react-ui 3.8.3 → 3.8.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 (48) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/components/Center/Center.d.ts +4 -8
  3. package/cjs/components/Center/Center.js +1 -6
  4. package/cjs/components/Center/Center.js.map +1 -1
  5. package/cjs/components/Center/Center.md +24 -3
  6. package/cjs/components/DateInput/DateInput.js +3 -1
  7. package/cjs/components/DateInput/DateInput.js.map +1 -1
  8. package/cjs/components/DateInput/DateInput.styles.d.ts +2 -0
  9. package/cjs/components/DateInput/DateInput.styles.js +13 -1
  10. package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
  11. package/cjs/components/RadioGroup/RadioGroup.d.ts +51 -61
  12. package/cjs/components/RadioGroup/RadioGroup.js +25 -71
  13. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  14. package/cjs/components/Select/Select.js +6 -1
  15. package/cjs/components/Select/Select.js.map +1 -1
  16. package/cjs/components/Select/Select.styles.d.ts +1 -0
  17. package/cjs/components/Select/Select.styles.js +15 -9
  18. package/cjs/components/Select/Select.styles.js.map +1 -1
  19. package/cjs/components/Select/selectTheme.js +5 -1
  20. package/cjs/components/Select/selectTheme.js.map +1 -1
  21. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  22. package/cjs/internal/themes/DefaultTheme.d.ts +4 -0
  23. package/cjs/internal/themes/DefaultTheme.js +12 -0
  24. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  25. package/components/Center/Center/Center.js +1 -2
  26. package/components/Center/Center/Center.js.map +1 -1
  27. package/components/Center/Center.d.ts +4 -8
  28. package/components/Center/Center.md +24 -3
  29. package/components/DateInput/DateInput/DateInput.js +7 -3
  30. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  31. package/components/DateInput/DateInput.styles/DateInput.styles.js +7 -1
  32. package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
  33. package/components/DateInput/DateInput.styles.d.ts +2 -0
  34. package/components/RadioGroup/RadioGroup/RadioGroup.js +0 -72
  35. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  36. package/components/RadioGroup/RadioGroup.d.ts +51 -61
  37. package/components/Select/Select/Select.js +2 -2
  38. package/components/Select/Select/Select.js.map +1 -1
  39. package/components/Select/Select.styles/Select.styles.js +12 -9
  40. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  41. package/components/Select/Select.styles.d.ts +1 -0
  42. package/components/Select/selectTheme/selectTheme.js +4 -1
  43. package/components/Select/selectTheme/selectTheme.js.map +1 -1
  44. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  45. package/internal/themes/DefaultTheme/DefaultTheme.js +20 -0
  46. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  47. package/internal/themes/DefaultTheme.d.ts +4 -0
  48. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,19 @@
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
+ ## [3.8.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@3.8.3...@skbkontur/react-ui@3.8.4) (2021-11-03)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **DatePicker:** width for different sizes with empty value ([#2614](https://github.com/skbkontur/retail-ui/issues/2614)) ([cb5254f](https://github.com/skbkontur/retail-ui/commit/cb5254f10d92456018b1ead3790f8bbade0f34e0))
12
+ * **RadioGroup:** problem with value type inference ([#2607](https://github.com/skbkontur/retail-ui/issues/2607)) ([d6136e4](https://github.com/skbkontur/retail-ui/commit/d6136e45a311b00f39bc5c741cef07aacf8d2f4f))
13
+ * **Select:** add vars for disabled state ([#2610](https://github.com/skbkontur/retail-ui/issues/2610)) ([7300141](https://github.com/skbkontur/retail-ui/commit/73001417ba004754c8f52da377ceff1fff0b6027))
14
+
15
+
16
+
17
+
18
+
6
19
  ## [3.8.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@3.8.2...@skbkontur/react-ui@3.8.3) (2021-11-02)
7
20
 
8
21
 
@@ -4,19 +4,15 @@ import { CommonProps } from '../../internal/CommonWrapper';
4
4
  export declare type HorizontalAlign = 'left' | 'center' | 'right';
5
5
  export interface CenterProps extends CommonProps, Override<React.HTMLAttributes<HTMLDivElement>, {
6
6
  /**
7
- * Горизонтальное выравнивание контента.
7
+ * Определяет, как контент будет выровнен по горизонтали.
8
+ *
9
+ * **Допустимые значения**: `"left"`, `"center"`, `"right"`.
8
10
  */
9
11
  align?: HorizontalAlign;
10
- /**
11
- * **Используй с осторожностью!**
12
- * Дополнительные стили
13
- */
14
- style?: React.CSSProperties;
15
12
  }> {
16
13
  }
17
14
  /**
18
- * Контейнер для вертикального центрирования. В компонент можно передавать
19
- * свойства как в любой *div* (кроме `className`)
15
+ * Контейнер, который центрирует элементы внутри себя.
20
16
  */
21
17
  export declare class Center extends React.Component<CenterProps> {
22
18
  static __KONTUR_REACT_UI__: string;
@@ -21,14 +21,9 @@ var _Center = require("./Center.styles");
21
21
 
22
22
 
23
23
 
24
-
25
-
26
-
27
-
28
24
 
29
25
  /**
30
- * Контейнер для вертикального центрирования. В компонент можно передавать
31
- * свойства как в любой *div* (кроме `className`)
26
+ * Контейнер, который центрирует элементы внутри себя.
32
27
  */var
33
28
  Center = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Center, _React$Component);function Center() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
34
29
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Center.tsx"],"names":["Center","renderMain","props","align","rest","styles","root","rootAlignLeft","rootAlignRight","spring","container","children","render","React","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"gcAAA;;;AAGA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBA;AACA;AACA;AACA,G;AACaA,M;;;;;;;;;;AAUHC,IAAAA,U,GAAa,UAACC,KAAD,EAAgD;AAC3DC,MAAAA,KAD2D,GACxCD,KADwC,CAC3DC,KAD2D,CACjDC,IADiD,+CACxCF,KADwC;;AAGnE;AACE;AACME,QAAAA,IADN;AAEE,UAAA,SAAS,EAAE;AACRC,yBAAOC,IAAP,EADQ,IACQ,IADR;AAERD,yBAAOE,aAAP,EAFQ,IAEiBJ,KAAK,KAAK,MAF3B;AAGRE,yBAAOG,cAAP,EAHQ,IAGkBL,KAAK,KAAK,OAH5B,OAFb;;;AAQE,+CAAM,SAAS,EAAEE,eAAOI,MAAP,EAAjB,GARF;AASE,+CAAM,SAAS,EAAEJ,eAAOK,SAAP,EAAjB,IAAsC,MAAKR,KAAL,CAAWS,QAAjD,CATF,CADF;;;AAaD,K,oDAnBMC,M,GAAP,kBAAgB,CACd,oBAAO,6BAAC,4BAAD,EAAmB,KAAKV,KAAxB,EAAgC,KAAKD,UAArC,CAAP,CACD,C,iBATyBY,eAAMC,S,0BAArBd,M,CACGe,mB,GAAsB,Q,CADzBf,M,CAGGgB,Y,GAAe,EAC3Bb,KAAK,EAAE,QADoB,E","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './Center.styles';\n\nexport type HorizontalAlign = 'left' | 'center' | 'right';\n\nexport interface CenterProps\n extends CommonProps,\n Override<\n React.HTMLAttributes<HTMLDivElement>,\n {\n /**\n * Горизонтальное выравнивание контента.\n */\n align?: HorizontalAlign;\n\n /**\n * **Используй с осторожностью!**\n * Дополнительные стили\n */\n style?: React.CSSProperties;\n }\n > {}\n\n/**\n * Контейнер для вертикального центрирования. В компонент можно передавать\n * свойства как в любой *div* (кроме `className`)\n */\nexport class Center extends React.Component<CenterProps> {\n public static __KONTUR_REACT_UI__ = 'Center';\n\n public static defaultProps = {\n align: 'center',\n };\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n private renderMain = (props: CommonWrapperRestProps<CenterProps>) => {\n const { align, ...rest } = props;\n\n return (\n <div\n {...rest}\n className={cx({\n [styles.root()]: true,\n [styles.rootAlignLeft()]: align === 'left',\n [styles.rootAlignRight()]: align === 'right',\n })}\n >\n <span className={styles.spring()} />\n <span className={styles.container()}>{this.props.children}</span>\n </div>\n );\n };\n}\n"]}
1
+ {"version":3,"sources":["Center.tsx"],"names":["Center","renderMain","props","align","rest","styles","root","rootAlignLeft","rootAlignRight","spring","container","children","render","React","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"gcAAA;;;AAGA;AACA;;AAEA;;;;;;;;;;;;;;;;;;AAkBA;AACA;AACA,G;AACaA,M;;;;;;;;;;AAUHC,IAAAA,U,GAAa,UAACC,KAAD,EAAgD;AAC3DC,MAAAA,KAD2D,GACxCD,KADwC,CAC3DC,KAD2D,CACjDC,IADiD,+CACxCF,KADwC;;AAGnE;AACE;AACME,QAAAA,IADN;AAEE,UAAA,SAAS,EAAE;AACRC,yBAAOC,IAAP,EADQ,IACQ,IADR;AAERD,yBAAOE,aAAP,EAFQ,IAEiBJ,KAAK,KAAK,MAF3B;AAGRE,yBAAOG,cAAP,EAHQ,IAGkBL,KAAK,KAAK,OAH5B,OAFb;;;AAQE,+CAAM,SAAS,EAAEE,eAAOI,MAAP,EAAjB,GARF;AASE,+CAAM,SAAS,EAAEJ,eAAOK,SAAP,EAAjB,IAAsC,MAAKR,KAAL,CAAWS,QAAjD,CATF,CADF;;;AAaD,K,oDAnBMC,M,GAAP,kBAAgB,CACd,oBAAO,6BAAC,4BAAD,EAAmB,KAAKV,KAAxB,EAAgC,KAAKD,UAArC,CAAP,CACD,C,iBATyBY,eAAMC,S,0BAArBd,M,CACGe,mB,GAAsB,Q,CADzBf,M,CAGGgB,Y,GAAe,EAC3Bb,KAAK,EAAE,QADoB,E","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './Center.styles';\n\nexport type HorizontalAlign = 'left' | 'center' | 'right';\n\nexport interface CenterProps\n extends CommonProps,\n Override<\n React.HTMLAttributes<HTMLDivElement>,\n {\n /**\n * Определяет, как контент будет выровнен по горизонтали.\n *\n * **Допустимые значения**: `\"left\"`, `\"center\"`, `\"right\"`.\n */\n align?: HorizontalAlign;\n }\n > {}\n\n/**\n * Контейнер, который центрирует элементы внутри себя.\n */\nexport class Center extends React.Component<CenterProps> {\n public static __KONTUR_REACT_UI__ = 'Center';\n\n public static defaultProps = {\n align: 'center',\n };\n\n public render() {\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }\n private renderMain = (props: CommonWrapperRestProps<CenterProps>) => {\n const { align, ...rest } = props;\n\n return (\n <div\n {...rest}\n className={cx({\n [styles.root()]: true,\n [styles.rootAlignLeft()]: align === 'left',\n [styles.rootAlignRight()]: align === 'right',\n })}\n >\n <span className={styles.spring()} />\n <span className={styles.container()}>{this.props.children}</span>\n </div>\n );\n };\n}\n"]}
@@ -1,5 +1,26 @@
1
+ Пример использования.
2
+
1
3
  ```jsx harmony
2
- <Center style={{ background: '#fdd', height: 150 }}>
3
- <div style={{ background: 'black', width: 30, height: 30 }} />
4
- </Center>
4
+ import { Switcher, Gapped } from '@skbkontur/react-ui';
5
+
6
+ const [alignAt, setAlignAt] = React.useState("center");
7
+
8
+ <Gapped vertical gap="12px">
9
+ <Switcher
10
+ items={[
11
+ {label: "Слева", value: "left"},
12
+ {label: "По центру", value: "center"},
13
+ {label: "Справа", value: "right"}
14
+ ]}
15
+ value={alignAt}
16
+ onValueChange={setAlignAt}
17
+ />
18
+
19
+ <Center
20
+ align={alignAt}
21
+ style={{ background: '#fdd', height: 150 }}
22
+ >
23
+ <div style={{ background: 'black', width: 30, height: 30 }} />
24
+ </Center>
25
+ </Gapped>
5
26
  ```
@@ -212,6 +212,8 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
212
212
 
213
213
 
214
214
 
215
+
216
+
215
217
 
216
218
 
217
219
 
@@ -428,4 +430,4 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
428
430
  _this.shiftSelection(1);
429
431
  }
430
432
  _this.updateValue({ inputMode: inputMode });
431
- };_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevProps.value !== this.props.value || prevProps.minDate !== this.props.minDate || prevProps.maxDate !== this.props.maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps();}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps();if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var fragments = focused || valueFormatted !== '' ? this.iDateMediator.getFragments() : [];return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: this.props.width, ref: this.inputLikeTextRef, size: this.props.size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: fragments, onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode })));};return DateInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'DateInput', _class2.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _temp)) || _class);exports.DateInput = DateInput;
433
+ };_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevProps.value !== this.props.value || prevProps.minDate !== this.props.minDate || prevProps.maxDate !== this.props.maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps();}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps();if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: this.props.width, ref: this.inputLikeTextRef, size: this.props.size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput.styles.value(), (_cx2 = {}, _cx2[_DateInput.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode }))));};return DateInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'DateInput', _class2.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _temp)) || _class);exports.DateInput = DateInput;
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","props","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","locale","blurEvent","theme","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","iconStyles","styles","icon","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","fragments","getFragments","width","error","warning","onClick","React","Component","__KONTUR_REACT_UI__","defaultProps","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"uUAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDaA,S,WADZ,wBAAO,YAAP,EAAqBC,8BAArB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCC,qBAAYC,KAAZ,EAAmC;AACjC,wCAAMA,KAAN,UADiC,MAxB3BC,aAwB2B,GAxBW,IAAIC,0CAAJ,EAwBX,OAvB3BC,aAuB2B,GAvBW,IAuBX,OAtB3BC,iBAsB2B,GAtBmB,IAsBnB,OArB3BC,WAqB2B,GArBb,KAqBa,OApB3BC,YAoB2B,GApBZ,KAoBY,OAnB3BC,iBAmB2B,GAnBP,KAmBO,OAlB3BC,MAkB2B,gBAjB3BC,SAiB2B,GAjBuB,IAiBvB,OAhB3BC,KAgB2B,gBAf3BC,kBAe2B,GAfN,IAAIC,sCAAJ,GAC1BC,GAD0B,CACtBC,kCAAQC,iBADc,EACK,oBAAM,MAAKC,cAAL,CAAoB,CAAC,CAArB,CAAN,EADL,EAE1BH,GAF0B,CAEtBC,kCAAQG,kBAFc,EAEM,oBAAM,MAAKD,cAAL,CAAoB,CAApB,CAAN,EAFN,EAG1BH,GAH0B,CAGtBC,kCAAQI,SAHc,EAGH,oBAAM,MAAKC,cAAL,EAAN,EAHG,EAI1BN,GAJ0B,CAItBC,kCAAQM,kBAJc,EAIM,oBAAM,MAAKC,mBAAL,CAAyB,MAAKpB,aAAL,CAAmBqB,eAAnB,EAAzB,CAAN,EAJN,EAK1BT,GAL0B,CAKtBC,kCAAQS,iBALc,EAKK,oBAAM,MAAKF,mBAAL,CAAyB,MAAKpB,aAAL,CAAmBuB,gBAAnB,EAAzB,CAAN,EALL,EAM1BX,GAN0B,CAMtBC,kCAAQW,SANc,EAMH,oBAAM,MAAKC,kBAAL,CAAwB,CAAxB,CAAN,EANG,EAO1Bb,GAP0B,CAOtBC,kCAAQa,SAPc,EAOH,oBAAM,MAAKD,kBAAL,CAAwB,CAAC,CAAzB,CAAN,EAPG,EAQ1Bb,GAR0B,CAQtBC,kCAAQc,KARc,EAQP,UAACC,CAAD,UAAO,MAAKC,UAAL,CAAgBD,CAAhB,CAAP,EARO,EAS1BhB,GAT0B,CAStBC,kCAAQiB,cATc,EASE,oBAAM,MAAKC,aAAL,EAAN,EATF,EAU1BnB,GAV0B,CAUtBC,kCAAQmB,YAVc,EAUA,oBAAM,MAAKC,YAAL,EAAN,EAVA,EAW1BrB,GAX0B,CAWtBC,kCAAQqB,aAXc,EAWC,oBAAM,MAAKC,aAAL,EAAN,EAXD,EAY1BvB,GAZ0B,CAYtBC,kCAAQuB,UAZc,EAYF,oBAAM,MAAKC,KAAL,EAAN,EAZE,EAa1BC,KAb0B,EAeM;;;;;;;;;;;;;;;;;;;;;;;AAwB5BC,IAAAA,UAxB4B,GAwBf,YAAM;AACxB,UAAMC,IAAI,GAAG,MAAKC,KAAL,CAAWC,QAAxB;AACA,UAAMvC,iBAAiB,GAAG,MAAKA,iBAAL,IAA0B,MAAKA,iBAAL,CAAuBwC,WAAvB,EAApD;AACA,UAAIH,IAAI,KAAK,IAAT,IAAiB,CAAC,MAAKtC,aAAvB,IAAwC,CAACC,iBAA7C,EAAgE;AAC9D;AACD;AACD,UAAIqC,IAAI,KAAKI,iCAA0BC,GAAvC,EAA4C;AAC1C,cAAK3C,aAAL,CAAmB4C,eAAnB,CAAmC3C,iBAAnC,EAAsD,CAAtD,EAAyD,CAAzD;AACA;AACD;AACD,UAAM4C,KAAK,GAAG,MAAK/C,aAAL,CAAmBgD,aAAnB,GAAmCC,OAAnC,CAA2CT,IAA3C,CAAd;AACA,UAAIO,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,cAAK7C,aAAL,CAAmB4C,eAAnB,CAAmC3C,iBAAnC,EAAsD4C,KAAK,GAAG,CAA9D,EAAiEA,KAAK,GAAG,CAAR,GAAY,CAA7E;AACD;AACF,KAtCkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmH3BG,IAAAA,UAnH2B,GAmHd,YAAM;AACoB,YAAKnD,KADzB,CACjBoD,QADiB,eACjBA,QADiB,CACPC,IADO,eACPA,IADO,oCACDC,QADC,CACDA,QADC,qCACU,KADV;;AAGzB,UAAIF,QAAJ,EAAc;AACZ,YAAM1C,KAAK,GAAG,MAAKA,KAAnB;AACA,YAAM6C,UAAU,GAAG;AAChBC,0BAAOC,IAAP,CAAY/C,KAAZ,CADgB,IACK,IADL;AAEhB8C,0BAAOE,SAAP,CAAiBhD,KAAjB,CAFgB,IAEU2C,IAAI,KAAK,OAFnB;AAGhBG,0BAAOG,UAAP,CAAkBjD,KAAlB,CAHgB,IAGW2C,IAAI,KAAK,QAHpB;AAIhBG,0BAAOI,SAAP,CAAiBlD,KAAjB,CAJgB,IAIU2C,IAAI,KAAK,OAJnB;AAKhBG,0BAAOK,YAAP,CAAoBnD,KAApB,CALgB,IAKa4C,QALb,OAAnB;;AAOA;AACE,iDAAM,SAAS,EAAEC,UAAjB;AACE,uCAAC,gBAAD,OADF,CADF;;;AAKD;AACD,aAAO,IAAP;AACD,KAtIkC;;AAwI3BO,IAAAA,WAxI2B,GAwIb,UAACjC,CAAD,EAAsC;AAC1D,YAAKkC,QAAL,CAAc,UAACC,SAAD,UAAgB;AAC5BC,UAAAA,OAAO,EAAE,IADmB;AAE5BtB,UAAAA,QAAQ,EAAE,MAAKtC,WAAL,IAAoB,CAAC2D,SAAS,CAACC,OAA/B,GAAyCD,SAAS,CAACrB,QAAnD,GAA8D,MAAK1C,aAAL,CAAmBqB,eAAnB,EAF5C,EAAhB,EAAd;;;AAKA,UAAI,MAAKtB,KAAL,CAAWkE,OAAf,EAAwB;AACtB,cAAKlE,KAAL,CAAWkE,OAAX,CAAmBrC,CAAnB;AACD;AACF,KAjJkC;;AAmJ3BsC,IAAAA,UAnJ2B,GAmJd,UAACtC,CAAD,EAAsC;AACzD,UAAMuC,QAAQ,GAAG,MAAKnE,aAAL,CAAmBoE,OAAnB,EAAjB;AACA,YAAKC,WAAL,CAAiB,EAAEL,OAAO,EAAE,KAAX,EAAkBtB,QAAQ,EAAE,IAA5B,EAAkC4B,SAAS,EAAE,KAA7C,EAAjB;;AAEA,UAAI,MAAKvE,KAAL,CAAWwE,MAAf,EAAuB;AACrB,YAAIJ,QAAJ,EAAc;AACZvC,UAAAA,CAAC,CAAC4C,OAAF;AACA,gBAAKhE,SAAL,GAAiBoB,CAAjB;AACD,SAHD,MAGO;AACL,gBAAK7B,KAAL,CAAWwE,MAAX,CAAkB3C,CAAlB;AACD;AACF;AACF,KA/JkC;;AAiK3B6C,IAAAA,sBAjK2B,GAiKF,UAAC7C,CAAD,EAA0C;AACzE,UAAM8C,UAAU,GAAG,MAAKvE,iBAAL,GAAyB,MAAKA,iBAAL,CAAuBuE,UAAvB,CAAkC9C,CAAC,CAAC+C,MAApC,CAAzB,GAAuE,KAA1F;AACA,UAAI,MAAKlC,KAAL,CAAWuB,OAAX,IAAsB,CAACU,UAA3B,EAAuC;AACrC9C,QAAAA,CAAC,CAACgD,cAAF;AACD;AACD,YAAKvE,YAAL,GAAoB,CAAC,MAAKoC,KAAL,CAAWuB,OAAhC;AACA,YAAK5D,WAAL,GAAmBsE,UAAnB;AACD,KAxKkC;;AA0K3BG,IAAAA,yBA1K2B,GA0KC,UAACrC,IAAD,EAAqC;AACvE,UAAI,EAAE,MAAKnC,YAAL,IAAqB,MAAKL,aAAL,CAAmB8E,OAAnB,EAAvB,CAAJ,EAA0D;AACxD,cAAK1D,mBAAL,CAAyBoB,IAAzB;AACD;AACD,YAAKnC,YAAL,GAAoB,KAApB;AACA,YAAKD,WAAL,GAAmB,KAAnB;AACD,KAhLkC;;AAkL3B2E,IAAAA,oBAlL2B,GAkLJ,YAAM;AACnC,YAAKjB,QAAL,CAAc,EAAEkB,OAAO,EAAE,IAAX,EAAiBtC,QAAQ,EAAE,IAA3B,EAAd;AACD,KApLkC;;AAsL3BuC,IAAAA,kBAtL2B,GAsLN,YAAM;AACjC,UAAMC,SAAS,GAAGC,YAAY,EAA9B;AACA;AACED,MAAAA,SAAS;AACTA,MAAAA,SAAS,CAACE,QAAV,GAAqBC,MAArB,KAAgCC,0BADhC;AAEA,YAAK7C,KAAL,CAAWC,QAAX,KAAwBE,iCAA0BC,GAHpD;AAIE;AACA,cAAKzB,mBAAL,CAAyBwB,iCAA0BC,GAAnD;AACD;AACF,KA/LkC;;AAiM3B0C,IAAAA,aAjM2B,GAiMX,UAAC3D,CAAD,EAAyC;AAC/D,UAAI,MAAKlB,kBAAL,CAAwB,6CAAckB,CAAd,CAAxB,EAA0CA,CAA1C,CAAJ,EAAkD;AAChDA,QAAAA,CAAC,CAACgD,cAAF;AACD;AACD,UAAI,MAAK7E,KAAL,CAAWyF,SAAf,EAA0B;AACxB,cAAKzF,KAAL,CAAWyF,SAAX,CAAqB5D,CAArB;AACD;AACF,KAxMkC;;AA0M3B6D,IAAAA,WA1M2B,GA0Mb,UAAC7D,CAAD,EAA0C;AAC9D,UAAM8D,MAAM,GAAG9D,CAAC,IAAIA,CAAC,CAAC+D,aAAF,CAAgBC,OAAhB,CAAwB,MAAxB,EAAgCC,IAAhC,EAApB;AACA,UAAIH,MAAM,IAAI,MAAK1F,aAAL,CAAmB8F,cAAnB,CAAkCJ,MAAlC,CAAd,EAAyD;AACvD,cAAK1F,aAAL,CAAmB+F,KAAnB,CAAyBL,MAAzB;AACA,cAAKrB,WAAL;AACD;AACF,KAhNkC;;AAkN3B2B,IAAAA,iBAlN2B,GAkNP,YAAM;AAChC,YAAK5E,mBAAL,CAAyBwB,iCAA0BC,GAAnD;AACD,KApNkC;;AAsN3BoD,IAAAA,gBAtN2B,GAsNR,UAACC,EAAD,EAA8B;AACvD,YAAKhG,aAAL,GAAqBgG,EAArB;AACD,KAxNkC;;AA0N3BC,IAAAA,oBA1N2B,GA0NJ,UAACD,EAAD,EAAkC;AAC/D,YAAK/F,iBAAL,GAAyB+F,EAAzB;AACD,KA5NkC;;AA8N3B9E,IAAAA,mBA9N2B,GA8NL,UAACsB,QAAD,EAAsD;AAClF,YAAKoB,QAAL,CAAc,EAAEpB,QAAQ,EAARA,QAAF,EAAY4B,SAAS,EAAE,KAAvB,EAAd;AACD,KAhOkC;;AAkO3BD,IAAAA,WAlO2B,GAkOb,UAAC5B,KAAD,EAA+C,KAA9CA,KAA8C,cAA9CA,KAA8C,GAAb,EAAa;AACnE,UAAM2D,cAAc,GAAG,MAAKpG,aAAL,CAAmBqG,SAAnB,EAAvB;;AAEA,YAAKvC,QAAL,4BAAmBrB,KAAnB,IAA0B2D,cAAc,EAAdA,cAA1B,KAA8D,MAAKE,UAAnE;AACD,KAtOkC;;AAwO3BC,IAAAA,eAxO2B,GAwOT,YAAY;AACpC,YAAKvG,aAAL,CAAmBwG,MAAnB,CAA0B,MAAKzG,KAA/B,EAAsC,MAAKQ,MAA3C;;AAEA,YAAK8D,WAAL;AACD,KA5OkC;;AA8O3BlC,IAAAA,aA9O2B,GA8OX,YAAY;AAClC,YAAKf,mBAAL,CAAyBwB,iCAA0BC,GAAnD;AACD,KAhPkC;;AAkP3B3B,IAAAA,cAlP2B,GAkPV,YAAY;AACnC,UAAMuF,KAAK,GAAG,MAAKzG,aAAL,CAAmB0G,GAAnB,CAAuB,MAAKjE,KAAL,CAAWC,QAAlC,CAAd;AACA,UAAI+D,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,EAAhC,EAAoC;AAClC,YAAI,CAAC,MAAKnG,iBAAV,EAA6B;AAC3B,gBAAKS,cAAL,CAAoB,CAApB;AACD;AACD,cAAKT,iBAAL,GAAyB,KAAzB;AACD;AACF,KA1PkC;;AA4P3BgG,IAAAA,UA5P2B,GA4Pd,YAAY;AAC/B,UAAMG,KAAK,GAAG,MAAKzG,aAAL,CAAmB2G,iBAAnB,EAAd;AACA,UAAI,MAAK5G,KAAL,CAAW0G,KAAX,KAAqBA,KAAzB,EAAgC;AAC9B;AACD;AACD,UAAI,MAAK1G,KAAL,CAAW6G,aAAf,EAA8B;AAC5B,cAAK7G,KAAL,CAAW6G,aAAX,CAAyBH,KAAzB;AACD;AACD,UAAI,MAAKjG,SAAL,IAAkB,MAAKT,KAAL,CAAWwE,MAAjC,EAAyC;AACvC,cAAKxE,KAAL,CAAWwE,MAAX,CAAkB,MAAK/D,SAAvB;AACA,cAAKA,SAAL,GAAiB,IAAjB;AACD;AACF,KAxQkC;;AA0Q3BuB,IAAAA,aA1Q2B,GA0QX,YAAY;AAClC,UAAMW,QAAQ,GAAG,MAAKD,KAAL,CAAWC,QAAX,KAAwB,IAAxB,GAA+B,MAAK1C,aAAL,CAAmBqB,eAAnB,EAA/B,GAAsE,MAAKoB,KAAL,CAAWC,QAAlG;AACA,YAAK1C,aAAL,CAAmB6G,KAAnB,CAAyBnE,QAAzB;AACA,YAAK2B,WAAL,CAAiB;AACfC,QAAAA,SAAS,EAAE,KADI;AAEf5B,QAAAA,QAAQ,EAAEA,QAAQ,KAAKE,iCAA0BC,GAAvC,GAA6C,MAAK7C,aAAL,CAAmBqB,eAAnB,EAA7C,GAAoFqB,QAF/E,EAAjB;;AAID,KAjRkC;;AAmR3BT,IAAAA,YAnR2B,GAmRZ,YAAY;AACD,YAAKQ,KADJ,CACzBC,QADyB,eACzBA,QADyB,CACf4B,SADe,eACfA,SADe;AAEjC,UAAMwC,QAAQ,GAAGpE,QAAQ,KAAK,IAAb,GAAoB,MAAK1C,aAAL,CAAmBuB,gBAAnB,EAApB,GAA4DmB,QAA7E;AACA,UAAI,MAAK1C,aAAL,CAAmB+G,MAAnB,CAA0BD,QAA1B,CAAJ,EAAyC;AACvC,cAAK/F,cAAL,CAAoB,CAAC,CAArB;AACA;AACD;AACD,UAAI2B,QAAQ,KAAKE,iCAA0BC,GAA3C,EAAgD;AAC9C,cAAK7C,aAAL,CAAmB6G,KAAnB,CAAyBjE,iCAA0BC,GAAnD;AACA,cAAKwB,WAAL,CAAiB,EAAE3B,QAAQ,EAAE,MAAK1C,aAAL,CAAmBqB,eAAnB,EAAZ,EAAjB;AACA;AACD;AACD,YAAKrB,aAAL,CAAmBgH,kBAAnB,CAAsCF,QAAtC,EAAgDxC,SAAhD;AACA,YAAKD,WAAL,CAAiB;AACfC,QAAAA,SAAS,EAAE,MAAKtE,aAAL,CAAmB0G,GAAnB,CAAuBI,QAAvB,MAAqC,IADjC;AAEfpE,QAAAA,QAAQ,EAAEoE,QAFK,EAAjB;;AAID,KApSkC;;AAsS3BrF,IAAAA,kBAtS2B,GAsSN,UAACwF,IAAD,EAAwB;AAC3CvE,MAAAA,QAD2C,GAC9B,MAAKD,KADyB,CAC3CC,QAD2C;AAEnD,UAAMwE,OAAO,GAAG,MAAKlH,aAAL,CAAmByB,kBAAnB,CAAsCiB,QAAtC,EAAgDuE,IAAhD,CAAhB;AACA,UAAI,CAACC,OAAL,EAAc;AACZ,cAAK7E,KAAL;AACA;AACD;AACD,YAAKgC,WAAL,CAAiB;AACfC,QAAAA,SAAS,EAAE,KADI;AAEf5B,QAAAA,QAAQ,EAAEA,QAAQ,KAAKE,iCAA0BC,GAAvC,GAA6C,MAAK7C,aAAL,CAAmBqB,eAAnB,EAA7C,GAAoFqB,QAF/E,EAAjB;;AAID,KAjTkC;;AAmT3B3B,IAAAA,cAnT2B,GAmTV,UAACkG,IAAD,EAAwB;AAC/C,UAAMvE,QAAQ,GAAG,MAAK1C,aAAL,CAAmBmH,cAAnB,CAAkC,MAAK1E,KAAL,CAAWC,QAA7C,EAAuDuE,IAAvD,CAAjB;AACA,UAAIvE,QAAQ,KAAK,MAAKD,KAAL,CAAWC,QAA5B,EAAsC;AACpC,cAAKoB,QAAL,CAAc,EAAEpB,QAAQ,EAARA,QAAF,EAAY4B,SAAS,EAAE,KAAvB,EAAd;AACD;AACF,KAxTkC;;AA0T3BzC,IAAAA,UA1T2B,GA0Td,UAACuF,KAAD,EAAmD;AACtE,UAAI1E,QAAQ,GAAG,MAAKD,KAAL,CAAWC,QAA1B;AACA,UAAIA,QAAQ,KAAKE,iCAA0BC,GAA3C,EAAgD;AAC9CH,QAAAA,QAAQ,GAAG,MAAK1C,aAAL,CAAmBqB,eAAnB,EAAX;AACA,cAAKrB,aAAL,CAAmB6G,KAAnB,CAAyBjE,iCAA0BC,GAAnD;AACA,cAAKiB,QAAL,CAAc,EAAEpB,QAAQ,EAARA,QAAF,EAAd;AACD;AACD,UAAM4B,SAAS,GAAG,MAAKtE,aAAL,CAAmBqH,QAAnB,CAA4BD,KAAK,CAACE,GAAlC,EAAuC5E,QAAvC,EAAiD,MAAKD,KAAL,CAAW6B,SAA5D,CAAlB;;AAEA,UAAI,CAACA,SAAL,EAAgB;AACd,cAAKhE,iBAAL,GAAyB,IAAzB;AACA,cAAKS,cAAL,CAAoB,CAApB;AACD;AACD,YAAKsD,WAAL,CAAiB,EAAEC,SAAS,EAATA,SAAF,EAAjB;AACD,KAxUkC,CAGjC,MAAK7B,KAAL,GAAa,EACX2D,cAAc,EAAE,EADL,EAEX1D,QAAQ,EAAE,IAFC,EAGX4B,SAAS,EAAE,KAHA,EAIXN,OAAO,EAAE,KAJE,EAKXgB,OAAO,EAAE,KALE,EAAb,CAHiC,aAUlC,C,wCAEMuC,kB,GAAP,4BAA0BC,SAA1B,EAAqDzD,SAArD,EAAgF,CAC9E,IACEyD,SAAS,CAACf,KAAV,KAAoB,KAAK1G,KAAL,CAAW0G,KAA/B,IACAe,SAAS,CAACC,OAAV,KAAsB,KAAK1H,KAAL,CAAW0H,OADjC,IAEAD,SAAS,CAACE,OAAV,KAAsB,KAAK3H,KAAL,CAAW2H,OAFjC,IAGA,KAAK1H,aAAL,CAAmB2H,eAAnB,CAAmC,KAAKpH,MAAxC,CAJF,EAKE,CACA,KAAKgG,eAAL,GACD,CACD,KAAKhE,UAAL,GACD,C,QAkBMqF,iB,GAAP,6BAAiC,CAC/B,KAAKrB,eAAL,GACA,IAAI,KAAKxG,KAAL,CAAW8H,SAAf,EAA0B,CACxB,KAAKC,KAAL,GACD,CACF,C,QAEMC,I,GAAP,gBAAc,CACZ,IAAI,KAAK7H,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmB6H,IAAnB,GACD,CACF,C,QAEMD,K,GAAP,iBAAe,CACb,IAAI,KAAK5H,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmB4H,KAAnB,GACD,CACF,C,QAEMzF,K,GAAP,iBAAe,CACb,IAAI,KAAKnC,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmBmC,KAAnB,GACD,CACF,C,QAEM2F,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACvH,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACwH,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,oBACsC,KAAKxF,KAD3C,CACXuB,OADW,gBACXA,OADW,CACFtB,QADE,gBACFA,QADE,CACQ4B,SADR,gBACQA,SADR,CACmB8B,cADnB,gBACmBA,cADnB,CAEnB,IAAM8B,SAAS,GAAGlE,OAAO,IAAIoC,cAAc,KAAK,EAA9B,GAAmC,KAAKpG,aAAL,CAAmBmI,YAAnB,EAAnC,GAAuE,EAAzF,CAEA,oBACE,6BAAC,4BAAD,EAAmB,KAAKpI,KAAxB,eACE,6BAAC,4BAAD,IACE,KAAK,EAAE,KAAKA,KAAL,CAAWqI,KADpB,EAEE,GAAG,EAAE,KAAKnC,gBAFZ,EAGE,IAAI,EAAE,KAAKlG,KAAL,CAAWqD,IAHnB,EAIE,QAAQ,EAAE,KAAKrD,KAAL,CAAWsD,QAJvB,EAKE,KAAK,EAAE,KAAKtD,KAAL,CAAWsI,KALpB,EAME,OAAO,EAAE,KAAKtI,KAAL,CAAWuI,OANtB,EAOE,MAAM,EAAE,KAAKpE,UAPf,EAQE,OAAO,EAAE,KAAKL,WARhB,EASE,OAAO,EAAE,KAAK9D,KAAL,CAAWwI,OATtB,EAUE,SAAS,EAAE,KAAKhD,aAVlB,EAWE,kBAAkB,EAAE,KAAKd,sBAX3B,EAYE,OAAO,EAAE,KAAKgB,WAZhB,EAaE,SAAS,EAAE,KAAKvC,UAAL,EAbb,EAcE,oBAAoB,EAAE,KAAK8C,iBAd7B,EAeE,gBAAgB,EAAE,KAAKjB,oBAfzB,EAgBE,cAAc,EAAE,KAAKE,kBAhBvB,EAiBE,KAAK,EAAE,KAAKjF,aAAL,CAAmB2G,iBAAnB,EAjBT,EAkBE,SAAS,EAAE,SAlBb,EAmBE,gBAAgB,MAnBlB,iBAqBE,6BAAC,oCAAD,IACE,GAAG,EAAE,KAAKR,oBADZ,EAEE,SAAS,EAAE+B,SAFb,EAGE,qBAAqB,EAAE,KAAKrD,yBAH9B,EAIE,QAAQ,EAAEnC,QAJZ,EAKE,SAAS,EAAE4B,SALb,GArBF,CADF,CADF,CAiCD,C,oBApJ4BkE,eAAMC,S,WACrBC,mB,GAAsB,W,UAEtBC,Y,GAAe,EAC3BlC,KAAK,EAAE,EADoB,EAE3BgB,OAAO,EAAEmB,uBAFkB,EAG3BlB,OAAO,EAAEmB,uBAHkB,EAI3BzF,IAAI,EAAE,OAJqB,EAK3BgF,KAAK,EAAE,GALoB,E","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n error?: boolean;\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\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 renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const fragments = focused || valueFormatted !== '' ? this.iDateMediator.getFragments() : [];\n\n return (\n <CommonWrapper {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={fragments}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles}>\n <CalendarIcon />\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const inputMode = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
1
+ {"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","props","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","locale","blurEvent","theme","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","iconStyles","styles","icon","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","error","warning","onClick","valueVisible","getFragments","React","Component","__KONTUR_REACT_UI__","defaultProps","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value: string;\n error?: boolean;\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps, prevState: DateInputState) {\n if (\n prevProps.value !== this.props.value ||\n prevProps.minDate !== this.props.minDate ||\n prevProps.maxDate !== this.props.maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\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 renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n\n return (\n <CommonWrapper {...this.props}>\n <InputLikeText\n width={this.props.width}\n ref={this.inputLikeTextRef}\n size={this.props.size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, size, disabled = false } = this.props;\n\n if (withIcon) {\n const theme = this.theme;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles}>\n <CalendarIcon />\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const inputMode = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
@@ -5,4 +5,6 @@ export declare const styles: {
5
5
  iconMedium(t: Theme): string;
6
6
  iconLarge(t: Theme): string;
7
7
  iconDisabled(t: Theme): string;
8
+ value(): string;
9
+ valueVisible(): string;
8
10
  };
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
2
2
 
3
3
 
4
4
  var styles = {
@@ -32,4 +32,16 @@ var styles = {
32
32
 
33
33
  t.textColorDisabled);
34
34
 
35
+ },
36
+
37
+ value: function value() {
38
+ return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n opacity: 0;\n "])));
39
+
40
+
41
+ },
42
+
43
+ valueVisible: function valueVisible() {
44
+ return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n opacity: 1;\n "])));
45
+
46
+
35
47
  } };exports.styles = styles;
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.styles.ts"],"names":["styles","icon","t","css","dateInputIconColor","iconSmall","inputFontSizeSmall","iconMedium","inputFontSizeMedium","iconLarge","inputFontSizeLarge","iconDisabled","textColorDisabled"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG;AACpBC,EAAAA,IADoB,gBACfC,CADe,EACL;AACb,eAAOC,YAAP;;AAEWD,IAAAA,CAAC,CAACE,kBAFb;;AAID,GANmB;;AAQpBC,EAAAA,SARoB,qBAQVH,CARU,EAQA;AAClB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACI,kBADjB;;AAGD,GAZmB;;AAcpBC,EAAAA,UAdoB,sBAcTL,CAdS,EAcC;AACnB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACM,mBADjB;;AAGD,GAlBmB;;AAoBpBC,EAAAA,SApBoB,qBAoBVP,CApBU,EAoBA;AAClB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACQ,kBADjB;;AAGD,GAxBmB;;AA0BpBC,EAAAA,YA1BoB,wBA0BPT,CA1BO,EA0BG;AACrB,eAAOC,YAAP;;AAEWD,IAAAA,CAAC,CAACU,iBAFb;;AAID,GA/BmB,EAAf,C","sourcesContent":["import { css } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = {\n icon(t: Theme) {\n return css`\n cursor: pointer;\n color: ${t.dateInputIconColor};\n `;\n },\n\n iconSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n `;\n },\n\n iconMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n `;\n },\n\n iconLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n `;\n },\n\n iconDisabled(t: Theme) {\n return css`\n cursor: default;\n color: ${t.textColorDisabled};\n `;\n },\n};\n"]}
1
+ {"version":3,"sources":["DateInput.styles.ts"],"names":["styles","icon","t","css","dateInputIconColor","iconSmall","inputFontSizeSmall","iconMedium","inputFontSizeMedium","iconLarge","inputFontSizeLarge","iconDisabled","textColorDisabled","value","valueVisible"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG;AACpBC,EAAAA,IADoB,gBACfC,CADe,EACL;AACb,eAAOC,YAAP;;AAEWD,IAAAA,CAAC,CAACE,kBAFb;;AAID,GANmB;;AAQpBC,EAAAA,SARoB,qBAQVH,CARU,EAQA;AAClB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACI,kBADjB;;AAGD,GAZmB;;AAcpBC,EAAAA,UAdoB,sBAcTL,CAdS,EAcC;AACnB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACM,mBADjB;;AAGD,GAlBmB;;AAoBpBC,EAAAA,SApBoB,qBAoBVP,CApBU,EAoBA;AAClB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACQ,kBADjB;;AAGD,GAxBmB;;AA0BpBC,EAAAA,YA1BoB,wBA0BPT,CA1BO,EA0BG;AACrB,eAAOC,YAAP;;AAEWD,IAAAA,CAAC,CAACU,iBAFb;;AAID,GA/BmB;;AAiCpBC,EAAAA,KAjCoB,mBAiCZ;AACN,eAAOV,YAAP;;;AAGD,GArCmB;;AAuCpBW,EAAAA,YAvCoB,0BAuCL;AACb,eAAOX,YAAP;;;AAGD,GA3CmB,EAAf,C","sourcesContent":["import { css } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = {\n icon(t: Theme) {\n return css`\n cursor: pointer;\n color: ${t.dateInputIconColor};\n `;\n },\n\n iconSmall(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeSmall};\n `;\n },\n\n iconMedium(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeMedium};\n `;\n },\n\n iconLarge(t: Theme) {\n return css`\n font-size: ${t.inputFontSizeLarge};\n `;\n },\n\n iconDisabled(t: Theme) {\n return css`\n cursor: default;\n color: ${t.textColorDisabled};\n `;\n },\n\n value() {\n return css`\n opacity: 0;\n `;\n },\n\n valueVisible() {\n return css`\n opacity: 1;\n `;\n },\n};\n"]}
@@ -3,15 +3,56 @@ import PropTypes from 'prop-types';
3
3
  import { CommonProps } from '../../internal/CommonWrapper';
4
4
  import { Prevent } from './Prevent';
5
5
  export interface RadioGroupProps<T = string | number> extends CommonProps {
6
+ /**
7
+ * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок
8
+ * или значений из параметра `items`
9
+ */
6
10
  defaultValue?: T;
11
+ /**
12
+ * Значение радиогруппы. Должно быть одним из значений радиокнопок.
13
+ * Если не указано, то компонент будет работать, как неконтроллируемый
14
+ */
7
15
  value?: T;
16
+ /**
17
+ * Может быть использовано, если не передан параметр `children`
18
+ *
19
+ * Массив параметров радиокнопок. Может быть типа `Array<Value>` или
20
+ * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`
21
+ * — значение которое будет использовано вторым параметром в `renderItem`.
22
+ * Если тип `items: Array<Value>`, то он будет приведен к типу
23
+ * `Array<[Value, Value]>`
24
+ */
8
25
  items?: T[] | [T, React.ReactNode][];
26
+ /**
27
+ * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется
28
+ * случайное имя
29
+ */
9
30
  name?: string;
31
+ /**
32
+ * Дизейблит все радиокнопки
33
+ */
10
34
  disabled?: boolean;
35
+ /**
36
+ * Переводит все радиокнопки в состояние предупреждения
37
+ */
11
38
  warning?: boolean;
39
+ /**
40
+ * Переводит все радиокнопки в состояние ошибки
41
+ */
12
42
  error?: boolean;
43
+ /**
44
+ * Выравнивает элементы в строку. Не работает с `children`
45
+ */
13
46
  inline?: boolean;
47
+ /**
48
+ * Ширина радиогруппы. Не работает с `children`
49
+ */
14
50
  width?: React.CSSProperties['width'];
51
+ /**
52
+ * Метод отрисовки контента радиокнопки. Не работает с `children`.
53
+ *
54
+ * Принимает два аргумента: `(value: Value, data: Data) => React.Node`
55
+ */
15
56
  renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;
16
57
  /** Вызывается при изменении `value` */
17
58
  onValueChange?: (value: T) => void;
@@ -19,6 +60,16 @@ export interface RadioGroupProps<T = string | number> extends CommonProps {
19
60
  onMouseLeave?: () => any;
20
61
  onMouseOver?: () => any;
21
62
  onMouseEnter?: () => any;
63
+ /**
64
+ * Может быть использовано, если не передан параметр `items`
65
+ *
66
+ * `children` может содержать любую разметку с компонентами Radio.
67
+ * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
68
+ * как и параметр `value` самой радиогруппы.
69
+ *
70
+ * Значения активного элемента сравниваются по строгому равенству `===`
71
+ */
72
+ children?: React.ReactNode;
22
73
  }
23
74
  export interface RadioGroupState<T> {
24
75
  activeItem?: T;
@@ -34,74 +85,13 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
34
85
  onSelect: PropTypes.Requireable<(...args: any[]) => any>;
35
86
  };
36
87
  static propTypes: {
37
- /**
38
- * Может быть использовано, если не передан параметр `items`
39
- *
40
- * `children` может содержать любую разметку с компонентами Radio.
41
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
42
- * как и параметр `value` самой радиогруппы.
43
- *
44
- * Значения активного элемента сравниваются по строгому равенству `===`
45
- */
46
88
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
47
- /**
48
- * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок
49
- * или значей из параметра `items`
50
- */
51
- defaultValue: PropTypes.Requireable<any>;
52
- /**
53
- * Дизейблит все радиокнопки
54
- */
55
89
  disabled: PropTypes.Requireable<boolean>;
56
- /**
57
- * Переводит все радиокнопки в состоянии ошибки
58
- */
59
90
  error: PropTypes.Requireable<boolean>;
60
- /**
61
- * Выравнивает элементы в строку. Не работает с `children`
62
- */
63
91
  inline: PropTypes.Requireable<boolean>;
64
- /**
65
- * Может быть использовано, если не передан параметр `children`
66
- *
67
- * Массив параметров радиокнопок. Может быть типа `Array<Value>` или
68
- * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`
69
- * — значение которое будет использовано вторым параметром в `renderItem`.
70
- * Если тип `items: Array<Value>`, то он будет приведен к типу
71
- * `Array<[Value, Value]>`
72
- */
73
- items: PropTypes.Requireable<any>;
74
- /**
75
- * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется
76
- * случайное имя по алгоритму
77
- * [uuid v1](https://github.com/kelektiv/node-uuid#version-1)
78
- */
79
92
  name: PropTypes.Requireable<string>;
80
- /**
81
- * Метод отрисовки контента радиокнопки. Не работает с `children`.
82
- *
83
- * Принимает два аргумента: `(value: Value, data: Data) => React.Node`
84
- */
85
- renderItem: PropTypes.Requireable<(...args: any[]) => any>;
86
- /**
87
- * Значение радиогруппы. Должно быть одним из значений радиокнопок.
88
- * Если не указано, то компонент будет работать, как неконтроллируемый
89
- */
90
- value: PropTypes.Requireable<any>;
91
- /**
92
- * Переводит все радиокнопки в состоянии предупреждения
93
- */
94
93
  warning: PropTypes.Requireable<boolean>;
95
- /**
96
- * Ширина радиогруппы. Не работает с `children`
97
- */
98
94
  width: PropTypes.Requireable<string | number>;
99
- /**
100
- * Обработчик события при переключении радиокнопок.
101
- * Имеет тип
102
- * `(value: Value) => any`
103
- */
104
- onValueChange: PropTypes.Requireable<(...args: any[]) => any>;
105
95
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
106
96
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
107
97
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
@@ -34,32 +34,6 @@ var _Prevent = require("./Prevent");function _createForOfIteratorHelperLoose(o,
34
34
 
35
35
 
36
36
 
37
-
38
-
39
-
40
-
41
- RadioGroup = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(RadioGroup, _React$Component);
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
37
 
64
38
 
65
39
 
@@ -115,6 +89,7 @@ RadioGroup = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.defau
115
89
 
116
90
 
117
91
 
92
+ RadioGroup = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(RadioGroup, _React$Component);
118
93
 
119
94
 
120
95
 
@@ -268,48 +243,27 @@ RadioGroup = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.defau
268
243
  };_this.state = { activeItem: _this.props.defaultValue };return _this;}var _proto = RadioGroup.prototype;_proto.getChildContext = function getChildContext() {return { activeItem: this.getValue(), onSelect: this.handleSelect, name: this.getName(), disabled: this.props.disabled, error: this.props.error, warning: this.props.warning };};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$props = this.props,width = _this$props.width,onMouseLeave = _this$props.onMouseLeave,onMouseOver = _this$props.onMouseOver,onMouseEnter = _this$props.onMouseEnter,onBlur = _this$props.onBlur;var style = { width: width != null ? width : 'auto' };var handlers = { onMouseOver: onMouseOver, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave };return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_FocusTrap.FocusTrap, { onBlur: onBlur }, /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({ ref: this.ref, style: style, className: _RadioGroup.styles.root() }, handlers), this.renderChildren())));} /**
269
244
  * @public
270
245
  */;_proto.focus = function focus() {var node = this.node;if (!node) {return;}var radio = node.querySelector('input[type="radio"]:checked'); // If no checked radios, try get first radio
271
- if (!radio || radio.disabled) {radio = node.querySelector('input[type="radio"]:not([disabled])');}if (radio) {radio.focus();}};_proto.renderChildren = function renderChildren() {var _this$props2 = this.props,items = _this$props2.items,children = _this$props2.children;(0, _invariant.default)(!items && children || items && !children, 'Either items or children must be passed, not both');return items ? mapItems(this.renderRadio, items) : children;};return RadioGroup;}(_react.default.Component);exports.RadioGroup = RadioGroup;RadioGroup.__KONTUR_REACT_UI__ = 'RadioGroup';RadioGroup.childContextTypes = { error: _propTypes.default.bool, name: _propTypes.default.string, warning: _propTypes.default.bool, disabled: _propTypes.default.bool, activeItem: _propTypes.default.any, onSelect: _propTypes.default.func };RadioGroup.propTypes = { /**
272
- * Может быть использовано, если не передан параметр `items`
273
- *
274
- * `children` может содержать любую разметку с компонентами Radio.
275
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
276
- * как и параметр `value` самой радиогруппы.
277
- *
278
- * Значения активного элемента сравниваются по строгому равенству `===`
279
- */children: _propTypes.default.node, /**
280
- * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок
281
- * или значей из параметра `items`
282
- */defaultValue: _propTypes.default.any, /**
283
- * Дизейблит все радиокнопки
284
- */disabled: _propTypes.default.bool, /**
285
- * Переводит все радиокнопки в состоянии ошибки
286
- */error: _propTypes.default.bool, /**
287
- * Выравнивает элементы в строку. Не работает с `children`
288
- */inline: _propTypes.default.bool, /**
289
- * Может быть использовано, если не передан параметр `children`
290
- *
291
- * Массив параметров радиокнопок. Может быть типа `Array<Value>` или
292
- * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`
293
- * — значение которое будет использовано вторым параметром в `renderItem`.
294
- * Если тип `items: Array<Value>`, то он будет приведен к типу
295
- * `Array<[Value, Value]>`
296
- */items: _propTypes.default.any, /**
297
- * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется
298
- * случайное имя по алгоритму
299
- * [uuid v1](https://github.com/kelektiv/node-uuid#version-1)
300
- */name: _propTypes.default.string, /**
301
- * Метод отрисовки контента радиокнопки. Не работает с `children`.
302
- *
303
- * Принимает два аргумента: `(value: Value, data: Data) => React.Node`
304
- */renderItem: _propTypes.default.func, /**
305
- * Значение радиогруппы. Должно быть одним из значений радиокнопок.
306
- * Если не указано, то компонент будет работать, как неконтроллируемый
307
- */value: _propTypes.default.any, /**
308
- * Переводит все радиокнопки в состоянии предупреждения
309
- */warning: _propTypes.default.bool, /**
310
- * Ширина радиогруппы. Не работает с `children`
311
- */width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), /**
312
- * Обработчик события при переключении радиокнопок.
313
- * Имеет тип
314
- * `(value: Value) => any`
315
- */onValueChange: _propTypes.default.func, onBlur: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func };RadioGroup.defaultProps = { renderItem: renderItem };RadioGroup.Prevent = _Prevent.Prevent;function renderItem(_value, data) {return data;}function mapItems(fn, items) {var result = [];var index = 0;for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {var entry = _step.value;var _normalizeEntry = normalizeEntry(entry),_value2 = _normalizeEntry[0],_data = _normalizeEntry[1];result.push(fn(_value2, _data, index));++index;}return result;}function normalizeEntry(entry) {if (!Array.isArray(entry)) {return [entry, entry];}return entry;}
246
+ if (!radio || radio.disabled) {radio = node.querySelector('input[type="radio"]:not([disabled])');}if (radio) {radio.focus();}};_proto.renderChildren = function renderChildren() {var _this$props2 = this.props,items = _this$props2.items,children = _this$props2.children;(0, _invariant.default)(!items && children || items && !children, 'Either items or children must be passed, not both');return items ? mapItems(this.renderRadio, items) : children;};return RadioGroup;}(_react.default.Component);exports.RadioGroup = RadioGroup;RadioGroup.__KONTUR_REACT_UI__ = 'RadioGroup';RadioGroup.childContextTypes = { error: _propTypes.default.bool, name: _propTypes.default.string, warning: _propTypes.default.bool, disabled: _propTypes.default.bool, activeItem: _propTypes.default.any, onSelect: _propTypes.default.func };RadioGroup.propTypes = { children: _propTypes.default.node, disabled: _propTypes.default.bool, error: _propTypes.default.bool, inline: _propTypes.default.bool, name: _propTypes.default.string, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func };RadioGroup.defaultProps = { renderItem: renderItem };RadioGroup.Prevent = _Prevent.Prevent;function renderItem(_value, data) {
247
+ return data;
248
+ }
249
+
250
+ function mapItems(
251
+ fn,
252
+ items)
253
+ {
254
+ var result = [];
255
+ var index = 0;
256
+ for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {var entry = _step.value;var _normalizeEntry =
257
+ normalizeEntry(entry),_value2 = _normalizeEntry[0],_data = _normalizeEntry[1];
258
+ result.push(fn(_value2, _data, index));
259
+ ++index;
260
+ }
261
+ return result;
262
+ }
263
+
264
+ function normalizeEntry(entry) {
265
+ if (!Array.isArray(entry)) {
266
+ return [entry, entry];
267
+ }
268
+ return entry;
269
+ }