@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.
- package/CHANGELOG.md +13 -0
- package/cjs/components/Center/Center.d.ts +4 -8
- package/cjs/components/Center/Center.js +1 -6
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Center/Center.md +24 -3
- package/cjs/components/DateInput/DateInput.js +3 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.styles.d.ts +2 -0
- package/cjs/components/DateInput/DateInput.styles.js +13 -1
- package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +51 -61
- package/cjs/components/RadioGroup/RadioGroup.js +25 -71
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/Select/Select.js +6 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.styles.d.ts +1 -0
- package/cjs/components/Select/Select.styles.js +15 -9
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/Select/selectTheme.js +5 -1
- package/cjs/components/Select/selectTheme.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +4 -0
- package/cjs/internal/themes/DefaultTheme.js +12 -0
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/components/Center/Center/Center.js +1 -2
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +4 -8
- package/components/Center/Center.md +24 -3
- package/components/DateInput/DateInput/DateInput.js +7 -3
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.styles/DateInput.styles.js +7 -1
- package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
- package/components/DateInput/DateInput.styles.d.ts +2 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +0 -72
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +51 -61
- package/components/Select/Select/Select.js +2 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.styles/Select.styles.js +12 -9
- package/components/Select/Select.styles/Select.styles.js.map +1 -1
- package/components/Select/Select.styles.d.ts +1 -0
- package/components/Select/selectTheme/selectTheme.js +4 -1
- package/components/Select/selectTheme/selectTheme.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +20 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +4 -0
- 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
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
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":"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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":["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"]}
|
|
@@ -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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
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
|
+
}
|