@beinformed/ui 1.59.16 → 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 +14 -0
- package/esm/models/attributes/NumberAttributeModel.js +3 -3
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js +1 -0
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/types.js.map +1 -1
- package/esm/utils/fetch/types.js.map +1 -1
- package/esm/utils/fetch/xhr.js +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js +3 -3
- package/lib/models/attributes/NumberAttributeModel.js.flow +3 -3
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js +1 -0
- package/lib/redux/_modularui/ModularUIActions.js.flow +1 -0
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.flow +1 -0
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/types.js.flow +1 -0
- package/lib/redux/_modularui/types.js.map +1 -1
- package/lib/utils/fetch/types.js.flow +1 -0
- package/lib/utils/fetch/types.js.map +1 -1
- package/lib/utils/fetch/xhr.js +1 -1
- package/lib/utils/fetch/xhr.js.flow +4 -1
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/package.json +8 -8
- package/src/models/attributes/NumberAttributeModel.js +3 -3
- package/src/redux/_modularui/ModularUIActions.js +1 -0
- package/src/redux/_modularui/ModularUIMiddleware.js +1 -0
- package/src/redux/_modularui/types.js +1 -0
- package/src/utils/fetch/types.js +1 -0
- package/src/utils/fetch/xhr.js +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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
|
+
|
|
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)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **cors:** add xhr option to set withCredentials to true for specific request ([a4c10a5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/a4c10a5c1e309c075c60b3430a2b097a318db353))
|
|
18
|
+
|
|
5
19
|
## [1.59.16](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.59.16-beta.1...v1.59.16) (2025-01-20)
|
|
6
20
|
|
|
7
21
|
|
|
@@ -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":"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","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":";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,SAASC,eAAe,QAAQ,iBAAiB;AACjD,SACEC,aAAa,EACbC,sBAAsB,EACtBC,kBAAkB,QACb,6BAA6B;AAEpC,OAAOC,wBAAwB,MAAM,8CAA8C;AACnF,OAAOC,sBAAsB,MAAM,4CAA4C;AAC/E,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,IAAIzB,sBAAsB,CACxB,IAAI,CAACQ,iBAAiB,EACtB,IAAI,CAACE,gBAAgB,EACrB,IAAI,CAACM,MACP,CACF,CAAC;IACDQ,WAAW,CAACC,GAAG,CACb,IAAIxB,wBAAwB,CAC1B,IAAI,CAACO,iBAAiB,EACtB,IAAI,CAACE,gBAAgB,EACrB,IAAI,CAACM,MACP,CACF,CAAC;IACDQ,WAAW,CAACC,GAAG,CACb,IAAI1B,wBAAwB,CAC1B,IAAI,CAACY,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,IAAI,EAAE;IAE7B,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,CACjBjD,sBAAsB,EACtBC,kBAAkB,EAClBF,aACF,CAAC;EAEL;;EAEA;AACF;EACE,IAAIgD,QAAQA,CAACA,QAAiB,EAAE;IAC9B,KAAK,CAACA,QAAQ,GAAGA,QAAQ;EAC3B;;EAEA;AACF;EACE,IAAIG,aAAaA,CAAA,EAAkC;IACjD,OAAOpD,eAAe,CAACqD,KAAK;EAC9B;AACF","ignoreList":[]}
|
|
@@ -111,6 +111,7 @@ export const loadModel = (key, href, options) => ({
|
|
|
111
111
|
forceTargetModel: options?.forceTargetModel,
|
|
112
112
|
cache: options?.cache,
|
|
113
113
|
isReload: options?.isReload,
|
|
114
|
+
withCredentials: options?.withCredentials,
|
|
114
115
|
/**
|
|
115
116
|
*/
|
|
116
117
|
successAction: model => loadModelSuccessAction(key, model, options?.updateHandler),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIActions.js","names":["HTTP_METHODS","MODULARUI_STATUS","Href","ErrorResponse","finishProgress","startProgress","handleError","setModel","key","model","connectKey","type","payload","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","getRequestLocale","optionLocale","navigator","language","split","loadModel","href","options","origin","contextPath","method","GET","params","data","timeout","headers","events","onProgress","locale","childmodels","targetModel","forceTargetModel","cache","isReload","successAction","errorAction","error","errorResponse","isChangePassword","isResourceNotFoundAfterReload","ERROR","loadModularUI","dispatch","getState","modularuiStore","modularui","LOADING","_Promise","resolve","loadModelPromise","then","catch","reloadModel","selfhref"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * Retrieve the preferred language for this request, falls back to the browser language or english\n */\nconst getRequestLocale = (optionLocale: ?string): string => {\n if (optionLocale) {\n return optionLocale;\n }\n\n if (typeof navigator !== \"undefined\" && navigator?.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n params: options?.params,\n data: options?.data,\n timeout: options?.timeout,\n headers: options?.headers,\n events: options?.events,\n onProgress: options?.onProgress,\n locale: getRequestLocale(options?.locale),\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n isReload: options?.isReload,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (\n errorResponse.isChangePassword ||\n errorResponse.isResourceNotFoundAfterReload\n ) {\n return removeModelByKey(key);\n }\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch, getState) => {\n const modularuiStore = getState()?.modularui;\n if (\n modularuiStore &&\n modularuiStore[key]?.status === MODULARUI_STATUS.LOADING\n ) {\n return Promise.resolve();\n }\n\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ModularUIActions.js","names":["HTTP_METHODS","MODULARUI_STATUS","Href","ErrorResponse","finishProgress","startProgress","handleError","setModel","key","model","connectKey","type","payload","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","getRequestLocale","optionLocale","navigator","language","split","loadModel","href","options","origin","contextPath","method","GET","params","data","timeout","headers","events","onProgress","locale","childmodels","targetModel","forceTargetModel","cache","isReload","withCredentials","successAction","errorAction","error","errorResponse","isChangePassword","isResourceNotFoundAfterReload","ERROR","loadModularUI","dispatch","getState","modularuiStore","modularui","LOADING","_Promise","resolve","loadModelPromise","then","catch","reloadModel","selfhref"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * Retrieve the preferred language for this request, falls back to the browser language or english\n */\nconst getRequestLocale = (optionLocale: ?string): string => {\n if (optionLocale) {\n return optionLocale;\n }\n\n if (typeof navigator !== \"undefined\" && navigator?.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n params: options?.params,\n data: options?.data,\n timeout: options?.timeout,\n headers: options?.headers,\n events: options?.events,\n onProgress: options?.onProgress,\n locale: getRequestLocale(options?.locale),\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n isReload: options?.isReload,\n withCredentials: options?.withCredentials,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (\n errorResponse.isChangePassword ||\n errorResponse.isResourceNotFoundAfterReload\n ) {\n return removeModelByKey(key);\n }\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch, getState) => {\n const modularuiStore = getState()?.modularui;\n if (\n modularuiStore &&\n modularuiStore[key]?.status === MODULARUI_STATUS.LOADING\n ) {\n return Promise.resolve();\n }\n\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIMiddleware.js","names":["ModularUIRequest","HTTP_METHODS","MODULARUI_STATUS","startProgress","finishProgress","handleError","updateStatus","createRequest","modularui","request","href","method","GET","params","data","locale","childmodels","isReload","cache","headers","events","onProgress","origin","contextPath","targetModel","forceTargetModel","responseHandler","next","dispatch","successAction","model","successResult","_Promise","then","result","catch","error","Error","errorHandler","errorAction","err","errorResult","handleFetch","action","key","requestOptions","payload","modularuiRequest","LOADING","fetch","modularUIMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport { updateStatus } from \"./ModularUIActions\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\ntype RequestOptions = {\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n isReload?: boolean,\n cache?: boolean,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions): ModularUIRequest => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n params: modularui.params || \"\",\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n cache: modularui.cache,\n headers: modularui.headers,\n events: modularui.events,\n onProgress: modularui.onProgress,\n });\n\n if (modularui.origin) {\n request.origin = modularui.origin;\n }\n\n if (modularui.contextPath) {\n request.contextPath = modularui.contextPath;\n }\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n request.forceTargetModel = modularui.forceTargetModel ?? false;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel,\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`,\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any,\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch,\n) => {\n dispatch(startProgress());\n\n const { key, successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch,\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next,\n );\n }\n\n return next(action);\n };\n"],"mappings":";AACA,OAAOA,gBAAgB,MAAM,kCAAkC;AAC/D,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,2BAA2B;AAE1E,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,WAAW,QAAQ,kBAAkB;AAE9C,SAASC,YAAY,QAAQ,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ModularUIMiddleware.js","names":["ModularUIRequest","HTTP_METHODS","MODULARUI_STATUS","startProgress","finishProgress","handleError","updateStatus","createRequest","modularui","request","href","method","GET","params","data","locale","childmodels","isReload","cache","headers","events","onProgress","origin","contextPath","targetModel","forceTargetModel","responseHandler","next","dispatch","successAction","model","successResult","_Promise","then","result","catch","error","Error","errorHandler","errorAction","err","errorResult","handleFetch","action","key","requestOptions","payload","modularuiRequest","LOADING","fetch","modularUIMiddleware","api","type","getState","i18n"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport { updateStatus } from \"./ModularUIActions\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\ntype RequestOptions = {\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n isReload?: boolean,\n cache?: boolean,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n withCredentials?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions): ModularUIRequest => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n params: modularui.params || \"\",\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n cache: modularui.cache,\n headers: modularui.headers,\n events: modularui.events,\n onProgress: modularui.onProgress,\n });\n\n if (modularui.origin) {\n request.origin = modularui.origin;\n }\n\n if (modularui.contextPath) {\n request.contextPath = modularui.contextPath;\n }\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n request.forceTargetModel = modularui.forceTargetModel ?? false;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel,\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`,\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any,\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch,\n) => {\n dispatch(startProgress());\n\n const { key, successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch,\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next,\n );\n }\n\n return next(action);\n };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/redux/_modularui/types.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { FetchException } from \"../../exceptions\";\nimport type { NoAction } from \"../types\";\nimport typeof {\n HTTP_METHODS,\n MODULARUI_STATUS,\n} from \"../../constants/Constants\";\nimport type { ComponentType } from \"react\";\nimport type { TargetModel } from \"../../modularui/types\";\nimport type { RequestModularUIOptions } from \"../../utils/fetch/types\";\n\nexport type ModularUIOptions = {\n propName?: string,\n removeOnUnmount?: boolean,\n ...RequestModularUIOptions,\n};\n\nexport type ModelEntry = {\n +status: string,\n +model: ModularUIModel,\n +lastModification: number,\n};\n\nexport type ModularUIState = {\n [string]: ModelEntry,\n ...\n};\n\nexport type SetModelAction = {\n type: \"MODULARUI/SET\",\n payload: {\n key: string,\n model: ?ModularUIModel,\n },\n};\n\nexport type InitModelAction = {\n type: \"MODULARUI/INIT\",\n payload: Array<{\n key: string,\n model: ModularUIModel,\n }>,\n};\n\nexport type UpdateModelAction = {\n type: \"MODULARUI/UPDATE\",\n payload: ModularUIModel,\n};\n\nexport type UpdateFormAction = {\n type: \"MODULARUI/UPDATE_FORM\",\n payload: ModularUIModel,\n};\n\nexport type SuccessAction = (\n model: ModularUIModel,\n) => UpdateModelAction | SetModelAction;\n\nexport type ErrorAction = (\n error: FetchException,\n) => UpdateStatusAction | RemoveModelByKeyAction | NoAction;\n\nexport type ModularUIAction = {\n type: \"MODULARUI/FETCH\",\n payload: {\n key: string,\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n cache?: boolean,\n isReload?: boolean,\n successAction: (\n model: ModularUIModel,\n ) => UpdateModelAction | SetModelAction,\n errorAction?: ErrorAction,\n },\n};\n\nexport type RemoveModelByKeyAction = {\n type: \"MODULARUI/REMOVE_KEY\",\n payload: string,\n};\n\nexport type ResetModularUIAction = {\n type: \"MODULARUI/RESET\",\n};\n\nexport type UpdateStatusAction = {\n type: \"MODULARUI/STATUS\",\n payload: {\n key: string,\n status: $Keys<MODULARUI_STATUS>,\n },\n};\n\nexport type ModularUIConnector = (\n Component: ComponentType<any>,\n) => ComponentType<any>;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/redux/_modularui/types.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { FetchException } from \"../../exceptions\";\nimport type { NoAction } from \"../types\";\nimport typeof {\n HTTP_METHODS,\n MODULARUI_STATUS,\n} from \"../../constants/Constants\";\nimport type { ComponentType } from \"react\";\nimport type { TargetModel } from \"../../modularui/types\";\nimport type { RequestModularUIOptions } from \"../../utils/fetch/types\";\n\nexport type ModularUIOptions = {\n propName?: string,\n removeOnUnmount?: boolean,\n ...RequestModularUIOptions,\n};\n\nexport type ModelEntry = {\n +status: string,\n +model: ModularUIModel,\n +lastModification: number,\n};\n\nexport type ModularUIState = {\n [string]: ModelEntry,\n ...\n};\n\nexport type SetModelAction = {\n type: \"MODULARUI/SET\",\n payload: {\n key: string,\n model: ?ModularUIModel,\n },\n};\n\nexport type InitModelAction = {\n type: \"MODULARUI/INIT\",\n payload: Array<{\n key: string,\n model: ModularUIModel,\n }>,\n};\n\nexport type UpdateModelAction = {\n type: \"MODULARUI/UPDATE\",\n payload: ModularUIModel,\n};\n\nexport type UpdateFormAction = {\n type: \"MODULARUI/UPDATE_FORM\",\n payload: ModularUIModel,\n};\n\nexport type SuccessAction = (\n model: ModularUIModel,\n) => UpdateModelAction | SetModelAction;\n\nexport type ErrorAction = (\n error: FetchException,\n) => UpdateStatusAction | RemoveModelByKeyAction | NoAction;\n\nexport type ModularUIAction = {\n type: \"MODULARUI/FETCH\",\n payload: {\n key: string,\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n cache?: boolean,\n isReload?: boolean,\n withCredentials?: boolean,\n successAction: (\n model: ModularUIModel,\n ) => UpdateModelAction | SetModelAction,\n errorAction?: ErrorAction,\n },\n};\n\nexport type RemoveModelByKeyAction = {\n type: \"MODULARUI/REMOVE_KEY\",\n payload: string,\n};\n\nexport type ResetModularUIAction = {\n type: \"MODULARUI/RESET\",\n};\n\nexport type UpdateStatusAction = {\n type: \"MODULARUI/STATUS\",\n payload: {\n key: string,\n status: $Keys<MODULARUI_STATUS>,\n },\n};\n\nexport type ModularUIConnector = (\n Component: ComponentType<any>,\n) => ComponentType<any>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/fetch/types.js"],"sourcesContent":["// @flow\nimport typeof { HTTP_METHODS } from \"../../constants/Constants\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\nexport type RequestURLOptions = {\n url: string,\n};\n\nexport type RequestBaseOptions = {\n origin?: string,\n contextPath?: string,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n responseType?: string,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n includeContext?: boolean,\n locale?: string,\n cache?: boolean,\n isReload?: boolean,\n};\n\nexport type RequestOptions = { ...RequestURLOptions, ...RequestBaseOptions };\n\nexport type UpdateHandler = (newModel: ModularUIModel) => ModularUIModel;\nexport type RequestModularUIOptions = {\n ...RequestBaseOptions,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n updateHandler?: UpdateHandler | void,\n childmodels?: boolean,\n isValidationRequest?: boolean,\n removeOnUnmount?: boolean,\n};\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/fetch/types.js"],"sourcesContent":["// @flow\nimport typeof { HTTP_METHODS } from \"../../constants/Constants\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\nexport type RequestURLOptions = {\n url: string,\n};\n\nexport type RequestBaseOptions = {\n origin?: string,\n contextPath?: string,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n responseType?: string,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n includeContext?: boolean,\n locale?: string,\n cache?: boolean,\n isReload?: boolean,\n withCredentials?: boolean,\n};\n\nexport type RequestOptions = { ...RequestURLOptions, ...RequestBaseOptions };\n\nexport type UpdateHandler = (newModel: ModularUIModel) => ModularUIModel;\nexport type RequestModularUIOptions = {\n ...RequestBaseOptions,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n updateHandler?: UpdateHandler | void,\n childmodels?: boolean,\n isValidationRequest?: boolean,\n removeOnUnmount?: boolean,\n};\n"],"mappings":"","ignoreList":[]}
|
package/esm/utils/fetch/xhr.js
CHANGED
|
@@ -279,7 +279,7 @@ class XHR {
|
|
|
279
279
|
/**
|
|
280
280
|
*/
|
|
281
281
|
setOtherOptions() {
|
|
282
|
-
if (getSetting("XHR_ALWAYS_WITH_CREDENTIALS", Cache.hasItem("basic"))) {
|
|
282
|
+
if (this.options.withCredentials || getSetting("XHR_ALWAYS_WITH_CREDENTIALS", Cache.hasItem("basic"))) {
|
|
283
283
|
this.xmlhttp.withCredentials = true;
|
|
284
284
|
}
|
|
285
285
|
this.xmlhttp.responseType = this.responseType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr.js","names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","getSetting","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includesInstanceProperty","call","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","errorHandler","responseJSON","arguments","length","undefined","status","isReload","getResponse","response","getResponseHeader","JSON","parse","error","responseHandler","resolve","setEventListeners","forEach","eventType","addEventListener","_Object$keys","eventName","openConnection","open","setBasicAuthentication","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_JSON$stringify","setXMLHttpRequest","_Promise","XMLHttpRequest","fetch","err","validateInputArguments","args","toString","xhr"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"xhr.js","names":["has","isPlainObject","IllegalArgumentException","UnauthorizedException","FetchException","TimeoutException","NotFoundException","JsonParseException","NetworkException","Cache","HTTP_METHODS","getSetting","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includesInstanceProperty","call","aUrl","split","data","method","GET","timeout","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","errorHandler","responseJSON","arguments","length","undefined","status","isReload","getResponse","response","getResponseHeader","JSON","parse","error","responseHandler","resolve","setEventListeners","forEach","eventType","addEventListener","_Object$keys","eventName","openConnection","open","setBasicAuthentication","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_JSON$stringify","setXMLHttpRequest","_Promise","XMLHttpRequest","fetch","err","validateInputArguments","args","toString","xhr"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (\n this.options.withCredentials ||\n getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))\n ) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\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":[]}
|
|
@@ -125,6 +125,7 @@ const loadModel = (key, href, options) => ({
|
|
|
125
125
|
forceTargetModel: options?.forceTargetModel,
|
|
126
126
|
cache: options?.cache,
|
|
127
127
|
isReload: options?.isReload,
|
|
128
|
+
withCredentials: options?.withCredentials,
|
|
128
129
|
/**
|
|
129
130
|
*/
|
|
130
131
|
successAction: model => loadModelSuccessAction(key, model, options?.updateHandler),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIActions.js","names":["_Constants","require","_Href","_interopRequireDefault","_ErrorResponse","_ProgressIndicator","_Error","setModel","key","model","connectKey","type","payload","exports","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","getRequestLocale","optionLocale","navigator","language","split","loadModel","href","options","origin","contextPath","Href","method","HTTP_METHODS","GET","params","data","timeout","headers","events","onProgress","locale","childmodels","targetModel","forceTargetModel","cache","isReload","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","getState","modularuiStore","modularui","LOADING","_promise","default","resolve","startProgress","loadModelPromise","then","finishProgress","catch","handleError","reloadModel","selfhref"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * Retrieve the preferred language for this request, falls back to the browser language or english\n */\nconst getRequestLocale = (optionLocale: ?string): string => {\n if (optionLocale) {\n return optionLocale;\n }\n\n if (typeof navigator !== \"undefined\" && navigator?.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n params: options?.params,\n data: options?.data,\n timeout: options?.timeout,\n headers: options?.headers,\n events: options?.events,\n onProgress: options?.onProgress,\n locale: getRequestLocale(options?.locale),\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n isReload: options?.isReload,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (\n errorResponse.isChangePassword ||\n errorResponse.isResourceNotFoundAfterReload\n ) {\n return removeModelByKey(key);\n }\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch, getState) => {\n const modularuiStore = getState()?.modularui;\n if (\n modularuiStore &&\n modularuiStore[key]?.status === MODULARUI_STATUS.LOADING\n ) {\n return Promise.resolve();\n }\n\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModularUIActions.js","names":["_Constants","require","_Href","_interopRequireDefault","_ErrorResponse","_ProgressIndicator","_Error","setModel","key","model","connectKey","type","payload","exports","initModels","models","updateModel","updateForm","removeModelByKey","resetModularUI","updateStatus","status","loadModelSuccessAction","updateHandler","getRequestLocale","optionLocale","navigator","language","split","loadModel","href","options","origin","contextPath","Href","method","HTTP_METHODS","GET","params","data","timeout","headers","events","onProgress","locale","childmodels","targetModel","forceTargetModel","cache","isReload","withCredentials","successAction","errorAction","error","errorResponse","ErrorResponse","isChangePassword","isResourceNotFoundAfterReload","MODULARUI_STATUS","ERROR","loadModularUI","dispatch","getState","modularuiStore","modularui","LOADING","_promise","default","resolve","startProgress","loadModelPromise","then","finishProgress","catch","handleError","reloadModel","selfhref"],"sources":["../../../src/redux/_modularui/ModularUIActions.js"],"sourcesContent":["// @flow\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\nimport Href from \"../../models/href/Href\";\nimport ErrorResponse from \"../../models/error/ErrorResponse\";\nimport { finishProgress, startProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { Dispatch, ThunkAction } from \"../types\";\nimport type {\n ModularUIAction,\n SetModelAction,\n InitModelAction,\n UpdateModelAction,\n UpdateFormAction,\n RemoveModelByKeyAction,\n ResetModularUIAction,\n UpdateStatusAction,\n} from \"./types\";\nimport type {\n RequestModularUIOptions,\n UpdateHandler,\n} from \"../../utils/fetch/types\";\n\n/**\n */\nexport const setModel = (\n key: string,\n model: ModularUIModel,\n): SetModelAction => {\n // set key on model for later reference\n model.connectKey = key;\n return {\n type: \"MODULARUI/SET\",\n payload: {\n key,\n model,\n },\n };\n};\n\n/**\n */\nexport const initModels = (\n models: Array<{ key: string, model: ModularUIModel }>,\n): InitModelAction => ({\n type: \"MODULARUI/INIT\",\n payload: models,\n});\n\n/**\n */\nexport const updateModel = (model: ModularUIModel): UpdateModelAction => ({\n type: \"MODULARUI/UPDATE\",\n payload: model,\n});\n\n/**\n */\nexport const updateForm = (model: ModularUIModel): UpdateFormAction => ({\n type: \"MODULARUI/UPDATE_FORM\",\n payload: model,\n});\n\n/**\n */\nexport const removeModelByKey = (key: string): RemoveModelByKeyAction => ({\n type: \"MODULARUI/REMOVE_KEY\",\n payload: key,\n});\n\n/**\n * Removes all models except the application model from the modular ui reducer\n */\nexport const resetModularUI = (): ResetModularUIAction => ({\n type: \"MODULARUI/RESET\",\n});\n\n/**\n */\nexport const updateStatus = (\n key: string,\n status: $Keys<typeof MODULARUI_STATUS>,\n): UpdateStatusAction => ({\n type: \"MODULARUI/STATUS\",\n payload: { key, status },\n});\n\n/**\n */\nconst loadModelSuccessAction = (\n key: string,\n model: ModularUIModel,\n updateHandler: UpdateHandler | void,\n): UpdateModelAction | SetModelAction => {\n if (updateHandler) {\n return updateModel(updateHandler(model));\n }\n return setModel(key, model);\n};\n\n/**\n * Retrieve the preferred language for this request, falls back to the browser language or english\n */\nconst getRequestLocale = (optionLocale: ?string): string => {\n if (optionLocale) {\n return optionLocale;\n }\n\n if (typeof navigator !== \"undefined\" && navigator?.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n};\n\n/**\n * This action is handled by the modularui middleware\n */\nexport const loadModel = (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n): ModularUIAction => ({\n type: \"MODULARUI/FETCH\",\n payload: {\n key,\n origin: options?.origin,\n contextPath: options?.contextPath,\n href:\n href instanceof Href\n ? href\n : new Href(href, \"\", {\n origin: options?.origin,\n contextPath: options?.contextPath,\n }),\n method: options?.method ?? HTTP_METHODS.GET,\n params: options?.params,\n data: options?.data,\n timeout: options?.timeout,\n headers: options?.headers,\n events: options?.events,\n onProgress: options?.onProgress,\n locale: getRequestLocale(options?.locale),\n childmodels: options?.childmodels,\n targetModel: options?.targetModel,\n forceTargetModel: options?.forceTargetModel,\n cache: options?.cache,\n isReload: options?.isReload,\n withCredentials: options?.withCredentials,\n /**\n */\n successAction: (model) =>\n loadModelSuccessAction(key, model, options?.updateHandler),\n /**\n */\n errorAction: (error) => {\n const errorResponse = new ErrorResponse(error, key, {\n origin: options?.origin,\n contextPath: options?.contextPath,\n });\n if (\n errorResponse.isChangePassword ||\n errorResponse.isResourceNotFoundAfterReload\n ) {\n return removeModelByKey(key);\n }\n return updateStatus(key, MODULARUI_STATUS.ERROR);\n },\n },\n});\n\n/**\n */\nexport const loadModularUI =\n (\n key: string,\n href: Href | string,\n options?: RequestModularUIOptions,\n ): ThunkAction =>\n (dispatch: Dispatch, getState) => {\n const modularuiStore = getState()?.modularui;\n if (\n modularuiStore &&\n modularuiStore[key]?.status === MODULARUI_STATUS.LOADING\n ) {\n return Promise.resolve();\n }\n\n dispatch(startProgress());\n\n const loadModelPromise = dispatch(loadModel(key, href, options));\n\n return Promise.resolve(loadModelPromise)\n .then(() => dispatch(finishProgress()))\n .catch((error) => dispatch(handleError(error)));\n };\n\n/**\n */\nexport const reloadModel = (\n model: ModularUIModel,\n options?: RequestModularUIOptions,\n): ThunkAction =>\n loadModularUI(model.connectKey, model.selfhref, {\n ...options,\n isReload: true,\n });\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModularUIMiddleware.js","names":["_ModularUIRequest","_interopRequireDefault","require","_Constants","_ProgressIndicator","_Error","_ModularUIActions","createRequest","modularui","request","ModularUIRequest","href","method","HTTP_METHODS","GET","params","data","locale","childmodels","isReload","cache","headers","events","onProgress","origin","contextPath","targetModel","forceTargetModel","responseHandler","next","dispatch","successAction","model","successResult","_promise","default","then","result","catch","error","handleError","Error","finishProgress","errorHandler","errorAction","err","errorResult","handleFetch","action","startProgress","key","requestOptions","payload","modularuiRequest","updateStatus","MODULARUI_STATUS","LOADING","fetch","modularUIMiddleware","api","type","getState","i18n","exports"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport { updateStatus } from \"./ModularUIActions\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\ntype RequestOptions = {\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n isReload?: boolean,\n cache?: boolean,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions): ModularUIRequest => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n params: modularui.params || \"\",\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n cache: modularui.cache,\n headers: modularui.headers,\n events: modularui.events,\n onProgress: modularui.onProgress,\n });\n\n if (modularui.origin) {\n request.origin = modularui.origin;\n }\n\n if (modularui.contextPath) {\n request.contextPath = modularui.contextPath;\n }\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n request.forceTargetModel = modularui.forceTargetModel ?? false;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel,\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`,\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any,\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch,\n) => {\n dispatch(startProgress());\n\n const { key, successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch,\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next,\n );\n }\n\n return next(action);\n };\n"],"mappings":";;;;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,iBAAA,GAAAJ,OAAA;
|
|
1
|
+
{"version":3,"file":"ModularUIMiddleware.js","names":["_ModularUIRequest","_interopRequireDefault","require","_Constants","_ProgressIndicator","_Error","_ModularUIActions","createRequest","modularui","request","ModularUIRequest","href","method","HTTP_METHODS","GET","params","data","locale","childmodels","isReload","cache","headers","events","onProgress","origin","contextPath","targetModel","forceTargetModel","responseHandler","next","dispatch","successAction","model","successResult","_promise","default","then","result","catch","error","handleError","Error","finishProgress","errorHandler","errorAction","err","errorResult","handleFetch","action","startProgress","key","requestOptions","payload","modularuiRequest","updateStatus","MODULARUI_STATUS","LOADING","fetch","modularUIMiddleware","api","type","getState","i18n","exports"],"sources":["../../../src/redux/_modularui/ModularUIMiddleware.js"],"sourcesContent":["// @flow\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../../constants/Constants\";\n\nimport { startProgress, finishProgress } from \"../actions/ProgressIndicator\";\nimport { handleError } from \"../actions/Error\";\n\nimport { updateStatus } from \"./ModularUIActions\";\n\nimport type { Middleware, MiddlewareAPI } from \"redux\";\nimport type {\n ReduxAction,\n ReduxState,\n Dispatch,\n PossibleAction,\n} from \"../types\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { ModularUIAction, SuccessAction, ErrorAction } from \"./types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\ntype RequestOptions = {\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<typeof HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n isReload?: boolean,\n cache?: boolean,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n withCredentials?: boolean,\n};\n\n/**\n * Symbol key that carries API call info interpreted by this Redux middleware.\n */\nconst createRequest = (modularui: RequestOptions): ModularUIRequest => {\n const request = new ModularUIRequest(modularui.href, {\n method: modularui.method || HTTP_METHODS.GET,\n params: modularui.params || \"\",\n data: modularui.data || {},\n locale: modularui.locale,\n childmodels: modularui.childmodels ?? true,\n isReload: modularui.isReload,\n cache: modularui.cache,\n headers: modularui.headers,\n events: modularui.events,\n onProgress: modularui.onProgress,\n });\n\n if (modularui.origin) {\n request.origin = modularui.origin;\n }\n\n if (modularui.contextPath) {\n request.contextPath = modularui.contextPath;\n }\n\n if (modularui.targetModel) {\n request.targetModel = modularui.targetModel;\n request.forceTargetModel = modularui.forceTargetModel ?? false;\n }\n\n return request;\n};\n\n/**\n */\nconst responseHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n successAction: SuccessAction,\n model: ModularUIModel,\n) => {\n if (successAction) {\n const successResult = successAction(model);\n\n if (successResult instanceof Promise) {\n successResult\n .then((result) => {\n dispatch(result);\n })\n .catch((error) => {\n next(handleError(error));\n });\n } else {\n try {\n dispatch(successResult);\n } catch (error) {\n throw new Error(\n `Result of successResult is not a valid redux action: ${error}`,\n );\n }\n }\n }\n\n return next(finishProgress());\n};\n\n/**\n */\nconst errorHandler = (\n next: Dispatch,\n dispatch: Dispatch,\n errorAction: ?ErrorAction,\n err: any,\n) => {\n dispatch(finishProgress());\n\n if (errorAction) {\n const errorResult = errorAction(err);\n\n if (errorResult instanceof Promise) {\n errorResult.then((result) => dispatch(result));\n } else {\n dispatch(errorResult);\n }\n }\n\n return next(handleError(err));\n};\n\n/**\n */\nconst handleFetch = (\n action: ModularUIAction,\n locale: string,\n dispatch: Dispatch,\n next: Dispatch,\n) => {\n dispatch(startProgress());\n\n const { key, successAction, errorAction, ...requestOptions } = action.payload;\n requestOptions.locale = locale;\n\n const modularuiRequest = createRequest(requestOptions);\n\n dispatch(updateStatus(key, MODULARUI_STATUS.LOADING));\n\n return modularuiRequest\n .fetch()\n .then((model) => responseHandler(next, dispatch, successAction, model))\n .catch((error) => errorHandler(next, dispatch, errorAction, error));\n};\n\n/**\n */\nexport const modularUIMiddleware: Middleware<\n ReduxState,\n ReduxAction,\n Dispatch,\n> =\n (api: MiddlewareAPI<ReduxState, ReduxAction, Dispatch>) =>\n (next: Dispatch) =>\n (action: PossibleAction) => {\n if (action.type === \"MODULARUI/FETCH\") {\n return handleFetch(\n // $FlowExpectedError[incompatible-exact]\n action,\n api.getState().i18n.locale,\n api.dispatch,\n next,\n );\n }\n\n return next(action);\n };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/redux/_modularui/types.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { FetchException } from \"../../exceptions\";\nimport type { NoAction } from \"../types\";\nimport typeof {\n HTTP_METHODS,\n MODULARUI_STATUS,\n} from \"../../constants/Constants\";\nimport type { ComponentType } from \"react\";\nimport type { TargetModel } from \"../../modularui/types\";\nimport type { RequestModularUIOptions } from \"../../utils/fetch/types\";\n\nexport type ModularUIOptions = {\n propName?: string,\n removeOnUnmount?: boolean,\n ...RequestModularUIOptions,\n};\n\nexport type ModelEntry = {\n +status: string,\n +model: ModularUIModel,\n +lastModification: number,\n};\n\nexport type ModularUIState = {\n [string]: ModelEntry,\n ...\n};\n\nexport type SetModelAction = {\n type: \"MODULARUI/SET\",\n payload: {\n key: string,\n model: ?ModularUIModel,\n },\n};\n\nexport type InitModelAction = {\n type: \"MODULARUI/INIT\",\n payload: Array<{\n key: string,\n model: ModularUIModel,\n }>,\n};\n\nexport type UpdateModelAction = {\n type: \"MODULARUI/UPDATE\",\n payload: ModularUIModel,\n};\n\nexport type UpdateFormAction = {\n type: \"MODULARUI/UPDATE_FORM\",\n payload: ModularUIModel,\n};\n\nexport type SuccessAction = (\n model: ModularUIModel,\n) => UpdateModelAction | SetModelAction;\n\nexport type ErrorAction = (\n error: FetchException,\n) => UpdateStatusAction | RemoveModelByKeyAction | NoAction;\n\nexport type ModularUIAction = {\n type: \"MODULARUI/FETCH\",\n payload: {\n key: string,\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n cache?: boolean,\n isReload?: boolean,\n successAction: (\n model: ModularUIModel,\n ) => UpdateModelAction | SetModelAction,\n errorAction?: ErrorAction,\n },\n};\n\nexport type RemoveModelByKeyAction = {\n type: \"MODULARUI/REMOVE_KEY\",\n payload: string,\n};\n\nexport type ResetModularUIAction = {\n type: \"MODULARUI/RESET\",\n};\n\nexport type UpdateStatusAction = {\n type: \"MODULARUI/STATUS\",\n payload: {\n key: string,\n status: $Keys<MODULARUI_STATUS>,\n },\n};\n\nexport type ModularUIConnector = (\n Component: ComponentType<any>,\n) => ComponentType<any>;\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/redux/_modularui/types.js"],"sourcesContent":["// @flow\nimport type { ModularUIModel } from \"../../models/types\";\nimport type Href from \"../../models/href/Href\";\nimport type { FetchException } from \"../../exceptions\";\nimport type { NoAction } from \"../types\";\nimport typeof {\n HTTP_METHODS,\n MODULARUI_STATUS,\n} from \"../../constants/Constants\";\nimport type { ComponentType } from \"react\";\nimport type { TargetModel } from \"../../modularui/types\";\nimport type { RequestModularUIOptions } from \"../../utils/fetch/types\";\n\nexport type ModularUIOptions = {\n propName?: string,\n removeOnUnmount?: boolean,\n ...RequestModularUIOptions,\n};\n\nexport type ModelEntry = {\n +status: string,\n +model: ModularUIModel,\n +lastModification: number,\n};\n\nexport type ModularUIState = {\n [string]: ModelEntry,\n ...\n};\n\nexport type SetModelAction = {\n type: \"MODULARUI/SET\",\n payload: {\n key: string,\n model: ?ModularUIModel,\n },\n};\n\nexport type InitModelAction = {\n type: \"MODULARUI/INIT\",\n payload: Array<{\n key: string,\n model: ModularUIModel,\n }>,\n};\n\nexport type UpdateModelAction = {\n type: \"MODULARUI/UPDATE\",\n payload: ModularUIModel,\n};\n\nexport type UpdateFormAction = {\n type: \"MODULARUI/UPDATE_FORM\",\n payload: ModularUIModel,\n};\n\nexport type SuccessAction = (\n model: ModularUIModel,\n) => UpdateModelAction | SetModelAction;\n\nexport type ErrorAction = (\n error: FetchException,\n) => UpdateStatusAction | RemoveModelByKeyAction | NoAction;\n\nexport type ModularUIAction = {\n type: \"MODULARUI/FETCH\",\n payload: {\n key: string,\n origin?: string,\n contextPath?: string,\n href: Href,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n locale: string,\n childmodels?: boolean,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n cache?: boolean,\n isReload?: boolean,\n withCredentials?: boolean,\n successAction: (\n model: ModularUIModel,\n ) => UpdateModelAction | SetModelAction,\n errorAction?: ErrorAction,\n },\n};\n\nexport type RemoveModelByKeyAction = {\n type: \"MODULARUI/REMOVE_KEY\",\n payload: string,\n};\n\nexport type ResetModularUIAction = {\n type: \"MODULARUI/RESET\",\n};\n\nexport type UpdateStatusAction = {\n type: \"MODULARUI/STATUS\",\n payload: {\n key: string,\n status: $Keys<MODULARUI_STATUS>,\n },\n};\n\nexport type ModularUIConnector = (\n Component: ComponentType<any>,\n) => ComponentType<any>;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/fetch/types.js"],"sourcesContent":["// @flow\nimport typeof { HTTP_METHODS } from \"../../constants/Constants\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\nexport type RequestURLOptions = {\n url: string,\n};\n\nexport type RequestBaseOptions = {\n origin?: string,\n contextPath?: string,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n responseType?: string,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n includeContext?: boolean,\n locale?: string,\n cache?: boolean,\n isReload?: boolean,\n};\n\nexport type RequestOptions = { ...RequestURLOptions, ...RequestBaseOptions };\n\nexport type UpdateHandler = (newModel: ModularUIModel) => ModularUIModel;\nexport type RequestModularUIOptions = {\n ...RequestBaseOptions,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n updateHandler?: UpdateHandler | void,\n childmodels?: boolean,\n isValidationRequest?: boolean,\n removeOnUnmount?: boolean,\n};\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/fetch/types.js"],"sourcesContent":["// @flow\nimport typeof { HTTP_METHODS } from \"../../constants/Constants\";\nimport type { ModularUIModel } from \"../../models/types\";\nimport type { TargetModel } from \"../../modularui/types\";\n\nexport type RequestURLOptions = {\n url: string,\n};\n\nexport type RequestBaseOptions = {\n origin?: string,\n contextPath?: string,\n method?: $Keys<HTTP_METHODS>,\n params?: string,\n data?: any,\n timeout?: number,\n responseType?: string,\n headers?: {\n [headerName: string]: string,\n Accept?: string,\n \"Accept-Language\"?: string,\n \"Content-Type\"?: string,\n \"x-filename\"?: string,\n \"x-filesize\"?: string,\n },\n events?: { [eventName: string]: () => void },\n onProgress?: ProgressEventHandler,\n includeContext?: boolean,\n locale?: string,\n cache?: boolean,\n isReload?: boolean,\n withCredentials?: boolean,\n};\n\nexport type RequestOptions = { ...RequestURLOptions, ...RequestBaseOptions };\n\nexport type UpdateHandler = (newModel: ModularUIModel) => ModularUIModel;\nexport type RequestModularUIOptions = {\n ...RequestBaseOptions,\n targetModel?: TargetModel,\n forceTargetModel?: boolean,\n updateHandler?: UpdateHandler | void,\n childmodels?: boolean,\n isValidationRequest?: boolean,\n removeOnUnmount?: boolean,\n};\n"],"mappings":"","ignoreList":[]}
|
package/lib/utils/fetch/xhr.js
CHANGED
|
@@ -286,7 +286,7 @@ class XHR {
|
|
|
286
286
|
/**
|
|
287
287
|
*/
|
|
288
288
|
setOtherOptions() {
|
|
289
|
-
if ((0, _Settings.getSetting)("XHR_ALWAYS_WITH_CREDENTIALS", _Cache.default.hasItem("basic"))) {
|
|
289
|
+
if (this.options.withCredentials || (0, _Settings.getSetting)("XHR_ALWAYS_WITH_CREDENTIALS", _Cache.default.hasItem("basic"))) {
|
|
290
290
|
this.xmlhttp.withCredentials = true;
|
|
291
291
|
}
|
|
292
292
|
this.xmlhttp.responseType = this.responseType;
|
|
@@ -313,7 +313,10 @@ class XHR {
|
|
|
313
313
|
/**
|
|
314
314
|
*/
|
|
315
315
|
setOtherOptions() {
|
|
316
|
-
if (
|
|
316
|
+
if (
|
|
317
|
+
this.options.withCredentials ||
|
|
318
|
+
getSetting("XHR_ALWAYS_WITH_CREDENTIALS", Cache.hasItem("basic"))
|
|
319
|
+
) {
|
|
317
320
|
this.xmlhttp.withCredentials = true;
|
|
318
321
|
}
|
|
319
322
|
this.xmlhttp.responseType = this.responseType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","arguments","length","undefined","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","arguments","length","undefined","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (\n this.options.withCredentials ||\n getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))\n ) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\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.
|
|
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",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"devDependencies": {
|
|
103
103
|
"@babel/cli": "^7.26.4",
|
|
104
104
|
"@babel/core": "^7.26.0",
|
|
105
|
-
"@babel/eslint-parser": "^7.
|
|
105
|
+
"@babel/eslint-parser": "^7.26.5",
|
|
106
106
|
"@babel/eslint-plugin": "^7.25.9",
|
|
107
107
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
108
108
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"@babel/preset-react": "^7.26.3",
|
|
113
113
|
"@commitlint/cli": "^19.6.1",
|
|
114
114
|
"@commitlint/config-conventional": "^19.6.0",
|
|
115
|
-
"@testing-library/react": "^16.
|
|
115
|
+
"@testing-library/react": "^16.2.0",
|
|
116
116
|
"auditjs": "^4.0.46",
|
|
117
117
|
"babel-jest": "^29.7.0",
|
|
118
118
|
"babel-plugin-styled-components": "^2.1.4",
|
|
@@ -125,9 +125,9 @@
|
|
|
125
125
|
"eslint-plugin-babel": "^5.3.1",
|
|
126
126
|
"eslint-plugin-ft-flow": "^3.0.11",
|
|
127
127
|
"eslint-plugin-import": "^2.31.0",
|
|
128
|
-
"eslint-plugin-jest": "^28.
|
|
129
|
-
"eslint-plugin-jsdoc": "^50.6.
|
|
130
|
-
"eslint-plugin-react": "^7.37.
|
|
128
|
+
"eslint-plugin-jest": "^28.11.0",
|
|
129
|
+
"eslint-plugin-jsdoc": "^50.6.2",
|
|
130
|
+
"eslint-plugin-react": "^7.37.4",
|
|
131
131
|
"eslint-plugin-react-hooks": "^5.1.0",
|
|
132
132
|
"eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0",
|
|
133
133
|
"flow-bin": "^0.200.1",
|
|
@@ -140,8 +140,8 @@
|
|
|
140
140
|
"jest-environment-jsdom": "^29.7.0",
|
|
141
141
|
"jest-junit": "^16.0.0",
|
|
142
142
|
"jest-sonar-reporter": "^2.0.0",
|
|
143
|
-
"jscodeshift": "^17.1.
|
|
144
|
-
"lint-staged": "^15.
|
|
143
|
+
"jscodeshift": "^17.1.2",
|
|
144
|
+
"lint-staged": "^15.4.1",
|
|
145
145
|
"polished": "^4.0.0",
|
|
146
146
|
"prettier": "^3.4.2",
|
|
147
147
|
"react": "^18.3.1",
|
|
@@ -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
|
}
|
package/src/utils/fetch/types.js
CHANGED
package/src/utils/fetch/xhr.js
CHANGED
|
@@ -313,7 +313,10 @@ class XHR {
|
|
|
313
313
|
/**
|
|
314
314
|
*/
|
|
315
315
|
setOtherOptions() {
|
|
316
|
-
if (
|
|
316
|
+
if (
|
|
317
|
+
this.options.withCredentials ||
|
|
318
|
+
getSetting("XHR_ALWAYS_WITH_CREDENTIALS", Cache.hasItem("basic"))
|
|
319
|
+
) {
|
|
317
320
|
this.xmlhttp.withCredentials = true;
|
|
318
321
|
}
|
|
319
322
|
this.xmlhttp.responseType = this.responseType;
|