@beinformed/ui 1.24.1-beta.5 → 1.24.1-beta.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 +6 -0
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js +12 -0
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +12 -0
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +19 -0
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/__tests__/ChoiceAttributeModel.spec.js.flow +10 -2
- package/package.json +1 -1
- package/src/models/attributes/ChoiceAttributeOptionCollection.js +19 -0
- package/src/models/attributes/__tests__/ChoiceAttributeModel.spec.js +10 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.24.1-beta.6](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.24.1-beta.5...v1.24.1-beta.6) (2022-12-09)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **choice:** update children of taxonomy codemap or taxonomy-attribute ([1b46069](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/1b46069a481662b85e1d1d92585a3da9f1a64526))
|
|
10
|
+
|
|
5
11
|
### [1.24.1-beta.5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.24.1-beta.4...v1.24.1-beta.5) (2022-12-09)
|
|
6
12
|
|
|
7
13
|
### Bug Fixes
|
|
@@ -273,6 +273,18 @@ class ChoiceAttributeOptionCollection extends ResourceCollection {
|
|
|
273
273
|
}
|
|
274
274
|
});
|
|
275
275
|
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
*/
|
|
279
|
+
some(callbackfn, thisArg) {
|
|
280
|
+
return this.collection.some((option, optionIndex, collectionArray) => {
|
|
281
|
+
const result = callbackfn(option, optionIndex, collectionArray);
|
|
282
|
+
if (!result && option.children) {
|
|
283
|
+
return option.children.some(callbackfn, thisArg);
|
|
284
|
+
}
|
|
285
|
+
return result;
|
|
286
|
+
});
|
|
287
|
+
}
|
|
276
288
|
}
|
|
277
289
|
export default ChoiceAttributeOptionCollection;
|
|
278
290
|
//# sourceMappingURL=ChoiceAttributeOptionCollection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["ResourceCollection","ChoiceAttributeOptionModel","ListHeaderModel","DateUtil","ChoiceAttributeOptionCollection","sortOptions","_sortOptions","collection","forEach","option","children","create","data","contributions","referenceDate","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","push","selected","key","toString","getOptionCount","code","foundOption","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","getDefaultValueForOption","layouthints","layouthint","requireDefaultValue","optionValue","optionModel","add","deselectAll","newOption","clone","select","toggle","deselect","action","setReferenceDate","date","headers","_headers","child","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["ResourceCollection","ChoiceAttributeOptionModel","ListHeaderModel","DateUtil","ChoiceAttributeOptionCollection","sortOptions","_sortOptions","collection","forEach","option","children","create","data","contributions","referenceDate","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","push","selected","key","toString","getOptionCount","code","foundOption","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","getDefaultValueForOption","layouthints","layouthint","requireDefaultValue","optionValue","optionModel","add","deselectAll","newOption","clone","select","toggle","deselect","action","setReferenceDate","date","headers","_headers","child","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","callbackfn","thisArg","optionIndex","collectionArray","result"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"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 /**\n */\n some(\n callbackfn: (\n value: ChoiceAttributeOptionModel,\n index: number,\n array: Array<ChoiceAttributeOptionModel>\n ) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some((option, optionIndex, collectionArray) => {\n const result = callbackfn(option, optionIndex, collectionArray);\n if (!result && option.children) {\n return option.children.some(callbackfn, thisArg);\n }\n return result;\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"mappings":"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"}
|
|
@@ -279,6 +279,18 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
279
279
|
}
|
|
280
280
|
});
|
|
281
281
|
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
*/
|
|
285
|
+
some(callbackfn, thisArg) {
|
|
286
|
+
return this.collection.some((option, optionIndex, collectionArray) => {
|
|
287
|
+
const result = callbackfn(option, optionIndex, collectionArray);
|
|
288
|
+
if (!result && option.children) {
|
|
289
|
+
return option.children.some(callbackfn, thisArg);
|
|
290
|
+
}
|
|
291
|
+
return result;
|
|
292
|
+
});
|
|
293
|
+
}
|
|
282
294
|
}
|
|
283
295
|
var _default = ChoiceAttributeOptionCollection;
|
|
284
296
|
exports.default = _default;
|
|
@@ -340,6 +340,25 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
340
340
|
}
|
|
341
341
|
});
|
|
342
342
|
}
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
*/
|
|
346
|
+
some(
|
|
347
|
+
callbackfn: (
|
|
348
|
+
value: ChoiceAttributeOptionModel,
|
|
349
|
+
index: number,
|
|
350
|
+
array: Array<ChoiceAttributeOptionModel>
|
|
351
|
+
) => any,
|
|
352
|
+
thisArg?: any
|
|
353
|
+
): boolean {
|
|
354
|
+
return this.collection.some((option, optionIndex, collectionArray) => {
|
|
355
|
+
const result = callbackfn(option, optionIndex, collectionArray);
|
|
356
|
+
if (!result && option.children) {
|
|
357
|
+
return option.children.some(callbackfn, thisArg);
|
|
358
|
+
}
|
|
359
|
+
return result;
|
|
360
|
+
});
|
|
361
|
+
}
|
|
343
362
|
}
|
|
344
363
|
|
|
345
364
|
export default ChoiceAttributeOptionCollection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["ChoiceAttributeOptionCollection","ResourceCollection","sortOptions","_sortOptions","collection","forEach","option","children","create","data","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","push","selected","key","toString","getOptionCount","code","foundOption","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","getDefaultValueForOption","layouthints","layouthint","requireDefaultValue","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","newOption","clone","select","toggle","deselect","action","setReferenceDate","date","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["ChoiceAttributeOptionCollection","ResourceCollection","sortOptions","_sortOptions","collection","forEach","option","children","create","data","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","push","selected","key","toString","getOptionCount","code","foundOption","count","selectedValues","optionContributions","optionCode","addOption","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","getDefaultValueForOption","layouthints","layouthint","requireDefaultValue","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","newOption","clone","select","toggle","deselect","action","setReferenceDate","date","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","some","opt","withOption","mergeOption","callbackfn","thisArg","optionIndex","collectionArray","result"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"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 /**\n */\n some(\n callbackfn: (\n value: ChoiceAttributeOptionModel,\n index: number,\n array: Array<ChoiceAttributeOptionModel>\n ) => any,\n thisArg?: any\n ): boolean {\n return this.collection.some((option, optionIndex, collectionArray) => {\n const result = callbackfn(option, optionIndex, collectionArray);\n if (!result && option.children) {\n return option.children.some(callbackfn, thisArg);\n }\n return result;\n });\n }\n}\n\nexport default ChoiceAttributeOptionCollection;\n"],"mappings":"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"}
|
|
@@ -364,8 +364,8 @@ describe("choiceAttributeModel", () => {
|
|
|
364
364
|
label: "Taxonomy Native Country",
|
|
365
365
|
type: "string",
|
|
366
366
|
mandatory: false,
|
|
367
|
-
multiplechoice:
|
|
368
|
-
layouthint: ["
|
|
367
|
+
multiplechoice: true,
|
|
368
|
+
layouthint: ["checkbox"],
|
|
369
369
|
enumerated: true,
|
|
370
370
|
options: [
|
|
371
371
|
{
|
|
@@ -399,6 +399,14 @@ describe("choiceAttributeModel", () => {
|
|
|
399
399
|
expect(attribute.options.first.children).toHaveLength(4);
|
|
400
400
|
expect(attribute.readonlyvalue).toBe("United Kingdom");
|
|
401
401
|
expect(attribute.isTree).toBeTruthy();
|
|
402
|
+
|
|
403
|
+
attribute.update(["Netherlands", "Germany"]);
|
|
404
|
+
expect(attribute.readonlyvalue).toBe(
|
|
405
|
+
"Netherlands, United Kingdom, Germany"
|
|
406
|
+
);
|
|
407
|
+
|
|
408
|
+
attribute.update(["UnitedKingdom"]);
|
|
409
|
+
expect(attribute.readonlyvalue).toBe("Netherlands, Germany");
|
|
402
410
|
});
|
|
403
411
|
|
|
404
412
|
it("can create a choice attribute from choice filter input", () => {
|
package/package.json
CHANGED
|
@@ -340,6 +340,25 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
340
340
|
}
|
|
341
341
|
});
|
|
342
342
|
}
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
*/
|
|
346
|
+
some(
|
|
347
|
+
callbackfn: (
|
|
348
|
+
value: ChoiceAttributeOptionModel,
|
|
349
|
+
index: number,
|
|
350
|
+
array: Array<ChoiceAttributeOptionModel>
|
|
351
|
+
) => any,
|
|
352
|
+
thisArg?: any
|
|
353
|
+
): boolean {
|
|
354
|
+
return this.collection.some((option, optionIndex, collectionArray) => {
|
|
355
|
+
const result = callbackfn(option, optionIndex, collectionArray);
|
|
356
|
+
if (!result && option.children) {
|
|
357
|
+
return option.children.some(callbackfn, thisArg);
|
|
358
|
+
}
|
|
359
|
+
return result;
|
|
360
|
+
});
|
|
361
|
+
}
|
|
343
362
|
}
|
|
344
363
|
|
|
345
364
|
export default ChoiceAttributeOptionCollection;
|
|
@@ -364,8 +364,8 @@ describe("choiceAttributeModel", () => {
|
|
|
364
364
|
label: "Taxonomy Native Country",
|
|
365
365
|
type: "string",
|
|
366
366
|
mandatory: false,
|
|
367
|
-
multiplechoice:
|
|
368
|
-
layouthint: ["
|
|
367
|
+
multiplechoice: true,
|
|
368
|
+
layouthint: ["checkbox"],
|
|
369
369
|
enumerated: true,
|
|
370
370
|
options: [
|
|
371
371
|
{
|
|
@@ -399,6 +399,14 @@ describe("choiceAttributeModel", () => {
|
|
|
399
399
|
expect(attribute.options.first.children).toHaveLength(4);
|
|
400
400
|
expect(attribute.readonlyvalue).toBe("United Kingdom");
|
|
401
401
|
expect(attribute.isTree).toBeTruthy();
|
|
402
|
+
|
|
403
|
+
attribute.update(["Netherlands", "Germany"]);
|
|
404
|
+
expect(attribute.readonlyvalue).toBe(
|
|
405
|
+
"Netherlands, United Kingdom, Germany"
|
|
406
|
+
);
|
|
407
|
+
|
|
408
|
+
attribute.update(["UnitedKingdom"]);
|
|
409
|
+
expect(attribute.readonlyvalue).toBe("Netherlands, Germany");
|
|
402
410
|
});
|
|
403
411
|
|
|
404
412
|
it("can create a choice attribute from choice filter input", () => {
|