@beinformed/ui 1.60.6 → 1.61.0
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/AttributeCollection.js +2 -2
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js +1 -1
- package/esm/models/attributes/AttributeContent.js.flow +1 -1
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js +4 -4
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +9 -9
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.d.ts +7 -0
- package/esm/models/content/ContentTOCModel.js +35 -8
- package/esm/models/content/ContentTOCModel.js.flow +36 -9
- package/esm/models/content/ContentTOCModel.js.map +1 -1
- package/esm/models/content/SectionModel.d.ts +3 -0
- package/esm/models/content/SectionModel.js +11 -2
- package/esm/models/content/SectionModel.js.flow +11 -0
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/content/SubSectionModel.d.ts +1 -1
- package/esm/models/content/SubSectionModel.js.flow +1 -1
- package/esm/models/content/SubSectionModel.js.map +1 -1
- package/esm/models/content/__tests__/Formalsource.spec.js.flow +91 -0
- package/esm/models/form/FormModel.js +33 -33
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.d.ts +13 -12
- package/esm/models/form/FormObjectModel.js +10 -9
- package/esm/models/form/FormObjectModel.js.flow +41 -27
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/form/__tests__/FormValidation.spec.js.flow +79 -0
- package/esm/models/href/Href.js +6 -6
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/links/LinkCollection.js +4 -4
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js +2 -2
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/utils/helpers/text.d.ts +1 -1
- package/esm/utils/helpers/text.js +1 -1
- package/esm/utils/helpers/text.js.flow +2 -2
- package/esm/utils/helpers/text.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js +1 -2
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/i18n/index.js +1 -2
- package/lib/i18n/index.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js +2 -2
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js +1 -1
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js +4 -4
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +9 -9
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.d.ts +7 -0
- package/lib/models/content/ContentTOCModel.js +35 -8
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/content/SectionModel.d.ts +3 -0
- package/lib/models/content/SectionModel.js +11 -2
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/content/SubSectionModel.d.ts +1 -1
- package/lib/models/content/SubSectionModel.js.map +1 -1
- package/lib/models/form/FormModel.js +33 -33
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.d.ts +13 -12
- package/lib/models/form/FormObjectModel.js +10 -9
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/href/Href.js +6 -6
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/index.js +1 -2
- package/lib/models/index.js.map +1 -1
- package/lib/models/links/LinkCollection.js +4 -4
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/react-server/serverUtil.js +1 -2
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js +2 -2
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/utils/helpers/text.d.ts +1 -1
- package/lib/utils/helpers/text.js +1 -1
- package/lib/utils/helpers/text.js.map +1 -1
- package/package.json +17 -17
- package/src/models/attributes/AttributeContent.js +1 -1
- package/src/models/content/ContentTOCModel.js +36 -9
- package/src/models/content/SectionModel.js +11 -0
- package/src/models/content/SubSectionModel.js +1 -1
- package/src/models/content/__tests__/Formalsource.spec.js +91 -0
- package/src/models/content/__tests__/formalsource-complete.json +234 -0
- package/src/models/content/__tests__/formalsource-contributions.json +110 -0
- package/src/models/content/__tests__/formalsource-section-contributions.json +84 -0
- package/src/models/content/__tests__/formalsource-section.json +60 -0
- package/src/models/content/__tests__/formalsource-toc.json +119 -0
- package/src/models/form/FormObjectModel.js +41 -27
- package/src/models/form/__tests__/FormValidation.spec.js +79 -0
- package/src/models/form/__tests__/FormValidationContributions.json +45 -0
- package/src/models/form/__tests__/FormValidationDataInitial.json +33 -0
- package/src/models/form/__tests__/FormValidationDataUpdate1.json +25 -0
- package/src/models/form/__tests__/FormValidationDataUpdate2.json +33 -0
- package/src/utils/helpers/text.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentTOCModel.js","names":["has","ResourceModel","FilterCollection","ContentLinkModel","ContentTypeModel","Href","TIMEVERSION_FILTER_NAME","getItems","items","entryDate","modelOptions","_mapInstanceProperty","call","item","link","section","_id","ContentTOCModel","constructor","arguments","_defineProperty","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","_findInstanceProperty","model","label","getData","selfhref","href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","_context","category","_contentType","_filterCollection","_context2","_filterInstanceProperty","_context3","key","_Object$keys","timeversionFilter","getFilterByAttributeKey","attribute"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModelOptions, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate,\n modelOptions,\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate, modelOptions);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ContentTOCModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ContentTOC\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate, this.modelOptions);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n return this.data.items\n ? getItems(this.data.items, this.entryDate, this.modelOptions)\n : [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category, null, this.modelOptions),\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(\n this.data.filter,\n {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n },\n this.modelOptions,\n );\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve modelcatalog.js of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME,\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ContentTOCModel.js","names":["has","ResourceModel","FilterCollection","ContentLinkModel","ContentTypeModel","Href","SectionModel","TIMEVERSION_FILTER_NAME","getItems","items","entryDate","modelOptions","_mapInstanceProperty","call","item","link","section","_id","sections","ContentTOCModel","constructor","arguments","_defineProperty","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","_findInstanceProperty","model","label","getData","selfhref","href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","_context","categories","_context2","category","_contentType","_filterCollection","_context3","_filterInstanceProperty","_context4","key","_Object$keys","timeversionFilter","getFilterByAttributeKey","attribute","isCompleteSource","completeFilter"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport SectionModel from \"./SectionModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type { ModelOptions, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate,\n modelOptions,\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate, modelOptions);\n }\n if (item.sections) {\n link.items = getItems(item.sections, entryDate, modelOptions);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ContentTOCModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return data.contributions?.resourcetype === \"ContentTOC\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate, this.modelOptions);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n if (this.data.items) {\n return getItems(this.data.items, this.entryDate, this.modelOptions);\n }\n\n if (this.data.sections) {\n return getItems(this.data.sections, this.entryDate, this.modelOptions);\n }\n\n return [];\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n if (this.data.sections) {\n return this.data.sections.map(\n (section) =>\n new SectionModel(section, this.entryDate, this.modelOptions),\n );\n }\n return [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category, null, this.modelOptions),\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(\n this.data.filter,\n {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n },\n this.modelOptions,\n );\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve modelcatalog.js of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME,\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n\n /**\n */\n get isCompleteSource(): boolean {\n const completeFilter =\n this.filterCollection.getFilterByAttributeKey(\"complete\");\n return completeFilter?.attribute?.value === \"true\";\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -134,12 +134,21 @@ class SectionModel extends BaseModel {
|
|
|
134
134
|
this._childSections = sections || [];
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
*/
|
|
139
|
+
get sections() {
|
|
140
|
+
if (this.data.sections) {
|
|
141
|
+
var _context4;
|
|
142
|
+
return _mapInstanceProperty(_context4 = this.data.sections).call(_context4, section => new SectionModel(section, this.entryDate, this.modelOptions));
|
|
143
|
+
}
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
137
146
|
/**
|
|
138
147
|
* Get sub sections
|
|
139
148
|
*/
|
|
140
149
|
get subSections() {
|
|
141
|
-
var
|
|
142
|
-
return this.data.subSections ? _mapInstanceProperty(
|
|
150
|
+
var _context5;
|
|
151
|
+
return this.data.subSections ? _mapInstanceProperty(_context5 = this.data.subSections).call(_context5, subSection => new SubSectionModel(subSection, this.entryDate, this.modelOptions)) : [];
|
|
143
152
|
}
|
|
144
153
|
|
|
145
154
|
/**
|
|
@@ -164,6 +164,17 @@ class SectionModel extends BaseModel {
|
|
|
164
164
|
this._childSections = sections || [];
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
/**
|
|
168
|
+
*/
|
|
169
|
+
get sections(): Array<SectionModel> {
|
|
170
|
+
if (this.data.sections) {
|
|
171
|
+
return this.data.sections.map(
|
|
172
|
+
(section) =>
|
|
173
|
+
new SectionModel(section, this.entryDate, this.modelOptions),
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
return [];
|
|
177
|
+
}
|
|
167
178
|
/**
|
|
168
179
|
* Get sub sections
|
|
169
180
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionModel.js","names":["BaseModel","ContentLinkModel","SubSectionModel","createHashFromHref","LinkModel","retrieveText","SectionModel","constructor","data","entryDate","modelOptions","_defineProperty","_entryDate","referred","selflink","_selflink","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","childSectionLinks","_context","childSections","_mapInstanceProperty","call","childSection","section","selfContentLink","_childSections","_context2","_context3","_filterInstanceProperty","sections","subSections","
|
|
1
|
+
{"version":3,"file":"SectionModel.js","names":["BaseModel","ContentLinkModel","SubSectionModel","createHashFromHref","LinkModel","retrieveText","SectionModel","constructor","data","entryDate","modelOptions","_defineProperty","_entryDate","referred","selflink","_selflink","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","childSectionLinks","_context","childSections","_mapInstanceProperty","call","childSection","section","selfContentLink","_childSections","_context2","_context3","_filterInstanceProperty","sections","_context4","subSections","_context5","subSection","referenceHash","getReferredSections","push","referredChilds"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport { retrieveText } from \"../../utils\";\n\nimport type Href from \"../href/Href\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n ) {\n super(data, {}, modelOptions);\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(\n this.data._links?.self,\n null,\n this.modelOptions,\n );\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n this.modelOptions,\n ),\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n this.modelOptions,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map(\n (childSection) =>\n new SectionModel(childSection, this.entryDate, this.modelOptions),\n );\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n if (this.data.sections) {\n return this.data.sections.map(\n (section) =>\n new SectionModel(section, this.entryDate, this.modelOptions),\n );\n }\n return [];\n }\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) =>\n new SubSectionModel(subSection, this.entryDate, this.modelOptions),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubSectionModel.js","names":["createHashFromHref","BaseModel","LinkCollection","Href","LinkModel","retrieveText","SubSectionModel","constructor","data","entryDate","modelOptions","_defineProperty","_entryDate","referred","id","_id","key","body","getData","number","label","subSections","_context","_mapInstanceProperty","call","subSection","links","_links","contributions","selflink","getLinkByKey","selfhref","href","relatedConceptsHrefs","hrefs","relatedConceptsHref","push","forEach","relatedConceptsLink","_context2","_includesInstanceProperty","hash","_context3","firstPart","path","substring","lastIndexOf","indexOf","addParameter","setReferenceHash","referenceHash","getReferredSections","sections","referredChilds"],"sources":["../../../src/models/content/SubSectionModel.js"],"sourcesContent":["// @flow\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport Href from \"../href/Href\";\nimport LinkModel from \"../links/LinkModel\";\nimport { retrieveText } from \"../../utils\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n * Link to a concept\n */\nexport default class SubSectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _links: LinkCollection;\n\n /**\n */\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n ) {\n super(data, {}, modelOptions);\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n * Retrieve key of subsection\n */\n get key(): ?string {\n return this.id;\n }\n\n /**\n * Retrieve html body\n */\n get body(): string {\n const body = this.getData(\"body\", \"\");\n return retrieveText(body);\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Retrieve label of section\n */\n get label(): ?string {\n return this.data.label;\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) =>\n new SubSectionModel(subSection, this.entryDate, this.modelOptions),\n )\n : [];\n }\n\n /**\n * Retrieve links of section\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n this.data._links,\n this.contributions._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel | null {\n return this.links.getLinkByKey(\"self\");\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href | null {\n return this.selflink ? this.selflink.href : null;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get relatedConceptsHrefs(): Array<Href> {\n const hrefs = [];\n if (this.relatedConceptsHref) {\n hrefs.push(this.relatedConceptsHref);\n }\n\n this.subSections.forEach((subSection) => {\n hrefs.push(...subSection.relatedConceptsHrefs);\n });\n\n return hrefs;\n }\n\n /**\n * Get related concepts link\n */\n get relatedConceptsHref(): Href | null {\n const relatedConceptsLink = this.links.getLinkByKey(\"relatedConcepts\");\n\n if (relatedConceptsLink) {\n const { href } = relatedConceptsLink;\n\n if (href.hash.includes(\"/relatedConcepts\")) {\n const firstPart = href.path.substring(0, href.path.lastIndexOf(\"/\"));\n href.path = firstPart + \"/\" + href.hash;\n href.hash = href.hash.includes(\"#\")\n ? href.hash.substring(href.hash.indexOf(\"#\"))\n : \"\";\n }\n\n href.addParameter(\"entryDate\", this.entryDate);\n href.setReferenceHash(this.referenceHash);\n\n return href;\n }\n\n return null;\n }\n\n /**\n */\n get referenceHash(): number {\n const selfhref = this.selfhref || new Href();\n return createHashFromHref(selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n"],"mappings":";;;AACA,SAASA,kBAAkB,QAAQ,gCAAgC;AAEnE,OAAOC,SAAS,MAAM,mBAAmB;AACzC,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,IAAI,MAAM,cAAc;AAC/B,OAAOC,SAAS,MAAM,oBAAoB;AAC1C,SAASC,YAAY,QAAQ,aAAa;AAG1C;AACA;AACA;AACA,eAAe,MAAMC,eAAe,SAASL,SAAS,CAAC;EAIrD;AACF;EACEM,WAAWA,CACTC,IAAY,EACZC,SAA0B,EAC1BC,YAA2B,EAC3B;IACA,KAAK,CAACF,IAAI,EAAE,CAAC,CAAC,EAAEE,YAAY,CAAC;IAACC,eAAA;IAAAA,eAAA;IAE9B,IAAI,CAACC,UAAU,GAAGH,SAAS;EAC7B;;EAEA;AACF;EACE,IAAII,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACL,IAAI,CAACK,QAAQ;EAC3B;;EAEA;AACF;EACE,IAAIC,EAAEA,CAAA,EAAW;IACf,OAAO,IAAI,CAACN,IAAI,CAACM,EAAE,IAAI,IAAI,CAACN,IAAI,CAACO,GAAG;EACtC;;EAEA;AACF;AACA;EACE,IAAIC,GAAGA,CAAA,EAAY;IACjB,OAAO,IAAI,CAACF,EAAE;EAChB;;EAEA;AACF;AACA;EACE,IAAIG,IAAIA,CAAA,
|
|
1
|
+
{"version":3,"file":"SubSectionModel.js","names":["createHashFromHref","BaseModel","LinkCollection","Href","LinkModel","retrieveText","SubSectionModel","constructor","data","entryDate","modelOptions","_defineProperty","_entryDate","referred","id","_id","key","body","getData","number","label","subSections","_context","_mapInstanceProperty","call","subSection","links","_links","contributions","selflink","getLinkByKey","selfhref","href","relatedConceptsHrefs","hrefs","relatedConceptsHref","push","forEach","relatedConceptsLink","_context2","_includesInstanceProperty","hash","_context3","firstPart","path","substring","lastIndexOf","indexOf","addParameter","setReferenceHash","referenceHash","getReferredSections","sections","referredChilds"],"sources":["../../../src/models/content/SubSectionModel.js"],"sourcesContent":["// @flow\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\nimport Href from \"../href/Href\";\nimport LinkModel from \"../links/LinkModel\";\nimport { retrieveText } from \"../../utils\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n * Link to a concept\n */\nexport default class SubSectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _links: LinkCollection;\n\n /**\n */\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n ) {\n super(data, {}, modelOptions);\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n * Retrieve key of subsection\n */\n get key(): ?string {\n return this.id;\n }\n\n /**\n * Retrieve html body\n */\n get body(): string | null {\n const body = this.getData(\"body\", \"\");\n return retrieveText(body);\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Retrieve label of section\n */\n get label(): ?string {\n return this.data.label;\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) =>\n new SubSectionModel(subSection, this.entryDate, this.modelOptions),\n )\n : [];\n }\n\n /**\n * Retrieve links of section\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n this.data._links,\n this.contributions._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel | null {\n return this.links.getLinkByKey(\"self\");\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href | null {\n return this.selflink ? this.selflink.href : null;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get relatedConceptsHrefs(): Array<Href> {\n const hrefs = [];\n if (this.relatedConceptsHref) {\n hrefs.push(this.relatedConceptsHref);\n }\n\n this.subSections.forEach((subSection) => {\n hrefs.push(...subSection.relatedConceptsHrefs);\n });\n\n return hrefs;\n }\n\n /**\n * Get related concepts link\n */\n get relatedConceptsHref(): Href | null {\n const relatedConceptsLink = this.links.getLinkByKey(\"relatedConcepts\");\n\n if (relatedConceptsLink) {\n const { href } = relatedConceptsLink;\n\n if (href.hash.includes(\"/relatedConcepts\")) {\n const firstPart = href.path.substring(0, href.path.lastIndexOf(\"/\"));\n href.path = firstPart + \"/\" + href.hash;\n href.hash = href.hash.includes(\"#\")\n ? href.hash.substring(href.hash.indexOf(\"#\"))\n : \"\";\n }\n\n href.addParameter(\"entryDate\", this.entryDate);\n href.setReferenceHash(this.referenceHash);\n\n return href;\n }\n\n return null;\n }\n\n /**\n */\n get referenceHash(): number {\n const selfhref = this.selfhref || new Href();\n return createHashFromHref(selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { ModularUIResponse } from "../../../modularui";
|
|
2
|
+
|
|
3
|
+
import toc from "./formalsource-toc.json";
|
|
4
|
+
import complete from "./formalsource-complete.json";
|
|
5
|
+
import contributions from "./formalsource-contributions.json";
|
|
6
|
+
|
|
7
|
+
import section from "./formalsource-section.json";
|
|
8
|
+
import sectionContributions from "./formalsource-section-contributions.json";
|
|
9
|
+
|
|
10
|
+
import ContentTOCModel from "../ContentTOCModel";
|
|
11
|
+
import ContentModel from "../ContentModel";
|
|
12
|
+
|
|
13
|
+
describe("formalsource", () => {
|
|
14
|
+
it("TOC model", () => {
|
|
15
|
+
const response = ModularUIResponse.create({
|
|
16
|
+
key: "contentmodel",
|
|
17
|
+
data: toc,
|
|
18
|
+
contributions,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const tocModel = new ContentTOCModel(response);
|
|
22
|
+
|
|
23
|
+
expect(tocModel).toBeInstanceOf(ContentTOCModel);
|
|
24
|
+
|
|
25
|
+
expect(tocModel.label).toBe(
|
|
26
|
+
"Grant Funding Agreement - Terms and Conditions",
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
expect(tocModel.items).toHaveLength(6);
|
|
30
|
+
expect(tocModel.items[0].items).toBeUndefined();
|
|
31
|
+
expect(tocModel.items[1].items).toHaveLength(2);
|
|
32
|
+
|
|
33
|
+
expect(tocModel.isCompleteSource).toBe(false);
|
|
34
|
+
|
|
35
|
+
const firstSection = tocModel.items[0];
|
|
36
|
+
expect(firstSection.label).toBe("1. Introduction");
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("Complete model", () => {
|
|
40
|
+
const response = ModularUIResponse.create({
|
|
41
|
+
key: "contentmodel",
|
|
42
|
+
data: complete,
|
|
43
|
+
contributions,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const completeModel = new ContentTOCModel(response);
|
|
47
|
+
|
|
48
|
+
expect(completeModel).toBeInstanceOf(ContentTOCModel);
|
|
49
|
+
|
|
50
|
+
expect(completeModel.items).toHaveLength(6);
|
|
51
|
+
expect(completeModel.items[0].items).toBeUndefined();
|
|
52
|
+
expect(completeModel.items[1].items).toHaveLength(2);
|
|
53
|
+
|
|
54
|
+
expect(completeModel.sections).toHaveLength(6);
|
|
55
|
+
expect(completeModel.sections[0].sections).toHaveLength(0);
|
|
56
|
+
expect(completeModel.sections[1].sections).toHaveLength(2);
|
|
57
|
+
|
|
58
|
+
expect(completeModel.isCompleteSource).toBe(true);
|
|
59
|
+
|
|
60
|
+
const firstSection = completeModel.sections[0];
|
|
61
|
+
expect(firstSection.label).toBe("Introduction");
|
|
62
|
+
expect(firstSection.number).toBe("1.");
|
|
63
|
+
expect(firstSection.body).toBe(null);
|
|
64
|
+
expect(firstSection.subSections).toHaveLength(3);
|
|
65
|
+
expect(firstSection.subSections[0].body).toHaveLength(169);
|
|
66
|
+
|
|
67
|
+
const secondSection = completeModel.sections[1];
|
|
68
|
+
expect(secondSection.label).toBe("Grant Offer");
|
|
69
|
+
expect(secondSection.number).toBe("2.");
|
|
70
|
+
expect(secondSection.body).toBe(null);
|
|
71
|
+
expect(secondSection.sections[0].label).toBe("Payment of Grant");
|
|
72
|
+
expect(secondSection.sections[0].number).toBe("2.1");
|
|
73
|
+
expect(secondSection.sections[0].body).toHaveLength(222);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("Section model", () => {
|
|
77
|
+
const response = ModularUIResponse.create({
|
|
78
|
+
key: "contentmodel",
|
|
79
|
+
data: section,
|
|
80
|
+
contributions: sectionContributions,
|
|
81
|
+
});
|
|
82
|
+
const sectionModel = new ContentModel(response);
|
|
83
|
+
|
|
84
|
+
expect(sectionModel.label).toBe("Grant Offer");
|
|
85
|
+
expect(sectionModel.number).toBe("2.");
|
|
86
|
+
expect(sectionModel.body).toBe(null);
|
|
87
|
+
expect(sectionModel.subSections).toHaveLength(0);
|
|
88
|
+
|
|
89
|
+
expect(sectionModel.childSectionLinks).toHaveLength(2);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
@@ -330,12 +330,12 @@ class FormModel extends ResourceModel {
|
|
|
330
330
|
*/
|
|
331
331
|
setEndResultFormObjects() {
|
|
332
332
|
if (this.data && this.data.results) {
|
|
333
|
-
var
|
|
333
|
+
var _context0, _context1;
|
|
334
334
|
const missingObjects = this.data.missing?.anchors ?? [];
|
|
335
335
|
const missingObjectIds = _mapInstanceProperty(missingObjects).call(missingObjects, anchor => anchor.objectid);
|
|
336
336
|
|
|
337
337
|
// Filter out intermediate results and rename elements property to result property
|
|
338
|
-
const endResultAnchors = _mapInstanceProperty(
|
|
338
|
+
const endResultAnchors = _mapInstanceProperty(_context0 = _filterInstanceProperty(_context1 = this.data.results).call(_context1, result => !_includesInstanceProperty(missingObjectIds).call(missingObjectIds, result.objectid))).call(_context0, result => {
|
|
339
339
|
const {
|
|
340
340
|
elements,
|
|
341
341
|
...otherProps
|
|
@@ -355,8 +355,8 @@ class FormModel extends ResourceModel {
|
|
|
355
355
|
/**
|
|
356
356
|
*/
|
|
357
357
|
get expectsEndResultFormObjects() {
|
|
358
|
-
var
|
|
359
|
-
const endResultKeys = _mapInstanceProperty(
|
|
358
|
+
var _context10;
|
|
359
|
+
const endResultKeys = _mapInstanceProperty(_context10 = this.endResultFormObjects).call(_context10, endResult => endResult.key);
|
|
360
360
|
return this.objectKeys.some(objectKey => this.contributions.objects?.[objectKey]?.content?.results && !_includesInstanceProperty(endResultKeys).call(endResultKeys, objectKey));
|
|
361
361
|
}
|
|
362
362
|
|
|
@@ -369,18 +369,18 @@ class FormModel extends ResourceModel {
|
|
|
369
369
|
/**
|
|
370
370
|
*/
|
|
371
371
|
getEndResultFormObjects() {
|
|
372
|
-
var
|
|
373
|
-
return _filterInstanceProperty(
|
|
374
|
-
var
|
|
375
|
-
return !_includesInstanceProperty(
|
|
372
|
+
var _context11;
|
|
373
|
+
return _filterInstanceProperty(_context11 = this.endResultFormObjects).call(_context11, endResult => {
|
|
374
|
+
var _context12;
|
|
375
|
+
return !_includesInstanceProperty(_context12 = this.previousEndResultKeys).call(_context12, endResult.key);
|
|
376
376
|
});
|
|
377
377
|
}
|
|
378
378
|
|
|
379
379
|
/**
|
|
380
380
|
*/
|
|
381
381
|
set endResultFormObjects(endResultFormObjects) {
|
|
382
|
-
var
|
|
383
|
-
this.previousEndResultKeys = _mapInstanceProperty(
|
|
382
|
+
var _context13;
|
|
383
|
+
this.previousEndResultKeys = _mapInstanceProperty(_context13 = this.endResultFormObjects).call(_context13, endResult => endResult.key);
|
|
384
384
|
this._endResultFormObjects = endResultFormObjects;
|
|
385
385
|
}
|
|
386
386
|
|
|
@@ -402,9 +402,9 @@ class FormModel extends ResourceModel {
|
|
|
402
402
|
get isValid() {
|
|
403
403
|
if (this.currentFormObject) {
|
|
404
404
|
if (this.currentFormObject.isRepeatable) {
|
|
405
|
-
var
|
|
405
|
+
var _context14, _context15;
|
|
406
406
|
// repeating objects need at least one valid form object
|
|
407
|
-
const hasOneValidQuestion = _findInstanceProperty(
|
|
407
|
+
const hasOneValidQuestion = _findInstanceProperty(_context14 = _filterInstanceProperty(_context15 = this.allObjects).call(_context15, object => object.equals(this.currentFormObject, false))).call(_context14, object => object.isValid);
|
|
408
408
|
if (hasOneValidQuestion) {
|
|
409
409
|
return true;
|
|
410
410
|
}
|
|
@@ -572,10 +572,10 @@ class FormModel extends ResourceModel {
|
|
|
572
572
|
/**
|
|
573
573
|
*/
|
|
574
574
|
selfhrefNoCommitParam() {
|
|
575
|
-
var
|
|
575
|
+
var _context16;
|
|
576
576
|
const selfhref = this.selflink.href;
|
|
577
577
|
selfhref.method = HTTP_METHODS.POST;
|
|
578
|
-
selfhref.parameters = _filterInstanceProperty(
|
|
578
|
+
selfhref.parameters = _filterInstanceProperty(_context16 = this.parameters).call(_context16, parameter => parameter.name !== "commit");
|
|
579
579
|
return selfhref;
|
|
580
580
|
}
|
|
581
581
|
|
|
@@ -648,11 +648,11 @@ class FormModel extends ResourceModel {
|
|
|
648
648
|
/**
|
|
649
649
|
*/
|
|
650
650
|
getFormDataObjects() {
|
|
651
|
-
var
|
|
651
|
+
var _context17;
|
|
652
652
|
let validOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
653
653
|
let validationData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
654
654
|
const formdata = [];
|
|
655
|
-
const formObjects = _filterInstanceProperty(
|
|
655
|
+
const formObjects = _filterInstanceProperty(_context17 = this.allObjects).call(_context17, (formObject, index) => {
|
|
656
656
|
// repeatabe object without fixed nr of repeats, remove last form object from formdata,
|
|
657
657
|
// because this is the formobject that is used as a placeholder for the create object
|
|
658
658
|
// of the collection of repeats
|
|
@@ -739,9 +739,9 @@ class FormModel extends ResourceModel {
|
|
|
739
739
|
* Form navigation: Go one object back (previous button)
|
|
740
740
|
*/
|
|
741
741
|
get hasPreviousStep() {
|
|
742
|
-
var
|
|
742
|
+
var _context18;
|
|
743
743
|
const currentFormObjectKey = this.currentFormObject != null ? this.currentFormObject.key : "";
|
|
744
|
-
return _filterInstanceProperty(
|
|
744
|
+
return _filterInstanceProperty(_context18 = this.completedFormObjects).call(_context18, formObject => !formObject.isRepeatWithUnknownTotal || formObject.key !== currentFormObjectKey).length > 0;
|
|
745
745
|
}
|
|
746
746
|
|
|
747
747
|
/**
|
|
@@ -751,7 +751,7 @@ class FormModel extends ResourceModel {
|
|
|
751
751
|
* a different key than the current form object
|
|
752
752
|
*/
|
|
753
753
|
setPreviousObject() {
|
|
754
|
-
var
|
|
754
|
+
var _context19, _context20, _context21, _context22, _context23;
|
|
755
755
|
this.isComplete = false;
|
|
756
756
|
this.isFinished = false;
|
|
757
757
|
this.success = null;
|
|
@@ -760,10 +760,10 @@ class FormModel extends ResourceModel {
|
|
|
760
760
|
this.previouslyEnteredFormObjects = [this.currentFormObject, ...this.previouslyEnteredFormObjects];
|
|
761
761
|
}
|
|
762
762
|
this.currentFormObject = this.completedFormObjects[this.completedFormObjects.length - 1];
|
|
763
|
-
this.completedFormObjects = _sliceInstanceProperty(
|
|
764
|
-
const completedFormObjectKeys = _filterInstanceProperty(
|
|
765
|
-
this.endResultFormObjects = _filterInstanceProperty(
|
|
766
|
-
this.previousEndResultKeys = _mapInstanceProperty(
|
|
763
|
+
this.completedFormObjects = _sliceInstanceProperty(_context19 = this.completedFormObjects).call(_context19, 0, -1);
|
|
764
|
+
const completedFormObjectKeys = _filterInstanceProperty(_context20 = _mapInstanceProperty(_context21 = this.completedFormObjects).call(_context21, formObject => formObject.key)).call(_context20, formObjectKey => formObjectKey !== this.currentFormObject?.key);
|
|
765
|
+
this.endResultFormObjects = _filterInstanceProperty(_context22 = this._endResultFormObjects).call(_context22, endResult => _includesInstanceProperty(completedFormObjectKeys).call(completedFormObjectKeys, endResult.key));
|
|
766
|
+
this.previousEndResultKeys = _mapInstanceProperty(_context23 = this.endResultFormObjects).call(_context23, endResult => endResult.key);
|
|
767
767
|
|
|
768
768
|
// while we are at the same repeating form object, go a step back
|
|
769
769
|
if (this.currentFormObject && this.currentFormObject.equals(oldCurrentFormObject, this.currentFormObject.hasFixedNrOfRepeats)) {
|
|
@@ -775,7 +775,7 @@ class FormModel extends ResourceModel {
|
|
|
775
775
|
* Form navigation: has next step or is last
|
|
776
776
|
*/
|
|
777
777
|
get hasNextStep() {
|
|
778
|
-
var
|
|
778
|
+
var _context24;
|
|
779
779
|
if (this.isComplete || this.isFinished || this.hasNoQuestionsConfigured || !this.contributions.objects) {
|
|
780
780
|
return false;
|
|
781
781
|
}
|
|
@@ -787,7 +787,7 @@ class FormModel extends ResourceModel {
|
|
|
787
787
|
if (this.expectsEndResultFormObjects) {
|
|
788
788
|
return true;
|
|
789
789
|
}
|
|
790
|
-
const currentObjectIndex = _findIndexInstanceProperty(
|
|
790
|
+
const currentObjectIndex = _findIndexInstanceProperty(_context24 = this.objectKeys).call(_context24, objectKey => objectKey === this.currentFormObject?.key);
|
|
791
791
|
const isLastObject = this.objectKeys.length - 1 === currentObjectIndex;
|
|
792
792
|
|
|
793
793
|
// current object is a repeating question but it is not the last one
|
|
@@ -933,11 +933,11 @@ class FormModel extends ResourceModel {
|
|
|
933
933
|
* Received missing anchors in the response with an object id that is the current form object
|
|
934
934
|
*/
|
|
935
935
|
processMissingErrors(receivedForm) {
|
|
936
|
-
var
|
|
936
|
+
var _context25;
|
|
937
937
|
if (this.currentFormObject === null) {
|
|
938
938
|
return null;
|
|
939
939
|
}
|
|
940
|
-
_mapInstanceProperty(
|
|
940
|
+
_mapInstanceProperty(_context25 = this.currentFormObject.attributeCollection).call(_context25, attribute => {
|
|
941
941
|
const receivedAttribute = receivedForm.currentFormObject?.getAttributeByKey(attribute.key);
|
|
942
942
|
if (receivedAttribute) {
|
|
943
943
|
attribute.addMissingError(receivedAttribute);
|
|
@@ -964,9 +964,9 @@ class FormModel extends ResourceModel {
|
|
|
964
964
|
this.completedFormObjects = [...this.allObjects];
|
|
965
965
|
this.currentFormObject = null;
|
|
966
966
|
} else {
|
|
967
|
-
var
|
|
967
|
+
var _context26;
|
|
968
968
|
// check if received form exists in the previously entered form objects
|
|
969
|
-
const previouslyEnteredFormObjects = _filterInstanceProperty(
|
|
969
|
+
const previouslyEnteredFormObjects = _filterInstanceProperty(_context26 = this.previouslyEnteredFormObjects).call(_context26, formObject => formObject.equals(receivedCurrentFormObject, formObject.hasFixedNrOfRepeats));
|
|
970
970
|
if (previouslyEnteredFormObjects.length > 0) {
|
|
971
971
|
this.handlePreviouslyEnteredFormObjects(receivedCurrentFormObject, previouslyEnteredFormObjects);
|
|
972
972
|
} else {
|
|
@@ -993,14 +993,14 @@ class FormModel extends ResourceModel {
|
|
|
993
993
|
/**
|
|
994
994
|
*/
|
|
995
995
|
handlePreviouslyEnteredFormObjects(receivedCurrentFormObject, previouslyEnteredFormObjects) {
|
|
996
|
-
var
|
|
996
|
+
var _context27;
|
|
997
997
|
previouslyEnteredFormObjects.forEach(previouslyEnteredFormObject => {
|
|
998
998
|
const mergedObject = this.mergePreviouslyEnteredObjects ? this.mergeObjects(receivedCurrentFormObject, previouslyEnteredFormObject) : receivedCurrentFormObject;
|
|
999
999
|
this.addFormObject(mergedObject);
|
|
1000
1000
|
});
|
|
1001
1001
|
|
|
1002
1002
|
// remove the previously entered form object
|
|
1003
|
-
this.previouslyEnteredFormObjects = _filterInstanceProperty(
|
|
1003
|
+
this.previouslyEnteredFormObjects = _filterInstanceProperty(_context27 = this.previouslyEnteredFormObjects).call(_context27, formObject => {
|
|
1004
1004
|
const hasPreviouslyEnteredObject = _findInstanceProperty(previouslyEnteredFormObjects).call(previouslyEnteredFormObjects, previouslyEnteredFormObject => formObject.equals(previouslyEnteredFormObject));
|
|
1005
1005
|
return !hasPreviouslyEnteredObject;
|
|
1006
1006
|
});
|
|
@@ -1020,8 +1020,8 @@ class FormModel extends ResourceModel {
|
|
|
1020
1020
|
let foundAttribute = null;
|
|
1021
1021
|
this.allObjects.forEach(formObject => {
|
|
1022
1022
|
if (foundAttribute === null) {
|
|
1023
|
-
var
|
|
1024
|
-
foundAttribute = _findInstanceProperty(
|
|
1023
|
+
var _context28;
|
|
1024
|
+
foundAttribute = _findInstanceProperty(_context28 = formObject.attributeCollection.all).call(_context28, item => findMethod(item)) || null;
|
|
1025
1025
|
}
|
|
1026
1026
|
});
|
|
1027
1027
|
return foundAttribute;
|