@laerdal/life-react-components 1.8.0-dev.1.full → 1.8.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/Breadcrumb/Breadcrumb.cjs +1 -0
  2. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  3. package/dist/Breadcrumb/Breadcrumb.js +1 -0
  4. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  5. package/dist/ChipsInput/ChipDropdownInput.cjs +1 -2
  6. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  7. package/dist/ChipsInput/ChipDropdownInput.d.ts +0 -1
  8. package/dist/ChipsInput/ChipDropdownInput.js +1 -2
  9. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  10. package/dist/Dropdown/CommonStyling.cjs +21 -9
  11. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  12. package/dist/Dropdown/CommonStyling.d.ts +5 -1
  13. package/dist/Dropdown/CommonStyling.js +7 -7
  14. package/dist/Dropdown/CommonStyling.js.map +1 -1
  15. package/dist/Dropdown/DropdownButton.cjs +76 -18
  16. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  17. package/dist/Dropdown/DropdownButton.d.ts +1 -1
  18. package/dist/Dropdown/DropdownButton.js +73 -19
  19. package/dist/Dropdown/DropdownButton.js.map +1 -1
  20. package/dist/Dropdown/DropdownButtonTypes.d.ts +16 -5
  21. package/dist/Dropdown/DropdownFilter.cjs +69 -139
  22. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  23. package/dist/Dropdown/DropdownFilter.d.ts +8 -14
  24. package/dist/Dropdown/DropdownFilter.js +69 -139
  25. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  26. package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -1
  27. package/dist/GlobalNavigationBar/MainMenu.js.map +1 -1
  28. package/dist/InputFields/NumberField.cjs +276 -0
  29. package/dist/InputFields/NumberField.cjs.map +1 -0
  30. package/dist/InputFields/NumberField.d.ts +21 -0
  31. package/dist/InputFields/NumberField.js +240 -0
  32. package/dist/InputFields/NumberField.js.map +1 -0
  33. package/dist/InputFields/index.cjs +8 -0
  34. package/dist/InputFields/index.cjs.map +1 -1
  35. package/dist/InputFields/index.d.ts +2 -1
  36. package/dist/InputFields/index.js +2 -1
  37. package/dist/InputFields/index.js.map +1 -1
  38. package/dist/List/ListRow.cjs +1 -0
  39. package/dist/List/ListRow.cjs.map +1 -1
  40. package/dist/List/ListRow.js +1 -0
  41. package/dist/List/ListRow.js.map +1 -1
  42. package/dist/Table/TableFooter.cjs +12 -14
  43. package/dist/Table/TableFooter.cjs.map +1 -1
  44. package/dist/Table/TableFooter.js +13 -15
  45. package/dist/Table/TableFooter.js.map +1 -1
  46. package/dist/Table/TableHeaders.cjs +1 -0
  47. package/dist/Table/TableHeaders.cjs.map +1 -1
  48. package/dist/Table/TableHeaders.js +1 -0
  49. package/dist/Table/TableHeaders.js.map +1 -1
  50. package/package.json +1 -1
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var React = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
21
+
22
+ var _Button = require("../Button");
23
+
24
+ var _icons = require("../icons");
25
+
26
+ var _styles = require("../styles");
27
+
28
+ var _typography = require("../styles/typography");
29
+
30
+ var _types = require("../types");
31
+
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
35
+
36
+ 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); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)([""])));
41
+
42
+ 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, (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, null));
43
+
44
+ var LabelText = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)([""])));
45
+
46
+ var LabelIcon = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: ", ";\n svg {\n height: 9px;\n width: 9px;\n }\n"])), function (props) {
47
+ return props.size === _types.Size.Small ? '6px' : '8px';
48
+ });
49
+
50
+ var InputWrapper = _styledComponents.default.div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n margin: ", ";\n display: flex;\n flex-grow: 1;\n"])), function (props) {
51
+ return props.size === _types.Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
52
+ });
53
+
54
+ var PrefixContainer = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: 4px;\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n"])), function (props) {
55
+ return props.size === _types.Size.Small ? '10px' : '11px';
56
+ }, function (props) {
57
+ return props.size === _types.Size.Small ? '20px' : '24px';
58
+ }, _styles.COLORS.neutral_500, function (props) {
59
+ return props.size === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Regular, null) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Regular, null);
60
+ });
61
+
62
+ var OperatorWrapper = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n margin:", ";\n svg {\n height: 14px;\n width: 14px;\n }\n .divider {\n border: 1px solid ", ";\n margin: 16px 0;\n background: ", ";\n }\n"])), function (props) {
63
+ return props.size === _types.Size.Medium ? '4px 0' : '';
64
+ }, _styles.COLORS.neutral_200, _styles.COLORS.neutral_200);
65
+
66
+ var NumberInput = _styledComponents.default.input(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n height: ", ";\n border: none;\n color: ", ";\n ", "\n\n &:hover, &:focus, &:active {\n outline: none;\n }\n"])), function (props) {
67
+ return props.fieldSize === _types.Size.Small ? '20px' : '24px';
68
+ }, _styles.COLORS.neutral_500, function (props) {
69
+ return props.fieldSize === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Italic, null) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Italic, null);
70
+ });
71
+
72
+ var NoteLabel = _styledComponents.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", " \n"])), _styles.COLORS.neutral_500, (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, null));
73
+
74
+ var NoteIcon = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n svg {\n height: 16px;\n }\n"])));
75
+
76
+ var NoteContainer = _styledComponents.default.div(_templateObject11 || (_templateObject11 = (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);
77
+
78
+ var InputContainer = _styledComponents.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n min-width: 280px;\n height: ", ";\n display: flex; \n border: 1px solid ", ";\n border-radius: 4px;\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ", ";\n }\n\n &:focus-within:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ", ";\n }\n\n &:active:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ", ";\n }\n\n &.disabled {\n border: 1px solid ", ";\n cursor: not-allowed;\n \n ", "{\n color: ", ";\n }\n\n ", "{\n color: ", ";\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.readOnly {\n background: ", ";\n border: 1px solid ", ";\n cursor: not-allowed;\n\n ", "{\n background: ", ";\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.valid {\n border: 2px solid ", ";\n }\n\n &.invalid {\n border: 2px solid ", ";\n }\n"])), function (props) {
79
+ return props.size === _types.Size.Small ? '48px' : '56px';
80
+ }, _styles.COLORS.neutral_400, _styles.COLORS.primary_700, _styles.COLORS.primary_800, _styles.COLORS.primary_800, _styles.COLORS.neutral_100, PrefixContainer, _styles.COLORS.neutral_300, NumberInput, _styles.COLORS.neutral_300, _styles.COLORS.neutral_100, _styles.COLORS.neutral_300, NumberInput, _styles.COLORS.neutral_100, _styles.COLORS.correct_400, _styles.COLORS.critical_400);
81
+
82
+ var NumberField = function NumberField(_ref) {
83
+ var _ref$size = _ref.size,
84
+ size = _ref$size === void 0 ? _types.Size.Small : _ref$size,
85
+ label = _ref.label,
86
+ note = _ref.note,
87
+ noteIcon = _ref.noteIcon,
88
+ required = _ref.required,
89
+ prefix = _ref.prefix,
90
+ _ref$interval = _ref.interval,
91
+ interval = _ref$interval === void 0 ? 1 : _ref$interval,
92
+ minValue = _ref.minValue,
93
+ maxValue = _ref.maxValue,
94
+ allowNegative = _ref.allowNegative,
95
+ decimalPrecision = _ref.decimalPrecision,
96
+ _ref$disabled = _ref.disabled,
97
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
98
+ _ref$readOnly = _ref.readOnly,
99
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
100
+ valid = _ref.valid,
101
+ defaultVal = _ref.defaultVal;
102
+
103
+ var _React$useState = React.useState(defaultVal ? defaultVal.toString() : ''),
104
+ _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
105
+ userInput = _React$useState2[0],
106
+ setUserInput = _React$useState2[1];
107
+
108
+ var fieldState = valid !== undefined ? valid === true ? 'valid' : 'invalid' : undefined;
109
+
110
+ var handleKeyPress = function handleKeyPress(e) {
111
+ switch (e.key) {
112
+ case 'ArrowUp':
113
+ addInterval();
114
+ break;
115
+
116
+ case 'ArrowDown':
117
+ subtractInterval();
118
+ break;
119
+
120
+ default:
121
+ break;
122
+ }
123
+ };
124
+
125
+ var handleInput = function handleInput(e) {
126
+ e.preventDefault();
127
+ var simpleRegex = new RegExp(/^[0-9]\d*$/);
128
+ var decimalFormationRegEx = new RegExp(/^[0-9]\d*\.$/);
129
+ var negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\d*\.$/);
130
+ var allowNegativeRegex = new RegExp(/^[-][0-9]\d*$/);
131
+ var decimalPrecisionRegex = decimalPrecision ? new RegExp("^[0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
132
+ var negativeAndDecimalRegex = decimalPrecision && allowNegative ? new RegExp("^[-][0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
133
+ var val = e.target.value;
134
+
135
+ if (val !== '') {
136
+ if (allowNegative && decimalPrecision) {
137
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else {
138
+ if ((negativeAndDecimalRegex.test(val) || decimalPrecisionRegex.test(val)) && isInRange(val, true)) setUserInput(val);else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true)) setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true)) setUserInput(val);
139
+ }
140
+ } else if (allowNegative) {
141
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false)) setUserInput(val);
142
+ } else if (decimalPrecision && val.indexOf('.') === val.lastIndexOf('.') && isInRange(val, true)) {
143
+ if (decimalPrecisionRegex.test(val)) setUserInput(val);else if (decimalFormationRegEx.test(val)) setUserInput(val);else if (!val.includes('.') && simpleRegex.test(val)) setUserInput(val);
144
+ } else if (simpleRegex.test(val) && isInRange(val, false)) {
145
+ setUserInput(val);
146
+ }
147
+ }
148
+
149
+ if (val === '') setUserInput('');
150
+ };
151
+
152
+ var isInRange = function isInRange(value, isDecimal) {
153
+ var x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);
154
+ if (minValue && minValue > x) return false;else if (maxValue && maxValue < x) return false;else return true;
155
+ };
156
+
157
+ var addInterval = function addInterval() {
158
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
159
+ val = isNaN(val) && userInput === '' ? minValue !== null && minValue !== void 0 ? minValue : 0 : val;
160
+
161
+ if (!isNaN(val)) {
162
+ if (decimalPrecision) val = Math.round((val + interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val += 1;
163
+ if (maxValue && maxValue >= val) setUserInput(val.toString());else if (!maxValue) setUserInput(val.toString());
164
+ }
165
+ };
166
+
167
+ var subtractInterval = function subtractInterval() {
168
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
169
+ val = isNaN(val) && userInput === '' ? maxValue !== null && maxValue !== void 0 ? maxValue : 0 : val;
170
+
171
+ if (!isNaN(val)) {
172
+ if (decimalPrecision) val = Math.round((val - interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val -= 1;
173
+ if (minValue && minValue <= val) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;else if (!minValue) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;
174
+ }
175
+ };
176
+
177
+ var isLocked = function isLocked(input, operator) {
178
+ var val = decimalPrecision ? parseFloat(input) : parseInt(input);
179
+ var operatorState = false;
180
+ if (operator === 'add' && maxValue) operatorState = val < maxValue ? false : true;
181
+ if (operator === 'subtract' && minValue) operatorState = val > minValue ? false : true;
182
+ return operatorState;
183
+ };
184
+
185
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
186
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(LabelContainer, {
187
+ children: [required && /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelIcon, {
188
+ size: size,
189
+ "data-testid": 'labelIcon',
190
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Asterisk, {
191
+ color: _styles.COLORS.critical_500
192
+ })
193
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelText, {
194
+ children: label
195
+ })]
196
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputContainer, {
197
+ size: size,
198
+ "data-testid": 'inputContainer',
199
+ tabIndex: -1,
200
+ className: 'numberField'.concat(disabled ? ' disabled' : '').concat(readOnly ? ' readOnly' : '').concat(fieldState ? " ".concat(fieldState) : ''),
201
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(InputWrapper, {
202
+ size: size,
203
+ children: [prefix && /*#__PURE__*/(0, _jsxRuntime.jsx)(PrefixContainer, {
204
+ size: size,
205
+ children: prefix
206
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(NumberInput, {
207
+ fieldSize: size,
208
+ placeholder: "Enter number",
209
+ value: userInput,
210
+ tabIndex: disabled || readOnly ? -1 : 0,
211
+ onChange: function onChange(e) {
212
+ return handleInput(e);
213
+ },
214
+ onKeyDown: function onKeyDown(e) {
215
+ return handleKeyPress(e);
216
+ }
217
+ })]
218
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(OperatorWrapper, {
219
+ "data-testid": 'operators',
220
+ size: size,
221
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
222
+ variant: "secondary",
223
+ shape: "square",
224
+ action: function action() {
225
+ return subtractInterval();
226
+ },
227
+ useTransparentBackground: true,
228
+ disabled: disabled || readOnly || isLocked(userInput, 'subtract'),
229
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Minus, {
230
+ size: "14px"
231
+ })
232
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
233
+ className: "divider"
234
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
235
+ variant: "secondary",
236
+ shape: "square",
237
+ action: function action() {
238
+ return addInterval();
239
+ },
240
+ useTransparentBackground: true,
241
+ disabled: disabled || readOnly || isLocked(userInput, 'add'),
242
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Plus, {
243
+ size: "14px"
244
+ })
245
+ })]
246
+ })]
247
+ }), note && /*#__PURE__*/(0, _jsxRuntime.jsxs)(NoteContainer, {
248
+ className: 'noteField'.concat(fieldState ? " ".concat(fieldState) : ''),
249
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(NoteIcon, {
250
+ children: noteIcon
251
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(NoteLabel, {
252
+ children: note
253
+ })]
254
+ })]
255
+ });
256
+ };
257
+
258
+ NumberField.propTypes = {
259
+ prefix: _propTypes.default.string,
260
+ interval: _propTypes.default.number,
261
+ label: _propTypes.default.string.isRequired,
262
+ note: _propTypes.default.string,
263
+ noteIcon: _propTypes.default.node,
264
+ required: _propTypes.default.bool,
265
+ minValue: _propTypes.default.number,
266
+ maxValue: _propTypes.default.number,
267
+ allowNegative: _propTypes.default.bool,
268
+ decimalPrecision: _propTypes.default.number,
269
+ disabled: _propTypes.default.bool,
270
+ readOnly: _propTypes.default.bool,
271
+ valid: _propTypes.default.bool,
272
+ defaultVal: _propTypes.default.number
273
+ };
274
+ var _default = NumberField;
275
+ exports.default = _default;
276
+ //# sourceMappingURL=NumberField.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/InputFields/NumberField.tsx"],"names":["Container","styled","div","LabelContainer","COLORS","neutral_500","ComponentTextStyle","Regular","LabelText","LabelIcon","props","size","Size","Small","InputWrapper","PrefixContainer","OperatorWrapper","Medium","neutral_200","NumberInput","input","fieldSize","Italic","NoteLabel","NoteIcon","NoteContainer","correct_500","critical_500","InputContainer","neutral_400","primary_700","primary_800","neutral_100","neutral_300","correct_400","critical_400","NumberField","label","note","noteIcon","required","prefix","interval","minValue","maxValue","allowNegative","decimalPrecision","disabled","readOnly","valid","defaultVal","React","useState","toString","userInput","setUserInput","fieldState","undefined","handleKeyPress","e","key","addInterval","subtractInterval","handleInput","preventDefault","simpleRegex","RegExp","decimalFormationRegEx","negativeDecimalFormationRegEx","allowNegativeRegex","decimalPrecisionRegex","negativeAndDecimalRegex","val","target","value","length","charAt","test","isInRange","replace","indexOf","lastIndexOf","includes","isDecimal","x","parseFloat","toFixed","parseInt","isNaN","Math","round","pow","isLocked","operator","operatorState","concat"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { IconButton } from '../Button';\nimport { SystemIcons } from '../icons';\nimport { COLORS } from '../styles';\nimport { ComponentMStyling, ComponentSStyling, ComponentTextStyle, ComponentXXSStyling } from '../styles/typography';\nimport { Size } from '../types';\n\nconst Container = styled.div``;\n\nconst LabelContainer = styled.div`\n margin-bottom: 4px;\n color: ${COLORS.neutral_500};\n display: flex;\n ${ComponentXXSStyling(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 svg {\n height: 9px;\n width: 9px;\n }\n`;\n\nconst InputWrapper = styled.div<{size: Size}>`\n margin: ${props => props.size === Size.Small?'14px 0 14px 16px':'16px 0 16px 16px'};\n display: flex;\n flex-grow: 1;\n`;\n\nconst PrefixContainer = styled.div<{size: Size}>`\n margin-right: 4px;\n width: ${props => props.size === Size.Small?'10px':'11px'};\n height: ${props => props.size === Size.Small?'20px':'24px'};\n color: ${COLORS.neutral_500};\n ${props=>props.size===Size.Small?ComponentSStyling(ComponentTextStyle.Regular,null):ComponentMStyling(ComponentTextStyle.Regular,null)}\n`;\n\nconst OperatorWrapper = styled.div<{size: Size}>`\n display: flex;\n margin:${props => props.size === Size.Medium?'4px 0':''};\n svg {\n height: 14px;\n width: 14px;\n }\n .divider {\n border: 1px solid ${COLORS.neutral_200};\n margin: 16px 0;\n background: ${COLORS.neutral_200};\n }\n`;\n\nconst NumberInput = styled.input<{fieldSize: Size}>`\n width: 100%;\n height: ${props => props.fieldSize === Size.Small?'20px':'24px'};\n border: none;\n color: ${COLORS.neutral_500};\n ${props => props.fieldSize === Size.Small?ComponentSStyling(ComponentTextStyle.Italic, null):ComponentMStyling(ComponentTextStyle.Italic, null)}\n\n &:hover, &:focus, &:active {\n outline: none;\n }\n`;\n\nconst NoteLabel = styled.div`\n color: ${COLORS.neutral_500};\n ${ComponentXXSStyling(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}>`\n min-width: 280px;\n height: ${props => props.size === Size.Small?'48px':'56px'};\n display: flex; \n border: 1px solid ${COLORS.neutral_400};\n border-radius: 4px;\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ${COLORS.primary_700};\n }\n\n &:focus-within:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ${COLORS.primary_800};\n }\n\n &:active:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ${COLORS.primary_800};\n }\n\n &.disabled {\n border: 1px solid ${COLORS.neutral_100};\n cursor: not-allowed;\n \n ${PrefixContainer}{\n color: ${COLORS.neutral_300};\n }\n\n ${NumberInput}{\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.readOnly {\n background: ${COLORS.neutral_100};\n border: 1px solid ${COLORS.neutral_300};\n cursor: not-allowed;\n\n ${NumberInput}{\n background: ${COLORS.neutral_100};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.valid {\n border: 2px solid ${COLORS.correct_400};\n }\n\n &.invalid {\n border: 2px solid ${COLORS.critical_400};\n }\n`;\n\ntype NumberFieldProps = {\n size: Size.Small | Size.Medium;\n prefix?: string;\n interval?: number;\n label: string;\n note?: string;\n noteIcon?: React.ReactNode;\n required?: boolean;\n minValue?: number;\n maxValue?: number;\n allowNegative?: boolean;\n decimalPrecision?: number;\n disabled?: boolean;\n readOnly?: boolean;\n valid?: boolean;\n defaultVal?: number;\n}\n\nconst NumberField: React.FunctionComponent<NumberFieldProps> = (\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=false, \n readOnly=false, \n valid,\n defaultVal}) => {\n const [userInput, setUserInput] = React.useState(defaultVal?defaultVal.toString():'');\n let fieldState = (valid!==undefined) ? (valid===true?'valid':'invalid') : undefined;\n\n const handleKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => {\n switch(e.key){\n case 'ArrowUp': addInterval();\n break;\n case 'ArrowDown': subtractInterval();\n break;\n default: 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 setUserInput(val);\n else{\n if((negativeAndDecimalRegex!.test(val) || decimalPrecisionRegex!.test(val)) && isInRange(val,true))\n setUserInput(val);\n\n else if((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.',''),true))\n setUserInput(val);\n \n else if((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val,true))\n setUserInput(val);\n }\n }\n\n else if(allowNegative){\n if(val.length===1 && val.charAt(0)==='-')\n setUserInput(val);\n else if((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val,false))\n setUserInput(val);\n }\n\n else if(decimalPrecision && (val.indexOf('.')===val.lastIndexOf('.')) && isInRange(val,true)){\n if(decimalPrecisionRegex!.test(val))\n setUserInput(val);\n else if(decimalFormationRegEx.test(val))\n setUserInput(val);\n else if(!val.includes('.') && simpleRegex.test(val))\n setUserInput(val);\n }\n\n else if(simpleRegex.test(val) && isInRange(val, false)){\n setUserInput(val);\n }\n }\n\n if(val==='')\n setUserInput('');\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 ?? 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 setUserInput(val.toString());\n else if(!maxValue)\n setUserInput(val.toString());\n }\n }\n\n const subtractInterval = () => {\n let val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);\n val = isNaN(val) && userInput === '' ? (maxValue ?? 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)\n allowNegative ? setUserInput(val.toString()) : (val>=0 ? setUserInput(val.toString()) : undefined);\n else if(!minValue)\n allowNegative ? setUserInput(val.toString()) : (val>=0 ? setUserInput(val.toString()) : undefined);\n }\n }\n\n const isLocked = (input: string, operator: string): boolean => {\n let val = decimalPrecision ? parseFloat(input) : parseInt(input);\n let operatorState = false;\n if(operator === 'add' && maxValue)\n operatorState = val < maxValue ? false : true;\n \n if(operator === 'subtract' && minValue)\n operatorState = val > minValue ? false : true;\n\n return operatorState;\n }\n\n return (\n <Container>\n <LabelContainer>\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 size={size} data-testid={'inputContainer'} tabIndex={-1} className={'numberField'.concat(disabled?' disabled':'')\n .concat(readOnly?' readOnly':'')\n .concat(fieldState?` ${fieldState}`:'')}>\n <InputWrapper size={size}>\n {prefix && <PrefixContainer size={size}>\n {prefix}\n </PrefixContainer>}\n <NumberInput fieldSize={size} placeholder='Enter number' value={userInput} tabIndex={(disabled || readOnly) ? -1 : 0} onChange={e=>handleInput(e)} onKeyDown={e=>handleKeyPress(e)}/>\n </InputWrapper>\n\n <OperatorWrapper data-testid={'operators'} size={size}>\n <IconButton variant='secondary' shape='square' action={()=>subtractInterval()} useTransparentBackground disabled={disabled || readOnly || isLocked(userInput,'subtract')}>\n <SystemIcons.Minus size='14px'/>\n </IconButton> \n <div className='divider'></div>\n <IconButton variant='secondary' shape='square' action={()=>addInterval()} useTransparentBackground disabled={disabled || readOnly || isLocked(userInput,'add')}>\n <SystemIcons.Plus size='14px'/>\n </IconButton>\n </OperatorWrapper>\n </InputContainer>\n\n {note && <NoteContainer className={'noteField'.concat(fieldState?` ${fieldState}`:'')}>\n <NoteIcon>\n {noteIcon}\n </NoteIcon>\n <NoteLabel>\n {note}\n </NoteLabel> \n </NoteContainer>\n }\n </Container>\n ); \n}\n\nexport default NumberField;"],"file":"NumberField.cjs"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { Size } from '../types';
3
+ declare type NumberFieldProps = {
4
+ size: Size.Small | Size.Medium;
5
+ prefix?: string;
6
+ interval?: number;
7
+ label: string;
8
+ note?: string;
9
+ noteIcon?: React.ReactNode;
10
+ required?: boolean;
11
+ minValue?: number;
12
+ maxValue?: number;
13
+ allowNegative?: boolean;
14
+ decimalPrecision?: number;
15
+ disabled?: boolean;
16
+ readOnly?: boolean;
17
+ valid?: boolean;
18
+ defaultVal?: number;
19
+ };
20
+ declare const NumberField: React.FunctionComponent<NumberFieldProps>;
21
+ export default NumberField;
@@ -0,0 +1,240 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
3
+ import _pt from "prop-types";
4
+
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
6
+
7
+ import * as React from 'react';
8
+ import styled from 'styled-components';
9
+ import { IconButton } from '../Button';
10
+ import { SystemIcons } from '../icons';
11
+ import { COLORS } from '../styles';
12
+ import { ComponentMStyling, ComponentSStyling, ComponentTextStyle, ComponentXXSStyling } from '../styles/typography';
13
+ import { Size } from '../types';
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { jsxs as _jsxs } from "react/jsx-runtime";
16
+ var Container = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([""])));
17
+ var LabelContainer = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: 4px;\n color: ", ";\n display: flex;\n ", "\n"])), COLORS.neutral_500, ComponentXXSStyling(ComponentTextStyle.Regular, null));
18
+ var LabelText = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([""])));
19
+ var LabelIcon = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin-right: ", ";\n svg {\n height: 9px;\n width: 9px;\n }\n"])), function (props) {
20
+ return props.size === Size.Small ? '6px' : '8px';
21
+ });
22
+ var InputWrapper = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin: ", ";\n display: flex;\n flex-grow: 1;\n"])), function (props) {
23
+ return props.size === Size.Small ? '14px 0 14px 16px' : '16px 0 16px 16px';
24
+ });
25
+ var PrefixContainer = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n margin-right: 4px;\n width: ", ";\n height: ", ";\n color: ", ";\n ", "\n"])), function (props) {
26
+ return props.size === Size.Small ? '10px' : '11px';
27
+ }, function (props) {
28
+ return props.size === Size.Small ? '20px' : '24px';
29
+ }, COLORS.neutral_500, function (props) {
30
+ return props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Regular, null) : ComponentMStyling(ComponentTextStyle.Regular, null);
31
+ });
32
+ var OperatorWrapper = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n margin:", ";\n svg {\n height: 14px;\n width: 14px;\n }\n .divider {\n border: 1px solid ", ";\n margin: 16px 0;\n background: ", ";\n }\n"])), function (props) {
33
+ return props.size === Size.Medium ? '4px 0' : '';
34
+ }, COLORS.neutral_200, COLORS.neutral_200);
35
+ var NumberInput = styled.input(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 100%;\n height: ", ";\n border: none;\n color: ", ";\n ", "\n\n &:hover, &:focus, &:active {\n outline: none;\n }\n"])), function (props) {
36
+ return props.fieldSize === Size.Small ? '20px' : '24px';
37
+ }, COLORS.neutral_500, function (props) {
38
+ return props.fieldSize === Size.Small ? ComponentSStyling(ComponentTextStyle.Italic, null) : ComponentMStyling(ComponentTextStyle.Italic, null);
39
+ });
40
+ var NoteLabel = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n color: ", ";\n ", " \n"])), COLORS.neutral_500, ComponentXXSStyling(ComponentTextStyle.Regular, null));
41
+ var NoteIcon = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n svg {\n height: 16px;\n }\n"])));
42
+ var NoteContainer = styled.div(_templateObject11 || (_templateObject11 = _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);
43
+ var InputContainer = styled.div(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral(["\n min-width: 280px;\n height: ", ";\n display: flex; \n border: 1px solid ", ";\n border-radius: 4px;\n\n &:hover:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ", ";\n }\n\n &:focus-within:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ", ";\n }\n\n &:active:not(.disabled):not(.readOnly):not(.valid):not(.invalid) {\n border: 2px solid ", ";\n }\n\n &.disabled {\n border: 1px solid ", ";\n cursor: not-allowed;\n \n ", "{\n color: ", ";\n }\n\n ", "{\n color: ", ";\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.readOnly {\n background: ", ";\n border: 1px solid ", ";\n cursor: not-allowed;\n\n ", "{\n background: ", ";\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &.valid {\n border: 2px solid ", ";\n }\n\n &.invalid {\n border: 2px solid ", ";\n }\n"])), function (props) {
44
+ return props.size === Size.Small ? '48px' : '56px';
45
+ }, COLORS.neutral_400, COLORS.primary_700, COLORS.primary_800, COLORS.primary_800, COLORS.neutral_100, PrefixContainer, COLORS.neutral_300, NumberInput, COLORS.neutral_300, COLORS.neutral_100, COLORS.neutral_300, NumberInput, COLORS.neutral_100, COLORS.correct_400, COLORS.critical_400);
46
+
47
+ var NumberField = function NumberField(_ref) {
48
+ var _ref$size = _ref.size,
49
+ size = _ref$size === void 0 ? Size.Small : _ref$size,
50
+ label = _ref.label,
51
+ note = _ref.note,
52
+ noteIcon = _ref.noteIcon,
53
+ required = _ref.required,
54
+ prefix = _ref.prefix,
55
+ _ref$interval = _ref.interval,
56
+ interval = _ref$interval === void 0 ? 1 : _ref$interval,
57
+ minValue = _ref.minValue,
58
+ maxValue = _ref.maxValue,
59
+ allowNegative = _ref.allowNegative,
60
+ decimalPrecision = _ref.decimalPrecision,
61
+ _ref$disabled = _ref.disabled,
62
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
63
+ _ref$readOnly = _ref.readOnly,
64
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
65
+ valid = _ref.valid,
66
+ defaultVal = _ref.defaultVal;
67
+
68
+ var _React$useState = React.useState(defaultVal ? defaultVal.toString() : ''),
69
+ _React$useState2 = _slicedToArray(_React$useState, 2),
70
+ userInput = _React$useState2[0],
71
+ setUserInput = _React$useState2[1];
72
+
73
+ var fieldState = valid !== undefined ? valid === true ? 'valid' : 'invalid' : undefined;
74
+
75
+ var handleKeyPress = function handleKeyPress(e) {
76
+ switch (e.key) {
77
+ case 'ArrowUp':
78
+ addInterval();
79
+ break;
80
+
81
+ case 'ArrowDown':
82
+ subtractInterval();
83
+ break;
84
+
85
+ default:
86
+ break;
87
+ }
88
+ };
89
+
90
+ var handleInput = function handleInput(e) {
91
+ e.preventDefault();
92
+ var simpleRegex = new RegExp(/^[0-9]\d*$/);
93
+ var decimalFormationRegEx = new RegExp(/^[0-9]\d*\.$/);
94
+ var negativeDecimalFormationRegEx = new RegExp(/^[-][0-9]\d*\.$/);
95
+ var allowNegativeRegex = new RegExp(/^[-][0-9]\d*$/);
96
+ var decimalPrecisionRegex = decimalPrecision ? new RegExp("^[0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
97
+ var negativeAndDecimalRegex = decimalPrecision && allowNegative ? new RegExp("^[-][0-9]\\d*\\.[0-9]\\d{0,".concat(decimalPrecision - 1, "}$")) : undefined;
98
+ var val = e.target.value;
99
+
100
+ if (val !== '') {
101
+ if (allowNegative && decimalPrecision) {
102
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else {
103
+ if ((negativeAndDecimalRegex.test(val) || decimalPrecisionRegex.test(val)) && isInRange(val, true)) setUserInput(val);else if ((negativeDecimalFormationRegEx.test(val) || decimalFormationRegEx.test(val)) && isInRange(val.replace('.', ''), true)) setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, true)) setUserInput(val);
104
+ }
105
+ } else if (allowNegative) {
106
+ if (val.length === 1 && val.charAt(0) === '-') setUserInput(val);else if ((allowNegativeRegex.test(val) || simpleRegex.test(val)) && isInRange(val, false)) setUserInput(val);
107
+ } else if (decimalPrecision && val.indexOf('.') === val.lastIndexOf('.') && isInRange(val, true)) {
108
+ if (decimalPrecisionRegex.test(val)) setUserInput(val);else if (decimalFormationRegEx.test(val)) setUserInput(val);else if (!val.includes('.') && simpleRegex.test(val)) setUserInput(val);
109
+ } else if (simpleRegex.test(val) && isInRange(val, false)) {
110
+ setUserInput(val);
111
+ }
112
+ }
113
+
114
+ if (val === '') setUserInput('');
115
+ };
116
+
117
+ var isInRange = function isInRange(value, isDecimal) {
118
+ var x = isDecimal ? parseFloat(value).toFixed(decimalPrecision) : parseInt(value);
119
+ if (minValue && minValue > x) return false;else if (maxValue && maxValue < x) return false;else return true;
120
+ };
121
+
122
+ var addInterval = function addInterval() {
123
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
124
+ val = isNaN(val) && userInput === '' ? minValue !== null && minValue !== void 0 ? minValue : 0 : val;
125
+
126
+ if (!isNaN(val)) {
127
+ if (decimalPrecision) val = Math.round((val + interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val += 1;
128
+ if (maxValue && maxValue >= val) setUserInput(val.toString());else if (!maxValue) setUserInput(val.toString());
129
+ }
130
+ };
131
+
132
+ var subtractInterval = function subtractInterval() {
133
+ var val = decimalPrecision ? parseFloat(userInput) : parseInt(userInput);
134
+ val = isNaN(val) && userInput === '' ? maxValue !== null && maxValue !== void 0 ? maxValue : 0 : val;
135
+
136
+ if (!isNaN(val)) {
137
+ if (decimalPrecision) val = Math.round((val - interval) * Math.pow(10, decimalPrecision)) / Math.pow(10, decimalPrecision);else val -= 1;
138
+ if (minValue && minValue <= val) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;else if (!minValue) allowNegative ? setUserInput(val.toString()) : val >= 0 ? setUserInput(val.toString()) : undefined;
139
+ }
140
+ };
141
+
142
+ var isLocked = function isLocked(input, operator) {
143
+ var val = decimalPrecision ? parseFloat(input) : parseInt(input);
144
+ var operatorState = false;
145
+ if (operator === 'add' && maxValue) operatorState = val < maxValue ? false : true;
146
+ if (operator === 'subtract' && minValue) operatorState = val > minValue ? false : true;
147
+ return operatorState;
148
+ };
149
+
150
+ return /*#__PURE__*/_jsxs(Container, {
151
+ children: [/*#__PURE__*/_jsxs(LabelContainer, {
152
+ children: [required && /*#__PURE__*/_jsx(LabelIcon, {
153
+ size: size,
154
+ "data-testid": 'labelIcon',
155
+ children: /*#__PURE__*/_jsx(SystemIcons.Asterisk, {
156
+ color: COLORS.critical_500
157
+ })
158
+ }), /*#__PURE__*/_jsx(LabelText, {
159
+ children: label
160
+ })]
161
+ }), /*#__PURE__*/_jsxs(InputContainer, {
162
+ size: size,
163
+ "data-testid": 'inputContainer',
164
+ tabIndex: -1,
165
+ className: 'numberField'.concat(disabled ? ' disabled' : '').concat(readOnly ? ' readOnly' : '').concat(fieldState ? " ".concat(fieldState) : ''),
166
+ children: [/*#__PURE__*/_jsxs(InputWrapper, {
167
+ size: size,
168
+ children: [prefix && /*#__PURE__*/_jsx(PrefixContainer, {
169
+ size: size,
170
+ children: prefix
171
+ }), /*#__PURE__*/_jsx(NumberInput, {
172
+ fieldSize: size,
173
+ placeholder: "Enter number",
174
+ value: userInput,
175
+ tabIndex: disabled || readOnly ? -1 : 0,
176
+ onChange: function onChange(e) {
177
+ return handleInput(e);
178
+ },
179
+ onKeyDown: function onKeyDown(e) {
180
+ return handleKeyPress(e);
181
+ }
182
+ })]
183
+ }), /*#__PURE__*/_jsxs(OperatorWrapper, {
184
+ "data-testid": 'operators',
185
+ size: size,
186
+ children: [/*#__PURE__*/_jsx(IconButton, {
187
+ variant: "secondary",
188
+ shape: "square",
189
+ action: function action() {
190
+ return subtractInterval();
191
+ },
192
+ useTransparentBackground: true,
193
+ disabled: disabled || readOnly || isLocked(userInput, 'subtract'),
194
+ children: /*#__PURE__*/_jsx(SystemIcons.Minus, {
195
+ size: "14px"
196
+ })
197
+ }), /*#__PURE__*/_jsx("div", {
198
+ className: "divider"
199
+ }), /*#__PURE__*/_jsx(IconButton, {
200
+ variant: "secondary",
201
+ shape: "square",
202
+ action: function action() {
203
+ return addInterval();
204
+ },
205
+ useTransparentBackground: true,
206
+ disabled: disabled || readOnly || isLocked(userInput, 'add'),
207
+ children: /*#__PURE__*/_jsx(SystemIcons.Plus, {
208
+ size: "14px"
209
+ })
210
+ })]
211
+ })]
212
+ }), note && /*#__PURE__*/_jsxs(NoteContainer, {
213
+ className: 'noteField'.concat(fieldState ? " ".concat(fieldState) : ''),
214
+ children: [/*#__PURE__*/_jsx(NoteIcon, {
215
+ children: noteIcon
216
+ }), /*#__PURE__*/_jsx(NoteLabel, {
217
+ children: note
218
+ })]
219
+ })]
220
+ });
221
+ };
222
+
223
+ NumberField.propTypes = {
224
+ prefix: _pt.string,
225
+ interval: _pt.number,
226
+ label: _pt.string.isRequired,
227
+ note: _pt.string,
228
+ noteIcon: _pt.node,
229
+ required: _pt.bool,
230
+ minValue: _pt.number,
231
+ maxValue: _pt.number,
232
+ allowNegative: _pt.bool,
233
+ decimalPrecision: _pt.number,
234
+ disabled: _pt.bool,
235
+ readOnly: _pt.bool,
236
+ valid: _pt.bool,
237
+ defaultVal: _pt.number
238
+ };
239
+ export default NumberField;
240
+ //# sourceMappingURL=NumberField.js.map