@beinformed/ui 1.45.2 → 1.45.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
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.45.3](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.45.3-beta.0...v1.45.3) (2024-03-28)
6
+
7
+ ## [1.45.3-beta.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.45.2...v1.45.3-beta.0) (2024-03-28)
8
+
5
9
  ## [1.45.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.45.0...v1.45.2) (2024-03-28)
6
10
 
7
11
 
@@ -401,13 +401,9 @@ export default class FormObjectModel extends BaseModel {
401
401
  handleMissingValidations(missing) {
402
402
  const attributeErrors = [];
403
403
  for (const anchor of missing.anchors) {
404
- const {
405
- objectid,
406
- elements
407
- } = anchor;
408
- if (!objectid || objectid === this.key) {
409
- if (Array.isArray(elements)) {
410
- for (const element of elements) {
404
+ if (!anchor.objectid || anchor.objectid === this.key) {
405
+ if (Array.isArray(anchor.elements)) {
406
+ for (const element of anchor.elements) {
411
407
  attributeErrors.push({
412
408
  anchor: {
413
409
  elementid: element.elementid
@@ -1 +1 @@
1
- {"version":3,"file":"FormObjectModel.js","names":["has","BaseModel","AttributeCollection","CompositeAttributeModel","ContentConfiguration","ErrorCollection","IllegalArgumentException","LayoutHintCollection","FormObjectModel","constructor","object","objectContributions","_defineProperty","getElements","length","_attributeCollection","getApplicableAttributeContributions","_contentConfiguration","content","_errorCollection","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","createEmpty","formObjectModel","contributions","equals","_context","withRepeatIndex","arguments","undefined","key","objectContainsOneOfTheAttributes","_filterInstanceProperty","all","call","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","_context2","dataResults","_mapInstanceProperty","result","elementid","_context3","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","_Object$keys","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","setChildModels","models","objectid","hasEndResultConfiguration","getContribution","hasDynamicValidations","isRepeatable","_repeatIndex","index","maxRepeats","hasFixedNrOfRepeats","isRepeatWithUnknownTotal","isLastRepeat","last","repeatIndexLabel","label","introText","text","message","assistent","buttonLabels","mergeObject","oldObject","forEach","mergeWithAttribute","mergeAttribute","updateAttribute","value","attributeToUpdate","Error","name","update","isChangedSince","timestamp","_context4","_findInstanceProperty","resetErrors","errorCollection","addServerError","error","anchor","id","properties","layouthint","hasServerErrors","hasItems","hasErrors","isValid","visible","every","dynamicValidationsLoaded","_dynamicValidationsLoaded","handleErrorValidations","errors","attributeErrors","updateValidations","handleMissingValidations","missing","anchors","Array","isArray","formdata","getFormData","validationData"],"sources":["../../../src/models/form/FormObjectModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { MessageParameters } from \"../../i18n\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions(),\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {},\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration,\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\",\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions,\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key),\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid,\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes,\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object,\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey,\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this._attributeCollection.setChildModels(models);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text?.message) {\n return this.contributions.text.message;\n }\n\n return this.contributions.introText;\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp),\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid,\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n * Convert error json from a form service to validation messages on the form object and attributes\n */\n handleErrorValidations(\n errors: Array<{\n anchor: {\n objectid: string,\n elementid?: string,\n },\n id: string,\n message: string,\n properties: MessageParameters,\n layouthint: Array<string>,\n }>,\n ) {\n const attributeErrors = [];\n\n errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n }\n });\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n * Convert missing json from a form service to mandatory validation constraints and messages\n */\n handleMissingValidations(missing: {\n anchors: Array<\n | {\n elements: Array<{ elementid: string }>,\n objectid?: string,\n }\n | { anchor: { elementid: string, objectid?: string } },\n >,\n }) {\n const attributeErrors = [];\n\n for (const anchor of missing.anchors) {\n const { objectid, elements } = anchor;\n if (!objectid || objectid === this.key) {\n if (Array.isArray(elements)) {\n for (const element of elements) {\n attributeErrors.push({\n anchor: { elementid: element.elementid },\n id: \"Constraint.Mandatory\",\n });\n }\n } else {\n attributeErrors.push({\n anchor,\n id: \"Constraint.Mandatory\",\n });\n }\n }\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n if (Array.isArray(data.errors)) {\n this.handleErrorValidations(data.errors);\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n this.handleMissingValidations(data.missing);\n }\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormObjectModel.js","names":["has","BaseModel","AttributeCollection","CompositeAttributeModel","ContentConfiguration","ErrorCollection","IllegalArgumentException","LayoutHintCollection","FormObjectModel","constructor","object","objectContributions","_defineProperty","getElements","length","_attributeCollection","getApplicableAttributeContributions","_contentConfiguration","content","_errorCollection","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","createEmpty","formObjectModel","contributions","equals","_context","withRepeatIndex","arguments","undefined","key","objectContainsOneOfTheAttributes","_filterInstanceProperty","all","call","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","_context2","dataResults","_mapInstanceProperty","result","elementid","_context3","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","_Object$keys","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","setChildModels","models","objectid","hasEndResultConfiguration","getContribution","hasDynamicValidations","isRepeatable","_repeatIndex","index","maxRepeats","hasFixedNrOfRepeats","isRepeatWithUnknownTotal","isLastRepeat","last","repeatIndexLabel","label","introText","text","message","assistent","buttonLabels","mergeObject","oldObject","forEach","mergeWithAttribute","mergeAttribute","updateAttribute","value","attributeToUpdate","Error","name","update","isChangedSince","timestamp","_context4","_findInstanceProperty","resetErrors","errorCollection","addServerError","error","anchor","id","properties","layouthint","hasServerErrors","hasItems","hasErrors","isValid","visible","every","dynamicValidationsLoaded","_dynamicValidationsLoaded","handleErrorValidations","errors","attributeErrors","updateValidations","handleMissingValidations","missing","anchors","Array","isArray","formdata","getFormData","validationData"],"sources":["../../../src/models/form/FormObjectModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { MessageParameters } from \"../../i18n\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions(),\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {},\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration,\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\",\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions,\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key),\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid,\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes,\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object,\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey,\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this._attributeCollection.setChildModels(models);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text?.message) {\n return this.contributions.text.message;\n }\n\n return this.contributions.introText;\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp),\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid,\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n * Convert error json from a form service to validation messages on the form object and attributes\n */\n handleErrorValidations(\n errors: Array<{\n anchor: {\n objectid: string,\n elementid?: string,\n },\n id: string,\n message: string,\n properties: MessageParameters,\n layouthint: Array<string>,\n }>,\n ) {\n const attributeErrors = [];\n\n errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n }\n });\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n * Convert missing json from a form service to mandatory validation constraints and messages\n */\n handleMissingValidations(missing: {\n anchors: Array<\n | {\n elements: Array<{ elementid: string }>,\n objectid?: string,\n }\n | { anchor: { elementid: string, objectid?: string } },\n >,\n }) {\n const attributeErrors = [];\n\n for (const anchor of missing.anchors) {\n if (!anchor.objectid || anchor.objectid === this.key) {\n if (Array.isArray(anchor.elements)) {\n for (const element of anchor.elements) {\n attributeErrors.push({\n anchor: { elementid: element.elementid },\n id: \"Constraint.Mandatory\",\n });\n }\n } else {\n attributeErrors.push({\n anchor,\n id: \"Constraint.Mandatory\",\n });\n }\n }\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n if (Array.isArray(data.errors)) {\n this.handleErrorValidations(data.errors);\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n this.handleMissingValidations(data.missing);\n }\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -408,13 +408,9 @@ class FormObjectModel extends _BaseModel.default {
408
408
  handleMissingValidations(missing) {
409
409
  const attributeErrors = [];
410
410
  for (const anchor of missing.anchors) {
411
- const {
412
- objectid,
413
- elements
414
- } = anchor;
415
- if (!objectid || objectid === this.key) {
416
- if (Array.isArray(elements)) {
417
- for (const element of elements) {
411
+ if (!anchor.objectid || anchor.objectid === this.key) {
412
+ if (Array.isArray(anchor.elements)) {
413
+ for (const element of anchor.elements) {
418
414
  attributeErrors.push({
419
415
  anchor: {
420
416
  elementid: element.elementid
@@ -499,10 +499,9 @@ export default class FormObjectModel extends BaseModel {
499
499
  const attributeErrors = [];
500
500
 
501
501
  for (const anchor of missing.anchors) {
502
- const { objectid, elements } = anchor;
503
- if (!objectid || objectid === this.key) {
504
- if (Array.isArray(elements)) {
505
- for (const element of elements) {
502
+ if (!anchor.objectid || anchor.objectid === this.key) {
503
+ if (Array.isArray(anchor.elements)) {
504
+ for (const element of anchor.elements) {
506
505
  attributeErrors.push({
507
506
  anchor: { elementid: element.elementid },
508
507
  id: "Constraint.Mandatory",
@@ -1 +1 @@
1
- {"version":3,"file":"FormObjectModel.js","names":["_objects","require","_BaseModel","_interopRequireDefault","_AttributeCollection","_CompositeAttributeModel","_ContentConfiguration","_ErrorCollection","_exceptions","_LayoutHintCollection","FormObjectModel","BaseModel","constructor","object","objectContributions","_defineProperty2","default","getElements","length","_attributeCollection","AttributeCollection","getApplicableAttributeContributions","_contentConfiguration","ContentConfiguration","content","_errorCollection","ErrorCollection","has","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","createEmpty","formObjectModel","IllegalArgumentException","contributions","equals","_context","withRepeatIndex","arguments","undefined","key","objectContainsOneOfTheAttributes","_filter","all","call","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","_context2","dataResults","_map","result","elementid","_context3","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","_keys","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","setChildModels","models","objectid","hasEndResultConfiguration","getContribution","hasDynamicValidations","isRepeatable","_repeatIndex","index","maxRepeats","hasFixedNrOfRepeats","isRepeatWithUnknownTotal","isLastRepeat","last","repeatIndexLabel","label","introText","text","message","assistent","buttonLabels","mergeObject","oldObject","forEach","mergeWithAttribute","mergeAttribute","updateAttribute","value","attributeToUpdate","Error","name","CompositeAttributeModel","update","isChangedSince","timestamp","_context4","_find","resetErrors","errorCollection","addServerError","error","anchor","id","properties","layouthint","hasServerErrors","hasItems","hasErrors","isValid","visible","every","dynamicValidationsLoaded","_dynamicValidationsLoaded","handleErrorValidations","errors","attributeErrors","LayoutHintCollection","updateValidations","handleMissingValidations","missing","anchors","Array","isArray","formdata","getFormData","validationData","exports"],"sources":["../../../src/models/form/FormObjectModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { MessageParameters } from \"../../i18n\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions(),\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {},\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration,\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\",\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions,\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key),\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid,\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes,\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object,\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey,\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this._attributeCollection.setChildModels(models);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text?.message) {\n return this.contributions.text.message;\n }\n\n return this.contributions.introText;\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp),\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid,\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n * Convert error json from a form service to validation messages on the form object and attributes\n */\n handleErrorValidations(\n errors: Array<{\n anchor: {\n objectid: string,\n elementid?: string,\n },\n id: string,\n message: string,\n properties: MessageParameters,\n layouthint: Array<string>,\n }>,\n ) {\n const attributeErrors = [];\n\n errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n }\n });\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n * Convert missing json from a form service to mandatory validation constraints and messages\n */\n handleMissingValidations(missing: {\n anchors: Array<\n | {\n elements: Array<{ elementid: string }>,\n objectid?: string,\n }\n | { anchor: { elementid: string, objectid?: string } },\n >,\n }) {\n const attributeErrors = [];\n\n for (const anchor of missing.anchors) {\n const { objectid, elements } = anchor;\n if (!objectid || objectid === this.key) {\n if (Array.isArray(elements)) {\n for (const element of elements) {\n attributeErrors.push({\n anchor: { elementid: element.elementid },\n id: \"Constraint.Mandatory\",\n });\n }\n } else {\n attributeErrors.push({\n anchor,\n id: \"Constraint.Mandatory\",\n });\n }\n }\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n if (Array.isArray(data.errors)) {\n this.handleErrorValidations(data.errors);\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n this.handleMissingValidations(data.missing);\n }\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormObjectModel.js","names":["_objects","require","_BaseModel","_interopRequireDefault","_AttributeCollection","_CompositeAttributeModel","_ContentConfiguration","_ErrorCollection","_exceptions","_LayoutHintCollection","FormObjectModel","BaseModel","constructor","object","objectContributions","_defineProperty2","default","getElements","length","_attributeCollection","AttributeCollection","getApplicableAttributeContributions","_contentConfiguration","ContentConfiguration","content","_errorCollection","ErrorCollection","has","data","attributeCollection","setReferenceDate","getData","indicateContentConfiguration","contentConfiguration","createEmpty","formObjectModel","IllegalArgumentException","contributions","equals","_context","withRepeatIndex","arguments","undefined","key","objectContainsOneOfTheAttributes","_filter","all","call","attribute","isResult","some","hasAttributeByKey","hasSameRepeatIndex","repeatIndex","getAttributeByAttribute","getAttributeByKey","elements","push","results","_context2","dataResults","_map","result","elementid","_context3","dataElementIds","element","getAttributesInData","attributes","isDynamic","attributeKey","_keys","mandatory","attributesContributions","attributeContributions","dataElementId","split","getInitialChildModelLinks","setChildModels","models","objectid","hasEndResultConfiguration","getContribution","hasDynamicValidations","isRepeatable","_repeatIndex","index","maxRepeats","hasFixedNrOfRepeats","isRepeatWithUnknownTotal","isLastRepeat","last","repeatIndexLabel","label","introText","text","message","assistent","buttonLabels","mergeObject","oldObject","forEach","mergeWithAttribute","mergeAttribute","updateAttribute","value","attributeToUpdate","Error","name","CompositeAttributeModel","update","isChangedSince","timestamp","_context4","_find","resetErrors","errorCollection","addServerError","error","anchor","id","properties","layouthint","hasServerErrors","hasItems","hasErrors","isValid","visible","every","dynamicValidationsLoaded","_dynamicValidationsLoaded","handleErrorValidations","errors","attributeErrors","LayoutHintCollection","updateValidations","handleMissingValidations","missing","anchors","Array","isArray","formdata","getFormData","validationData","exports"],"sources":["../../../src/models/form/FormObjectModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport CompositeAttributeModel from \"../attributes/CompositeAttributeModel\";\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport type { AttributeType, ModularUIModel, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { MessageParameters } from \"../../i18n\";\n\n/**\n * Form Object\n */\nexport default class FormObjectModel extends BaseModel {\n _attributeCollection: AttributeCollection;\n _contentConfiguration: ContentConfiguration;\n _errorCollection: ErrorCollection;\n _repeatIndex: number;\n _dynamicValidationsLoaded: boolean;\n\n /**\n * Construct FormObjectModel\n */\n constructor(object: Object, objectContributions: Object) {\n super(object, objectContributions);\n\n if (object && this.getElements().length > 0) {\n this._attributeCollection = new AttributeCollection(\n this.getElements(),\n this.getApplicableAttributeContributions(),\n );\n } else {\n this._attributeCollection = new AttributeCollection();\n }\n\n this._contentConfiguration = new ContentConfiguration(\n objectContributions ? objectContributions.content : {},\n );\n\n this._errorCollection = new ErrorCollection(\"formobject\");\n\n if (has(this.data, \"referenceDate\")) {\n this.attributeCollection.setReferenceDate(this.getData(\"referenceDate\"));\n }\n\n this.attributeCollection.indicateContentConfiguration(\n this.contentConfiguration,\n );\n }\n\n /**\n */\n static createEmpty(formObjectModel: FormObjectModel): FormObjectModel {\n if (!formObjectModel) {\n throw new IllegalArgumentException(\n \"createEmpty method needs a FormObjectModel as input argument to create a new version of the object\",\n );\n }\n return new FormObjectModel(\n formObjectModel.data,\n formObjectModel.contributions,\n );\n }\n\n /**\n */\n equals(object: ?FormObjectModel, withRepeatIndex: boolean = true): boolean {\n if (!object || this.key !== object.key) {\n return false;\n }\n\n const objectContainsOneOfTheAttributes = this.attributeCollection.all\n .filter((attribute) => !attribute.isResult)\n .some(\n (attribute) =>\n object && object.attributeCollection.hasAttributeByKey(attribute.key),\n );\n\n const hasSameRepeatIndex = withRepeatIndex\n ? this.repeatIndex === object.repeatIndex\n : true;\n\n return hasSameRepeatIndex && objectContainsOneOfTheAttributes;\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.attributeCollection.getAttributeByAttribute(attribute);\n }\n\n /**\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.attributeCollection.getAttributeByKey(key);\n }\n\n /**\n */\n hasAttributeByKey(key: string): boolean {\n return this.attributeCollection.hasAttributeByKey(key);\n }\n\n /**\n * Get elements from both the missing attributes and the result attributes\n */\n getElements(): Array<Object> {\n const elements = [];\n\n if (this.data.elements) {\n elements.push(...this.data.elements);\n }\n\n if (this.data.results) {\n const dataResults = this.data.results.map((result) => ({\n ...result,\n isResult: true,\n }));\n\n elements.push(...dataResults);\n }\n\n if (this.data.elementid) {\n elements.push({\n ...this.data,\n });\n }\n\n return elements;\n }\n\n /**\n * Map available contributions on the available data. Only use contributions that are needed for the data\n */\n getApplicableAttributeContributions(): Array<Object> {\n if (this.data && this.contributions) {\n const dataElementIds = this.getElements().map(\n (element) => element.elementid,\n );\n\n const contributions = this.getAttributesInData(\n dataElementIds,\n this.contributions.attributes,\n );\n\n // set all attribute mandatory for dynamic object\n if (this.isDynamic) {\n return contributions.map((attribute) => {\n const [attributeKey] = Object.keys(attribute);\n return {\n [attributeKey]: {\n ...attribute[attributeKey],\n mandatory: true,\n },\n };\n });\n }\n\n return contributions;\n }\n\n return [];\n }\n\n /**\n * Recursevily check if an attribute id occurs in the tree of attribute contributions.\n * The complete leaf of the tree is returned when an attribute id matches\n */\n getAttributesInData(\n dataElementIds: Array<string>,\n attributesContributions: Object,\n ): Array<Object> {\n return attributesContributions.filter((attributeContributions) => {\n const [attributeKey] = Object.keys(attributeContributions);\n\n return dataElementIds.some(\n (dataElementId) => dataElementId.split(\".\")[0] === attributeKey,\n );\n });\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this._attributeCollection.setChildModels(models);\n }\n\n /**\n * get key\n */\n get key(): string {\n return this.data.objectid;\n }\n\n /**\n * Get content configuration for form objects\n */\n get contentConfiguration(): ContentConfiguration {\n return this._contentConfiguration;\n }\n\n /**\n */\n get hasEndResultConfiguration(): boolean {\n return this.contributions.content?.results != null;\n }\n\n /**\n * Indicates if object is dynamic. A dynamic object should be submitted on each attribute change\n */\n get isDynamic(): boolean {\n return this.getContribution(\"dynamicObject\", false);\n }\n\n /**\n */\n get hasDynamicValidations(): boolean {\n return this.getContribution(\"dynamicValidations\", false);\n }\n\n /**\n * Indicates if object is repeatable\n */\n get isRepeatable(): boolean {\n return this.getContribution(\"repeatable\", false);\n }\n\n /**\n */\n get repeatIndex(): number {\n return this._repeatIndex ?? this.data.index ?? 1;\n }\n\n /**\n */\n set repeatIndex(repeatIndex: number) {\n this._repeatIndex = repeatIndex;\n }\n\n /**\n */\n get maxRepeats(): number {\n if (this.isRepeatable) {\n return this.getData(\"numberofrepeats\", -1);\n }\n\n return 1;\n }\n\n /**\n */\n get hasFixedNrOfRepeats(): boolean {\n return this.maxRepeats > -1;\n }\n\n /**\n */\n get isRepeatWithUnknownTotal(): boolean {\n return this.isRepeatable && this.maxRepeats === -1;\n }\n\n /**\n */\n get isLastRepeat(): boolean {\n if (this.isRepeatable) {\n return this.data.last || false;\n }\n\n return true;\n }\n\n /**\n */\n get repeatIndexLabel(): string | null {\n return this.data[\"index-identifier\"] || null;\n }\n\n /**\n * Get label of form object\n */\n get label(): string {\n return this.contributions.label;\n }\n\n /**\n * Get introText of form object\n */\n get introText(): string {\n if (this.data.content?.text) {\n return this.data.content.text.message;\n }\n\n if (this.contributions.text?.message) {\n return this.contributions.text.message;\n }\n\n return this.contributions.introText;\n }\n\n /**\n * Get assistent of form object\n */\n get assistent(): string {\n return this.contributions.assistent;\n }\n\n /**\n * Get button labels\n */\n get buttonLabels(): Object {\n return this.getContribution(\"buttonLabels\", {});\n }\n\n /**\n * get attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n mergeObject(oldObject: FormObjectModel) {\n this.attributeCollection.forEach((attribute) => {\n const mergeWithAttribute = oldObject.getAttributeByAttribute(attribute);\n if (mergeWithAttribute) {\n attribute.mergeAttribute(mergeWithAttribute);\n }\n });\n\n this.repeatIndex = oldObject.repeatIndex;\n }\n\n /**\n * Update attribute\n */\n updateAttribute(attribute: AttributeType, value: any): AttributeType {\n const attributeToUpdate =\n this.attributeCollection.getAttributeByAttribute(attribute);\n\n if (attributeToUpdate === null) {\n throw new Error(`Attribute with name: ${attribute.name} not found.`);\n }\n\n if (attributeToUpdate instanceof CompositeAttributeModel) {\n attributeToUpdate.update(value, attribute);\n } else {\n attributeToUpdate.update(value);\n }\n\n return attributeToUpdate;\n }\n\n /**\n * Inidicates if Form is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return (\n this.attributeCollection.find((attribute) =>\n attribute.isChangedSince(timestamp),\n ) !== null\n );\n }\n\n /**\n * Reset all errors on Form Object\n */\n resetErrors() {\n this._errorCollection = new ErrorCollection(\"formobject\");\n this.attributeCollection.forEach((attribute) => attribute.resetErrors());\n }\n\n /**\n * Get error messages\n */\n get errorCollection(): ErrorCollection {\n return this._errorCollection;\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n if (error.anchor?.elementid != null) {\n this.attributeCollection.addServerError(error);\n } else {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.attributeCollection.hasServerErrors()\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems || this.attributeCollection.hasErrors()\n );\n }\n\n /**\n */\n get isValid(): boolean {\n return (\n this.attributeCollection.visible.every(\n (attribute) => attribute.isValid,\n ) && !this.errorCollection.hasItems\n );\n }\n\n /**\n */\n get dynamicValidationsLoaded(): boolean {\n return this._dynamicValidationsLoaded;\n }\n\n /**\n */\n set dynamicValidationsLoaded(dynamicValidationsLoaded: boolean) {\n this._dynamicValidationsLoaded = dynamicValidationsLoaded;\n }\n\n /**\n * Convert error json from a form service to validation messages on the form object and attributes\n */\n handleErrorValidations(\n errors: Array<{\n anchor: {\n objectid: string,\n elementid?: string,\n },\n id: string,\n message: string,\n properties: MessageParameters,\n layouthint: Array<string>,\n }>,\n ) {\n const attributeErrors = [];\n\n errors.forEach((error) => {\n if (error.anchor?.objectid === this.key) {\n if (has(error.anchor, \"elementid\")) {\n attributeErrors.push(error);\n } else {\n this.errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n new LayoutHintCollection(error.layouthint),\n );\n }\n }\n });\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n * Convert missing json from a form service to mandatory validation constraints and messages\n */\n handleMissingValidations(missing: {\n anchors: Array<\n | {\n elements: Array<{ elementid: string }>,\n objectid?: string,\n }\n | { anchor: { elementid: string, objectid?: string } },\n >,\n }) {\n const attributeErrors = [];\n\n for (const anchor of missing.anchors) {\n if (!anchor.objectid || anchor.objectid === this.key) {\n if (Array.isArray(anchor.elements)) {\n for (const element of anchor.elements) {\n attributeErrors.push({\n anchor: { elementid: element.elementid },\n id: \"Constraint.Mandatory\",\n });\n }\n } else {\n attributeErrors.push({\n anchor,\n id: \"Constraint.Mandatory\",\n });\n }\n }\n }\n\n this.attributeCollection.updateValidations(attributeErrors);\n }\n\n /**\n */\n updateValidations(data: any): FormObjectModel {\n this.resetErrors();\n\n if (Array.isArray(data.errors)) {\n this.handleErrorValidations(data.errors);\n }\n\n // missing attribute errors\n if (Array.isArray(data.missing?.anchors)) {\n this.handleMissingValidations(data.missing);\n }\n\n this.dynamicValidationsLoaded = true;\n\n return this;\n }\n\n /**\n * Generate formdata object for current formobject based on formdata of attributes\n */\n get formdata(): { [string]: any } | null {\n return this.attributeCollection.formdata;\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n return this.attributeCollection.getFormData(validationData);\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beinformed/ui",
3
- "version": "1.45.2",
3
+ "version": "1.45.3",
4
4
  "description": "Toolbox for be informed javascript layouts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "bugs": "http://support.beinformed.com",
@@ -499,10 +499,9 @@ export default class FormObjectModel extends BaseModel {
499
499
  const attributeErrors = [];
500
500
 
501
501
  for (const anchor of missing.anchors) {
502
- const { objectid, elements } = anchor;
503
- if (!objectid || objectid === this.key) {
504
- if (Array.isArray(elements)) {
505
- for (const element of elements) {
502
+ if (!anchor.objectid || anchor.objectid === this.key) {
503
+ if (Array.isArray(anchor.elements)) {
504
+ for (const element of anchor.elements) {
506
505
  attributeErrors.push({
507
506
  anchor: { elementid: element.elementid },
508
507
  id: "Constraint.Mandatory",
@@ -218,8 +218,6 @@ export namespace LayoutHintConfiguration {
218
218
  export { EN_15 as EN };
219
219
  }
220
220
  export { description_15 as description };
221
- let link_10: string;
222
- export { link_10 as link };
223
221
  let component_15: string[];
224
222
  export { component_15 as component };
225
223
  }
@@ -233,8 +231,6 @@ export namespace LayoutHintConfiguration {
233
231
  export { EN_16 as EN };
234
232
  }
235
233
  export { description_16 as description };
236
- let link_11: string;
237
- export { link_11 as link };
238
234
  let component_16: string[];
239
235
  export { component_16 as component };
240
236
  }
@@ -248,8 +244,8 @@ export namespace LayoutHintConfiguration {
248
244
  export { EN_17 as EN };
249
245
  }
250
246
  export { description_17 as description };
251
- let link_12: string;
252
- export { link_12 as link };
247
+ let link_10: string;
248
+ export { link_10 as link };
253
249
  let component_17: string[];
254
250
  export { component_17 as component };
255
251
  }
@@ -263,8 +259,8 @@ export namespace LayoutHintConfiguration {
263
259
  export { EN_18 as EN };
264
260
  }
265
261
  export { description_18 as description };
266
- let link_13: string;
267
- export { link_13 as link };
262
+ let link_11: string;
263
+ export { link_11 as link };
268
264
  let component_18: string[];
269
265
  export { component_18 as component };
270
266
  }
@@ -166,9 +166,11 @@ export default class FormObjectModel extends BaseModel {
166
166
  elements: Array<{
167
167
  elementid: string;
168
168
  }>;
169
+ objectid?: string;
169
170
  } | {
170
171
  anchor: {
171
172
  elementid: string;
173
+ objectid?: string;
172
174
  };
173
175
  }>;
174
176
  }): void;
@@ -121,6 +121,10 @@ export default class ListModel extends ResourceModel {
121
121
  * Retrieve all actions by type
122
122
  */
123
123
  getActionsByType(actionType: string): ActionCollection;
124
+ /**
125
+ * Retrieves the label of the first additional detail link by resource type
126
+ */
127
+ getAdditionalDetailLabel(resourceType: string): string | null;
124
128
  }
125
129
  import ResourceModel from "../base/ResourceModel";
126
130
  import ListDetailModel from "../list/ListDetailModel";
@@ -5,6 +5,9 @@ declare class LookupOptionCollection extends ResourceCollection<ChoiceAttributeO
5
5
  /**
6
6
  */
7
7
  static create(data: Object, contributions: Object): LookupOptionCollection;
8
+ /**
9
+ */
10
+ static getOptionType(option: Object, contributions: Object): string;
8
11
  constructor(initCollection?: ChoiceAttributeOptionModel[]);
9
12
  }
10
13
  import ChoiceAttributeOptionModel from "../attributes/ChoiceAttributeOptionModel";