@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
@@ -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
  ```
@@ -411,12 +411,14 @@ export var DateInput = (_dec = locale('DatePicker', DatePickerLocaleHelper), _de
411
411
  };
412
412
 
413
413
  _proto.renderMain = function renderMain() {
414
+ var _cx2;
415
+
414
416
  var _this$state2 = this.state,
415
417
  focused = _this$state2.focused,
416
418
  selected = _this$state2.selected,
417
419
  inputMode = _this$state2.inputMode,
418
420
  valueFormatted = _this$state2.valueFormatted;
419
- var fragments = focused || valueFormatted !== '' ? this.iDateMediator.getFragments() : [];
421
+ var showValue = Boolean(focused || valueFormatted);
420
422
  return /*#__PURE__*/React.createElement(CommonWrapper, this.props, /*#__PURE__*/React.createElement(InputLikeText, {
421
423
  width: this.props.width,
422
424
  ref: this.inputLikeTextRef,
@@ -437,13 +439,15 @@ export var DateInput = (_dec = locale('DatePicker', DatePickerLocaleHelper), _de
437
439
  value: this.iDateMediator.getInternalString(),
438
440
  inputMode: 'numeric',
439
441
  takeContentWidth: true
442
+ }, /*#__PURE__*/React.createElement("span", {
443
+ className: cx(styles.value(), (_cx2 = {}, _cx2[styles.valueVisible()] = showValue, _cx2))
440
444
  }, /*#__PURE__*/React.createElement(DateFragmentsView, {
441
445
  ref: this.dateFragmentsViewRef,
442
- fragments: fragments,
446
+ fragments: this.iDateMediator.getFragments(),
443
447
  onSelectDateComponent: this.handleSelectDateComponent,
444
448
  selected: selected,
445
449
  inputMode: inputMode
446
- })));
450
+ }))));
447
451
  };
448
452
 
449
453
  return DateInput;
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.tsx"],"names":["React","ConditionalHandler","LENGTH_FULLDATE","MAX_FULLDATE","MIN_FULLDATE","InternalDateComponentType","DatePickerLocaleHelper","InputLikeText","locale","ThemeContext","CalendarIcon","CommonWrapper","cx","DateFragmentsView","styles","Actions","extractAction","InternalDateMediator","DateInput","props","iDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","theme","conditionalHandler","add","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","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","iconStyles","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","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","Component","__KONTUR_REACT_UI__","defaultProps"],"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 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":["React","ConditionalHandler","LENGTH_FULLDATE","MAX_FULLDATE","MIN_FULLDATE","InternalDateComponentType","DatePickerLocaleHelper","InputLikeText","locale","ThemeContext","CalendarIcon","CommonWrapper","cx","DateFragmentsView","styles","Actions","extractAction","InternalDateMediator","DateInput","props","iDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","theme","conditionalHandler","add","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","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","size","disabled","iconStyles","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","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","Component","__KONTUR_REACT_UI__","defaultProps"],"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"]}
@@ -1,6 +1,6 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
4
4
 
5
5
  import { css } from "../../../lib/theming/Emotion";
6
6
  export var styles = {
@@ -18,5 +18,11 @@ export var styles = {
18
18
  },
19
19
  iconDisabled: function iconDisabled(t) {
20
20
  return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n cursor: default;\n color: ", ";\n "])), t.textColorDisabled);
21
+ },
22
+ value: function value() {
23
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n opacity: 0;\n "])));
24
+ },
25
+ valueVisible: function valueVisible() {
26
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n opacity: 1;\n "])));
21
27
  }
22
28
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["DateInput.styles.ts"],"names":["css","styles","icon","t","dateInputIconColor","iconSmall","inputFontSizeSmall","iconMedium","inputFontSizeMedium","iconLarge","inputFontSizeLarge","iconDisabled","textColorDisabled"],"mappings":"4LAAA,SAASA,GAAT,QAAoB,2BAApB;;;AAGA,OAAO,IAAMC,MAAM,GAAG;AACpBC,EAAAA,IADoB,gBACfC,CADe,EACL;AACb,WAAOH,GAAP;;AAEWG,IAAAA,CAAC,CAACC,kBAFb;;AAID,GANmB;;AAQpBC,EAAAA,SARoB,qBAQVF,CARU,EAQA;AAClB,WAAOH,GAAP;AACeG,IAAAA,CAAC,CAACG,kBADjB;;AAGD,GAZmB;;AAcpBC,EAAAA,UAdoB,sBAcTJ,CAdS,EAcC;AACnB,WAAOH,GAAP;AACeG,IAAAA,CAAC,CAACK,mBADjB;;AAGD,GAlBmB;;AAoBpBC,EAAAA,SApBoB,qBAoBVN,CApBU,EAoBA;AAClB,WAAOH,GAAP;AACeG,IAAAA,CAAC,CAACO,kBADjB;;AAGD,GAxBmB;;AA0BpBC,EAAAA,YA1BoB,wBA0BPR,CA1BO,EA0BG;AACrB,WAAOH,GAAP;;AAEWG,IAAAA,CAAC,CAACS,iBAFb;;AAID,GA/BmB,EAAf","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":["css","styles","icon","t","dateInputIconColor","iconSmall","inputFontSizeSmall","iconMedium","inputFontSizeMedium","iconLarge","inputFontSizeLarge","iconDisabled","textColorDisabled","value","valueVisible"],"mappings":"gOAAA,SAASA,GAAT,QAAoB,2BAApB;;;AAGA,OAAO,IAAMC,MAAM,GAAG;AACpBC,EAAAA,IADoB,gBACfC,CADe,EACL;AACb,WAAOH,GAAP;;AAEWG,IAAAA,CAAC,CAACC,kBAFb;;AAID,GANmB;;AAQpBC,EAAAA,SARoB,qBAQVF,CARU,EAQA;AAClB,WAAOH,GAAP;AACeG,IAAAA,CAAC,CAACG,kBADjB;;AAGD,GAZmB;;AAcpBC,EAAAA,UAdoB,sBAcTJ,CAdS,EAcC;AACnB,WAAOH,GAAP;AACeG,IAAAA,CAAC,CAACK,mBADjB;;AAGD,GAlBmB;;AAoBpBC,EAAAA,SApBoB,qBAoBVN,CApBU,EAoBA;AAClB,WAAOH,GAAP;AACeG,IAAAA,CAAC,CAACO,kBADjB;;AAGD,GAxBmB;;AA0BpBC,EAAAA,YA1BoB,wBA0BPR,CA1BO,EA0BG;AACrB,WAAOH,GAAP;;AAEWG,IAAAA,CAAC,CAACS,iBAFb;;AAID,GA/BmB;;AAiCpBC,EAAAA,KAjCoB,mBAiCZ;AACN,WAAOb,GAAP;;;AAGD,GArCmB;;AAuCpBc,EAAAA,YAvCoB,0BAuCL;AACb,WAAOd,GAAP;;;AAGD,GA3CmB,EAAf","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"]}
@@ -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
  };
@@ -203,85 +203,13 @@ RadioGroup.childContextTypes = {
203
203
  onSelect: PropTypes.func
204
204
  };
205
205
  RadioGroup.propTypes = {
206
- /**
207
- * Может быть использовано, если не передан параметр `items`
208
- *
209
- * `children` может содержать любую разметку с компонентами Radio.
210
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа
211
- * как и параметр `value` самой радиогруппы.
212
- *
213
- * Значения активного элемента сравниваются по строгому равенству `===`
214
- */
215
206
  children: PropTypes.node,
216
-
217
- /**
218
- * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок
219
- * или значей из параметра `items`
220
- */
221
- defaultValue: PropTypes.any,
222
-
223
- /**
224
- * Дизейблит все радиокнопки
225
- */
226
207
  disabled: PropTypes.bool,
227
-
228
- /**
229
- * Переводит все радиокнопки в состоянии ошибки
230
- */
231
208
  error: PropTypes.bool,
232
-
233
- /**
234
- * Выравнивает элементы в строку. Не работает с `children`
235
- */
236
209
  inline: PropTypes.bool,
237
-
238
- /**
239
- * Может быть использовано, если не передан параметр `children`
240
- *
241
- * Массив параметров радиокнопок. Может быть типа `Array<Value>` или
242
- * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`
243
- * — значение которое будет использовано вторым параметром в `renderItem`.
244
- * Если тип `items: Array<Value>`, то он будет приведен к типу
245
- * `Array<[Value, Value]>`
246
- */
247
- items: PropTypes.any,
248
-
249
- /**
250
- * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется
251
- * случайное имя по алгоритму
252
- * [uuid v1](https://github.com/kelektiv/node-uuid#version-1)
253
- */
254
210
  name: PropTypes.string,
255
-
256
- /**
257
- * Метод отрисовки контента радиокнопки. Не работает с `children`.
258
- *
259
- * Принимает два аргумента: `(value: Value, data: Data) => React.Node`
260
- */
261
- renderItem: PropTypes.func,
262
-
263
- /**
264
- * Значение радиогруппы. Должно быть одним из значений радиокнопок.
265
- * Если не указано, то компонент будет работать, как неконтроллируемый
266
- */
267
- value: PropTypes.any,
268
-
269
- /**
270
- * Переводит все радиокнопки в состоянии предупреждения
271
- */
272
211
  warning: PropTypes.bool,
273
-
274
- /**
275
- * Ширина радиогруппы. Не работает с `children`
276
- */
277
212
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
278
-
279
- /**
280
- * Обработчик события при переключении радиокнопок.
281
- * Имеет тип
282
- * `(value: Value) => any`
283
- */
284
- onValueChange: PropTypes.func,
285
213
  onBlur: PropTypes.func,
286
214
  onMouseEnter: PropTypes.func,
287
215
  onMouseLeave: PropTypes.func,
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","styles","Prevent","RadioGroup","props","theme","node","name","getProps","defaultProps","getValue","isControlled","value","state","activeItem","getName","handleSelect","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","itemFirst","itemInline","inline","renderItem","ref","element","defaultValue","getChildContext","onSelect","disabled","error","warning","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","childContextTypes","bool","string","any","func","propTypes","oneOfType","number","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n defaultValue?: T;\n value?: T;\n items?: T[] | [T, React.ReactNode][];\n name?: string;\n disabled?: boolean;\n warning?: boolean;\n error?: boolean;\n inline?: boolean;\n width?: React.CSSProperties['width'];\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static childContextTypes = {\n error: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n activeItem: PropTypes.any,\n onSelect: PropTypes.func,\n };\n\n public static propTypes = {\n /**\n * Может быть использовано, если не передан параметр `items`\n *\n * `children` может содержать любую разметку с компонентами Radio.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n children: PropTypes.node,\n\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значей из параметра `items`\n */\n defaultValue: PropTypes.any,\n\n /**\n * Дизейблит все радиокнопки\n */\n disabled: PropTypes.bool,\n\n /**\n * Переводит все радиокнопки в состоянии ошибки\n */\n error: PropTypes.bool,\n\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline: PropTypes.bool,\n\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items: PropTypes.any,\n\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя по алгоритму\n * [uuid v1](https://github.com/kelektiv/node-uuid#version-1)\n */\n name: PropTypes.string,\n\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem: PropTypes.func,\n\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтроллируемый\n */\n value: PropTypes.any,\n\n /**\n * Переводит все радиокнопки в состоянии предупреждения\n */\n warning: PropTypes.bool,\n\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Обработчик события при переключении радиокнопок.\n * Имеет тип\n * `(value: Value) => any`\n */\n onValueChange: PropTypes.func,\n\n onBlur: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n public getChildContext() {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\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 public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width != null ? width : 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n {this.renderChildren()}\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => this.props.value != null;\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | [T, React.ReactNode][],\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
1
+ {"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","styles","Prevent","RadioGroup","props","theme","node","name","getProps","defaultProps","getValue","isControlled","value","state","activeItem","getName","handleSelect","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","itemFirst","itemInline","inline","renderItem","ref","element","defaultValue","getChildContext","onSelect","disabled","error","warning","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","childContextTypes","bool","string","any","func","propTypes","oneOfType","number","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтроллируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | [T, React.ReactNode][];\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние предупреждения\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние ошибки\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n /**\n * Может быть использовано, если не передан параметр `items`\n *\n * `children` может содержать любую разметку с компонентами Radio.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n children?: React.ReactNode;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static childContextTypes = {\n error: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n activeItem: PropTypes.any,\n onSelect: PropTypes.func,\n };\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n public getChildContext() {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\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 public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width != null ? width : 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n {this.renderChildren()}\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => this.props.value != null;\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | [T, React.ReactNode][],\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\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>;
@@ -322,7 +322,7 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), _dec(_class =
322
322
  };
323
323
 
324
324
  _proto.renderDefaultButton = function renderDefaultButton(params) {
325
- var _cx;
325
+ var _cx, _cx2;
326
326
 
327
327
  var buttonProps = _extends({}, filterProps(this.props, PASS_BUTTON_PROPS), {
328
328
  align: 'left',
@@ -345,7 +345,7 @@ export var Select = (_dec = locale('Select', SelectLocaleHelper), _dec(_class =
345
345
  }, this.props._icon && /*#__PURE__*/React.createElement("div", {
346
346
  className: this.getLeftIconClass(this.props.size)
347
347
  }, this.props._icon), /*#__PURE__*/React.createElement("span", labelProps, params.label), /*#__PURE__*/React.createElement("div", {
348
- className: cx(styles.arrowWrap(this.theme), useIsCustom && styles.customUseArrow())
348
+ className: cx(styles.arrowWrap(this.theme), (_cx2 = {}, _cx2[styles.arrowDisabled(this.theme)] = this.props.disabled, _cx2[styles.customUseArrow()] = useIsCustom, _cx2))
349
349
  }, /*#__PURE__*/React.createElement(ArrowChevronDownIcon, null))));
350
350
  };
351
351