@semcore/input-number 5.41.1 → 16.0.0-prerelease.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 +6 -0
- package/lib/cjs/InputNumber.js +14 -16
- package/lib/cjs/InputNumber.js.map +1 -1
- package/lib/es6/InputNumber.js +14 -14
- package/lib/es6/InputNumber.js.map +1 -1
- package/lib/esm/InputNumber.mjs +151 -152
- package/package.json +4 -7
package/CHANGELOG.md
CHANGED
package/lib/cjs/InputNumber.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
@@ -15,25 +14,24 @@ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
15
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
15
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
17
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
-
var
|
|
19
|
-
var _core = _interopRequireWildcard(require("@semcore/core"));
|
|
17
|
+
var _core = require("@semcore/core");
|
|
20
18
|
var _react = _interopRequireDefault(require("react"));
|
|
21
19
|
var _input = _interopRequireDefault(require("@semcore/input"));
|
|
22
20
|
var _buttons = require("./buttons");
|
|
23
21
|
var _intergalacticDynamicLocales = require("./translations/__intergalactic-dynamic-locales");
|
|
24
|
-
var _i18nEnhance = _interopRequireDefault(require("@semcore/
|
|
25
|
-
var _ref7 = require("@semcore/
|
|
26
|
-
var _assignProps4 = require("@semcore/
|
|
22
|
+
var _i18nEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/i18nEnhance"));
|
|
23
|
+
var _ref7 = require("@semcore/core/lib/utils/ref");
|
|
24
|
+
var _assignProps4 = require("@semcore/core/lib/utils/assignProps");
|
|
27
25
|
/*__reshadow-styles__:"./style/input-number.shadow.css"*/
|
|
28
|
-
var style = ( /*__reshadow_css_start__*/
|
|
29
|
-
"__SValue": "
|
|
30
|
-
"__SControls": "
|
|
31
|
-
"_showControls": "
|
|
32
|
-
"__SUp": "
|
|
33
|
-
"__SDown": "
|
|
34
|
-
"_disabled": "
|
|
35
|
-
"__SValueHidden": "
|
|
36
|
-
"_type_number": "
|
|
26
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SValue_1l7h4_gg_:focus~.___SControls_1l7h4_gg_{display:flex}.___SControls_1l7h4_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_1l7h4_gg_.__showControls_1l7h4_gg_{display:flex}.___SDown_1l7h4_gg_,.___SUp_1l7h4_gg_{padding:0;width:16px;color:var(--intergalactic-icon-secondary-neutral, #a9abb6);box-sizing:border-box;display:inline-flex;justify-content:center;border:0;background:0 0;cursor:pointer}.___SDown_1l7h4_gg_:focus,.___SUp_1l7h4_gg_:focus{outline:0}@media (hover:hover){.___SDown_1l7h4_gg_:hover,.___SUp_1l7h4_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_1l7h4_gg_{padding-bottom:1px}.___SDown_1l7h4_gg_{padding-top:1px}.___SValue_1l7h4_gg_::-webkit-inner-spin-button,.___SValue_1l7h4_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_1l7h4_gg_._type_number_1l7h4_gg_{-moz-appearance:textfield}.___SValue_1l7h4_gg_.__disabled_1l7h4_gg_~.___SControls_1l7h4_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_1l7h4_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}" /*__inner_css_end__*/, "1l7h4_gg_") /*__reshadow_css_end__*/, {
|
|
27
|
+
"__SValue": "___SValue_1l7h4_gg_",
|
|
28
|
+
"__SControls": "___SControls_1l7h4_gg_",
|
|
29
|
+
"_showControls": "__showControls_1l7h4_gg_",
|
|
30
|
+
"__SUp": "___SUp_1l7h4_gg_",
|
|
31
|
+
"__SDown": "___SDown_1l7h4_gg_",
|
|
32
|
+
"_disabled": "__disabled_1l7h4_gg_",
|
|
33
|
+
"__SValueHidden": "___SValueHidden_1l7h4_gg_",
|
|
34
|
+
"_type_number": "_type_number_1l7h4_gg_"
|
|
37
35
|
});
|
|
38
36
|
function parseValueWithMinMax(value) {
|
|
39
37
|
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MIN_SAFE_INTEGER;
|
|
@@ -504,7 +502,7 @@ function Controls(props) {
|
|
|
504
502
|
}), /*#__PURE__*/_react["default"].createElement(_buttons.DecrementIcon, _ref6.cn("DecrementIcon", {}))), /*#__PURE__*/_react["default"].createElement(Children, _ref6.cn("Children", {})));
|
|
505
503
|
}
|
|
506
504
|
Controls.style = style;
|
|
507
|
-
var _default = (0, _core
|
|
505
|
+
var _default = (0, _core.createComponent)(InputNumber, {
|
|
508
506
|
Value: Value,
|
|
509
507
|
Controls: Controls,
|
|
510
508
|
Addon: _input["default"].Addon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_input","_buttons","_intergalacticDynamicLocales","_i18nEnhance","_ref7","_assignProps4","style","_index","sstyled","insert","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","inputRef","current","stepUp","_this$inputRef$curren3","_this$inputRef$curren4","stepDown","_createClass2","key","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","_this$asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","Input","createElement","cn","_objectSpread2","assignProps","Component","i18nEnhance","localizedMessages","i18n","Value","_Component2","_super2","_this2","_len2","_key2","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","_stringNumber$split","split","_stringNumber$split2","_slicedToArray2","int","decimal","format","_this2$asProps","step","_this2$valueParser","valueParser","currentTarget","roundCoefficient","toString","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","callAllEventHandlers","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","_this2$asProps2","endsWith","slice","digits","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","_this2$asProps3","_this2$asProps3$max","_this2$asProps4","_this2$asProps4$min","uncontrolledProps","_this3","_this3$asProps","_this3$valueParser","get","countDecimals","floor","toPrecision","componentDidMount","_this$valueInputRef$c","addEventListener","_this$asProps2","_this$valueParser","componentDidUpdate","prevProps","_this$valueParser2","componentWillUnmount","_this$valueInputRef$c2","removeEventListener","_ref2","_ref5","SValue","_this$asProps3","styles","forwardRef","Fragment","handleChange","handleKeyDown","handleKeyUp","handleClick","forkRef","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","IncrementIcon","DecrementIcon","_default","createComponent","exports"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /[0-9.-]+/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n }\n // we could press decimal separator second time - prevent this '1.5.'\n else if (value.indexOf(this.separatorDecimal) !== -1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AADA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAGA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AAAsE;AAAA,IAAAS,KAAA,+BAAAC,MAAA,CAAAC,OAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAE/D,SAASC,oBAAoBA,CAClCC,KAAK,EAGL;EAAA,IAFAC,GAAG,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGG,MAAM,CAACC,gBAAgB;EAAA,IAC7BC,GAAG,GAAAL,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGG,MAAM,CAACG,gBAAgB;EAE7B,OAAOC,IAAI,CAACF,GAAG,CAACN,GAAG,EAAEQ,IAAI,CAACR,GAAG,CAACM,GAAG,EAAEP,KAAK,CAAC,CAAC;AAC5C;AAAC,IAEKU,WAAW,0BAAAC,UAAA;EAAA,IAAAC,UAAA,aAAAF,WAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,OAAAC,aAAA,aAAAJ,WAAA;EAAA,SAAAA,YAAA;IAAA,IAAAK,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,WAAA;IAAA,SAAAO,IAAA,GAAAf,SAAA,CAAAC,MAAA,EAAAe,IAAA,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAlB,SAAA,CAAAkB,IAAA;IAAA;IAAAL,KAAA,GAAAF,MAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,MAAA,SAAAU,MAAA,CAAAL,IAAA;IAAA,IAAAM,gBAAA,iBAAAC,uBAAA,aAAAV,KAAA,4BAUJW,iBAAK,CAACC,SAAS,EAAE;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAV,KAAA,gBAEhB,UAACa,KAAK,EAAK;MAAA,IAAAC,qBAAA,EAAAC,sBAAA;MACrB,CAAAD,qBAAA,GAAAd,KAAA,CAAKgB,QAAQ,CAACC,OAAO,cAAAH,qBAAA,wBAAAC,sBAAA,GAArBD,qBAAA,CAAuBI,MAAM,cAAAH,sBAAA,uBAA7BA,sBAAA,CAAAT,IAAA,CAAAQ,qBAAA,EAAgCD,KAAK,CAAC;IACxC,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAAV,KAAA,gBAEW,UAACa,KAAK,EAAK;MAAA,IAAAM,sBAAA,EAAAC,sBAAA;MACrB,CAAAD,sBAAA,GAAAnB,KAAA,CAAKgB,QAAQ,CAACC,OAAO,cAAAE,sBAAA,wBAAAC,sBAAA,GAArBD,sBAAA,CAAuBE,QAAQ,cAAAD,sBAAA,uBAA/BA,sBAAA,CAAAd,IAAA,CAAAa,sBAAA,EAAkCN,KAAK,CAAC;IAC1C,CAAC;IAAA,OAAAb,KAAA;EAAA;EAAA,IAAAsB,aAAA,aAAA3B,WAAA;IAAA4B,GAAA;IAAAtC,KAAA,EAED,SAAAuC,cAAA,EAAgB;MACd,IAAMC,eAAe,GAAG,IAAIC,IAAI,CAACC,YAAY,CAAC,IAAI,CAACC,OAAO,CAACC,MAAM,EAAE;QAAEjD,KAAK,EAAE;MAAU,CAAC,CAAC;MAExF,OAAO;QACLoC,QAAQ,EAAE,IAAI,CAACA,QAAQ;QACvBc,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBC,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBN,eAAe,EAAfA;MACF,CAAC;IACH;EAAC;IAAAF,GAAA;IAAAtC,KAAA,EAED,SAAA+C,iBAAA,EAAmB;MACjB,IAAAC,aAAA,GAA8B,IAAI,CAACL,OAAO;QAAlCM,IAAI,GAAAD,aAAA,CAAJC,IAAI;QAAEC,WAAW,GAAAF,aAAA,CAAXE,WAAW;MACzB,OAAO;QACLD,IAAI,EAAJA,IAAI;QACJJ,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBC,SAAS,EAAE,IAAI,CAACA,SAAS;QACzBI,WAAW,EAAXA;MACF,CAAC;IACH;EAAC;IAAAZ,GAAA;IAAAtC,KAAA,EAED,SAAAmD,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAT,OAAA;QAAAU,KAAA;MACP,IAAMC,YAAY,GACuCC,iBAAK;MAA9D,OAAAF,KAAA,GAAO,IAAAxD,aAAO,EAAC,IAAI,CAAC8C,OAAO,CAAChD,KAAK,CAAC,eAACR,MAAA,YAAAqE,aAAA,CAACF,YAAY,EAAAD,KAAA,CAAAI,EAAA,qBAAAC,cAAA,qBAAA1E,KAAA,CAAA2E,WAAA,MAAAP,IAAA,IAAkB;IACpE;EAAC;EAAA,OAAA1C,WAAA;AAAA,EA5CuBkD,eAAS;AAAA,IAAApC,gBAAA,aAA7Bd,WAAW,iBACM,aAAa;AAAA,IAAAc,gBAAA,aAD9Bd,WAAW,WAEAf,KAAK;AAAA,IAAA6B,gBAAA,aAFhBd,WAAW,aAGE,CAAC,IAAAmD,uBAAW,EAACC,8CAAiB,CAAC,CAAC;AAAA,IAAAtC,gBAAA,aAH7Cd,WAAW,kBAIO;EACpBuC,IAAI,EAAE,GAAG;EACTc,IAAI,EAAED,8CAAiB;EACvBlB,MAAM,EAAE;AACV,CAAC;AAAA,IAuCGoB,KAAK,0BAAAC,WAAA;EAAA,IAAArD,UAAA,aAAAoD,KAAA,EAAAC,WAAA;EAAA,IAAAC,OAAA,OAAApD,aAAA,aAAAkD,KAAA;EAAA,SAAAA,MAAA;IAAA,IAAAG,MAAA;IAAA,IAAAnD,gBAAA,mBAAAgD,KAAA;IAAA,SAAAI,KAAA,GAAAlE,SAAA,CAAAC,MAAA,EAAAe,IAAA,OAAAC,KAAA,CAAAiD,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAAnD,IAAA,CAAAmD,KAAA,IAAAnE,SAAA,CAAAmE,KAAA;IAAA;IAAAF,MAAA,GAAAD,OAAA,CAAA7C,IAAA,CAAAC,KAAA,CAAA4C,OAAA,SAAA3C,MAAA,CAAAL,IAAA;IAAA,IAAAM,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,iCAQOzC,iBAAK,CAACC,SAAS,EAAE;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,qBAEhB,CAAC,CAAC;IAAA,IAAA3C,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,wBAoCC,UAACnE,KAAK,EAAK;MAC7B,OAAOA,KAAK,CACTsE,OAAO,CAAC,IAAIC,MAAM,KAAAhD,MAAA,CAAK4C,MAAA,CAAKK,kBAAkB,QAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAC5DF,OAAO,CAACH,MAAA,CAAKM,gBAAgB,EAAE,GAAG,CAAC;IACxC,CAAC;IAAA,IAAAjD,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,kBAEa,UAACnE,KAAK,EAAE0E,SAAS,EAAEC,gBAAgB,EAAK;MACpD,IAAQnC,eAAe,GAAK2B,MAAA,CAAKS,KAAK,CAA9BpC,eAAe;MAEvB,IAAMqC,YAAY,GAAGV,MAAA,CAAKW,iBAAiB,CAACC,MAAM,CAAC/E,KAAK,CAAC,CAAC;MAE1D,IAAIK,MAAM,CAAC2E,KAAK,CAAC3E,MAAM,CAACwE,YAAY,CAAC,CAAC,EAAE;QACtC,OAAO;UACLI,WAAW,EAAEP,SAAS;UACtBQ,YAAY,EAAEP;QAChB,CAAC;MACH;MAEA,IAAIO,YAAY,GAAG,EAAE;MAErB,IAAI,YAAY,CAACC,IAAI,CAACN,YAAY,CAAC,EAAE;QACnC,IAAAO,mBAAA,GAAuBP,YAAY,CAACQ,KAAK,CAAClB,MAAA,CAAKM,gBAAgB,CAAC;UAAAa,oBAAA,OAAAC,eAAA,aAAAH,mBAAA;UAAzDI,IAAG,GAAAF,oBAAA;UAAEG,OAAO,GAAAH,oBAAA;QACnBJ,YAAY,GAAG1C,eAAe,CAACkD,MAAM,CAACF,IAAG,CAAC,GAAGrB,MAAA,CAAKM,gBAAgB,GAAGgB,OAAO;MAC9E,CAAC,MAAM,IAAIZ,YAAY,KAAK,EAAE,EAAE;QAC9BK,YAAY,GAAG1C,eAAe,CAACkD,MAAM,CAACb,YAAY,CAAC;MACrD;MAEA,OAAO;QACLI,WAAW,EAAEJ,YAAY;QACzBK,YAAY,EAAEA;MAChB,CAAC;IACH,CAAC;IAAA,IAAA1D,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,uBASkB,UAACvC,KAAK,EAAK;MAC5B,IAAA+D,cAAA,GAAgDxB,MAAA,CAAKxB,OAAO;QAApD3C,KAAK,GAAA2F,cAAA,CAAL3F,KAAK;QAAEkF,YAAY,GAAAS,cAAA,CAAZT,YAAY;QAAEjF,GAAG,GAAA0F,cAAA,CAAH1F,GAAG;QAAEM,GAAG,GAAAoF,cAAA,CAAHpF,GAAG;QAAEqF,IAAI,GAAAD,cAAA,CAAJC,IAAI;MAC3C,IAAAC,kBAAA,GAAwB1B,MAAA,CAAK2B,WAAW,CAAClE,KAAK,CAACmE,aAAa,CAAC/F,KAAK,EAAEA,KAAK,EAAEkF,YAAY,CAAC;QAAhFD,WAAW,GAAAY,kBAAA,CAAXZ,WAAW;MACnB,IAAMe,gBAAgB,GAAGJ,IAAI,GAAG,CAAC,GAAGA,IAAI,CAACK,QAAQ,EAAE,CAACZ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAClF,MAAM,GAAG,CAAC;MAE5E,IAAIE,MAAM,CAAC2E,KAAK,CAAChF,KAAK,CAAC,IAAIK,MAAM,CAAC2E,KAAK,CAAC3E,MAAM,CAAC6F,UAAU,CAACjB,WAAW,CAAC,CAAC,EAAE;QACvErD,KAAK,CAACmE,aAAa,CAAC/F,KAAK,GAAG,EAAE;QAC9BmE,MAAA,CAAKgC,QAAQ,CAACnG,KAAK,CAAC,EAAE,EAAE4B,KAAK,CAAC;MAChC,CAAC,MAAM;QACL,IAAIwE,WAAW,GAAGrG,oBAAoB,CAACM,MAAM,CAAC6F,UAAU,CAACjB,WAAW,CAAC,EAAEhF,GAAG,EAAEM,GAAG,CAAC;QAChF,IAAM8F,OAAO,GAAGlC,MAAA,CAAKmC,KAAK,CAACF,WAAW,GAAGR,IAAI,EAAEA,IAAI,CAAC;QACpD,IAAIS,OAAO,KAAK,CAAC,EAAE;UACjB,IAAIA,OAAO,IAAIT,IAAI,GAAG,CAAC,EAAE;YACvBQ,WAAW,IAAIR,IAAI,GAAGS,OAAO;UAC/B,CAAC,MAAM,IAAI5F,IAAI,CAAC8F,GAAG,CAACF,OAAO,CAAC,GAAGT,IAAI,EAAE;YACnCQ,WAAW,IAAIC,OAAO;UACxB;QACF;QACA,IAAMG,kBAAkB,GAAGnG,MAAM,CAAC+F,WAAW,CAACK,OAAO,CAACT,gBAAgB,CAAC,CAAC;QAExE7B,MAAA,CAAKgC,QAAQ,CAACnG,KAAK,CAAC+E,MAAM,CAACyB,kBAAkB,CAAC,EAAE5E,KAAK,CAAC;MACxD;IACF,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,cAkCS,UAACvC,KAAK,EAAK;MACnB,IAAA8E,kCAAoB,EAACvC,MAAA,CAAKxB,OAAO,CAACgE,OAAO,EAAExC,MAAA,CAAKyC,WAAW,CAAC,CAAChF,KAAK,CAAC;IACrE,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,kBAEa,UAACvC,KAAK,EAAK;MACvB,IAAIA,KAAK,CAACiF,MAAM,KAAK1C,MAAA,CAAK2C,aAAa,CAAC9E,OAAO,EAAE;MACjD,IAAI+E,QAAQ,CAACC,aAAa,KAAK7C,MAAA,CAAK2C,aAAa,CAAC9E,OAAO,EAAE;MAC3DJ,KAAK,CAACqF,cAAc,EAAE;MACtB,IAAIrF,KAAK,CAACsF,UAAU,GAAG,CAAC,EAAE;QACxB/C,MAAA,CAAKlC,MAAM,CAACL,KAAK,CAAC;MACpB,CAAC,MAAM,IAAIA,KAAK,CAACsF,UAAU,GAAG,CAAC,EAAE;QAC/B/C,MAAA,CAAK/B,QAAQ,CAACR,KAAK,CAAC;MACtB;IACF,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,mBAEc,UAACvC,KAAK,EAAK;MACxB,IAAM5B,KAAK,GAAGmE,MAAA,CAAKW,iBAAiB,CAAClD,KAAK,CAACmE,aAAa,CAAC/F,KAAK,CAAC;MAC/D,IAAAmH,eAAA,GAA8ChD,MAAA,CAAKxB,OAAO;QAAlDH,eAAe,GAAA2E,eAAA,CAAf3E,eAAe;QAASkC,SAAS,GAAAyC,eAAA,CAAhBnH,KAAK;MAE9B,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,GAAG,EAAE;QAClCmE,MAAA,CAAKgC,QAAQ,CAACjB,YAAY,CAAClF,KAAK,CAAC;QACjC,OAAO,KAAK;MACd;MAEA,IAAIA,KAAK,CAACoH,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,KAAK;MACd;MAEA,IAAIpH,KAAK,CAACoH,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,IAAIpH,KAAK,CAACG,MAAM,GAAGuE,SAAS,CAACvE,MAAM,EAAE;UACnCgE,MAAA,CAAKgC,QAAQ,CAACjB,YAAY,CAAC1C,eAAe,CAACkD,MAAM,CAAC1F,KAAK,CAAC,GAAGmE,MAAA,CAAKM,gBAAgB,CAAC;UACjF,OAAO,KAAK;QACd,CAAC,MAAM;UACLN,MAAA,CAAKgC,QAAQ,CAACnG,KAAK,CAACA,KAAK,CAACqH,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEzF,KAAK,CAAC;UAC9C,OAAO,KAAK;QACd;MACF;MAEA,IAAM0F,MAAM,GAAG,UAAU,CAACnC,IAAI,CAACnF,KAAK,CAAC;MAErC,IAAIsH,MAAM,IAAItH,KAAK,KAAK,EAAE,EAAE;QAC1BmE,MAAA,CAAKgC,QAAQ,CAACnG,KAAK,CAACA,KAAK,EAAE4B,KAAK,CAAC;MACnC;IACF,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,kBAEa,UAACvC,KAAK,EAAK;MACvB,IAAIA,KAAK,CAACU,GAAG,KAAK,OAAO,EAAE;QACzB6B,MAAA,CAAKoD,cAAc,GAAG,CAAC,CAAC;MAC1B;IACF,CAAC;IAAA,IAAA/F,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,oBAEe,UAACvC,KAAK,EAAK;MACzB,IAAM4F,OAAO,GAAG5F,KAAK,CAACmE,aAAa;MACnC,IAAM/F,KAAK,GAAGwH,OAAO,CAACxH,KAAK;MAC3B,IAAMG,MAAM,GAAGH,KAAK,CAACG,MAAM;MAC3B,IAAQ+E,YAAY,GAAKf,MAAA,CAAKxB,OAAO,CAA7BuC,YAAY;MAEpB,IAAItD,KAAK,CAACU,GAAG,KAAK,GAAG,IAAIV,KAAK,CAACU,GAAG,KAAK,GAAG,EAAE;QAC1C;QACA,IAAItC,KAAK,CAACyH,OAAO,CAACtD,MAAA,CAAKM,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI7C,KAAK,CAACU,GAAG,KAAK,GAAG,EAAE;UACpEV,KAAK,CAACmE,aAAa,CAAC/F,KAAK,GAAGA,KAAK,GAAG,GAAG;QACzC;QACA;QAAA,KACK,IAAIA,KAAK,CAACyH,OAAO,CAACtD,MAAA,CAAKM,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;UACpD7C,KAAK,CAACqF,cAAc,EAAE;UACtBrF,KAAK,CAAC8F,eAAe,EAAE;UACvB;QACF;MACF;MAEA,IAAI9F,KAAK,CAACU,GAAG,KAAK,WAAW,IAAItC,KAAK,CAACoH,QAAQ,CAACjD,MAAA,CAAKM,gBAAgB,CAAC,EAAE;QACtE7C,KAAK,CAACqF,cAAc,EAAE;QACtBrF,KAAK,CAAC8F,eAAe,EAAE;QACvBvD,MAAA,CAAKgC,QAAQ,CAACjB,YAAY,CAACA,YAAY,CAACmC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,KAAK;MACd;MAEA,IACEG,OAAO,CAACG,cAAc,KAAKxH,MAAM,KAChCyB,KAAK,CAACU,GAAG,KAAK,WAAW,IACxBV,KAAK,CAACU,GAAG,KAAK6B,MAAA,CAAKM,gBAAgB,IACnC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACmD,QAAQ,CAAChG,KAAK,CAACU,GAAG,CAAC,CAAC,EACzE;QACA,IAAMuF,cAAc,GAAG7H,KAAK,CAACqH,KAAK,CAACG,OAAO,CAACM,YAAY,CAAC;QAExDC,qBAAqB,CAAC,YAAM;UAC1B,IAAMC,QAAQ,GAAG7D,MAAA,CAAK8D,KAAK,CAAC/C,YAAY;UACxC,IAAMgD,KAAK,GAAGF,QAAQ,CAACG,WAAW,CAACN,cAAc,CAAC;UAClD,IAAMF,cAAc,GAAGO,KAAK;UAC5B,IAAMJ,YAAY,GAAGI,KAAK;UAE1BV,OAAO,CAACY,iBAAiB,CAACT,cAAc,EAAEG,YAAY,CAAC;QACzD,CAAC,CAAC;MACJ;;MAEA;MACA;MACA;MACA;MACA,IAAMO,WAAW,GAAG,CAAC;MAErB,IAAIzG,KAAK,CAAC0G,QAAQ,IAAInE,MAAA,CAAKoD,cAAc,KAAK,CAAC,CAAC,EAAE;QAChDpD,MAAA,CAAKoD,cAAc,GAAGC,OAAO,CAACG,cAAc;MAC9C;MAEA,QAAQ/F,KAAK,CAACU,GAAG;QACf,KAAK,WAAW;UAAE;YAChBV,KAAK,CAACqF,cAAc,EAAE;YACtB9C,MAAA,CAAKoE,iBAAiB,CAACf,OAAO,EAAEa,WAAW,CAAC;YAC5C;UACF;QACA,KAAK,YAAY;UAAE;YACjBzG,KAAK,CAACqF,cAAc,EAAE;YACtB9C,MAAA,CAAKqE,kBAAkB,CAAChB,OAAO,EAAEa,WAAW,CAAC;YAC7C;UACF;QACA,KAAK,WAAW;UAAE;YAChBzG,KAAK,CAACqF,cAAc,EAAE;YACtB9C,MAAA,CAAK/B,QAAQ,CAACR,KAAK,CAAC;YACpB;UACF;QACA,KAAK,SAAS;UAAE;YACdA,KAAK,CAACqF,cAAc,EAAE;YACtB9C,MAAA,CAAKlC,MAAM,CAACL,KAAK,CAAC;YAClB;UACF;MAAC;IAEL,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,wBAEmB,UAACqD,OAAO,EAAEa,WAAW,EAAK;MAC5C,IAAMrI,KAAK,GAAGwH,OAAO,CAACxH,KAAK;MAC3B,IAAMyI,YAAY,GAAGjB,OAAO,CAACG,cAAc,GAAG,CAAC,IAAI,CAAC,GAAGH,OAAO,CAACG,cAAc,GAAG,CAAC,GAAG,CAAC;MAErF,IAAMJ,cAAc,GAClBvH,KAAK,CAACwH,OAAO,CAACG,cAAc,GAAGU,WAAW,CAAC,KAAKlE,MAAA,CAAKK,kBAAkB,GACnEgD,OAAO,CAACG,cAAc,GAAGU,WAAW,GACpCI,YAAY;MAElB,IAAItE,MAAA,CAAKoD,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B;QACAC,OAAO,CAACY,iBAAiB,CAACb,cAAc,EAAEA,cAAc,CAAC;MAC3D,CAAC,MAAM;QACL,IACEC,OAAO,CAACG,cAAc,IAAIxD,MAAA,CAAKoD,cAAc,IAC7CC,OAAO,CAACM,YAAY,KAAK3D,MAAA,CAAKoD,cAAc,EAC5C;UACAC,OAAO,CAACY,iBAAiB,CAACb,cAAc,EAAEC,OAAO,CAACM,YAAY,CAAC;QACjE,CAAC,MAAM;UACLN,OAAO,CAACY,iBAAiB,CACvBZ,OAAO,CAACG,cAAc,EACtB3H,KAAK,CAACwH,OAAO,CAACM,YAAY,GAAGO,WAAW,CAAC,KAAKlE,MAAA,CAAKK,kBAAkB,GACjEgD,OAAO,CAACM,YAAY,GAAGO,WAAW,GAClCb,OAAO,CAACM,YAAY,GAAG,CAAC,CAC7B;QACH;MACF;IACF,CAAC;IAAA,IAAAtG,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,yBAEoB,UAACqD,OAAO,EAAEa,WAAW,EAAK;MAC7C,IAAMrI,KAAK,GAAGwH,OAAO,CAACxH,KAAK;MAC3B,IAAMyI,YAAY,GAAGjB,OAAO,CAACM,YAAY,GAAG,CAAC;MAE7C,IAAMP,cAAc,GAClBvH,KAAK,CAACwH,OAAO,CAACM,YAAY,CAAC,KAAK3D,MAAA,CAAKK,kBAAkB,GACnDgD,OAAO,CAACM,YAAY,GAAGO,WAAW,GAClCI,YAAY;MAElB,IAAItE,MAAA,CAAKoD,cAAc,KAAK,CAAC,CAAC,EAAE;QAC9B;QACAC,OAAO,CAACY,iBAAiB,CAACb,cAAc,EAAEA,cAAc,CAAC;MAC3D,CAAC,MAAM;QACL,IACEC,OAAO,CAACM,YAAY,IAAI3D,MAAA,CAAKoD,cAAc,IAC3CC,OAAO,CAACG,cAAc,KAAKxD,MAAA,CAAKoD,cAAc,EAC9C;UACAC,OAAO,CAACY,iBAAiB,CAACZ,OAAO,CAACG,cAAc,EAAEJ,cAAc,CAAC;QACnE,CAAC,MAAM;UACLC,OAAO,CAACY,iBAAiB,CACvBpI,KAAK,CAACwH,OAAO,CAACG,cAAc,CAAC,KAAKxD,MAAA,CAAKK,kBAAkB,GACrDgD,OAAO,CAACG,cAAc,GAAGU,WAAW,GACpCb,OAAO,CAACG,cAAc,GAAG,CAAC,EAC9BH,OAAO,CAACM,YAAY,CACrB;QACH;MACF;IACF,CAAC;IAAA,IAAAtG,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,kBAEa,UAACvC,KAAK,EAAK;MACvB,IAAM4F,OAAO,GAAG5F,KAAK,CAACiF,MAAM;MAC5B,IAAM7G,KAAK,GAAGwH,OAAO,CAACxH,KAAK;MAE3B,IAAIA,KAAK,CAACwH,OAAO,CAACG,cAAc,GAAG,CAAC,CAAC,KAAKxD,MAAA,CAAKK,kBAAkB,EAAE;QACjEgD,OAAO,CAACY,iBAAiB,CAACZ,OAAO,CAACG,cAAc,GAAG,CAAC,EAAEH,OAAO,CAACM,YAAY,GAAG,CAAC,CAAC;MACjF;IACF,CAAC;IAAA,IAAAtG,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,iBAEY,UAACvC,KAAK,EAAK;MACtBuC,MAAA,CAAKoD,cAAc,GAAG,CAAC,CAAC;MACxBpD,MAAA,CAAKuE,gBAAgB,CAAC9G,KAAK,CAAC;IAC9B,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,aAEQ,UAACvC,KAAK,EAAK;MAClB,IAAA+G,eAAA,GAA4DxE,MAAA,CAAKxB,OAAO;QAAAiG,mBAAA,GAAAD,eAAA,CAAhEpI,GAAG;QAAHA,GAAG,GAAAqI,mBAAA,cAAGvI,MAAM,CAACG,gBAAgB,GAAAoI,mBAAA;QAAE3I,GAAG,GAAA0I,eAAA,CAAH1I,GAAG;QAAE2F,IAAI,GAAA+C,eAAA,CAAJ/C,IAAI;QAAE5F,KAAK,GAAA2I,eAAA,CAAL3I,KAAK;MAEvD,IAAIoG,WAAW;;MAEf;MACA,IAAIpG,KAAK,KAAK,EAAE,EAAE;QAChBoG,WAAW,GAAGnG,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,CAAC;MACxB,CAAC,MAAM;QACLmG,WAAW,GAAG/F,MAAM,CAAC6F,UAAU,CAAClG,KAAK,CAAC;MACxC;MAEA,IAAI,CAACK,MAAM,CAAC2E,KAAK,CAACoB,WAAW,CAAC,EAAE;QAC9B,IAAM4B,QAAQ,GAAG5B,WAAW,GAAGR,IAAI,IAAIrF,GAAG,GAAG6F,WAAW,GAAGR,IAAI,GAAGrF,GAAG;QAErE4D,MAAA,CAAKgC,QAAQ,CAACnG,KAAK,CAACgI,QAAQ,CAAC/B,QAAQ,EAAE,EAAErE,KAAK,CAAC;MACjD;IACF,CAAC;IAAA,IAAAJ,gBAAA,iBAAAC,uBAAA,aAAA0C,MAAA,eAEU,UAACvC,KAAK,EAAK;MACpB,IAAAiH,eAAA,GAA4D1E,MAAA,CAAKxB,OAAO;QAAhEpC,GAAG,GAAAsI,eAAA,CAAHtI,GAAG;QAAAuI,mBAAA,GAAAD,eAAA,CAAE5I,GAAG;QAAHA,GAAG,GAAA6I,mBAAA,cAAGzI,MAAM,CAACC,gBAAgB,GAAAwI,mBAAA;QAAElD,IAAI,GAAAiD,eAAA,CAAJjD,IAAI;QAAE5F,KAAK,GAAA6I,eAAA,CAAL7I,KAAK;MAEvD,IAAIoG,WAAW;MAEf,IAAIpG,KAAK,KAAK,EAAE,EAAE;QAChBoG,WAAW,GAAG7F,GAAG,aAAHA,GAAG,cAAHA,GAAG,GAAI,CAAC;MACxB,CAAC,MAAM;QACL6F,WAAW,GAAG/F,MAAM,CAAC6F,UAAU,CAAClG,KAAK,CAAC;MACxC;MAEA,IAAI,CAACK,MAAM,CAAC2E,KAAK,CAACoB,WAAW,CAAC,EAAE;QAC9B,IAAM4B,QAAQ,GAAG5B,WAAW,GAAGR,IAAI,IAAI3F,GAAG,GAAGmG,WAAW,GAAGR,IAAI,GAAG3F,GAAG;QAErEkE,MAAA,CAAKgC,QAAQ,CAACnG,KAAK,CAACgI,QAAQ,CAAC/B,QAAQ,EAAE,EAAErE,KAAK,CAAC;MACjD;IACF,CAAC;IAAA,OAAAuC,MAAA;EAAA;EAAA,IAAA9B,aAAA,aAAA2B,KAAA;IAAA1B,GAAA;IAAAtC,KAAA,EA9WD,SAAA+I,kBAAA,EAAoB;MAAA,IAAAC,MAAA;MAClB,OAAO;QACL9D,YAAY,EAAE,IAAI;QAClBlF,KAAK,EAAE,CACL,IAAI,EACJ,UAACgI,QAAQ,EAAK;UACZ,IAAAiB,cAAA,GAA6DD,MAAI,CAACrG,OAAO;YAA1D+B,SAAS,GAAAuE,cAAA,CAAhBjJ,KAAK;YAA2B2E,gBAAgB,GAAAsE,cAAA,CAA9B/D,YAAY;UAEtC,IAAAgE,kBAAA,GAAsCF,MAAI,CAAClD,WAAW,CACpDkC,QAAQ,EACRtD,SAAS,EACTC,gBAAgB,CACjB;YAJOM,WAAW,GAAAiE,kBAAA,CAAXjE,WAAW;YAAEC,YAAY,GAAAgE,kBAAA,CAAZhE,YAAY;UAMjC8D,MAAI,CAAC7C,QAAQ,CAACjB,YAAY,CAACA,YAAY,CAAC;UAExC,OAAOD,WAAW;QACpB,CAAC;MAEL,CAAC;IACH;EAAC;IAAA3C,GAAA;IAAA6G,GAAA,EAED,SAAAA,IAAA,EAAuB;MACrB,IAAQ3G,eAAe,GAAK,IAAI,CAACoC,KAAK,CAA9BpC,eAAe;MAEvB,OAAOA,eAAe,CAACkD,MAAM,CAAC,KAAK,CAAC,CAACpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACzD;EAAC;IAAAhC,GAAA;IAAA6G,GAAA,EAED,SAAAA,IAAA,EAAyB;MACvB,IAAQ3G,eAAe,GAAK,IAAI,CAACoC,KAAK,CAA9BpC,eAAe;MAEvB,OAAOA,eAAe,CAACkD,MAAM,CAAC,IAAI,CAAC,CAACpB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACxD;EAAC;IAAAhC,GAAA;IAAAtC,KAAA,EAmCD,SAAAsG,MAAMtG,KAAK,EAAE4F,IAAI,EAAE;MACjB,IAAMwD,aAAa,GAAG3I,IAAI,CAAC4I,KAAK,CAACzD,IAAI,CAAC,KAAKA,IAAI,GAAG,CAAC,GAAGA,IAAI,CAACK,QAAQ,EAAE,CAACZ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAClF,MAAM,IAAI,CAAC;MAC/F,OAAOiJ,aAAa,KAAK,CAAC,GACtB/I,MAAM,CAAC6F,UAAU,CAAClG,KAAK,CAAC,GACxBK,MAAM,CAAC6F,UAAU,CAAClG,KAAK,CAAC,CAACsJ,WAAW,CAACF,aAAa,CAAC;IACzD;EAAC;IAAA9G,GAAA;IAAAtC,KAAA;IA0BD;IACA,SAAAuJ,kBAAA,EAAoB;MAAA,IAAAC,qBAAA;MAClB,CAAAA,qBAAA,OAAI,CAAC1C,aAAa,CAAC9E,OAAO,cAAAwH,qBAAA,uBAA1BA,qBAAA,CAA4BC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC9C,OAAO,CAAC;MAEnE,IAAA+C,cAAA,GAA4B,IAAI,CAAC/G,OAAO;QAAhCZ,QAAQ,GAAA2H,cAAA,CAAR3H,QAAQ;QAAE/B,KAAK,GAAA0J,cAAA,CAAL1J,KAAK;MAEvB,IAAI+B,QAAQ,CAACC,OAAO,EAAE;QACpBD,QAAQ,CAACC,OAAO,CAACC,MAAM,GAAG,IAAI,CAACA,MAAM;QACrCF,QAAQ,CAACC,OAAO,CAACI,QAAQ,GAAG,IAAI,CAACA,QAAQ;MAC3C;MAEA,IAAIpC,KAAK,KAAK,EAAE,EAAE;QAChB,IAAA2J,iBAAA,GAAyB,IAAI,CAAC7D,WAAW,CAAC9F,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;UAAhDkF,YAAY,GAAAyE,iBAAA,CAAZzE,YAAY;QACpB,IAAI,CAACiB,QAAQ,CAACjB,YAAY,CAACA,YAAY,CAAC;MAC1C;IACF;EAAC;IAAA5C,GAAA;IAAAtC,KAAA,EAED,SAAA4J,mBAAmBC,SAAS,EAAE;MAC5B,IAAIA,SAAS,CAAC7J,KAAK,KAAK,IAAI,CAAC4E,KAAK,CAAC5E,KAAK,EAAE;QACxC,IAAA8J,kBAAA,GAAyB,IAAI,CAAChE,WAAW,CACvC,IAAI,CAAClB,KAAK,CAAC5E,KAAK,EAChB6J,SAAS,CAAC7J,KAAK,EACf6J,SAAS,CAAC3E,YAAY,CACvB;UAJOA,YAAY,GAAA4E,kBAAA,CAAZ5E,YAAY;QAKpB,IAAI,CAACiB,QAAQ,CAACjB,YAAY,CAACA,YAAY,CAAC;MAC1C;IACF;EAAC;IAAA5C,GAAA;IAAAtC,KAAA,EAED,SAAA+J,qBAAA,EAAuB;MAAA,IAAAC,sBAAA;MACrB,CAAAA,sBAAA,OAAI,CAAClD,aAAa,CAAC9E,OAAO,cAAAgI,sBAAA,uBAA1BA,sBAAA,CAA4BC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACtD,OAAO,CAAC;IACxE;EAAC;IAAArE,GAAA;IAAAtC,KAAA,EAgPD,SAAAmD,OAAA,EAAS;MAAA,IAAA+G,KAAA,QAAAvH,OAAA;QAAAwH,KAAA;MACP,IAAMC,MAAM,GAME7G,iBAAK,CAACS,KAAK;MALzB,IAAAqG,cAAA,GAAuE,IAAI,CAAC1H,OAAO;QAA3E2H,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAErK,GAAG,GAAAoK,cAAA,CAAHpK,GAAG;QAAEM,GAAG,GAAA8J,cAAA,CAAH9J,GAAG;QAAEqF,IAAI,GAAAyE,cAAA,CAAJzE,IAAI;QAAE2E,UAAU,GAAAF,cAAA,CAAVE,UAAU;QAAExI,QAAQ,GAAAsI,cAAA,CAARtI,QAAQ;QAAEmD,YAAY,GAAAmF,cAAA,CAAZnF,YAAY;MAElE,OAAAiF,KAAA,GAAO,IAAAtK,aAAO,EAACyK,MAAM,CAAC,eACpBnL,MAAA,YAAAqE,aAAA,CAAArE,MAAA,YAAAqL,QAAA,qBACErL,MAAA,YAAAqE,aAAA,CAAC4G,MAAM,EAAAD,KAAA,CAAA1G,EAAA,eAAAC,cAAA,qBAAA1E,KAAA,CAAA2E,WAAA;QAAA,gBAEQ,KAAK;QAAA,UACV,IAAI,CAAC+E,gBAAgB;QAAA,gBACf,IAAI,CAAC+B,YAAY;QAAA,aACpB,IAAI,CAACC,aAAa;QAAA,WACpB,IAAI,CAACC,WAAW;QAAA,WAChB,IAAI,CAACC,WAAW;QAAA,WAChB,IAAAC,aAAO,EAAC,IAAI,CAAC/D,aAAa,EAAE/E,QAAQ,EAAEwI,UAAU,CAAC;QAAA,aAC/CrF,YAAY;QAAA,aACZ7E,MAAM,CAACyK,SAAS,CAAClF,IAAI,CAAC,GAAG,SAAS,GAAG,SAAS;QAAA,OACpD3F,GAAG;QAAA,OACHM,GAAG;QAAA,QACFqF;MAAI,GAAAsE,KAAA,IACV,CACD;IAEP;EAAC;EAAA,OAAAlG,KAAA;AAAA,EAnZiBJ,eAAS;AAAA,IAAApC,gBAAA,aAAvBwC,KAAK,WACMrE,KAAK;AAAA,IAAA6B,gBAAA,aADhBwC,KAAK,kBAEa;EACpB+G,YAAY,EAAE,EAAE;EAChBC,mBAAmB,EAAE,EAAE;EACvBpF,IAAI,EAAE;AACR,CAAC;AAgZH,SAASqF,QAAQA,CAACrG,KAAK,EAAE;EAAA,IAAAsG,KAAA,GAAAC,YAAA;IAAAC,KAAA;EACvB,IAAQC,QAAQ,GAAsDzG,KAAK,CAAnEyG,QAAQ;IAAExI,SAAS,GAA2C+B,KAAK,CAAzD/B,SAAS;IAAEC,SAAS,GAAgC8B,KAAK,CAA9C9B,SAAS;IAAEG,IAAI,GAA0B2B,KAAK,CAAnC3B,IAAI;IAAEqH,MAAM,GAAkB1F,KAAK,CAA7B0F,MAAM;IAAEpH,WAAW,GAAK0B,KAAK,CAArB1B,WAAW;EACjE,IAAMoI,SAAS,GAKM/H,iBAAK,CAACgI,KAAK;EAJhC,IAAMC,GAAG,GAAG,QAAQ;EACpB,IAAMC,KAAK,GAAG,QAAQ;EAEtB,OAAAL,KAAA,GAAO,IAAAvL,aAAO,EAACyK,MAAM,CAAC,eACpBnL,MAAA,YAAAqE,aAAA,CAAC8H,SAAS,EAAAF,KAAA,CAAA3H,EAAA,kBAAAC,cAAA,qBAAA1E,KAAA,CAAA2E,WAAA;IAAA,eAAkC;EAAM,GAAAuH,KAAA,kBAChD/L,MAAA,YAAAqE,aAAA,CAACgI,GAAG,EAAAJ,KAAA,CAAA3H,EAAA;IAAA,WACOZ,SAAS;IAAA,YACR,CAAC,CAAC;IAAA,QACP,QAAQ;IAAA,QACPI,IAAI;IAAA,cACEC,WAAW,CAAC,WAAW;EAAC,iBAEpC/D,MAAA,YAAAqE,aAAA,CAAClE,QAAA,CAAAoM,aAAa,EAAAN,KAAA,CAAA3H,EAAA,sBAAG,CACb,eACNtE,MAAA,YAAAqE,aAAA,CAACiI,KAAK,EAAAL,KAAA,CAAA3H,EAAA;IAAA,WACKX,SAAS;IAAA,YACR,CAAC,CAAC;IAAA,QACP,QAAQ;IAAA,QACPG,IAAI;IAAA,cACEC,WAAW,CAAC,WAAW;EAAC,iBAEpC/D,MAAA,YAAAqE,aAAA,CAAClE,QAAA,CAAAqM,aAAa,EAAAP,KAAA,CAAA3H,EAAA,sBAAG,CACX,eACRtE,MAAA,YAAAqE,aAAA,CAAC6H,QAAQ,EAAAD,KAAA,CAAA3H,EAAA,iBAAG,CACF;AAEhB;AACAwH,QAAQ,CAACtL,KAAK,GAAGA,KAAK;AAAC,IAAAiM,QAAA,GAER,IAAAC,gBAAe,EAACnL,WAAW,EAAE;EAC1CsD,KAAK,EAALA,KAAK;EACLiH,QAAQ,EAARA,QAAQ;EACRM,KAAK,EAAEhI,iBAAK,CAACgI;AACf,CAAC,CAAC;AAAAO,OAAA,cAAAF,QAAA"}
|
|
1
|
+
{"version":3,"file":"InputNumber.js","names":["_core","require","_react","_interopRequireDefault","_input","_buttons","_intergalacticDynamicLocales","_i18nEnhance","_ref7","_assignProps4","style","sstyled","insert","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","inputRef","current","stepUp","_this$inputRef$curren3","_this$inputRef$curren4","stepDown","_createClass2","key","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","_this$asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","Input","createElement","cn","_objectSpread2","assignProps","Component","i18nEnhance","localizedMessages","i18n","Value","_Component2","_super2","_this2","_len2","_key2","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","_stringNumber$split","split","_stringNumber$split2","_slicedToArray2","int","decimal","format","_this2$asProps","step","_this2$valueParser","valueParser","currentTarget","roundCoefficient","toString","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","callAllEventHandlers","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","_this2$asProps2","endsWith","slice","digits","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","_this2$asProps3","_this2$asProps3$max","_this2$asProps4","_this2$asProps4$min","uncontrolledProps","_this3","_this3$asProps","_this3$valueParser","get","countDecimals","floor","toPrecision","componentDidMount","_this$valueInputRef$c","addEventListener","_this$asProps2","_this$valueParser","componentDidUpdate","prevProps","_this$valueParser2","componentWillUnmount","_this$valueInputRef$c2","removeEventListener","_ref2","_ref5","SValue","_this$asProps3","styles","forwardRef","Fragment","handleChange","handleKeyDown","handleKeyUp","handleClick","forkRef","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","IncrementIcon","DecrementIcon","_default","createComponent","exports"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /[0-9.-]+/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n }\n // we could press decimal separator second time - prevent this '1.5.'\n else if (value.indexOf(this.separatorDecimal) !== -1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
package/lib/es6/InputNumber.js
CHANGED
|
@@ -6,29 +6,29 @@ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized
|
|
|
6
6
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
7
7
|
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
|
-
import { sstyled as _sstyled } from "@semcore/
|
|
9
|
+
import { sstyled as _sstyled } from "@semcore/core";
|
|
10
10
|
import { assignProps as _assignProps3 } from "@semcore/core";
|
|
11
11
|
import { assignProps as _assignProps2 } from "@semcore/core";
|
|
12
12
|
import { assignProps as _assignProps } from "@semcore/core";
|
|
13
13
|
import React from 'react';
|
|
14
|
-
import createComponent,
|
|
14
|
+
import { createComponent, Component, sstyled, Root } from '@semcore/core';
|
|
15
15
|
import Input from '@semcore/input';
|
|
16
16
|
import { IncrementIcon, DecrementIcon } from './buttons';
|
|
17
17
|
import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
|
|
18
|
-
import i18nEnhance from '@semcore/
|
|
18
|
+
import i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';
|
|
19
19
|
/*__reshadow-styles__:"./style/input-number.shadow.css"*/
|
|
20
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
21
|
-
"__SValue": "
|
|
22
|
-
"__SControls": "
|
|
23
|
-
"_showControls": "
|
|
24
|
-
"__SUp": "
|
|
25
|
-
"__SDown": "
|
|
26
|
-
"_disabled": "
|
|
27
|
-
"__SValueHidden": "
|
|
28
|
-
"_type_number": "
|
|
20
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SValue_1l7h4_gg_:focus~.___SControls_1l7h4_gg_{display:flex}.___SControls_1l7h4_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_1l7h4_gg_.__showControls_1l7h4_gg_{display:flex}.___SDown_1l7h4_gg_,.___SUp_1l7h4_gg_{padding:0;width:16px;color:var(--intergalactic-icon-secondary-neutral, #a9abb6);box-sizing:border-box;display:inline-flex;justify-content:center;border:0;background:0 0;cursor:pointer}.___SDown_1l7h4_gg_:focus,.___SUp_1l7h4_gg_:focus{outline:0}@media (hover:hover){.___SDown_1l7h4_gg_:hover,.___SUp_1l7h4_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_1l7h4_gg_{padding-bottom:1px}.___SDown_1l7h4_gg_{padding-top:1px}.___SValue_1l7h4_gg_::-webkit-inner-spin-button,.___SValue_1l7h4_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_1l7h4_gg_._type_number_1l7h4_gg_{-moz-appearance:textfield}.___SValue_1l7h4_gg_.__disabled_1l7h4_gg_~.___SControls_1l7h4_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_1l7h4_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}" /*__inner_css_end__*/, "1l7h4_gg_") /*__reshadow_css_end__*/, {
|
|
21
|
+
"__SValue": "___SValue_1l7h4_gg_",
|
|
22
|
+
"__SControls": "___SControls_1l7h4_gg_",
|
|
23
|
+
"_showControls": "__showControls_1l7h4_gg_",
|
|
24
|
+
"__SUp": "___SUp_1l7h4_gg_",
|
|
25
|
+
"__SDown": "___SDown_1l7h4_gg_",
|
|
26
|
+
"_disabled": "__disabled_1l7h4_gg_",
|
|
27
|
+
"__SValueHidden": "___SValueHidden_1l7h4_gg_",
|
|
28
|
+
"_type_number": "_type_number_1l7h4_gg_"
|
|
29
29
|
});
|
|
30
|
-
import { forkRef } from '@semcore/
|
|
31
|
-
import { callAllEventHandlers } from '@semcore/
|
|
30
|
+
import { forkRef } from '@semcore/core/lib/utils/ref';
|
|
31
|
+
import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';
|
|
32
32
|
export function parseValueWithMinMax(value) {
|
|
33
33
|
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MIN_SAFE_INTEGER;
|
|
34
34
|
var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.MAX_SAFE_INTEGER;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","names":["React","createComponent","Component","sstyled","Root","Input","IncrementIcon","DecrementIcon","localizedMessages","i18nEnhance","style","_sstyled","insert","forkRef","callAllEventHandlers","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","inputRef","current","stepUp","_this$inputRef$curren3","_this$inputRef$curren4","stepDown","_createClass","key","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","_this$asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","createElement","cn","_objectSpread","_assignProps","i18n","Value","_Component2","_super2","_this2","_len2","_key2","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","_stringNumber$split","split","_stringNumber$split2","_slicedToArray","int","decimal","format","_this2$asProps","step","_this2$valueParser","valueParser","currentTarget","roundCoefficient","toString","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","_this2$asProps2","endsWith","slice","digits","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","_this2$asProps3","_this2$asProps3$max","_this2$asProps4","_this2$asProps4$min","uncontrolledProps","_this3","_this3$asProps","_this3$valueParser","get","countDecimals","floor","toPrecision","componentDidMount","_this$valueInputRef$c","addEventListener","_this$asProps2","_this$valueParser","componentDidUpdate","prevProps","_this$valueParser2","componentWillUnmount","_this$valueInputRef$c2","removeEventListener","_ref2","_ref5","SValue","_this$asProps3","styles","forwardRef","Fragment","_assignProps2","handleChange","handleKeyDown","handleKeyUp","handleClick","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","_assignProps3"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\nimport { forkRef } from '@semcore/utils/lib/ref';\nimport { callAllEventHandlers } from '@semcore/utils/lib/assignProps';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /[0-9.-]+/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n }\n // we could press decimal separator second time - prevent this '1.5.'\n else if (value.indexOf(this.separatorDecimal) !== -1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputNumber.js","names":["React","createComponent","Component","sstyled","Root","Input","IncrementIcon","DecrementIcon","localizedMessages","i18nEnhance","style","_sstyled","insert","forkRef","callAllEventHandlers","parseValueWithMinMax","value","min","arguments","length","undefined","Number","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","Math","InputNumber","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","event","_this$inputRef$curren","_this$inputRef$curren2","inputRef","current","stepUp","_this$inputRef$curren3","_this$inputRef$curren4","stepDown","_createClass","key","getValueProps","numberFormatter","Intl","NumberFormat","asProps","locale","increment","decrement","getControlsProps","_this$asProps","size","getI18nText","render","_ref","_ref4","SInputNumber","createElement","cn","_objectSpread","_assignProps","i18n","Value","_Component2","_super2","_this2","_len2","_key2","replace","RegExp","separatorThousands","separatorDecimal","prevValue","prevDisplayValue","props","stringNumber","getFormattedValue","String","isNaN","parsedValue","displayValue","test","_stringNumber$split","split","_stringNumber$split2","_slicedToArray","int","decimal","format","_this2$asProps","step","_this2$valueParser","valueParser","currentTarget","roundCoefficient","toString","parseFloat","handlers","numberValue","rounded","round","abs","numberValueRounded","toFixed","onWheel","handleWheel","target","valueInputRef","document","activeElement","preventDefault","wheelDelta","_this2$asProps2","endsWith","slice","digits","cursorPosition","element","indexOf","stopPropagation","selectionStart","includes","afterSelection","selectionEnd","requestAnimationFrame","newValue","state","index","lastIndexOf","setSelectionRange","cursorIndex","shiftKey","moveSelectionLeft","moveSelectionRight","nextPosition","handleValidation","_this2$asProps3","_this2$asProps3$max","_this2$asProps4","_this2$asProps4$min","uncontrolledProps","_this3","_this3$asProps","_this3$valueParser","get","countDecimals","floor","toPrecision","componentDidMount","_this$valueInputRef$c","addEventListener","_this$asProps2","_this$valueParser","componentDidUpdate","prevProps","_this$valueParser2","componentWillUnmount","_this$valueInputRef$c2","removeEventListener","_ref2","_ref5","SValue","_this$asProps3","styles","forwardRef","Fragment","_assignProps2","handleChange","handleKeyDown","handleKeyUp","handleClick","isInteger","defaultValue","defaultDisplayValue","Controls","_ref3","arguments[0]","_ref6","Children","SControls","Addon","SUp","SDown","_assignProps3"],"sources":["../../src/InputNumber.jsx"],"sourcesContent":["import React from 'react';\nimport { createComponent, Component, sstyled, Root } from '@semcore/core';\nimport Input from '@semcore/input';\nimport { IncrementIcon, DecrementIcon } from './buttons';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\n\nimport style from './style/input-number.shadow.css';\nimport { forkRef } from '@semcore/core/lib/utils/ref';\nimport { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps';\n\nexport function parseValueWithMinMax(\n value,\n min = Number.MIN_SAFE_INTEGER,\n max = Number.MAX_SAFE_INTEGER,\n) {\n return Math.max(min, Math.min(max, value));\n}\n\nclass InputNumber extends Component {\n static displayName = 'InputNumber';\n static style = style;\n static enhance = [i18nEnhance(localizedMessages)];\n static defaultProps = {\n size: 'm',\n i18n: localizedMessages,\n locale: 'en',\n };\n\n inputRef = React.createRef();\n\n increment = (event) => {\n this.inputRef.current?.stepUp?.(event);\n };\n\n decrement = (event) => {\n this.inputRef.current?.stepDown?.(event);\n };\n\n getValueProps() {\n const numberFormatter = new Intl.NumberFormat(this.asProps.locale, { style: 'decimal' });\n\n return {\n inputRef: this.inputRef,\n increment: this.increment,\n decrement: this.decrement,\n numberFormatter,\n };\n }\n\n getControlsProps() {\n const { size, getI18nText } = this.asProps;\n return {\n size,\n increment: this.increment,\n decrement: this.decrement,\n getI18nText,\n };\n }\n\n render() {\n const SInputNumber = Root;\n return sstyled(this.asProps.style)(<SInputNumber render={Input} />);\n }\n}\n\nclass Value extends Component {\n static style = style;\n static defaultProps = {\n defaultValue: '',\n defaultDisplayValue: '',\n step: 1,\n };\n\n valueInputRef = React.createRef();\n\n cursorPosition = -1;\n\n uncontrolledProps() {\n return {\n displayValue: null,\n value: [\n null,\n (newValue) => {\n const { value: prevValue, displayValue: prevDisplayValue } = this.asProps;\n\n const { parsedValue, displayValue } = this.valueParser(\n newValue,\n prevValue,\n prevDisplayValue,\n );\n\n this.handlers.displayValue(displayValue);\n\n return parsedValue;\n },\n ],\n };\n }\n\n get separatorDecimal() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(11.11).replace(/\\d/g, '');\n }\n\n get separatorThousands() {\n const { numberFormatter } = this.props;\n\n return numberFormatter.format(1111).replace(/\\d/g, '');\n }\n\n getFormattedValue = (value) => {\n return value\n .replace(new RegExp(`[${this.separatorThousands}]`, 'g'), '')\n .replace(this.separatorDecimal, '.');\n };\n\n valueParser = (value, prevValue, prevDisplayValue) => {\n const { numberFormatter } = this.props;\n\n const stringNumber = this.getFormattedValue(String(value));\n\n if (Number.isNaN(Number(stringNumber))) {\n return {\n parsedValue: prevValue,\n displayValue: prevDisplayValue,\n };\n }\n\n let displayValue = '';\n\n if (/\\.[0-9]*0$/.test(stringNumber)) {\n const [int, decimal] = stringNumber.split(this.separatorDecimal);\n displayValue = numberFormatter.format(int) + this.separatorDecimal + decimal;\n } else if (stringNumber !== '') {\n displayValue = numberFormatter.format(stringNumber);\n }\n\n return {\n parsedValue: stringNumber,\n displayValue: displayValue,\n };\n };\n\n round(value, step) {\n const countDecimals = Math.floor(step) === step ? 0 : step.toString().split('.')[1].length || 0;\n return countDecimals === 0\n ? Number.parseFloat(value)\n : Number.parseFloat(value).toPrecision(countDecimals);\n }\n\n handleValidation = (event) => {\n const { value, displayValue, min, max, step } = this.asProps;\n const { parsedValue } = this.valueParser(event.currentTarget.value, value, displayValue);\n const roundCoefficient = step < 1 ? step.toString().split('.')[1].length : 1;\n\n if (Number.isNaN(value) || Number.isNaN(Number.parseFloat(parsedValue))) {\n event.currentTarget.value = '';\n this.handlers.value('', event);\n } else {\n let numberValue = parseValueWithMinMax(Number.parseFloat(parsedValue), min, max);\n const rounded = this.round(numberValue % step, step);\n if (rounded !== 0) {\n if (rounded >= step / 2) {\n numberValue += step - rounded;\n } else if (Math.abs(rounded) < step) {\n numberValue -= rounded;\n }\n }\n const numberValueRounded = Number(numberValue.toFixed(roundCoefficient));\n\n this.handlers.value(String(numberValueRounded), event);\n }\n };\n\n // https://stackoverflow.com/questions/57358640/cancel-wheel-event-with-e-preventdefault-in-react-event-bubbling\n componentDidMount() {\n this.valueInputRef.current?.addEventListener('wheel', this.onWheel);\n\n const { inputRef, value } = this.asProps;\n\n if (inputRef.current) {\n inputRef.current.stepUp = this.stepUp;\n inputRef.current.stepDown = this.stepDown;\n }\n\n if (value !== '') {\n const { displayValue } = this.valueParser(value, '', '');\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n const { displayValue } = this.valueParser(\n this.props.value,\n prevProps.value,\n prevProps.displayValue,\n );\n this.handlers.displayValue(displayValue);\n }\n }\n\n componentWillUnmount() {\n this.valueInputRef.current?.removeEventListener('wheel', this.onWheel);\n }\n\n onWheel = (event) => {\n callAllEventHandlers(this.asProps.onWheel, this.handleWheel)(event);\n };\n\n handleWheel = (event) => {\n if (event.target !== this.valueInputRef.current) return;\n if (document.activeElement !== this.valueInputRef.current) return;\n event.preventDefault();\n if (event.wheelDelta > 0) {\n this.stepUp(event);\n } else if (event.wheelDelta < 0) {\n this.stepDown(event);\n }\n };\n\n handleChange = (event) => {\n const value = this.getFormattedValue(event.currentTarget.value);\n const { numberFormatter, value: prevValue } = this.asProps;\n\n if (value === '.' || value === '-') {\n this.handlers.displayValue(value);\n return false;\n }\n\n if (value.endsWith('-')) {\n return false;\n }\n\n if (value.endsWith('.')) {\n if (value.length > prevValue.length) {\n this.handlers.displayValue(numberFormatter.format(value) + this.separatorDecimal);\n return false;\n } else {\n this.handlers.value(value.slice(0, -1), event);\n return false;\n }\n }\n\n const digits = /[0-9.-]+/.test(value);\n\n if (digits || value === '') {\n this.handlers.value(value, event);\n }\n };\n\n handleKeyUp = (event) => {\n if (event.key === 'Shift') {\n this.cursorPosition = -1;\n }\n };\n\n handleKeyDown = (event) => {\n const element = event.currentTarget;\n const value = element.value;\n const length = value.length;\n const { displayValue } = this.asProps;\n\n if (event.key === '.' || event.key === ',') {\n // for the first decimal separator we should replace both ',' and '.' to '.' because of how js convert strings to numbers (with ',' it will be NaN)\n if (value.indexOf(this.separatorDecimal) === -1 && event.key === ',') {\n event.currentTarget.value = value + '.';\n }\n // we could press decimal separator second time - prevent this '1.5.'\n else if (value.indexOf(this.separatorDecimal) !== -1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n\n if (event.key === 'Backspace' && value.endsWith(this.separatorDecimal)) {\n event.preventDefault();\n event.stopPropagation();\n this.handlers.displayValue(displayValue.slice(0, -1));\n return false;\n }\n\n if (\n element.selectionStart !== length &&\n (event.key === 'Backspace' ||\n event.key === this.separatorDecimal ||\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(event.key))\n ) {\n const afterSelection = value.slice(element.selectionEnd);\n\n requestAnimationFrame(() => {\n const newValue = this.state.displayValue;\n const index = newValue.lastIndexOf(afterSelection);\n const selectionStart = index;\n const selectionEnd = index;\n\n element.setSelectionRange(selectionStart, selectionEnd);\n });\n }\n\n // For correct moving cursor with skip separatorThousands.\n // Examples:\n // - Press ArrowLeft: `12,3|4 -> 12|,34`\n // - Press ArrowRight: `1|,55 -> 1,5|5`\n const cursorIndex = 2;\n\n if (event.shiftKey && this.cursorPosition === -1) {\n this.cursorPosition = element.selectionStart;\n }\n\n switch (event.key) {\n case 'ArrowLeft': {\n event.preventDefault();\n this.moveSelectionLeft(element, cursorIndex);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n this.moveSelectionRight(element, cursorIndex);\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.stepDown(event);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.stepUp(event);\n break;\n }\n }\n };\n\n moveSelectionLeft = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionStart - 1 >= 0 ? element.selectionStart - 1 : 0;\n\n const cursorPosition =\n value[element.selectionStart - cursorIndex] === this.separatorThousands\n ? element.selectionStart - cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionStart <= this.cursorPosition &&\n element.selectionEnd === this.cursorPosition\n ) {\n element.setSelectionRange(cursorPosition, element.selectionEnd);\n } else {\n element.setSelectionRange(\n element.selectionStart,\n value[element.selectionEnd - cursorIndex] === this.separatorThousands\n ? element.selectionEnd - cursorIndex\n : element.selectionEnd - 1,\n );\n }\n }\n };\n\n moveSelectionRight = (element, cursorIndex) => {\n const value = element.value;\n const nextPosition = element.selectionEnd + 1;\n\n const cursorPosition =\n value[element.selectionEnd] === this.separatorThousands\n ? element.selectionEnd + cursorIndex\n : nextPosition;\n\n if (this.cursorPosition === -1) {\n // without shift\n element.setSelectionRange(cursorPosition, cursorPosition);\n } else {\n if (\n element.selectionEnd >= this.cursorPosition &&\n element.selectionStart === this.cursorPosition\n ) {\n element.setSelectionRange(element.selectionStart, cursorPosition);\n } else {\n element.setSelectionRange(\n value[element.selectionStart] === this.separatorThousands\n ? element.selectionStart + cursorIndex\n : element.selectionStart + 1,\n element.selectionEnd,\n );\n }\n }\n };\n\n handleClick = (event) => {\n const element = event.target;\n const value = element.value;\n\n if (value[element.selectionStart - 1] === this.separatorThousands) {\n element.setSelectionRange(element.selectionStart - 1, element.selectionEnd - 1);\n }\n };\n\n handleBlur = (event) => {\n this.cursorPosition = -1;\n this.handleValidation(event);\n };\n\n stepUp = (event) => {\n const { max = Number.MAX_SAFE_INTEGER, min, step, value } = this.asProps;\n\n let numberValue;\n\n // https://stackoverflow.com/questions/68010124/safari-number-input-stepup-stepdown-not-functioning-with-empty-value\n if (value === '') {\n numberValue = min ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue + step <= max ? numberValue + step : max;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n stepDown = (event) => {\n const { max, min = Number.MIN_SAFE_INTEGER, step, value } = this.asProps;\n\n let numberValue;\n\n if (value === '') {\n numberValue = max ?? 0;\n } else {\n numberValue = Number.parseFloat(value);\n }\n\n if (!Number.isNaN(numberValue)) {\n const newValue = numberValue - step >= min ? numberValue - step : min;\n\n this.handlers.value(newValue.toString(), event);\n }\n };\n\n render() {\n const SValue = Root;\n const { styles, min, max, step, forwardRef, inputRef, displayValue } = this.asProps;\n\n return sstyled(styles)(\n <>\n <SValue\n render={Input.Value}\n autoComplete='off'\n onBlur={this.handleValidation}\n use:onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n onClick={this.handleClick}\n use:ref={forkRef(this.valueInputRef, inputRef, forwardRef)}\n use:value={displayValue}\n inputMode={Number.isInteger(step) ? 'numeric' : 'decimal'}\n min={min}\n max={max}\n step={step}\n />\n </>,\n );\n }\n}\n\nfunction Controls(props) {\n const { Children, increment, decrement, size, styles, getI18nText } = props;\n const SControls = Root;\n const SUp = 'button';\n const SDown = 'button';\n\n return sstyled(styles)(\n <SControls render={Input.Addon} aria-hidden='true'>\n <SUp\n onClick={increment}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('increment')}\n >\n <IncrementIcon />\n </SUp>\n <SDown\n onClick={decrement}\n tabIndex={-1}\n type='button'\n size={size}\n aria-label={getI18nText('decrement')}\n >\n <DecrementIcon />\n </SDown>\n <Children />\n </SControls>,\n );\n}\nControls.style = style;\n\nexport default createComponent(InputNumber, {\n Value,\n Controls,\n Addon: Input.Addon,\n});\n"],"mappings":"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"}
|
package/lib/esm/InputNumber.mjs
CHANGED
|
@@ -1,56 +1,55 @@
|
|
|
1
1
|
import A from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import
|
|
2
|
+
import w from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
3
|
import x from "@babel/runtime/helpers/esm/classCallCheck";
|
|
4
4
|
import I from "@babel/runtime/helpers/esm/createClass";
|
|
5
5
|
import d from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
6
6
|
import C from "@babel/runtime/helpers/esm/inherits";
|
|
7
7
|
import k from "@babel/runtime/helpers/esm/createSuper";
|
|
8
8
|
import l from "@babel/runtime/helpers/esm/defineProperty";
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import { IncrementIcon as W, DecrementIcon as K } from "./buttons.mjs";
|
|
9
|
+
import { createComponent as M, sstyled as V, assignProps as R, Component as $ } from "@semcore/core";
|
|
10
|
+
import m from "react";
|
|
11
|
+
import D from "@semcore/input";
|
|
12
|
+
import { IncrementIcon as z, DecrementIcon as W } from "./buttons.mjs";
|
|
14
13
|
import { localizedMessages as F } from "./translations/__intergalactic-dynamic-locales.mjs";
|
|
15
|
-
import
|
|
16
|
-
import { forkRef as
|
|
17
|
-
import { callAllEventHandlers as
|
|
14
|
+
import K from "@semcore/core/lib/utils/enhances/i18nEnhance";
|
|
15
|
+
import { forkRef as L } from "@semcore/core/lib/utils/ref";
|
|
16
|
+
import { callAllEventHandlers as B } from "@semcore/core/lib/utils/assignProps";
|
|
18
17
|
var N = (
|
|
19
18
|
/*__reshadow_css_start__*/
|
|
20
|
-
(
|
|
19
|
+
(V.insert(
|
|
21
20
|
/*__inner_css_start__*/
|
|
22
|
-
".
|
|
23
|
-
"
|
|
21
|
+
".___SValue_1l7h4_gg_:focus~.___SControls_1l7h4_gg_{display:flex}.___SControls_1l7h4_gg_{display:none;flex-flow:column;justify-content:center;height:100%;box-sizing:border-box}.___SControls_1l7h4_gg_.__showControls_1l7h4_gg_{display:flex}.___SDown_1l7h4_gg_,.___SUp_1l7h4_gg_{padding:0;width:16px;color:var(--intergalactic-icon-secondary-neutral, #a9abb6);box-sizing:border-box;display:inline-flex;justify-content:center;border:0;background:0 0;cursor:pointer}.___SDown_1l7h4_gg_:focus,.___SUp_1l7h4_gg_:focus{outline:0}@media (hover:hover){.___SDown_1l7h4_gg_:hover,.___SUp_1l7h4_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SUp_1l7h4_gg_{padding-bottom:1px}.___SDown_1l7h4_gg_{padding-top:1px}.___SValue_1l7h4_gg_::-webkit-inner-spin-button,.___SValue_1l7h4_gg_::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.___SValue_1l7h4_gg_._type_number_1l7h4_gg_{-moz-appearance:textfield}.___SValue_1l7h4_gg_.__disabled_1l7h4_gg_~.___SControls_1l7h4_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SValueHidden_1l7h4_gg_{position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden}",
|
|
22
|
+
"1l7h4_gg_"
|
|
24
23
|
), {
|
|
25
|
-
__SValue: "
|
|
26
|
-
__SControls: "
|
|
27
|
-
_showControls: "
|
|
28
|
-
__SUp: "
|
|
29
|
-
__SDown: "
|
|
30
|
-
_disabled: "
|
|
31
|
-
__SValueHidden: "
|
|
32
|
-
_type_number: "
|
|
24
|
+
__SValue: "___SValue_1l7h4_gg_",
|
|
25
|
+
__SControls: "___SControls_1l7h4_gg_",
|
|
26
|
+
_showControls: "__showControls_1l7h4_gg_",
|
|
27
|
+
__SUp: "___SUp_1l7h4_gg_",
|
|
28
|
+
__SDown: "___SDown_1l7h4_gg_",
|
|
29
|
+
_disabled: "__disabled_1l7h4_gg_",
|
|
30
|
+
__SValueHidden: "___SValueHidden_1l7h4_gg_",
|
|
31
|
+
_type_number: "_type_number_1l7h4_gg_"
|
|
33
32
|
})
|
|
34
33
|
);
|
|
35
|
-
function
|
|
34
|
+
function G(f) {
|
|
36
35
|
var g = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.MIN_SAFE_INTEGER, c = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Number.MAX_SAFE_INTEGER;
|
|
37
|
-
return Math.max(g, Math.min(c,
|
|
36
|
+
return Math.max(g, Math.min(c, f));
|
|
38
37
|
}
|
|
39
|
-
var
|
|
40
|
-
C(c,
|
|
38
|
+
var P = /* @__PURE__ */ function(f) {
|
|
39
|
+
C(c, f);
|
|
41
40
|
var g = k(c);
|
|
42
41
|
function c() {
|
|
43
|
-
var
|
|
42
|
+
var r;
|
|
44
43
|
x(this, c);
|
|
45
|
-
for (var n = arguments.length, s = new Array(n),
|
|
46
|
-
s[
|
|
47
|
-
return
|
|
48
|
-
var
|
|
49
|
-
(
|
|
50
|
-
}), l(d(
|
|
51
|
-
var
|
|
52
|
-
(
|
|
53
|
-
}),
|
|
44
|
+
for (var n = arguments.length, s = new Array(n), o = 0; o < n; o++)
|
|
45
|
+
s[o] = arguments[o];
|
|
46
|
+
return r = g.call.apply(g, [this].concat(s)), l(d(r), "inputRef", /* @__PURE__ */ m.createRef()), l(d(r), "increment", function(e) {
|
|
47
|
+
var t, a;
|
|
48
|
+
(t = r.inputRef.current) === null || t === void 0 || (a = t.stepUp) === null || a === void 0 || a.call(t, e);
|
|
49
|
+
}), l(d(r), "decrement", function(e) {
|
|
50
|
+
var t, a;
|
|
51
|
+
(t = r.inputRef.current) === null || t === void 0 || (a = t.stepDown) === null || a === void 0 || a.call(t, e);
|
|
52
|
+
}), r;
|
|
54
53
|
}
|
|
55
54
|
return I(c, [{
|
|
56
55
|
key: "getValueProps",
|
|
@@ -68,144 +67,144 @@ var b = /* @__PURE__ */ function(m) {
|
|
|
68
67
|
}, {
|
|
69
68
|
key: "getControlsProps",
|
|
70
69
|
value: function() {
|
|
71
|
-
var n = this.asProps, s = n.size,
|
|
70
|
+
var n = this.asProps, s = n.size, o = n.getI18nText;
|
|
72
71
|
return {
|
|
73
72
|
size: s,
|
|
74
73
|
increment: this.increment,
|
|
75
74
|
decrement: this.decrement,
|
|
76
|
-
getI18nText:
|
|
75
|
+
getI18nText: o
|
|
77
76
|
};
|
|
78
77
|
}
|
|
79
78
|
}, {
|
|
80
79
|
key: "render",
|
|
81
80
|
value: function() {
|
|
82
|
-
var n = this.asProps, s,
|
|
83
|
-
return s =
|
|
81
|
+
var n = this.asProps, s, o = D;
|
|
82
|
+
return s = V(this.asProps.style), /* @__PURE__ */ m.createElement(o, s.cn("SInputNumber", w({}, R({}, n))));
|
|
84
83
|
}
|
|
85
84
|
}]), c;
|
|
86
85
|
}($);
|
|
87
|
-
l(
|
|
88
|
-
l(
|
|
89
|
-
l(
|
|
90
|
-
l(
|
|
86
|
+
l(P, "displayName", "InputNumber");
|
|
87
|
+
l(P, "style", N);
|
|
88
|
+
l(P, "enhance", [K(F)]);
|
|
89
|
+
l(P, "defaultProps", {
|
|
91
90
|
size: "m",
|
|
92
91
|
i18n: F,
|
|
93
92
|
locale: "en"
|
|
94
93
|
});
|
|
95
|
-
var E = /* @__PURE__ */ function(
|
|
96
|
-
C(c,
|
|
94
|
+
var E = /* @__PURE__ */ function(f) {
|
|
95
|
+
C(c, f);
|
|
97
96
|
var g = k(c);
|
|
98
97
|
function c() {
|
|
99
|
-
var
|
|
98
|
+
var r;
|
|
100
99
|
x(this, c);
|
|
101
|
-
for (var n = arguments.length, s = new Array(n),
|
|
102
|
-
s[
|
|
103
|
-
return
|
|
104
|
-
return e.replace(new RegExp("[".concat(
|
|
105
|
-
}), l(d(
|
|
106
|
-
var u =
|
|
107
|
-
if (Number.isNaN(Number(
|
|
100
|
+
for (var n = arguments.length, s = new Array(n), o = 0; o < n; o++)
|
|
101
|
+
s[o] = arguments[o];
|
|
102
|
+
return r = g.call.apply(g, [this].concat(s)), l(d(r), "valueInputRef", /* @__PURE__ */ m.createRef()), l(d(r), "cursorPosition", -1), l(d(r), "getFormattedValue", function(e) {
|
|
103
|
+
return e.replace(new RegExp("[".concat(r.separatorThousands, "]"), "g"), "").replace(r.separatorDecimal, ".");
|
|
104
|
+
}), l(d(r), "valueParser", function(e, t, a) {
|
|
105
|
+
var u = r.props.numberFormatter, i = r.getFormattedValue(String(e));
|
|
106
|
+
if (Number.isNaN(Number(i)))
|
|
108
107
|
return {
|
|
109
|
-
parsedValue:
|
|
110
|
-
displayValue:
|
|
108
|
+
parsedValue: t,
|
|
109
|
+
displayValue: a
|
|
111
110
|
};
|
|
112
|
-
var
|
|
113
|
-
if (/\.[0-9]*0$/.test(
|
|
114
|
-
var p =
|
|
115
|
-
|
|
116
|
-
} else
|
|
111
|
+
var h = "";
|
|
112
|
+
if (/\.[0-9]*0$/.test(i)) {
|
|
113
|
+
var p = i.split(r.separatorDecimal), _ = A(p, 2), v = _[0], y = _[1];
|
|
114
|
+
h = u.format(v) + r.separatorDecimal + y;
|
|
115
|
+
} else i !== "" && (h = u.format(i));
|
|
117
116
|
return {
|
|
118
|
-
parsedValue:
|
|
119
|
-
displayValue:
|
|
117
|
+
parsedValue: i,
|
|
118
|
+
displayValue: h
|
|
120
119
|
};
|
|
121
|
-
}), l(d(
|
|
122
|
-
var
|
|
123
|
-
if (Number.isNaN(
|
|
124
|
-
e.currentTarget.value = "",
|
|
120
|
+
}), l(d(r), "handleValidation", function(e) {
|
|
121
|
+
var t = r.asProps, a = t.value, u = t.displayValue, i = t.min, h = t.max, p = t.step, _ = r.valueParser(e.currentTarget.value, a, u), v = _.parsedValue, y = p < 1 ? p.toString().split(".")[1].length : 1;
|
|
122
|
+
if (Number.isNaN(a) || Number.isNaN(Number.parseFloat(v)))
|
|
123
|
+
e.currentTarget.value = "", r.handlers.value("", e);
|
|
125
124
|
else {
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
var U = Number(
|
|
129
|
-
|
|
125
|
+
var S = G(Number.parseFloat(v), i, h), b = r.round(S % p, p);
|
|
126
|
+
b !== 0 && (b >= p / 2 ? S += p - b : Math.abs(b) < p && (S -= b));
|
|
127
|
+
var U = Number(S.toFixed(y));
|
|
128
|
+
r.handlers.value(String(U), e);
|
|
130
129
|
}
|
|
131
|
-
}), l(d(
|
|
132
|
-
|
|
133
|
-
}), l(d(
|
|
134
|
-
e.target ===
|
|
135
|
-
}), l(d(
|
|
136
|
-
var
|
|
137
|
-
if (
|
|
138
|
-
return
|
|
139
|
-
if (
|
|
130
|
+
}), l(d(r), "onWheel", function(e) {
|
|
131
|
+
B(r.asProps.onWheel, r.handleWheel)(e);
|
|
132
|
+
}), l(d(r), "handleWheel", function(e) {
|
|
133
|
+
e.target === r.valueInputRef.current && document.activeElement === r.valueInputRef.current && (e.preventDefault(), e.wheelDelta > 0 ? r.stepUp(e) : e.wheelDelta < 0 && r.stepDown(e));
|
|
134
|
+
}), l(d(r), "handleChange", function(e) {
|
|
135
|
+
var t = r.getFormattedValue(e.currentTarget.value), a = r.asProps, u = a.numberFormatter, i = a.value;
|
|
136
|
+
if (t === "." || t === "-")
|
|
137
|
+
return r.handlers.displayValue(t), !1;
|
|
138
|
+
if (t.endsWith("-"))
|
|
140
139
|
return !1;
|
|
141
|
-
if (
|
|
142
|
-
return
|
|
143
|
-
var
|
|
144
|
-
(
|
|
145
|
-
}), l(d(
|
|
146
|
-
e.key === "Shift" && (
|
|
147
|
-
}), l(d(
|
|
148
|
-
var
|
|
140
|
+
if (t.endsWith("."))
|
|
141
|
+
return t.length > i.length ? (r.handlers.displayValue(u.format(t) + r.separatorDecimal), !1) : (r.handlers.value(t.slice(0, -1), e), !1);
|
|
142
|
+
var h = /[0-9.-]+/.test(t);
|
|
143
|
+
(h || t === "") && r.handlers.value(t, e);
|
|
144
|
+
}), l(d(r), "handleKeyUp", function(e) {
|
|
145
|
+
e.key === "Shift" && (r.cursorPosition = -1);
|
|
146
|
+
}), l(d(r), "handleKeyDown", function(e) {
|
|
147
|
+
var t = e.currentTarget, a = t.value, u = a.length, i = r.asProps.displayValue;
|
|
149
148
|
if (e.key === "." || e.key === ",") {
|
|
150
|
-
if (
|
|
151
|
-
e.currentTarget.value =
|
|
152
|
-
else if (
|
|
149
|
+
if (a.indexOf(r.separatorDecimal) === -1 && e.key === ",")
|
|
150
|
+
e.currentTarget.value = a + ".";
|
|
151
|
+
else if (a.indexOf(r.separatorDecimal) !== -1) {
|
|
153
152
|
e.preventDefault(), e.stopPropagation();
|
|
154
153
|
return;
|
|
155
154
|
}
|
|
156
155
|
}
|
|
157
|
-
if (e.key === "Backspace" &&
|
|
158
|
-
return e.preventDefault(), e.stopPropagation(),
|
|
159
|
-
if (
|
|
160
|
-
var
|
|
156
|
+
if (e.key === "Backspace" && a.endsWith(r.separatorDecimal))
|
|
157
|
+
return e.preventDefault(), e.stopPropagation(), r.handlers.displayValue(i.slice(0, -1)), !1;
|
|
158
|
+
if (t.selectionStart !== u && (e.key === "Backspace" || e.key === r.separatorDecimal || ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"].includes(e.key))) {
|
|
159
|
+
var h = a.slice(t.selectionEnd);
|
|
161
160
|
requestAnimationFrame(function() {
|
|
162
|
-
var _ =
|
|
163
|
-
|
|
161
|
+
var _ = r.state.displayValue, v = _.lastIndexOf(h), y = v, S = v;
|
|
162
|
+
t.setSelectionRange(y, S);
|
|
164
163
|
});
|
|
165
164
|
}
|
|
166
165
|
var p = 2;
|
|
167
|
-
switch (e.shiftKey &&
|
|
166
|
+
switch (e.shiftKey && r.cursorPosition === -1 && (r.cursorPosition = t.selectionStart), e.key) {
|
|
168
167
|
case "ArrowLeft": {
|
|
169
|
-
e.preventDefault(),
|
|
168
|
+
e.preventDefault(), r.moveSelectionLeft(t, p);
|
|
170
169
|
break;
|
|
171
170
|
}
|
|
172
171
|
case "ArrowRight": {
|
|
173
|
-
e.preventDefault(),
|
|
172
|
+
e.preventDefault(), r.moveSelectionRight(t, p);
|
|
174
173
|
break;
|
|
175
174
|
}
|
|
176
175
|
case "ArrowDown": {
|
|
177
|
-
e.preventDefault(),
|
|
176
|
+
e.preventDefault(), r.stepDown(e);
|
|
178
177
|
break;
|
|
179
178
|
}
|
|
180
179
|
case "ArrowUp": {
|
|
181
|
-
e.preventDefault(),
|
|
180
|
+
e.preventDefault(), r.stepUp(e);
|
|
182
181
|
break;
|
|
183
182
|
}
|
|
184
183
|
}
|
|
185
|
-
}), l(d(
|
|
186
|
-
var
|
|
187
|
-
|
|
188
|
-
}), l(d(
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
}), l(d(
|
|
192
|
-
var
|
|
193
|
-
|
|
194
|
-
}), l(d(
|
|
195
|
-
|
|
196
|
-
}), l(d(
|
|
197
|
-
var
|
|
198
|
-
if (p === "" ? _ =
|
|
199
|
-
var v = _ +
|
|
200
|
-
|
|
184
|
+
}), l(d(r), "moveSelectionLeft", function(e, t) {
|
|
185
|
+
var a = e.value, u = e.selectionStart - 1 >= 0 ? e.selectionStart - 1 : 0, i = a[e.selectionStart - t] === r.separatorThousands ? e.selectionStart - t : u;
|
|
186
|
+
r.cursorPosition === -1 ? e.setSelectionRange(i, i) : e.selectionStart <= r.cursorPosition && e.selectionEnd === r.cursorPosition ? e.setSelectionRange(i, e.selectionEnd) : e.setSelectionRange(e.selectionStart, a[e.selectionEnd - t] === r.separatorThousands ? e.selectionEnd - t : e.selectionEnd - 1);
|
|
187
|
+
}), l(d(r), "moveSelectionRight", function(e, t) {
|
|
188
|
+
var a = e.value, u = e.selectionEnd + 1, i = a[e.selectionEnd] === r.separatorThousands ? e.selectionEnd + t : u;
|
|
189
|
+
r.cursorPosition === -1 ? e.setSelectionRange(i, i) : e.selectionEnd >= r.cursorPosition && e.selectionStart === r.cursorPosition ? e.setSelectionRange(e.selectionStart, i) : e.setSelectionRange(a[e.selectionStart] === r.separatorThousands ? e.selectionStart + t : e.selectionStart + 1, e.selectionEnd);
|
|
190
|
+
}), l(d(r), "handleClick", function(e) {
|
|
191
|
+
var t = e.target, a = t.value;
|
|
192
|
+
a[t.selectionStart - 1] === r.separatorThousands && t.setSelectionRange(t.selectionStart - 1, t.selectionEnd - 1);
|
|
193
|
+
}), l(d(r), "handleBlur", function(e) {
|
|
194
|
+
r.cursorPosition = -1, r.handleValidation(e);
|
|
195
|
+
}), l(d(r), "stepUp", function(e) {
|
|
196
|
+
var t = r.asProps, a = t.max, u = a === void 0 ? Number.MAX_SAFE_INTEGER : a, i = t.min, h = t.step, p = t.value, _;
|
|
197
|
+
if (p === "" ? _ = i ?? 0 : _ = Number.parseFloat(p), !Number.isNaN(_)) {
|
|
198
|
+
var v = _ + h <= u ? _ + h : u;
|
|
199
|
+
r.handlers.value(v.toString(), e);
|
|
201
200
|
}
|
|
202
|
-
}), l(d(
|
|
203
|
-
var
|
|
204
|
-
if (p === "" ? _ =
|
|
205
|
-
var v = _ -
|
|
206
|
-
|
|
201
|
+
}), l(d(r), "stepDown", function(e) {
|
|
202
|
+
var t = r.asProps, a = t.max, u = t.min, i = u === void 0 ? Number.MIN_SAFE_INTEGER : u, h = t.step, p = t.value, _;
|
|
203
|
+
if (p === "" ? _ = a ?? 0 : _ = Number.parseFloat(p), !Number.isNaN(_)) {
|
|
204
|
+
var v = _ - h >= i ? _ - h : i;
|
|
205
|
+
r.handlers.value(v.toString(), e);
|
|
207
206
|
}
|
|
208
|
-
}),
|
|
207
|
+
}), r;
|
|
209
208
|
}
|
|
210
209
|
return I(c, [{
|
|
211
210
|
key: "uncontrolledProps",
|
|
@@ -214,8 +213,8 @@ var E = /* @__PURE__ */ function(m) {
|
|
|
214
213
|
return {
|
|
215
214
|
displayValue: null,
|
|
216
215
|
value: [null, function(s) {
|
|
217
|
-
var
|
|
218
|
-
return n.handlers.displayValue(
|
|
216
|
+
var o = n.asProps, e = o.value, t = o.displayValue, a = n.valueParser(s, e, t), u = a.parsedValue, i = a.displayValue;
|
|
217
|
+
return n.handlers.displayValue(i), u;
|
|
219
218
|
}]
|
|
220
219
|
};
|
|
221
220
|
}
|
|
@@ -234,8 +233,8 @@ var E = /* @__PURE__ */ function(m) {
|
|
|
234
233
|
}, {
|
|
235
234
|
key: "round",
|
|
236
235
|
value: function(n, s) {
|
|
237
|
-
var
|
|
238
|
-
return
|
|
236
|
+
var o = Math.floor(s) === s ? 0 : s.toString().split(".")[1].length || 0;
|
|
237
|
+
return o === 0 ? Number.parseFloat(n) : Number.parseFloat(n).toPrecision(o);
|
|
239
238
|
}
|
|
240
239
|
}, {
|
|
241
240
|
key: "componentDidMount",
|
|
@@ -244,10 +243,10 @@ var E = /* @__PURE__ */ function(m) {
|
|
|
244
243
|
function() {
|
|
245
244
|
var n;
|
|
246
245
|
(n = this.valueInputRef.current) === null || n === void 0 || n.addEventListener("wheel", this.onWheel);
|
|
247
|
-
var s = this.asProps,
|
|
248
|
-
if (
|
|
249
|
-
var
|
|
250
|
-
this.handlers.displayValue(
|
|
246
|
+
var s = this.asProps, o = s.inputRef, e = s.value;
|
|
247
|
+
if (o.current && (o.current.stepUp = this.stepUp, o.current.stepDown = this.stepDown), e !== "") {
|
|
248
|
+
var t = this.valueParser(e, "", ""), a = t.displayValue;
|
|
249
|
+
this.handlers.displayValue(a);
|
|
251
250
|
}
|
|
252
251
|
}
|
|
253
252
|
)
|
|
@@ -255,8 +254,8 @@ var E = /* @__PURE__ */ function(m) {
|
|
|
255
254
|
key: "componentDidUpdate",
|
|
256
255
|
value: function(n) {
|
|
257
256
|
if (n.value !== this.props.value) {
|
|
258
|
-
var s = this.valueParser(this.props.value, n.value, n.displayValue),
|
|
259
|
-
this.handlers.displayValue(
|
|
257
|
+
var s = this.valueParser(this.props.value, n.value, n.displayValue), o = s.displayValue;
|
|
258
|
+
this.handlers.displayValue(o);
|
|
260
259
|
}
|
|
261
260
|
}
|
|
262
261
|
}, {
|
|
@@ -268,20 +267,20 @@ var E = /* @__PURE__ */ function(m) {
|
|
|
268
267
|
}, {
|
|
269
268
|
key: "render",
|
|
270
269
|
value: function() {
|
|
271
|
-
var n = this.asProps, s,
|
|
272
|
-
return s =
|
|
270
|
+
var n = this.asProps, s, o = D.Value, e = this.asProps, t = e.styles, a = e.min, u = e.max, i = e.step, h = e.forwardRef, p = e.inputRef, _ = e.displayValue;
|
|
271
|
+
return s = V(t), /* @__PURE__ */ m.createElement(m.Fragment, null, /* @__PURE__ */ m.createElement(o, s.cn("SValue", w({}, R({
|
|
273
272
|
autoComplete: "off",
|
|
274
273
|
onBlur: this.handleValidation,
|
|
275
274
|
"use:onChange": this.handleChange,
|
|
276
275
|
onKeyDown: this.handleKeyDown,
|
|
277
276
|
onKeyUp: this.handleKeyUp,
|
|
278
277
|
onClick: this.handleClick,
|
|
279
|
-
"use:ref":
|
|
278
|
+
"use:ref": L(this.valueInputRef, p, h),
|
|
280
279
|
"use:value": _,
|
|
281
|
-
inputMode: Number.isInteger(
|
|
282
|
-
min:
|
|
280
|
+
inputMode: Number.isInteger(i) ? "numeric" : "decimal",
|
|
281
|
+
min: a,
|
|
283
282
|
max: u,
|
|
284
|
-
step:
|
|
283
|
+
step: i
|
|
285
284
|
}, n)))));
|
|
286
285
|
}
|
|
287
286
|
}]), c;
|
|
@@ -292,31 +291,31 @@ l(E, "defaultProps", {
|
|
|
292
291
|
defaultDisplayValue: "",
|
|
293
292
|
step: 1
|
|
294
293
|
});
|
|
295
|
-
function T(
|
|
296
|
-
var g = arguments[0], c,
|
|
297
|
-
return c =
|
|
294
|
+
function T(f) {
|
|
295
|
+
var g = arguments[0], c, r = f.Children, n = f.increment, s = f.decrement, o = f.size, e = f.styles, t = f.getI18nText, a = D.Addon, u = "button", i = "button";
|
|
296
|
+
return c = V(e), /* @__PURE__ */ m.createElement(a, c.cn("SControls", w({}, R({
|
|
298
297
|
"aria-hidden": "true"
|
|
299
|
-
}, g))), /* @__PURE__ */
|
|
298
|
+
}, g))), /* @__PURE__ */ m.createElement(u, c.cn("SUp", {
|
|
300
299
|
onClick: n,
|
|
301
300
|
tabIndex: -1,
|
|
302
301
|
type: "button",
|
|
303
|
-
size:
|
|
304
|
-
"aria-label":
|
|
305
|
-
}), /* @__PURE__ */
|
|
302
|
+
size: o,
|
|
303
|
+
"aria-label": t("increment")
|
|
304
|
+
}), /* @__PURE__ */ m.createElement(z, c.cn("IncrementIcon", {}))), /* @__PURE__ */ m.createElement(i, c.cn("SDown", {
|
|
306
305
|
onClick: s,
|
|
307
306
|
tabIndex: -1,
|
|
308
307
|
type: "button",
|
|
309
|
-
size:
|
|
310
|
-
"aria-label":
|
|
311
|
-
}), /* @__PURE__ */
|
|
308
|
+
size: o,
|
|
309
|
+
"aria-label": t("decrement")
|
|
310
|
+
}), /* @__PURE__ */ m.createElement(W, c.cn("DecrementIcon", {}))), /* @__PURE__ */ m.createElement(r, c.cn("Children", {})));
|
|
312
311
|
}
|
|
313
312
|
T.style = N;
|
|
314
|
-
const
|
|
313
|
+
const se = M(P, {
|
|
315
314
|
Value: E,
|
|
316
315
|
Controls: T,
|
|
317
|
-
Addon:
|
|
316
|
+
Addon: D.Addon
|
|
318
317
|
});
|
|
319
318
|
export {
|
|
320
|
-
|
|
321
|
-
|
|
319
|
+
se as default,
|
|
320
|
+
G as parseValueWithMinMax
|
|
322
321
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/input-number",
|
|
3
3
|
"description": "Semrush InputNumber Component",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "16.0.0-prerelease.4",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -14,14 +14,11 @@
|
|
|
14
14
|
"types": "./lib/types/index.d.ts"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@semcore/input": "
|
|
18
|
-
"@semcore/
|
|
19
|
-
"@semcore/flex-box": "5.41.1"
|
|
17
|
+
"@semcore/input": "16.0.0-prerelease.4",
|
|
18
|
+
"@semcore/flex-box": "16.0.0-prerelease.4"
|
|
20
19
|
},
|
|
21
20
|
"peerDependencies": {
|
|
22
|
-
"@semcore/
|
|
23
|
-
"react": "16.8 - 18",
|
|
24
|
-
"react-dom": "16.8 - 18"
|
|
21
|
+
"@semcore/base-components": "^16.0.0-prerelease.4"
|
|
25
22
|
},
|
|
26
23
|
"repository": {
|
|
27
24
|
"type": "git",
|