@servicetitan/form 23.2.0 → 23.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/demo/number-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,EAAE,EAAE,MAAM,OAAO,CAAC;AAc7C,eAAO,MAAM,kBAAkB,EAAE,EA4D/B,CAAC"}
1
+ {"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/demo/number-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,EAAE,EAAE,MAAM,OAAO,CAAC;AAc7C,eAAO,MAAM,kBAAkB,EAAE,EAuG/B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useRef, Fragment } from 'react';
3
3
  import { observer } from 'mobx-react';
4
- import { Text } from '@servicetitan/design-system';
4
+ import { Stack, Text } from '@servicetitan/design-system';
5
5
  import { NumberInput } from '..';
6
6
  import { FieldState } from 'formstate';
7
7
  function useNumberField(initial) {
@@ -13,6 +13,10 @@ export const NumberInputExample = observer(() => {
13
13
  const precisionField = useNumberField(undefined);
14
14
  const limitedRangeField = useNumberField(undefined);
15
15
  const withoutThousandsSeparator = useNumberField(undefined);
16
- return (_jsxs(Fragment, { children: [_jsx(Text, Object.assign({ size: 4, className: "m-b-half" }, { children: "Default" })), _jsx(NumberInput, { value: defaultField.value, onChange: defaultField.onChange, emptyValue: undefined }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Zero as empty value" })), _jsx(NumberInput, { value: zeroEmptyValueField.value, onChange: zeroEmptyValueField.onChange, emptyValue: 0 }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Precision" })), _jsx(NumberInput, { value: precisionField.value, onChange: precisionField.onChange, emptyValue: undefined, decimalPlaces: 3 }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Limited range" })), _jsx(NumberInput, { value: limitedRangeField.value, onChange: limitedRangeField.onChange, emptyValue: undefined, min: 3, max: 7 }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Without thousands separator" })), _jsx(NumberInput, { value: withoutThousandsSeparator.value, onChange: withoutThousandsSeparator.onChange, emptyValue: undefined, decimalPlaces: 0, useEmptyThousandsSeparator: true })] }));
16
+ const limitedRangeFieldPreset = useNumberField(100);
17
+ const precisionFieldPreset = useNumberField(3.6666666);
18
+ const precisionFieldPresetExtreme = useNumberField(3.6666666);
19
+ return (_jsxs(Fragment, { children: [_jsx(Text, Object.assign({ size: 4, className: "m-b-half" }, { children: "Default" })), _jsx(NumberInput, { value: defaultField.value, onChange: defaultField.onChange, emptyValue: undefined }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Zero as empty value" })), _jsx(NumberInput, { value: zeroEmptyValueField.value, onChange: zeroEmptyValueField.onChange, emptyValue: 0 }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Precision" })), _jsx(NumberInput, { value: precisionField.value, onChange: precisionField.onChange, emptyValue: undefined, decimalPlaces: 3 }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Limited range" })), _jsx(NumberInput, { value: limitedRangeField.value, onChange: limitedRangeField.onChange, emptyValue: undefined, min: 3, max: 7 }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Without thousands separator" })), _jsx(NumberInput, { value: withoutThousandsSeparator.value, onChange: withoutThousandsSeparator.onChange, emptyValue: undefined, decimalPlaces: 0, useEmptyThousandsSeparator: true }), _jsx("hr", { className: "m-y-4" }), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Preset value out of range" })), _jsx(StoredValueWrapper, Object.assign({ value: limitedRangeFieldPreset.value }, { children: _jsx(NumberInput, { value: limitedRangeFieldPreset.value, onChange: limitedRangeFieldPreset.onChange, emptyValue: undefined, min: 3, max: 7 }) })), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Preset value with precision out of limit" })), _jsx(StoredValueWrapper, Object.assign({ value: precisionFieldPreset.value }, { children: _jsx(NumberInput, { value: precisionFieldPreset.value, onChange: precisionFieldPreset.onChange, emptyValue: undefined, decimalPlaces: 3 }) })), _jsx(Text, Object.assign({ size: 4, className: "m-t-4 m-b-half" }, { children: "Preset value with precision out of limit (zero decimals allowed)" })), _jsx(StoredValueWrapper, Object.assign({ value: precisionFieldPresetExtreme.value }, { children: _jsx(NumberInput, { value: precisionFieldPresetExtreme.value, onChange: precisionFieldPresetExtreme.onChange, emptyValue: undefined, decimalPlaces: 0 }) }))] }));
17
20
  });
21
+ const StoredValueWrapper = ({ children, value }) => (_jsxs(Stack, Object.assign({ alignItems: "baseline" }, { children: [children, _jsxs(Text, Object.assign({ size: 3, className: "m-l-3" }, { children: ["Stored value: ", value] }))] })));
18
22
  //# sourceMappingURL=number-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.js","sourceRoot":"","sources":["../../src/demo/number-input.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAM,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,SAAS,cAAc,CAA+B,OAAU;IAC5D,OAAO,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAO,QAAQ,CAAC,GAAG,EAAE;IAChD,MAAM,YAAY,GAAG,cAAc,CAAqB,SAAS,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,cAAc,CAAS,CAAC,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,cAAc,CAAqB,SAAS,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,cAAc,CAAqB,SAAS,CAAC,CAAC;IACxE,MAAM,yBAAyB,GAAG,cAAc,CAAqB,SAAS,CAAC,CAAC;IAEhF,OAAO,CACH,MAAC,QAAQ,eACL,KAAC,IAAI,kBAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,UAAU,6BAE5B,EACP,KAAC,WAAW,IACR,KAAK,EAAE,YAAY,CAAC,KAAK,EACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,UAAU,EAAE,SAAS,GACvB,EAEF,KAAC,IAAI,kBAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,gBAAgB,yCAElC,EACP,KAAC,WAAW,IACR,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAChC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EACtC,UAAU,EAAE,CAAC,GACf,EAEF,KAAC,IAAI,kBAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,gBAAgB,+BAElC,EACP,KAAC,WAAW,IACR,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ,EACjC,UAAU,EAAE,SAAS,EACrB,aAAa,EAAE,CAAC,GAClB,EAEF,KAAC,IAAI,kBAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,gBAAgB,mCAElC,EACP,KAAC,WAAW,IACR,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAC9B,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EACpC,UAAU,EAAE,SAAS,EACrB,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,GACR,EAEF,KAAC,IAAI,kBAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAC,gBAAgB,iDAElC,EACP,KAAC,WAAW,IACR,KAAK,EAAE,yBAAyB,CAAC,KAAK,EACtC,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,EAC5C,UAAU,EAAE,SAAS,EACrB,aAAa,EAAE,CAAC,EAChB,0BAA0B,SAC5B,IACK,CACd,CAAC;AACN,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"number-input.js","sourceRoot":"","sources":["../../src/demo/number-input.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/number-input/number-input.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAS,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AAInF,OAAO,EAAE,YAAY,EAAsB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAS9D,MAAM,WAAW,gBAAgB,CAAC,MAAM,SAAS,UAAU,CACvD,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;IAC9C,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,WAAW,4NA8LvB,CAAC"}
1
+ {"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/number-input/number-input.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAS,UAAU,EAAqB,MAAM,6BAA6B,CAAC;AAInF,OAAO,EAAE,YAAY,EAAsB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAS9D,MAAM,WAAW,gBAAgB,CAAC,MAAM,SAAS,UAAU,CACvD,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;IAC9C,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,WAAW,4NAoMvB,CAAC"}
@@ -125,8 +125,12 @@ export const NumberInput = (_a) => {
125
125
  (_a = updateClampedValueDebounced.current) === null || _a === void 0 ? void 0 : _a.call(updateClampedValueDebounced, value, silent);
126
126
  };
127
127
  const handleFocus = (event) => {
128
- if (state.numberValue !== undefined) {
129
- updateValue(String(state.numberValue), true);
128
+ if (state.stringValue.length) {
129
+ updateValue(
130
+ // prepare the value which user does see (rounded), but without trailing zeroes after decimal and separator
131
+ decimalPlaces
132
+ ? state.stringValue.replace(new RegExp(`[${decimalSeparator}]?0+$`), '')
133
+ : state.stringValue, true);
130
134
  }
131
135
  setIsFocused(true);
132
136
  if (onFocus) {
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.js","sourceRoot":"","sources":["../../src/number-input/number-input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"number-input.js","sourceRoot":"","sources":["../../src/number-input/number-input.tsx"],"names":[],"mappings":"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"}
@@ -43,12 +43,7 @@ function trimDecimalPlace(value, separator, formatNumber, precision) {
43
43
  const intPart = (isNegative ? '-' : '') + String(Math.abs(+splitValue[0]));
44
44
  let fracPart = splitValue[1];
45
45
  if (fracPart && fracPart.length > precision) {
46
- fracPart = formatNumber(parseFloat(`0.${fracPart}`), precision);
47
- // 0.9(9) will be rounded to 1.0
48
- if (fracPart.startsWith('1.')) {
49
- fracPart = `0.${splitValue[1].substring(0, precision)}`;
50
- }
51
- fracPart = fracPart.slice(2);
46
+ fracPart = fracPart.slice(0, precision);
52
47
  }
53
48
  return `${intPart}.${fracPart}`;
54
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"process-value.js","sourceRoot":"","sources":["../../src/number-input/process-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-value.js","sourceRoot":"","sources":["../../src/number-input/process-value.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/form",
3
- "version": "23.2.0",
3
+ "version": "23.3.1",
4
4
  "description": "",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/form",
6
6
  "repository": {
@@ -16,10 +16,10 @@
16
16
  "src"
17
17
  ],
18
18
  "devDependencies": {
19
- "@servicetitan/confirm": "^23.2.0",
20
- "@servicetitan/culture": "^23.2.0",
19
+ "@servicetitan/confirm": "^23.3.1",
20
+ "@servicetitan/culture": "^23.3.1",
21
21
  "@servicetitan/design-system": ">=12.4.1",
22
- "@servicetitan/form-state": "^23.2.0",
22
+ "@servicetitan/form-state": "^23.3.1",
23
23
  "@servicetitan/react-ioc": "^21.6.0",
24
24
  "@servicetitan/tokens": ">=12.1.11",
25
25
  "@types/react": "~17.0.38",
@@ -35,10 +35,10 @@
35
35
  "resumablejs": "~1.0.2"
36
36
  },
37
37
  "peerDependencies": {
38
- "@servicetitan/confirm": "^23.2.0",
39
- "@servicetitan/culture": "^23.2.0",
38
+ "@servicetitan/confirm": "^23.3.1",
39
+ "@servicetitan/culture": "^23.3.1",
40
40
  "@servicetitan/design-system": ">=12.4.1",
41
- "@servicetitan/form-state": "^23.2.0",
41
+ "@servicetitan/form-state": "^23.3.1",
42
42
  "@servicetitan/react-ioc": ">21.0.0",
43
43
  "@servicetitan/tokens": ">=12.1.11",
44
44
  "accounting": "~0.4.1",
@@ -66,5 +66,5 @@
66
66
  "less": true,
67
67
  "webpack": false
68
68
  },
69
- "gitHead": "3616d7fff8482c1e65a0d6281b5ddeca9b32f2ab"
69
+ "gitHead": "7e7249314331ad1cd1762f226b679294c0b39667"
70
70
  }
@@ -2,7 +2,7 @@ import { useRef, Fragment, FC } from 'react';
2
2
 
3
3
  import { observer } from 'mobx-react';
4
4
 
5
- import { Text } from '@servicetitan/design-system';
5
+ import { Stack, Text } from '@servicetitan/design-system';
6
6
 
7
7
  import { NumberInput } from '..';
8
8
 
@@ -19,6 +19,10 @@ export const NumberInputExample: FC = observer(() => {
19
19
  const limitedRangeField = useNumberField<number | undefined>(undefined);
20
20
  const withoutThousandsSeparator = useNumberField<number | undefined>(undefined);
21
21
 
22
+ const limitedRangeFieldPreset = useNumberField<number | undefined>(100);
23
+ const precisionFieldPreset = useNumberField<number | undefined>(3.6666666);
24
+ const precisionFieldPresetExtreme = useNumberField<number | undefined>(3.6666666);
25
+
22
26
  return (
23
27
  <Fragment>
24
28
  <Text size={4} className="m-b-half">
@@ -70,6 +74,54 @@ export const NumberInputExample: FC = observer(() => {
70
74
  decimalPlaces={0}
71
75
  useEmptyThousandsSeparator
72
76
  />
77
+
78
+ <hr className="m-y-4" />
79
+
80
+ <Text size={4} className="m-t-4 m-b-half">
81
+ Preset value out of range
82
+ </Text>
83
+ <StoredValueWrapper value={limitedRangeFieldPreset.value}>
84
+ <NumberInput
85
+ value={limitedRangeFieldPreset.value}
86
+ onChange={limitedRangeFieldPreset.onChange}
87
+ emptyValue={undefined}
88
+ min={3}
89
+ max={7}
90
+ />
91
+ </StoredValueWrapper>
92
+
93
+ <Text size={4} className="m-t-4 m-b-half">
94
+ Preset value with precision out of limit
95
+ </Text>
96
+ <StoredValueWrapper value={precisionFieldPreset.value}>
97
+ <NumberInput
98
+ value={precisionFieldPreset.value}
99
+ onChange={precisionFieldPreset.onChange}
100
+ emptyValue={undefined}
101
+ decimalPlaces={3}
102
+ />
103
+ </StoredValueWrapper>
104
+
105
+ <Text size={4} className="m-t-4 m-b-half">
106
+ Preset value with precision out of limit (zero decimals allowed)
107
+ </Text>
108
+ <StoredValueWrapper value={precisionFieldPresetExtreme.value}>
109
+ <NumberInput
110
+ value={precisionFieldPresetExtreme.value}
111
+ onChange={precisionFieldPresetExtreme.onChange}
112
+ emptyValue={undefined}
113
+ decimalPlaces={0}
114
+ />
115
+ </StoredValueWrapper>
73
116
  </Fragment>
74
117
  );
75
118
  });
119
+
120
+ const StoredValueWrapper: FC<{ value?: number }> = ({ children, value }) => (
121
+ <Stack alignItems="baseline">
122
+ {children}
123
+ <Text size={3} className="m-l-3">
124
+ Stored value: {value}
125
+ </Text>
126
+ </Stack>
127
+ );
@@ -278,8 +278,8 @@ describe('processValue', () => {
278
278
  stringValue: '5.55',
279
279
  });
280
280
  expect(processValue('5.555', options)).toEqual({
281
- numberValue: 5.56,
282
- stringValue: '5.56',
281
+ numberValue: 5.55,
282
+ stringValue: '5.55',
283
283
  });
284
284
  expect(processValue('5.999', options)).toEqual({
285
285
  numberValue: 5.99,
@@ -193,8 +193,14 @@ export const NumberInput = <TEmpty extends EmptyValue>({
193
193
  };
194
194
 
195
195
  const handleFocus = (event: FocusEvent<HTMLInputElement>) => {
196
- if (state.numberValue !== undefined) {
197
- updateValue(String(state.numberValue), true);
196
+ if (state.stringValue.length) {
197
+ updateValue(
198
+ // prepare the value which user does see (rounded), but without trailing zeroes after decimal and separator
199
+ decimalPlaces
200
+ ? state.stringValue.replace(new RegExp(`[${decimalSeparator}]?0+$`), '')
201
+ : state.stringValue,
202
+ true
203
+ );
198
204
  }
199
205
 
200
206
  setIsFocused(true);
@@ -69,14 +69,7 @@ function trimDecimalPlace(
69
69
  const intPart = (isNegative ? '-' : '') + String(Math.abs(+splitValue[0]));
70
70
  let fracPart = splitValue[1];
71
71
  if (fracPart && fracPart.length > precision) {
72
- fracPart = formatNumber(parseFloat(`0.${fracPart}`), precision);
73
-
74
- // 0.9(9) will be rounded to 1.0
75
- if (fracPart.startsWith('1.')) {
76
- fracPart = `0.${splitValue[1].substring(0, precision)}`;
77
- }
78
-
79
- fracPart = fracPart.slice(2);
72
+ fracPart = fracPart.slice(0, precision);
80
73
  }
81
74
  return `${intPart}.${fracPart}`;
82
75
  }