@beinformed/ui 1.59.17 → 1.59.18

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 CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.59.18](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.17...v1.59.18) (2025-01-31)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **number-attribute-model:** prevent null assignment to inputvalue ([941be56](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/941be565a8a5ba578fc43d01461767face606de5))
11
+
5
12
  ## [1.59.17](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.16...v1.59.17) (2025-01-20)
6
13
 
7
14
 
@@ -4,11 +4,11 @@ import formatValue from "../../utils/number/formatValue";
4
4
  import { parseNumberToString, parseToNumber } from "../../utils/number/parseNumbers";
5
5
  import AttributeModel from "./AttributeModel";
6
6
  import ConstraintCollection from "./input-constraints/ConstraintCollection";
7
- import { CASEVIEW_LINK, INITIAL_TOTAL_FILESIZE, MAX_TOTAL_FILESIZE } from "../../constants/LayoutHints";
8
7
  import { ATTRIBUTE_WIDTH } from "../../constants";
8
+ import { CASEVIEW_LINK, INITIAL_TOTAL_FILESIZE, MAX_TOTAL_FILESIZE } from "../../constants/LayoutHints";
9
+ import NumberBoundaryConstraint from "./input-constraints/NumberBoundaryConstraint";
9
10
  import NumberFormatConstraint from "./input-constraints/NumberFormatConstraint";
10
11
  import NumberGroupingConstraint from "./input-constraints/NumberGroupingConstraint";
11
- import NumberBoundaryConstraint from "./input-constraints/NumberBoundaryConstraint";
12
12
  /**
13
13
  * Number attribute
14
14
  */
@@ -157,7 +157,7 @@ export default class NumberAttributeModel extends AttributeModel {
157
157
  return this;
158
158
  }
159
159
  this.updateLastModification();
160
- this.inputvalue = value;
160
+ this.inputvalue = value || "";
161
161
  return this;
162
162
  }
163
163
 
@@ -1 +1 @@
1
- {"version":3,"file":"NumberAttributeModel.js","names":["isPlainObject","formatValue","parseNumberToString","parseToNumber","AttributeModel","ConstraintCollection","CASEVIEW_LINK","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","ATTRIBUTE_WIDTH","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","NumberAttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","_includesInstanceProperty","call","split","length","unit","placeholder","addConstraints","constraints","add","reset","inputvalue","toString","readonlyvalue","getInputValue","_inputvalue","validate","outputNumber","isNaN","getValue","_value","Number","update","updateLastModification","updateByAttribute","otherAttribute","console","error","isHidden","layouthint","has","readonlyWidth","SMALL"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format != null && format.includes(\".\")) {\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof NumberAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of number attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK,\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":";AACA,SAASA,aAAa,QAAQ,6BAA6B;AAC3D,OAAOC,WAAW,MAAM,gCAAgC;AACxD,SACEC,mBAAmB,EACnBC,aAAa,QACR,iCAAiC;AAExC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,oBAAoB,MAAM,0CAA0C;AAE3E,SACEC,aAAa,EACbC,sBAAsB,EACtBC,kBAAkB,QACb,6BAA6B;AACpC,SAASC,eAAe,QAAQ,iBAAiB;AAEjD,OAAOC,sBAAsB,MAAM,4CAA4C;AAC/E,OAAOC,wBAAwB,MAAM,8CAA8C;AACnF,OAAOC,wBAAwB,MAAM,8CAA8C;AAInF;AACA;AACA;AACA,eAAe,MAAMC,oBAAoB,SAAST,cAAc,CAAC;EAC/D;AACF;EACE,OAAOU,iBAAiBA,CAACC,aAAqB,EAAW;IACvD,OAAOA,aAAa,CAACC,IAAI,KAAK,QAAQ,IAAID,aAAa,CAACC,IAAI,KAAK,SAAS;EAC5E;;EAEA;AACF;EACE,IAAIA,IAAIA,CAAA,EAAW;IACjB,OAAO,QAAQ;EACjB;;EAEA;AACF;AACA;EACEC,oBAAoBA,CAACC,KAAc,EAAU;IAC3C,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,EAAE;IACX;IAEA,OAAO,IAAI,CAACjB,WAAW,CAACiB,KAAK,CAAC;EAChC;;EAEA;AACF;AACA;EACE,IAAIC,iBAAiBA,CAAA,EAAW;IAC9B,OAAO,IAAI,CAACC,eAAe,CAAC,mBAAmB,EAAE,EAAE,CAAC;EACtD;;EAEA;AACF;AACA;EACE,IAAIC,gBAAgBA,CAAA,EAAW;IAC7B,OAAO,IAAI,CAACD,eAAe,CAAC,kBAAkB,EAAE,EAAE,CAAC;EACrD;;EAEA;AACF;AACA;EACE,IAAIE,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACP,aAAa,CAACQ,OAAO;EACnC;;EAEA;AACF;AACA;EACE,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACT,aAAa,CAACU,OAAO;EACnC;;EAEA;AACF;AACA;EACE,IAAIC,SAASA,CAAA,EAAW;IACtB,MAAMC,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,IAAIA,MAAM,IAAI,IAAI,IAAIC,yBAAA,CAAAD,MAAM,EAAAE,IAAA,CAANF,MAAM,EAAU,GAAG,CAAC,EAAE;MAC1C,OAAOA,MAAM,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACC,MAAM;IACpC;IAEA,OAAO,CAAC;EACV;;EAEA;AACF;AACA;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACZ,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;EACzC;;EAEA;AACF;AACA;EACE,IAAIa,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACb,eAAe,CAAC,aAAa,EAAE,EAAE,CAAC;EAChD;;EAEA;AACF;AACA;EACEc,cAAcA,CAAA,EAAyB;IACrC,MAAMC,WAAW,GAAG,IAAI9B,oBAAoB,CAAC,CAAC;IAE9C8B,WAAW,CAACC,GAAG,CACb,IAAI1B,sBAAsB,CACxB,IAAI,CAACS,iBAAiB,EACtB,IAAI,CAACE,gBAAgB,EACrB,IAAI,CAACM,MACP,CACF,CAAC;IACDQ,WAAW,CAACC,GAAG,CACb,IAAIzB,wBAAwB,CAC1B,IAAI,CAACQ,iBAAiB,EACtB,IAAI,CAACE,gBAAgB,EACrB,IAAI,CAACM,MACP,CACF,CAAC;IACDQ,WAAW,CAACC,GAAG,CACb,IAAIxB,wBAAwB,CAC1B,IAAI,CAACU,SAAS,EACd,IAAI,CAACE,SAAS,EACd,IAAI,CAACL,iBAAiB,EACtB,IAAI,CAACE,gBAAgB,EACrB,IAAI,CAACM,MACP,CACF,CAAC;IAED,OAAOQ,WAAW;EACpB;;EAEA;AACF;AACA;EACEE,KAAKA,CAAA,EAAG;IACN,IAAI,CAACC,UAAU,GAAG,EAAE;EACtB;;EAEA;AACF;EACErC,WAAWA,CAACiB,KAAwB,EAAU;IAC5C,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACqB,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;MAC5C,OAAO,EAAE;IACX;IAEA,OAAOtC,WAAW,CAChBiB,KAAK,EACL,IAAI,CAACS,MAAM,EACX,IAAI,CAACR,iBAAiB,EACtB,IAAI,CAACE,gBACP,CAAC;EACH;;EAEA;AACF;EACE,IAAImB,aAAaA,CAAA,EAAW;IAC1B,IAAI,CAACxC,aAAa,CAAC,IAAI,CAACkB,KAAK,CAAC,EAAE;MAC9B,OAAO,IAAI,CAACjB,WAAW,CAAC,IAAI,CAACiB,KAAK,CAAC;IACrC;IAEA,OAAO,IAAI,CAACA,KAAK;EACnB;;EAEA;AACF;AACA;EACE,IAAIoB,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACG,aAAa,CAAC,CAAC;EAC7B;;EAEA;AACF;AACA;EACE,IAAIH,UAAUA,CAACpB,KAAa,EAAE;IAC5B,IAAI,CAACwB,WAAW,GAAGxB,KAAK;IACxB,IAAI,CAACyB,QAAQ,CAACzB,KAAK,CAAC;IAEpB,MAAM0B,YAAY,GAAGzC,aAAa,CAChCe,KAAK,EACL,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACE,gBACP,CAAC;IAED,IAAI,CAACH,KAAK,GAAG2B,KAAK,CAACD,YAAY,CAAC,GAAG,IAAI,GAAG1C,mBAAmB,CAAC0C,YAAY,CAAC;EAC7E;;EAEA;AACF;AACA;EACEE,QAAQA,CAAA,EAAkB;IACxB,MAAM5B,KAAK,GAAG,IAAI,CAAC6B,MAAM;IAEzB,OAAO7B,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,GAAG,IAAI,GAAG8B,MAAM,CAAC9B,KAAK,CAAC;EAC7D;;EAEA;AACF;AACA;EACE+B,MAAMA,CAAC/B,KAAa,EAAwB;IAC1C,IAAIA,KAAK,KAAK,IAAI,CAACoB,UAAU,EAAE;MAC7B,OAAO,IAAI;IACb;IAEA,IAAI,CAACY,sBAAsB,CAAC,CAAC;IAC7B,IAAI,CAACZ,UAAU,GAAGpB,KAAK;IAEvB,OAAO,IAAI;EACb;;EAEA;AACF;EACEiC,iBAAiBA,CAACC,cAA6B,EAAQ;IACrD,IAAI,CAACf,KAAK,CAAC,CAAC;IACZ,IAAIe,cAAc,YAAYvC,oBAAoB,EAAE;MAClD,IAAI,CAACoC,MAAM,CAACG,cAAc,CAAClC,KAAK,CAAC;IACnC,CAAC,MAAM;MACLmC,OAAO,CAACC,KAAK,CACX,mCAAmCF,cAAc,CAACpC,IAAI,gBACxD,CAAC;IACH;EACF;;EAEA;AACF;EACE,IAAIuC,QAAQA,CAAA,EAAY;IACtB,OACE,KAAK,CAACA,QAAQ,IACd,IAAI,CAACC,UAAU,CAACC,GAAG,CACjBlD,sBAAsB,EACtBC,kBAAkB,EAClBF,aACF,CAAC;EAEL;;EAEA;AACF;EACE,IAAIiD,QAAQA,CAACA,QAAiB,EAAE;IAC9B,KAAK,CAACA,QAAQ,GAAGA,QAAQ;EAC3B;;EAEA;AACF;EACE,IAAIG,aAAaA,CAAA,EAAkC;IACjD,OAAOjD,eAAe,CAACkD,KAAK;EAC9B;AACF","ignoreList":[]}
1
+ {"version":3,"file":"NumberAttributeModel.js","names":["isPlainObject","formatValue","parseNumberToString","parseToNumber","AttributeModel","ConstraintCollection","ATTRIBUTE_WIDTH","CASEVIEW_LINK","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","NumberBoundaryConstraint","NumberFormatConstraint","NumberGroupingConstraint","NumberAttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","_includesInstanceProperty","call","split","length","unit","placeholder","addConstraints","constraints","add","reset","inputvalue","toString","readonlyvalue","getInputValue","_inputvalue","validate","outputNumber","isNaN","getValue","_value","Number","update","updateLastModification","updateByAttribute","otherAttribute","console","error","isHidden","layouthint","has","readonlyWidth","SMALL"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\n\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format != null && format.includes(\".\")) {\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value || \"\";\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof NumberAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of number attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK,\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,11 +11,11 @@ var _formatValue = _interopRequireDefault(require("../../utils/number/formatValu
11
11
  var _parseNumbers = require("../../utils/number/parseNumbers");
12
12
  var _AttributeModel = _interopRequireDefault(require("./AttributeModel"));
13
13
  var _ConstraintCollection = _interopRequireDefault(require("./input-constraints/ConstraintCollection"));
14
- var _LayoutHints = require("../../constants/LayoutHints");
15
14
  var _constants = require("../../constants");
15
+ var _LayoutHints = require("../../constants/LayoutHints");
16
+ var _NumberBoundaryConstraint = _interopRequireDefault(require("./input-constraints/NumberBoundaryConstraint"));
16
17
  var _NumberFormatConstraint = _interopRequireDefault(require("./input-constraints/NumberFormatConstraint"));
17
18
  var _NumberGroupingConstraint = _interopRequireDefault(require("./input-constraints/NumberGroupingConstraint"));
18
- var _NumberBoundaryConstraint = _interopRequireDefault(require("./input-constraints/NumberBoundaryConstraint"));
19
19
  /**
20
20
  * Number attribute
21
21
  */
@@ -164,7 +164,7 @@ class NumberAttributeModel extends _AttributeModel.default {
164
164
  return this;
165
165
  }
166
166
  this.updateLastModification();
167
- this.inputvalue = value;
167
+ this.inputvalue = value || "";
168
168
  return this;
169
169
  }
170
170
 
@@ -9,16 +9,16 @@ import {
9
9
  import AttributeModel from "./AttributeModel";
10
10
  import ConstraintCollection from "./input-constraints/ConstraintCollection";
11
11
 
12
+ import { ATTRIBUTE_WIDTH } from "../../constants";
12
13
  import {
13
14
  CASEVIEW_LINK,
14
15
  INITIAL_TOTAL_FILESIZE,
15
16
  MAX_TOTAL_FILESIZE,
16
17
  } from "../../constants/LayoutHints";
17
- import { ATTRIBUTE_WIDTH } from "../../constants";
18
18
 
19
+ import NumberBoundaryConstraint from "./input-constraints/NumberBoundaryConstraint";
19
20
  import NumberFormatConstraint from "./input-constraints/NumberFormatConstraint";
20
21
  import NumberGroupingConstraint from "./input-constraints/NumberGroupingConstraint";
21
- import NumberBoundaryConstraint from "./input-constraints/NumberBoundaryConstraint";
22
22
 
23
23
  import type { AttributeType } from "../types";
24
24
 
@@ -210,7 +210,7 @@ export default class NumberAttributeModel extends AttributeModel {
210
210
  }
211
211
 
212
212
  this.updateLastModification();
213
- this.inputvalue = value;
213
+ this.inputvalue = value || "";
214
214
 
215
215
  return this;
216
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NumberAttributeModel.js","names":["_objects","require","_formatValue","_interopRequireDefault","_parseNumbers","_AttributeModel","_ConstraintCollection","_LayoutHints","_constants","_NumberFormatConstraint","_NumberGroupingConstraint","_NumberBoundaryConstraint","NumberAttributeModel","AttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","formatValue","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","_includes","default","call","split","length","unit","placeholder","addConstraints","constraints","ConstraintCollection","add","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","reset","inputvalue","toString","readonlyvalue","isPlainObject","getInputValue","_inputvalue","validate","outputNumber","parseToNumber","isNaN","parseNumberToString","getValue","_value","Number","update","updateLastModification","updateByAttribute","otherAttribute","console","error","isHidden","layouthint","has","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","CASEVIEW_LINK","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","exports"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format != null && format.includes(\".\")) {\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof NumberAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of number attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK,\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberAttributeModel.js","names":["_objects","require","_formatValue","_interopRequireDefault","_parseNumbers","_AttributeModel","_ConstraintCollection","_constants","_LayoutHints","_NumberBoundaryConstraint","_NumberFormatConstraint","_NumberGroupingConstraint","NumberAttributeModel","AttributeModel","isApplicableModel","contributions","type","getInitialInputValue","value","formatValue","groupingSeparator","getContribution","decimalSeparator","minNumber","minimum","maxNumber","maximum","maxDigits","format","_includes","default","call","split","length","unit","placeholder","addConstraints","constraints","ConstraintCollection","add","NumberFormatConstraint","NumberGroupingConstraint","NumberBoundaryConstraint","reset","inputvalue","toString","readonlyvalue","isPlainObject","getInputValue","_inputvalue","validate","outputNumber","parseToNumber","isNaN","parseNumberToString","getValue","_value","Number","update","updateLastModification","updateByAttribute","otherAttribute","console","error","isHidden","layouthint","has","INITIAL_TOTAL_FILESIZE","MAX_TOTAL_FILESIZE","CASEVIEW_LINK","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","exports"],"sources":["../../../src/models/attributes/NumberAttributeModel.js"],"sourcesContent":["// @flow\nimport { isPlainObject } from \"../../utils/helpers/objects\";\nimport formatValue from \"../../utils/number/formatValue\";\nimport {\n parseNumberToString,\n parseToNumber,\n} from \"../../utils/number/parseNumbers\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport {\n CASEVIEW_LINK,\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n} from \"../../constants/LayoutHints\";\n\nimport NumberBoundaryConstraint from \"./input-constraints/NumberBoundaryConstraint\";\nimport NumberFormatConstraint from \"./input-constraints/NumberFormatConstraint\";\nimport NumberGroupingConstraint from \"./input-constraints/NumberGroupingConstraint\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Number attribute\n */\nexport default class NumberAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"number\" || contributions.type === \"integer\";\n }\n\n /**\n */\n get type(): string {\n return \"number\";\n }\n\n /**\n * Get initial value\n */\n getInitialInputValue(value?: string): string {\n if (value == null) {\n return \"\";\n }\n\n return this.formatValue(value);\n }\n\n /**\n * Get grouping separator\n */\n get groupingSeparator(): string {\n return this.getContribution(\"groupingSeparator\", \"\");\n }\n\n /**\n * Get decimal separator\n */\n get decimalSeparator(): string {\n return this.getContribution(\"decimalSeparator\", \"\");\n }\n\n /**\n * Get minimum value\n */\n get minNumber(): ?number {\n return this.contributions.minimum;\n }\n\n /**\n * Get maximum value\n */\n get maxNumber(): ?number {\n return this.contributions.maximum;\n }\n\n /**\n * Gets the maximum digits based on the format\n */\n get maxDigits(): number {\n const format = this.format;\n\n if (format != null && format.includes(\".\")) {\n return format.split(\".\")[1].length;\n }\n\n return 0;\n }\n\n /**\n * Get unit text\n */\n get unit(): string {\n return this.getContribution(\"unit\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Add number constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(\n new NumberFormatConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberGroupingConstraint(\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n constraints.add(\n new NumberBoundaryConstraint(\n this.minNumber,\n this.maxNumber,\n this.groupingSeparator,\n this.decimalSeparator,\n this.format,\n ),\n );\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatValue(value: ?number | ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n return formatValue(\n value,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (!isPlainObject(this.value)) {\n return this.formatValue(this.value);\n }\n\n return this.value;\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.validate(value);\n\n const outputNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n this.value = isNaN(outputNumber) ? null : parseNumberToString(outputNumber);\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): number | null {\n const value = this._value;\n\n return value == null || value === \"\" ? null : Number(value);\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): NumberAttributeModel {\n if (value === this.inputvalue) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value || \"\";\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof NumberAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of number attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get isHidden(): boolean {\n return (\n super.isHidden ||\n this.layouthint.has(\n INITIAL_TOTAL_FILESIZE,\n MAX_TOTAL_FILESIZE,\n CASEVIEW_LINK,\n )\n );\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n super.isHidden = isHidden;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beinformed/ui",
3
- "version": "1.59.17",
3
+ "version": "1.59.18",
4
4
  "description": "Toolbox for be informed javascript layouts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "bugs": "http://support.beinformed.com",
@@ -9,16 +9,16 @@ import {
9
9
  import AttributeModel from "./AttributeModel";
10
10
  import ConstraintCollection from "./input-constraints/ConstraintCollection";
11
11
 
12
+ import { ATTRIBUTE_WIDTH } from "../../constants";
12
13
  import {
13
14
  CASEVIEW_LINK,
14
15
  INITIAL_TOTAL_FILESIZE,
15
16
  MAX_TOTAL_FILESIZE,
16
17
  } from "../../constants/LayoutHints";
17
- import { ATTRIBUTE_WIDTH } from "../../constants";
18
18
 
19
+ import NumberBoundaryConstraint from "./input-constraints/NumberBoundaryConstraint";
19
20
  import NumberFormatConstraint from "./input-constraints/NumberFormatConstraint";
20
21
  import NumberGroupingConstraint from "./input-constraints/NumberGroupingConstraint";
21
- import NumberBoundaryConstraint from "./input-constraints/NumberBoundaryConstraint";
22
22
 
23
23
  import type { AttributeType } from "../types";
24
24
 
@@ -210,7 +210,7 @@ export default class NumberAttributeModel extends AttributeModel {
210
210
  }
211
211
 
212
212
  this.updateLastModification();
213
- this.inputvalue = value;
213
+ this.inputvalue = value || "";
214
214
 
215
215
  return this;
216
216
  }