@beinformed/ui 1.44.0 → 1.44.1
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 +7 -0
- package/esm/models/attributes/ChoiceAttributeModel.js +6 -0
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/user/UserModel.js +1 -1
- package/esm/models/user/UserModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +6 -0
- package/lib/models/attributes/ChoiceAttributeModel.js.flow +6 -0
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/user/UserModel.js +1 -1
- package/lib/models/user/UserModel.js.flow +1 -1
- package/lib/models/user/UserModel.js.map +1 -1
- package/package.json +1 -1
- package/src/models/attributes/ChoiceAttributeModel.js +6 -0
- package/src/models/user/UserModel.js +1 -1
- package/types/constants/Constants.d.ts +4 -0
- package/types/constants/LayoutHintConfig.d.ts +30 -0
- package/types/constants/LayoutHints.d.ts +5 -0
- package/types/models/attributes/ChoiceAttributeModel.d.ts +6 -0
- package/types/models/attributes/ChoiceAttributeOptionModel.d.ts +8 -0
- package/types/models/attributes/layouthint-rules/LayoutHintRuleCollection.d.ts +1 -1
- package/types/models/base/ResourceModel.d.ts +4 -0
- package/types/models/content/ContentLinkModel.d.ts +3 -0
- package/types/models/detail/DetailModel.d.ts +4 -0
- package/types/models/user/UserModel.d.ts +4 -0
- package/types/models/user/UserServicesModel.d.ts +3 -0
- package/types/utils/helpers/createHref.d.ts +7 -0
- package/types/utils/helpers/index.d.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.44.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.44.0...v1.44.1) (2024-03-18)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **avatar:** add isUser property to choice attribute ([19340f3](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/19340f3d5536987552267680b59a64fca7a0d192))
|
|
11
|
+
|
|
5
12
|
## [1.44.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.43.7...v1.44.0) (2024-03-18)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -52,6 +52,12 @@ export default class ChoiceAttributeModel extends AttributeModel {
|
|
|
52
52
|
return this.contributions?.optionType ?? "generic";
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
*/
|
|
57
|
+
get isUser() {
|
|
58
|
+
return this.optionType === "user";
|
|
59
|
+
}
|
|
60
|
+
|
|
55
61
|
/**
|
|
56
62
|
*/
|
|
57
63
|
getInitialChildModelLinks() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeModel.js","names":["has","DateUtil","AttributeModel","ChoiceAttributeOptionCollection","ChoiceAttributeOptionModel","ContentConfigurationElements","RENDER_SECTION_LABEL","SORT_OPTIONS","ATTRIBUTE_WIDTH","ChoiceAttributeModel","constructor","attribute","attributeContributions","_defineProperty","_referenceDate","getData","now","_options","create","referenceDate","layouthint","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","conceptLinkHref","href","concept","_findInstanceProperty","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_mapInstanceProperty","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includesInstanceProperty","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","add","toString","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","placeholder","addServerError","error","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","_errorCollection","readonlyWidth","SMALL","MEDIUM"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(oldAttribute.options, this.type === \"lookup\");\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n this.options.add(val);\n }\n\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"lookup\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeModel.js","names":["has","DateUtil","AttributeModel","ChoiceAttributeOptionCollection","ChoiceAttributeOptionModel","ContentConfigurationElements","RENDER_SECTION_LABEL","SORT_OPTIONS","ATTRIBUTE_WIDTH","ChoiceAttributeModel","constructor","attribute","attributeContributions","_defineProperty","_referenceDate","getData","now","_options","create","referenceDate","layouthint","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","isUser","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","conceptLinkHref","href","concept","_findInstanceProperty","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_mapInstanceProperty","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includesInstanceProperty","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","add","toString","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","placeholder","addServerError","error","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","_errorCollection","readonlyWidth","SMALL","MEDIUM"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n get isUser(): boolean {\n return this.optionType === \"user\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(oldAttribute.options, this.type === \"lookup\");\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n this.options.add(val);\n }\n\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"lookup\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":";;;;AACA,SAASA,GAAG,QAAQ,6BAA6B;AACjD,SAASC,QAAQ,QAAQ,mCAAmC;AAE5D,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,+BAA+B,MAAM,mCAAmC;AAC/E,OAAOC,0BAA0B,MAAM,8BAA8B;AACrE,OAAOC,4BAA4B,MAAM,sDAAsD;AAE/F,SACEC,oBAAoB,EACpBC,YAAY,QACP,6BAA6B;AACpC,SAASC,eAAe,QAAQ,iBAAiB;AAKjD;AACA;AACA;AACA,eAAe,MAAMC,oBAAoB,SAASP,cAAc,CAAC;EAK/D;AACF;AACA;EACEQ,WAAWA,CAACC,SAAiB,EAAEC,sBAA8B,EAAE;IAC7D,KAAK,CAACD,SAAS,EAAEC,sBAAsB,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEzC,IAAI,CAACC,cAAc,GAAG,IAAI,CAACC,OAAO,CAAC,eAAe,EAAEd,QAAQ,CAACe,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,CAACC,QAAQ,GAAGd,+BAA+B,CAACe,MAAM,CACpDP,SAAS,EACTC,sBAAsB,EACtB,IAAI,CAACO,aACP,CAAC;IAED,IAAI,IAAI,CAACC,UAAU,CAACpB,GAAG,CAACO,YAAY,CAAC,EAAE;MACrC,IAAI,CAACU,QAAQ,CAACI,WAAW,GAAG,IAAI;IAClC;EACF;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,aAAqB,EAAW;IACvD,OACEA,aAAa,CAACC,IAAI,KAAK,WAAW,IAClCD,aAAa,CAACC,IAAI,KAAK,SAAS,KAC/BD,aAAa,CAACC,IAAI,KAAK,QAAQ,IAC9BD,aAAa,CAACC,IAAI,KAAK,OAAO,IAC9BxB,GAAG,CAACuB,aAAa,EAAE,YAAY,CAAC,IAChCvB,GAAG,CAACuB,aAAa,EAAE,SAAS,CAAC,CAAC;EAEpC;;EAEA;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,MAAMC,UAAU,GAAG,IAAI,CAACC,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC;IACzD,MAAMC,aAAa,GAAG,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,cAAc;IAE5D,IACEJ,UAAU,KAAK,QAAQ,IACtBA,UAAU,KAAK,sBAAsB,IAAIE,aAAc,EACxD;MACA,OAAO,QAAQ;IACjB;IAEA,OAAO,QAAQ;EACjB;;EAEA;AACF;EACE,IAAIG,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACP,aAAa,EAAEO,UAAU,IAAI,SAAS;EACpD;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACD,UAAU,KAAK,MAAM;EACnC;;EAEA;AACF;EACEE,yBAAyBA,CAAA,EAAqB;IAC5C,MAAMC,KAAK,GAAG,EAAE;IAEhB,IAAI,IAAI,CAACC,uBAAuB,EAAE;MAChC,IAAI,CAAC,IAAI,CAACC,kBAAkB,IAAI,IAAI,CAACC,WAAW,EAAE;QAChDH,KAAK,CAACI,IAAI,CAAC,IAAI,CAACD,WAAW,CAAC;MAC9B;MAEAH,KAAK,CAACI,IAAI,CAAC,GAAG,IAAI,CAACC,OAAO,CAACN,yBAAyB,CAAC,CAAC,CAAC;IACzD;IAEA,OAAOC,KAAK;EACd;;EAEA;AACF;EACEM,cAAcA,CAACC,MAA6B,EAAE;IAC5C,MAAMC,eAAe,GAAG,IAAI,CAACL,WAAW,EAAEM,IAAI;IAC9C,IAAID,eAAe,EAAE;MACnB,IAAI,CAACE,OAAO,GAAGC,qBAAA,CAAAJ,MAAM,EAAAK,IAAA,CAANL,MAAM,EAClBM,KAAK,IACJA,KAAK,CAACtB,IAAI,KAAK,eAAe,IAC9BsB,KAAK,CAACC,QAAQ,CAACC,oBAAoB,CAACP,eAAe,CACvD,CAAC;IACH;IAEA,IAAI,CAACH,OAAO,CAACC,cAAc,CAACC,MAAM,CAAC;EACrC;;EAEA;AACF;AACA;EACE,IAAIZ,UAAUA,CAAA,EAAqB;IACjC,OAAO,IAAI,CAACK,KAAK,CAACgB,YAAY,CAAC,eAAe,CAAC;EACjD;;EAEA;AACF;AACA;EACE,IAAIpB,cAAcA,CAAA,EAAqB;IACrC,OAAO,IAAI,CAACI,KAAK,CAACgB,YAAY,CAAC,YAAY,CAAC;EAC9C;;EAEA;AACF;EACE,IAAIC,eAAeA,CAAA,EAAW;IAC5B,OAAO,IAAI,CAAC3B,aAAa,CAAC4B,UAAU,EAAEC,KAAK,IAAI,EAAE;EACnD;;EAEA;AACF;AACA;EACE,IAAIjC,aAAaA,CAAA,EAAa;IAC5B,OAAO,IAAI,CAACL,cAAc;EAC5B;;EAEA;AACF;AACA;EACE,IAAIK,aAAaA,CAACkC,IAAY,EAAE;IAC9B,IAAI,CAACvC,cAAc,GAAGuC,IAAI;IAE1B,IAAI,CAACf,OAAO,CAACnB,aAAa,GAAGkC,IAAI;EACnC;;EAEA;AACF;AACA;EACE,IAAIf,OAAOA,CAAA,EAAoC;IAC7C,OAAO,IAAI,CAACrB,QAAQ;EACtB;;EAEA;AACF;AACA;EACE,IAAIqC,QAAQA,CAAA,EAAkB;IAAA,IAAAC,QAAA;IAC5B;IACA,OAAOC,oBAAA,CAAAD,QAAA,OAAI,CAACjB,OAAO,CAACgB,QAAQ,EAAAT,IAAA,CAAAU,QAAA,EACzBE,MAAkC,IAAKA,MAAM,CAACC,IACjD,CAAC;EACH;;EAEA;AACF;AACA;EACE,IAAIC,aAAaA,CAAA,EAAW;IAAA,IAAAC,SAAA;IAC1B,OAAOJ,oBAAA,CAAAI,SAAA,OAAI,CAACtB,OAAO,CAACgB,QAAQ,EAAAT,IAAA,CAAAe,SAAA,EAAMH,MAAM,IAAKA,MAAM,CAACL,KAAK,CAAC,CAACS,IAAI,CAAC,IAAI,CAAC;EACvE;;EAEA;AACF;EACE,IAAIC,SAASA,CAAA,EAAQ;IACnB,IAAIC,KAAK,CAACC,OAAO,CAAC,IAAI,CAACC,UAAU,CAAC,IAAI,IAAI,CAACA,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;MAClE,OAAO,IAAI;IACb;IAEA,OAAO,IAAI,CAACD,UAAU;EACxB;;EAEA;AACF;AACA;EACEE,QAAQA,CAAA,EAAkB;IAAA,IAAAC,SAAA;IACxB,OAAO,IAAI,CAAC9B,OAAO,CAACgB,QAAQ,CAACY,MAAM,GAAG,CAAC,GACnCV,oBAAA,CAAAY,SAAA,OAAI,CAAC9B,OAAO,CAACgB,QAAQ,EAAAT,IAAA,CAAAuB,SAAA,EAAMX,MAAM,IAAKA,MAAM,CAACC,IAAI,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC,GAC5D,IAAI;EACV;;EAEA;AACF;EACEQ,QAAQA,CAAA,EAAY;IAClB,OAAO,IAAI,CAAC/B,OAAO,CAACgB,QAAQ,CAACY,MAAM,GAAG,CAAC;EACzC;;EAEA;AACF;AACA;EACEI,aAAaA,CAAA,EAAW;IACtB,OAAO,IAAI,CAAChB,QAAQ,CAACO,IAAI,CAAC,GAAG,CAAC;EAChC;;EAEA;AACF;AACA;EACEU,YAAYA,CAACb,IAAY,EAAE;IAAA,IAAAc,SAAA;IACzB,IAAIC,yBAAA,CAAAD,SAAA,OAAI,CAAClB,QAAQ,EAAAT,IAAA,CAAA2B,SAAA,EAAUd,IAAI,CAAC,EAAE;MAChC,IAAI,CAACgB,aAAa,CAAChB,IAAI,CAAC;IAC1B,CAAC,MAAM;MACL,IAAI,CAACiB,YAAY,CAACjB,IAAI,CAAC;IACzB;EACF;;EAEA;AACF;AACA;EACEiB,YAAYA,CAACjB,IAAY,EAAE;IACzB,IAAI,CAAC,IAAI,CAACkB,UAAU,EAAE;MACpB,IAAI,CAACtC,OAAO,CAACuC,WAAW,CAAC,CAAC;IAC5B;IAEA,IAAI,CAACvC,OAAO,CAACwC,MAAM,CAACpB,IAAI,CAAC;IACzB,IAAI,CAACqB,UAAU,GAAG,IAAI,CAACT,aAAa,CAAC,CAAC;EACxC;;EAEA;AACF;AACA;EACEI,aAAaA,CAAChB,IAAY,EAAE;IAC1B,IAAI,CAACpB,OAAO,CAAC0C,QAAQ,CAACtB,IAAI,CAAC;IAC3B,IAAI,CAACqB,UAAU,GAAG,IAAI,CAACT,aAAa,CAAC,CAAC;EACxC;;EAEA;AACF;AACA;EACEW,SAASA,CAACxB,MAAc,EAAE;IAAA,IAAAyB,SAAA;IACxB,IAAI,CAAC,IAAI,CAACN,UAAU,EAAE;MACpB,IAAI,CAACtC,OAAO,CAACuC,WAAW,CAAC,CAAC;IAC5B;IAEA,IAAIjC,qBAAA,CAAAsC,SAAA,OAAI,CAAC5C,OAAO,EAAAO,IAAA,CAAAqC,SAAA,EAAOC,GAAG,IAAKA,GAAG,CAACzB,IAAI,KAAKD,MAAM,CAACC,IAAI,CAAC,KAAK,IAAI,EAAE;MACjE,IAAI,CAACpB,OAAO,CAAC2C,SAAS,CAACxB,MAAM,CAACC,IAAI,EAAED,MAAM,CAAC;IAC7C;EACF;;EAEA;AACF;AACA;EACE,IAAI2B,UAAUA,CAAA,EAQD;IAAA,IAAAC,SAAA;IACX,OACEzC,qBAAA,CAAAyC,SAAA,IACE,UAAU,EACV,aAAa,EACb,UAAU,EACV,MAAM,EACN,UAAU,EACV,OAAO,EACP,UAAU,EACV,QAAQ,CACT,EAAAxC,IAAA,CAAAwC,SAAA,EAAOC,IAAI,IAAK,IAAI,CAAClE,UAAU,CAACpB,GAAG,CAACsF,IAAI,CAAC,CAAC,IAAI,UAAU;EAE7D;;EAEA;AACF;AACA;EACE,IAAIV,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACrD,aAAa,CAACgE,cAAc,IAAI,IAAI,CAACH,UAAU,KAAK,UAAU;EAC5E;;EAEA;AACF;AACA;EACE,IAAII,MAAMA,CAAA,EAAY;IACpB,OACExF,GAAG,CAAC,IAAI,CAACuB,aAAa,EAAE,SAAS,CAAC,IAClC,IAAI,CAACA,aAAa,CAACe,OAAO,CAACmD,IAAI,CAAEhC,MAAM,IAAKzD,GAAG,CAACyD,MAAM,EAAE,UAAU,CAAC,CAAC;EAExE;;EAEA;AACF;AACA;EACEiC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACpD,OAAO,CAACuC,WAAW,CAAC,CAAC;EAC5B;;EAEA;AACF;EACEc,cAAcA,CAACC,YAA2B,EAAE;IAC1C;IACA,IAAI,CAAC,IAAI,CAACC,QAAQ,IAAID,YAAY,YAAYnF,oBAAoB,EAAE;MAClE,IAAI,CAACkC,OAAO,GAAGiD,YAAY,CAACjD,OAAO;MACnC,IAAI,CAACL,OAAO,CAACwD,YAAY,CAACF,YAAY,CAACtD,OAAO,EAAE,IAAI,CAACd,IAAI,KAAK,QAAQ,CAAC;MACvE,IAAI,CAACc,OAAO,CAACuC,WAAW,CAAC,CAAC;MAE1B,IAAIe,YAAY,CAACG,OAAO,IAAIH,YAAY,CAACb,UAAU,KAAK,IAAI,EAAE;QAC5D,IAAI,CAACiB,MAAM,CAACJ,YAAY,CAACb,UAAU,CAAC;MACtC;IACF;EACF;;EAEA;AACF;AACA;EACEiB,MAAMA,CAACC,KAAU,EAAwB;IACvC,IAAI,IAAI,CAACJ,QAAQ,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,CAACK,sBAAsB,CAAC,CAAC;IAE7B,IAAIC,MAAM;IAEV,IAAIpC,KAAK,CAACC,OAAO,CAACiC,KAAK,CAAC,EAAE;MACxBE,MAAM,GAAGF,KAAK;IAChB,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,IAAI,CAACrB,UAAU,EAAE;MACvDuB,MAAM,GAAGF,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC;IAC3B,CAAC,MAAM;MACLD,MAAM,GAAG,CAACF,KAAK,CAAC;IAClB;IACAE,MAAM,CAACE,OAAO,CAAEC,GAAG,IAAK;MACtB,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACC,4BAA4B,EAAE;QAC/D;QACA,IAAI,CAAC,IAAI,CAACjE,OAAO,CAACmD,IAAI,CAAEhC,MAAM,IAAKA,MAAM,CAAC+C,MAAM,CAACF,GAAG,CAAC,CAAC,EAAE;UACtD,IAAI,CAAChE,OAAO,CAACmE,GAAG,CAACH,GAAG,CAAC;QACvB;QAEA,IAAI,CAAC/B,YAAY,CAAC+B,GAAG,CAAC5C,IAAI,CAAC;MAC7B,CAAC,MAAM,IACL,OAAO4C,GAAG,KAAK,QAAQ,IACvB,IAAI,CAAChE,OAAO,CAACmD,IAAI,CAAEhC,MAAM,IAAKA,MAAM,CAACC,IAAI,CAACgD,QAAQ,CAAC,CAAC,KAAKJ,GAAG,CAAC,EAC7D;QACA,IAAI,CAAC/B,YAAY,CAAC+B,GAAG,CAAC;MACxB;IACF,CAAC,CAAC;IAEF,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIpE,uBAAuBA,CAACA,uBAAgC,EAAE;IAC5D,IAAI,CAACyE,wBAAwB,GAC3B,IAAI,CAACC,oBAAoB,KAAK,IAAI,IAAI1E,uBAAuB;EACjE;;EAEA;AACF;EACE,IAAIA,uBAAuBA,CAAA,EAAY;IACrC,OAAO,IAAI,CAACyE,wBAAwB;EACtC;;EAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,oBAAoBA,CAAA,EAAwC;IAAA,IAAAC,SAAA;IAC9D,IACE,CAAC,IAAI,CAACtF,aAAa,CAACuF,OAAO,IAC3B,CAAC,IAAI,CAACvF,aAAa,CAACuF,OAAO,CAACC,cAAc,EAC1C;MACA,OAAO,IAAI;IACb;;IAEA;IACA,MAAMC,mBAAmB,GAAGxD,oBAAA,CAAAqD,SAAA,OAAI,CAACtF,aAAa,CAACuF,OAAO,CAACC,cAAc,EAAAlE,IAAA,CAAAgE,SAAA,EAClEI,aAAa,IAAK;MACjB,IAAI,gBAAgB,IAAIA,aAAa,EAAE;QACrC,OAAO;UACLC,cAAc,EAAE;YACd,GAAGD,aAAa,CAACC,cAAc;YAC/B9F,UAAU,EAAE,CAACd,oBAAoB;UACnC;QACF,CAAC;MACH;MAEA,OAAO2G,aAAa;IACtB,CACF,CAAC;IAED,OAAO,IAAI5G,4BAA4B,CAAC2G,mBAAmB,CAAC;EAC9D;;EAEA;AACF;AACA;EACE,IAAIG,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACzF,eAAe,CAAC,aAAa,EAAE,EAAE,CAAC;EAChD;;EAEA;AACF;AACA;EACE0F,cAAcA,CAACC,KAAsB,EAAE;IACrC,MAAM;MAAEC,EAAE;MAAEC,OAAO;MAAEC,UAAU;MAAEpG;IAAW,CAAC,GAAGiG,KAAK;IAErD,MAAMI,iBAAiB,GAAG,mBAAmB;IAE7C,IAAID,UAAU,IAAIxH,GAAG,CAACwH,UAAU,EAAEC,iBAAiB,CAAC,EAAE;MAAA,IAAAC,SAAA;MACpD,MAAMC,SAAS,GAAGH,UAAU,CAACC,iBAAiB,CAAC;MAC/C,MAAMG,WAAW,GAAGhF,qBAAA,CAAA8E,SAAA,OAAI,CAACpF,OAAO,EAAAO,IAAA,CAAA6E,SAAA,EAC7BjE,MAAM,IAAKA,MAAM,CAACC,IAAI,KAAKiE,SAC9B,CAAC;MACD,IAAIC,WAAW,EAAE;QACfJ,UAAU,CAACC,iBAAiB,CAAC,GAAGG,WAAW,CAACC,yBAAyB,CACnE,IAAI,CAACjB,oBACP,CAAC;MACH;IACF;IAEA,IAAI,CAACkB,gBAAgB,CAACV,cAAc,CAACE,EAAE,EAAEC,OAAO,EAAEC,UAAU,EAAEpG,UAAU,CAAC;EAC3E;;EAEA;AACF;EACE,IAAI2G,aAAaA,CAAA,EAAkC;IACjD,IAAI,IAAI,CAACvG,IAAI,KAAK,QAAQ,EAAE;MAC1B,OAAOhB,eAAe,CAACwH,KAAK;IAC9B;IAEA,OAAOxH,eAAe,CAACyH,MAAM;EAC/B;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserModel.js","names":["ResourceModel","UserModel","type","modelName","isApplicableModel","data","contributions","resourcetype","avatar","Avatar","username","Username","fullname","Fullname","label"],"sources":["../../../src/models/user/UserModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\n\n/**\n * User model\n */\nexport default class UserModel extends ResourceModel {\n /**\n */\n get type(): string {\n return \"User\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"UserModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"userdata\"\n );\n }\n\n /**\n * Retrieve
|
|
1
|
+
{"version":3,"file":"UserModel.js","names":["ResourceModel","UserModel","type","modelName","isApplicableModel","data","contributions","resourcetype","avatar","Avatar","username","Username","fullname","Fullname","label"],"sources":["../../../src/models/user/UserModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\n\n/**\n * User model\n */\nexport default class UserModel extends ResourceModel {\n /**\n */\n get type(): string {\n return \"User\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"UserModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"userdata\"\n );\n }\n\n /**\n * Retrieve avatar of user\n */\n get avatar(): string | null {\n return this.data.Avatar;\n }\n\n /**\n * Retrieve username of user\n */\n get username(): string {\n return this.data.Username || \"Guest\";\n }\n\n /**\n * retrieve the fullname of the user\n */\n get fullname(): string {\n return this.data.Fullname || \"Guest\";\n }\n\n /**\n */\n get label(): string {\n return this.contributions.label;\n }\n}\n"],"mappings":"AACA,OAAOA,aAAa,MAAM,uBAAuB;AAIjD;AACA;AACA;AACA,eAAe,MAAMC,SAAS,SAASD,aAAa,CAAC;EACnD;AACF;EACE,IAAIE,IAAIA,CAAA,EAAW;IACjB,OAAO,MAAM;EACf;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,WAAW;EACpB;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OACEA,IAAI,CAACC,aAAa,CAACC,YAAY,IAC/BF,IAAI,CAACC,aAAa,CAACC,YAAY,KAAK,UAAU;EAElD;;EAEA;AACF;AACA;EACE,IAAIC,MAAMA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACH,IAAI,CAACI,MAAM;EACzB;;EAEA;AACF;AACA;EACE,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACL,IAAI,CAACM,QAAQ,IAAI,OAAO;EACtC;;EAEA;AACF;AACA;EACE,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACP,IAAI,CAACQ,QAAQ,IAAI,OAAO;EACtC;;EAEA;AACF;EACE,IAAIC,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACR,aAAa,CAACQ,KAAK;EACjC;AACF","ignoreList":[]}
|
|
@@ -77,6 +77,12 @@ export default class ChoiceAttributeModel extends AttributeModel {
|
|
|
77
77
|
return this.contributions?.optionType ?? "generic";
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/**
|
|
81
|
+
*/
|
|
82
|
+
get isUser(): boolean {
|
|
83
|
+
return this.optionType === "user";
|
|
84
|
+
}
|
|
85
|
+
|
|
80
86
|
/**
|
|
81
87
|
*/
|
|
82
88
|
getInitialChildModelLinks(): Array<LinkModel> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeModel.js","names":["_objects","require","_DateTimeUtil","_AttributeModel","_interopRequireDefault","_ChoiceAttributeOptionCollection","_ChoiceAttributeOptionModel","_ContentConfigurationElements","_LayoutHints","_constants","ChoiceAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","layouthint","has","SORT_OPTIONS","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","conceptLinkHref","href","concept","_find","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_map","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includes","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","add","toString","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","placeholder","addServerError","error","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","_errorCollection","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(oldAttribute.options, this.type === \"lookup\");\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n this.options.add(val);\n }\n\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"lookup\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeModel.js","names":["_objects","require","_DateTimeUtil","_AttributeModel","_interopRequireDefault","_ChoiceAttributeOptionCollection","_ChoiceAttributeOptionModel","_ContentConfigurationElements","_LayoutHints","_constants","ChoiceAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","layouthint","has","SORT_OPTIONS","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","isUser","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","conceptLinkHref","href","concept","_find","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_map","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includes","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","add","toString","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","placeholder","addServerError","error","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","_errorCollection","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n get isUser(): boolean {\n return this.optionType === \"user\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(oldAttribute.options, this.type === \"lookup\");\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values;\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n this.options.add(val);\n }\n\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"lookup\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserModel.js","names":["_ResourceModel","_interopRequireDefault","require","UserModel","ResourceModel","type","modelName","isApplicableModel","data","contributions","resourcetype","avatar","Avatar","username","Username","fullname","Fullname","label","exports","default"],"sources":["../../../src/models/user/UserModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\n\n/**\n * User model\n */\nexport default class UserModel extends ResourceModel {\n /**\n */\n get type(): string {\n return \"User\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"UserModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"userdata\"\n );\n }\n\n /**\n * Retrieve
|
|
1
|
+
{"version":3,"file":"UserModel.js","names":["_ResourceModel","_interopRequireDefault","require","UserModel","ResourceModel","type","modelName","isApplicableModel","data","contributions","resourcetype","avatar","Avatar","username","Username","fullname","Fullname","label","exports","default"],"sources":["../../../src/models/user/UserModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\n\n/**\n * User model\n */\nexport default class UserModel extends ResourceModel {\n /**\n */\n get type(): string {\n return \"User\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"UserModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"userdata\"\n );\n }\n\n /**\n * Retrieve avatar of user\n */\n get avatar(): string | null {\n return this.data.Avatar;\n }\n\n /**\n * Retrieve username of user\n */\n get username(): string {\n return this.data.Username || \"Guest\";\n }\n\n /**\n * retrieve the fullname of the user\n */\n get fullname(): string {\n return this.data.Fullname || \"Guest\";\n }\n\n /**\n */\n get label(): string {\n return this.contributions.label;\n }\n}\n"],"mappings":";;;;;;;AACA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA;AACA;AACA;AACe,MAAMC,SAAS,SAASC,sBAAa,CAAC;EACnD;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,MAAM;EACf;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,WAAW;EACpB;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OACEA,IAAI,CAACC,aAAa,CAACC,YAAY,IAC/BF,IAAI,CAACC,aAAa,CAACC,YAAY,KAAK,UAAU;EAElD;;EAEA;AACF;AACA;EACE,IAAIC,MAAMA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACH,IAAI,CAACI,MAAM;EACzB;;EAEA;AACF;AACA;EACE,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACL,IAAI,CAACM,QAAQ,IAAI,OAAO;EACtC;;EAEA;AACF;AACA;EACE,IAAIC,QAAQA,CAAA,EAAW;IACrB,OAAO,IAAI,CAACP,IAAI,CAACQ,QAAQ,IAAI,OAAO;EACtC;;EAEA;AACF;EACE,IAAIC,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACR,aAAa,CAACQ,KAAK;EACjC;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAhB,SAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -77,6 +77,12 @@ export default class ChoiceAttributeModel extends AttributeModel {
|
|
|
77
77
|
return this.contributions?.optionType ?? "generic";
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/**
|
|
81
|
+
*/
|
|
82
|
+
get isUser(): boolean {
|
|
83
|
+
return this.optionType === "user";
|
|
84
|
+
}
|
|
85
|
+
|
|
80
86
|
/**
|
|
81
87
|
*/
|
|
82
88
|
getInitialChildModelLinks(): Array<LinkModel> {
|
|
@@ -10,6 +10,10 @@ export const UPLOAD_PATH: "/uploadFile";
|
|
|
10
10
|
* Captcha Path
|
|
11
11
|
*/
|
|
12
12
|
export const CAPTCHA_PATH: "/captchaServices";
|
|
13
|
+
/**
|
|
14
|
+
* Path to change avatar page / component
|
|
15
|
+
*/
|
|
16
|
+
export const CHANGEAVATAR_PATH: "/change-avatar";
|
|
13
17
|
/**
|
|
14
18
|
* Path to change password page / component
|
|
15
19
|
*/
|
|
@@ -238,4 +238,34 @@ export namespace LayoutHintConfiguration {
|
|
|
238
238
|
let component_16: string[];
|
|
239
239
|
export { component_16 as component };
|
|
240
240
|
}
|
|
241
|
+
namespace AVATAR {
|
|
242
|
+
let hint_17: string;
|
|
243
|
+
export { hint_17 as hint };
|
|
244
|
+
export namespace description_17 {
|
|
245
|
+
let NL_17: string;
|
|
246
|
+
export { NL_17 as NL };
|
|
247
|
+
let EN_17: string;
|
|
248
|
+
export { EN_17 as EN };
|
|
249
|
+
}
|
|
250
|
+
export { description_17 as description };
|
|
251
|
+
let link_12: string;
|
|
252
|
+
export { link_12 as link };
|
|
253
|
+
let component_17: string[];
|
|
254
|
+
export { component_17 as component };
|
|
255
|
+
}
|
|
256
|
+
namespace AVATAR_IN_TITLE {
|
|
257
|
+
let hint_18: string;
|
|
258
|
+
export { hint_18 as hint };
|
|
259
|
+
export namespace description_18 {
|
|
260
|
+
let NL_18: string;
|
|
261
|
+
export { NL_18 as NL };
|
|
262
|
+
let EN_18: string;
|
|
263
|
+
export { EN_18 as EN };
|
|
264
|
+
}
|
|
265
|
+
export { description_18 as description };
|
|
266
|
+
let link_13: string;
|
|
267
|
+
export { link_13 as link };
|
|
268
|
+
let component_18: string[];
|
|
269
|
+
export { component_18 as component };
|
|
270
|
+
}
|
|
241
271
|
}
|
|
@@ -71,6 +71,11 @@ export const RENDER_SECTION_LABEL: "render-section-label";
|
|
|
71
71
|
*/
|
|
72
72
|
export const HIDE_IN_USER_INTERFACE: string;
|
|
73
73
|
export function getLayoutHintConfiguration(): Object;
|
|
74
|
+
/**
|
|
75
|
+
* Layout-hint: Marks an attribute as an avatar for the title attribute.
|
|
76
|
+
*/
|
|
77
|
+
export const AVATAR_IN_TITLE: string;
|
|
78
|
+
export const AVATAR: string;
|
|
74
79
|
export default getHint;
|
|
75
80
|
/**
|
|
76
81
|
* Retrieve layout hint by id from the layout hint configuration
|
|
@@ -17,6 +17,7 @@ declare class ChoiceAttributeOptionModel extends BaseModel {
|
|
|
17
17
|
_links: LinkCollection;
|
|
18
18
|
_attributeCollection: AttributeCollection;
|
|
19
19
|
_content: AttributeContent;
|
|
20
|
+
_isUser: boolean;
|
|
20
21
|
/**
|
|
21
22
|
*/
|
|
22
23
|
set code(code: string);
|
|
@@ -102,6 +103,10 @@ declare class ChoiceAttributeOptionModel extends BaseModel {
|
|
|
102
103
|
* Retrieve concept link of attribute when available
|
|
103
104
|
*/
|
|
104
105
|
get conceptLink(): LinkModel;
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
*/
|
|
109
|
+
get avatarLink(): LinkModel;
|
|
105
110
|
/**
|
|
106
111
|
* Set level of option
|
|
107
112
|
*/
|
|
@@ -126,6 +131,9 @@ declare class ChoiceAttributeOptionModel extends BaseModel {
|
|
|
126
131
|
/**
|
|
127
132
|
*/
|
|
128
133
|
get content(): AttributeContent;
|
|
134
|
+
/**
|
|
135
|
+
*/
|
|
136
|
+
get isUser(): boolean;
|
|
129
137
|
}
|
|
130
138
|
import BaseModel from "../base/BaseModel";
|
|
131
139
|
import ChoiceAttributeOptionCollection from "./ChoiceAttributeOptionCollection";
|
|
@@ -10,7 +10,7 @@ declare class LayoutHintRuleCollection extends BaseCollection<ILayoutHintRule> {
|
|
|
10
10
|
/**
|
|
11
11
|
* Set layout hint rules on the applicable attributes
|
|
12
12
|
*/
|
|
13
|
-
static setLayoutHintRules<T,
|
|
13
|
+
static setLayoutHintRules<T, AttributeType>(attribute: T): T;
|
|
14
14
|
constructor(initCollection?: ILayoutHintRule[]);
|
|
15
15
|
/**
|
|
16
16
|
* Retrieve all rules available in the collection
|
|
@@ -38,6 +38,9 @@ export default class ContentLinkModel extends BaseModel {
|
|
|
38
38
|
* Retrieve the label of the source a link to a section belongs to
|
|
39
39
|
*/
|
|
40
40
|
get sourceLabel(): string;
|
|
41
|
+
/**
|
|
42
|
+
*/
|
|
43
|
+
createEncodedHref(): Href;
|
|
41
44
|
/**
|
|
42
45
|
* Encode the content-identifier of the path to the content resource.
|
|
43
46
|
* This makes it a single uri part, which can be used on routes to make nested routes
|
|
@@ -53,6 +53,10 @@ export default class DetailModel extends ResourceModel {
|
|
|
53
53
|
* Determines if this is a case
|
|
54
54
|
*/
|
|
55
55
|
get isCase(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Getting the attribute that has as layout hint 'avatar-for-title'
|
|
58
|
+
*/
|
|
59
|
+
get avatarForTitleAttribute(): AttributeType;
|
|
56
60
|
/**
|
|
57
61
|
* Getting the attribute that has as layout hint 'title'
|
|
58
62
|
*/
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function parseUrl(href: string): {
|
|
2
|
+
path: string;
|
|
3
|
+
querystring: null | string;
|
|
4
|
+
hash: null | string;
|
|
5
|
+
};
|
|
6
|
+
export function filterParameters(href: string, allowedParameters?: Array<string>): string;
|
|
7
|
+
export function createHref(context: string, dynamicPart: string, location?: Location, allowedParameters?: Array<string>): string;
|