@1money/react-ui 1.7.1 → 1.7.3
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/es/components/InputAmount/InputAmount.js +98 -55
- package/es/components/InputAmount/interface.d.ts +13 -4
- package/es/components/InputAmount/style/InputAmount.css +1 -1
- package/es/components/InputAmount/style/InputAmount.scss +31 -17
- package/es/index.css +1 -1
- package/lib/components/InputAmount/InputAmount.js +97 -54
- package/lib/components/InputAmount/interface.d.ts +13 -4
- package/lib/components/InputAmount/style/InputAmount.css +1 -1
- package/lib/components/InputAmount/style/InputAmount.scss +31 -17
- package/lib/index.css +1 -1
- package/package.json +2 -1
|
@@ -8,8 +8,8 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
8
8
|
return t;
|
|
9
9
|
};
|
|
10
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
import { memo, useState, useCallback, useRef, useEffect } from 'react';
|
|
12
|
-
import
|
|
11
|
+
import { memo, useMemo, useState, useCallback, useRef, useEffect } from 'react';
|
|
12
|
+
import BigNumber from 'bignumber.js';
|
|
13
13
|
import { numericFormatter } from 'react-number-format';
|
|
14
14
|
import classnames from '../../utils/classnames';
|
|
15
15
|
var MIN_INPUT_WIDTH = 33;
|
|
@@ -20,6 +20,8 @@ export var InputAmount = function InputAmount(props) {
|
|
|
20
20
|
wrapperCls = props.wrapperCls,
|
|
21
21
|
_props$prefixCls = props.prefixCls,
|
|
22
22
|
prefixCls = _props$prefixCls === void 0 ? 'input-amount' : _props$prefixCls,
|
|
23
|
+
messageCls = props.messageCls,
|
|
24
|
+
footnoteCls = props.footnoteCls,
|
|
23
25
|
invalid = props.invalid,
|
|
24
26
|
_props$placeholder = props.placeholder,
|
|
25
27
|
placeholder = _props$placeholder === void 0 ? '0' : _props$placeholder,
|
|
@@ -29,10 +31,16 @@ export var InputAmount = function InputAmount(props) {
|
|
|
29
31
|
message = props.message,
|
|
30
32
|
footnote = props.footnote,
|
|
31
33
|
onChange = props.onChange,
|
|
32
|
-
|
|
34
|
+
_onBlur = props.onBlur,
|
|
35
|
+
_onFocus = props.onFocus,
|
|
36
|
+
rest = __rest(props, ["value", "children", "className", "wrapperCls", "prefixCls", "messageCls", "footnoteCls", "invalid", "placeholder", "prefix", "currency", "suffix", "message", "footnote", "onChange", "onBlur", "onFocus"]);
|
|
33
37
|
var classes = classnames(prefixCls);
|
|
34
38
|
var inputRef = useRef(null);
|
|
35
39
|
var fakeEleRef = useRef(null);
|
|
40
|
+
var prefixRef = useRef(null);
|
|
41
|
+
var suffixRef = useRef(null);
|
|
42
|
+
var currencyRef = useRef(null);
|
|
43
|
+
var containerRef = useRef(null);
|
|
36
44
|
var _useState = useState(null),
|
|
37
45
|
_useState2 = _slicedToArray(_useState, 2),
|
|
38
46
|
_value = _useState2[0],
|
|
@@ -41,68 +49,102 @@ export var InputAmount = function InputAmount(props) {
|
|
|
41
49
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
42
50
|
_width = _useState4[0],
|
|
43
51
|
setWidth = _useState4[1];
|
|
52
|
+
var _useState5 = useState(false),
|
|
53
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
54
|
+
isMaxWidth = _useState6[0],
|
|
55
|
+
setIsMaxWidth = _useState6[1];
|
|
56
|
+
var _useState7 = useState(false),
|
|
57
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
58
|
+
isFocus = _useState8[0],
|
|
59
|
+
setIsFocus = _useState8[1];
|
|
60
|
+
var formattedValue = useMemo(function () {
|
|
61
|
+
return numericFormatter('' + (_value == null ? '' : _value), {
|
|
62
|
+
thousandSeparator: true,
|
|
63
|
+
allowNegative: true
|
|
64
|
+
});
|
|
65
|
+
}, [_value]);
|
|
66
|
+
var scrollToEnd = useCallback(function () {
|
|
67
|
+
var _a;
|
|
68
|
+
var input = inputRef.current;
|
|
69
|
+
if (!input) return;
|
|
70
|
+
var len = (_a = input.value) === null || _a === void 0 ? void 0 : _a.length;
|
|
71
|
+
input.setSelectionRange(len, len);
|
|
72
|
+
input.scrollLeft = input.scrollWidth;
|
|
73
|
+
input.focus();
|
|
74
|
+
}, []);
|
|
44
75
|
var handleChange = useCallback(function (e) {
|
|
45
|
-
|
|
76
|
+
var val = e.target.value;
|
|
77
|
+
if (val != null) val = val.split(',').join('');
|
|
78
|
+
var hasDecimalPoint = val.lastIndexOf('.') === val.length - 1;
|
|
79
|
+
if (hasDecimalPoint) val = val.slice(0, -1);
|
|
80
|
+
if (isNaN(+val)) return;
|
|
81
|
+
setValue(val === '' ? null : "".concat(BigNumber(val).toFixed()).concat(hasDecimalPoint ? '.' : '').trim());
|
|
46
82
|
onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
47
83
|
}, [onChange]);
|
|
48
|
-
var handleKeyDown = useCallback(function (e) {
|
|
49
|
-
switch (e.key) {
|
|
50
|
-
case '.':
|
|
51
|
-
setValue(function (prev) {
|
|
52
|
-
return "".concat(prev, ".");
|
|
53
|
-
});
|
|
54
|
-
break;
|
|
55
|
-
case 'Backspace':
|
|
56
|
-
if (_value == null) return;
|
|
57
|
-
// eslint-disable-next-line no-case-declarations
|
|
58
|
-
var str = _value.toString();
|
|
59
|
-
if (str[str.length - 2] === '.') {
|
|
60
|
-
setTimeout(function () {
|
|
61
|
-
setValue("".concat(str.slice(0, -1)));
|
|
62
|
-
}, 0);
|
|
63
|
-
}
|
|
64
|
-
break;
|
|
65
|
-
default:
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
}, [_value]);
|
|
69
84
|
useEffect(function () {
|
|
70
|
-
var _a;
|
|
71
|
-
|
|
85
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
86
|
+
var containerWidth = (_b = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) !== null && _b !== void 0 ? _b : MIN_INPUT_WIDTH;
|
|
87
|
+
var prefixWidth = (_d = (_c = prefixRef.current) === null || _c === void 0 ? void 0 : _c.offsetWidth) !== null && _d !== void 0 ? _d : 0;
|
|
88
|
+
var suffixWidth = (_f = (_e = suffixRef.current) === null || _e === void 0 ? void 0 : _e.offsetWidth) !== null && _f !== void 0 ? _f : 0;
|
|
89
|
+
var currencyWidth = (_h = (_g = currencyRef.current) === null || _g === void 0 ? void 0 : _g.offsetWidth) !== null && _h !== void 0 ? _h : 0;
|
|
90
|
+
var fakeWidth = (_k = (_j = fakeEleRef.current) === null || _j === void 0 ? void 0 : _j.offsetWidth) !== null && _k !== void 0 ? _k : 0;
|
|
91
|
+
var gapWidth = prefixWidth && suffixWidth && currencyWidth ? 24 : prefixWidth && suffixWidth || prefixWidth && currencyWidth || suffixWidth && currencyWidth ? 16 : prefixWidth || suffixWidth || currencyWidth ? 8 : 0;
|
|
92
|
+
var maxWidth = containerWidth - prefixWidth - suffixWidth - currencyWidth - gapWidth;
|
|
93
|
+
var isMax = fakeWidth >= maxWidth;
|
|
94
|
+
if (isMax) scrollToEnd();
|
|
95
|
+
setWidth(Math.min(maxWidth, Math.max(fakeWidth, MIN_INPUT_WIDTH)));
|
|
96
|
+
setIsMaxWidth(isMax);
|
|
72
97
|
}, [_value]);
|
|
73
98
|
useEffect(function () {
|
|
74
|
-
|
|
99
|
+
var val = value;
|
|
100
|
+
if (typeof val === 'string') {
|
|
101
|
+
val = val.split(',').join('');
|
|
102
|
+
var hasDecimalPoint = val.lastIndexOf('.') === val.length - 1;
|
|
103
|
+
if (hasDecimalPoint) val = val.slice(0, -1);
|
|
104
|
+
if (isNaN(+val)) return;
|
|
105
|
+
} else if (val !== null && typeof val !== 'number' && typeof val !== 'bigint') return;
|
|
106
|
+
setValue(val == null ? null : BigNumber(val).toString());
|
|
75
107
|
}, [value]);
|
|
76
108
|
return _jsxs("div", {
|
|
77
109
|
className: classes('wrapper', [wrapperCls, invalid ? classes('invalid') : undefined].join(' ').trim()),
|
|
78
110
|
children: [_jsxs("div", {
|
|
79
|
-
|
|
111
|
+
ref: containerRef,
|
|
112
|
+
className: classes(void 0, [className, isFocus ? classes('focus') : ''].join(' ').trim()),
|
|
113
|
+
onClick: function onClick(e) {
|
|
114
|
+
var _a;
|
|
115
|
+
if (e.target instanceof HTMLInputElement) return;
|
|
116
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
117
|
+
if (isMaxWidth) scrollToEnd();
|
|
118
|
+
},
|
|
80
119
|
children: [prefix && _jsx("span", {
|
|
120
|
+
ref: prefixRef,
|
|
81
121
|
className: classes('prefix'),
|
|
82
|
-
onClick: function onClick() {
|
|
83
|
-
var _a;
|
|
84
|
-
return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
85
|
-
},
|
|
86
122
|
children: prefix
|
|
87
|
-
}), _jsx(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
123
|
+
}), _jsx("div", {
|
|
124
|
+
className: classes('element', !isFocus && isMaxWidth ? classes('element-max') : ''),
|
|
125
|
+
children: _jsx("input", Object.assign({}, rest, {
|
|
126
|
+
ref: inputRef,
|
|
127
|
+
value: formattedValue,
|
|
128
|
+
placeholder: placeholder,
|
|
129
|
+
style: {
|
|
130
|
+
'--input-width': "".concat(_width, "px")
|
|
131
|
+
},
|
|
132
|
+
onChange: handleChange,
|
|
133
|
+
onFocus: function onFocus(e) {
|
|
134
|
+
setIsFocus(true);
|
|
135
|
+
_onFocus === null || _onFocus === void 0 ? void 0 : _onFocus(e);
|
|
136
|
+
},
|
|
137
|
+
onBlur: function onBlur(e) {
|
|
138
|
+
setIsFocus(false);
|
|
139
|
+
_onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
|
|
140
|
+
}
|
|
141
|
+
}))
|
|
142
|
+
}), currency && _jsx("span", {
|
|
143
|
+
ref: currencyRef,
|
|
99
144
|
className: classes('currency'),
|
|
100
|
-
onClick: function onClick() {
|
|
101
|
-
var _a;
|
|
102
|
-
return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
103
|
-
},
|
|
104
145
|
children: currency
|
|
105
146
|
}), suffix && _jsx("span", {
|
|
147
|
+
ref: suffixRef,
|
|
106
148
|
className: classes('suffix'),
|
|
107
149
|
children: suffix
|
|
108
150
|
}), _jsx("span", {
|
|
@@ -112,20 +154,21 @@ export var InputAmount = function InputAmount(props) {
|
|
|
112
154
|
return e.stopPropagation();
|
|
113
155
|
},
|
|
114
156
|
children: numericFormatter('' + (_value == null ? '' : _value), {
|
|
115
|
-
thousandSeparator: true
|
|
157
|
+
thousandSeparator: true,
|
|
158
|
+
allowNegative: true
|
|
116
159
|
})
|
|
117
160
|
})]
|
|
118
161
|
}), (message || footnote) && _jsxs("div", {
|
|
119
162
|
className: classes('extra'),
|
|
120
|
-
children: [message && _jsx("
|
|
121
|
-
className: classes('message'),
|
|
163
|
+
children: [message && _jsx("div", {
|
|
164
|
+
className: classes('message', messageCls),
|
|
122
165
|
children: message
|
|
123
|
-
}), footnote && _jsx("
|
|
124
|
-
className: classes('footnote'),
|
|
166
|
+
}), footnote && _jsx("div", {
|
|
167
|
+
className: classes('footnote', footnoteCls),
|
|
125
168
|
children: footnote
|
|
126
169
|
})]
|
|
127
170
|
})]
|
|
128
171
|
});
|
|
129
172
|
};
|
|
130
173
|
export default /*#__PURE__*/memo(InputAmount);
|
|
131
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlU3RhdGUiLCJ1c2VDYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsIklucHV0TnVtYmVyIiwibnVtZXJpY0Zvcm1hdHRlciIsImNsYXNzbmFtZXMiLCJNSU5fSU5QVVRfV0lEVEgiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIndyYXBwZXJDbHMiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiaW52YWxpZCIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwicHJlZml4IiwiY3VycmVuY3kiLCJzdWZmaXgiLCJtZXNzYWdlIiwiZm9vdG5vdGUiLCJvbkNoYW5nZSIsInJlc3QiLCJjbGFzc2VzIiwiaW5wdXRSZWYiLCJmYWtlRWxlUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiaGFuZGxlQ2hhbmdlIiwiaGFuZGxlS2V5RG93biIsImtleSIsInByZXYiLCJjb25jYXQiLCJzdHIiLCJ0b1N0cmluZyIsInNldFRpbWVvdXQiLCJzbGljZSIsIl9hIiwiY3VycmVudCIsIm9mZnNldFdpZHRoIiwidW5kZWZpbmVkIiwiam9pbiIsInRyaW0iLCJvbkNsaWNrIiwiZm9jdXMiLCJhc3NpZ24iLCJtb2RlIiwicmVmIiwib25LZXlEb3duIiwic3R5bGUiLCJzdG9wUHJvcGFnYXRpb24iLCJ0aG91c2FuZFNlcGFyYXRvciJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDO0VBQ3pC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TyxDQUFDLFVBQVUsQ0FBQztRQUFBZixRQUFBLEVBQUdZO01BQVEsQ0FBQSxDQUFRO0lBQUEsQ0FBQSxDQUNoRTtFQUFBLENBQUEsQ0FFSjtBQUNSLENBQUM7QUFFRCw0QkFBZXhCLElBQUksQ0FBQ1MsV0FBVyxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElucHV0TnVtYmVyIH0gZnJvbSAncHJpbWVyZWFjdC9pbnB1dG51bWJlcic7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuZXhwb3J0IGNvbnN0IElucHV0QW1vdW50ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIGNoaWxkcmVuLCBjbGFzc05hbWUsIHdyYXBwZXJDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBpbnZhbGlkLCBwbGFjZWhvbGRlciA9ICcwJywgcHJlZml4LCBjdXJyZW5jeSwgc3VmZml4LCBtZXNzYWdlLCBmb290bm90ZSwgb25DaGFuZ2UgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJ2YWx1ZVwiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcInByZWZpeENsc1wiLCBcImludmFsaWRcIiwgXCJwbGFjZWhvbGRlclwiLCBcInByZWZpeFwiLCBcImN1cnJlbmN5XCIsIFwic3VmZml4XCIsIFwibWVzc2FnZVwiLCBcImZvb3Rub3RlXCIsIFwib25DaGFuZ2VcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgZmFrZUVsZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbX3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShNSU5fSU5QVVRfV0lEVEgpO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHNldFZhbHVlKGUudmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlXSk7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgICAgICAgIHNldFZhbHVlKHByZXYgPT4gYCR7cHJldn0uYCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgICAgICAgIGlmIChfdmFsdWUgPT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ciA9IF92YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGlmIChzdHJbc3RyLmxlbmd0aCAtIDJdID09PSAnLicpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShgJHtzdHIuc2xpY2UoMCwgLTEpfWApO1xuICAgICAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSwgW192YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgc2V0V2lkdGgoKChfYSA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9mZnNldFdpZHRoKSB8fCBNSU5fSU5QVVRfV0lEVEgpO1xuICAgIH0sIFtfdmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4gc2V0VmFsdWUodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogbnVsbCksIFt2YWx1ZV0pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIFt3cmFwcGVyQ2xzLCBpbnZhbGlkID8gY2xhc3NlcygnaW52YWxpZCcpIDogdW5kZWZpbmVkXS5qb2luKCcgJykudHJpbSgpKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgb25DbGljazogKCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTsgfSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChJbnB1dE51bWJlciwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBtb2RlOiAnZGVjaW1hbCcsIHJlZjogaW5wdXRSZWYsIHZhbHVlOiB2YWx1ZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2VsZW1lbnQnKSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLCBzdHlsZTogeyAnLS1pbnB1dC13aWR0aCc6IGAke193aWR0aH1weGAgfSB9KSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBvbkNsaWNrOiAoKSA9PiB7IHZhciBfYTsgcmV0dXJuIChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpOyB9LCBjaGlsZHJlbjogY3VycmVuY3kgfSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBmYWtlRWxlUmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zha2UnKSwgb25DbGljazogZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpLCBjaGlsZHJlbjogbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSldIH0pLCAobWVzc2FnZSB8fCBmb290bm90ZSkgJiYgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2V4dHJhJyksIGNoaWxkcmVuOiBbbWVzc2FnZSAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSwgZm9vdG5vdGUgJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJyksIGNoaWxkcmVuOiBmb290bm90ZSB9KV0gfSldIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oSW5wdXRBbW91bnQpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiY2xhc3NuYW1lcyIsIk1JTl9JTlBVVF9XSURUSCIsIklucHV0QW1vdW50IiwicHJvcHMiLCJ2YWx1ZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJtZXNzYWdlQ2xzIiwiZm9vdG5vdGVDbHMiLCJpbnZhbGlkIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJwcmVmaXgiLCJjdXJyZW5jeSIsInN1ZmZpeCIsIm1lc3NhZ2UiLCJmb290bm90ZSIsIm9uQ2hhbmdlIiwib25CbHVyIiwib25Gb2N1cyIsInJlc3QiLCJjbGFzc2VzIiwiaW5wdXRSZWYiLCJmYWtlRWxlUmVmIiwicHJlZml4UmVmIiwic3VmZml4UmVmIiwiY3VycmVuY3lSZWYiLCJjb250YWluZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJfdmFsdWUiLCJzZXRWYWx1ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiX3dpZHRoIiwic2V0V2lkdGgiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzTWF4V2lkdGgiLCJzZXRJc01heFdpZHRoIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc0ZvY3VzIiwic2V0SXNGb2N1cyIsImZvcm1hdHRlZFZhbHVlIiwidGhvdXNhbmRTZXBhcmF0b3IiLCJhbGxvd05lZ2F0aXZlIiwic2Nyb2xsVG9FbmQiLCJfYSIsImlucHV0IiwiY3VycmVudCIsImxlbiIsInNldFNlbGVjdGlvblJhbmdlIiwic2Nyb2xsTGVmdCIsInNjcm9sbFdpZHRoIiwiZm9jdXMiLCJoYW5kbGVDaGFuZ2UiLCJ2YWwiLCJ0YXJnZXQiLCJzcGxpdCIsImpvaW4iLCJoYXNEZWNpbWFsUG9pbnQiLCJsYXN0SW5kZXhPZiIsInNsaWNlIiwiaXNOYU4iLCJjb25jYXQiLCJ0b0ZpeGVkIiwidHJpbSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiX2YiLCJfZyIsIl9oIiwiX2oiLCJfayIsImNvbnRhaW5lcldpZHRoIiwib2Zmc2V0V2lkdGgiLCJwcmVmaXhXaWR0aCIsInN1ZmZpeFdpZHRoIiwiY3VycmVuY3lXaWR0aCIsImZha2VXaWR0aCIsImdhcFdpZHRoIiwibWF4V2lkdGgiLCJpc01heCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJ0b1N0cmluZyIsInVuZGVmaW5lZCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJzdG9wUHJvcGFnYXRpb24iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENB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RTVCLElBQUEsQ0FBQSxNQUFBLEVBQUE7UUFDRTBHLEdBQUcsRUFBRXJFLFVBQVU7UUFDZnBCLFNBQVMsRUFBRWtCLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUJ3RSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBRXhILENBQUM7VUFBQSxPQUFJQSxDQUFDLENBQUM0SCxlQUFlLENBQUEsQ0FBRTtRQUFBO1FBQUEvRixRQUFBLEVBRy9CTixnQkFBZ0IsQ0FBQyxFQUFFLElBQUltQyxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBR0EsTUFBTSxDQUFDLEVBQUU7VUFDcERlLGlCQUFpQixFQUFFLElBQUk7VUFDdkJDLGFBQWEsRUFBRTtRRHBESCxDQ3FEYjtNQUFDLENBQUEsQ0FFQztJQUFBLENBQUEsQ0FDSCxFQUVKLENBQUNoQyxPQUFPLElBQUlDLFFBQVEsS0FBSzVCLEtBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS2UsU0FBUyxFQUFFa0IsT0FBTyxDQUFDLE9BQU8sQ0FBQztNQUFBbkIsUUFBQSxFQUFBLENBQ3REYSxPQUFPLElBQUk3QixJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUtpQixTQUFTLEVBQUVrQixPQUFPLENBQUMsU0FBUyxFQUFFZCxVQUFVLENBQUM7UUFBQUwsUUFBQSxFQUFHYTtNQUFPLENBQUEsQ0FBTyxFQUMxRUMsUUFBUSxJQUFJOUIsSUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLaUIsU0FBUyxFQUFFa0IsT0FBTyxDQUFDLFVBQVUsRUFBRWIsV0FBVyxDQUFDO1FBQUFOLFFBQUEsRUFBR2M7TUFBUSxDQUFBLENBQU87SUFBQSxDQUFBLENBQzNFO0VBQUEsQ0FBQSxDQUVKO0FBQ1IsQ0FBQztBQUVELDRCQUFlM0IsSUFBSSxDQUFDVSxXQUFXLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9JbnB1dEFtb3VudC9JbnB1dEFtb3VudC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgbnVtZXJpY0Zvcm1hdHRlciB9IGZyb20gJ3JlYWN0LW51bWJlci1mb3JtYXQnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBNSU5fSU5QVVRfV0lEVEggPSAzMztcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCBjaGlsZHJlbiwgY2xhc3NOYW1lLCB3cmFwcGVyQ2xzLCBwcmVmaXhDbHMgPSAnaW5wdXQtYW1vdW50JywgbWVzc2FnZUNscywgZm9vdG5vdGVDbHMsIGludmFsaWQsIHBsYWNlaG9sZGVyID0gJzAnLCBwcmVmaXgsIGN1cnJlbmN5LCBzdWZmaXgsIG1lc3NhZ2UsIGZvb3Rub3RlLCBvbkNoYW5nZSwgb25CbHVyLCBvbkZvY3VzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1widmFsdWVcIiwgXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcIndyYXBwZXJDbHNcIiwgXCJwcmVmaXhDbHNcIiwgXCJtZXNzYWdlQ2xzXCIsIFwiZm9vdG5vdGVDbHNcIiwgXCJpbnZhbGlkXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJwcmVmaXhcIiwgXCJjdXJyZW5jeVwiLCBcInN1ZmZpeFwiLCBcIm1lc3NhZ2VcIiwgXCJmb290bm90ZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25CbHVyXCIsIFwib25Gb2N1c1wiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmYWtlRWxlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZWZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdWZmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY3VycmVuY3lSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9LCBbX3ZhbHVlXSk7XG4gICAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBsZW4gPSAoX2EgPSBpbnB1dC52YWx1ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aDtcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobGVuLCBsZW4pO1xuICAgICAgICBpbnB1dC5zY3JvbGxMZWZ0ID0gaW5wdXQuc2Nyb2xsV2lkdGg7XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsKVxuICAgICAgICAgICAgdmFsID0gdmFsLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGhhc0RlY2ltYWxQb2ludCA9IHZhbC5sYXN0SW5kZXhPZignLicpID09PSB2YWwubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGlmIChpc05hTigrdmFsKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc2V0VmFsdWUodmFsID09PSAnJyA/IG51bGwgOiBgJHtCaWdOdW1iZXIodmFsKS50b0ZpeGVkKCl9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShlKTtcbiAgICB9LCBbb25DaGFuZ2VdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKF9iID0gKF9hID0gY29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTUlOX0lOUFVUX1dJRFRIO1xuICAgICAgICBjb25zdCBwcmVmaXhXaWR0aCA9IChfZCA9IChfYyA9IHByZWZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgIGNvbnN0IHN1ZmZpeFdpZHRoID0gKF9mID0gKF9lID0gc3VmZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMDtcbiAgICAgICAgY29uc3QgY3VycmVuY3lXaWR0aCA9IChfaCA9IChfZyA9IGN1cnJlbmN5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2ggIT09IHZvaWQgMCA/IF9oIDogMDtcbiAgICAgICAgY29uc3QgZmFrZVdpZHRoID0gKF9rID0gKF9qID0gZmFrZUVsZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2oub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IDA7XG4gICAgICAgIGNvbnN0IGdhcFdpZHRoID0gcHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgPyAyNFxuICAgICAgICAgICAgOiAocHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGgpIHx8IChwcmVmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKSB8fCAoc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aClcbiAgICAgICAgICAgICAgICA/IDE2XG4gICAgICAgICAgICAgICAgOiBwcmVmaXhXaWR0aCB8fCBzdWZmaXhXaWR0aCB8fCBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBwcmVmaXhXaWR0aCAtIHN1ZmZpeFdpZHRoIC0gY3VycmVuY3lXaWR0aCAtIGdhcFdpZHRoO1xuICAgICAgICBjb25zdCBpc01heCA9IGZha2VXaWR0aCA+PSBtYXhXaWR0aDtcbiAgICAgICAgaWYgKGlzTWF4KVxuICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgc2V0V2lkdGgoTWF0aC5taW4obWF4V2lkdGgsIE1hdGgubWF4KGZha2VXaWR0aCwgTUlOX0lOUFVUX1dJRFRIKSkpO1xuICAgICAgICBzZXRJc01heFdpZHRoKGlzTWF4KTtcbiAgICB9LCBbX3ZhbHVlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IHZhbCA9IHZhbHVlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICAgICAgY29uc3QgaGFzRGVjaW1hbFBvaW50ID0gdmFsLmxhc3RJbmRleE9mKCcuJykgPT09IHZhbC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbCAhPT0gJ2JpZ2ludCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldFZhbHVlKHZhbCA9PSBudWxsID8gbnVsbCA6IEJpZ051bWJlcih2YWwpLnRvU3RyaW5nKCkpO1xuICAgIH0sIFt2YWx1ZV0pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIFt3cmFwcGVyQ2xzLCBpbnZhbGlkID8gY2xhc3NlcygnaW52YWxpZCcpIDogdW5kZWZpbmVkXS5qb2luKCcgJykudHJpbSgpKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IHJlZjogY29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXModm9pZCAwLCBbY2xhc3NOYW1lLCBpc0ZvY3VzID8gY2xhc3NlcygnZm9jdXMnKSA6ICcnXS5qb2luKCcgJykudHJpbSgpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VsZW1lbnQnLCAoIWlzRm9jdXMgJiYgaXNNYXhXaWR0aCkgPyBjbGFzc2VzKCdlbGVtZW50LW1heCcpIDogJycpLCBjaGlsZHJlbjogX2pzeChcImlucHV0XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBpbnB1dFJlZiwgdmFsdWU6IGZvcm1hdHRlZFZhbHVlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvbkZvY3VzOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQmx1cjogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9KSkgfSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBjdXJyZW5jeVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBjaGlsZHJlbjogY3VycmVuY3kgfSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pLCBfanN4KFwic3BhblwiLCB7IHJlZjogZmFrZUVsZVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmYWtlJyksIG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2hpbGRyZW46IG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSldIH0pLCAobWVzc2FnZSB8fCBmb290bm90ZSkgJiYgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2V4dHJhJyksIGNoaWxkcmVuOiBbbWVzc2FnZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdtZXNzYWdlJywgbWVzc2FnZUNscyksIGNoaWxkcmVuOiBtZXNzYWdlIH0pLCBmb290bm90ZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdmb290bm90ZScsIGZvb3Rub3RlQ2xzKSwgY2hpbGRyZW46IGZvb3Rub3RlIH0pXSB9KV0gfSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhJbnB1dEFtb3VudCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import type { RefObject, ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { RefObject, ReactNode, MouseEvent, ChangeEvent, KeyboardEvent, FocusEvent } from 'react';
|
|
2
|
+
export interface InputAmountProps {
|
|
3
|
+
ref?: RefObject<HTMLInputElement | null>;
|
|
4
|
+
value?: string | number | bigint | null;
|
|
5
|
+
placeholder?: string;
|
|
5
6
|
className?: string;
|
|
6
7
|
prefixCls?: string;
|
|
7
8
|
wrapperCls?: string;
|
|
9
|
+
messageCls?: string;
|
|
10
|
+
footnoteCls?: string;
|
|
8
11
|
invalid?: boolean;
|
|
9
12
|
prefix?: ReactNode;
|
|
10
13
|
currency?: ReactNode;
|
|
11
14
|
suffix?: ReactNode;
|
|
12
15
|
message?: ReactNode;
|
|
13
16
|
footnote?: ReactNode;
|
|
17
|
+
onClick?: (e: MouseEvent<HTMLInputElement>) => void;
|
|
18
|
+
onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
|
|
19
|
+
onKeyDown?: (e: KeyboardEvent<HTMLInputElement>) => void;
|
|
20
|
+
onKeyUp?: (e: KeyboardEvent<HTMLInputElement>) => void;
|
|
21
|
+
onFocus?: (e: FocusEvent<HTMLInputElement>) => void;
|
|
22
|
+
onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
|
|
14
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.om-react-ui-input-amount{display:inline-flex;gap:8px;align-items:center;justify-content:start;width:100%;padding-bottom:16px;border-bottom:1px solid #d1d2d2}.om-react-ui-input-amount-
|
|
1
|
+
.om-react-ui-input-amount{display:inline-flex;gap:8px;align-items:center;justify-content:start;width:100%;padding-bottom:16px;border-bottom:1px solid #d1d2d2}.om-react-ui-input-amount-focus{border-bottom-color:#073387}.om-react-ui-input-amount-element{position:relative;display:inline-flex;flex-grow:0;color:#073387;font-weight:500;font-size:52px;font-family:var(--font-aeonik),Aeonik;line-height:56px;letter-spacing:-.25px}.om-react-ui-input-amount-element input{position:relative;width:var(--input-width);max-width:100%;padding:0;color:inherit;font-weight:inherit;font-size:inherit;font-family:inherit;line-height:inherit;letter-spacing:inherit;border:none;border-radius:0;outline:none;box-shadow:none}.om-react-ui-input-amount-element input::placeholder{color:inherit}.om-react-ui-input-amount-element-max:after{position:absolute;top:0;right:0;width:98px;height:100%;background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.51) 37.98%,#fff 84.13%);cursor:text;content:""}.om-react-ui-input-amount-fake{position:absolute;top:0;left:-9999px;z-index:-1;display:inline-block;color:#073387;font-weight:500;font-size:52px;font-family:var(--font-aeonik),Aeonik;line-height:56px;letter-spacing:-.25px;white-space:pre;visibility:hidden;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;inset-block-start:0;inset-inline-start:0}.om-react-ui-input-amount-currency,.om-react-ui-input-amount-prefix,.om-react-ui-input-amount-suffix{display:inline-flex;flex-grow:0;flex-shrink:0;align-items:center}.om-react-ui-input-amount-prefix{color:#073387}.om-react-ui-input-amount-currency,.om-react-ui-input-amount-prefix{font-weight:500;font-size:52px;font-family:var(--font-aeonik),Aeonik;line-height:56px;letter-spacing:-.25px}.om-react-ui-input-amount-currency{color:#e3e4e4}.om-react-ui-input-amount-suffix{margin-left:auto}.om-react-ui-input-amount-extra{display:inline-flex;flex-direction:column;gap:16px}.om-react-ui-input-amount-message{color:#131313;font-weight:400;font-size:12px;font-family:var(--font-inter),Inter;line-height:140%}.om-react-ui-input-amount-footnote{text-align:left}.om-react-ui-input-amount-invalid .om-react-ui-input-amount{border-bottom-color:#ae0000}.om-react-ui-input-amount-invalid .om-react-ui-input-amount-element,.om-react-ui-input-amount-invalid .om-react-ui-input-amount-message,.om-react-ui-input-amount-invalid .om-react-ui-input-amount-prefix{color:#ae0000}.om-react-ui-input-amount-wrapper{display:inline-flex;flex-direction:column;gap:16px;width:100%}
|
|
@@ -13,26 +13,22 @@ $cls: #{$prefix}-#{$component};
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.#{$cls} {
|
|
16
|
-
|
|
17
|
-
gap: 8px;
|
|
18
|
-
align-items: center;
|
|
19
|
-
justify-content: start;
|
|
20
|
-
width: 100%;
|
|
21
|
-
padding-bottom: 16px;
|
|
22
|
-
border-bottom: 1px solid $color-grey-bold;
|
|
23
|
-
|
|
24
|
-
&-wrapper {
|
|
16
|
+
& {
|
|
25
17
|
display: inline-flex;
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
gap: 8px;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: start;
|
|
28
21
|
width: 100%;
|
|
22
|
+
padding-bottom: 16px;
|
|
23
|
+
border-bottom: 1px solid $color-grey-bold;
|
|
29
24
|
}
|
|
30
25
|
|
|
31
|
-
|
|
26
|
+
&-focus {
|
|
32
27
|
border-bottom-color: $color-primary;
|
|
33
28
|
}
|
|
34
29
|
|
|
35
30
|
&-element {
|
|
31
|
+
position: relative;
|
|
36
32
|
display: inline-flex;
|
|
37
33
|
flex-grow: 0;
|
|
38
34
|
|
|
@@ -41,6 +37,7 @@ $cls: #{$prefix}-#{$component};
|
|
|
41
37
|
input {
|
|
42
38
|
position: relative;
|
|
43
39
|
width: var(--input-width);
|
|
40
|
+
max-width: 100%;
|
|
44
41
|
padding: 0;
|
|
45
42
|
color: inherit;
|
|
46
43
|
font-weight: inherit;
|
|
@@ -50,12 +47,26 @@ $cls: #{$prefix}-#{$component};
|
|
|
50
47
|
letter-spacing: inherit;
|
|
51
48
|
border: none;
|
|
52
49
|
border-radius: 0;
|
|
50
|
+
outline: none;
|
|
53
51
|
box-shadow: none;
|
|
54
52
|
|
|
55
53
|
&::placeholder {
|
|
56
54
|
color: inherit;
|
|
57
55
|
}
|
|
58
56
|
}
|
|
57
|
+
|
|
58
|
+
&-max {
|
|
59
|
+
&::after {
|
|
60
|
+
position: absolute;
|
|
61
|
+
top: 0;
|
|
62
|
+
right: 0;
|
|
63
|
+
width: 98px;
|
|
64
|
+
height: 100%;
|
|
65
|
+
background: linear-gradient(90deg, rgba(254, 254, 254, 0%) 0%, rgba(255, 255, 255, 51%) 37.98%, #FFF 84.13%);
|
|
66
|
+
cursor: text;
|
|
67
|
+
content: '';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
59
70
|
}
|
|
60
71
|
|
|
61
72
|
&-fake {
|
|
@@ -112,11 +123,7 @@ $cls: #{$prefix}-#{$component};
|
|
|
112
123
|
}
|
|
113
124
|
|
|
114
125
|
&-footnote {
|
|
115
|
-
|
|
116
|
-
font-weight: 500;
|
|
117
|
-
font-size: 16px;
|
|
118
|
-
font-family: var(--font-inter), Inter;
|
|
119
|
-
line-height: 140%;
|
|
126
|
+
text-align: left;
|
|
120
127
|
}
|
|
121
128
|
|
|
122
129
|
&-invalid {
|
|
@@ -130,4 +137,11 @@ $cls: #{$prefix}-#{$component};
|
|
|
130
137
|
color: $color-negative;
|
|
131
138
|
}
|
|
132
139
|
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.#{$cls}-wrapper {
|
|
143
|
+
display: inline-flex;
|
|
144
|
+
flex-direction: column;
|
|
145
|
+
gap: 16px;
|
|
146
|
+
width: 100%;
|
|
133
147
|
}
|