@chayns-components/core 5.0.0-beta.240 → 5.0.0-beta.243

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.
@@ -22,7 +22,7 @@ const NumberInput = _ref => {
22
22
  isDisabled
23
23
  } = _ref;
24
24
  const [stringValue, setStringValue] = (0, _react.useState)('');
25
- const handleChange = function () {
25
+ const handleChange = (0, _react.useCallback)(function () {
26
26
  let newValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
27
27
  if (typeof newValue !== 'number') {
28
28
  setStringValue('');
@@ -32,9 +32,10 @@ const NumberInput = _ref => {
32
32
  stringValue: newValue === null || newValue === void 0 ? void 0 : newValue.toString()
33
33
  });
34
34
  setStringValue((0, _number2.formateNumber)({
35
- number: parsedValue
35
+ number: parsedValue,
36
+ isMoneyInput
36
37
  }));
37
- };
38
+ }, [isMoneyInput]);
38
39
  const onChange = event => {
39
40
  const newValue = event.target.value;
40
41
  const sanitizedValue = newValue
@@ -86,7 +87,8 @@ const NumberInput = _ref => {
86
87
  stringValue: sanitizedValue
87
88
  });
88
89
  setStringValue(stringValue.length === 0 ? '' : (0, _number2.formateNumber)({
89
- number: parsedValue
90
+ number: parsedValue,
91
+ isMoneyInput
90
92
  }));
91
93
  onNumberChange(parsedValue === 0 ? null : parsedValue);
92
94
  };
@@ -95,7 +97,7 @@ const NumberInput = _ref => {
95
97
  };
96
98
  (0, _react.useEffect)(() => {
97
99
  handleChange(number);
98
- }, [number]);
100
+ }, [handleChange, number]);
99
101
  return /*#__PURE__*/_react.default.createElement(_Input.default, {
100
102
  onChange: onChange,
101
103
  value: stringValue,
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","names":["_react","_interopRequireWildcard","require","_Input","_interopRequireDefault","_number","_number2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","NumberInput","_ref","isDecimalInput","isMoneyInput","maxNumber","Infinity","number","placeholder","onNumberChange","isDisabled","stringValue","setStringValue","useState","handleChange","newValue","arguments","length","undefined","parsedValue","parseFloatAndRound","toString","formateNumber","onChange","event","target","value","sanitizedValue","replace","NUMBER_CLEAR_REGEX","trim","DECIMAL_TEST","test","parsedNumber","MONEY_TEST","decimals","INTEGER_TEST","Number","onBlur","onFocus","replaceAll","useEffect","createElement","displayName","_default","exports"],"sources":["../../../src/components/number-input/NumberInput.tsx"],"sourcesContent":["import React, { ChangeEvent, FC, useEffect, useState } from 'react';\nimport Input from '../input/Input';\nimport { DECIMAL_TEST, INTEGER_TEST, MONEY_TEST, NUMBER_CLEAR_REGEX } from './constants/number';\nimport { formateNumber, parseFloatAndRound } from './utils/number';\n\nexport type NumberInputProps = {\n /**\n * Whether the user can add decimal places. Enables the user to input a zero as first number\n */\n isDecimalInput?: boolean;\n /**\n * Applies rules for money input.\n * Rules: only two decimal places, one leading zero\n */\n isMoneyInput?: boolean;\n /**\n * Limits the number to this value\n */\n maxNumber?: number;\n /**\n * The number that should be displayed formatted in the input field. NOTE: A zero as number is not allowed\n */\n number: number | null;\n /**\n * The placeholder that should be in the input\n */\n placeholder?: string;\n /**\n * Callback function that is called when the input gets out of focus\n */\n onNumberChange: (newNumber: number | null) => void;\n /**\n * Whether the input is disabled\n */\n isDisabled?: boolean;\n};\n\nconst NumberInput: FC<NumberInputProps> = ({\n isDecimalInput,\n isMoneyInput,\n maxNumber = Infinity,\n number,\n placeholder,\n onNumberChange,\n isDisabled\n}) => {\n const [stringValue, setStringValue] = useState<string>('');\n\n const handleChange = (newValue: number | null = null) => {\n if (typeof newValue !== 'number') {\n setStringValue('');\n\n return;\n }\n\n const parsedValue = parseFloatAndRound({ stringValue: newValue?.toString() });\n\n setStringValue(formateNumber({ number: parsedValue }));\n };\n\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n\n const sanitizedValue = newValue\n // Removes everything except numbers and commas (decimals should be indicated with a comma)\n .replace(NUMBER_CLEAR_REGEX, '')\n // Calculations need points for decimal indication\n .replace(',', '.');\n\n if (sanitizedValue.trim().length > 0) {\n // Allows numbers, a comma and any number of decimal places\n if (isDecimalInput && DECIMAL_TEST.test(sanitizedValue)) {\n const parsedNumber = parseFloatAndRound({ stringValue: sanitizedValue });\n\n if (parsedNumber > maxNumber) {\n return;\n }\n\n setStringValue(sanitizedValue.replace('.', ','));\n\n return;\n }\n\n // Allows numbers, a comma and 2 numbers of decimal places\n if (isMoneyInput && MONEY_TEST.test(sanitizedValue)) {\n const parsedNumber = parseFloatAndRound({\n stringValue: sanitizedValue,\n decimals: 2,\n });\n\n if (parsedNumber > maxNumber) {\n return;\n }\n\n setStringValue(sanitizedValue.replace('.', ','));\n\n return;\n }\n\n // Allows numbers but excludes numbers with leading 0\n if (INTEGER_TEST.test(sanitizedValue)) {\n const parsedNumber = Number(sanitizedValue);\n\n if (parsedNumber > maxNumber) {\n return;\n }\n\n setStringValue(sanitizedValue);\n }\n } else {\n setStringValue('');\n }\n };\n\n const onBlur = () => {\n const sanitizedValue = stringValue.length === 0 ? '0' : stringValue;\n const parsedValue = parseFloatAndRound({ stringValue: sanitizedValue });\n\n setStringValue(\n stringValue.length === 0\n ? ''\n : formateNumber({\n number: parsedValue,\n })\n );\n\n onNumberChange(parsedValue === 0 ? null : parsedValue);\n };\n\n const onFocus = () => {\n setStringValue(stringValue.replaceAll('.', ''));\n };\n\n useEffect(() => {\n handleChange(number);\n }, [number]);\n\n return (\n <Input\n onChange={onChange}\n value={stringValue}\n placeholder={placeholder}\n onBlur={onBlur}\n onFocus={onFocus}\n isDisabled={isDisabled}\n />\n );\n};\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.js","names":["_react","_interopRequireWildcard","require","_Input","_interopRequireDefault","_number","_number2","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","NumberInput","_ref","isDecimalInput","isMoneyInput","maxNumber","Infinity","number","placeholder","onNumberChange","isDisabled","stringValue","setStringValue","useState","handleChange","useCallback","newValue","arguments","length","undefined","parsedValue","parseFloatAndRound","toString","formateNumber","onChange","event","target","value","sanitizedValue","replace","NUMBER_CLEAR_REGEX","trim","DECIMAL_TEST","test","parsedNumber","MONEY_TEST","decimals","INTEGER_TEST","Number","onBlur","onFocus","replaceAll","useEffect","createElement","displayName","_default","exports"],"sources":["../../../src/components/number-input/NumberInput.tsx"],"sourcesContent":["import React, { ChangeEvent, FC, useCallback, useEffect, useState } from 'react';\nimport Input from '../input/Input';\nimport { DECIMAL_TEST, INTEGER_TEST, MONEY_TEST, NUMBER_CLEAR_REGEX } from './constants/number';\nimport { formateNumber, parseFloatAndRound } from './utils/number';\n\nexport type NumberInputProps = {\n /**\n * Whether the user can add decimal places. Enables the user to input a zero as first number\n */\n isDecimalInput?: boolean;\n /**\n * Applies rules for money input.\n * Rules: only two decimal places, one leading zero\n */\n isMoneyInput?: boolean;\n /**\n * Limits the number to this value\n */\n maxNumber?: number;\n /**\n * The number that should be displayed formatted in the input field. NOTE: A zero as number is not allowed\n */\n number: number | null;\n /**\n * The placeholder that should be in the input\n */\n placeholder?: string;\n /**\n * Callback function that is called when the input gets out of focus\n */\n onNumberChange: (newNumber: number | null) => void;\n /**\n * Whether the input is disabled\n */\n isDisabled?: boolean;\n};\n\nconst NumberInput: FC<NumberInputProps> = (\n {\n isDecimalInput,\n isMoneyInput,\n maxNumber = Infinity,\n number,\n placeholder,\n onNumberChange,\n isDisabled\n }) => {\n const [stringValue, setStringValue] = useState<string>('');\n\n const handleChange = useCallback((newValue: number | null = null) => {\n if (typeof newValue !== 'number') {\n setStringValue('');\n\n return;\n }\n\n const parsedValue = parseFloatAndRound({ stringValue: newValue?.toString() });\n\n setStringValue(formateNumber({ number: parsedValue, isMoneyInput }));\n }, [isMoneyInput]);\n\n const onChange = (event: ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n\n const sanitizedValue = newValue\n // Removes everything except numbers and commas (decimals should be indicated with a comma)\n .replace(NUMBER_CLEAR_REGEX, '')\n // Calculations need points for decimal indication\n .replace(',', '.');\n\n if (sanitizedValue.trim().length > 0) {\n\n // Allows numbers, a comma and any number of decimal places\n if (isDecimalInput && DECIMAL_TEST.test(sanitizedValue)) {\n const parsedNumber = parseFloatAndRound({ stringValue: sanitizedValue });\n\n if (parsedNumber > maxNumber) {\n return;\n }\n\n setStringValue(sanitizedValue.replace('.', ','));\n\n return;\n }\n\n // Allows numbers, a comma and 2 numbers of decimal places\n if (isMoneyInput && MONEY_TEST.test(sanitizedValue)) {\n const parsedNumber = parseFloatAndRound({\n stringValue: sanitizedValue,\n decimals: 2,\n });\n\n if (parsedNumber > maxNumber) {\n return;\n }\n\n setStringValue(sanitizedValue.replace('.', ','));\n\n return;\n }\n\n // Allows numbers but excludes numbers with leading 0\n if (INTEGER_TEST.test(sanitizedValue)) {\n const parsedNumber = Number(sanitizedValue);\n\n if (parsedNumber > maxNumber) {\n return;\n }\n\n setStringValue(sanitizedValue);\n }\n } else {\n setStringValue('');\n }\n };\n\n const onBlur = () => {\n const sanitizedValue = stringValue.length === 0 ? '0' : stringValue;\n const parsedValue = parseFloatAndRound({ stringValue: sanitizedValue });\n\n setStringValue(\n stringValue.length === 0\n ? ''\n : formateNumber({\n number: parsedValue,\n isMoneyInput\n })\n );\n\n onNumberChange(parsedValue === 0 ? null : parsedValue);\n };\n\n const onFocus = () => {\n setStringValue(stringValue.replaceAll('.', ''));\n };\n\n useEffect(() => {\n handleChange(number);\n }, [handleChange, number]);\n\n return (\n <Input\n onChange={onChange}\n value={stringValue}\n placeholder={placeholder}\n onBlur={onBlur}\n onFocus={onFocus}\n isDisabled={isDisabled}\n />\n );\n};\n\nNumberInput.displayName = 'NumberInput';\n\nexport default NumberInput;\n"],"mappings":"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"}
@@ -8,8 +8,8 @@ const NUMBER_CLEAR_REGEX = /[^\d,]/gi;
8
8
  exports.NUMBER_CLEAR_REGEX = NUMBER_CLEAR_REGEX;
9
9
  const INTEGER_TEST = /^[1-9][0-9]*$/;
10
10
  exports.INTEGER_TEST = INTEGER_TEST;
11
- const DECIMAL_TEST = /^[0-9][1-9]*(\.[0-9]*)?$/;
11
+ const DECIMAL_TEST = /^(0|[1-9][0-9]*)?(\.[0-9]*)?$/;
12
12
  exports.DECIMAL_TEST = DECIMAL_TEST;
13
- const MONEY_TEST = /^[0-9][1-9]*(\.[0-9]{0,2})?$/;
13
+ const MONEY_TEST = /^(0|[1-9][0-9]*)?(\.[0-9]{0,2})?$/;
14
14
  exports.MONEY_TEST = MONEY_TEST;
15
15
  //# sourceMappingURL=number.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","names":["NUMBER_CLEAR_REGEX","exports","INTEGER_TEST","DECIMAL_TEST","MONEY_TEST"],"sources":["../../../../src/components/number-input/constants/number.ts"],"sourcesContent":["export const NUMBER_CLEAR_REGEX = /[^\\d,]/gi;\nexport const INTEGER_TEST = /^[1-9][0-9]*$/;\nexport const DECIMAL_TEST = /^[0-9][1-9]*(\\.[0-9]*)?$/;\nexport const MONEY_TEST = /^[0-9][1-9]*(\\.[0-9]{0,2})?$/;\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAG,UAAU;AAACC,OAAA,CAAAD,kBAAA,GAAAA,kBAAA;AACtC,MAAME,YAAY,GAAG,eAAe;AAACD,OAAA,CAAAC,YAAA,GAAAA,YAAA;AACrC,MAAMC,YAAY,GAAG,0BAA0B;AAACF,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAChD,MAAMC,UAAU,GAAG,8BAA8B;AAACH,OAAA,CAAAG,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"number.js","names":["NUMBER_CLEAR_REGEX","exports","INTEGER_TEST","DECIMAL_TEST","MONEY_TEST"],"sources":["../../../../src/components/number-input/constants/number.ts"],"sourcesContent":["export const NUMBER_CLEAR_REGEX = /[^\\d,]/gi;\nexport const INTEGER_TEST = /^[1-9][0-9]*$/;\nexport const DECIMAL_TEST = /^(0|[1-9][0-9]*)?(\\.[0-9]*)?$/;\nexport const MONEY_TEST = /^(0|[1-9][0-9]*)?(\\.[0-9]{0,2})?$/;\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAG,UAAU;AAACC,OAAA,CAAAD,kBAAA,GAAAA,kBAAA;AACtC,MAAME,YAAY,GAAG,eAAe;AAACD,OAAA,CAAAC,YAAA,GAAAA,YAAA;AACrC,MAAMC,YAAY,GAAG,+BAA+B;AAACF,OAAA,CAAAE,YAAA,GAAAA,YAAA;AACrD,MAAMC,UAAU,GAAG,mCAAmC;AAACH,OAAA,CAAAG,UAAA,GAAAA,UAAA"}
@@ -5,6 +5,7 @@ interface ParseFloatAndRoundOptions {
5
5
  export declare const parseFloatAndRound: ({ stringValue, decimals }: ParseFloatAndRoundOptions) => number;
6
6
  interface FormateNumberOptions {
7
7
  number: number | null;
8
+ isMoneyInput?: boolean;
8
9
  }
9
- export declare const formateNumber: ({ number }: FormateNumberOptions) => string;
10
+ export declare const formateNumber: ({ number, isMoneyInput }: FormateNumberOptions) => string;
10
11
  export {};
@@ -18,14 +18,17 @@ const parseFloatAndRound = _ref => {
18
18
  exports.parseFloatAndRound = parseFloatAndRound;
19
19
  const formateNumber = _ref2 => {
20
20
  let {
21
- number
21
+ number,
22
+ isMoneyInput
22
23
  } = _ref2;
23
24
  if (typeof number !== 'number') {
24
25
  return '';
25
26
  }
26
27
  return number.toLocaleString('de-DE', {
27
28
  useGrouping: true,
28
- maximumSignificantDigits: 20
29
+ minimumFractionDigits: isMoneyInput ? 2 : undefined,
30
+ maximumFractionDigits: isMoneyInput ? 2 : undefined,
31
+ maximumSignificantDigits: !isMoneyInput ? 20 : undefined
29
32
  });
30
33
  };
31
34
  exports.formateNumber = formateNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","names":["parseFloatAndRound","_ref","stringValue","decimals","parsed","parseFloat","replace","toFixed","exports","formateNumber","_ref2","number","toLocaleString","useGrouping","maximumSignificantDigits"],"sources":["../../../../src/components/number-input/utils/number.ts"],"sourcesContent":["interface ParseFloatAndRoundOptions {\n stringValue: string;\n decimals?: number;\n}\n\nexport const parseFloatAndRound = ({ stringValue, decimals }: ParseFloatAndRoundOptions) => {\n const parsed = parseFloat(stringValue.replace(',', '.'));\n\n if (decimals) {\n return parseFloat(parsed.toFixed(decimals));\n }\n\n return parsed;\n};\n\ninterface FormateNumberOptions {\n number: number | null;\n}\n\nexport const formateNumber = ({ number }: FormateNumberOptions) => {\n if (typeof number !== 'number') {\n return '';\n }\n\n return number.toLocaleString('de-DE', {\n useGrouping: true,\n maximumSignificantDigits: 20,\n });\n};\n"],"mappings":";;;;;;AAKO,MAAMA,kBAAkB,GAAGC,IAAA,IAA0D;EAAA,IAAzD;IAAEC,WAAW;IAAEC;EAAoC,CAAC,GAAAF,IAAA;EACnF,MAAMG,MAAM,GAAGC,UAAU,CAACH,WAAW,CAACI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAExD,IAAIH,QAAQ,EAAE;IACV,OAAOE,UAAU,CAACD,MAAM,CAACG,OAAO,CAACJ,QAAQ,CAAC,CAAC;EAC/C;EAEA,OAAOC,MAAM;AACjB,CAAC;AAACI,OAAA,CAAAR,kBAAA,GAAAA,kBAAA;AAMK,MAAMS,aAAa,GAAGC,KAAA,IAAsC;EAAA,IAArC;IAAEC;EAA6B,CAAC,GAAAD,KAAA;EAC1D,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC5B,OAAO,EAAE;EACb;EAEA,OAAOA,MAAM,CAACC,cAAc,CAAC,OAAO,EAAE;IAClCC,WAAW,EAAE,IAAI;IACjBC,wBAAwB,EAAE;EAC9B,CAAC,CAAC;AACN,CAAC;AAACN,OAAA,CAAAC,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"file":"number.js","names":["parseFloatAndRound","_ref","stringValue","decimals","parsed","parseFloat","replace","toFixed","exports","formateNumber","_ref2","number","isMoneyInput","toLocaleString","useGrouping","minimumFractionDigits","undefined","maximumFractionDigits","maximumSignificantDigits"],"sources":["../../../../src/components/number-input/utils/number.ts"],"sourcesContent":["interface ParseFloatAndRoundOptions {\n stringValue: string;\n decimals?: number;\n}\n\nexport const parseFloatAndRound = ({ stringValue, decimals }: ParseFloatAndRoundOptions) => {\n const parsed = parseFloat(stringValue.replace(',', '.'));\n\n if (decimals) {\n return parseFloat(parsed.toFixed(decimals));\n }\n\n return parsed;\n};\n\ninterface FormateNumberOptions {\n number: number | null;\n isMoneyInput?: boolean;\n}\n\nexport const formateNumber = ({ number, isMoneyInput }: FormateNumberOptions) => {\n if (typeof number !== 'number') {\n return '';\n }\n\n return number.toLocaleString('de-DE', {\n useGrouping: true,\n minimumFractionDigits: isMoneyInput ? 2 : undefined,\n maximumFractionDigits: isMoneyInput ? 2 : undefined,\n maximumSignificantDigits: !isMoneyInput ? 20 : undefined,\n });\n};\n"],"mappings":";;;;;;AAKO,MAAMA,kBAAkB,GAAGC,IAAA,IAA0D;EAAA,IAAzD;IAAEC,WAAW;IAAEC;EAAoC,CAAC,GAAAF,IAAA;EACnF,MAAMG,MAAM,GAAGC,UAAU,CAACH,WAAW,CAACI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;EAExD,IAAIH,QAAQ,EAAE;IACV,OAAOE,UAAU,CAACD,MAAM,CAACG,OAAO,CAACJ,QAAQ,CAAC,CAAC;EAC/C;EAEA,OAAOC,MAAM;AACjB,CAAC;AAACI,OAAA,CAAAR,kBAAA,GAAAA,kBAAA;AAOK,MAAMS,aAAa,GAAGC,KAAA,IAAoD;EAAA,IAAnD;IAAEC,MAAM;IAAEC;EAAmC,CAAC,GAAAF,KAAA;EACxE,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC5B,OAAO,EAAE;EACb;EAEA,OAAOA,MAAM,CAACE,cAAc,CAAC,OAAO,EAAE;IAClCC,WAAW,EAAE,IAAI;IACjBC,qBAAqB,EAAEH,YAAY,GAAG,CAAC,GAAGI,SAAS;IACnDC,qBAAqB,EAAEL,YAAY,GAAG,CAAC,GAAGI,SAAS;IACnDE,wBAAwB,EAAE,CAACN,YAAY,GAAG,EAAE,GAAGI;EACnD,CAAC,CAAC;AACN,CAAC;AAACR,OAAA,CAAAC,aAAA,GAAAA,aAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.0.0-beta.240",
3
+ "version": "5.0.0-beta.243",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "keywords": [
6
6
  "chayns",
@@ -65,5 +65,5 @@
65
65
  "publishConfig": {
66
66
  "access": "public"
67
67
  },
68
- "gitHead": "dabcf8a67a26cbb077054b568259f18555390832"
68
+ "gitHead": "25210004f6f9cd90b7acf6b149d0d7ca3a534e6b"
69
69
  }