@beinformed/ui 1.27.0 → 1.27.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/esm/models/attributes/AttributeDataHelper.js +2 -2
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/CaptchaAttributeModel.js +19 -0
- package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.js +2 -2
- package/esm/models/attributes/_createAttribute.js.map +1 -1
- package/esm/models/base/BaseCollection.js +3 -9
- package/esm/models/base/BaseCollection.js.map +1 -1
- package/esm/models/base/BaseModel.js +2 -8
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/modularui/CaptchaRequest.js +25 -8
- package/esm/modularui/CaptchaRequest.js.map +1 -1
- package/esm/redux/actions/FormValidations.js +1 -1
- package/esm/redux/actions/FormValidations.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js +2 -2
- package/lib/models/attributes/AttributeDataHelper.js.flow +2 -2
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/CaptchaAttributeModel.js +19 -0
- package/lib/models/attributes/CaptchaAttributeModel.js.flow +16 -0
- package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/ChoiceAttributeModel.spec.js.flow +3 -0
- package/lib/models/attributes/__tests__/CompositeAttributeModel.spec.js.flow +3 -0
- package/lib/models/attributes/_createAttribute.js +2 -2
- package/lib/models/attributes/_createAttribute.js.flow +2 -2
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/base/BaseCollection.js +3 -9
- package/lib/models/base/BaseCollection.js.flow +4 -10
- package/lib/models/base/BaseCollection.js.map +1 -1
- package/lib/models/base/BaseModel.js +2 -8
- package/lib/models/base/BaseModel.js.flow +3 -9
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/__tests__/BaseModel.spec.js.flow +3 -7
- package/lib/modularui/CaptchaRequest.js +25 -8
- package/lib/modularui/CaptchaRequest.js.flow +51 -10
- package/lib/modularui/CaptchaRequest.js.map +1 -1
- package/lib/redux/actions/FormValidations.js +1 -1
- package/lib/redux/actions/FormValidations.js.flow +1 -1
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/package.json +13 -12
- package/src/models/attributes/AttributeDataHelper.js +2 -2
- package/src/models/attributes/CaptchaAttributeModel.js +16 -0
- package/src/models/attributes/__tests__/ChoiceAttributeModel.spec.js +3 -0
- package/src/models/attributes/__tests__/CompositeAttributeModel.spec.js +3 -0
- package/src/models/attributes/_createAttribute.js +2 -2
- package/src/models/base/BaseCollection.js +4 -10
- package/src/models/base/BaseModel.js +3 -9
- package/src/models/base/__tests__/BaseModel.spec.js +3 -7
- package/src/modularui/CaptchaRequest.js +51 -10
- package/src/redux/actions/FormValidations.js +1 -1
- package/types/models/attributes/CaptchaAttributeModel.d.ts +9 -0
- package/types/models/base/BaseCollection.d.ts +2 -2
- package/types/models/base/BaseModel.d.ts +1 -1
- package/types/modularui/CaptchaRequest.d.ts +29 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.27.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.27.1...v1.27.2) (2023-01-31)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **clone:** use klona for complete and fast deep clone of models and data ([2e4509a](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/2e4509a0cefa3d2deadb7485c6b8a12bdbdb7886))
|
|
10
|
+
|
|
11
|
+
### [1.27.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.27.0...v1.27.1) (2023-01-24)
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
- **captcha:** improve usage of captcha request ([b880306](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/b8803067cecb90c940dc8aab824615357efdf37c))
|
|
16
|
+
|
|
5
17
|
## [1.27.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.27.0-beta.1...v1.27.0) (2023-01-20)
|
|
6
18
|
|
|
7
19
|
## [1.27.0-beta.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.27.0-beta.0...v1.27.0-beta.1) (2023-01-20)
|
|
@@ -4,7 +4,7 @@ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance
|
|
|
4
4
|
import _valuesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/values";
|
|
5
5
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
6
6
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
7
|
-
import
|
|
7
|
+
import { klona } from "klona/full";
|
|
8
8
|
import pick from "lodash/pick";
|
|
9
9
|
import { has, isPlainObject } from "../../utils/helpers/objects";
|
|
10
10
|
|
|
@@ -27,7 +27,7 @@ class AttributeDataHelper {
|
|
|
27
27
|
this._attribute = _findInstanceProperty(data).call(data, attr => attr.elementid === key || attr.name === key || attr.param === key) || {};
|
|
28
28
|
this._value = this.getValue(this._attribute);
|
|
29
29
|
} else {
|
|
30
|
-
const attributeData =
|
|
30
|
+
const attributeData = klona(data);
|
|
31
31
|
attributeData._links = pick(data._links, ["concept", "download", "lookupOptions", "lookupList"]);
|
|
32
32
|
this._attribute = attributeData;
|
|
33
33
|
if (data[key] === undefined || "name" in data && "param" in data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeDataHelper.js","names":["cloneDeep","pick","has","isPlainObject","AttributeDataHelper","constructor","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","_links","undefined","_children","createChildren","childData","parentKey","childKey","elements","element","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","attribute","suggestions","suggestion","options","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","length","getData","child","subChild"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = cloneDeep(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AttributeDataHelper.js","names":["klona","pick","has","isPlainObject","AttributeDataHelper","constructor","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","_links","undefined","_children","createChildren","childData","parentKey","childKey","elements","element","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","attribute","suggestions","suggestion","options","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","length","getData","child","subChild"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = klona(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
1
2
|
import AttributeModel from "./AttributeModel";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Password attribute
|
|
5
6
|
*/
|
|
6
7
|
export default class CaptchaAttributeModel extends AttributeModel {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
_defineProperty(this, "_answer", "");
|
|
11
|
+
}
|
|
7
12
|
/**
|
|
8
13
|
*/
|
|
9
14
|
static isApplicableModel(contributions) {
|
|
@@ -25,6 +30,20 @@ export default class CaptchaAttributeModel extends AttributeModel {
|
|
|
25
30
|
return this;
|
|
26
31
|
}
|
|
27
32
|
|
|
33
|
+
/**
|
|
34
|
+
*/
|
|
35
|
+
setAnswer(answer) {
|
|
36
|
+
this._answer = answer;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Retrieve the given answer for the captcha
|
|
41
|
+
* The value of this attribute is the token id of the captcha
|
|
42
|
+
*/
|
|
43
|
+
getAnswer() {
|
|
44
|
+
return this._answer;
|
|
45
|
+
}
|
|
46
|
+
|
|
28
47
|
/**
|
|
29
48
|
*/
|
|
30
49
|
get hasDynamicValidationData() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaptchaAttributeModel.js","names":["AttributeModel","CaptchaAttributeModel","isApplicableModel","contributions","type","update","value","updateLastModification","inputvalue","hasDynamicValidationData"],"sources":["../../../src/models/attributes/CaptchaAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\n/**\n * Password attribute\n */\nexport default class CaptchaAttributeModel extends AttributeModel {\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"captcha\";\n }\n\n /**\n */\n get type(): string {\n return \"captcha\";\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): this {\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n get hasDynamicValidationData(): boolean {\n return false;\n }\n}\n"],"mappings":"AACA,OAAOA,cAAc,MAAM,kBAAkB;;AAE7C;AACA;AACA;AACA,eAAe,MAAMC,qBAAqB,SAASD,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CaptchaAttributeModel.js","names":["AttributeModel","CaptchaAttributeModel","isApplicableModel","contributions","type","update","value","updateLastModification","inputvalue","setAnswer","answer","_answer","getAnswer","hasDynamicValidationData"],"sources":["../../../src/models/attributes/CaptchaAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\n/**\n * Password attribute\n */\nexport default class CaptchaAttributeModel extends AttributeModel {\n _answer: string = \"\";\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"captcha\";\n }\n\n /**\n */\n get type(): string {\n return \"captcha\";\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): this {\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n setAnswer(answer: string) {\n this._answer = answer;\n }\n\n /**\n * Retrieve the given answer for the captcha\n * The value of this attribute is the token id of the captcha\n */\n getAnswer(): string {\n return this._answer;\n }\n\n /**\n */\n get hasDynamicValidationData(): boolean {\n return false;\n }\n}\n"],"mappings":";AACA,OAAOA,cAAc,MAAM,kBAAkB;;AAE7C;AACA;AACA;AACA,eAAe,MAAMC,qBAAqB,SAASD,cAAc,CAAC;EAAA;IAAA;IAAA,iCAC9C,EAAE;EAAA;EAEpB;AACF;EACE,OAAOE,iBAAiB,CAACC,aAAqB,EAAW;IACvD,OAAOA,aAAa,CAACC,IAAI,KAAK,SAAS;EACzC;;EAEA;AACF;EACE,IAAIA,IAAI,GAAW;IACjB,OAAO,SAAS;EAClB;;EAEA;AACF;AACA;EACEC,MAAM,CAACC,KAAa,EAAQ;IAC1B,IAAI,CAACC,sBAAsB,EAAE;IAC7B,IAAI,CAACC,UAAU,GAAGF,KAAK;IAEvB,OAAO,IAAI;EACb;;EAEA;AACF;EACEG,SAAS,CAACC,MAAc,EAAE;IACxB,IAAI,CAACC,OAAO,GAAGD,MAAM;EACvB;;EAEA;AACF;AACA;AACA;EACEE,SAAS,GAAW;IAClB,OAAO,IAAI,CAACD,OAAO;EACrB;;EAEA;AACF;EACE,IAAIE,wBAAwB,GAAY;IACtC,OAAO,KAAK;EACd;AACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
2
2
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
3
3
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
4
|
-
import
|
|
4
|
+
import { klona } from "klona/full";
|
|
5
5
|
import { has, isPlainObject } from "../../utils/helpers/objects";
|
|
6
6
|
import LayoutHintRuleCollection from "./layouthint-rules/LayoutHintRuleCollection";
|
|
7
7
|
import CaptchaAttributeModel from "./CaptchaAttributeModel";
|
|
@@ -60,7 +60,7 @@ const updateContributions = (key, data, contributions) => {
|
|
|
60
60
|
* @private
|
|
61
61
|
*/
|
|
62
62
|
const updateData = (key, data, contributions) => {
|
|
63
|
-
const newData =
|
|
63
|
+
const newData = klona(data);
|
|
64
64
|
if (contributions.dynamicschemaId) {
|
|
65
65
|
newData.dynamicschemaId = contributions.dynamicschemaId;
|
|
66
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_createAttribute.js","names":["
|
|
1
|
+
{"version":3,"file":"_createAttribute.js","names":["klona","has","isPlainObject","LayoutHintRuleCollection","CaptchaAttributeModel","ChoiceAttributeModel","DatetimeAttributeModel","HelptextAttributeModel","LabelAttributeModel","MemoAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","CompositeAttributeModel","StringAttributeModel","UploadAttributeModel","XMLAttributeModel","BooleanAttributeModel","AttributeDataHelper","getChildrenKeys","children","child","childKey","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","model","isApplicableModel","updateContributions","data","Array","isArray","updateData","newData","createAttribute","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","getData","attribute","setLayoutHintRules"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions: Object): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions)\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object\n): Object => {\n const newData = klona(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":"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"}
|
|
@@ -4,8 +4,7 @@ import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instanc
|
|
|
4
4
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
5
5
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
6
6
|
import _sortInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/sort";
|
|
7
|
-
import
|
|
8
|
-
import cloneDeep from "lodash/cloneDeep";
|
|
7
|
+
import { klona } from "klona/full";
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Base class for collections of models
|
|
@@ -171,15 +170,10 @@ class BaseCollection {
|
|
|
171
170
|
}
|
|
172
171
|
|
|
173
172
|
/**
|
|
174
|
-
* Returns a clone of the model
|
|
173
|
+
* Returns a clone of the model
|
|
175
174
|
*/
|
|
176
175
|
clone() {
|
|
177
|
-
|
|
178
|
-
// deepcopy can be expensive, use with care!
|
|
179
|
-
if (deepcopy) {
|
|
180
|
-
return cloneDeep(this);
|
|
181
|
-
}
|
|
182
|
-
return clone(this);
|
|
176
|
+
return klona(this);
|
|
183
177
|
}
|
|
184
178
|
}
|
|
185
179
|
export default BaseCollection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCollection.js","names":["
|
|
1
|
+
{"version":3,"file":"BaseCollection.js","names":["klona","BaseCollection","constructor","initCollection","collection","_collection","add","items","all","Array","isArray","removeByIndex","itemIndex","hasItems","length","isEmpty","size","first","last","get","index","find","callbackfn","thisArg","filter","some","every","map","forEach","sort","compareFn","sorted","clone"],"sources":["../../../src/models/base/BaseCollection.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): this {\n return klona(this);\n }\n}\n\nexport default BaseCollection;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
2
2
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
3
|
-
import
|
|
4
|
-
import cloneDeep from "lodash/cloneDeep";
|
|
3
|
+
import { klona } from "klona/full";
|
|
5
4
|
import LayoutHintCollection from "../layouthint/LayoutHintCollection";
|
|
6
5
|
/**
|
|
7
6
|
* Base model, this is the foundation of a model,
|
|
@@ -110,12 +109,7 @@ class BaseModel {
|
|
|
110
109
|
* Returns a clone of the model
|
|
111
110
|
*/
|
|
112
111
|
clone() {
|
|
113
|
-
|
|
114
|
-
// deepcopy can be expensive, use with care!
|
|
115
|
-
if (deepcopy) {
|
|
116
|
-
return cloneDeep(this);
|
|
117
|
-
}
|
|
118
|
-
return clone(this);
|
|
112
|
+
return klona(this);
|
|
119
113
|
}
|
|
120
114
|
}
|
|
121
115
|
export default BaseModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseModel.js","names":["
|
|
1
|
+
{"version":3,"file":"BaseModel.js","names":["klona","LayoutHintCollection","BaseModel","constructor","data","contributions","_data","_contributions","_layouthint","getContribution","getData","propName","defaultValue","layouthint","hasData","length","connectKey","key","_connectKey","dehydrate","rehydrate","clone"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n\n /**\n * constructor\n */\n constructor(data: Object, contributions: Object) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", [])\n );\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":";;AACA,SAASA,KAAK,QAAQ,YAAY;AAElC,OAAOC,oBAAoB,MAAM,oCAAoC;AASrE;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,CAAC;EAMd;AACF;AACA;EACEC,WAAW,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAAA;IAAA;IAAA;IAAA;IAC/C,IAAI,CAACC,KAAK,GAAGF,IAAI;IACjB,IAAI,CAACG,cAAc,GAAGF,aAAa;IACnC,IAAI,CAACG,WAAW,GAAG,IAAIP,oBAAoB,CACzC,IAAI,CAACQ,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,CACvC;EACH;;EAEA;AACF;AACA;EACE,IAAIL,IAAI,GAAW;IACjB,OAAO,IAAI,CAACE,KAAK,IAAI,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;EACEI,OAAO,CAACC,QAAgB,EAAiC;IAAA,IAA/BC,YAAiB,uEAAG,IAAI;IAChD,OAAO,IAAI,CAACR,IAAI,CAACO,QAAQ,CAAC,IAAIC,YAAY;EAC5C;;EAEA;AACF;AACA;EACE,IAAIP,aAAa,GAAW;IAC1B,OAAO,IAAI,CAACE,cAAc,IAAI,CAAC,CAAC;EAClC;;EAEA;AACF;AACA;EACEE,eAAe,CAACE,QAAgB,EAAiC;IAAA,IAA/BC,YAAiB,uEAAG,IAAI;IACxD,OAAO,IAAI,CAACP,aAAa,CAACM,QAAQ,CAAC,IAAIC,YAAY;EACrD;;EAEA;AACF;AACA;EACE,IAAIC,UAAU,GAAyB;IACrC,OAAO,IAAI,CAACL,WAAW;EACzB;;EAEA;AACF;AACA;EACE,IAAIK,UAAU,CAACA,UAAyB,EAAE;IACxC,IAAI,CAACL,WAAW,GAAG,IAAIP,oBAAoB,CAACY,UAAU,CAAC;EACzD;;EAEA;AACF;AACA;EACE,IAAIC,OAAO,GAAY;IACrB,OAAO,aAAY,IAAI,CAACV,IAAI,CAAC,CAACW,MAAM,GAAG,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAIC,UAAU,CAACC,GAAW,EAAE;IAC1B,IAAI,CAACC,WAAW,GAAGD,GAAG;EACxB;;EAEA;AACF;AACA;EACE,IAAID,UAAU,GAAW;IACvB,OAAO,IAAI,CAACE,WAAW;EACzB;;EAEA;AACF;AACA;EACEC,SAAS,GAAsB;IAC7B,OAAO;MACLf,IAAI,EAAE,IAAI,CAACE,KAAK;MAChBD,aAAa,EAAE,IAAI,CAACE,cAAc;MAClCS,UAAU,EAAE,IAAI,CAACE;IACnB,CAAC;EACH;;EAEA;AACF;AACA;EACEE,SAAS,CAAChB,IAAuB,EAAE;IACjC,IAAI,CAACc,WAAW,GAAGd,IAAI,CAACY,UAAU;EACpC;;EAEA;AACF;AACA;EACEK,KAAK,GAAQ;IACX,OAAOrB,KAAK,CAAC,IAAI,CAAC;EACpB;AACF;AAEA,eAAeE,SAAS"}
|
|
@@ -6,19 +6,32 @@ import { getCaptchaPath, HTTP_METHODS } from "../constants";
|
|
|
6
6
|
class CaptchaRequest {
|
|
7
7
|
constructor() {
|
|
8
8
|
_defineProperty(this, "_tokenId", void 0);
|
|
9
|
+
_defineProperty(this, "_image", void 0);
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
*/
|
|
13
|
+
captchaResponse(response) {
|
|
14
|
+
this._tokenId = response.tokenId ?? this._tokenId;
|
|
15
|
+
this._image = response.image ?? this._image;
|
|
16
|
+
return {
|
|
17
|
+
tokenId: this._tokenId,
|
|
18
|
+
image: this._image,
|
|
19
|
+
valid: response.valid ?? false,
|
|
20
|
+
error: response.error ?? null
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Initiate the captcha request
|
|
26
|
+
*/
|
|
12
27
|
init() {
|
|
13
28
|
return xhr({
|
|
14
29
|
url: getCaptchaPath()
|
|
15
|
-
}).then(response =>
|
|
16
|
-
this._tokenId = response.tokenId;
|
|
17
|
-
return response;
|
|
18
|
-
});
|
|
30
|
+
}).then(response => this.captchaResponse(response));
|
|
19
31
|
}
|
|
20
32
|
|
|
21
33
|
/**
|
|
34
|
+
* Answer the captcha
|
|
22
35
|
*/
|
|
23
36
|
send(answer) {
|
|
24
37
|
return xhr({
|
|
@@ -28,10 +41,14 @@ class CaptchaRequest {
|
|
|
28
41
|
tokenId: this._tokenId ?? "",
|
|
29
42
|
answer: answer ?? ""
|
|
30
43
|
}
|
|
31
|
-
}).catch(error =>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
44
|
+
}).then(response => this.captchaResponse(response)).catch(error => this.captchaResponse(error.response));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Reset the captcha and receive a new token and image
|
|
49
|
+
*/
|
|
50
|
+
refresh() {
|
|
51
|
+
return this.init();
|
|
35
52
|
}
|
|
36
53
|
}
|
|
37
54
|
export default CaptchaRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaptchaRequest.js","names":["xhr","getCaptchaPath","HTTP_METHODS","CaptchaRequest","
|
|
1
|
+
{"version":3,"file":"CaptchaRequest.js","names":["xhr","getCaptchaPath","HTTP_METHODS","CaptchaRequest","captchaResponse","response","_tokenId","tokenId","_image","image","valid","error","init","url","then","send","answer","method","POST","data","catch","refresh"],"sources":["../../src/modularui/CaptchaRequest.js"],"sourcesContent":["// @flow\nimport xhr from \"../utils/fetch/xhr\";\nimport { getCaptchaPath, HTTP_METHODS } from \"../constants\";\n\ntype CaptchaInitialResponse = {\n tokenId: string,\n image: string,\n};\n\ntype CaptchaValidResponse = {\n valid: boolean,\n};\n\ntype CaptchaInvalidResponse = {\n tokenId: string,\n image: string,\n valid: boolean,\n error: { id: string },\n};\n\ntype CaptchaResponse = {\n tokenId: string,\n image: string,\n valid: boolean,\n error: { id: string } | null,\n};\n\n/**\n */\nclass CaptchaRequest {\n _tokenId: string;\n _image: string;\n\n /**\n */\n captchaResponse(\n response:\n | CaptchaInitialResponse\n | CaptchaValidResponse\n | CaptchaInvalidResponse\n ): CaptchaResponse {\n this._tokenId = response.tokenId ?? this._tokenId;\n this._image = response.image ?? this._image;\n\n return {\n tokenId: this._tokenId,\n image: this._image,\n valid: response.valid ?? false,\n error: response.error ?? null,\n };\n }\n\n /**\n * Initiate the captcha request\n */\n init(): Promise<CaptchaResponse> {\n return xhr({\n url: getCaptchaPath(),\n }).then((response) => this.captchaResponse(response));\n }\n\n /**\n * Answer the captcha\n */\n send(answer?: string): Promise<CaptchaResponse> {\n return xhr({\n url: getCaptchaPath(),\n method: HTTP_METHODS.POST,\n data: {\n tokenId: this._tokenId ?? \"\",\n answer: answer ?? \"\",\n },\n })\n .then((response) => this.captchaResponse(response))\n .catch((error) => this.captchaResponse(error.response));\n }\n\n /**\n * Reset the captcha and receive a new token and image\n */\n refresh(): Promise<CaptchaResponse> {\n return this.init();\n }\n}\n\nexport default CaptchaRequest;\n"],"mappings":";AACA,OAAOA,GAAG,MAAM,oBAAoB;AACpC,SAASC,cAAc,EAAEC,YAAY,QAAQ,cAAc;AAyB3D;AACA;AACA,MAAMC,cAAc,CAAC;EAAA;IAAA;IAAA;EAAA;EAInB;AACF;EACEC,eAAe,CACbC,QAG0B,EACT;IACjB,IAAI,CAACC,QAAQ,GAAGD,QAAQ,CAACE,OAAO,IAAI,IAAI,CAACD,QAAQ;IACjD,IAAI,CAACE,MAAM,GAAGH,QAAQ,CAACI,KAAK,IAAI,IAAI,CAACD,MAAM;IAE3C,OAAO;MACLD,OAAO,EAAE,IAAI,CAACD,QAAQ;MACtBG,KAAK,EAAE,IAAI,CAACD,MAAM;MAClBE,KAAK,EAAEL,QAAQ,CAACK,KAAK,IAAI,KAAK;MAC9BC,KAAK,EAAEN,QAAQ,CAACM,KAAK,IAAI;IAC3B,CAAC;EACH;;EAEA;AACF;AACA;EACEC,IAAI,GAA6B;IAC/B,OAAOZ,GAAG,CAAC;MACTa,GAAG,EAAEZ,cAAc;IACrB,CAAC,CAAC,CAACa,IAAI,CAAET,QAAQ,IAAK,IAAI,CAACD,eAAe,CAACC,QAAQ,CAAC,CAAC;EACvD;;EAEA;AACF;AACA;EACEU,IAAI,CAACC,MAAe,EAA4B;IAC9C,OAAOhB,GAAG,CAAC;MACTa,GAAG,EAAEZ,cAAc,EAAE;MACrBgB,MAAM,EAAEf,YAAY,CAACgB,IAAI;MACzBC,IAAI,EAAE;QACJZ,OAAO,EAAE,IAAI,CAACD,QAAQ,IAAI,EAAE;QAC5BU,MAAM,EAAEA,MAAM,IAAI;MACpB;IACF,CAAC,CAAC,CACCF,IAAI,CAAET,QAAQ,IAAK,IAAI,CAACD,eAAe,CAACC,QAAQ,CAAC,CAAC,CAClDe,KAAK,CAAET,KAAK,IAAK,IAAI,CAACP,eAAe,CAACO,KAAK,CAACN,QAAQ,CAAC,CAAC;EAC3D;;EAEA;AACF;AACA;EACEgB,OAAO,GAA6B;IAClC,OAAO,IAAI,CAACT,IAAI,EAAE;EACpB;AACF;AAEA,eAAeT,cAAc"}
|
|
@@ -10,7 +10,7 @@ import FormModel from "../../models/form/FormModel";
|
|
|
10
10
|
const updateValidations = (form, formWithValidations) => (dispatch, getState) => {
|
|
11
11
|
const currentForm = getState().modularui[form.connectKey];
|
|
12
12
|
if (currentForm) {
|
|
13
|
-
const validatedForm = currentForm.model.clone(
|
|
13
|
+
const validatedForm = currentForm.model.clone();
|
|
14
14
|
if (validatedForm instanceof FormModel) {
|
|
15
15
|
validatedForm.updateValidations(formWithValidations.data);
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormValidations.js","names":["debounce","updateModel","ModularUIRequest","HTTP_METHODS","VALIDATE_DEBOUNCE_TIMEOUT","FormModel","updateValidations","form","formWithValidations","dispatch","getState","currentForm","modularui","connectKey","validatedForm","model","clone","data","debouncedValidateFormObject","selfhref","setParameter","method","POST","validationData","childmodels","isValidationRequest","locale","fetch","then","leading","trailing","validateFormObject"],"sources":["../../../src/redux/actions/FormValidations.js"],"sourcesContent":["// @flow\nimport debounce from \"lodash/debounce\";\n\nimport { updateModel } from \"../_modularui/ModularUIActions\";\n\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\n\nimport {\n HTTP_METHODS,\n VALIDATE_DEBOUNCE_TIMEOUT,\n} from \"../../constants/Constants\";\n\nimport FormModel from \"../../models/form/FormModel\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n * Update validations of the form currently in the reducer\n * because of the debounce timeout there might have been an update on the form during validation\n */\nconst updateValidations =\n (form: FormModel, formWithValidations: ModularUIModel) =>\n (dispatch: Dispatch, getState: GetState) => {\n const currentForm = getState().modularui[form.connectKey];\n\n if (currentForm) {\n const validatedForm = currentForm.model.clone(
|
|
1
|
+
{"version":3,"file":"FormValidations.js","names":["debounce","updateModel","ModularUIRequest","HTTP_METHODS","VALIDATE_DEBOUNCE_TIMEOUT","FormModel","updateValidations","form","formWithValidations","dispatch","getState","currentForm","modularui","connectKey","validatedForm","model","clone","data","debouncedValidateFormObject","selfhref","setParameter","method","POST","validationData","childmodels","isValidationRequest","locale","fetch","then","leading","trailing","validateFormObject"],"sources":["../../../src/redux/actions/FormValidations.js"],"sourcesContent":["// @flow\nimport debounce from \"lodash/debounce\";\n\nimport { updateModel } from \"../_modularui/ModularUIActions\";\n\nimport ModularUIRequest from \"../../modularui/ModularUIRequest\";\n\nimport {\n HTTP_METHODS,\n VALIDATE_DEBOUNCE_TIMEOUT,\n} from \"../../constants/Constants\";\n\nimport FormModel from \"../../models/form/FormModel\";\n\nimport type { Dispatch, GetState, ThunkAction } from \"../types\";\nimport type { ModularUIModel } from \"../../models\";\n\n/**\n * Update validations of the form currently in the reducer\n * because of the debounce timeout there might have been an update on the form during validation\n */\nconst updateValidations =\n (form: FormModel, formWithValidations: ModularUIModel) =>\n (dispatch: Dispatch, getState: GetState) => {\n const currentForm = getState().modularui[form.connectKey];\n\n if (currentForm) {\n const validatedForm = currentForm.model.clone();\n if (validatedForm instanceof FormModel) {\n validatedForm.updateValidations(formWithValidations.data);\n }\n\n dispatch(updateModel(validatedForm));\n }\n };\n\n/**\n * Validates form objects debounced to prevent overloading the (form) service\n * When a form with new errors (or complete) arrives, we send the validations\n * to the current form model where the errors are processed\n * A new form with the new constraints is send to the store\n */\nconst debouncedValidateFormObject = debounce<\n (dispatch: Dispatch, form: FormModel) => void\n>(\n (dispatch, form: FormModel) => {\n new ModularUIRequest(form.selfhref.setParameter(\"commit\", \"false\"), {\n method: HTTP_METHODS.POST,\n data: form.validationData,\n childmodels: false,\n isValidationRequest: true,\n locale: form.locale,\n })\n .fetch()\n .then((formWithValidations) =>\n dispatch(updateValidations(form, formWithValidations))\n );\n },\n VALIDATE_DEBOUNCE_TIMEOUT,\n {\n leading: true,\n trailing: true,\n }\n);\n\n/**\n */\nexport const validateFormObject =\n (form: FormModel): ThunkAction =>\n (dispatch) =>\n debouncedValidateFormObject(dispatch, form);\n"],"mappings":"AACA,OAAOA,QAAQ,MAAM,iBAAiB;AAEtC,SAASC,WAAW,QAAQ,gCAAgC;AAE5D,OAAOC,gBAAgB,MAAM,kCAAkC;AAE/D,SACEC,YAAY,EACZC,yBAAyB,QACpB,2BAA2B;AAElC,OAAOC,SAAS,MAAM,6BAA6B;AAKnD;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GACrB,CAACC,IAAe,EAAEC,mBAAmC,KACrD,CAACC,QAAkB,EAAEC,QAAkB,KAAK;EAC1C,MAAMC,WAAW,GAAGD,QAAQ,EAAE,CAACE,SAAS,CAACL,IAAI,CAACM,UAAU,CAAC;EAEzD,IAAIF,WAAW,EAAE;IACf,MAAMG,aAAa,GAAGH,WAAW,CAACI,KAAK,CAACC,KAAK,EAAE;IAC/C,IAAIF,aAAa,YAAYT,SAAS,EAAE;MACtCS,aAAa,CAACR,iBAAiB,CAACE,mBAAmB,CAACS,IAAI,CAAC;IAC3D;IAEAR,QAAQ,CAACR,WAAW,CAACa,aAAa,CAAC,CAAC;EACtC;AACF,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,2BAA2B,GAAGlB,QAAQ,CAG1C,CAACS,QAAQ,EAAEF,IAAe,KAAK;EAC7B,IAAIL,gBAAgB,CAACK,IAAI,CAACY,QAAQ,CAACC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;IAClEC,MAAM,EAAElB,YAAY,CAACmB,IAAI;IACzBL,IAAI,EAAEV,IAAI,CAACgB,cAAc;IACzBC,WAAW,EAAE,KAAK;IAClBC,mBAAmB,EAAE,IAAI;IACzBC,MAAM,EAAEnB,IAAI,CAACmB;EACf,CAAC,CAAC,CACCC,KAAK,EAAE,CACPC,IAAI,CAAEpB,mBAAmB,IACxBC,QAAQ,CAACH,iBAAiB,CAACC,IAAI,EAAEC,mBAAmB,CAAC,CAAC,CACvD;AACL,CAAC,EACDJ,yBAAyB,EACzB;EACEyB,OAAO,EAAE,IAAI;EACbC,QAAQ,EAAE;AACZ,CAAC,CACF;;AAED;AACA;AACA,OAAO,MAAMC,kBAAkB,GAC5BxB,IAAe,IACfE,QAAQ,IACPS,2BAA2B,CAACT,QAAQ,EAAEF,IAAI,CAAC"}
|
|
@@ -11,7 +11,7 @@ var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
11
11
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
12
12
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
14
|
-
var
|
|
14
|
+
var _full = require("klona/full");
|
|
15
15
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
16
16
|
var _objects = require("../../utils/helpers/objects");
|
|
17
17
|
/**
|
|
@@ -33,7 +33,7 @@ class AttributeDataHelper {
|
|
|
33
33
|
this._attribute = (0, _find.default)(data).call(data, attr => attr.elementid === key || attr.name === key || attr.param === key) || {};
|
|
34
34
|
this._value = this.getValue(this._attribute);
|
|
35
35
|
} else {
|
|
36
|
-
const attributeData = (0,
|
|
36
|
+
const attributeData = (0, _full.klona)(data);
|
|
37
37
|
attributeData._links = (0, _pick.default)(data._links, ["concept", "download", "lookupOptions", "lookupList"]);
|
|
38
38
|
this._attribute = attributeData;
|
|
39
39
|
if (data[key] === undefined || "name" in data && "param" in data) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import
|
|
2
|
+
import { klona } from "klona/full";
|
|
3
3
|
import pick from "lodash/pick";
|
|
4
4
|
|
|
5
5
|
import { has, isPlainObject } from "../../utils/helpers/objects";
|
|
@@ -33,7 +33,7 @@ class AttributeDataHelper {
|
|
|
33
33
|
) || {};
|
|
34
34
|
this._value = this.getValue(this._attribute);
|
|
35
35
|
} else {
|
|
36
|
-
const attributeData =
|
|
36
|
+
const attributeData = klona(data);
|
|
37
37
|
attributeData._links = pick(data._links, [
|
|
38
38
|
"concept",
|
|
39
39
|
"download",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeDataHelper.js","names":["AttributeDataHelper","constructor","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","cloneDeep","_links","pick","undefined","_children","createChildren","childData","parentKey","childKey","elements","element","has","isPlainObject","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","attribute","suggestions","suggestion","options","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","length","getData","child","subChild"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = cloneDeep(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AttributeDataHelper.js","names":["AttributeDataHelper","constructor","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","klona","_links","pick","undefined","_children","createChildren","childData","parentKey","childKey","elements","element","has","isPlainObject","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","attribute","suggestions","suggestion","options","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","length","getData","child","subChild"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = klona(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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"}
|
|
@@ -5,11 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
8
9
|
var _AttributeModel = _interopRequireDefault(require("./AttributeModel"));
|
|
9
10
|
/**
|
|
10
11
|
* Password attribute
|
|
11
12
|
*/
|
|
12
13
|
class CaptchaAttributeModel extends _AttributeModel.default {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
(0, _defineProperty2.default)(this, "_answer", "");
|
|
17
|
+
}
|
|
13
18
|
/**
|
|
14
19
|
*/
|
|
15
20
|
static isApplicableModel(contributions) {
|
|
@@ -31,6 +36,20 @@ class CaptchaAttributeModel extends _AttributeModel.default {
|
|
|
31
36
|
return this;
|
|
32
37
|
}
|
|
33
38
|
|
|
39
|
+
/**
|
|
40
|
+
*/
|
|
41
|
+
setAnswer(answer) {
|
|
42
|
+
this._answer = answer;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Retrieve the given answer for the captcha
|
|
47
|
+
* The value of this attribute is the token id of the captcha
|
|
48
|
+
*/
|
|
49
|
+
getAnswer() {
|
|
50
|
+
return this._answer;
|
|
51
|
+
}
|
|
52
|
+
|
|
34
53
|
/**
|
|
35
54
|
*/
|
|
36
55
|
get hasDynamicValidationData() {
|