@laerdal/life-react-components 1.11.0-dev.5.full → 1.11.0-dev.7.full

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.
@@ -37,9 +37,9 @@ var _types = require("../types");
37
37
 
38
38
  var _jsxRuntime = require("react/jsx-runtime");
39
39
 
40
- var _excluded = ["size", "label", "note", "noteIcon", "required", "prefix", "interval", "minValue", "maxValue", "allowNegative", "decimalPrecision", "disabled", "readOnly", "state", "value", "placeholder", "type", "onChange", "className"];
40
+ var _excluded = ["type", "size", "note", "noteIcon", "required", "prefix", "interval", "minValue", "maxValue", "allowNegative", "decimalPrecision", "disabled", "readOnly", "state", "value", "placeholder", "onChange", "className"];
41
41
 
42
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
43
43
 
44
44
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
45
 
@@ -51,17 +51,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
51
51
 
52
52
  var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)([""])));
53
53
 
54
- var LabelContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: 4px;\n color: ", ";\n display: flex;\n ", "\n"])), _styles.COLORS.neutral_500, function (props) {
55
- return props.size === _types.Size.Small ? (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, null) : (0, _typography.ComponentXSStyling)(_typography.ComponentTextStyle.Regular, null);
56
- });
57
-
58
- var LabelText = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)([""])));
59
-
60
- var LabelIcon = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: ", ";\n\n svg {\n height: 9px;\n width: 9px;\n }\n"])), function (props) {
61
- return props.size === _types.Size.Small ? '6px' : '8px';
62
- });
63
-
64
- var PrefixContainer = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n position: absolute;\n padding: ", ";\n"])), function (props) {
54
+ var PrefixContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n position: absolute;\n padding: ", ";\n"])), function (props) {
65
55
  return props.size === _types.Size.Small ? '10px' : '11px';
66
56
  }, function (props) {
67
57
  return props.size === _types.Size.Small ? '20px' : '24px';
@@ -73,11 +63,11 @@ var PrefixContainer = _styledComponents.default.div(_templateObject5 || (_templa
73
63
  return props.size === _types.Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
74
64
  });
75
65
 
76
- var OperatorWrapper = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ", ";\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
66
+ var OperatorWrapper = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ", ";\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
77
67
  return props.size === _types.Size.Medium ? '4px 0' : '';
78
68
  }, _styles.COLORS.neutral_200);
79
69
 
80
- var NumberInput = _styledComponents.default.input(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ", ";\n outline: none;\n color: ", ";\n\n ", "\n ", "\n ", "\n &::placeholder {\n ", "\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.focus-visible {\n ", "\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n color: ", ";\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &.readOnly {\n background: ", ";\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n background: ", ";\n cursor: not-allowed;\n pointer-events: none;\n color: ", ";\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n"])), _styles.COLORS.neutral_400, _styles.COLORS.neutral_500, function (props) {
70
+ var NumberInput = _styledComponents.default.input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ", ";\n outline: none;\n color: ", ";\n\n ", "\n ", "\n ", "\n &::placeholder {\n ", "\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.focus-visible {\n ", "\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n color: ", ";\n pointer-events: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &.readOnly {\n background: ", ";\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n background: ", ";\n pointer-events: none;\n color: ", ";\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n"])), _styles.COLORS.neutral_400, _styles.COLORS.neutral_500, function (props) {
81
71
  return props.fieldSize === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.black);
82
72
  }, function (props) {
83
73
  return props.type === 'NumberField' ? "\n padding: ".concat(props.fieldSize === _types.Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px', ";\n padding-left: ").concat(props.hasPrefix ? '30px' : '', ";\n ") : '';
@@ -87,32 +77,33 @@ var NumberInput = _styledComponents.default.input(_templateObject7 || (_template
87
77
  return props.fieldSize === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Italic, null) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Italic, null);
88
78
  }, _styles.COLORS.primary_800, _styles.focusStyles, _styles.COLORS.primary_700, _styles.COLORS.neutral_100, _styles.COLORS.neutral_300, _styles.COLORS.neutral_300, _styles.COLORS.neutral_100, _styles.COLORS.neutral_300, _styles.COLORS.neutral_100, _styles.COLORS.neutral_500, _styles.COLORS.correct_400, _styles.COLORS.critical_400);
89
79
 
90
- var NoteLabel = _styledComponents.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", "\n"])), _styles.COLORS.neutral_500, function (props) {
80
+ var NoteLabel = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", "\n"])), _styles.COLORS.neutral_500, function (props) {
91
81
  return props.size === _types.Size.Small ? (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, null) : (0, _typography.ComponentXSStyling)(_typography.ComponentTextStyle.Regular, null);
92
82
  });
93
83
 
94
- var NoteIcon = _styledComponents.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n svg {\n height: 16px;\n }\n"])));
84
+ var NoteIcon = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n svg {\n height: 16px;\n }\n"])));
95
85
 
96
- var NoteContainer = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n\n &.invalid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n"])), NoteLabel, _styles.COLORS.correct_500, NoteIcon, _styles.COLORS.correct_500, NoteLabel, _styles.COLORS.critical_500, NoteIcon, _styles.COLORS.critical_500);
86
+ var NoteContainer = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n\n &.invalid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n"])), NoteLabel, _styles.COLORS.correct_500, NoteIcon, _styles.COLORS.correct_500, NoteLabel, _styles.COLORS.critical_500, NoteIcon, _styles.COLORS.critical_500);
97
87
 
98
- var InputContainer = _styledComponents.default.div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", ";\n height: ", ";\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ", ";\n }\n"])), function (props) {
88
+ var InputContainer = _styledComponents.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", ";\n height: ", ";\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ", ";\n }\n"])), function (props) {
99
89
  return props.type === 'NumberField' ? '160px' : '144px';
100
90
  }, function (props) {
101
91
  return props.size === _types.Size.Small ? '48px' : '56px';
102
92
  }, _styles.Z_INDEXES.focus);
103
93
 
104
- var LeftOperator = _styledComponents.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", ";\n left: 0;\n"])), function (props) {
94
+ var LeftOperator = _styledComponents.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", ";\n left: 0;\n"])), function (props) {
105
95
  return props.size === _types.Size.Small ? '0' : '4px';
106
96
  });
107
97
 
108
- var RightOperator = _styledComponents.default.div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", ";\n right: 0;\n"])), function (props) {
98
+ var RightOperator = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", ";\n right: 0;\n"])), function (props) {
109
99
  return props.size === _types.Size.Small ? '0' : '4px';
110
100
  });
111
101
 
112
102
  var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
113
- var _props$size = props.size,
114
- size = _props$size === void 0 ? _types.Size.Small : _props$size,
115
- label = props.label,
103
+ var _props$type = props.type,
104
+ type = _props$type === void 0 ? 'NumberField' : _props$type,
105
+ _props$size = props.size,
106
+ size = _props$size === void 0 ? _types.Size.Medium : _props$size,
116
107
  note = props.note,
117
108
  noteIcon = props.noteIcon,
118
109
  required = props.required,
@@ -128,7 +119,6 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
128
119
  state = props.state,
129
120
  value = props.value,
130
121
  placeholder = props.placeholder,
131
- type = props.type,
132
122
  onChange = props.onChange,
133
123
  className = props.className,
134
124
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
@@ -139,13 +129,16 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
139
129
  setUserInput = _React$useState2[1];
140
130
 
141
131
  var elementRef = (0, _common.useFocusVisibleRef)();
132
+ React.useEffect(function () {
133
+ return setUserInput("".concat(value !== null && value !== void 0 ? value : ''));
134
+ }, [value]);
142
135
  React.useImperativeHandle(ref, function () {
143
136
  return elementRef.current;
144
137
  }, [elementRef]);
145
138
 
146
139
  var setVal = function setVal(e) {
147
140
  setUserInput(e);
148
- onChange && onChange(e);
141
+ onChange && onChange(+e);
149
142
  };
150
143
 
151
144
  var handleKeyPress = function handleKeyPress(e) {
@@ -313,18 +306,7 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
313
306
  };
314
307
 
315
308
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
316
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(LabelContainer, {
317
- size: size,
318
- children: [required && /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelIcon, {
319
- size: size,
320
- "data-testid": 'labelIcon',
321
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Asterisk, {
322
- color: _styles.COLORS.critical_500
323
- })
324
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelText, {
325
- children: label
326
- })]
327
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputContainer, {
309
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(InputContainer, {
328
310
  type: type,
329
311
  size: size,
330
312
  tabIndex: -1,
@@ -343,6 +325,7 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
343
325
  onKeyDown: function onKeyDown(e) {
344
326
  return handleKeyPress(e);
345
327
  },
328
+ required: required,
346
329
  className: 'numberField'.concat(disabled ? ' disabled' : '').concat(readOnly ? ' readOnly' : '').concat(state ? " ".concat(state) : '').concat(className ? " ".concat(className) : '')
347
330
  }, rest)), type === 'NumberField' && renderNumberFieldElements(), type === 'NumberInput' && renderNumberInputElements()]
348
331
  }), note && /*#__PURE__*/(0, _jsxRuntime.jsxs)(NoteContainer, {
@@ -359,14 +342,13 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
359
342
  NumberField.propTypes = {
360
343
  prefix: _propTypes.default.string,
361
344
  interval: _propTypes.default.number,
362
- label: _propTypes.default.string.isRequired,
363
- note: _propTypes.default.string,
364
- noteIcon: _propTypes.default.node,
365
345
  minValue: _propTypes.default.number,
366
346
  maxValue: _propTypes.default.number,
367
347
  allowNegative: _propTypes.default.bool,
368
348
  decimalPrecision: _propTypes.default.number,
369
- type: _propTypes.default.oneOf(['NumberField', 'NumberInput']).isRequired,
349
+ note: _propTypes.default.string,
350
+ noteIcon: _propTypes.default.node,
351
+ type: _propTypes.default.oneOf(['NumberField', 'NumberInput']),
370
352
  value: _propTypes.default.number,
371
353
  onChange: _propTypes.default.func
372
354
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/NumberField.tsx"],"names":["Container","styled","div","LabelContainer","COLORS","neutral_500","props","size","Size","Small","ComponentTextStyle","Regular","LabelText","LabelIcon","PrefixContainer","disabled","neutral_300","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","focusStyles","primary_700","neutral_100","correct_400","critical_400","NoteLabel","NoteIcon","NoteContainer","correct_500","critical_500","InputContainer","Z_INDEXES","focus","LeftOperator","RightOperator","NumberField","React","forwardRef","ref","label","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","rest","useState","toString","userInput","setUserInput","elementRef","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {IconButton} from '../Button';\nimport {useFocusVisibleRef} from '../common';\nimport {SystemIcons} from '../icons';\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\nimport {\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXXSStyling,\n ComponentXSStyling\n} from '../styles/typography';\nimport {Size, States} from '../types';\n\nconst Container = styled.div``;\n\nconst LabelContainer = styled.div<{ size: Size }>`\n margin-bottom: 4px;\n color: ${COLORS.neutral_500};\n display: flex;\n ${props => props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null)}\n`;\n\nconst LabelText = styled.div``;\n\nconst LabelIcon = styled.div<{ size: Size }>`\n margin-right: ${props => props.size === Size.Small ? '6px' : '8px'};\n\n svg {\n height: 9px;\n width: 9px;\n }\n`;\n\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\n position: absolute;\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\n`;\n\nconst OperatorWrapper = styled.div<{ size: Size }>`\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ${COLORS.neutral_200};\n width: 1px;\n }\n`;\n\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\n outline: none;\n color: ${COLORS.neutral_500};\n\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n ${props => props.type === 'NumberField' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\n padding-left: ${props.hasPrefix ? '30px' : ''};\n ` : ''}\n ${props => props.type === 'NumberInput' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\n ` : ''}\n &::placeholder {\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\n }\n\n &.focus-visible {\n ${focusStyles}\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\n cursor: not-allowed;\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n\n &.readOnly {\n background: ${COLORS.neutral_100};\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\n cursor: not-allowed;\n background: ${COLORS.neutral_100};\n cursor: not-allowed;\n pointer-events: none;\n color: ${COLORS.neutral_500};\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\n }\n`;\n\nconst NoteLabel = styled.div<{ size: Size }>`\n color: ${COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null)}\n`;\n\nconst NoteIcon = styled.div`\n svg {\n height: 16px;\n }\n`;\n\nconst NoteContainer = styled.div`\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ${NoteLabel} {\n color: ${COLORS.correct_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.correct_500};\n }\n }\n }\n\n &.invalid {\n ${NoteLabel} {\n color: ${COLORS.critical_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.critical_500};\n }\n }\n }\n`;\n\nconst InputContainer = styled.div<{ size: Size, type: string }>`\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst LeftOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n left: 0;\n`;\n\nconst RightOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n right: 0;\n`;\n\ntype NumberFieldProps =\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\n & {\n size?: Size.Small | Size.Medium;\n prefix?: string;\n interval?: number;\n label: string;\n note?: string;\n noteIcon?: React.ReactNode;\n\n minValue?: number;\n maxValue?: number;\n allowNegative?: boolean;\n decimalPrecision?: number;\n\n state?: States.Valid | States.Invalid;\n\n type: 'NumberField' | 'NumberInput';\n value?: number;\n onChange?: (e: string) => void;\n}\n\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\n const {\n size = Size.Small,\n label,\n note,\n noteIcon,\n required,\n prefix,\n interval = 1,\n minValue,\n maxValue,\n allowNegative,\n decimalPrecision,\n disabled,\n readOnly,\n state,\n value,\n placeholder,\n type,\n onChange,\n className,\n ...rest\n } = props;\n\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\n\n const elementRef = useFocusVisibleRef();\n\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\n\n const setVal = (e: string) => {\n setUserInput(e);\n onChange && onChange(e);\n }\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case 'ArrowUp':\n addInterval();\n break;\n case 'ArrowDown':\n subtractInterval();\n break;\n default:\n break;\n }\n }\n\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\n\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n\n let val = e.target.value;\n if (val !== '') {\n if (allowNegative && decimalPrecision) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else {\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\n setVal(val);\n\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\n setVal(val);\n\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\n setVal(val);\n }\n } else if (allowNegative) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\n setVal(val);\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\n if (decimalPrecisionRegex!.test(val))\n setVal(val);\n else if (decimalFormationRegEx.test(val))\n setVal(val);\n else if (!val.includes('.') && simpleRegex.test(val))\n setVal(val);\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\n setVal(val);\n }\n }\n\n if (val === '')\n setVal('');\n }\n\n const isInRange = (value: string, isDecimal: boolean): boolean => {\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\n if (minValue && minValue > x)\n return false;\n else if (maxValue && maxValue < x)\n return false;\n else\n return true;\n }\n\n const addInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val += 1;\n\n if (maxValue && maxValue >= val)\n setVal(val.toString());\n else if (!maxValue)\n setVal(val.toString());\n }\n }\n\n const subtractInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val -= 1;\n\n if ((minValue && minValue <= val) || !minValue) {\n if (allowNegative || val >= 0) {\n setVal(val.toString());\n }\n }\n }\n }\n\n const isLocked = (input: string, operator: string): boolean => {\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\n val = isNaN(val) && userInput === '' ? 0 : val;\n let operatorState = false;\n if (operator === 'add' && maxValue)\n operatorState = val >= maxValue;\n\n if (operator === 'subtract' && minValue)\n operatorState = val <= minValue;\n\n if (operator === 'subtract' && !minValue && !allowNegative)\n operatorState = val <= 0;\n\n return operatorState;\n }\n\n const renderNumberFieldElements = () => {\n return (\n <>\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\n {prefix}\n </PrefixContainer>}\n\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n <div className=\"divider\"></div>\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </OperatorWrapper>\n </>)\n }\n\n const renderNumberInputElements = () => {\n return (\n <>\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n </LeftOperator>\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </RightOperator>\n </>)\n }\n\n return (\n <Container>\n <LabelContainer size={size}>\n {required && <LabelIcon size={size} data-testid={'labelIcon'}>\n <SystemIcons.Asterisk color={COLORS.critical_500}/>\n </LabelIcon>\n }\n <LabelText>\n {label}\n </LabelText>\n </LabelContainer>\n\n <InputContainer type={type} size={size} tabIndex={-1}>\n <NumberInput type={type}\n data-testid={'numberInput'}\n fieldSize={size}\n hasPrefix={!!prefix}\n placeholder={placeholder ? placeholder : 'Enter number'}\n value={userInput}\n ref={elementRef}\n tabIndex={(disabled || readOnly) ? -1 : 0}\n onChange={e => handleInput(e)}\n onKeyDown={e => handleKeyPress(e)}\n className={'numberField'.concat(disabled ? ' disabled' : '')\n .concat(readOnly ? ' readOnly' : '')\n .concat(state ? ` ${state}` : '')\n .concat(className ? ` ${className}` : '')}\n {...rest}/>\n\n {type === 'NumberField' && renderNumberFieldElements()}\n {type === 'NumberInput' && renderNumberInputElements()}\n </InputContainer>\n\n {note && <NoteContainer className={'noteField'.concat(state ? ` ${state}` : '')}>\n <NoteIcon>\n {noteIcon}\n </NoteIcon>\n <NoteLabel size={size}>\n {note}\n </NoteLabel>\n </NoteContainer>\n }\n </Container>\n );\n }\n )\n;\n\nexport default NumberField;\n"],"file":"NumberField.cjs"}
1
+ {"version":3,"sources":["../../src/InputFields/NumberField.tsx"],"names":["Container","styled","div","PrefixContainer","props","size","Size","Small","disabled","COLORS","neutral_300","neutral_500","ComponentTextStyle","Regular","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","focusStyles","primary_700","neutral_100","correct_400","critical_400","NoteLabel","NoteIcon","NoteContainer","correct_500","critical_500","InputContainer","Z_INDEXES","focus","LeftOperator","RightOperator","NumberField","React","forwardRef","ref","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","rest","useState","toString","userInput","setUserInput","elementRef","useEffect","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {IconButton} from '../Button';\nimport {useFocusVisibleRef} from '../common';\nimport {SystemIcons} from '../icons';\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\nimport {\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXXSStyling,\n ComponentXSStyling\n} from '../styles/typography';\nimport {Size, States} from '../types';\n\nconst Container = styled.div``;\n\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\n position: absolute;\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\n`;\n\nconst OperatorWrapper = styled.div<{ size: Size }>`\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ${COLORS.neutral_200};\n width: 1px;\n }\n`;\n\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\n outline: none;\n color: ${COLORS.neutral_500};\n\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n ${props => props.type === 'NumberField' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\n padding-left: ${props.hasPrefix ? '30px' : ''};\n ` : ''}\n ${props => props.type === 'NumberInput' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\n ` : ''}\n &::placeholder {\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\n }\n\n &.focus-visible {\n ${focusStyles}\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\n cursor: not-allowed;\n color: ${COLORS.neutral_300};\n pointer-events: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n\n &.readOnly {\n background: ${COLORS.neutral_100};\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\n cursor: not-allowed;\n background: ${COLORS.neutral_100};\n pointer-events: none;\n color: ${COLORS.neutral_500};\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\n }\n`;\n\nconst NoteLabel = styled.div<{ size: Size }>`\n color: ${COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null)}\n`;\n\nconst NoteIcon = styled.div`\n svg {\n height: 16px;\n }\n`;\n\nconst NoteContainer = styled.div`\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ${NoteLabel} {\n color: ${COLORS.correct_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.correct_500};\n }\n }\n }\n\n &.invalid {\n ${NoteLabel} {\n color: ${COLORS.critical_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.critical_500};\n }\n }\n }\n`;\n\nconst InputContainer = styled.div<{ size: Size, type: string }>`\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst LeftOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n left: 0;\n`;\n\nconst RightOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n right: 0;\n`;\n\ntype NumberFieldProps =\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\n & {\n size?: Size.Small | Size.Medium;\n prefix?: string;\n interval?: number;\n\n minValue?: number;\n maxValue?: number;\n allowNegative?: boolean;\n decimalPrecision?: number;\n\n state?: States.Valid | States.Invalid;\n note?: string;\n noteIcon?: React.ReactNode;\n\n type?: 'NumberField' | 'NumberInput';\n value?: number;\n onChange?: (e: number) => void;\n}\n\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\n const {\n type = 'NumberField',\n size = Size.Medium,\n note,\n noteIcon,\n required,\n prefix,\n interval = 1,\n minValue,\n maxValue,\n allowNegative,\n decimalPrecision,\n disabled,\n readOnly,\n state,\n value,\n placeholder,\n onChange,\n className,\n ...rest\n } = props;\n\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\n\n const elementRef = useFocusVisibleRef();\n\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\n\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\n\n const setVal = (e: string) => {\n setUserInput(e);\n onChange && onChange(+e);\n }\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case 'ArrowUp':\n addInterval();\n break;\n case 'ArrowDown':\n subtractInterval();\n break;\n default:\n break;\n }\n }\n\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\n\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n\n let val = e.target.value;\n if (val !== '') {\n if (allowNegative && decimalPrecision) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else {\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\n setVal(val);\n\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\n setVal(val);\n\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\n setVal(val);\n }\n } else if (allowNegative) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\n setVal(val);\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\n if (decimalPrecisionRegex!.test(val))\n setVal(val);\n else if (decimalFormationRegEx.test(val))\n setVal(val);\n else if (!val.includes('.') && simpleRegex.test(val))\n setVal(val);\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\n setVal(val);\n }\n }\n\n if (val === '')\n setVal('');\n }\n\n const isInRange = (value: string, isDecimal: boolean): boolean => {\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\n if (minValue && minValue > x)\n return false;\n else if (maxValue && maxValue < x)\n return false;\n else\n return true;\n }\n\n const addInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val += 1;\n\n if (maxValue && maxValue >= val)\n setVal(val.toString());\n else if (!maxValue)\n setVal(val.toString());\n }\n }\n\n const subtractInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val -= 1;\n\n if ((minValue && minValue <= val) || !minValue) {\n if (allowNegative || val >= 0) {\n setVal(val.toString());\n }\n }\n }\n }\n\n const isLocked = (input: string, operator: string): boolean => {\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\n val = isNaN(val) && userInput === '' ? 0 : val;\n let operatorState = false;\n if (operator === 'add' && maxValue)\n operatorState = val >= maxValue;\n\n if (operator === 'subtract' && minValue)\n operatorState = val <= minValue;\n\n if (operator === 'subtract' && !minValue && !allowNegative)\n operatorState = val <= 0;\n\n return operatorState;\n }\n\n const renderNumberFieldElements = () => {\n return (\n <>\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\n {prefix}\n </PrefixContainer>}\n\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n <div className=\"divider\"></div>\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </OperatorWrapper>\n </>)\n }\n\n const renderNumberInputElements = () => {\n return (\n <>\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n </LeftOperator>\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </RightOperator>\n </>)\n }\n\n return (\n <Container>\n <InputContainer type={type} size={size} tabIndex={-1}>\n <NumberInput type={type}\n data-testid={'numberInput'}\n fieldSize={size}\n hasPrefix={!!prefix}\n placeholder={placeholder ? placeholder : 'Enter number'}\n value={userInput}\n ref={elementRef}\n tabIndex={(disabled || readOnly) ? -1 : 0}\n onChange={e => handleInput(e)}\n onKeyDown={e => handleKeyPress(e)}\n required={required}\n className={'numberField'.concat(disabled ? ' disabled' : '')\n .concat(readOnly ? ' readOnly' : '')\n .concat(state ? ` ${state}` : '')\n .concat(className ? ` ${className}` : '')}\n {...rest}/>\n\n {type === 'NumberField' && renderNumberFieldElements()}\n {type === 'NumberInput' && renderNumberInputElements()}\n </InputContainer>\n\n {note && <NoteContainer className={'noteField'.concat(state ? ` ${state}` : '')}>\n <NoteIcon>\n {noteIcon}\n </NoteIcon>\n <NoteLabel size={size}>\n {note}\n </NoteLabel>\n </NoteContainer>\n }\n </Container>\n );\n }\n )\n;\n\nexport default NumberField;\n"],"file":"NumberField.cjs"}
@@ -4,16 +4,15 @@ declare const NumberField: React.ForwardRefExoticComponent<Omit<React.InputHTMLA
4
4
  size?: Size.Small | Size.Medium | undefined;
5
5
  prefix?: string | undefined;
6
6
  interval?: number | undefined;
7
- label: string;
8
- note?: string | undefined;
9
- noteIcon?: React.ReactNode;
10
7
  minValue?: number | undefined;
11
8
  maxValue?: number | undefined;
12
9
  allowNegative?: boolean | undefined;
13
10
  decimalPrecision?: number | undefined;
14
11
  state?: States.Valid | States.Invalid | undefined;
15
- type: 'NumberField' | 'NumberInput';
12
+ note?: string | undefined;
13
+ noteIcon?: React.ReactNode;
14
+ type?: "NumberField" | "NumberInput" | undefined;
16
15
  value?: number | undefined;
17
- onChange?: ((e: string) => void) | undefined;
16
+ onChange?: ((e: number) => void) | undefined;
18
17
  } & React.RefAttributes<HTMLInputElement>>;
19
18
  export default NumberField;
@@ -3,9 +3,9 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
4
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
5
5
  import _pt from "prop-types";
6
- var _excluded = ["size", "label", "note", "noteIcon", "required", "prefix", "interval", "minValue", "maxValue", "allowNegative", "decimalPrecision", "disabled", "readOnly", "state", "value", "placeholder", "type", "onChange", "className"];
6
+ var _excluded = ["type", "size", "note", "noteIcon", "required", "prefix", "interval", "minValue", "maxValue", "allowNegative", "decimalPrecision", "disabled", "readOnly", "state", "value", "placeholder", "onChange", "className"];
7
7
 
8
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
8
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
9
9
 
10
10
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
11
 
@@ -23,14 +23,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
23
23
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import { Fragment as _Fragment } from "react/jsx-runtime";
25
25
  var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
26
- var LabelContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: 4px;\n color: ", ";\n display: flex;\n ", "\n"])), COLORS.neutral_500, function (props) {
27
- return props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null);
28
- });
29
- var LabelText = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([""])));
30
- var LabelIcon = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-right: ", ";\n\n svg {\n height: 9px;\n width: 9px;\n }\n"])), function (props) {
31
- return props.size === Size.Small ? '6px' : '8px';
32
- });
33
- var PrefixContainer = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n position: absolute;\n padding: ", ";\n"])), function (props) {
26
+ var PrefixContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n position: absolute;\n padding: ", ";\n"])), function (props) {
34
27
  return props.size === Size.Small ? '10px' : '11px';
35
28
  }, function (props) {
36
29
  return props.size === Size.Small ? '20px' : '24px';
@@ -41,10 +34,10 @@ var PrefixContainer = styled.div(_templateObject5 || (_templateObject5 = _tagged
41
34
  }, function (props) {
42
35
  return props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
43
36
  });
44
- var OperatorWrapper = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ", ";\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
37
+ var OperatorWrapper = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ", ";\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ", ";\n width: 1px;\n }\n"])), function (props) {
45
38
  return props.size === Size.Medium ? '4px 0' : '';
46
39
  }, COLORS.neutral_200);
47
- var NumberInput = styled.input(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ", ";\n outline: none;\n color: ", ";\n\n ", "\n ", "\n ", "\n &::placeholder {\n ", "\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.focus-visible {\n ", "\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n color: ", ";\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &.readOnly {\n background: ", ";\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n background: ", ";\n cursor: not-allowed;\n pointer-events: none;\n color: ", ";\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n"])), COLORS.neutral_400, COLORS.neutral_500, function (props) {
40
+ var NumberInput = styled.input(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ", ";\n outline: none;\n color: ", ";\n\n ", "\n ", "\n ", "\n &::placeholder {\n ", "\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.focus-visible {\n ", "\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n color: ", ";\n pointer-events: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &.readOnly {\n background: ", ";\n box-shadow: inset 0 0 0 1px ", ";\n cursor: not-allowed;\n background: ", ";\n pointer-events: none;\n color: ", ";\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ", ";\n }\n"])), COLORS.neutral_400, COLORS.neutral_500, function (props) {
48
41
  return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black);
49
42
  }, function (props) {
50
43
  return props.type === 'NumberField' ? "\n padding: ".concat(props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px', ";\n padding-left: ").concat(props.hasPrefix ? '30px' : '', ";\n ") : '';
@@ -53,26 +46,27 @@ var NumberInput = styled.input(_templateObject7 || (_templateObject7 = _taggedTe
53
46
  }, function (props) {
54
47
  return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null);
55
48
  }, COLORS.primary_800, focusStyles, COLORS.primary_700, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_300, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_100, COLORS.neutral_500, COLORS.correct_400, COLORS.critical_400);
56
- var NoteLabel = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n color: ", ";\n ", "\n"])), COLORS.neutral_500, function (props) {
49
+ var NoteLabel = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n color: ", ";\n ", "\n"])), COLORS.neutral_500, function (props) {
57
50
  return props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null);
58
51
  });
59
- var NoteIcon = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n svg {\n height: 16px;\n }\n"])));
60
- var NoteContainer = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n\n &.invalid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n"])), NoteLabel, COLORS.correct_500, NoteIcon, COLORS.correct_500, NoteLabel, COLORS.critical_500, NoteIcon, COLORS.critical_500);
61
- var InputContainer = styled.div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n min-width: ", ";\n height: ", ";\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ", ";\n }\n"])), function (props) {
52
+ var NoteIcon = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n svg {\n height: 16px;\n }\n"])));
53
+ var NoteContainer = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n\n &.invalid {\n ", " {\n color: ", ";\n }\n\n ", " {\n svg path {\n fill: ", ";\n }\n }\n }\n"])), NoteLabel, COLORS.correct_500, NoteIcon, COLORS.correct_500, NoteLabel, COLORS.critical_500, NoteIcon, COLORS.critical_500);
54
+ var InputContainer = styled.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n min-width: ", ";\n height: ", ";\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ", ";\n }\n"])), function (props) {
62
55
  return props.type === 'NumberField' ? '160px' : '144px';
63
56
  }, function (props) {
64
57
  return props.size === Size.Small ? '48px' : '56px';
65
58
  }, Z_INDEXES.focus);
66
- var LeftOperator = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n left: 0;\n"])), function (props) {
59
+ var LeftOperator = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n left: 0;\n"])), function (props) {
67
60
  return props.size === Size.Small ? '0' : '4px';
68
61
  });
69
- var RightOperator = styled.div(_templateObject13 || (_templateObject13 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n right: 0;\n"])), function (props) {
62
+ var RightOperator = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n position: absolute;\n top: ", ";\n right: 0;\n"])), function (props) {
70
63
  return props.size === Size.Small ? '0' : '4px';
71
64
  });
72
65
  var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
73
- var _props$size = props.size,
74
- size = _props$size === void 0 ? Size.Small : _props$size,
75
- label = props.label,
66
+ var _props$type = props.type,
67
+ type = _props$type === void 0 ? 'NumberField' : _props$type,
68
+ _props$size = props.size,
69
+ size = _props$size === void 0 ? Size.Medium : _props$size,
76
70
  note = props.note,
77
71
  noteIcon = props.noteIcon,
78
72
  required = props.required,
@@ -88,7 +82,6 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
88
82
  state = props.state,
89
83
  value = props.value,
90
84
  placeholder = props.placeholder,
91
- type = props.type,
92
85
  onChange = props.onChange,
93
86
  className = props.className,
94
87
  rest = _objectWithoutProperties(props, _excluded);
@@ -99,13 +92,16 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
99
92
  setUserInput = _React$useState2[1];
100
93
 
101
94
  var elementRef = useFocusVisibleRef();
95
+ React.useEffect(function () {
96
+ return setUserInput("".concat(value !== null && value !== void 0 ? value : ''));
97
+ }, [value]);
102
98
  React.useImperativeHandle(ref, function () {
103
99
  return elementRef.current;
104
100
  }, [elementRef]);
105
101
 
106
102
  var setVal = function setVal(e) {
107
103
  setUserInput(e);
108
- onChange && onChange(e);
104
+ onChange && onChange(+e);
109
105
  };
110
106
 
111
107
  var handleKeyPress = function handleKeyPress(e) {
@@ -273,18 +269,7 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
273
269
  };
274
270
 
275
271
  return /*#__PURE__*/_jsxs(Container, {
276
- children: [/*#__PURE__*/_jsxs(LabelContainer, {
277
- size: size,
278
- children: [required && /*#__PURE__*/_jsx(LabelIcon, {
279
- size: size,
280
- "data-testid": 'labelIcon',
281
- children: /*#__PURE__*/_jsx(SystemIcons.Asterisk, {
282
- color: COLORS.critical_500
283
- })
284
- }), /*#__PURE__*/_jsx(LabelText, {
285
- children: label
286
- })]
287
- }), /*#__PURE__*/_jsxs(InputContainer, {
272
+ children: [/*#__PURE__*/_jsxs(InputContainer, {
288
273
  type: type,
289
274
  size: size,
290
275
  tabIndex: -1,
@@ -303,6 +288,7 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
303
288
  onKeyDown: function onKeyDown(e) {
304
289
  return handleKeyPress(e);
305
290
  },
291
+ required: required,
306
292
  className: 'numberField'.concat(disabled ? ' disabled' : '').concat(readOnly ? ' readOnly' : '').concat(state ? " ".concat(state) : '').concat(className ? " ".concat(className) : '')
307
293
  }, rest)), type === 'NumberField' && renderNumberFieldElements(), type === 'NumberInput' && renderNumberInputElements()]
308
294
  }), note && /*#__PURE__*/_jsxs(NoteContainer, {
@@ -319,14 +305,13 @@ var NumberField = /*#__PURE__*/React.forwardRef(function (props, ref) {
319
305
  NumberField.propTypes = {
320
306
  prefix: _pt.string,
321
307
  interval: _pt.number,
322
- label: _pt.string.isRequired,
323
- note: _pt.string,
324
- noteIcon: _pt.node,
325
308
  minValue: _pt.number,
326
309
  maxValue: _pt.number,
327
310
  allowNegative: _pt.bool,
328
311
  decimalPrecision: _pt.number,
329
- type: _pt.oneOf(['NumberField', 'NumberInput']).isRequired,
312
+ note: _pt.string,
313
+ noteIcon: _pt.node,
314
+ type: _pt.oneOf(['NumberField', 'NumberInput']),
330
315
  value: _pt.number,
331
316
  onChange: _pt.func
332
317
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/NumberField.tsx"],"names":["React","styled","IconButton","useFocusVisibleRef","SystemIcons","COLORS","focusStyles","Z_INDEXES","ComponentMStyling","ComponentSStyling","ComponentTextStyle","ComponentXXSStyling","ComponentXSStyling","Size","Container","div","LabelContainer","neutral_500","props","size","Small","Regular","LabelText","LabelIcon","PrefixContainer","disabled","neutral_300","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","primary_700","neutral_100","correct_400","critical_400","NoteLabel","NoteIcon","NoteContainer","correct_500","critical_500","InputContainer","focus","LeftOperator","RightOperator","NumberField","forwardRef","ref","label","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","rest","useState","toString","userInput","setUserInput","elementRef","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {IconButton} from '../Button';\nimport {useFocusVisibleRef} from '../common';\nimport {SystemIcons} from '../icons';\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\nimport {\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXXSStyling,\n ComponentXSStyling\n} from '../styles/typography';\nimport {Size, States} from '../types';\n\nconst Container = styled.div``;\n\nconst LabelContainer = styled.div<{ size: Size }>`\n margin-bottom: 4px;\n color: ${COLORS.neutral_500};\n display: flex;\n ${props => props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null)}\n`;\n\nconst LabelText = styled.div``;\n\nconst LabelIcon = styled.div<{ size: Size }>`\n margin-right: ${props => props.size === Size.Small ? '6px' : '8px'};\n\n svg {\n height: 9px;\n width: 9px;\n }\n`;\n\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\n position: absolute;\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\n`;\n\nconst OperatorWrapper = styled.div<{ size: Size }>`\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ${COLORS.neutral_200};\n width: 1px;\n }\n`;\n\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\n outline: none;\n color: ${COLORS.neutral_500};\n\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n ${props => props.type === 'NumberField' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\n padding-left: ${props.hasPrefix ? '30px' : ''};\n ` : ''}\n ${props => props.type === 'NumberInput' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\n ` : ''}\n &::placeholder {\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\n }\n\n &.focus-visible {\n ${focusStyles}\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\n cursor: not-allowed;\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n\n &.readOnly {\n background: ${COLORS.neutral_100};\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\n cursor: not-allowed;\n background: ${COLORS.neutral_100};\n cursor: not-allowed;\n pointer-events: none;\n color: ${COLORS.neutral_500};\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\n }\n`;\n\nconst NoteLabel = styled.div<{ size: Size }>`\n color: ${COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null)}\n`;\n\nconst NoteIcon = styled.div`\n svg {\n height: 16px;\n }\n`;\n\nconst NoteContainer = styled.div`\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ${NoteLabel} {\n color: ${COLORS.correct_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.correct_500};\n }\n }\n }\n\n &.invalid {\n ${NoteLabel} {\n color: ${COLORS.critical_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.critical_500};\n }\n }\n }\n`;\n\nconst InputContainer = styled.div<{ size: Size, type: string }>`\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst LeftOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n left: 0;\n`;\n\nconst RightOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n right: 0;\n`;\n\ntype NumberFieldProps =\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\n & {\n size?: Size.Small | Size.Medium;\n prefix?: string;\n interval?: number;\n label: string;\n note?: string;\n noteIcon?: React.ReactNode;\n\n minValue?: number;\n maxValue?: number;\n allowNegative?: boolean;\n decimalPrecision?: number;\n\n state?: States.Valid | States.Invalid;\n\n type: 'NumberField' | 'NumberInput';\n value?: number;\n onChange?: (e: string) => void;\n}\n\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\n const {\n size = Size.Small,\n label,\n note,\n noteIcon,\n required,\n prefix,\n interval = 1,\n minValue,\n maxValue,\n allowNegative,\n decimalPrecision,\n disabled,\n readOnly,\n state,\n value,\n placeholder,\n type,\n onChange,\n className,\n ...rest\n } = props;\n\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\n\n const elementRef = useFocusVisibleRef();\n\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\n\n const setVal = (e: string) => {\n setUserInput(e);\n onChange && onChange(e);\n }\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case 'ArrowUp':\n addInterval();\n break;\n case 'ArrowDown':\n subtractInterval();\n break;\n default:\n break;\n }\n }\n\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\n\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n\n let val = e.target.value;\n if (val !== '') {\n if (allowNegative && decimalPrecision) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else {\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\n setVal(val);\n\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\n setVal(val);\n\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\n setVal(val);\n }\n } else if (allowNegative) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\n setVal(val);\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\n if (decimalPrecisionRegex!.test(val))\n setVal(val);\n else if (decimalFormationRegEx.test(val))\n setVal(val);\n else if (!val.includes('.') && simpleRegex.test(val))\n setVal(val);\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\n setVal(val);\n }\n }\n\n if (val === '')\n setVal('');\n }\n\n const isInRange = (value: string, isDecimal: boolean): boolean => {\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\n if (minValue && minValue > x)\n return false;\n else if (maxValue && maxValue < x)\n return false;\n else\n return true;\n }\n\n const addInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val += 1;\n\n if (maxValue && maxValue >= val)\n setVal(val.toString());\n else if (!maxValue)\n setVal(val.toString());\n }\n }\n\n const subtractInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val -= 1;\n\n if ((minValue && minValue <= val) || !minValue) {\n if (allowNegative || val >= 0) {\n setVal(val.toString());\n }\n }\n }\n }\n\n const isLocked = (input: string, operator: string): boolean => {\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\n val = isNaN(val) && userInput === '' ? 0 : val;\n let operatorState = false;\n if (operator === 'add' && maxValue)\n operatorState = val >= maxValue;\n\n if (operator === 'subtract' && minValue)\n operatorState = val <= minValue;\n\n if (operator === 'subtract' && !minValue && !allowNegative)\n operatorState = val <= 0;\n\n return operatorState;\n }\n\n const renderNumberFieldElements = () => {\n return (\n <>\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\n {prefix}\n </PrefixContainer>}\n\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n <div className=\"divider\"></div>\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </OperatorWrapper>\n </>)\n }\n\n const renderNumberInputElements = () => {\n return (\n <>\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n </LeftOperator>\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </RightOperator>\n </>)\n }\n\n return (\n <Container>\n <LabelContainer size={size}>\n {required && <LabelIcon size={size} data-testid={'labelIcon'}>\n <SystemIcons.Asterisk color={COLORS.critical_500}/>\n </LabelIcon>\n }\n <LabelText>\n {label}\n </LabelText>\n </LabelContainer>\n\n <InputContainer type={type} size={size} tabIndex={-1}>\n <NumberInput type={type}\n data-testid={'numberInput'}\n fieldSize={size}\n hasPrefix={!!prefix}\n placeholder={placeholder ? placeholder : 'Enter number'}\n value={userInput}\n ref={elementRef}\n tabIndex={(disabled || readOnly) ? -1 : 0}\n onChange={e => handleInput(e)}\n onKeyDown={e => handleKeyPress(e)}\n className={'numberField'.concat(disabled ? ' disabled' : '')\n .concat(readOnly ? ' readOnly' : '')\n .concat(state ? ` ${state}` : '')\n .concat(className ? ` ${className}` : '')}\n {...rest}/>\n\n {type === 'NumberField' && renderNumberFieldElements()}\n {type === 'NumberInput' && renderNumberInputElements()}\n </InputContainer>\n\n {note && <NoteContainer className={'noteField'.concat(state ? ` ${state}` : '')}>\n <NoteIcon>\n {noteIcon}\n </NoteIcon>\n <NoteLabel size={size}>\n {note}\n </NoteLabel>\n </NoteContainer>\n }\n </Container>\n );\n }\n )\n;\n\nexport default NumberField;\n"],"file":"NumberField.js"}
1
+ {"version":3,"sources":["../../src/InputFields/NumberField.tsx"],"names":["React","styled","IconButton","useFocusVisibleRef","SystemIcons","COLORS","focusStyles","Z_INDEXES","ComponentMStyling","ComponentSStyling","ComponentTextStyle","ComponentXXSStyling","ComponentXSStyling","Size","Container","div","PrefixContainer","props","size","Small","disabled","neutral_300","neutral_500","Regular","OperatorWrapper","Medium","neutral_200","NumberInput","input","neutral_400","fieldSize","black","type","hasPrefix","Italic","primary_800","primary_700","neutral_100","correct_400","critical_400","NoteLabel","NoteIcon","NoteContainer","correct_500","critical_500","InputContainer","focus","LeftOperator","RightOperator","NumberField","forwardRef","ref","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","readOnly","state","value","placeholder","onChange","className","rest","useState","toString","userInput","setUserInput","elementRef","useEffect","useImperativeHandle","current","setVal","e","handleKeyPress","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","undefined","negativeAndDecimalRegex","val","target","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","renderNumberFieldElements","renderNumberInputElements","concat"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {IconButton} from '../Button';\nimport {useFocusVisibleRef} from '../common';\nimport {SystemIcons} from '../icons';\nimport {COLORS, focusStyles, Z_INDEXES} from '../styles';\nimport {\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXXSStyling,\n ComponentXSStyling\n} from '../styles/typography';\nimport {Size, States} from '../types';\n\nconst Container = styled.div``;\n\nconst PrefixContainer = styled.div<{ size: Size, disabled: boolean }>`\n width: ${props => props.size === Size.Small ? '10px' : '11px'};\n height: ${props => props.size === Size.Small ? '20px' : '24px'};\n color: ${props => props.disabled ? COLORS.neutral_300 : COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null)}\n position: absolute;\n padding: ${props => props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px'};\n`;\n\nconst OperatorWrapper = styled.div<{ size: Size }>`\n position: absolute;\n top: 0;\n right: 0;\n display: flex;\n margin: ${props => props.size === Size.Medium ? '4px 0' : ''};\n\n svg {\n height: 14px;\n width: 14px;\n }\n\n .divider {\n margin: 16px 0;\n background: ${COLORS.neutral_200};\n width: 1px;\n }\n`;\n\nconst NumberInput = styled.input<{ fieldSize: Size, hasPrefix: boolean, type: string }>`\n width: 100%;\n border: none;\n border-radius: 4px;\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\n outline: none;\n color: ${COLORS.neutral_500};\n\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, COLORS.black) : ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n ${props => props.type === 'NumberField' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 97px 14px 16px' : '16px 97px 16px 16px'};\n padding-left: ${props.hasPrefix ? '30px' : ''};\n ` : ''}\n ${props => props.type === 'NumberInput' ? `\n padding: ${props.fieldSize === Size.Small ? '14px 48px' : '16px 48px'};\n ` : ''}\n &::placeholder {\n ${props => props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null)}\n }\n\n &:focus:not(.focus-visible):not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\n }\n\n &.focus-visible {\n ${focusStyles}\n }\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_700};\n }\n\n &.disabled {\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_100};\n cursor: not-allowed;\n color: ${COLORS.neutral_300};\n pointer-events: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n\n &.readOnly {\n background: ${COLORS.neutral_100};\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_300};\n cursor: not-allowed;\n background: ${COLORS.neutral_100};\n pointer-events: none;\n color: ${COLORS.neutral_500};\n }\n\n &.valid {\n box-shadow: inset 0 0 0 2px ${COLORS.correct_400};\n }\n\n &.invalid {\n box-shadow: inset 0 0 0 2px ${COLORS.critical_400};\n }\n`;\n\nconst NoteLabel = styled.div<{ size: Size }>`\n color: ${COLORS.neutral_500};\n ${props => props.size === Size.Small ? ComponentXXSStyling(ComponentTextStyle.Regular, null) : ComponentXSStyling(ComponentTextStyle.Regular, null)}\n`;\n\nconst NoteIcon = styled.div`\n svg {\n height: 16px;\n }\n`;\n\nconst NoteContainer = styled.div`\n display: flex;\n margin-top: 5px;\n\n &.valid {\n ${NoteLabel} {\n color: ${COLORS.correct_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.correct_500};\n }\n }\n }\n\n &.invalid {\n ${NoteLabel} {\n color: ${COLORS.critical_500};\n }\n\n ${NoteIcon} {\n svg path {\n fill: ${COLORS.critical_500};\n }\n }\n }\n`;\n\nconst InputContainer = styled.div<{ size: Size, type: string }>`\n min-width: ${props => props.type === 'NumberField' ? '160px' : '144px'};\n height: ${props => props.size === Size.Small ? '48px' : '56px'};\n display: flex;\n position: relative;\n\n input.focus-visible ~ div.operator {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst LeftOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n left: 0;\n`;\n\nconst RightOperator = styled.div<{ size: Size }>`\n position: absolute;\n top: ${props => props.size === Size.Small ? '0' : '4px'};\n right: 0;\n`;\n\ntype NumberFieldProps =\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'onKeyDown' | 'onClick' | 'tabIndex' | 'size' | 'value' | 'prefix' | 'min' | 'max'>\n & {\n size?: Size.Small | Size.Medium;\n prefix?: string;\n interval?: number;\n\n minValue?: number;\n maxValue?: number;\n allowNegative?: boolean;\n decimalPrecision?: number;\n\n state?: States.Valid | States.Invalid;\n note?: string;\n noteIcon?: React.ReactNode;\n\n type?: 'NumberField' | 'NumberInput';\n value?: number;\n onChange?: (e: number) => void;\n}\n\nconst NumberField = React.forwardRef<HTMLInputElement, NumberFieldProps>((props, ref) => {\n const {\n type = 'NumberField',\n size = Size.Medium,\n note,\n noteIcon,\n required,\n prefix,\n interval = 1,\n minValue,\n maxValue,\n allowNegative,\n decimalPrecision,\n disabled,\n readOnly,\n state,\n value,\n placeholder,\n onChange,\n className,\n ...rest\n } = props;\n\n const [userInput, setUserInput] = React.useState(value ? value.toString() : '');\n\n const elementRef = useFocusVisibleRef();\n\n React.useEffect(() => setUserInput(`${value ?? ''}`), [value]);\n\n React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\n\n const setVal = (e: string) => {\n setUserInput(e);\n onChange && onChange(+e);\n }\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case 'ArrowUp':\n addInterval();\n break;\n case 'ArrowDown':\n subtractInterval();\n break;\n default:\n break;\n }\n }\n\n const handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n let simpleRegex = new RegExp(/^[0-9]\\d*$/);\n let decimalFormationRegEx = new RegExp(/^[0-9]\\d*\\.$/);\n let negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\\d*\\.$/);\n\n let allowNegativeRegex = new RegExp(/^[-][0-9]\\d*$/);\n let decimalPrecisionRegex = decimalPrecision ? new RegExp(`^[0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n let negativeAndDecimalRegex = (decimalPrecision && allowNegative) ? new RegExp(`^[-][0-9]\\\\d*\\\\.[0-9]\\\\d{0,${decimalPrecision-1}}$`) : undefined;\n\n let val = e.target.value;\n if (val !== '') {\n if (allowNegative && decimalPrecision) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else {\n if ((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val, true))\n setVal(val);\n\n else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true))\n setVal(val);\n\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true))\n setVal(val);\n }\n } else if (allowNegative) {\n if (val.length === 1 && val.charAt(0) === '-')\n setVal(val);\n else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false))\n setVal(val);\n } else if (decimalPrecision && (val.indexOf('.') === val.lastIndexOf('.')) && isInRange(val, true)) {\n if (decimalPrecisionRegex!.test(val))\n setVal(val);\n else if (decimalFormationRegEx.test(val))\n setVal(val);\n else if (!val.includes('.') && simpleRegex.test(val))\n setVal(val);\n } else if (simpleRegex.test(val) && isInRange(val, false)) {\n setVal(val);\n }\n }\n\n if (val === '')\n setVal('');\n }\n\n const isInRange = (value: string, isDecimal: boolean): boolean => {\n let x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);\n if (minValue && minValue > x)\n return false;\n else if (maxValue && maxValue < x)\n return false;\n else\n return true;\n }\n\n const addInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (minValue ? minValue - 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val + interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val += 1;\n\n if (maxValue && maxValue >= val)\n setVal(val.toString());\n else if (!maxValue)\n setVal(val.toString());\n }\n }\n\n const subtractInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (maxValue ? maxValue + 1 : 0) : val;\n if (!isNaN(val)) {\n if (decimalPrecision)\n val = Math.round((val - interval) * Math.pow(10, decimalPrecision!)) / Math.pow(10, decimalPrecision!);\n else\n val -= 1;\n\n if ((minValue && minValue <= val) || !minValue) {\n if (allowNegative || val >= 0) {\n setVal(val.toString());\n }\n }\n }\n }\n\n const isLocked = (input: string, operator: string): boolean => {\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\n val = isNaN(val) && userInput === '' ? 0 : val;\n let operatorState = false;\n if (operator === 'add' && maxValue)\n operatorState = val >= maxValue;\n\n if (operator === 'subtract' && minValue)\n operatorState = val <= minValue;\n\n if (operator === 'subtract' && !minValue && !allowNegative)\n operatorState = val <= 0;\n\n return operatorState;\n }\n\n const renderNumberFieldElements = () => {\n return (\n <>\n {prefix && <PrefixContainer size={size} disabled={!!disabled} className=\"operator\">\n {prefix}\n </PrefixContainer>}\n\n <OperatorWrapper data-testid={'operators'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n <div className=\"divider\"></div>\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </OperatorWrapper>\n </>)\n }\n\n const renderNumberInputElements = () => {\n return (\n <>\n <LeftOperator data-testid={'leftOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => subtractInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'subtract')}>\n <SystemIcons.Minus size=\"14px\"/>\n </IconButton>\n </LeftOperator>\n <RightOperator data-testid={'rightOperator'} size={size} className=\"operator\">\n <IconButton tabIndex={0} variant=\"secondary\" shape=\"square\" action={() => addInterval()}\n useTransparentBackground disabled={disabled || readOnly || isLocked(userInput, 'add')}>\n <SystemIcons.Plus size=\"14px\"/>\n </IconButton>\n </RightOperator>\n </>)\n }\n\n return (\n <Container>\n <InputContainer type={type} size={size} tabIndex={-1}>\n <NumberInput type={type}\n data-testid={'numberInput'}\n fieldSize={size}\n hasPrefix={!!prefix}\n placeholder={placeholder ? placeholder : 'Enter number'}\n value={userInput}\n ref={elementRef}\n tabIndex={(disabled || readOnly) ? -1 : 0}\n onChange={e => handleInput(e)}\n onKeyDown={e => handleKeyPress(e)}\n required={required}\n className={'numberField'.concat(disabled ? ' disabled' : '')\n .concat(readOnly ? ' readOnly' : '')\n .concat(state ? ` ${state}` : '')\n .concat(className ? ` ${className}` : '')}\n {...rest}/>\n\n {type === 'NumberField' && renderNumberFieldElements()}\n {type === 'NumberInput' && renderNumberInputElements()}\n </InputContainer>\n\n {note && <NoteContainer className={'noteField'.concat(state ? ` ${state}` : '')}>\n <NoteIcon>\n {noteIcon}\n </NoteIcon>\n <NoteLabel size={size}>\n {note}\n </NoteLabel>\n </NoteContainer>\n }\n </Container>\n );\n }\n )\n;\n\nexport default NumberField;\n"],"file":"NumberField.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laerdal/life-react-components",
3
- "version": "1.11.0-dev.5.full",
3
+ "version": "1.11.0-dev.7.full",
4
4
  "private": false,
5
5
  "author": "Thomas Kalve <thomas.kalve@laerdal.com>",
6
6
  "contributors": [