@beinformed/ui 1.13.2 → 1.13.6
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 +20 -0
- package/esm/constants/LayoutHintConfig.js +9 -0
- package/esm/constants/LayoutHintConfig.js.map +1 -1
- package/esm/constants/LayoutHints.js +5 -0
- package/esm/constants/LayoutHints.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js +3 -3
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/BooleanAttributeModel.js +1 -0
- package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +1 -0
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +2 -1
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js +8 -3
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/base/BaseCollection.js.map +1 -1
- package/esm/models/base/ResourceCollection.js +4 -2
- package/esm/models/base/ResourceCollection.js.map +1 -1
- package/esm/models/base/ResourceModel.js +1 -0
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js +2 -1
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +2 -1
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +2 -0
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/href/Href.js +1 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/react-server/renderSSRComplete.js +2 -1
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/serverNoSSR.js +1 -1
- package/esm/react-server/serverNoSSR.js.map +1 -1
- package/esm/redux/_modularui/actions.js +16 -17
- package/esm/redux/_modularui/actions.js.map +1 -1
- package/esm/redux/_modularui/reducer.js +1 -2
- package/esm/redux/_modularui/reducer.js.map +1 -1
- package/esm/redux/actions/SignIn.js +5 -9
- package/esm/redux/actions/SignIn.js.map +1 -1
- package/esm/utils/helpers/objects.js +2 -1
- package/esm/utils/helpers/objects.js.map +1 -1
- package/lib/constants/LayoutHintConfig.js +9 -0
- package/lib/constants/LayoutHintConfig.js.flow +9 -0
- package/lib/constants/LayoutHintConfig.js.map +1 -1
- package/lib/constants/LayoutHints.js +8 -2
- package/lib/constants/LayoutHints.js.flow +4 -0
- package/lib/constants/LayoutHints.js.map +1 -1
- package/lib/hooks/__tests__/useAuthentication.spec.js.flow +1 -0
- package/lib/models/attributes/AttributeContent.js +3 -3
- package/lib/models/attributes/AttributeContent.js.flow +3 -3
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js.flow +10 -2
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js +1 -0
- package/lib/models/attributes/BooleanAttributeModel.js.flow +4 -1
- package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +1 -0
- package/lib/models/attributes/ChoiceAttributeModel.js.flow +4 -1
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -2
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +2 -1
- package/lib/models/attributes/CompositeAttributeModel.js.flow +1 -0
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js +9 -3
- package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -4
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/base/BaseCollection.js.flow +2 -2
- package/lib/models/base/BaseCollection.js.map +1 -1
- package/lib/models/base/ResourceCollection.js +4 -2
- package/lib/models/base/ResourceCollection.js.flow +4 -6
- package/lib/models/base/ResourceCollection.js.map +1 -1
- package/lib/models/base/ResourceModel.js +1 -0
- package/lib/models/base/ResourceModel.js.flow +3 -2
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js +3 -1
- package/lib/models/concepts/BusinessScenarioModel.js.flow +2 -1
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +3 -1
- package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js.flow +5 -2
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js.flow +6 -2
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js +2 -0
- package/lib/models/content/ContentLinkModel.js.flow +2 -0
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/href/Href.js +1 -1
- package/lib/models/href/Href.js.flow +2 -1
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/types.js.flow +2 -2
- package/lib/react-server/__tests__/serverUtil.spec.js.flow +15 -14
- package/lib/react-server/renderSSRComplete.js +2 -1
- package/lib/react-server/renderSSRComplete.js.flow +4 -1
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/serverNoSSR.js +1 -1
- package/lib/react-server/serverNoSSR.js.flow +1 -1
- package/lib/react-server/serverNoSSR.js.map +1 -1
- package/lib/redux/_modularui/__tests__/actions.spec.js.flow +1 -0
- package/lib/redux/_modularui/actions.js +12 -12
- package/lib/redux/_modularui/actions.js.flow +12 -12
- package/lib/redux/_modularui/actions.js.map +1 -1
- package/lib/redux/_modularui/reducer.js +1 -2
- package/lib/redux/_modularui/reducer.js.flow +0 -1
- package/lib/redux/_modularui/reducer.js.map +1 -1
- package/lib/redux/actions/SignIn.js +6 -9
- package/lib/redux/actions/SignIn.js.flow +5 -11
- package/lib/redux/actions/SignIn.js.map +1 -1
- package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -0
- package/lib/redux/actions/__tests__/CustomErrorResponseHandler.spec.js.flow +2 -0
- package/lib/utils/fetch/__tests__/xhr.spec.js.flow +1 -0
- package/lib/utils/helpers/objects.js +3 -1
- package/lib/utils/helpers/objects.js.flow +2 -2
- package/lib/utils/helpers/objects.js.map +1 -1
- package/package.json +15 -15
- package/src/constants/LayoutHintConfig.js +9 -0
- package/src/constants/LayoutHints.js +4 -0
- package/src/hooks/__tests__/useAuthentication.spec.js +1 -0
- package/src/models/attributes/AttributeContent.js +3 -3
- package/src/models/attributes/AttributeModel.js +10 -2
- package/src/models/attributes/BooleanAttributeModel.js +4 -1
- package/src/models/attributes/ChoiceAttributeModel.js +4 -1
- package/src/models/attributes/ChoiceAttributeOptionCollection.js +1 -1
- package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -2
- package/src/models/attributes/CompositeAttributeChildCollection.js +1 -1
- package/src/models/attributes/CompositeAttributeModel.js +1 -0
- package/src/models/attributes/DatetimeAttributeModel.js +7 -4
- package/src/models/base/BaseCollection.js +2 -2
- package/src/models/base/ResourceCollection.js +4 -6
- package/src/models/base/ResourceModel.js +3 -2
- package/src/models/concepts/BusinessScenarioModel.js +2 -1
- package/src/models/concepts/ConceptDetailModel.js +2 -2
- package/src/models/concepts/ConceptLinkModel.js +5 -2
- package/src/models/concepts/ConceptRelationModel.js +6 -2
- package/src/models/content/ContentLinkModel.js +2 -0
- package/src/models/href/Href.js +2 -1
- package/src/models/types.js +2 -2
- package/src/react-server/__tests__/serverUtil.spec.js +15 -14
- package/src/react-server/renderSSRComplete.js +4 -1
- package/src/react-server/serverNoSSR.js +1 -1
- package/src/redux/_modularui/__tests__/actions.spec.js +1 -0
- package/src/redux/_modularui/actions.js +12 -12
- package/src/redux/_modularui/reducer.js +0 -1
- package/src/redux/actions/SignIn.js +5 -11
- package/src/redux/actions/__tests__/Application.spec.js +1 -0
- package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +2 -0
- package/src/utils/fetch/__tests__/xhr.spec.js +1 -0
- package/src/utils/helpers/objects.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"names":["ChoiceAttributeOptionCollection","_sortOptions","sortOptions","collection","forEach","option","children","a","b","label","localeCompare","data","selectedOptions","Array","isArray","options","push","selected","key","value","toString","code","foundOption","count","contributions","referenceDate","DateUtil","now","selectedValues","getSelectedOptions","optionContributions","optionCode","addOption","getOptionCount","dynamicschema","optionDynamicschema","elementsContributions","defaultLabel","isBooleanType","hasAlternativeLabel","layouthints","layouthint","requireDefaultValue","optionValue","getDefaultValueForOption","addBooleanOption","optionModel","ChoiceAttributeOptionModel","add","newOption","clone","deselectAll","toggle","action","date","setReferenceDate","headers","_headers","child","ListHeaderModel","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","type","addBooleanOptions","addDynamicSchema","addOptions","addHeaders","ResourceCollection"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n /**\n */\n set sortOptions(sortOptions: boolean) {\n this._sortOptions = sortOptions;\n\n this.collection.forEach((option) => {\n if (option.children) {\n option.children.sortOptions = sortOptions;\n }\n });\n }\n\n /**\n */\n get sortOptions(): boolean {\n return this._sortOptions;\n }\n\n /**\n */\n static create(\n data: Object = {},\n contributions: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection();\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions, referenceDate);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions, referenceDate);\n }\n\n if (contributions.children != null) {\n collection.addHeaders(contributions.children);\n }\n\n return collection;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<ChoiceAttributeOptionModel> {\n return this.sortOptions\n ? this.collection.sort((a, b) => a.label.localeCompare(b.label))\n : this.collection;\n }\n\n /**\n */\n getSelectedOptions(data: Object): Array<string> {\n const selectedOptions = [];\n\n if (Array.isArray(data.options)) {\n selectedOptions.push(\n ...data.options\n .filter((option) => option.selected)\n .map((option) => option.key)\n );\n } else if (Array.isArray(data.value)) {\n selectedOptions.push(...data.value);\n } else if (typeof data.value === \"boolean\") {\n selectedOptions.push(data.value.toString());\n } else {\n selectedOptions.push(data.value);\n }\n\n return selectedOptions;\n }\n\n /**\n */\n getOptionCount(code: string, options: Array<Object>): number | null {\n if (Array.isArray(options)) {\n const foundOption = options.find((option) => option.key === code);\n if (foundOption) {\n return foundOption.count;\n }\n }\n\n return null;\n }\n\n /**\n */\n addOptions(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(\n selectedValues,\n {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n * Create options based on data and dynamischema\n */\n addDynamicSchema(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(\n selectedValues,\n {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n elementsContributions: contributions.children,\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n */\n addBooleanOption(\n code: \"true\" | \"false\",\n defaultLabel: string,\n data: string | Array<string>,\n options: Array<Object> = []\n ) {\n const foundOption = options.find((option) => option.code === code);\n\n const label = foundOption ? foundOption.label : defaultLabel;\n\n this.addOption(data, {\n code,\n label,\n isBooleanType: true,\n hasAlternativeLabel: foundOption != null,\n });\n }\n\n /**\n */\n getDefaultValueForOption(value: any, contributions: Object): string {\n const layouthints = contributions.layouthint ?? [];\n\n const requireDefaultValue =\n layouthints.includes(\"checkbox\") || layouthints.includes(\"toggle\");\n\n return requireDefaultValue ? \"false\" : \"\";\n }\n\n /**\n * Create two static options for true and false,\n * there might be alternative labels configured for each option value\n */\n addBooleanOptions(\n value: any,\n contributions: Object\n ): ChoiceAttributeOptionCollection {\n const optionValue =\n value == null\n ? this.getDefaultValueForOption(value, contributions)\n : value.toString();\n\n this.addBooleanOption(\"true\", \"Yes\", [optionValue], contributions.options);\n this.addBooleanOption(\"false\", \"No\", [optionValue], contributions.options);\n\n return this;\n }\n\n /**\n */\n addOption(\n data: string | Array<string>,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n referenceDate\n );\n\n this.add(optionModel);\n\n return this;\n }\n\n /**\n * Get all options that have selected property true\n */\n get selected(): Array<ChoiceAttributeOptionModel> {\n const selectedOptions = [];\n\n this.collection.forEach((option) => {\n if (option.selected && option.selected === true) {\n selectedOptions.push(option);\n }\n\n if (option.children) {\n selectedOptions.push(...option.children.selected);\n }\n });\n\n return selectedOptions;\n }\n\n /**\n * Deselect all options\n */\n deselectAll() {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n newOption.selected = false;\n\n if (newOption.children) {\n newOption.children.deselectAll();\n }\n\n return newOption;\n });\n }\n\n /**\n * Select an option by it's code\n */\n select(optionCode: string) {\n this.toggle(optionCode, \"select\");\n }\n\n /**\n * Deselect an option by it's code\n */\n deselect(optionCode: string) {\n this.toggle(optionCode, \"deselect\");\n }\n\n /**\n * Toggle an option by it's code\n */\n toggle(optionCode: string, action: \"select\" | \"deselect\") {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n if (newOption.code === optionCode) {\n newOption.selected = action === \"select\";\n } else if (newOption.children) {\n newOption.children.toggle(optionCode, action);\n }\n\n return newOption;\n });\n }\n\n /**\n */\n setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel> {\n return this.collection.map((option) => {\n option.referenceDate = date;\n if (option.children) {\n option.children.referenceDate = date;\n }\n\n return option;\n });\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this.collection = this.setReferenceDate(date);\n }\n\n /**\n */\n addHeaders(headers: Array<Object>) {\n this._headers = headers.map((child) => new ListHeaderModel(child));\n }\n\n /**\n */\n get headers(): Array<ListHeaderModel> {\n if (this._headers) {\n return this._headers;\n }\n\n return [];\n }\n\n /**\n */\n mergeOptions(\n withOptions: ChoiceAttributeOptionCollection,\n addNotExistingOptions: boolean = false\n ) {\n if (addNotExistingOptions) {\n this.collection = [\n ...this.collection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code)\n ),\n ];\n }\n\n this.collection.forEach((option) => {\n const foundOption = withOptions.find(\n (withOption) => withOption.code === option.code\n );\n if (foundOption) {\n option.mergeOption(foundOption);\n }\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"file":"ChoiceAttributeOptionCollection.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"names":["ChoiceAttributeOptionCollection","_sortOptions","sortOptions","collection","forEach","option","children","a","b","label","localeCompare","data","selectedOptions","Array","isArray","options","push","selected","key","value","toString","code","foundOption","count","contributions","referenceDate","DateUtil","now","selectedValues","getSelectedOptions","optionContributions","optionCode","addOption","getOptionCount","dynamicschema","optionDynamicschema","elementsContributions","defaultLabel","isBooleanType","hasAlternativeLabel","layouthints","layouthint","requireDefaultValue","optionValue","getDefaultValueForOption","addBooleanOption","optionModel","ChoiceAttributeOptionModel","add","newOption","clone","deselectAll","toggle","action","date","setReferenceDate","headers","_headers","child","ListHeaderModel","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","type","addBooleanOptions","addDynamicSchema","addOptions","addHeaders","ResourceCollection"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n /**\n */\n set sortOptions(sortOptions: boolean) {\n this._sortOptions = sortOptions;\n\n this.collection.forEach((option) => {\n if (option.children) {\n option.children.sortOptions = sortOptions;\n }\n });\n }\n\n /**\n */\n get sortOptions(): boolean {\n return this._sortOptions;\n }\n\n /**\n */\n static create(\n data: Object = {},\n contributions: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection();\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions, referenceDate);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions, referenceDate);\n }\n\n if (contributions.children != null) {\n collection.addHeaders(contributions.children);\n }\n\n return collection;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<ChoiceAttributeOptionModel> {\n return this.sortOptions\n ? this.collection.sort((a, b) => a.label.localeCompare(b.label))\n : this.collection;\n }\n\n /**\n */\n getSelectedOptions(data: Object): Array<string> {\n const selectedOptions = [];\n\n if (Array.isArray(data.options)) {\n selectedOptions.push(\n ...data.options\n .filter((option) => option.selected)\n .map((option) => option.key)\n );\n } else if (Array.isArray(data.value)) {\n selectedOptions.push(...data.value);\n } else if (typeof data.value === \"boolean\") {\n selectedOptions.push(data.value.toString());\n } else {\n selectedOptions.push(data.value);\n }\n\n return selectedOptions;\n }\n\n /**\n */\n getOptionCount(code: string, options: Array<Object>): number | null {\n if (Array.isArray(options)) {\n const foundOption = options.find((option) => option.key === code);\n if (foundOption) {\n return foundOption.count;\n }\n }\n\n return null;\n }\n\n /**\n */\n addOptions(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(\n selectedValues,\n {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n * Create options based on data and dynamischema\n */\n addDynamicSchema(\n data: Object,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(\n selectedValues,\n {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n elementsContributions: contributions.children,\n },\n referenceDate\n );\n });\n\n return this;\n }\n\n /**\n */\n addBooleanOption(\n code: \"true\" | \"false\",\n defaultLabel: string,\n data: string | Array<string>,\n options: Array<Object> = []\n ) {\n const foundOption = options.find((option) => option.code === code);\n\n const label = foundOption ? foundOption.label : defaultLabel;\n\n this.addOption(data, {\n code,\n label,\n isBooleanType: true,\n hasAlternativeLabel: foundOption != null,\n });\n }\n\n /**\n */\n getDefaultValueForOption(value: any, contributions: Object): string {\n const layouthints = contributions.layouthint ?? [];\n\n const requireDefaultValue =\n layouthints.includes(\"checkbox\") || layouthints.includes(\"toggle\");\n\n return requireDefaultValue ? \"false\" : \"\";\n }\n\n /**\n * Create two static options for true and false,\n * there might be alternative labels configured for each option value\n */\n addBooleanOptions(\n value: any,\n contributions: Object\n ): ChoiceAttributeOptionCollection {\n const optionValue =\n value == null\n ? this.getDefaultValueForOption(value, contributions)\n : value.toString();\n\n this.addBooleanOption(\"true\", \"Yes\", [optionValue], contributions.options);\n this.addBooleanOption(\"false\", \"No\", [optionValue], contributions.options);\n\n return this;\n }\n\n /**\n */\n addOption(\n data: string | Array<string>,\n contributions: Object,\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n referenceDate\n );\n\n this.add(optionModel);\n\n return this;\n }\n\n /**\n * Get all options that have selected property true\n */\n get selected(): Array<ChoiceAttributeOptionModel> {\n const selectedOptions = [];\n\n this.collection.forEach((option: ChoiceAttributeOptionModel) => {\n if (option.selected && option.selected === true) {\n selectedOptions.push(option);\n }\n\n if (option.children) {\n selectedOptions.push(...option.children.selected);\n }\n });\n\n return selectedOptions;\n }\n\n /**\n * Deselect all options\n */\n deselectAll() {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n newOption.selected = false;\n\n if (newOption.children) {\n newOption.children.deselectAll();\n }\n\n return newOption;\n });\n }\n\n /**\n * Select an option by it's code\n */\n select(optionCode: string) {\n this.toggle(optionCode, \"select\");\n }\n\n /**\n * Deselect an option by it's code\n */\n deselect(optionCode: string) {\n this.toggle(optionCode, \"deselect\");\n }\n\n /**\n * Toggle an option by it's code\n */\n toggle(optionCode: string, action: \"select\" | \"deselect\") {\n this.collection = this.collection.map((option) => {\n const newOption = option.clone();\n\n if (newOption.code === optionCode) {\n newOption.selected = action === \"select\";\n } else if (newOption.children) {\n newOption.children.toggle(optionCode, action);\n }\n\n return newOption;\n });\n }\n\n /**\n */\n setReferenceDate(date: ISO_DATE): Array<ChoiceAttributeOptionModel> {\n return this.collection.map((option) => {\n option.referenceDate = date;\n if (option.children) {\n option.children.referenceDate = date;\n }\n\n return option;\n });\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this.collection = this.setReferenceDate(date);\n }\n\n /**\n */\n addHeaders(headers: Array<Object>) {\n this._headers = headers.map((child) => new ListHeaderModel(child));\n }\n\n /**\n */\n get headers(): Array<ListHeaderModel> {\n if (this._headers) {\n return this._headers;\n }\n\n return [];\n }\n\n /**\n */\n mergeOptions(\n withOptions: ChoiceAttributeOptionCollection,\n addNotExistingOptions: boolean = false\n ) {\n if (addNotExistingOptions) {\n this.collection = [\n ...this.collection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code)\n ),\n ];\n }\n\n this.collection.forEach((option) => {\n const foundOption = withOptions.find(\n (withOption) => withOption.code === option.code\n );\n if (foundOption) {\n option.mergeOption(foundOption);\n }\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"file":"ChoiceAttributeOptionCollection.js"}
|
|
@@ -13,13 +13,16 @@ import AttributeCollection from "./AttributeCollection";
|
|
|
13
13
|
import ConceptDetailModel from "../concepts/ConceptDetailModel";
|
|
14
14
|
import AttributeContent from "./AttributeContent";
|
|
15
15
|
|
|
16
|
-
import type { ModularUIModel } from "../types";
|
|
16
|
+
import type { IModelWithChildModels, ModularUIModel } from "../types";
|
|
17
17
|
import type ListItemModel from "../list/ListItemModel";
|
|
18
18
|
import type LinkModel from "../links/LinkModel";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
*/
|
|
22
|
-
class ChoiceAttributeOptionModel
|
|
22
|
+
class ChoiceAttributeOptionModel
|
|
23
|
+
extends BaseModel
|
|
24
|
+
implements IModelWithChildModels
|
|
25
|
+
{
|
|
23
26
|
_code: string;
|
|
24
27
|
_isSelected: boolean;
|
|
25
28
|
_referenceDate: ISO_DATE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"names":["ChoiceAttributeOptionModel","selectedValues","option","referenceDate","DateUtil","now","code","contributions","key","_isSelected","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","LinkCollection","_content","AttributeContent","content","initialLinks","hasContentFromData","conceptLink","push","children","getInitialChildModelLinks","models","conceptHref","href","concept","model","selfhref","equalsWithParameters","setChildModels","_code","toString","attributeCollection","getContribution","data","AttributeCollection","label","hasItems","title","getAttributeByLayoutHint","TITLE","readonlyvalue","first","contentConfiguration","configuredLabelProperties","labelConfig","types","length","configuredLabels","getLabelElementByIds","configuredLabel","value","configuredLabelProperty","some","_id","selected","ChoiceAttributeOptionCollection","create","options","links","date","getLinkByKey","addParameter","TIMEVERSION_FILTER_NAME","isCacheable","_concept","ConceptDetailModel","level","withOption","mergeOptions","listitem","id","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { has } from \"../../utils/helpers/objects\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport { TITLE } from \"../../constants/LayoutHints\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\n\nimport LinkCollection from \"../links/LinkCollection\";\nimport AttributeCollection from \"./AttributeCollection\";\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\nimport AttributeContent from \"./AttributeContent\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass ChoiceAttributeOptionModel extends BaseModel {\n _code: string;\n _isSelected: boolean;\n _referenceDate: ISO_DATE;\n _level: number;\n _children: ChoiceAttributeOptionCollection;\n _concept: ?ConceptDetailModel;\n _links: LinkCollection;\n _attributeCollection: AttributeCollection;\n _content: AttributeContent;\n\n /**\n */\n constructor(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ) {\n super({}, option);\n\n this.code = this.contributions.code ?? this.contributions.key ?? \"\";\n\n this._isSelected = selectedValues.includes(this.code);\n\n this._referenceDate = referenceDate;\n\n this._level = 0;\n\n this._attributeCollection = this.createAttributeCollection();\n this._children = this.addChildren(selectedValues, option, referenceDate);\n\n this._links = new LinkCollection(this.contributions._links);\n\n this._content = new AttributeContent(option.content);\n }\n\n /**\n */\n static createFromListItemModel(\n listitem: ListItemModel\n ): ChoiceAttributeOptionModel {\n const option = new ChoiceAttributeOptionModel();\n\n option.code = listitem.id.toString();\n option.attributeCollection = listitem.attributeCollection;\n option.links = listitem.links;\n\n return option;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialLinks = [];\n\n if (!this.hasContentFromData && this.conceptLink !== null) {\n initialLinks.push(this.conceptLink);\n }\n\n if (this.children) {\n initialLinks.push(...this.children.getInitialChildModelLinks());\n }\n\n return initialLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptLink !== null) {\n const conceptHref = this.conceptLink.href;\n\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref)\n );\n }\n\n if (this.children) {\n this.children.setChildModels(models);\n }\n }\n\n /**\n * Get code of option\n */\n get code(): string {\n return this._code;\n }\n\n /**\n */\n set code(code: string) {\n this._code = code;\n }\n\n /**\n */\n equals(model: ChoiceAttributeOptionModel): boolean {\n return this.code.toString() === model.code.toString();\n }\n\n /**\n * Retrieve attributes for Composite codemaps (e.g. table and case list codemaps)\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n createAttributeCollection(): AttributeCollection {\n const contributions = this.getContribution(\"elementsContributions\", []);\n\n if (has(this.contributions, \"elements\")) {\n const data = this.getContribution(\"elements\", {});\n return new AttributeCollection(data, contributions, true);\n }\n\n return new AttributeCollection();\n }\n\n /**\n * Get label of option for simple codemaps (e.g. static codemap)\n */\n get label(): string {\n if (this.contributions.label) {\n return this.contributions.label;\n }\n\n if (this.attributeCollection.hasItems) {\n const title = this.attributeCollection.getAttributeByLayoutHint(TITLE);\n\n if (title) {\n return title.readonlyvalue;\n }\n\n if (this.attributeCollection.first) {\n return this.attributeCollection.first.readonlyvalue;\n }\n }\n\n return \"\";\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(contentConfiguration: Object): string {\n const configuredLabelProperties =\n contentConfiguration?.labelConfig?.[0]?.types ?? [];\n\n if (\n !this.hasContentFromData &&\n this.concept &&\n configuredLabelProperties.length > 0\n ) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\"\n );\n\n if (configuredLabels.length > 0) {\n return configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )[0].value;\n }\n }\n\n return this.label;\n }\n\n /**\n * Indicates if option is selected\n */\n get selected(): boolean {\n return this._isSelected;\n }\n\n /**\n * Set selected property of option\n */\n set selected(selected: boolean) {\n this._isSelected = selected;\n }\n\n /**\n * Retrieve count of filter for option\n */\n get count(): number | null {\n return this.getContribution(\"count\");\n }\n\n /**\n */\n addChildren(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n // When contributions contain elements this is a list not nested options\n if (has(option, \"elements\")) {\n return new ChoiceAttributeOptionCollection();\n }\n\n return ChoiceAttributeOptionCollection.create(\n {\n value: selectedValues,\n },\n { options: option?.children ?? [] },\n referenceDate\n );\n }\n\n /**\n * get children of option\n */\n get children(): ChoiceAttributeOptionCollection {\n return this._children;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * referenceDate received from attribute\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): LinkModel | null {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept || null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Get level of option, used in tree view choice attributes (taxonomy)\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Set level of option\n */\n set level(level: number) {\n this._level = level;\n }\n\n /**\n */\n get isBooleanType(): boolean {\n return this.getContribution(\"isBooleanType\", false);\n }\n\n /**\n */\n get hasAlternativeLabel(): boolean {\n return this.getContribution(\"hasAlternativeLabel\", false);\n }\n\n /**\n */\n mergeOption(withOption: ChoiceAttributeOptionModel) {\n this.concept = withOption.concept;\n\n if (this.children != null && withOption.children != null) {\n this.children.mergeOptions(withOption.children);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return this._content;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"file":"ChoiceAttributeOptionModel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/ChoiceAttributeOptionModel.js"],"names":["ChoiceAttributeOptionModel","selectedValues","option","referenceDate","DateUtil","now","code","contributions","key","_isSelected","_referenceDate","_level","_attributeCollection","createAttributeCollection","_children","addChildren","_links","LinkCollection","_content","AttributeContent","content","initialLinks","hasContentFromData","conceptLink","push","children","getInitialChildModelLinks","models","conceptHref","href","concept","model","selfhref","equalsWithParameters","setChildModels","_code","toString","attributeCollection","getContribution","data","AttributeCollection","label","hasItems","title","getAttributeByLayoutHint","TITLE","readonlyvalue","first","contentConfiguration","configuredLabelProperties","labelConfig","types","length","configuredLabels","getLabelElementByIds","configuredLabel","value","configuredLabelProperty","some","_id","selected","ChoiceAttributeOptionCollection","create","options","links","date","getLinkByKey","addParameter","TIMEVERSION_FILTER_NAME","isCacheable","_concept","ConceptDetailModel","level","withOption","mergeOptions","listitem","id","BaseModel"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { has } from \"../../utils/helpers/objects\";\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\nimport { TITLE } from \"../../constants/LayoutHints\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\n\nimport LinkCollection from \"../links/LinkCollection\";\nimport AttributeCollection from \"./AttributeCollection\";\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\nimport AttributeContent from \"./AttributeContent\";\n\nimport type { IModelWithChildModels, ModularUIModel } from \"../types\";\nimport type ListItemModel from \"../list/ListItemModel\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass ChoiceAttributeOptionModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _code: string;\n _isSelected: boolean;\n _referenceDate: ISO_DATE;\n _level: number;\n _children: ChoiceAttributeOptionCollection;\n _concept: ?ConceptDetailModel;\n _links: LinkCollection;\n _attributeCollection: AttributeCollection;\n _content: AttributeContent;\n\n /**\n */\n constructor(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ) {\n super({}, option);\n\n this.code = this.contributions.code ?? this.contributions.key ?? \"\";\n\n this._isSelected = selectedValues.includes(this.code);\n\n this._referenceDate = referenceDate;\n\n this._level = 0;\n\n this._attributeCollection = this.createAttributeCollection();\n this._children = this.addChildren(selectedValues, option, referenceDate);\n\n this._links = new LinkCollection(this.contributions._links);\n\n this._content = new AttributeContent(option.content);\n }\n\n /**\n */\n static createFromListItemModel(\n listitem: ListItemModel\n ): ChoiceAttributeOptionModel {\n const option = new ChoiceAttributeOptionModel();\n\n option.code = listitem.id.toString();\n option.attributeCollection = listitem.attributeCollection;\n option.links = listitem.links;\n\n return option;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const initialLinks = [];\n\n if (!this.hasContentFromData && this.conceptLink !== null) {\n initialLinks.push(this.conceptLink);\n }\n\n if (this.children) {\n initialLinks.push(...this.children.getInitialChildModelLinks());\n }\n\n return initialLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n if (this.conceptLink !== null) {\n const conceptHref = this.conceptLink.href;\n\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref)\n );\n }\n\n if (this.children) {\n this.children.setChildModels(models);\n }\n }\n\n /**\n * Get code of option\n */\n get code(): string {\n return this._code;\n }\n\n /**\n */\n set code(code: string) {\n this._code = code;\n }\n\n /**\n */\n equals(model: ChoiceAttributeOptionModel): boolean {\n return this.code.toString() === model.code.toString();\n }\n\n /**\n * Retrieve attributes for Composite codemaps (e.g. table and case list codemaps)\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(attributeCollection: AttributeCollection) {\n this._attributeCollection = attributeCollection;\n }\n\n /**\n */\n createAttributeCollection(): AttributeCollection {\n const contributions = this.getContribution(\"elementsContributions\", []);\n\n if (has(this.contributions, \"elements\")) {\n const data = this.getContribution(\"elements\", {});\n return new AttributeCollection(data, contributions, true);\n }\n\n return new AttributeCollection();\n }\n\n /**\n * Get label of option for simple codemaps (e.g. static codemap)\n */\n get label(): string {\n if (this.contributions.label) {\n return this.contributions.label;\n }\n\n if (this.attributeCollection.hasItems) {\n const title = this.attributeCollection.getAttributeByLayoutHint(TITLE);\n\n if (title) {\n return title.readonlyvalue;\n }\n\n if (this.attributeCollection.first) {\n return this.attributeCollection.first.readonlyvalue;\n }\n }\n\n return \"\";\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(contentConfiguration: Object): string {\n const configuredLabelProperties =\n contentConfiguration?.labelConfig?.[0]?.types ?? [];\n\n if (\n !this.hasContentFromData &&\n this.concept &&\n configuredLabelProperties.length > 0\n ) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\"\n );\n\n if (configuredLabels.length > 0) {\n return configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty\n )\n )[0].value;\n }\n }\n\n return this.label;\n }\n\n /**\n * Indicates if option is selected\n */\n get selected(): boolean {\n return this._isSelected;\n }\n\n /**\n * Set selected property of option\n */\n set selected(selected: boolean) {\n this._isSelected = selected;\n }\n\n /**\n * Retrieve count of filter for option\n */\n get count(): number | null {\n return this.getContribution(\"count\");\n }\n\n /**\n */\n addChildren(\n selectedValues: Array<string> = [],\n option: Object = {},\n referenceDate: ISO_DATE = DateUtil.now()\n ): ChoiceAttributeOptionCollection {\n // When contributions contain elements this is a list not nested options\n if (has(option, \"elements\")) {\n return new ChoiceAttributeOptionCollection();\n }\n\n return ChoiceAttributeOptionCollection.create(\n {\n value: selectedValues,\n },\n { options: option?.children ?? [] },\n referenceDate\n );\n }\n\n /**\n * get children of option\n */\n get children(): ChoiceAttributeOptionCollection {\n return this._children;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n * referenceDate received from attribute\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): LinkModel | null {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept || null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Get level of option, used in tree view choice attributes (taxonomy)\n */\n get level(): number {\n return this._level;\n }\n\n /**\n * Set level of option\n */\n set level(level: number) {\n this._level = level;\n }\n\n /**\n */\n get isBooleanType(): boolean {\n return this.getContribution(\"isBooleanType\", false);\n }\n\n /**\n */\n get hasAlternativeLabel(): boolean {\n return this.getContribution(\"hasAlternativeLabel\", false);\n }\n\n /**\n */\n mergeOption(withOption: ChoiceAttributeOptionModel) {\n this.concept = withOption.concept;\n\n if (this.children != null && withOption.children != null) {\n this.children.mergeOptions(withOption.children);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return this._content;\n }\n}\n\nexport default ChoiceAttributeOptionModel;\n"],"file":"ChoiceAttributeOptionModel.js"}
|
|
@@ -147,6 +147,7 @@ var CompositeAttributeChildCollection = /*#__PURE__*/function (_ResourceCollecti
|
|
|
147
147
|
if (this.first instanceof CompositeAttributeChildCollection) {
|
|
148
148
|
var _context2;
|
|
149
149
|
|
|
150
|
+
// $FlowFixMe[missing-type-arg]
|
|
150
151
|
return (0, _map.default)(_context2 = this.collection).call(_context2, function (collection) {
|
|
151
152
|
return collection.initvalue;
|
|
152
153
|
});
|
|
@@ -182,7 +183,6 @@ var CompositeAttributeChildCollection = /*#__PURE__*/function (_ResourceCollecti
|
|
|
182
183
|
var children = {};
|
|
183
184
|
this.collection.forEach(function (attribute) {
|
|
184
185
|
if (attribute.formdata !== null && !attribute.readonly) {
|
|
185
|
-
// $FlowIgnore[cannot-spread-indexer]
|
|
186
186
|
children = _objectSpread(_objectSpread({}, children), attribute.formdata);
|
|
187
187
|
}
|
|
188
188
|
});
|
|
@@ -165,6 +165,7 @@ class CompositeAttributeChildCollection extends ResourceCollection<AttributeType
|
|
|
165
165
|
*/
|
|
166
166
|
get initvalue(): any {
|
|
167
167
|
if (this.first instanceof CompositeAttributeChildCollection) {
|
|
168
|
+
// $FlowFixMe[missing-type-arg]
|
|
168
169
|
return this.collection.map<Array<Object>>(
|
|
169
170
|
(collection) => collection.initvalue
|
|
170
171
|
);
|
|
@@ -195,7 +196,6 @@ class CompositeAttributeChildCollection extends ResourceCollection<AttributeType
|
|
|
195
196
|
|
|
196
197
|
this.collection.forEach((attribute) => {
|
|
197
198
|
if (attribute.formdata !== null && !attribute.readonly) {
|
|
198
|
-
// $FlowIgnore[cannot-spread-indexer]
|
|
199
199
|
children = {
|
|
200
200
|
...children,
|
|
201
201
|
...attribute.formdata,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"names":["CompositeAttributeChildCollection","collection","child","inputvalue","join","every","isValid","ErrorCollection","errorCollection","serverErrors","length","some","hasServerErrors","hasItems","hasErrors","forEach","reset","first","initvalue","children","key","value","attribute","formdata","readonly","readonlyvalue","prefix","errors","attributeErrors","error","anchor","elementid","updateValidations","hasValue","data","contributions","Array","isArray","isMultipleTableRows","createMultiData","createStandard","compositeChildCollection","contribution","attributeData","attr","attributeContribution","type","replace","dynamicschema","parentKey","childData","create","ResourceCollection"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n }\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions\n )\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue\n );\n }\n\n const children = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n // $FlowIgnore[cannot-spread-indexer]\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"file":"CompositeAttributeChildCollection.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/CompositeAttributeChildCollection.js"],"names":["CompositeAttributeChildCollection","collection","child","inputvalue","join","every","isValid","ErrorCollection","errorCollection","serverErrors","length","some","hasServerErrors","hasItems","hasErrors","forEach","reset","first","initvalue","children","key","value","attribute","formdata","readonly","readonlyvalue","prefix","errors","attributeErrors","error","anchor","elementid","updateValidations","hasValue","data","contributions","Array","isArray","isMultipleTableRows","createMultiData","createStandard","compositeChildCollection","contribution","attributeData","attr","attributeContribution","type","replace","dynamicschema","parentKey","childData","create","ResourceCollection"],"mappings":"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","sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\n\nimport createAttribute from \"./_createAttribute\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Collection of choice attribute options\n */\nclass CompositeAttributeChildCollection extends ResourceCollection<AttributeType> {\n /**\n */\n static create(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n if (\n data &&\n contributions &&\n Array.isArray(contributions.children) &&\n Array.isArray(data.children)\n ) {\n // a composite with multiple data elements and one contributions element\n // multiple 'composites' are returned\n const isMultipleTableRows = Array.isArray(data.children[0]);\n if (isMultipleTableRows) {\n return CompositeAttributeChildCollection.createMultiData(\n data,\n contributions\n );\n }\n\n return CompositeAttributeChildCollection.createStandard(\n data,\n contributions\n );\n }\n\n return new CompositeAttributeChildCollection();\n }\n\n /**\n */\n static createStandard(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = contributions.children\n .map((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attributeData = Array.isArray(data.children)\n ? data.children.find((attr) => attr.key === key)\n : {};\n\n const attributeContribution = contribution[key];\n\n if (\n contributions.type.includes(\"range\") &&\n !attributeContribution.type\n ) {\n attributeContribution.type = contributions.type.replace(\"range\", \"\");\n }\n\n const attribute = createAttribute(\n key,\n {\n ...attributeData,\n dynamicschema: attributeData?.dynamicschema,\n },\n {\n ...attributeContribution,\n readonly: attributeContribution.readonly || contributions.readonly,\n }\n );\n\n if (attribute) {\n attribute.parentKey = data.key;\n }\n\n return attribute;\n })\n .filter((attribute) => attribute !== null);\n\n return compositeChildCollection;\n }\n\n /*\n * Creates a composite for each child data element using the same contributions\n */\n /**\n */\n static createMultiData(\n data: Object,\n contributions: Object\n ): CompositeAttributeChildCollection {\n const compositeChildCollection = new CompositeAttributeChildCollection();\n\n compositeChildCollection.collection = data.children.map((childData) =>\n CompositeAttributeChildCollection.create(\n {\n ...data,\n children: childData,\n },\n contributions\n )\n );\n\n return compositeChildCollection;\n }\n\n /**\n * Get input value of contributions\n */\n getInputValue(): string {\n return this.collection.map((child) => child.inputvalue).join(\",\");\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n return this.collection.every((child) => child.isValid);\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n return new ErrorCollection(\"compositechildren\");\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.collection.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.collection.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.collection.forEach((child) => {\n child.reset();\n });\n }\n\n /**\n */\n get initvalue(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n // $FlowFixMe[missing-type-arg]\n return this.collection.map<Array<Object>>(\n (collection) => collection.initvalue\n );\n }\n\n const children = {};\n this.collection\n .filter((child) => child.initvalue !== null)\n .forEach((child) => {\n children[child.key] = child.initvalue;\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get value(): any {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection.map((collection) => collection.value);\n }\n\n let children: { [string]: any } = {};\n\n this.collection.forEach((attribute) => {\n if (attribute.formdata !== null && !attribute.readonly) {\n children = {\n ...children,\n ...attribute.formdata,\n };\n }\n });\n\n if (Object.keys(children).length === 0) {\n return null;\n }\n\n return children;\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (this.first instanceof CompositeAttributeChildCollection) {\n return this.collection\n .map((collection) => collection.readonlyvalue)\n .join(\" | \");\n }\n\n return this.collection\n .filter((child) => child.value !== null)\n .map((child) => child.readonlyvalue)\n .join(\", \");\n }\n\n /**\n */\n updateValidations(prefix: string, errors: Object) {\n this.collection.forEach((child) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === `${prefix}${child.key}`\n );\n\n child.updateValidations(attributeErrors);\n });\n }\n\n /**\n */\n hasValue(): boolean {\n return this.collection.some((child) => child.hasValue());\n }\n}\n\nexport default CompositeAttributeChildCollection;\n"],"file":"CompositeAttributeChildCollection.js"}
|
|
@@ -460,7 +460,8 @@ var CompositeAttributeModel = /*#__PURE__*/function (_AttributeModel) {
|
|
|
460
460
|
}, {
|
|
461
461
|
key: "equals",
|
|
462
462
|
value: function equals(otherAttribute) {
|
|
463
|
-
return this.key === otherAttribute.key && this.parentKey === otherAttribute.parentKey || this.children.some(
|
|
463
|
+
return this.key === otherAttribute.key && this.parentKey === otherAttribute.parentKey || this.children.some( //$FlowFixMe[method-unbinding]
|
|
464
|
+
function (child) {
|
|
464
465
|
return child.equals && child.equals(otherAttribute);
|
|
465
466
|
});
|
|
466
467
|
}
|
|
@@ -375,6 +375,7 @@ class CompositeAttributeModel extends AttributeModel {
|
|
|
375
375
|
(this.key === otherAttribute.key &&
|
|
376
376
|
this.parentKey === otherAttribute.parentKey) ||
|
|
377
377
|
this.children.some(
|
|
378
|
+
//$FlowFixMe[method-unbinding]
|
|
378
379
|
(child) => child.equals && child.equals(otherAttribute)
|
|
379
380
|
)
|
|
380
381
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"names":["CompositeAttributeModel","data","contributions","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","children","getInitialChildModelLinks","models","setChildModels","key","isRange","type","attribute","NumberAttributeModel","DatetimeAttributeModel","all","size","getInputValue","some","child","hasValue","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","enabled","forEach","setUseClientsideValidation","useClientsideValidation","_isValid","validate","constraintCollection","startAttribute","start","endAttribute","end","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","errorCollection","serverErrors","length","hasServerErrors","hasItems","hasErrors","reset","equals","getChildByAttribute","getChildByKey","oldAttribute","concept","withChildAttribute","mergeAttribute","value","changedAttribute","IllegalArgumentException","updateLastModification","update","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","name","_isResult","isResult","contentConfiguration","indicateContentConfiguration","otherAttribute","parentKey","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","AttributeModel"],"mappings":"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","sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.children.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled)\n );\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children)\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate();\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\"\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate();\n\n return this;\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n (child) => child.equals && child.equals(otherAttribute)\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"file":"CompositeAttributeModel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/CompositeAttributeModel.js"],"names":["CompositeAttributeModel","data","contributions","_children","CompositeAttributeChildCollection","create","setChildrenOptionality","children","getInitialChildModelLinks","models","setChildModels","key","isRange","type","attribute","NumberAttributeModel","DatetimeAttributeModel","all","size","getInputValue","some","child","hasValue","constraints","ConstraintCollection","add","_serverConstraints","addConstraints","enabled","forEach","setUseClientsideValidation","useClientsideValidation","_isValid","validate","constraintCollection","startAttribute","start","endAttribute","end","allChildsEntered","every","RangeConstraint","mandatory","allChildsOptional","MandatoryRangeConstraint","errorCollection","serverErrors","length","hasServerErrors","hasItems","hasErrors","reset","equals","getChildByAttribute","getChildByKey","oldAttribute","concept","withChildAttribute","mergeAttribute","value","changedAttribute","IllegalArgumentException","updateLastModification","update","childrenAreOptional","configuredMandatory","readonly","readonlyvalue","initvalue","name","_isResult","isResult","contentConfiguration","indicateContentConfiguration","otherAttribute","parentKey","ATTRIBUTE_WIDTH","LARGE","EXTRA_LARGE","MEDIUM","AttributeModel"],"mappings":"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","sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport CompositeAttributeChildCollection from \"./CompositeAttributeChildCollection\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RangeConstraint from \"./input-constraints/RangeConstraint\";\nimport MandatoryRangeConstraint from \"./input-constraints/MandatoryRangeConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\n\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n */\nclass CompositeAttributeModel extends AttributeModel {\n _children: CompositeAttributeChildCollection;\n\n /**\n */\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._children = CompositeAttributeChildCollection.create(\n data,\n contributions\n );\n\n this.setChildrenOptionality();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const type = contributions?.type;\n return type && (type === \"composite\" || type.includes(\"range\"));\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this.children.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.children.setChildModels(models);\n }\n\n /**\n */\n get type(): string {\n // temp fix for results and given answers on list result detail panel\n if (this.key === \"results\" || this.key === \"givenAnswers\") {\n return \"composite\";\n }\n\n return this.isRange ? \"range\" : \"composite\";\n }\n\n /**\n */\n get isRange(): boolean {\n return this.contributions?.type?.includes(\"range\");\n }\n\n /**\n */\n get children(): CompositeAttributeChildCollection {\n return this._children;\n }\n\n /**\n */\n set children(children: CompositeAttributeChildCollection) {\n this._children = children;\n }\n\n /**\n */\n isRangeAttribute(attribute: AttributeType): boolean {\n return (\n attribute instanceof NumberAttributeModel ||\n attribute instanceof DatetimeAttributeModel\n );\n }\n\n /**\n */\n get start(): AttributeType | null {\n return this.children.all[0];\n }\n\n /**\n */\n get end(): AttributeType {\n return this.children.all[this.children.size - 1];\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.children.getInputValue();\n }\n\n /**\n * Check if at least one child has value\n */\n hasValue(): boolean {\n return this.children.some((child) => child.hasValue());\n }\n\n /**\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean) {\n super._useClientsideValidation = enabled;\n\n this.children.all.forEach((child) =>\n child.setUseClientsideValidation(enabled)\n );\n }\n\n /**\n * Validate input\n */\n validate(): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n this._isValid = this.children.validate();\n\n if (this._isValid) {\n this._isValid = this.constraintCollection.validate();\n }\n\n return this._isValid;\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n const startAttribute = this.start;\n const endAttribute = this.end;\n if (this.isRange && startAttribute != null && endAttribute != null) {\n const allChildsEntered = this.children.every((child) => child.hasValue());\n if (allChildsEntered) {\n constraints.add(new RangeConstraint(startAttribute, endAttribute));\n }\n }\n\n if (this.isRange && this.mandatory && startAttribute !== null) {\n const allChildsOptional = this.children.every(\n (child) => !child.mandatory\n );\n if (allChildsOptional) {\n constraints.add(\n new MandatoryRangeConstraint(startAttribute.type, this.children)\n );\n }\n }\n\n return constraints;\n }\n\n /**\n * Indicates if attribute input is valid\n */\n get isValid(): boolean {\n return this.validate();\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return (\n this.errorCollection.serverErrors.length > 0 ||\n this.children.some((child) => child.hasServerErrors())\n );\n }\n\n /**\n */\n hasErrors(): boolean {\n return (\n this.errorCollection.hasItems ||\n this.children.some((child) => child.hasErrors())\n );\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.children.reset();\n }\n\n /**\n */\n getChildByAttribute(attribute: AttributeType): ?AttributeType {\n return this.children.find((child) => {\n if (child.equals(attribute)) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n */\n getChildByKey(key: string): ?AttributeType {\n return (\n this.children.find((child) => {\n if (child.key === key) {\n return true;\n } else if (child instanceof CompositeAttributeModel) {\n return child.getChildByKey(key);\n }\n\n return false;\n }) || null\n );\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n this.concept = oldAttribute.concept;\n\n this.children.forEach((child) => {\n if (oldAttribute instanceof CompositeAttributeModel) {\n const withChildAttribute = oldAttribute.getChildByKey(child.key);\n if (withChildAttribute) {\n child.mergeAttribute(withChildAttribute);\n }\n }\n });\n }\n\n /**\n */\n update(\n value: string,\n changedAttribute: ?AttributeType\n ): CompositeAttributeModel {\n if (!changedAttribute) {\n throw new IllegalArgumentException(\n \"Composite attribute needs changed attribute on update call\"\n );\n }\n\n this.updateLastModification();\n\n this.children.forEach((child) => {\n if (child instanceof CompositeAttributeModel) {\n child.update(value, changedAttribute);\n } else if (child.equals(changedAttribute)) {\n child.update(value);\n }\n });\n\n this.setChildrenOptionality();\n\n this.validate();\n\n return this;\n }\n\n /**\n */\n setChildrenOptionality() {\n const childrenAreOptional =\n !this.mandatory && this.children.every((child) => child.value === null);\n\n this.children.forEach((child) => {\n child.mandatory =\n childrenAreOptional || !child.configuredMandatory\n ? false\n : child.configuredMandatory;\n });\n }\n\n /**\n */\n get readonly(): boolean {\n return super.readonly || this.children.every((child) => child.readonly);\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n super.readonly = readonly;\n }\n\n /**\n */\n get readonlyvalue(): string {\n return this.children.readonlyvalue;\n }\n\n /**\n */\n get initvalue(): any {\n return this.children.initvalue;\n }\n\n /**\n */\n getFormData(): { [string]: any } | null {\n return { [this.name]: this.value };\n }\n\n /**\n */\n getValue(): any {\n return this.children.value;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n\n this.children.forEach((child) => {\n child.isResult = isResult;\n });\n }\n\n /**\n */\n indicateContentConfiguration(contentConfiguration: ContentConfiguration) {\n if (contentConfiguration) {\n this.children.forEach((child) => {\n child.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n (this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey) ||\n this.children.some(\n //$FlowFixMe[method-unbinding]\n (child) => child.equals && child.equals(otherAttribute)\n )\n );\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"composite\") {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // range\n switch (this.start?.type) {\n case \"datetime\":\n return ATTRIBUTE_WIDTH.LARGE;\n case \"timestamp\":\n return ATTRIBUTE_WIDTH.EXTRA_LARGE;\n default:\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n }\n}\n\nexport default CompositeAttributeModel;\n"],"file":"CompositeAttributeModel.js"}
|
|
@@ -45,6 +45,8 @@ var _constants = require("../../constants");
|
|
|
45
45
|
|
|
46
46
|
var _Settings = require("../../constants/Settings");
|
|
47
47
|
|
|
48
|
+
var _LayoutHints = require("../../constants/LayoutHints");
|
|
49
|
+
|
|
48
50
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
49
51
|
|
|
50
52
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -304,10 +306,14 @@ var DatetimeAttributeModel = /*#__PURE__*/function (_StringAttributeModel) {
|
|
|
304
306
|
} // setting for date input
|
|
305
307
|
|
|
306
308
|
|
|
307
|
-
var
|
|
309
|
+
var ignoreFormatSetting = this.layouthint.has(_LayoutHints.IGNORE_FORMAT_SETTING);
|
|
308
310
|
|
|
309
|
-
if (
|
|
310
|
-
|
|
311
|
+
if (!ignoreFormatSetting) {
|
|
312
|
+
var dateInputFormatSetting = (0, _Settings.getSetting)("DATE_INPUT_FORMAT", "");
|
|
313
|
+
|
|
314
|
+
if (dateInputFormatSetting) {
|
|
315
|
+
return dateInputFormatSetting;
|
|
316
|
+
}
|
|
311
317
|
}
|
|
312
318
|
|
|
313
319
|
var format = this.format;
|
|
@@ -18,6 +18,7 @@ import DateBoundaryConstraint from "./input-constraints/DateBoundaryConstraint";
|
|
|
18
18
|
|
|
19
19
|
import { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from "../../constants";
|
|
20
20
|
import { getSetting } from "../../constants/Settings";
|
|
21
|
+
import { IGNORE_FORMAT_SETTING } from "../../constants/LayoutHints";
|
|
21
22
|
|
|
22
23
|
import type { FormErrorAnchor, IConstraintModel } from "../types";
|
|
23
24
|
|
|
@@ -239,10 +240,12 @@ class DatetimeAttributeModel extends StringAttributeModel {
|
|
|
239
240
|
}
|
|
240
241
|
|
|
241
242
|
// setting for date input
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
243
|
+
const ignoreFormatSetting = this.layouthint.has(IGNORE_FORMAT_SETTING);
|
|
244
|
+
if (!ignoreFormatSetting) {
|
|
245
|
+
const dateInputFormatSetting = getSetting("DATE_INPUT_FORMAT", "");
|
|
246
|
+
if (dateInputFormatSetting) {
|
|
247
|
+
return dateInputFormatSetting;
|
|
248
|
+
}
|
|
246
249
|
}
|
|
247
250
|
|
|
248
251
|
let format = this.format;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"names":["PRODUCT_DEFAULT_DATE_FORMAT","DatetimeAttributeModel","attribute","attributeContributions","updateInitValue","type","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","value","data","length","split","hasTime","getTimeValue","timeValue","timeInputFormat","toLowerCase","formatUtil","setHour","setMinute","setSecond","setMilliseconds","getInitValue","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","toFormat","inputFormat","getContribution","toString","getInputValue","validate","toISO","format","convertFormat","dateInputFormat","hasDate","dateInputFormatSetting","dateFormat","replace","readonlyFormatSetting","_placeholder","formatLabel","placeholder","timeFormatParts","push","timeFormat","join","hasFormat","ISO_DATE_FORMAT","dateReadonlyFormat","dateTimeReadonlyFormat","timeReadonlyFormat","formatValue","error","id","message","properties","_errorCollection","addServerError","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","constraints","ConstraintCollection","add","getFormatConstraint","mindate","maxdate","DateBoundaryConstraint","ATTRIBUTE_WIDTH","SMALL","MEDIUM","contributions","StringAttributeModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;AAOA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAIA;AACA,IAAMA,2BAA2B,GAAG,YAApC;AAEA;AACA;;IACMC,sB;;;;;AACJ;AACF;AACE,kCAAYC,SAAZ,EAA+BC,sBAA/B,EAA+D;AAAA;;AAAA;AAC7D,8BAAMD,SAAN,EAAiBC,sBAAjB;;AAEA,UAAKC,eAAL;;AAH6D;AAI9D;AAED;AACF;;;;;;AAOE;AACF;AACE,mBAIoB;AAClB,cAAQ,KAAKC,IAAb;AACE,aAAK,MAAL;AACE,iBAAOC,sBAAP;;AACF,aAAK,WAAL;AACE,iBAAOC,2BAAP;;AACF,aAAK,UAAL;AACE,iBAAOC,0BAAP;;AACF;AACE,iBAAOC,sBAAP;AARJ;AAUD;AAED;AACF;;;;WACE,wBAA8B;AAC5B,UAAIC,KAAK,GAAG,KAAKC,IAAL,CAAUD,KAAtB;;AACA,UAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,YAAI,KAAKL,IAAL,KAAc,MAAd,IAAwBK,KAAK,CAACE,MAAN,KAAiB,CAA7C,EAAgD;AAC9CF,UAAAA,KAAK,aAAMA,KAAN,QAAL;AACD,SAHgB,CAKjB;;;AACA,YAAI,KAAKL,IAAL,KAAc,UAAd,IAA4B,uBAAAK,KAAK,MAAL,CAAAA,KAAK,EAAU,GAAV,CAArC,EAAqD;AACnDA,UAAAA,KAAK,GAAGA,KAAK,CAACG,KAAN,CAAY,GAAZ,EAAiB,CAAjB,CAAR;AACD;;AAED,YAAI,KAAKC,OAAT,EAAkB;AAChBJ,UAAAA,KAAK,GAAG,KAAKK,YAAL,CAAkBL,KAAlB,CAAR;AACD;AACF;;AAED,aAAOA,KAAP;AACD;AAED;AACF;;;;WACE,sBAAaA,KAAb,EAAoC;AAAA;;AAClC,UAAIM,SAAS,GAAGN,KAAhB;;AACA,UAAI,CAAC,uCAAKO,eAAL,CAAqBC,WAArB,mBAA4C,GAA5C,CAAL,EAAuD;AACrDF,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBC,OAAhB,CAAwBV,KAAxB,EAA+B,CAA/B,CAAZ;AACD;;AACD,UAAI,CAAC,wCAAKO,eAAL,kBAA8B,GAA9B,CAAL,EAAyC;AACvCD,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBE,SAAhB,CAA0BX,KAA1B,EAAiC,CAAjC,CAAZ;AACD;;AACD,UAAI,CAAC,wCAAKO,eAAL,kBAA8B,GAA9B,CAAL,EAAyC;AACvCD,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBG,SAAhB,CAA0BZ,KAA1B,EAAiC,CAAjC,CAAZ;AACD;;AACD,UAAI,KAAKL,IAAL,KAAc,WAAd,IAA6B,CAAC,wCAAKY,eAAL,kBAA8B,GAA9B,CAAlC,EAAsE;AACpED,QAAAA,SAAS,GAAG,KAAKG,UAAL,CAAgBI,eAAhB,CAAgCb,KAAhC,EAAuC,CAAvC,CAAZ;AACD;;AACD,aAAOM,SAAP;AACD;AAED;AACF;AACA;;;;WACE,2BAAkB;AAChB,UAAMN,KAAK,GAAG,KAAKc,YAAL,EAAd;;AACA,UAAId,KAAK,IAAI,IAAb,EAAmB;AACjB,aAAKe,UAAL,GAAkBf,KAAlB;AACA,aAAKgB,WAAL,GAAmB,KAAKC,oBAAL,CAA0BjB,KAA1B,CAAnB;AACA,aAAKkB,MAAL,GAAclB,KAAd;AACD;AACF;AAED;AACF;AACA;;;;WACE,8BAAqBA,KAArB,EAA6C;AAC3C,UAAI,CAACA,KAAL,EAAY;AACV,eAAO,EAAP;AACD;;AAED,UAAImB,SAAS,GAAGnB,KAAhB;;AACA,UAAI,KAAKL,IAAL,KAAc,MAAd,IAAwBK,KAAK,CAACE,MAAN,KAAiB,CAA7C,EAAgD;AAC9CiB,QAAAA,SAAS,aAAMnB,KAAN,QAAT;AACD;;AAED,aAAO,KAAKS,UAAL,CAAgBW,QAAhB,CAAyBD,SAAzB,EAAoC,KAAKE,WAAzC,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAAmB;AACjB,aAAO,KAAKC,eAAL,CAAqB,MAArB,EAA6B,MAA7B,CAAP;AACD;AAED;AACF;AACA;;;;WACE,yBAAwB;AACtB,aAAO,KAAKN,WAAL,GAAmB,KAAKA,WAAL,CAAiBO,QAAjB,EAAnB,GAAiD,EAAxD;AACD;AAED;AACF;AACA;;;;SACE,eAAyB;AACvB,aAAO,KAAKC,aAAL,EAAP;AACD;AAED;AACF;AACA;;SACE,aAAexB,KAAf,EAA8B;AAC5B,WAAKyB,QAAL,CAAczB,KAAd;AAEA,WAAKgB,WAAL,GAAmBhB,KAAnB;AAEA,WAAKA,KAAL,GACEA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK,EAA5B,GACI,KAAKS,UAAL,CAAgBiB,KAAhB,CAAsB1B,KAAtB,EAA6B,KAAKqB,WAAlC,CADJ,GAEI,IAHN;AAID;AAED;AACF;AACA;;;;SACE,eAAqB;AACnB,UAAMM,MAAM,GAAG,KAAKL,eAAL,CAAqB,QAArB,EAA+B,EAA/B,CAAf;AACA,aAAO,KAAKb,UAAL,CAAgBmB,aAAhB,CAA8BD,MAA9B,CAAP;AACD;AAED;AACF;;;;SACE,eAAuB;AACrB,aAAO,KAAKL,eAAL,CAAqB,UAArB,EAAiC,EAAjC,CAAP;AACD;AAED;AACF;;;;SACE,eAAuB;AACrB,aACE,KAAK3B,IAAL,KAAc,MAAd,IACA,KAAKA,IAAL,KAAc,UADd,IAEA,KAAKA,IAAL,KAAc,WAHhB;AAKD;AAED;AACF;;;;SACE,eAAuB;AACrB,aACE,KAAKA,IAAL,KAAc,MAAd,IACA,KAAKA,IAAL,KAAc,UADd,IAEA,KAAKA,IAAL,KAAc,WAHhB;AAKD;AAED;AACF;;;;SACE,eAA0B;AACxB,cAAQ,KAAKA,IAAb;AACE,aAAK,MAAL;AACE,iBAAO,KAAKkC,eAAL,CAAqBrB,WAArB,EAAP;;AACF,aAAK,MAAL;AACE,iBAAO,KAAKD,eAAL,CAAqBC,WAArB,EAAP;;AACF;AACE,iBAAO,KAAKmB,MAAL,CAAYnB,WAAZ,EAAP;AANJ;AAQD;AAED;AACF;;;;SACE,eAA0B;AACxB,UAAI,KAAKsB,OAAL,IAAgB,KAAK1B,OAAzB,EAAkC;AAAA;;AAChC,eAAO,0EAAG,KAAKyB,eAAR,wBAA2B,KAAKtB,eAAhC,kBAAP;AACD;;AAED,UAAI,KAAKuB,OAAT,EAAkB;AAChB,eAAO,KAAKD,eAAZ;AACD;;AAED,UAAI,KAAKzB,OAAT,EAAkB;AAChB,eAAO,KAAKG,eAAZ;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;;;;SACE,eAA8B;AAAA;;AAC5B,UAAI,CAAC,KAAKuB,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD,OAH2B,CAK5B;;;AACA,UAAMC,sBAAsB,GAAG,0BAAW,mBAAX,EAAgC,EAAhC,CAA/B;;AAEA,UAAIA,sBAAJ,EAA4B;AAC1B,eAAOA,sBAAP;AACD;;AAED,UAAIJ,MAAM,GAAG,KAAKA,MAAlB;AAEA,UAAIK,UAAU,GAAG,KAAK5B,OAAL,GACb,+BAAAuB,MAAM,CAACM,OAAP,CAAe,KAAK1B,eAApB,EAAqC,EAArC,kBADa,GAEboB,MAFJ;AAIA,aAAOK,UAAP;AACD;AAED;AACF;;;;SACE,eAAiC;AAAA;;AAC/B,UAAI,CAAC,KAAKF,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,UAAIH,MAAM,GAAG,KAAKA,MAAlB;AAEA,UAAIK,UAAU,GAAG,KAAK5B,OAAL,GACb,+BAAAuB,MAAM,CAACM,OAAP,CAAe,KAAK1B,eAApB,EAAqC,EAArC,kBADa,GAEboB,MAFJ;AAIA,UAAMO,qBAAqB,GAAG,0BAAW,sBAAX,EAAmC,EAAnC,CAA9B;;AAEA,UAAIF,UAAU,KAAK1C,2BAAf,IAA8C4C,qBAAlD,EAAyE;AACvEF,QAAAA,UAAU,GAAGE,qBAAb;AACD;;AAED,aAAOF,UAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA0B;AACxB,UAAI,KAAKG,YAAL,KAAsB,EAA1B,EAA8B;AAC5B,eAAO,KAAKA,YAAZ;AACD;;AAED,UAAMJ,sBAAsB,GAAG,0BAAW,mBAAX,EAAgC,EAAhC,CAA/B;;AAEA,UAAIA,sBAAJ,EAA4B;AAC1B,eAAOA,sBAAsB,CAACvB,WAAvB,EAAP;AACD;;AAED,UAAM4B,WAAW,GAAG,KAAKd,eAAL,CAAqB,aAArB,EAAoC,EAApC,CAApB;;AAEA,UAAI,KAAKQ,OAAL,IAAgB,KAAK1B,OAArB,IAAgC,uBAAAgC,WAAW,MAAX,CAAAA,WAAW,EAAU,GAAV,CAA/C,EAA+D;AAC7D;AACA,eAAOA,WAAW,CAACjC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAP;AACD;;AAED,aAAOiC,WAAP;AACD;AAED;AACF;AACA;;SACE,aAAgBC,WAAhB,EAAqC;AACnC,WAAKF,YAAL,GAAoBE,WAApB;AACD;AAED;AACF;;;;SACE,eAA8B;AAC5B,UAAI,CAAC,KAAKjC,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,UAAMuB,MAAM,GAAG,KAAKA,MAApB;AAEA,UAAIW,eAAe,GAAG,EAAtB;;AACA,UAAI,uBAAAX,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBW,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD,OAFD,MAEO,IAAI,uBAAAZ,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AAC/BW,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AACD,UAAI,uBAAAZ,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBW,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AACD,UAAI,uBAAAZ,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBW,QAAAA,eAAe,CAACC,IAAhB,CAAqB,IAArB;AACD;;AAED,UAAIC,UAAU,GAAGF,eAAe,CAACG,IAAhB,CAAqB,GAArB,CAAjB;;AACA,UAAI,uBAAAd,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxBa,QAAAA,UAAU,aAAMA,UAAN,SAAV;AACD;;AACD,UAAI,uBAAAb,MAAM,MAAN,CAAAA,MAAM,EAAU,GAAV,CAAV,EAA0B;AACxB,yBAAUa,UAAV;AACD;;AACD,aAAOA,UAAP;AACD;AAED;AACF;;;;SACE,eAAiC;AAC/B,UAAI,CAAC,KAAKpC,OAAV,EAAmB;AACjB,eAAO,EAAP;AACD;;AAED,aAAO,KAAKG,eAAZ;AACD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,OAAO,KAAKP,KAAZ,KAAsB,QAAtB,IAAkC,KAAK6B,eAAL,KAAyB,EAA3D,GACH,KAAKpB,UAAL,CAAgBW,QAAhB,CAAyB,KAAKpB,KAA9B,EAAqC,KAAK6B,eAA1C,CADG,GAEH,EAFJ;AAGD;AAED;AACF;;;;SACE,eAA6B;AAC3B,aAAO,OAAO,KAAK7B,KAAZ,KAAsB,QAAtB,IAAkC,KAAKO,eAAL,KAAyB,EAA3D,GACH,KAAKE,UAAL,CAAgBW,QAAhB,CAAyB,KAAKpB,KAA9B,EAAqC,KAAKO,eAA1C,CADG,GAEH,EAFJ;AAGD,K,CAED;;AACA;AACF;;;;WACE,qBAAYP,KAAZ,EAAoC;AAClC,UAAIA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACuB,QAAN,OAAqB,EAA1C,EAA8C;AAC5C,eAAO,EAAP;AACD,OAHiC,CAKlC;;;AACA,UACE,CAAC,KAAK5B,IAAL,KAAc,UAAd,IAA4B,KAAKA,IAAL,KAAc,WAA3C,KACAI,uBAAS2C,SAAT,CAAmB1C,KAAnB,EAA0B2C,0BAA1B,CAFF,EAGE;AACA,eAAO5C,uBAASqB,QAAT,CAAkBpB,KAAlB,EAAyB,KAAK4C,kBAA9B,CAAP;AACD;;AAED,UAAI,KAAKd,OAAL,IAAgB,KAAK1B,OAAzB,EAAkC;AAAA;;AAChC,YAAMyC,sBAAsB,8CAAM,KAAKD,kBAAX,wBAAiC,KAAKE,kBAAtC,CAA5B;AACA,eAAO,KAAKrC,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC6C,sBAAhC,CAAP;AACD;;AAED,UAAI,KAAKlD,IAAL,KAAc,MAAlB,EAA0B;AACxB,eAAO,KAAKc,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC,KAAK4C,kBAArC,CAAP;AACD;;AAED,aAAO,KAAKnC,UAAL,CAAgBW,QAAhB,CAAyBpB,KAAzB,EAAgC,KAAK2B,MAArC,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA4B;AAC1B,UAAI,OAAO,KAAK3B,KAAZ,KAAsB,QAA1B,EAAoC;AAClC,eAAO,KAAK+C,WAAL,CAAiB,KAAK/C,KAAL,CAAWuB,QAAX,EAAjB,CAAP;AACD;;AAED,aAAO,EAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA6B;AAC3B,aAAO,KAAKD,eAAL,CAAqB,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;SACE,eAA6B;AAC3B,aAAO,KAAKA,eAAL,CAAqB,SAArB,CAAP;AACD;AAED;AACF;AACA;;;;WACE,wBAAe0B,KAAf,EAAuC;AACrC,UAAQC,EAAR,GAAoCD,KAApC,CAAQC,EAAR;AAAA,UAAYC,OAAZ,GAAoCF,KAApC,CAAYE,OAAZ;AAAA,UAAqBC,UAArB,GAAoCH,KAApC,CAAqBG,UAArB;;AACA,UAAIA,UAAU,IAAI,kBAAIA,UAAJ,EAAgB,QAAhB,CAAd,IAA2C,KAAKf,WAApD,EAAiE;AAC/De,QAAAA,UAAU,CAACxB,MAAX,GAAoB,KAAKS,WAAzB;AACD;;AAED,WAAKgB,gBAAL,CAAsBC,cAAtB,CAAqCJ,EAArC,EAAyCC,OAAzC,EAAkDC,UAAlD;AACD;AAED;AACF;;;;WACE,+BAAwC;AACtC,cAAQ,KAAKxD,IAAb;AACE,aAAK,MAAL;AACE,iBAAO,IAAI2D,qCAAJ,CACL,KAAKzB,eADA,EAEL,KAAKO,WAFA,CAAP;;AAIF,aAAK,MAAL;AACE,iBAAO,IAAImB,qCAAJ,CACL,KAAKhD,eADA,EAEL,KAAK6B,WAFA,CAAP;;AAIF;AACE,iBAAO,IAAIoB,iCAAJ,CACL,KAAK7D,IADA,EAEL,KAAK0B,WAFA,EAGL,KAAKe,WAHA,CAAP;AAZJ;AAkBD;AAED;AACF;AACA;;;;WACE,0BAAuC;AACrC,UAAMqB,WAAW,GAAG,IAAIC,6BAAJ,EAApB;AAEAD,MAAAA,WAAW,CAACE,GAAZ,CAAgB,KAAKC,mBAAL,EAAhB;;AAEA,UAAI,KAAKC,OAAL,IAAgB,KAAKC,OAAzB,EAAkC;AAChCL,QAAAA,WAAW,CAACE,GAAZ,CACE,IAAII,+BAAJ,CACE,KAAKpE,IADP,EAEE,KAAKkE,OAFP,EAGE,KAAKC,OAHP,EAIE,KAAKzC,WAJP,CADF;AAQD;;AAED,aAAOoC,WAAP;AACD;AAED;AACF;;;;SACE,eAAmD;AACjD,UAAI,KAAK9D,IAAL,KAAc,MAAd,IAAwB,KAAKA,IAAL,KAAc,MAA1C,EAAkD;AAChD,eAAOqE,2BAAgBC,KAAvB;AACD;;AAED,aAAOD,2BAAgBE,MAAvB;AACD;;;WA9bD,2BAAyBC,aAAzB,EAAyD;AAAA;;AACvD,aAAO,qCAAC,MAAD,EAAS,MAAT,EAAiB,UAAjB,EAA6B,WAA7B,oBACLA,aAAa,CAACxE,IADT,CAAP;AAGD;;;EAfkCyE,8B;;eA4ctB7E,sB","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from \"../../constants\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { FormErrorAnchor, IConstraintModel } from \"../types\";\n\n// date format of default\nconst PRODUCT_DEFAULT_DATE_FORMAT = \"dd-MM-yyyy\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = value.split(\".\")[0];\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormat(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n // setting for date input\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n\n if (dateInputFormatSetting) {\n return dateInputFormatSetting;\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n return dateFormat;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n const readonlyFormatSetting = getSetting(\"DATE_READONLY_FORMAT\", \"\");\n\n if (dateFormat === PRODUCT_DEFAULT_DATE_FORMAT && readonlyFormatSetting) {\n dateFormat = readonlyFormatSetting;\n }\n\n return dateFormat;\n }\n\n /**\n * return attribute placeholder or, if DATE_INPUT_FORMAT setting is used, lowercased setting, otherwise return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n\n if (dateInputFormatSetting) {\n return dateInputFormatSetting.toLowerCase();\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n // format value in readonly rendering\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat\n )\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"file":"DatetimeAttributeModel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"names":["PRODUCT_DEFAULT_DATE_FORMAT","DatetimeAttributeModel","attribute","attributeContributions","updateInitValue","type","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","value","data","length","split","hasTime","getTimeValue","timeValue","timeInputFormat","toLowerCase","formatUtil","setHour","setMinute","setSecond","setMilliseconds","getInitValue","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","toFormat","inputFormat","getContribution","toString","getInputValue","validate","toISO","format","convertFormat","dateInputFormat","hasDate","ignoreFormatSetting","layouthint","has","IGNORE_FORMAT_SETTING","dateInputFormatSetting","dateFormat","replace","readonlyFormatSetting","_placeholder","formatLabel","placeholder","timeFormatParts","push","timeFormat","join","hasFormat","ISO_DATE_FORMAT","dateReadonlyFormat","dateTimeReadonlyFormat","timeReadonlyFormat","formatValue","error","id","message","properties","_errorCollection","addServerError","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","constraints","ConstraintCollection","add","getFormatConstraint","mindate","maxdate","DateBoundaryConstraint","ATTRIBUTE_WIDTH","SMALL","MEDIUM","contributions","StringAttributeModel"],"mappings":"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","sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from \"../../constants\";\nimport { getSetting } from \"../../constants/Settings\";\nimport { IGNORE_FORMAT_SETTING } from \"../../constants/LayoutHints\";\n\nimport type { FormErrorAnchor, IConstraintModel } from \"../types\";\n\n// date format of default\nconst PRODUCT_DEFAULT_DATE_FORMAT = \"dd-MM-yyyy\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = value.split(\".\")[0];\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormat(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n // setting for date input\n const ignoreFormatSetting = this.layouthint.has(IGNORE_FORMAT_SETTING);\n if (!ignoreFormatSetting) {\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n if (dateInputFormatSetting) {\n return dateInputFormatSetting;\n }\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n return dateFormat;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n let format = this.format;\n\n let dateFormat = this.hasTime\n ? format.replace(this.timeInputFormat, \"\").trim()\n : format;\n\n const readonlyFormatSetting = getSetting(\"DATE_READONLY_FORMAT\", \"\");\n\n if (dateFormat === PRODUCT_DEFAULT_DATE_FORMAT && readonlyFormatSetting) {\n dateFormat = readonlyFormatSetting;\n }\n\n return dateFormat;\n }\n\n /**\n * return attribute placeholder or, if DATE_INPUT_FORMAT setting is used, lowercased setting, otherwise return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const dateInputFormatSetting = getSetting(\"DATE_INPUT_FORMAT\", \"\");\n\n if (dateInputFormatSetting) {\n return dateInputFormatSetting.toLowerCase();\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n // format value in readonly rendering\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat\n )\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"file":"DatetimeAttributeModel.js"}
|
|
@@ -154,9 +154,9 @@ class BaseCollection<T> {
|
|
|
154
154
|
*/
|
|
155
155
|
map<U>(
|
|
156
156
|
callbackfn: (value: T, index: number, array: Array<T>) => U,
|
|
157
|
-
thisArg?:
|
|
157
|
+
thisArg?: T
|
|
158
158
|
): Array<U> {
|
|
159
|
-
return this.collection.map<U>(callbackfn, thisArg);
|
|
159
|
+
return this.collection.map<U, ?T>(callbackfn, thisArg);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
/**
|