@beinformed/ui 1.57.1 → 1.57.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/esm/constants/Settings.js +14 -6
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/useAuthentication.js +3 -3
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/hooks/useModularUI.js +9 -8
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js +2 -4
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/esm/hooks/useModularUIModel.js.map +1 -1
- package/esm/models/actions/ActionCollection.js +2 -3
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js +13 -23
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +1 -1
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js +6 -3
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js +3 -3
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js +7 -4
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/BooleanAttributeModel.js +6 -3
- package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +6 -3
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js +18 -14
- package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js +17 -10
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js +7 -7
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +3 -3
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js +2 -2
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/StringAttributeModel.js +2 -2
- package/esm/models/attributes/StringAttributeModel.js.map +1 -1
- package/esm/models/attributes/_createAttribute.js +2 -2
- package/esm/models/attributes/_createAttribute.js.map +1 -1
- package/esm/models/base/BaseModel.js +27 -1
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/models/base/ResourceModel.js +3 -23
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +1 -1
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +2 -2
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptIndexModel.js +2 -2
- package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js +4 -10
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationCollection.js +11 -4
- package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js +8 -1
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js +2 -4
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js +9 -10
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentIndexModel.js +2 -2
- package/esm/models/content/ContentIndexModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +4 -11
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/content/ContentModel.js +2 -2
- package/esm/models/content/ContentModel.js.map +1 -1
- package/esm/models/content/ContentTOCModel.js +7 -7
- package/esm/models/content/ContentTOCModel.js.map +1 -1
- package/esm/models/content/SectionModel.js +6 -12
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/detail/DetailModel.js +9 -3
- package/esm/models/detail/DetailModel.js.map +1 -1
- package/esm/models/error/ErrorResponse.js +8 -10
- package/esm/models/error/ErrorResponse.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js +2 -2
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +3 -3
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/ConceptIndexFilterModel.js +2 -3
- package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js +8 -7
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js +2 -2
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/esm/models/form/FormModel.js +4 -4
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +7 -4
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/grouping/GroupingModel.js +10 -7
- package/esm/models/grouping/GroupingModel.js.map +1 -1
- package/esm/models/href/Href.js +9 -8
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/links/LinkCollection.js +2 -3
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/links/LinkModel.js +7 -7
- package/esm/models/links/LinkModel.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +1 -1
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js +1 -1
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/list/ListItemModel.js +3 -3
- package/esm/models/list/ListItemModel.js.map +1 -1
- package/esm/models/list/ListModel.js +3 -3
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/lookup/LookupOptionCollection.js +5 -2
- package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
- package/esm/models/lookup/LookupOptionsModel.js +2 -2
- package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
- package/esm/models/panels/GroupingPanelModel.js +1 -1
- package/esm/models/panels/GroupingPanelModel.js.map +1 -1
- package/esm/models/tab/TabModel.js +2 -2
- package/esm/models/tab/TabModel.js.map +1 -1
- package/esm/models/taskgroup/TaskGroupModel.js +4 -5
- package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/esm/models/types.js.map +1 -1
- package/esm/models/user/UserProfileModel.js +4 -1
- package/esm/models/user/UserProfileModel.js.map +1 -1
- package/esm/modularui/CaptchaRequest.js +3 -3
- package/esm/modularui/CaptchaRequest.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +8 -5
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/ModularUIResponse.js +12 -3
- package/esm/modularui/ModularUIResponse.js.map +1 -1
- package/esm/modularui/UploadRequest.js +3 -3
- package/esm/modularui/UploadRequest.js.map +1 -1
- package/esm/react-client/client.js +3 -3
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-server/renderSSRComplete.js +2 -2
- package/esm/react-server/renderSSRComplete.js.map +1 -1
- package/esm/react-server/renderSSRMinimal.js +2 -2
- package/esm/react-server/renderSSRMinimal.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js +8 -2
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIUtils.js +8 -11
- package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/esm/utils/browser/Cookies.js +3 -3
- package/esm/utils/browser/Cookies.js.map +1 -1
- package/esm/utils/helpers/createHref.js +23 -3
- package/esm/utils/helpers/createHref.js.map +1 -1
- package/esm/utils/helpers/repositoryResource.js +2 -2
- package/esm/utils/helpers/repositoryResource.js.map +1 -1
- package/lib/constants/Settings.js +18 -8
- package/lib/constants/Settings.js.flow +16 -6
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/useAuthentication.js +2 -2
- package/lib/hooks/useAuthentication.js.flow +3 -3
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModelCatalog.js.flow +7 -6
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/hooks/useModularUI.js +9 -8
- package/lib/hooks/useModularUI.js.flow +12 -9
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js +2 -4
- package/lib/hooks/useModularUIBasic.js.flow +3 -4
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useModularUIModel.js.flow +16 -11
- package/lib/hooks/useModularUIModel.js.map +1 -1
- package/lib/models/actions/ActionCollection.js +2 -2
- package/lib/models/actions/ActionCollection.js.flow +3 -8
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js +12 -22
- package/lib/models/actions/ActionModel.js.flow +7 -24
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +1 -1
- package/lib/models/application/ApplicationModel.js.flow +1 -2
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js +6 -3
- package/lib/models/attributes/AttributeCollection.js.flow +12 -4
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js +3 -3
- package/lib/models/attributes/AttributeModel.js.flow +8 -2
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js +7 -3
- package/lib/models/attributes/AttributeSetModel.js.flow +11 -3
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js +6 -3
- package/lib/models/attributes/BooleanAttributeModel.js.flow +8 -4
- package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +6 -3
- package/lib/models/attributes/ChoiceAttributeModel.js.flow +13 -4
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +18 -13
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +30 -28
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +17 -10
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +30 -11
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js +7 -7
- package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +8 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +3 -3
- package/lib/models/attributes/CompositeAttributeModel.js.flow +8 -3
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js +2 -2
- package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -2
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/StringAttributeModel.js +2 -2
- package/lib/models/attributes/StringAttributeModel.js.flow +7 -3
- package/lib/models/attributes/StringAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js.flow +1 -1
- package/lib/models/attributes/_createAttribute.js +2 -2
- package/lib/models/attributes/_createAttribute.js.flow +3 -2
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/base/BaseModel.js +27 -1
- package/lib/models/base/BaseModel.js.flow +31 -1
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceModel.js +3 -22
- package/lib/models/base/ResourceModel.js.flow +6 -23
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/base/__tests__/BaseModel.spec.js.flow +4 -0
- package/lib/models/caseview/CaseViewModel.js +1 -1
- package/lib/models/caseview/CaseViewModel.js.flow +1 -2
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +2 -2
- package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptIndexModel.js +2 -2
- package/lib/models/concepts/ConceptIndexModel.js.flow +9 -6
- package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js +4 -10
- package/lib/models/concepts/ConceptLinkModel.js.flow +15 -12
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationCollection.js +11 -4
- package/lib/models/concepts/ConceptRelationCollection.js.flow +17 -3
- package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js +8 -1
- package/lib/models/concepts/ConceptRelationModel.js.flow +18 -2
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js +2 -3
- package/lib/models/concepts/SourceReferenceCollection.js.flow +3 -8
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js +8 -8
- package/lib/models/concepts/SourceReferenceModel.js.flow +10 -11
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/content/ContentIndexModel.js +2 -2
- package/lib/models/content/ContentIndexModel.js.flow +10 -5
- package/lib/models/content/ContentIndexModel.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js +4 -10
- package/lib/models/content/ContentLinkModel.js.flow +10 -13
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/content/ContentModel.js +2 -2
- package/lib/models/content/ContentModel.js.flow +6 -1
- package/lib/models/content/ContentModel.js.map +1 -1
- package/lib/models/content/ContentTOCModel.js +7 -7
- package/lib/models/content/ContentTOCModel.js.flow +19 -11
- package/lib/models/content/ContentTOCModel.js.map +1 -1
- package/lib/models/content/SectionModel.js +6 -11
- package/lib/models/content/SectionModel.js.flow +9 -21
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/detail/DetailModel.js +9 -3
- package/lib/models/detail/DetailModel.js.flow +3 -4
- package/lib/models/detail/DetailModel.js.map +1 -1
- package/lib/models/error/ErrorResponse.js +7 -9
- package/lib/models/error/ErrorResponse.js.flow +9 -20
- package/lib/models/error/ErrorResponse.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js +2 -2
- package/lib/models/filters/AssignmentFilterModel.js.flow +7 -3
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +3 -3
- package/lib/models/filters/BaseFilterModel.js.flow +16 -7
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/ConceptIndexFilterModel.js +2 -2
- package/lib/models/filters/ConceptIndexFilterModel.js.flow +8 -2
- package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js +8 -7
- package/lib/models/filters/FilterCollection.js.flow +13 -7
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js +2 -2
- package/lib/models/filters/StringFilterModel.js.flow +7 -3
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/form/FormModel.js +4 -4
- package/lib/models/form/FormModel.js.flow +8 -2
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +7 -4
- package/lib/models/form/FormObjectModel.js.flow +17 -4
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/grouping/GroupingModel.js +10 -7
- package/lib/models/grouping/GroupingModel.js.flow +21 -5
- package/lib/models/grouping/GroupingModel.js.map +1 -1
- package/lib/models/href/Href.js +8 -7
- package/lib/models/href/Href.js.flow +17 -10
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/href/__tests__/Href.spec.js.flow +5 -8
- package/lib/models/links/LinkCollection.js +2 -3
- package/lib/models/links/LinkCollection.js.flow +3 -3
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/links/LinkModel.js +7 -7
- package/lib/models/links/LinkModel.js.flow +8 -15
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/list/ListDetailModel.js +1 -1
- package/lib/models/list/ListDetailModel.js.flow +6 -1
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js +1 -1
- package/lib/models/list/ListItemCollection.js.flow +1 -2
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/list/ListItemModel.js +3 -3
- package/lib/models/list/ListItemModel.js.flow +4 -4
- package/lib/models/list/ListItemModel.js.map +1 -1
- package/lib/models/list/ListModel.js +3 -3
- package/lib/models/list/ListModel.js.flow +12 -8
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/lookup/LookupOptionCollection.js +5 -1
- package/lib/models/lookup/LookupOptionCollection.js.flow +17 -6
- package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
- package/lib/models/lookup/LookupOptionsModel.js +2 -2
- package/lib/models/lookup/LookupOptionsModel.js.flow +2 -0
- package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
- package/lib/models/panels/GroupingPanelModel.js +1 -1
- package/lib/models/panels/GroupingPanelModel.js.flow +1 -2
- package/lib/models/panels/GroupingPanelModel.js.map +1 -1
- package/lib/models/tab/TabModel.js +2 -2
- package/lib/models/tab/TabModel.js.flow +2 -4
- package/lib/models/tab/TabModel.js.map +1 -1
- package/lib/models/taskgroup/TaskGroupModel.js +4 -4
- package/lib/models/taskgroup/TaskGroupModel.js.flow +5 -6
- package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
- package/lib/models/types.js.flow +5 -0
- package/lib/models/types.js.map +1 -1
- package/lib/models/user/UserProfileModel.js +4 -1
- package/lib/models/user/UserProfileModel.js.flow +1 -0
- package/lib/models/user/UserProfileModel.js.map +1 -1
- package/lib/modularui/CaptchaRequest.js +2 -2
- package/lib/modularui/CaptchaRequest.js.flow +7 -3
- package/lib/modularui/CaptchaRequest.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +7 -4
- package/lib/modularui/ModularUIRequest.js.flow +8 -5
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/ModularUIResponse.js +11 -2
- package/lib/modularui/ModularUIResponse.js.flow +13 -3
- package/lib/modularui/ModularUIResponse.js.map +1 -1
- package/lib/modularui/UploadRequest.js +2 -2
- package/lib/modularui/UploadRequest.js.flow +7 -3
- package/lib/modularui/UploadRequest.js.map +1 -1
- package/lib/react-client/client.js +2 -2
- package/lib/react-client/client.js.flow +7 -3
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-server/renderSSRComplete.js +1 -1
- package/lib/react-server/renderSSRComplete.js.flow +2 -2
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRMinimal.js +1 -1
- package/lib/react-server/renderSSRMinimal.js.flow +2 -2
- package/lib/react-server/renderSSRMinimal.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js +8 -2
- package/lib/redux/_modularui/ModularUIActions.js.flow +8 -7
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js +8 -11
- package/lib/redux/_modularui/ModularUIUtils.js.flow +13 -14
- package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/lib/utils/browser/Cookies.js +2 -2
- package/lib/utils/browser/Cookies.js.flow +3 -3
- package/lib/utils/browser/Cookies.js.map +1 -1
- package/lib/utils/helpers/__tests__/createHref.spec.js.flow +13 -8
- package/lib/utils/helpers/createHref.js +23 -3
- package/lib/utils/helpers/createHref.js.flow +37 -8
- package/lib/utils/helpers/createHref.js.map +1 -1
- package/lib/utils/helpers/repositoryResource.js +1 -1
- package/lib/utils/helpers/repositoryResource.js.flow +2 -2
- package/lib/utils/helpers/repositoryResource.js.map +1 -1
- package/package.json +4 -4
- package/src/constants/Settings.js +16 -6
- package/src/hooks/useAuthentication.js +3 -3
- package/src/hooks/useModelCatalog.js +7 -6
- package/src/hooks/useModularUI.js +12 -9
- package/src/hooks/useModularUIBasic.js +3 -4
- package/src/hooks/useModularUIModel.js +16 -11
- package/src/models/actions/ActionCollection.js +3 -8
- package/src/models/actions/ActionModel.js +7 -24
- package/src/models/application/ApplicationModel.js +1 -2
- package/src/models/attributes/AttributeCollection.js +12 -4
- package/src/models/attributes/AttributeModel.js +8 -2
- package/src/models/attributes/AttributeSetModel.js +11 -3
- package/src/models/attributes/BooleanAttributeModel.js +8 -4
- package/src/models/attributes/ChoiceAttributeModel.js +13 -4
- package/src/models/attributes/ChoiceAttributeOptionCollection.js +30 -28
- package/src/models/attributes/ChoiceAttributeOptionModel.js +30 -11
- package/src/models/attributes/CompositeAttributeChildCollection.js +8 -1
- package/src/models/attributes/CompositeAttributeModel.js +8 -3
- package/src/models/attributes/DatetimeAttributeModel.js +7 -2
- package/src/models/attributes/StringAttributeModel.js +7 -3
- package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +1 -1
- package/src/models/attributes/_createAttribute.js +3 -2
- package/src/models/base/BaseModel.js +31 -1
- package/src/models/base/ResourceModel.js +6 -23
- package/src/models/base/__tests__/BaseModel.spec.js +4 -0
- package/src/models/caseview/CaseViewModel.js +1 -2
- package/src/models/concepts/ConceptDetailModel.js +2 -2
- package/src/models/concepts/ConceptIndexModel.js +9 -6
- package/src/models/concepts/ConceptLinkModel.js +15 -12
- package/src/models/concepts/ConceptRelationCollection.js +17 -3
- package/src/models/concepts/ConceptRelationModel.js +18 -2
- package/src/models/concepts/SourceReferenceCollection.js +3 -8
- package/src/models/concepts/SourceReferenceModel.js +10 -11
- package/src/models/content/ContentIndexModel.js +10 -5
- package/src/models/content/ContentLinkModel.js +10 -13
- package/src/models/content/ContentModel.js +6 -1
- package/src/models/content/ContentTOCModel.js +19 -11
- package/src/models/content/SectionModel.js +9 -21
- package/src/models/detail/DetailModel.js +3 -4
- package/src/models/error/ErrorResponse.js +9 -20
- package/src/models/filters/AssignmentFilterModel.js +7 -3
- package/src/models/filters/BaseFilterModel.js +16 -7
- package/src/models/filters/ConceptIndexFilterModel.js +8 -2
- package/src/models/filters/FilterCollection.js +13 -7
- package/src/models/filters/StringFilterModel.js +7 -3
- package/src/models/form/FormModel.js +8 -2
- package/src/models/form/FormObjectModel.js +17 -4
- package/src/models/grouping/GroupingModel.js +21 -5
- package/src/models/href/Href.js +17 -10
- package/src/models/href/__tests__/Href.spec.js +5 -8
- package/src/models/links/LinkCollection.js +3 -3
- package/src/models/links/LinkModel.js +8 -15
- package/src/models/list/ListDetailModel.js +6 -1
- package/src/models/list/ListItemCollection.js +1 -2
- package/src/models/list/ListItemModel.js +4 -4
- package/src/models/list/ListModel.js +12 -8
- package/src/models/lookup/LookupOptionCollection.js +17 -6
- package/src/models/lookup/LookupOptionsModel.js +2 -0
- package/src/models/panels/GroupingPanelModel.js +1 -2
- package/src/models/tab/TabModel.js +2 -4
- package/src/models/taskgroup/TaskGroupModel.js +5 -6
- package/src/models/types.js +5 -0
- package/src/models/user/UserProfileModel.js +1 -0
- package/src/modularui/CaptchaRequest.js +7 -3
- package/src/modularui/ModularUIRequest.js +8 -5
- package/src/modularui/ModularUIResponse.js +13 -3
- package/src/modularui/UploadRequest.js +7 -3
- package/src/react-client/client.js +7 -3
- package/src/react-server/renderSSRComplete.js +2 -2
- package/src/react-server/renderSSRMinimal.js +2 -2
- package/src/redux/_modularui/ModularUIActions.js +8 -7
- package/src/redux/_modularui/ModularUIUtils.js +13 -14
- package/src/utils/browser/Cookies.js +3 -3
- package/src/utils/helpers/__tests__/createHref.spec.js +13 -8
- package/src/utils/helpers/createHref.js +37 -8
- package/src/utils/helpers/repositoryResource.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeModel.js","names":["_full","require","_objects","_DateTimeUtil","_AttributeModel","_interopRequireDefault","_ChoiceAttributeOptionCollection","_ChoiceAttributeOptionModel","_CompositeAttributeModel","_ContentConfigurationElements","_LayoutHints","_constants","ChoiceAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","layouthint","has","SORT_OPTIONS","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","isUser","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","errors","conceptLinkHref","href","concept","_find","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_map","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includes","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","addNotExistingOptions","arguments","undefined","removeNotExistingOptions","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","newVal","klona","add","toString","updateByAttribute","otherAttribute","CompositeAttributeModel","otherValue","getChildrenIds","console","error","addMissingError","receivedAttribute","isChangedSince","_errorCollection","addServerError","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","placeholder","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","readonlyWidth","ATTRIBUTE_WIDTH","MEDIUM","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { ModularUIModel, AttributeType, FormErrorAnchor } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n get isUser(): boolean {\n return this.optionType === \"user\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models, errors);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(\n oldAttribute: AttributeType,\n addNotExistingOptions: boolean = false,\n removeNotExistingOptions: boolean = false,\n ) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(\n oldAttribute.options,\n addNotExistingOptions ?? this.type === \"lookup\",\n removeNotExistingOptions,\n );\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values = [];\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else if (value != null) {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n const newVal = klona(val);\n newVal.selected = false;\n this.options.add(newVal);\n }\n this.toggleOption(val.code);\n } else if (\n (typeof val === \"number\" ||\n typeof val === \"string\" ||\n typeof val === \"boolean\") &&\n this.options.some((option) => option.code.toString() === val.toString())\n ) {\n this.toggleOption(val.toString());\n }\n });\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (\n otherAttribute instanceof ChoiceAttributeModel ||\n otherAttribute instanceof CompositeAttributeModel\n ) {\n let otherValue;\n if (otherAttribute instanceof ChoiceAttributeModel) {\n otherValue = otherAttribute.options.selected;\n } else if (otherAttribute instanceof CompositeAttributeModel) {\n otherValue = otherAttribute.getChildrenIds();\n }\n if (otherValue !== null) {\n this.update(otherValue);\n }\n } else {\n console.error(\n `update of choice attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n * Registers a missing error that was received from the server\n */\n addMissingError(receivedAttribute?: AttributeType): void {\n if (this.isChangedSince(0)) {\n this._errorCollection.addServerError(\"Constraint.Missing\");\n }\n // update choice options\n if (receivedAttribute instanceof ChoiceAttributeModel) {\n this.mergeAttribute(receivedAttribute, true, true);\n }\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeModel.js","names":["_full","require","_objects","_DateTimeUtil","_AttributeModel","_interopRequireDefault","_ChoiceAttributeOptionCollection","_ChoiceAttributeOptionModel","_CompositeAttributeModel","_ContentConfigurationElements","_LayoutHints","_constants","ChoiceAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_referenceDate","getData","DateUtil","now","_options","ChoiceAttributeOptionCollection","create","referenceDate","layouthint","has","SORT_OPTIONS","sortOptions","isApplicableModel","contributions","type","optionMode","getContribution","hasLookupLink","lookupLink","lookupListLink","optionType","isUser","getInitialChildModelLinks","links","hasContentConfiguration","hasContentFromData","conceptLink","push","options","setChildModels","models","errors","conceptLinkHref","href","concept","_find","call","model","selfhref","equalsWithParameters","getLinkByKey","lookupListLabel","lookupList","label","date","selected","_context","_map","option","code","readonlyvalue","_context2","join","initvalue","Array","isArray","_initvalue","length","getValue","_context3","hasValue","getInputValue","toggleOption","_context4","_includes","disableOption","enableOption","isMultiple","deselectAll","select","inputvalue","deselect","addOption","_context5","opt","choicetype","_context6","hint","multiplechoice","isTree","some","reset","mergeAttribute","oldAttribute","addNotExistingOptions","arguments","undefined","removeNotExistingOptions","readonly","mergeOptions","isValid","update","value","updateLastModification","values","split","forEach","val","isChoiceAttributeOptionModel","equals","newVal","klona","add","toString","updateByAttribute","otherAttribute","CompositeAttributeModel","otherValue","getChildrenIds","console","error","addMissingError","receivedAttribute","isChangedSince","_errorCollection","addServerError","_hasContentConfiguration","contentConfiguration","_context7","content","optionElements","optionElementConfig","optionElement","contentElement","RENDER_SECTION_LABEL","ContentConfigurationElements","placeholder","id","message","properties","ANSWER_OPTION_KEY","_context8","optionKey","foundOption","getContentConfiguredLabel","readonlyWidth","ATTRIBUTE_WIDTH","MEDIUM","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport { has } from \"../../utils/helpers/objects\";\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport AttributeModel from \"./AttributeModel\";\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\n\nimport {\n RENDER_SECTION_LABEL,\n SORT_OPTIONS,\n} from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type {\n ModularUIModel,\n AttributeType,\n FormErrorAnchor,\n ModelOptions,\n} from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Model for a choice attribute\n */\nexport default class ChoiceAttributeModel extends AttributeModel {\n _referenceDate: ISO_DATE;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean;\n\n /**\n * Constructs a choice attribute\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n { ...modelOptions, referenceDate: this.referenceDate },\n );\n\n if (this.layouthint.has(SORT_OPTIONS)) {\n this._options.sortOptions = true;\n }\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return (\n contributions.type !== \"composite\" &&\n contributions.type !== \"boolean\" &&\n (contributions.type === \"choice\" ||\n contributions.type === \"array\" ||\n has(contributions, \"enumerated\") ||\n has(contributions, \"options\"))\n );\n }\n\n /**\n */\n get type(): string {\n const optionMode = this.getContribution(\"optionMode\", \"\");\n const hasLookupLink = this.lookupLink || this.lookupListLink;\n\n if (\n optionMode === \"lookup\" ||\n (optionMode === \"dynamicWithThreshold\" && hasLookupLink)\n ) {\n return \"lookup\";\n }\n\n return \"choice\";\n }\n\n /**\n */\n get optionType(): string {\n return this.contributions?.optionType ?? \"generic\";\n }\n\n /**\n */\n get isUser(): boolean {\n return this.optionType === \"user\";\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const links = [];\n\n if (this.hasContentConfiguration) {\n if (!this.hasContentFromData && this.conceptLink) {\n links.push(this.conceptLink);\n }\n\n links.push(...this.options.getInitialChildModelLinks());\n }\n\n return links;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n const conceptLinkHref = this.conceptLink?.href;\n if (conceptLinkHref) {\n this.concept = models.find(\n (model) =>\n model.type === \"ConceptDetail\" &&\n model.selfhref.equalsWithParameters(conceptLinkHref),\n );\n }\n\n this.options.setChildModels(models, errors);\n }\n\n /**\n * Retrieve lookup service link\n */\n get lookupLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupOptions\");\n }\n\n /**\n * Retrieve lookup service as list link\n */\n get lookupListLink(): LinkModel | null {\n return this.links.getLinkByKey(\"lookupList\");\n }\n\n /**\n */\n get lookupListLabel(): string {\n return this.contributions.lookupList?.label ?? \"\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Add a new option to the collection of lookup options\n */\n addOption(option: Object) {\n if (!this.isMultiple) {\n this.options.deselectAll();\n }\n\n if (this.options.find((opt) => opt.code === option.code) === null) {\n this.options.addOption(option.code, option);\n }\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype():\n | \"checkbox\"\n | \"radiobutton\"\n | \"combobox\"\n | \"list\"\n | \"listview\"\n | \"table\"\n | \"longlist\"\n | \"toggle\" {\n return (\n [\n \"checkbox\",\n \"radiobutton\",\n \"combobox\",\n \"list\",\n \"listview\",\n \"table\",\n \"longlist\",\n \"toggle\",\n ].find((hint) => this.layouthint.has(hint)) || \"checkbox\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return this.contributions.multiplechoice || this.choicetype === \"checkbox\";\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return (\n has(this.contributions, \"options\") &&\n this.contributions.options.some((option) => has(option, \"children\"))\n );\n }\n\n /**\n * Reset choice attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(\n oldAttribute: AttributeType,\n addNotExistingOptions: boolean = false,\n removeNotExistingOptions: boolean = false,\n ) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof ChoiceAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.mergeOptions(\n oldAttribute.options,\n addNotExistingOptions ?? this.type === \"lookup\",\n removeNotExistingOptions,\n );\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): ChoiceAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values = [];\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else if (value != null) {\n values = [value];\n }\n values.forEach((val) => {\n if (typeof val === \"object\" && val.isChoiceAttributeOptionModel) {\n // option does not exist in existing options, add it. This can happen when lookup list has other options then lookup options\n if (!this.options.some((option) => option.equals(val))) {\n const newVal = klona(val);\n newVal.selected = false;\n this.options.add(newVal);\n }\n this.toggleOption(val.code);\n } else if (\n (typeof val === \"number\" ||\n typeof val === \"string\" ||\n typeof val === \"boolean\") &&\n this.options.some((option) => option.code.toString() === val.toString())\n ) {\n this.toggleOption(val.toString());\n }\n });\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (\n otherAttribute instanceof ChoiceAttributeModel ||\n otherAttribute instanceof CompositeAttributeModel\n ) {\n let otherValue;\n if (otherAttribute instanceof ChoiceAttributeModel) {\n otherValue = otherAttribute.options.selected;\n } else if (otherAttribute instanceof CompositeAttributeModel) {\n otherValue = otherAttribute.getChildrenIds();\n }\n if (otherValue !== null) {\n this.update(otherValue);\n }\n } else {\n console.error(\n `update of choice attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n * Registers a missing error that was received from the server\n */\n addMissingError(receivedAttribute?: AttributeType): void {\n if (this.isChangedSince(0)) {\n this._errorCollection.addServerError(\"Constraint.Missing\");\n }\n // update choice options\n if (receivedAttribute instanceof ChoiceAttributeModel) {\n this.mergeAttribute(receivedAttribute, true, true);\n }\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n\n const ANSWER_OPTION_KEY = \"answer-option-key\";\n\n if (properties && has(properties, ANSWER_OPTION_KEY)) {\n const optionKey = properties[ANSWER_OPTION_KEY];\n const foundOption = this.options.find(\n (option) => option.code === optionKey,\n );\n if (foundOption) {\n properties[ANSWER_OPTION_KEY] = foundOption.getContentConfiguredLabel(\n this.contentConfiguration,\n );\n }\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,15 +13,23 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
|
|
|
13
13
|
var _ResourceCollection = _interopRequireDefault(require("../base/ResourceCollection"));
|
|
14
14
|
var _ChoiceAttributeOptionModel = _interopRequireDefault(require("./ChoiceAttributeOptionModel"));
|
|
15
15
|
var _ListHeaderModel = _interopRequireDefault(require("../list/ListHeaderModel"));
|
|
16
|
-
var
|
|
16
|
+
var _constants = require("../../constants");
|
|
17
|
+
var _utils = require("../../utils");
|
|
17
18
|
/**
|
|
18
19
|
*/
|
|
19
20
|
class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
20
|
-
constructor() {
|
|
21
|
-
super(
|
|
21
|
+
constructor(modelOptions) {
|
|
22
|
+
super();
|
|
23
|
+
(0, _defineProperty2.default)(this, "_modelOptions", void 0);
|
|
22
24
|
(0, _defineProperty2.default)(this, "_headers", []);
|
|
23
25
|
(0, _defineProperty2.default)(this, "_sortOptions", false);
|
|
26
|
+
this._modelOptions = modelOptions || {
|
|
27
|
+
origin: "",
|
|
28
|
+
contextPath: (0, _constants.getBasePathModularUI)(),
|
|
29
|
+
referenceDate: _utils.DateUtil.now()
|
|
30
|
+
};
|
|
24
31
|
}
|
|
32
|
+
|
|
25
33
|
/**
|
|
26
34
|
*/
|
|
27
35
|
set sortOptions(sortOptions) {
|
|
@@ -44,14 +52,14 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
44
52
|
static create() {
|
|
45
53
|
let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
46
54
|
let contributions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
47
|
-
let
|
|
48
|
-
const collection = new ChoiceAttributeOptionCollection();
|
|
55
|
+
let modelOptions = arguments.length > 2 ? arguments[2] : undefined;
|
|
56
|
+
const collection = new ChoiceAttributeOptionCollection(modelOptions);
|
|
49
57
|
if (contributions.type === "boolean") {
|
|
50
58
|
collection.addBooleanOptions(data.value, contributions);
|
|
51
59
|
} else if (data.dynamicschema != null) {
|
|
52
|
-
collection.addDynamicSchema(data, contributions
|
|
60
|
+
collection.addDynamicSchema(data, contributions);
|
|
53
61
|
} else if (contributions.options != null) {
|
|
54
|
-
collection.addOptions(data, contributions
|
|
62
|
+
collection.addOptions(data, contributions);
|
|
55
63
|
}
|
|
56
64
|
if (contributions.children != null) {
|
|
57
65
|
collection.addHeaders(contributions.children);
|
|
@@ -99,7 +107,6 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
99
107
|
/**
|
|
100
108
|
*/
|
|
101
109
|
addOptions(data, contributions) {
|
|
102
|
-
let referenceDate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _DateTimeUtil.DateUtil.now();
|
|
103
110
|
const selectedValues = this.getSelectedOptions(data);
|
|
104
111
|
contributions.options.forEach(optionContributions => {
|
|
105
112
|
const optionCode = optionContributions.code || optionContributions.key;
|
|
@@ -107,7 +114,7 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
107
114
|
...optionContributions,
|
|
108
115
|
count: this.getOptionCount(optionCode, data.options),
|
|
109
116
|
optionType: contributions.optionType ?? "generic"
|
|
110
|
-
}
|
|
117
|
+
});
|
|
111
118
|
});
|
|
112
119
|
return this;
|
|
113
120
|
}
|
|
@@ -116,7 +123,6 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
116
123
|
* Create options based on data and dynamischema
|
|
117
124
|
*/
|
|
118
125
|
addDynamicSchema(data, contributions) {
|
|
119
|
-
let referenceDate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _DateTimeUtil.DateUtil.now();
|
|
120
126
|
const selectedValues = this.getSelectedOptions(data);
|
|
121
127
|
data.dynamicschema.forEach(optionDynamicschema => {
|
|
122
128
|
this.addOption(selectedValues, {
|
|
@@ -124,7 +130,7 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
124
130
|
count: this.getOptionCount(optionDynamicschema.code, data.options),
|
|
125
131
|
optionType: contributions.optionType ?? "generic",
|
|
126
132
|
elementsContributions: contributions.children
|
|
127
|
-
}
|
|
133
|
+
});
|
|
128
134
|
});
|
|
129
135
|
return this;
|
|
130
136
|
}
|
|
@@ -157,8 +163,7 @@ class ChoiceAttributeOptionCollection extends _ResourceCollection.default {
|
|
|
157
163
|
/**
|
|
158
164
|
*/
|
|
159
165
|
addOption(data, contributions) {
|
|
160
|
-
|
|
161
|
-
const optionModel = new _ChoiceAttributeOptionModel.default(Array.isArray(data) ? data : [data], contributions, referenceDate);
|
|
166
|
+
const optionModel = new _ChoiceAttributeOptionModel.default(Array.isArray(data) ? data : [data], contributions, this._modelOptions);
|
|
162
167
|
this.add(optionModel);
|
|
163
168
|
return this;
|
|
164
169
|
}
|
|
@@ -3,14 +3,27 @@ import ResourceCollection from "../base/ResourceCollection";
|
|
|
3
3
|
import ChoiceAttributeOptionModel from "./ChoiceAttributeOptionModel";
|
|
4
4
|
import ListHeaderModel from "../list/ListHeaderModel";
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { getBasePathModularUI } from "../../constants";
|
|
7
7
|
|
|
8
|
+
import { DateUtil } from "../../utils";
|
|
9
|
+
|
|
10
|
+
import type { ChoiceAttributeOptionModelOptions } from "./ChoiceAttributeOptionModel";
|
|
8
11
|
/**
|
|
9
12
|
*/
|
|
10
13
|
class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {
|
|
14
|
+
_modelOptions: ChoiceAttributeOptionModelOptions;
|
|
11
15
|
_headers: Array<ListHeaderModel> = [];
|
|
12
16
|
_sortOptions: boolean = false;
|
|
13
17
|
|
|
18
|
+
constructor(modelOptions?: ChoiceAttributeOptionModelOptions) {
|
|
19
|
+
super();
|
|
20
|
+
this._modelOptions = modelOptions || {
|
|
21
|
+
origin: "",
|
|
22
|
+
contextPath: getBasePathModularUI(),
|
|
23
|
+
referenceDate: DateUtil.now(),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
14
27
|
/**
|
|
15
28
|
*/
|
|
16
29
|
set sortOptions(sortOptions: boolean) {
|
|
@@ -34,16 +47,16 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
34
47
|
static create(
|
|
35
48
|
data: Object = {},
|
|
36
49
|
contributions: Object = {},
|
|
37
|
-
|
|
50
|
+
modelOptions?: ChoiceAttributeOptionModelOptions,
|
|
38
51
|
): ChoiceAttributeOptionCollection {
|
|
39
|
-
const collection = new ChoiceAttributeOptionCollection();
|
|
52
|
+
const collection = new ChoiceAttributeOptionCollection(modelOptions);
|
|
40
53
|
|
|
41
54
|
if (contributions.type === "boolean") {
|
|
42
55
|
collection.addBooleanOptions(data.value, contributions);
|
|
43
56
|
} else if (data.dynamicschema != null) {
|
|
44
|
-
collection.addDynamicSchema(data, contributions
|
|
57
|
+
collection.addDynamicSchema(data, contributions);
|
|
45
58
|
} else if (contributions.options != null) {
|
|
46
|
-
collection.addOptions(data, contributions
|
|
59
|
+
collection.addOptions(data, contributions);
|
|
47
60
|
}
|
|
48
61
|
|
|
49
62
|
if (contributions.children != null) {
|
|
@@ -102,22 +115,17 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
102
115
|
addOptions(
|
|
103
116
|
data: Object,
|
|
104
117
|
contributions: Object,
|
|
105
|
-
referenceDate: ISO_DATE = DateUtil.now(),
|
|
106
118
|
): ChoiceAttributeOptionCollection {
|
|
107
119
|
const selectedValues = this.getSelectedOptions(data);
|
|
108
120
|
|
|
109
121
|
contributions.options.forEach((optionContributions) => {
|
|
110
122
|
const optionCode = optionContributions.code || optionContributions.key;
|
|
111
123
|
|
|
112
|
-
this.addOption(
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
optionType: contributions.optionType ?? "generic",
|
|
118
|
-
},
|
|
119
|
-
referenceDate,
|
|
120
|
-
);
|
|
124
|
+
this.addOption(selectedValues, {
|
|
125
|
+
...optionContributions,
|
|
126
|
+
count: this.getOptionCount(optionCode, data.options),
|
|
127
|
+
optionType: contributions.optionType ?? "generic",
|
|
128
|
+
});
|
|
121
129
|
});
|
|
122
130
|
|
|
123
131
|
return this;
|
|
@@ -129,20 +137,15 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
129
137
|
addDynamicSchema(
|
|
130
138
|
data: Object,
|
|
131
139
|
contributions: Object,
|
|
132
|
-
referenceDate: ISO_DATE = DateUtil.now(),
|
|
133
140
|
): ChoiceAttributeOptionCollection {
|
|
134
141
|
const selectedValues = this.getSelectedOptions(data);
|
|
135
142
|
data.dynamicschema.forEach((optionDynamicschema) => {
|
|
136
|
-
this.addOption(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
elementsContributions: contributions.children,
|
|
143
|
-
},
|
|
144
|
-
referenceDate,
|
|
145
|
-
);
|
|
143
|
+
this.addOption(selectedValues, {
|
|
144
|
+
...optionDynamicschema,
|
|
145
|
+
count: this.getOptionCount(optionDynamicschema.code, data.options),
|
|
146
|
+
optionType: contributions.optionType ?? "generic",
|
|
147
|
+
elementsContributions: contributions.children,
|
|
148
|
+
});
|
|
146
149
|
});
|
|
147
150
|
|
|
148
151
|
return this;
|
|
@@ -189,12 +192,11 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
|
|
|
189
192
|
addOption(
|
|
190
193
|
data: string | Array<string>,
|
|
191
194
|
contributions: Object,
|
|
192
|
-
referenceDate: ISO_DATE = DateUtil.now(),
|
|
193
195
|
): ChoiceAttributeOptionCollection {
|
|
194
196
|
const optionModel = new ChoiceAttributeOptionModel(
|
|
195
197
|
Array.isArray(data) ? data : [data],
|
|
196
198
|
contributions,
|
|
197
|
-
|
|
199
|
+
this._modelOptions,
|
|
198
200
|
);
|
|
199
201
|
|
|
200
202
|
this.add(optionModel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["_ResourceCollection","_interopRequireDefault","require","_ChoiceAttributeOptionModel","_ListHeaderModel","_DateTimeUtil","ChoiceAttributeOptionCollection","ResourceCollection","constructor","arguments","_defineProperty2","default","sortOptions","_sortOptions","collection","forEach","option","children","create","data","length","undefined","contributions","referenceDate","DateUtil","now","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","_context","_sort","call","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","_context2","_context3","push","_map","_filter","selected","key","toString","getOptionCount","code","foundOption","_find","count","selectedValues","optionContributions","optionCode","addOption","optionType","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","_context4","newOption","clone","select","toggle","deselect","action","_context5","setReferenceDate","date","_context6","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","removeNotExistingOptions","newCollection","withOption","mergeOption","some","opt","callbackfn","thisArg","optionIndex","collectionArray","result","_default","exports"],"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 optionType: contributions.optionType ?? \"generic\",\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 optionType: contributions.optionType ?? \"generic\",\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 * 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 = value == null ? [] : [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 removeNotExistingOptions: boolean = false,\n ) {\n const newCollection = [];\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 newCollection.push(option);\n } else if (!removeNotExistingOptions) {\n newCollection.push(option);\n }\n });\n\n if (addNotExistingOptions) {\n this.collection = [\n ...newCollection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code),\n ),\n ];\n } else {\n this.collection = newCollection;\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ChoiceAttributeOptionCollection.js","names":["_ResourceCollection","_interopRequireDefault","require","_ChoiceAttributeOptionModel","_ListHeaderModel","_constants","_utils","ChoiceAttributeOptionCollection","ResourceCollection","constructor","modelOptions","_defineProperty2","default","_modelOptions","origin","contextPath","getBasePathModularUI","referenceDate","DateUtil","now","sortOptions","_sortOptions","collection","forEach","option","children","create","data","arguments","length","undefined","contributions","type","addBooleanOptions","value","dynamicschema","addDynamicSchema","options","addOptions","addHeaders","all","_context","_sort","call","a","b","label","localeCompare","getSelectedOptions","selectedOptions","Array","isArray","_context2","_context3","push","_map","_filter","selected","key","toString","getOptionCount","code","foundOption","_find","count","selectedValues","optionContributions","optionCode","addOption","optionType","optionDynamicschema","elementsContributions","addBooleanOption","defaultLabel","isBooleanType","hasAlternativeLabel","optionValue","optionModel","ChoiceAttributeOptionModel","add","deselectAll","_context4","newOption","clone","select","toggle","deselect","action","_context5","setReferenceDate","date","_context6","headers","_headers","child","ListHeaderModel","mergeOptions","withOptions","addNotExistingOptions","removeNotExistingOptions","newCollection","withOption","mergeOption","some","opt","callbackfn","thisArg","optionIndex","collectionArray","result","_default","exports"],"sources":["../../../src/models/attributes/ChoiceAttributeOptionCollection.js"],"sourcesContent":["// @flow\nimport ResourceCollection from \"../base/ResourceCollection\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\nimport ListHeaderModel from \"../list/ListHeaderModel\";\n\nimport { getBasePathModularUI } from \"../../constants\";\n\nimport { DateUtil } from \"../../utils\";\n\nimport type { ChoiceAttributeOptionModelOptions } from \"./ChoiceAttributeOptionModel\";\n/**\n */\nclass ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {\n _modelOptions: ChoiceAttributeOptionModelOptions;\n _headers: Array<ListHeaderModel> = [];\n _sortOptions: boolean = false;\n\n constructor(modelOptions?: ChoiceAttributeOptionModelOptions) {\n super();\n this._modelOptions = modelOptions || {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n referenceDate: DateUtil.now(),\n };\n }\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 modelOptions?: ChoiceAttributeOptionModelOptions,\n ): ChoiceAttributeOptionCollection {\n const collection = new ChoiceAttributeOptionCollection(modelOptions);\n\n if (contributions.type === \"boolean\") {\n collection.addBooleanOptions(data.value, contributions);\n } else if (data.dynamicschema != null) {\n collection.addDynamicSchema(data, contributions);\n } else if (contributions.options != null) {\n collection.addOptions(data, contributions);\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 ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n\n contributions.options.forEach((optionContributions) => {\n const optionCode = optionContributions.code || optionContributions.key;\n\n this.addOption(selectedValues, {\n ...optionContributions,\n count: this.getOptionCount(optionCode, data.options),\n optionType: contributions.optionType ?? \"generic\",\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 ): ChoiceAttributeOptionCollection {\n const selectedValues = this.getSelectedOptions(data);\n data.dynamicschema.forEach((optionDynamicschema) => {\n this.addOption(selectedValues, {\n ...optionDynamicschema,\n count: this.getOptionCount(optionDynamicschema.code, data.options),\n optionType: contributions.optionType ?? \"generic\",\n elementsContributions: contributions.children,\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 * 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 = value == null ? [] : [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 ): ChoiceAttributeOptionCollection {\n const optionModel = new ChoiceAttributeOptionModel(\n Array.isArray(data) ? data : [data],\n contributions,\n this._modelOptions,\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 removeNotExistingOptions: boolean = false,\n ) {\n const newCollection = [];\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 newCollection.push(option);\n } else if (!removeNotExistingOptions) {\n newCollection.push(option);\n }\n });\n\n if (addNotExistingOptions) {\n this.collection = [\n ...newCollection,\n ...withOptions.filter(\n (option) => !this.collection.some((opt) => opt.code === option.code),\n ),\n ];\n } else {\n this.collection = newCollection;\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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","ignoreList":[]}
|
|
@@ -29,7 +29,7 @@ class ChoiceAttributeOptionModel extends _BaseModel.default {
|
|
|
29
29
|
constructor() {
|
|
30
30
|
let selectedValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
31
31
|
let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
32
|
-
let
|
|
32
|
+
let modelOptions = arguments.length > 2 ? arguments[2] : undefined;
|
|
33
33
|
super({}, option);
|
|
34
34
|
(0, _defineProperty2.default)(this, "_code", void 0);
|
|
35
35
|
(0, _defineProperty2.default)(this, "_isSelected", void 0);
|
|
@@ -43,11 +43,14 @@ class ChoiceAttributeOptionModel extends _BaseModel.default {
|
|
|
43
43
|
(0, _defineProperty2.default)(this, "_isUser", false);
|
|
44
44
|
this.code = this.contributions.code ?? this.contributions.key ?? "";
|
|
45
45
|
this._isSelected = (0, _includes.default)(selectedValues).call(selectedValues, this.code);
|
|
46
|
-
this._referenceDate = referenceDate;
|
|
46
|
+
this._referenceDate = modelOptions?.referenceDate || _DateTimeUtil.DateUtil.now();
|
|
47
47
|
this._level = 0;
|
|
48
|
-
this._attributeCollection = this.createAttributeCollection();
|
|
49
|
-
this._children = this.addChildren(selectedValues, option,
|
|
50
|
-
this._links = new _LinkCollection.default(this.contributions._links
|
|
48
|
+
this._attributeCollection = this.createAttributeCollection(modelOptions);
|
|
49
|
+
this._children = this.addChildren(selectedValues, option, modelOptions);
|
|
50
|
+
this._links = new _LinkCollection.default(this.contributions._links, {}, {
|
|
51
|
+
origin: modelOptions?.origin,
|
|
52
|
+
contextPath: modelOptions?.contextPath
|
|
53
|
+
});
|
|
51
54
|
this._content = new _AttributeContent.default(option.content);
|
|
52
55
|
this._isUser = option.optionType === "user";
|
|
53
56
|
}
|
|
@@ -129,11 +132,15 @@ class ChoiceAttributeOptionModel extends _BaseModel.default {
|
|
|
129
132
|
|
|
130
133
|
/**
|
|
131
134
|
*/
|
|
132
|
-
createAttributeCollection() {
|
|
135
|
+
createAttributeCollection(modelOptions) {
|
|
133
136
|
const contributions = this.getContribution("elementsContributions", []);
|
|
134
137
|
if ((0, _objects.has)(this.contributions, "elements")) {
|
|
135
138
|
const data = this.getContribution("elements", {});
|
|
136
|
-
return new _AttributeCollection.default(data, contributions,
|
|
139
|
+
return new _AttributeCollection.default(data, contributions, {
|
|
140
|
+
origin: modelOptions?.origin,
|
|
141
|
+
contextPath: modelOptions?.contextPath,
|
|
142
|
+
isReadonly: true
|
|
143
|
+
});
|
|
137
144
|
}
|
|
138
145
|
return new _AttributeCollection.default();
|
|
139
146
|
}
|
|
@@ -200,16 +207,16 @@ class ChoiceAttributeOptionModel extends _BaseModel.default {
|
|
|
200
207
|
addChildren() {
|
|
201
208
|
let selectedValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
202
209
|
let option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
203
|
-
let
|
|
210
|
+
let modelOptions = arguments.length > 2 ? arguments[2] : undefined;
|
|
204
211
|
// When contributions contain elements this is a list not nested options
|
|
205
212
|
if ((0, _objects.has)(option, "elements")) {
|
|
206
|
-
return new _ChoiceAttributeOptionCollection.default();
|
|
213
|
+
return new _ChoiceAttributeOptionCollection.default(modelOptions);
|
|
207
214
|
}
|
|
208
215
|
return _ChoiceAttributeOptionCollection.default.create({
|
|
209
216
|
value: selectedValues
|
|
210
217
|
}, {
|
|
211
218
|
options: option?.children ?? []
|
|
212
|
-
},
|
|
219
|
+
}, modelOptions);
|
|
213
220
|
}
|
|
214
221
|
|
|
215
222
|
/**
|
|
@@ -13,11 +13,20 @@ import AttributeCollection from "./AttributeCollection";
|
|
|
13
13
|
import ConceptDetailModel from "../concepts/ConceptDetailModel";
|
|
14
14
|
import AttributeContent from "./AttributeContent";
|
|
15
15
|
|
|
16
|
-
import type {
|
|
16
|
+
import type {
|
|
17
|
+
IModelWithChildModels,
|
|
18
|
+
ModelOptions,
|
|
19
|
+
ModularUIModel,
|
|
20
|
+
} from "../types";
|
|
17
21
|
import type ListItemModel from "../list/ListItemModel";
|
|
18
22
|
import type LinkModel from "../links/LinkModel";
|
|
19
23
|
import type ErrorResponse from "../error/ErrorResponse";
|
|
20
24
|
|
|
25
|
+
export type ChoiceAttributeOptionModelOptions = {
|
|
26
|
+
...ModelOptions,
|
|
27
|
+
referenceDate: ISO_DATE,
|
|
28
|
+
};
|
|
29
|
+
|
|
21
30
|
/**
|
|
22
31
|
*/
|
|
23
32
|
class ChoiceAttributeOptionModel
|
|
@@ -40,7 +49,7 @@ class ChoiceAttributeOptionModel
|
|
|
40
49
|
constructor(
|
|
41
50
|
selectedValues: Array<string> = [],
|
|
42
51
|
option: Object = {},
|
|
43
|
-
|
|
52
|
+
modelOptions?: ChoiceAttributeOptionModelOptions,
|
|
44
53
|
) {
|
|
45
54
|
super({}, option);
|
|
46
55
|
|
|
@@ -48,14 +57,18 @@ class ChoiceAttributeOptionModel
|
|
|
48
57
|
|
|
49
58
|
this._isSelected = selectedValues.includes(this.code);
|
|
50
59
|
|
|
51
|
-
this._referenceDate = referenceDate;
|
|
60
|
+
this._referenceDate = modelOptions?.referenceDate || DateUtil.now();
|
|
52
61
|
|
|
53
62
|
this._level = 0;
|
|
54
63
|
|
|
55
|
-
this._attributeCollection = this.createAttributeCollection();
|
|
56
|
-
this._children = this.addChildren(selectedValues, option,
|
|
64
|
+
this._attributeCollection = this.createAttributeCollection(modelOptions);
|
|
65
|
+
this._children = this.addChildren(selectedValues, option, modelOptions);
|
|
57
66
|
|
|
58
|
-
this._links = new LinkCollection(
|
|
67
|
+
this._links = new LinkCollection(
|
|
68
|
+
this.contributions._links,
|
|
69
|
+
{},
|
|
70
|
+
{ origin: modelOptions?.origin, contextPath: modelOptions?.contextPath },
|
|
71
|
+
);
|
|
59
72
|
|
|
60
73
|
this._content = new AttributeContent(option.content);
|
|
61
74
|
|
|
@@ -150,12 +163,18 @@ class ChoiceAttributeOptionModel
|
|
|
150
163
|
|
|
151
164
|
/**
|
|
152
165
|
*/
|
|
153
|
-
createAttributeCollection(
|
|
166
|
+
createAttributeCollection(
|
|
167
|
+
modelOptions?: ChoiceAttributeOptionModelOptions,
|
|
168
|
+
): AttributeCollection {
|
|
154
169
|
const contributions = this.getContribution("elementsContributions", []);
|
|
155
170
|
|
|
156
171
|
if (has(this.contributions, "elements")) {
|
|
157
172
|
const data = this.getContribution("elements", {});
|
|
158
|
-
return new AttributeCollection(data, contributions,
|
|
173
|
+
return new AttributeCollection(data, contributions, {
|
|
174
|
+
origin: modelOptions?.origin,
|
|
175
|
+
contextPath: modelOptions?.contextPath,
|
|
176
|
+
isReadonly: true,
|
|
177
|
+
});
|
|
159
178
|
}
|
|
160
179
|
|
|
161
180
|
return new AttributeCollection();
|
|
@@ -250,11 +269,11 @@ class ChoiceAttributeOptionModel
|
|
|
250
269
|
addChildren(
|
|
251
270
|
selectedValues: Array<string> = [],
|
|
252
271
|
option: Object = {},
|
|
253
|
-
|
|
272
|
+
modelOptions?: ChoiceAttributeOptionModelOptions,
|
|
254
273
|
): ChoiceAttributeOptionCollection {
|
|
255
274
|
// When contributions contain elements this is a list not nested options
|
|
256
275
|
if (has(option, "elements")) {
|
|
257
|
-
return new ChoiceAttributeOptionCollection();
|
|
276
|
+
return new ChoiceAttributeOptionCollection(modelOptions);
|
|
258
277
|
}
|
|
259
278
|
|
|
260
279
|
return ChoiceAttributeOptionCollection.create(
|
|
@@ -262,7 +281,7 @@ class ChoiceAttributeOptionModel
|
|
|
262
281
|
value: selectedValues,
|
|
263
282
|
},
|
|
264
283
|
{ options: option?.children ?? [] },
|
|
265
|
-
|
|
284
|
+
modelOptions,
|
|
266
285
|
);
|
|
267
286
|
}
|
|
268
287
|
|