@beinformed/ui 1.23.1 → 1.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js +9 -5
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js +9 -5
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.flow +17 -7
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/package.json +1 -1
- package/src/models/attributes/input-constraints/NumberGroupingConstraint.js +17 -7
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.23.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.23.1...v1.23.2) (2022-11-16)
|
|
6
|
+
|
|
5
7
|
### [1.23.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.23.0...v1.23.1) (2022-09-26)
|
|
6
8
|
|
|
7
9
|
|
|
@@ -92,22 +92,26 @@ class NumberGroupingConstraint {
|
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
94
|
*/
|
|
95
|
+
// $FlowFixMe
|
|
95
96
|
|
|
96
97
|
|
|
97
98
|
hasCorrectGrouping(value) {
|
|
98
|
-
|
|
99
|
+
// A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.
|
|
100
|
+
const absStringValue = value.replace("-", "").replace("+", "");
|
|
101
|
+
|
|
102
|
+
if (!_includesInstanceProperty(absStringValue).call(absStringValue, this.groupingSeparator)) {
|
|
99
103
|
return true;
|
|
100
104
|
}
|
|
101
105
|
|
|
102
|
-
let integer =
|
|
106
|
+
let integer = absStringValue;
|
|
103
107
|
|
|
104
|
-
if (this.decimalSeparator !== "" && _includesInstanceProperty(
|
|
108
|
+
if (this.decimalSeparator !== "" && _includesInstanceProperty(absStringValue).call(absStringValue, this.decimalSeparator)) {
|
|
105
109
|
// decimal before grouping
|
|
106
|
-
if (
|
|
110
|
+
if (absStringValue.indexOf(this.decimalSeparator) < absStringValue.indexOf(this.groupingSeparator)) {
|
|
107
111
|
return false;
|
|
108
112
|
}
|
|
109
113
|
|
|
110
|
-
integer =
|
|
114
|
+
integer = absStringValue.substring(0, absStringValue.indexOf(this.decimalSeparator));
|
|
111
115
|
}
|
|
112
116
|
|
|
113
117
|
let groups = integer.split(this.groupingSeparator); // when the first item is smaller than group size, remove it from check
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberGroupingConstraint.js","names":["DecimalFormat","DEFAULT_GROUPING_SIZE","NumberGroupingConstraint","constructor","groupingSeparator","decimalSeparator","format","_decimalSeparator","_groupingSeparator","_format","id","groupSize","fromFormat","comma","hasValidation","defaultMessage","parameters","hasCorrectGrouping","value","integer","indexOf","
|
|
1
|
+
{"version":3,"file":"NumberGroupingConstraint.js","names":["DecimalFormat","DEFAULT_GROUPING_SIZE","NumberGroupingConstraint","constructor","groupingSeparator","decimalSeparator","format","_decimalSeparator","_groupingSeparator","_format","id","groupSize","fromFormat","comma","hasValidation","defaultMessage","parameters","hasCorrectGrouping","value","absStringValue","replace","integer","indexOf","substring","groups","split","length","every","group","validate","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/NumberGroupingConstraint.js"],"sourcesContent":["// @flow\nimport DecimalFormat from \"../../../utils/number/DecimalFormat\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst DEFAULT_GROUPING_SIZE = 3;\n\n/**\n */\nclass NumberGroupingConstraint implements IConstraintModel {\n _decimalSeparator: string;\n _groupingSeparator: string;\n _format: string;\n\n /**\n */\n constructor(\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\",\n format: ?string = \"0\"\n ) {\n this._decimalSeparator = decimalSeparator;\n this._groupingSeparator = groupingSeparator;\n this._format = format ?? \"0\";\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Number.GroupingSeparator\";\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupSize(): number {\n if (this.format) {\n const fromFormat = new DecimalFormat(this.format).comma;\n if (fromFormat > 0) {\n return fromFormat;\n }\n }\n\n return DEFAULT_GROUPING_SIZE;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Group divider '${group-divider}' must be correctly placed\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { \"group-divider\": string } {\n return { \"group-divider\": this.groupingSeparator };\n }\n\n /**\n */\n // $FlowFixMe\n hasCorrectGrouping(value: string) {\n // A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.\n const absStringValue = value.replace(\"-\", \"\").replace(\"+\", \"\");\n\n if (!absStringValue.includes(this.groupingSeparator)) {\n return true;\n }\n\n let integer = absStringValue;\n if (\n this.decimalSeparator !== \"\" &&\n absStringValue.includes(this.decimalSeparator)\n ) {\n // decimal before grouping\n if (\n absStringValue.indexOf(this.decimalSeparator) <\n absStringValue.indexOf(this.groupingSeparator)\n ) {\n return false;\n }\n\n integer = absStringValue.substring(\n 0,\n absStringValue.indexOf(this.decimalSeparator)\n );\n }\n\n let groups = integer.split(this.groupingSeparator);\n\n // when the first item is smaller than group size, remove it from check\n if (groups[0].length < this.groupSize) {\n groups = groups.slice(1);\n }\n\n return groups.every((group) => group.length === this.groupSize);\n }\n\n /**\n */\n validate(value: string | number): boolean {\n return (\n this.groupingSeparator === \"\" ||\n typeof value !== \"string\" ||\n !value.includes(this.groupingSeparator) ||\n this.hasCorrectGrouping(value)\n );\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberGroupingConstraint;\n"],"mappings":"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"}
|
|
@@ -101,22 +101,26 @@ class NumberGroupingConstraint {
|
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
103
|
*/
|
|
104
|
+
// $FlowFixMe
|
|
104
105
|
|
|
105
106
|
|
|
106
107
|
hasCorrectGrouping(value) {
|
|
107
|
-
|
|
108
|
+
// A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.
|
|
109
|
+
const absStringValue = value.replace("-", "").replace("+", "");
|
|
110
|
+
|
|
111
|
+
if (!(0, _includes.default)(absStringValue).call(absStringValue, this.groupingSeparator)) {
|
|
108
112
|
return true;
|
|
109
113
|
}
|
|
110
114
|
|
|
111
|
-
let integer =
|
|
115
|
+
let integer = absStringValue;
|
|
112
116
|
|
|
113
|
-
if (this.decimalSeparator !== "" && (0, _includes.default)(
|
|
117
|
+
if (this.decimalSeparator !== "" && (0, _includes.default)(absStringValue).call(absStringValue, this.decimalSeparator)) {
|
|
114
118
|
// decimal before grouping
|
|
115
|
-
if (
|
|
119
|
+
if (absStringValue.indexOf(this.decimalSeparator) < absStringValue.indexOf(this.groupingSeparator)) {
|
|
116
120
|
return false;
|
|
117
121
|
}
|
|
118
122
|
|
|
119
|
-
integer =
|
|
123
|
+
integer = absStringValue.substring(0, absStringValue.indexOf(this.decimalSeparator));
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
let groups = integer.split(this.groupingSeparator); // when the first item is smaller than group size, remove it from check
|
|
@@ -81,22 +81,32 @@ class NumberGroupingConstraint implements IConstraintModel {
|
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
// $FlowFixMe
|
|
85
|
+
hasCorrectGrouping(value: string) {
|
|
86
|
+
// A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.
|
|
87
|
+
const absStringValue = value.replace("-", "").replace("+", "");
|
|
88
|
+
|
|
89
|
+
if (!absStringValue.includes(this.groupingSeparator)) {
|
|
86
90
|
return true;
|
|
87
91
|
}
|
|
88
92
|
|
|
89
|
-
let integer =
|
|
90
|
-
if (
|
|
93
|
+
let integer = absStringValue;
|
|
94
|
+
if (
|
|
95
|
+
this.decimalSeparator !== "" &&
|
|
96
|
+
absStringValue.includes(this.decimalSeparator)
|
|
97
|
+
) {
|
|
91
98
|
// decimal before grouping
|
|
92
99
|
if (
|
|
93
|
-
|
|
94
|
-
|
|
100
|
+
absStringValue.indexOf(this.decimalSeparator) <
|
|
101
|
+
absStringValue.indexOf(this.groupingSeparator)
|
|
95
102
|
) {
|
|
96
103
|
return false;
|
|
97
104
|
}
|
|
98
105
|
|
|
99
|
-
integer =
|
|
106
|
+
integer = absStringValue.substring(
|
|
107
|
+
0,
|
|
108
|
+
absStringValue.indexOf(this.decimalSeparator)
|
|
109
|
+
);
|
|
100
110
|
}
|
|
101
111
|
|
|
102
112
|
let groups = integer.split(this.groupingSeparator);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberGroupingConstraint.js","names":["DEFAULT_GROUPING_SIZE","NumberGroupingConstraint","constructor","groupingSeparator","decimalSeparator","format","_decimalSeparator","_groupingSeparator","_format","id","groupSize","fromFormat","DecimalFormat","comma","hasValidation","defaultMessage","parameters","hasCorrectGrouping","value","integer","indexOf","
|
|
1
|
+
{"version":3,"file":"NumberGroupingConstraint.js","names":["DEFAULT_GROUPING_SIZE","NumberGroupingConstraint","constructor","groupingSeparator","decimalSeparator","format","_decimalSeparator","_groupingSeparator","_format","id","groupSize","fromFormat","DecimalFormat","comma","hasValidation","defaultMessage","parameters","hasCorrectGrouping","value","absStringValue","replace","integer","indexOf","substring","groups","split","length","every","group","validate","isMandatoryConstraint"],"sources":["../../../../src/models/attributes/input-constraints/NumberGroupingConstraint.js"],"sourcesContent":["// @flow\nimport DecimalFormat from \"../../../utils/number/DecimalFormat\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst DEFAULT_GROUPING_SIZE = 3;\n\n/**\n */\nclass NumberGroupingConstraint implements IConstraintModel {\n _decimalSeparator: string;\n _groupingSeparator: string;\n _format: string;\n\n /**\n */\n constructor(\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\",\n format: ?string = \"0\"\n ) {\n this._decimalSeparator = decimalSeparator;\n this._groupingSeparator = groupingSeparator;\n this._format = format ?? \"0\";\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Number.GroupingSeparator\";\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupSize(): number {\n if (this.format) {\n const fromFormat = new DecimalFormat(this.format).comma;\n if (fromFormat > 0) {\n return fromFormat;\n }\n }\n\n return DEFAULT_GROUPING_SIZE;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Group divider '${group-divider}' must be correctly placed\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { \"group-divider\": string } {\n return { \"group-divider\": this.groupingSeparator };\n }\n\n /**\n */\n // $FlowFixMe\n hasCorrectGrouping(value: string) {\n // A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.\n const absStringValue = value.replace(\"-\", \"\").replace(\"+\", \"\");\n\n if (!absStringValue.includes(this.groupingSeparator)) {\n return true;\n }\n\n let integer = absStringValue;\n if (\n this.decimalSeparator !== \"\" &&\n absStringValue.includes(this.decimalSeparator)\n ) {\n // decimal before grouping\n if (\n absStringValue.indexOf(this.decimalSeparator) <\n absStringValue.indexOf(this.groupingSeparator)\n ) {\n return false;\n }\n\n integer = absStringValue.substring(\n 0,\n absStringValue.indexOf(this.decimalSeparator)\n );\n }\n\n let groups = integer.split(this.groupingSeparator);\n\n // when the first item is smaller than group size, remove it from check\n if (groups[0].length < this.groupSize) {\n groups = groups.slice(1);\n }\n\n return groups.every((group) => group.length === this.groupSize);\n }\n\n /**\n */\n validate(value: string | number): boolean {\n return (\n this.groupingSeparator === \"\" ||\n typeof value !== \"string\" ||\n !value.includes(this.groupingSeparator) ||\n this.hasCorrectGrouping(value)\n );\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberGroupingConstraint;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -81,22 +81,32 @@ class NumberGroupingConstraint implements IConstraintModel {
|
|
|
81
81
|
|
|
82
82
|
/**
|
|
83
83
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
// $FlowFixMe
|
|
85
|
+
hasCorrectGrouping(value: string) {
|
|
86
|
+
// A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.
|
|
87
|
+
const absStringValue = value.replace("-", "").replace("+", "");
|
|
88
|
+
|
|
89
|
+
if (!absStringValue.includes(this.groupingSeparator)) {
|
|
86
90
|
return true;
|
|
87
91
|
}
|
|
88
92
|
|
|
89
|
-
let integer =
|
|
90
|
-
if (
|
|
93
|
+
let integer = absStringValue;
|
|
94
|
+
if (
|
|
95
|
+
this.decimalSeparator !== "" &&
|
|
96
|
+
absStringValue.includes(this.decimalSeparator)
|
|
97
|
+
) {
|
|
91
98
|
// decimal before grouping
|
|
92
99
|
if (
|
|
93
|
-
|
|
94
|
-
|
|
100
|
+
absStringValue.indexOf(this.decimalSeparator) <
|
|
101
|
+
absStringValue.indexOf(this.groupingSeparator)
|
|
95
102
|
) {
|
|
96
103
|
return false;
|
|
97
104
|
}
|
|
98
105
|
|
|
99
|
-
integer =
|
|
106
|
+
integer = absStringValue.substring(
|
|
107
|
+
0,
|
|
108
|
+
absStringValue.indexOf(this.decimalSeparator)
|
|
109
|
+
);
|
|
100
110
|
}
|
|
101
111
|
|
|
102
112
|
let groups = integer.split(this.groupingSeparator);
|