@beinformed/ui 1.65.13 → 1.65.15
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 +15 -0
- package/esm/hooks/useList.js +3 -1
- package/esm/hooks/useList.js.flow +11 -4
- package/esm/hooks/useList.js.map +1 -1
- package/esm/hooks/useModularUI.js +21 -26
- package/esm/hooks/useModularUI.js.flow +28 -34
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIBasic.js +8 -39
- package/esm/hooks/useModularUIBasic.js.flow +6 -42
- package/esm/hooks/useModularUIBasic.js.map +1 -1
- package/lib/hooks/useList.js +3 -1
- package/lib/hooks/useList.js.map +1 -1
- package/lib/hooks/useModularUI.js +20 -25
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIBasic.js +9 -39
- package/lib/hooks/useModularUIBasic.js.map +1 -1
- package/package.json +2 -3
- package/src/builder/__tests__/LayoutHintConfig.json +0 -20
- package/src/builder/__tests__/mergeLayoutHintConfigurations.spec.js +0 -71
- package/src/builder/__tests__/subdir/LayoutHintConfig.json +0 -20
- package/src/builder/index.js +0 -2
- package/src/builder/mergeLayoutHintConfigurations.js +0 -62
- package/src/constants/Constants.js +0 -196
- package/src/constants/LayoutHintConfig.js +0 -186
- package/src/constants/LayoutHints.js +0 -134
- package/src/constants/Settings.js +0 -267
- package/src/constants/index.js +0 -4
- package/src/exceptions/ConfigurationException.js +0 -13
- package/src/exceptions/FetchException.js +0 -101
- package/src/exceptions/IllegalArgumentException.js +0 -12
- package/src/exceptions/IllegalReturnException.js +0 -11
- package/src/exceptions/IllegalStateException.js +0 -12
- package/src/exceptions/JsonParseException.js +0 -12
- package/src/exceptions/MissingPropertyException.js +0 -13
- package/src/exceptions/NetworkException.js +0 -20
- package/src/exceptions/NotAllowedUriException.js +0 -12
- package/src/exceptions/NotFoundException.js +0 -20
- package/src/exceptions/ServerRequestException.js +0 -12
- package/src/exceptions/ThemePropertyException.js +0 -12
- package/src/exceptions/TimeoutException.js +0 -13
- package/src/exceptions/UnauthorizedException.js +0 -26
- package/src/exceptions/UnsupportedOperationException.js +0 -12
- package/src/exceptions/index.js +0 -16
- package/src/hooks/__tests__/UseModularUIModel.spec.js +0 -194
- package/src/hooks/__tests__/useAuthentication.spec.js +0 -166
- package/src/hooks/__tests__/useForm.spec.js +0 -300
- package/src/hooks/__tests__/useI18n.spec.js +0 -30
- package/src/hooks/__tests__/useModal.spec.js +0 -67
- package/src/hooks/__tests__/useModelCatalog.spec.js +0 -180
- package/src/hooks/__tests__/useModels.spec.js +0 -138
- package/src/hooks/__tests__/useModularUIBasic.spec.js +0 -126
- package/src/hooks/__tests__/useNotification.spec.js +0 -47
- package/src/hooks/__tests__/usePreference.spec.js +0 -72
- package/src/hooks/__tests__/useProgressIndicator.spec.js +0 -67
- package/src/hooks/index.js +0 -21
- package/src/hooks/useAllFormsOnModel.js +0 -92
- package/src/hooks/useAuthentication.js +0 -113
- package/src/hooks/useContent.js +0 -48
- package/src/hooks/useDeepCompareEffect.js +0 -50
- package/src/hooks/useForm.js +0 -156
- package/src/hooks/useI18n.js +0 -46
- package/src/hooks/useList.js +0 -221
- package/src/hooks/useLookup.js +0 -82
- package/src/hooks/useModal.js +0 -46
- package/src/hooks/useModelCatalog.js +0 -256
- package/src/hooks/useModels.js +0 -50
- package/src/hooks/useModularUI.js +0 -79
- package/src/hooks/useModularUIBasic.js +0 -152
- package/src/hooks/useModularUIKey.js +0 -14
- package/src/hooks/useModularUIModel.js +0 -86
- package/src/hooks/useModularUIRequest.js +0 -25
- package/src/hooks/useNotification.js +0 -48
- package/src/hooks/usePanel.js +0 -79
- package/src/hooks/usePreference.js +0 -27
- package/src/hooks/useProgressIndicator.js +0 -50
- package/src/hooks/useRouter.js +0 -70
- package/src/hooks/useSearch.js +0 -31
- package/src/i18n/Locale.js +0 -157
- package/src/i18n/Locales.js +0 -171
- package/src/i18n/Message.js +0 -66
- package/src/i18n/__tests__/Locale.spec.js +0 -108
- package/src/i18n/__tests__/Locales.spec.js +0 -137
- package/src/i18n/index.js +0 -12
- package/src/i18n/languages.js +0 -207
- package/src/i18n/translations/beinformed_error_messages_en.nl.js +0 -98
- package/src/i18n/translations/beinformed_error_messages_nl.nl.js +0 -98
- package/src/i18n/types.js +0 -23
- package/src/i18n/withMessage.js +0 -47
- package/src/index.js +0 -7
- package/src/models/__tests__/resolveModel.spec.js +0 -34
- package/src/models/actions/ActionCollection.js +0 -100
- package/src/models/actions/ActionModel.js +0 -207
- package/src/models/actions/__mock__/action.js +0 -35
- package/src/models/actions/__tests__/ActionCollection.spec.js +0 -98
- package/src/models/actions/__tests__/ActionModel.spec.js +0 -75
- package/src/models/application/ApplicationModel.js +0 -168
- package/src/models/application/__mock__/application.js +0 -14
- package/src/models/application/__mock__/contributions.json +0 -312
- package/src/models/application/__mock__/data.json +0 -263
- package/src/models/application/__tests__/Application.spec.js +0 -99
- package/src/models/application/__tests__/webapp.json +0 -42
- package/src/models/application/__tests__/webappContributions.json +0 -43
- package/src/models/attributes/AttributeCollection.js +0 -306
- package/src/models/attributes/AttributeContent.js +0 -233
- package/src/models/attributes/AttributeDataHelper.js +0 -323
- package/src/models/attributes/AttributeModel.js +0 -1021
- package/src/models/attributes/AttributeSetModel.js +0 -117
- package/src/models/attributes/BooleanAttributeModel.js +0 -319
- package/src/models/attributes/CaptchaAttributeModel.js +0 -51
- package/src/models/attributes/ChoiceAttributeModel.js +0 -520
- package/src/models/attributes/ChoiceAttributeOptionCollection.js +0 -372
- package/src/models/attributes/ChoiceAttributeOptionModel.js +0 -415
- package/src/models/attributes/CompositeAttributeChildCollection.js +0 -254
- package/src/models/attributes/CompositeAttributeModel.js +0 -439
- package/src/models/attributes/DatetimeAttributeModel.js +0 -566
- package/src/models/attributes/HelptextAttributeModel.js +0 -54
- package/src/models/attributes/LabelAttributeModel.js +0 -36
- package/src/models/attributes/MemoAttributeModel.js +0 -43
- package/src/models/attributes/MoneyAttributeModel.js +0 -45
- package/src/models/attributes/NumberAttributeModel.js +0 -255
- package/src/models/attributes/PasswordAttributeModel.js +0 -245
- package/src/models/attributes/StringAttributeModel.js +0 -314
- package/src/models/attributes/UploadAttributeModel.js +0 -261
- package/src/models/attributes/XMLAttributeModel.js +0 -51
- package/src/models/attributes/__mock__/_ActionFieldsContributions.json +0 -12
- package/src/models/attributes/__mock__/_ActionFieldsData.json +0 -7
- package/src/models/attributes/__mock__/_FormCollectionContribution.json +0 -419
- package/src/models/attributes/__mock__/_FormCollectionData.json +0 -122
- package/src/models/attributes/__mock__/_InstrumentQuestionContributions.json +0 -178
- package/src/models/attributes/__mock__/_ListAttributeContributions.json +0 -82
- package/src/models/attributes/__mock__/_ListAttributeData.json +0 -70
- package/src/models/attributes/__mock__/_ListDetailContributions.json +0 -75
- package/src/models/attributes/__mock__/_ListDetailData.json +0 -38
- package/src/models/attributes/__mock__/_TreeFormAttributeContribution.json +0 -117
- package/src/models/attributes/__mock__/_TreeFormAttributeData.json +0 -27
- package/src/models/attributes/__mock__/form.contributions.json +0 -410
- package/src/models/attributes/__mock__/form.data.json +0 -113
- package/src/models/attributes/__mock__/form.js +0 -6
- package/src/models/attributes/__mock__/list.contributions.json +0 -110
- package/src/models/attributes/__mock__/list.data.json +0 -84
- package/src/models/attributes/__mock__/list.js +0 -6
- package/src/models/attributes/__tests__/AttributeCollection.spec.js +0 -160
- package/src/models/attributes/__tests__/AttributeCollectionComposite.spec.js +0 -146
- package/src/models/attributes/__tests__/AttributeContent.spec.js +0 -225
- package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +0 -634
- package/src/models/attributes/__tests__/AttributeModel.spec.js +0 -274
- package/src/models/attributes/__tests__/AttributeSetModel.spec.js +0 -39
- package/src/models/attributes/__tests__/BooleanAttributeModel.spec.js +0 -107
- package/src/models/attributes/__tests__/CaptchaAttributeModel.spec.js +0 -13
- package/src/models/attributes/__tests__/ChoiceAttributeModel.spec.js +0 -750
- package/src/models/attributes/__tests__/ChoiceAttributeOptionCollection.spec.js +0 -507
- package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +0 -107
- package/src/models/attributes/__tests__/CompositeAttributeModel.spec.js +0 -467
- package/src/models/attributes/__tests__/DateAttributeModel.spec.js +0 -134
- package/src/models/attributes/__tests__/DatetimeAttributeModel.spec.js +0 -206
- package/src/models/attributes/__tests__/DatetimeAttributeModel_offset.spec.js +0 -345
- package/src/models/attributes/__tests__/HelptextAttributeModel.spec.js +0 -64
- package/src/models/attributes/__tests__/LabelAttributeModel.spec.js +0 -13
- package/src/models/attributes/__tests__/LookupAttributeModel.spec.js +0 -47
- package/src/models/attributes/__tests__/MemoAttributeModel.spec.js +0 -28
- package/src/models/attributes/__tests__/MoneyAttributeModel.spec.js +0 -22
- package/src/models/attributes/__tests__/NumberAttributeModel.spec.js +0 -67
- package/src/models/attributes/__tests__/PasswordAttributeModel.spec.js +0 -49
- package/src/models/attributes/__tests__/StringAttributeModel.spec.js +0 -125
- package/src/models/attributes/__tests__/TimeAttributeModel.spec.js +0 -57
- package/src/models/attributes/__tests__/TimestampModel.spec.js +0 -43
- package/src/models/attributes/__tests__/UploadAttributeModel.spec.js +0 -67
- package/src/models/attributes/__tests__/XMLAttributeModel.spec.js +0 -17
- package/src/models/attributes/__tests__/_createAttribute.spec.js +0 -106
- package/src/models/attributes/__tests__/createAttributeComposite.spec.js +0 -151
- package/src/models/attributes/__tests__/createAttributeDynamicSchema.spec.js +0 -134
- package/src/models/attributes/_createAttribute.js +0 -147
- package/src/models/attributes/input-constraints/BSNConstraint.js +0 -80
- package/src/models/attributes/input-constraints/ConstraintCollection.js +0 -65
- package/src/models/attributes/input-constraints/ConstraintModel.js +0 -76
- package/src/models/attributes/input-constraints/DateBoundaryConstraint.js +0 -240
- package/src/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +0 -72
- package/src/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +0 -72
- package/src/models/attributes/input-constraints/DatetimeFormatConstraint.js +0 -132
- package/src/models/attributes/input-constraints/FileExtensionConstraint.js +0 -60
- package/src/models/attributes/input-constraints/FileSizeConstraint.js +0 -101
- package/src/models/attributes/input-constraints/IBANConstraint.js +0 -46
- package/src/models/attributes/input-constraints/MandatoryConstraint.js +0 -54
- package/src/models/attributes/input-constraints/MandatoryRangeConstraint.js +0 -84
- package/src/models/attributes/input-constraints/NumberBoundaryConstraint.js +0 -213
- package/src/models/attributes/input-constraints/NumberFormatConstraint.js +0 -153
- package/src/models/attributes/input-constraints/NumberGroupingConstraint.js +0 -140
- package/src/models/attributes/input-constraints/PasswordConfirmConstraint.js +0 -68
- package/src/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +0 -44
- package/src/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +0 -60
- package/src/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +0 -60
- package/src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +0 -72
- package/src/models/attributes/input-constraints/RangeConstraint.js +0 -161
- package/src/models/attributes/input-constraints/RegexConstraint.js +0 -72
- package/src/models/attributes/input-constraints/StringLengthConstraint.js +0 -179
- package/src/models/attributes/input-constraints/XMLConstraint.js +0 -62
- package/src/models/attributes/input-constraints/__tests__/BSNConstraint.spec.js +0 -25
- package/src/models/attributes/input-constraints/__tests__/ConstraintCollection.spec.js +0 -9
- package/src/models/attributes/input-constraints/__tests__/ConstraintModel.spec.js +0 -35
- package/src/models/attributes/input-constraints/__tests__/DateBoundaryConstraint.spec.js +0 -117
- package/src/models/attributes/input-constraints/__tests__/DateTimeDateFormatConstraint.spec.js +0 -30
- package/src/models/attributes/input-constraints/__tests__/DateTimeTimeFormatConstraint.spec.js +0 -54
- package/src/models/attributes/input-constraints/__tests__/DatetimeFormatConstraint.spec.js +0 -79
- package/src/models/attributes/input-constraints/__tests__/FileExtensionConstraint.spec.js +0 -20
- package/src/models/attributes/input-constraints/__tests__/FileSizeConstraint.spec.js +0 -53
- package/src/models/attributes/input-constraints/__tests__/IBANConstraint.spec.js +0 -12
- package/src/models/attributes/input-constraints/__tests__/MandatoryConstraint.spec.js +0 -14
- package/src/models/attributes/input-constraints/__tests__/NumberBoundaryConstraint.spec.js +0 -46
- package/src/models/attributes/input-constraints/__tests__/NumberFormatConstraint.spec.js +0 -137
- package/src/models/attributes/input-constraints/__tests__/NumberGroupingConstraint.spec.js +0 -85
- package/src/models/attributes/input-constraints/__tests__/PasswordConfirmConstraint.spec.js +0 -21
- package/src/models/attributes/input-constraints/__tests__/PasswordLowerAndUpperCaseConstraint.spec.js +0 -14
- package/src/models/attributes/input-constraints/__tests__/PasswordMinNumericCharactersConstraint.spec.js +0 -11
- package/src/models/attributes/input-constraints/__tests__/PasswordMinSpecialCharactersConstraint.spec.js +0 -11
- package/src/models/attributes/input-constraints/__tests__/PasswordThreeConsecutiveCharactersNotAllowedConstraint.spec.js +0 -22
- package/src/models/attributes/input-constraints/__tests__/RegexConstraint.spec.js +0 -42
- package/src/models/attributes/input-constraints/__tests__/StringLengthConstraint.spec.js +0 -102
- package/src/models/attributes/input-constraints/__tests__/XMLConstraint.spec.js +0 -15
- package/src/models/attributes/layouthint-rules/BaseLayoutHintRule.js +0 -74
- package/src/models/attributes/layouthint-rules/DependentAttribute.js +0 -246
- package/src/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +0 -101
- package/src/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +0 -67
- package/src/models/attributes/layouthint-rules/__mock__/MockedCollectionFactory.js +0 -54
- package/src/models/attributes/layouthint-rules/__tests__/BaseLayoutHintRule.spec.js +0 -29
- package/src/models/attributes/layouthint-rules/__tests__/DependentAttribute.spec.js +0 -310
- package/src/models/attributes/layouthint-rules/__tests__/LayoutHintRuleCollection.spec.js +0 -58
- package/src/models/attributes/layouthint-rules/__tests__/RemainingTotalUploadSize.spec.js +0 -24
- package/src/models/base/BaseCollection.js +0 -191
- package/src/models/base/BaseModel.js +0 -155
- package/src/models/base/ResourceCollection.js +0 -42
- package/src/models/base/ResourceModel.js +0 -246
- package/src/models/base/__tests__/BaseCollection.spec.js +0 -108
- package/src/models/base/__tests__/BaseModel.spec.js +0 -85
- package/src/models/base/__tests__/ResourceCollection.spec.js +0 -51
- package/src/models/base/__tests__/ResourceModel.spec.js +0 -100
- package/src/models/base/__tests__/webapp.json +0 -52
- package/src/models/caseview/CaseViewModel.js +0 -188
- package/src/models/caseview/__mock__/caseview.js +0 -14
- package/src/models/caseview/__mock__/contributions.json +0 -146
- package/src/models/caseview/__mock__/data.json +0 -21
- package/src/models/caseview/__tests__/CaseViewModel.spec.js +0 -132
- package/src/models/caseview/__tests__/caseview.json +0 -49
- package/src/models/caseview/__tests__/caseviewContributions.json +0 -118
- package/src/models/caseview/__tests__/caseview_local_taskgroup.json +0 -57
- package/src/models/concepts/BusinessScenarioModel.js +0 -176
- package/src/models/concepts/ConceptDetailModel.js +0 -349
- package/src/models/concepts/ConceptIndexModel.js +0 -186
- package/src/models/concepts/ConceptLinkModel.js +0 -208
- package/src/models/concepts/ConceptRelationCollection.js +0 -95
- package/src/models/concepts/ConceptRelationModel.js +0 -129
- package/src/models/concepts/ConceptTypeDetailModel.js +0 -128
- package/src/models/concepts/SourceReferenceCollection.js +0 -40
- package/src/models/concepts/SourceReferenceModel.js +0 -126
- package/src/models/concepts/__mock__/business_scenario.js +0 -26
- package/src/models/concepts/__mock__/business_scenario_data.json +0 -234
- package/src/models/concepts/__mock__/business_scenario_step.json +0 -64
- package/src/models/concepts/__mock__/conceptdetail.js +0 -27
- package/src/models/concepts/__mock__/conceptdetail_contributions.json +0 -156
- package/src/models/concepts/__mock__/conceptdetail_data.json +0 -164
- package/src/models/concepts/__mock__/conceptindex.js +0 -15
- package/src/models/concepts/__mock__/conceptindex_contributions.json +0 -86
- package/src/models/concepts/__mock__/conceptindex_data.json +0 -329
- package/src/models/concepts/__mock__/concepttype.js +0 -13
- package/src/models/concepts/__mock__/concepttype_Calculation.json +0 -75
- package/src/models/concepts/__mock__/concepttype_contributions.json +0 -139
- package/src/models/concepts/__mock__/concepttype_data.json +0 -32
- package/src/models/concepts/__mock__/concepttype_hierarchy.js +0 -13
- package/src/models/concepts/__mock__/concepttype_hierarchy.json +0 -32
- package/src/models/concepts/__mock__/related_concepts.js +0 -12
- package/src/models/concepts/__mock__/related_concepts_contributions.json +0 -41
- package/src/models/concepts/__mock__/related_concepts_data.json +0 -2408
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.js +0 -27
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.json +0 -67
- package/src/models/concepts/__tests__/BusinessScenarioModel.spec.js +0 -28
- package/src/models/concepts/__tests__/ConceptDetailModel.spec.js +0 -65
- package/src/models/concepts/__tests__/ConceptIndexModel.spec.js +0 -42
- package/src/models/concepts/__tests__/ConceptLinkModel.spec.js +0 -9
- package/src/models/concepts/__tests__/ConceptRelationCollection.spec.js +0 -9
- package/src/models/concepts/__tests__/ConceptRelationModel.spec.js +0 -53
- package/src/models/concepts/__tests__/ConceptTypeDetailModel.spec.js +0 -31
- package/src/models/concepts/__tests__/RelatedConcepts.spec.js +0 -58
- package/src/models/concepts/__tests__/SourceReferenceCollection.spec.js +0 -9
- package/src/models/concepts/__tests__/SourceReferenceModel.spec.js +0 -108
- package/src/models/content/ContentIndexModel.js +0 -165
- package/src/models/content/ContentLinkModel.js +0 -308
- package/src/models/content/ContentModel.js +0 -227
- package/src/models/content/ContentTOCModel.js +0 -237
- package/src/models/content/ContentTypeModel.js +0 -71
- package/src/models/content/SectionModel.js +0 -236
- package/src/models/content/SubSectionModel.js +0 -181
- package/src/models/content/__tests__/ContentIndexModel.spec.js +0 -40
- package/src/models/content/__tests__/ContentLinkModel.spec.js +0 -129
- package/src/models/content/__tests__/ContentModel.spec.js +0 -241
- package/src/models/content/__tests__/Formalsource.spec.js +0 -133
- package/src/models/content/__tests__/content-index-contributions.json +0 -50
- package/src/models/content/__tests__/content-index.json +0 -164
- package/src/models/content/__tests__/content-with-childsections.json +0 -105
- package/src/models/content/__tests__/content-with-sections.json +0 -105
- package/src/models/content/__tests__/content-with-subsections.json +0 -119
- package/src/models/content/__tests__/content-with-subsections2.json +0 -79
- package/src/models/content/__tests__/content.json +0 -31
- package/src/models/content/__tests__/contributions.json +0 -84
- package/src/models/content/__tests__/formalsource-complete.json +0 -235
- package/src/models/content/__tests__/formalsource-contributions.json +0 -110
- package/src/models/content/__tests__/formalsource-section-contributions.json +0 -84
- package/src/models/content/__tests__/formalsource-section.json +0 -60
- package/src/models/content/__tests__/formalsource-toc.json +0 -122
- package/src/models/contentconfiguration/ContentConfiguration.js +0 -70
- package/src/models/contentconfiguration/ContentConfigurationElements.js +0 -152
- package/src/models/contentconfiguration/ContentConfigurationEndResults.js +0 -45
- package/src/models/contentconfiguration/ContentConfigurationQuestions.js +0 -60
- package/src/models/contentconfiguration/ContentConfigurationResults.js +0 -105
- package/src/models/contentconfiguration/__tests__/ContentConfigurationElements.spec.js +0 -29
- package/src/models/contentconfiguration/__tests__/ContentConfigurationResults.spec.js +0 -101
- package/src/models/detail/DetailModel.js +0 -241
- package/src/models/detail/__tests__/DetailModel.spec.js +0 -41
- package/src/models/detail/__tests__/detail.json +0 -37
- package/src/models/detail/__tests__/detailContributions.json +0 -124
- package/src/models/error/ErrorCollection.js +0 -127
- package/src/models/error/ErrorModel.js +0 -83
- package/src/models/error/ErrorResponse.js +0 -343
- package/src/models/error/__tests__/ErrorCollection.spec.js +0 -41
- package/src/models/error/__tests__/ErrorModel.spec.js +0 -24
- package/src/models/filters/AssignmentFilterModel.js +0 -218
- package/src/models/filters/BaseFilterModel.js +0 -146
- package/src/models/filters/ConceptIndexFilterModel.js +0 -43
- package/src/models/filters/FilterCollection.js +0 -227
- package/src/models/filters/FilterModel.js +0 -151
- package/src/models/filters/RangeFilterModel.js +0 -36
- package/src/models/filters/StringFilterModel.js +0 -167
- package/src/models/filters/__tests__/AssignmentFilterModel.spec.js +0 -140
- package/src/models/filters/__tests__/FilterCollection.spec.js +0 -68
- package/src/models/filters/__tests__/FilterModel.spec.js +0 -65
- package/src/models/filters/__tests__/RangeFilterModel.spec.js +0 -55
- package/src/models/filters/__tests__/ZipcodeFilter.spec.js +0 -145
- package/src/models/filters/__tests__/filters.json +0 -91
- package/src/models/filters/__tests__/filtersContributions.json +0 -110
- package/src/models/form/FormModel.js +0 -1280
- package/src/models/form/FormObjectModel.js +0 -590
- package/src/models/form/__mock__/contributions.json +0 -525
- package/src/models/form/__mock__/data.json +0 -78
- package/src/models/form/__mock__/form.js +0 -17
- package/src/models/form/__tests__/FormContributions.json +0 -495
- package/src/models/form/__tests__/FormContributionsUnknownRepeat.json +0 -67
- package/src/models/form/__tests__/FormInstrumentContributions.json +0 -183
- package/src/models/form/__tests__/FormModel.getters.spec.js +0 -149
- package/src/models/form/__tests__/FormModel.instrument.spec.js +0 -202
- package/src/models/form/__tests__/FormModel.repeating.spec.js +0 -65
- package/src/models/form/__tests__/FormModel.selfhref.spec.js +0 -84
- package/src/models/form/__tests__/FormModel.spec.js +0 -752
- package/src/models/form/__tests__/FormModel.unknown-repeat.spec.js +0 -52
- package/src/models/form/__tests__/FormObjectModel.spec.js +0 -180
- package/src/models/form/__tests__/FormResultData.spec.js +0 -86
- package/src/models/form/__tests__/FormValidation.spec.js +0 -79
- package/src/models/form/__tests__/FormValidationContributions.json +0 -45
- package/src/models/form/__tests__/FormValidationDataInitial.json +0 -33
- package/src/models/form/__tests__/FormValidationDataUpdate1.json +0 -25
- package/src/models/form/__tests__/FormValidationDataUpdate2.json +0 -33
- package/src/models/form/__tests__/FormWithContent.spec.js +0 -71
- package/src/models/form/__tests__/FormWithContentContributions.json +0 -242
- package/src/models/form/__tests__/FormWithContentData.json +0 -244
- package/src/models/grouping/GroupingModel.js +0 -232
- package/src/models/grouping/__tests__/GroupingModel.spec.js +0 -80
- package/src/models/href/Href.js +0 -592
- package/src/models/href/ListHref.js +0 -161
- package/src/models/href/__tests__/Href.spec.js +0 -184
- package/src/models/href/__tests__/ListHref.spec.js +0 -61
- package/src/models/href/__tests__/list.json +0 -2417
- package/src/models/href/__tests__/listContributions.json +0 -330
- package/src/models/index.js +0 -177
- package/src/models/layouthint/LayoutHintCollection.js +0 -116
- package/src/models/layouthint/__tests__/LayoutHintCollection.spec.js +0 -89
- package/src/models/links/LinkCollection.js +0 -169
- package/src/models/links/LinkModel.js +0 -246
- package/src/models/links/__tests__/LinkCollection.spec.js +0 -426
- package/src/models/links/__tests__/LinkModel.spec.js +0 -103
- package/src/models/links/__tests__/normalizeLinkJSON.spec.js +0 -212
- package/src/models/links/normalizeLinkJSON.js +0 -121
- package/src/models/list/ListDetailModel.js +0 -332
- package/src/models/list/ListHeaderModel.js +0 -96
- package/src/models/list/ListItemCollection.js +0 -80
- package/src/models/list/ListItemModel.js +0 -111
- package/src/models/list/ListModel.js +0 -485
- package/src/models/list/__mock__/caselist.contributions.json +0 -372
- package/src/models/list/__mock__/caselist.data.json +0 -519
- package/src/models/list/__mock__/caselist.js +0 -14
- package/src/models/list/__tests__/ListDetailModel.hierarchy.spec.js +0 -88
- package/src/models/list/__tests__/ListDetailModel.spec.js +0 -96
- package/src/models/list/__tests__/ListItemCollection.spec.js +0 -22
- package/src/models/list/__tests__/ListModel.spec.js +0 -152
- package/src/models/list/__tests__/ListResultDetail.spec.js +0 -37
- package/src/models/list/__tests__/caselist-34.contributions.json +0 -146
- package/src/models/list/__tests__/caselist-34.data.json +0 -21
- package/src/models/list/__tests__/hierarchy.json +0 -185
- package/src/models/list/__tests__/hierarchyContributions.json +0 -582
- package/src/models/list/__tests__/instrument-detail-contributions.json +0 -761
- package/src/models/list/__tests__/instrument-detail-data.json +0 -66
- package/src/models/list/__tests__/list.json +0 -2426
- package/src/models/list/__tests__/listContributions.json +0 -349
- package/src/models/list/__tests__/related-contributions.json +0 -42
- package/src/models/list/__tests__/related-data.json +0 -32
- package/src/models/lookup/LookupOptionCollection.js +0 -54
- package/src/models/lookup/LookupOptionsModel.js +0 -81
- package/src/models/lookup/__tests__/LookupOptionCollection.spec.js +0 -80
- package/src/models/lookup/__tests__/LookupOptionsModel.spec.js +0 -82
- package/src/models/lookup/__tests__/_LookupOptionsContributions.json +0 -29
- package/src/models/lookup/__tests__/_LookupOptionsData.json +0 -34
- package/src/models/lookup/__tests__/_LookupOptionsListContributions.json +0 -129
- package/src/models/lookup/__tests__/_LookupOptionsListData.json +0 -134
- package/src/models/lookup/__tests__/_TaxonomyAttributeData.json +0 -42
- package/src/models/modelcatalog/ModelCatalogModel.js +0 -73
- package/src/models/modelcatalog/ModelCategoryCollection.js +0 -22
- package/src/models/modelcatalog/ModelCategoryModel.js +0 -63
- package/src/models/modelcatalog/__mock__/contributions.json +0 -6
- package/src/models/modelcatalog/__mock__/data.json +0 -29
- package/src/models/modelcatalog/__mock__/modelcatalog.js +0 -14
- package/src/models/modelcatalog/__tests__/ModelCatalogModel.spec.js +0 -49
- package/src/models/paging/PagesizeModel.js +0 -50
- package/src/models/paging/PagingModel.js +0 -105
- package/src/models/paging/__tests__/PageSizeModel.spec.js +0 -31
- package/src/models/paging/__tests__/PagingModel.spec.js +0 -40
- package/src/models/paging/__tests__/list.json +0 -8
- package/src/models/paging/__tests__/listContributions.json +0 -7
- package/src/models/panels/GroupingPanelModel.js +0 -164
- package/src/models/panels/__tests__/GroupingPanelModel.spec.js +0 -142
- package/src/models/panels/__tests__/groupingPanel.json +0 -49
- package/src/models/panels/__tests__/groupingPanelContributions.json +0 -59
- package/src/models/parameter/Parameter.js +0 -117
- package/src/models/parameter/__tests__/Parameter.spec.js +0 -125
- package/src/models/process/ProcessStatusSettingsModel.js +0 -88
- package/src/models/process/__tests__/ProcessStatusSettingsModel.spec.js +0 -52
- package/src/models/resolveModel.js +0 -92
- package/src/models/search/CaseSearchModel.js +0 -46
- package/src/models/search/__tests__/CaseSearchModel.spec.js +0 -10
- package/src/models/sorting/SortOptionModel.js +0 -114
- package/src/models/sorting/SortingModel.js +0 -140
- package/src/models/sorting/__tests__/SortingModel.spec.js +0 -96
- package/src/models/tab/TabModel.js +0 -160
- package/src/models/tab/__mock__/contributions.json +0 -77
- package/src/models/tab/__mock__/data.json +0 -20
- package/src/models/tab/__mock__/personContributions.json +0 -35
- package/src/models/tab/__mock__/personData.json +0 -21
- package/src/models/tab/__mock__/tab.js +0 -14
- package/src/models/tab/__mock__/tabPerson.js +0 -14
- package/src/models/tab/__tests__/TabModel.spec.js +0 -72
- package/src/models/tab/__tests__/tab.json +0 -37
- package/src/models/tab/__tests__/tabContributions.json +0 -39
- package/src/models/taskgroup/TaskGroupCollection.js +0 -16
- package/src/models/taskgroup/TaskGroupModel.js +0 -102
- package/src/models/taskgroup/__mock__/contributions.json +0 -18
- package/src/models/taskgroup/__mock__/data.json +0 -21
- package/src/models/taskgroup/__mock__/taskgroup.js +0 -14
- package/src/models/taskgroup/__tests__/TaskGroupModel.spec.js +0 -26
- package/src/models/taskgroup/__tests__/taskgroup.json +0 -25
- package/src/models/taskgroup/__tests__/taskgroupContributions.json +0 -23
- package/src/models/types.js +0 -291
- package/src/models/user/UserModel.js +0 -57
- package/src/models/user/UserProfileModel.js +0 -54
- package/src/models/user/UserServicesModel.js +0 -136
- package/src/models/user/__mock__/contributions.json +0 -148
- package/src/models/user/__mock__/data.json +0 -22
- package/src/models/user/__tests__/UserModel.spec.js +0 -43
- package/src/models/user/__tests__/UserProfileModel.spec.js +0 -45
- package/src/models/user/__tests__/UserServicesModel.spec.js +0 -55
- package/src/modularui/Authenticate.js +0 -217
- package/src/modularui/CaptchaRequest.js +0 -104
- package/src/modularui/ModularUIError.js +0 -25
- package/src/modularui/ModularUIRequest.js +0 -872
- package/src/modularui/ModularUIResponse.js +0 -160
- package/src/modularui/UploadRequest.js +0 -151
- package/src/modularui/__tests__/CustomContextPath.spec.js +0 -61
- package/src/modularui/__tests__/ModularUIError.spec.js +0 -22
- package/src/modularui/__tests__/ModularUIRequest.spec.js +0 -495
- package/src/modularui/__tests__/contributions.json +0 -312
- package/src/modularui/__tests__/data.json +0 -263
- package/src/modularui/index.js +0 -6
- package/src/modularui/types.js +0 -4
- package/src/react/ErrorBoundary.js +0 -61
- package/src/react/ErrorBoundaryFallback.js +0 -46
- package/src/react/index.js +0 -3
- package/src/react/utils.js +0 -33
- package/src/react-client/Init.js +0 -46
- package/src/react-client/client.js +0 -309
- package/src/react-client/contextPath.js +0 -30
- package/src/react-client/index.js +0 -4
- package/src/react-client/rehydrate.js +0 -94
- package/src/react-server/__tests__/htmlpage.spec.js +0 -75
- package/src/react-server/__tests__/requestInformation.spec.js +0 -266
- package/src/react-server/__tests__/serverUtil.spec.js +0 -183
- package/src/react-server/contextPath.js +0 -8
- package/src/react-server/createSSRComplete.js +0 -63
- package/src/react-server/htmlpage.js +0 -55
- package/src/react-server/index.js +0 -13
- package/src/react-server/renderSSRComplete.js +0 -111
- package/src/react-server/renderSSRMinimal.js +0 -54
- package/src/react-server/requestInformation.js +0 -68
- package/src/react-server/serverNoSSR.js +0 -87
- package/src/react-server/serverSSR.js +0 -70
- package/src/react-server/serverUtil.js +0 -279
- package/src/react-theme/ThemeProvider.js +0 -25
- package/src/react-theme/__tests__/ThemeProvider.spec.js +0 -84
- package/src/react-theme/__tests__/createTheme.spec.js +0 -172
- package/src/react-theme/createTheme.js +0 -118
- package/src/react-theme/index.js +0 -15
- package/src/react-theme/types.js +0 -16
- package/src/react-theme/useTheme.js +0 -13
- package/src/react-theme/utils/__tests__/background.spec.js +0 -30
- package/src/react-theme/utils/__tests__/colors.spec.js +0 -30
- package/src/react-theme/utils/__tests__/contrast.spec.js +0 -44
- package/src/react-theme/utils/__tests__/corners.spec.js +0 -27
- package/src/react-theme/utils/__tests__/spacers.spec.js +0 -44
- package/src/react-theme/utils/__tests__/themeProps.spec.js +0 -72
- package/src/react-theme/utils/background.js +0 -20
- package/src/react-theme/utils/colors.js +0 -47
- package/src/react-theme/utils/contrast.js +0 -117
- package/src/react-theme/utils/corners.js +0 -37
- package/src/react-theme/utils/spacers.js +0 -65
- package/src/react-theme/utils/themeProps.js +0 -90
- package/src/redux/_i18n/I18nActions.js +0 -38
- package/src/redux/_i18n/I18nReducer.js +0 -91
- package/src/redux/_i18n/__tests__/actions.spec.js +0 -37
- package/src/redux/_i18n/__tests__/reducer.spec.js +0 -29
- package/src/redux/_i18n/index.js +0 -6
- package/src/redux/_i18n/types.js +0 -20
- package/src/redux/_modularui/ModularUIActions.js +0 -227
- package/src/redux/_modularui/ModularUIConnector.js +0 -157
- package/src/redux/_modularui/ModularUIMiddleware.js +0 -182
- package/src/redux/_modularui/ModularUIReducer.js +0 -169
- package/src/redux/_modularui/ModularUISelectors.js +0 -322
- package/src/redux/_modularui/ModularUIUtils.js +0 -96
- package/src/redux/_modularui/__tests__/actions.spec.js +0 -159
- package/src/redux/_modularui/__tests__/reducer.spec.js +0 -134
- package/src/redux/_modularui/__tests__/selectors.spec.js +0 -153
- package/src/redux/_modularui/index.js +0 -11
- package/src/redux/_modularui/types.js +0 -121
- package/src/redux/_modularui/withModularUI.js +0 -85
- package/src/redux/_router/RouterActions.js +0 -75
- package/src/redux/_router/RouterConnectors.js +0 -97
- package/src/redux/_router/RouterMiddleware.js +0 -37
- package/src/redux/_router/RouterReducer.js +0 -21
- package/src/redux/_router/__tests__/actions.spec.js +0 -109
- package/src/redux/_router/__tests__/hooks.spec.js +0 -98
- package/src/redux/_router/__tests__/middleware.spec.js +0 -62
- package/src/redux/_router/__tests__/reducer.spec.js +0 -26
- package/src/redux/_router/index.js +0 -8
- package/src/redux/_router/types.js +0 -43
- package/src/redux/actions/Application.js +0 -45
- package/src/redux/actions/Authorization.js +0 -65
- package/src/redux/actions/Error.js +0 -95
- package/src/redux/actions/Form.js +0 -42
- package/src/redux/actions/FormAttributeSet.js +0 -98
- package/src/redux/actions/FormAttributeSetRepeatable.js +0 -45
- package/src/redux/actions/FormAutosave.js +0 -73
- package/src/redux/actions/FormAutosubmit.js +0 -43
- package/src/redux/actions/FormAutoupdate.js +0 -47
- package/src/redux/actions/FormValidations.js +0 -71
- package/src/redux/actions/Modals.js +0 -16
- package/src/redux/actions/ModelCatalog.js +0 -12
- package/src/redux/actions/Notification.js +0 -101
- package/src/redux/actions/Preferences.js +0 -173
- package/src/redux/actions/ProgressIndicator.js +0 -39
- package/src/redux/actions/SignIn.js +0 -102
- package/src/redux/actions/SignOut.js +0 -29
- package/src/redux/actions/__tests__/Application.spec.js +0 -52
- package/src/redux/actions/__tests__/Authorization.spec.js +0 -121
- package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +0 -72
- package/src/redux/actions/__tests__/Error-server.spec.js +0 -134
- package/src/redux/actions/__tests__/Error.spec.js +0 -116
- package/src/redux/actions/__tests__/Form.spec.js +0 -39
- package/src/redux/actions/__tests__/Modals.spec.js +0 -34
- package/src/redux/actions/__tests__/Notification.spec.js +0 -94
- package/src/redux/actions/__tests__/Preferences.spec.js +0 -71
- package/src/redux/actions/__tests__/ProgressIndicator.spec.js +0 -53
- package/src/redux/actions/index.js +0 -17
- package/src/redux/connectors/Application.js +0 -14
- package/src/redux/connectors/Breadcrumb.js +0 -28
- package/src/redux/connectors/CaseView.js +0 -14
- package/src/redux/connectors/ConceptDetail.js +0 -12
- package/src/redux/connectors/ContentBrowser.js +0 -14
- package/src/redux/connectors/ContentDetail.js +0 -13
- package/src/redux/connectors/ContentDetailSection.js +0 -17
- package/src/redux/connectors/Form.js +0 -83
- package/src/redux/connectors/FormAttributeSet.js +0 -85
- package/src/redux/connectors/ListDetail.js +0 -16
- package/src/redux/connectors/Modal.js +0 -47
- package/src/redux/connectors/ModelCatalog.js +0 -14
- package/src/redux/connectors/Notification.js +0 -47
- package/src/redux/connectors/PanelRenderer.js +0 -29
- package/src/redux/connectors/Preferences.js +0 -53
- package/src/redux/connectors/Progress.js +0 -35
- package/src/redux/connectors/ProgressIndicator.js +0 -35
- package/src/redux/connectors/QuickSearch.js +0 -36
- package/src/redux/connectors/SignIn.js +0 -47
- package/src/redux/connectors/SignOut.js +0 -38
- package/src/redux/connectors/Tab.js +0 -14
- package/src/redux/connectors/index.js +0 -22
- package/src/redux/index.js +0 -27
- package/src/redux/reducers/AuthReducer.js +0 -56
- package/src/redux/reducers/ErrorReducer.js +0 -22
- package/src/redux/reducers/ModalsReducer.js +0 -58
- package/src/redux/reducers/ModelCatalogReducer.js +0 -34
- package/src/redux/reducers/NotificationReducer.js +0 -45
- package/src/redux/reducers/PreferencesReducer.js +0 -31
- package/src/redux/reducers/ProgressIndicatorReducer.js +0 -60
- package/src/redux/reducers/__tests__/AuthReducer.spec.js +0 -95
- package/src/redux/reducers/__tests__/ErrorReducer.spec.js +0 -17
- package/src/redux/reducers/__tests__/ModalsReducer.spec.js +0 -34
- package/src/redux/reducers/__tests__/ModelCatalogReducer.spec.js +0 -23
- package/src/redux/reducers/__tests__/NotificationReducer.spec.js +0 -53
- package/src/redux/reducers/__tests__/PreferencesReducer.spec.js +0 -31
- package/src/redux/reducers/__tests__/ProgressIndicatorReducer.spec.js +0 -82
- package/src/redux/reducers/createReducer.js +0 -55
- package/src/redux/reducers/index.js +0 -10
- package/src/redux/selectors/i18n.js +0 -15
- package/src/redux/selectors/index.js +0 -3
- package/src/redux/selectors/modelcatalog.js +0 -11
- package/src/redux/store/__tests__/beforeRenderHooks.spec.js +0 -13
- package/src/redux/store/beforeRenderHooks.js +0 -26
- package/src/redux/store/configureStore.js +0 -59
- package/src/redux/types.js +0 -241
- package/src/utils/browser/Cache.js +0 -157
- package/src/utils/browser/Cookies.js +0 -44
- package/src/utils/browser/__tests__/Cookies.spec.js +0 -51
- package/src/utils/datetime/DateTimeUtil.js +0 -858
- package/src/utils/datetime/__tests__/DateTime.spec.js +0 -873
- package/src/utils/datetime/__tests__/DateTimeFormat.spec.js +0 -146
- package/src/utils/fetch/__mocks__/applicationContributions.json +0 -323
- package/src/utils/fetch/__mocks__/applicationData.json +0 -216
- package/src/utils/fetch/__mocks__/formContributions.json +0 -527
- package/src/utils/fetch/__mocks__/formData.json +0 -21
- package/src/utils/fetch/__mocks__/universalFetch.js +0 -38
- package/src/utils/fetch/__tests__/xhr.spec.js +0 -281
- package/src/utils/fetch/serverFetch.js +0 -33
- package/src/utils/fetch/types.js +0 -46
- package/src/utils/fetch/universalFetch.js +0 -106
- package/src/utils/fetch/xhr.js +0 -409
- package/src/utils/helpers/__tests__/checkResource.spec.js +0 -60
- package/src/utils/helpers/__tests__/createHash.spec.js +0 -11
- package/src/utils/helpers/__tests__/createHref.spec.js +0 -39
- package/src/utils/helpers/__tests__/objects.spec.js +0 -50
- package/src/utils/helpers/__tests__/sanitizeHTML.spec.js +0 -69
- package/src/utils/helpers/checkResource.js +0 -43
- package/src/utils/helpers/createHash.js +0 -28
- package/src/utils/helpers/createHref.js +0 -117
- package/src/utils/helpers/createUUID.js +0 -13
- package/src/utils/helpers/index.js +0 -9
- package/src/utils/helpers/objects.js +0 -33
- package/src/utils/helpers/repositoryResource.js +0 -22
- package/src/utils/helpers/sanitizeHtml.js +0 -55
- package/src/utils/helpers/text.js +0 -23
- package/src/utils/index.js +0 -22
- package/src/utils/number/DecimalFormat.js +0 -410
- package/src/utils/number/__tests__/formatValue.spec.js +0 -36
- package/src/utils/number/__tests__/parseNumbers.spec.js +0 -50
- package/src/utils/number/formatValue.js +0 -60
- package/src/utils/number/parseNumbers.js +0 -94
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [1.65.15](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.14...v1.65.15) (2026-01-15)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **hooks:** simplify reload logic for hooks and update hook option merge logic ([bfa5f86](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/bfa5f86b2921b59bed989808d55f7fa4430d5ce2))
|
|
11
|
+
* **useList:** ensure pathname is included in navigation calls when syncing location ([7da9f3c](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/7da9f3ced54d640df365fb03527add1f959078b1))
|
|
12
|
+
|
|
13
|
+
## [1.65.14](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.13...v1.65.14) (2026-01-13)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **types:** update `updateFilters` to support `FilterCollection | IFilter` ([d37e3a1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/d37e3a1b0d43d22bcea59490f347537e4de1aeba))
|
|
19
|
+
|
|
5
20
|
## [1.65.13](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.10...v1.65.13) (2026-01-13)
|
|
6
21
|
|
|
7
22
|
|
package/esm/hooks/useList.js
CHANGED
|
@@ -57,6 +57,7 @@ export const useListNavigation = ({
|
|
|
57
57
|
if (list.requestMethod === HTTP_METHODS.POST) {
|
|
58
58
|
if (syncLocation) {
|
|
59
59
|
navigate({
|
|
60
|
+
pathname: listHref.path,
|
|
60
61
|
search: listHref.getQuerystring(true),
|
|
61
62
|
state: {
|
|
62
63
|
formdata: list.formdata
|
|
@@ -71,6 +72,7 @@ export const useListNavigation = ({
|
|
|
71
72
|
} else {
|
|
72
73
|
if (syncLocation) {
|
|
73
74
|
navigate({
|
|
75
|
+
pathname: listHref.path,
|
|
74
76
|
search: listHref.getQuerystring(true)
|
|
75
77
|
});
|
|
76
78
|
}
|
|
@@ -88,7 +90,7 @@ export const useListNavigation = ({
|
|
|
88
90
|
if (attribute) {
|
|
89
91
|
filter.update(attribute, value);
|
|
90
92
|
} else if (filter instanceof AssignmentFilterModel) {
|
|
91
|
-
throw new
|
|
93
|
+
throw new TypeError("AssignmentFilterModel needs the attribute argument to be able to update the filter");
|
|
92
94
|
} else if (filter instanceof FilterModel) {
|
|
93
95
|
filter.update(filter.attribute, value);
|
|
94
96
|
}
|
|
@@ -23,7 +23,10 @@ import { useCallback, useMemo } from "react";
|
|
|
23
23
|
|
|
24
24
|
type ListNavigationHook = {
|
|
25
25
|
update: (list: ListModel, resetPage?: boolean) => void,
|
|
26
|
-
updateFilters: (
|
|
26
|
+
updateFilters: (
|
|
27
|
+
list: ListModel,
|
|
28
|
+
filters: FilterCollection | Array<IFilter>,
|
|
29
|
+
) => void,
|
|
27
30
|
updateFilter: (
|
|
28
31
|
list: ListModel,
|
|
29
32
|
filter: IFilter,
|
|
@@ -100,6 +103,7 @@ export const useListNavigation = ({
|
|
|
100
103
|
if (list.requestMethod === HTTP_METHODS.POST) {
|
|
101
104
|
if (syncLocation) {
|
|
102
105
|
navigate({
|
|
106
|
+
pathname: listHref.path,
|
|
103
107
|
search: listHref.getQuerystring(true),
|
|
104
108
|
state: { formdata: list.formdata },
|
|
105
109
|
});
|
|
@@ -114,7 +118,10 @@ export const useListNavigation = ({
|
|
|
114
118
|
);
|
|
115
119
|
} else {
|
|
116
120
|
if (syncLocation) {
|
|
117
|
-
navigate({
|
|
121
|
+
navigate({
|
|
122
|
+
pathname: listHref.path,
|
|
123
|
+
search: listHref.getQuerystring(true),
|
|
124
|
+
});
|
|
118
125
|
}
|
|
119
126
|
dispatch(
|
|
120
127
|
loadModularUI(list.connectKey, listHref, {
|
|
@@ -145,8 +152,8 @@ export const useListNavigation = ({
|
|
|
145
152
|
if (attribute) {
|
|
146
153
|
filter.update(attribute, value);
|
|
147
154
|
} else if (filter instanceof AssignmentFilterModel) {
|
|
148
|
-
throw new
|
|
149
|
-
"
|
|
155
|
+
throw new TypeError(
|
|
156
|
+
"AssignmentFilterModel needs the attribute argument to be able to update the filter",
|
|
150
157
|
);
|
|
151
158
|
} else if (filter instanceof FilterModel) {
|
|
152
159
|
filter.update(filter.attribute, value);
|
package/esm/hooks/useList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useList.js","names":["useDispatch","useModularUIBasic","HTTP_METHODS","loadModularUI","useNavigation","DetailModel","ListModel","CaseSearchModel","ListDetailModel","Href","FilterCollection","AssignmentFilterModel","FilterModel","useCallback","useMemo","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","dispatch","navigate","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","search","getQuerystring","state","formdata","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","Error","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (list: ListModel, filters: FilterCollection) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({ search: listHref.getQuerystring(true) });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new Error(\n \"Need the attribute to update for AssigmentFilterModel\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useList.js","names":["useDispatch","useModularUIBasic","HTTP_METHODS","loadModularUI","useNavigation","DetailModel","ListModel","CaseSearchModel","ListDetailModel","Href","FilterCollection","AssignmentFilterModel","FilterModel","useCallback","useMemo","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","dispatch","navigate","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","pathname","path","search","getQuerystring","state","formdata","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","TypeError","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (\n list: ListModel,\n filters: FilterCollection | Array<IFilter>,\n ) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new TypeError(\n \"AssignmentFilterModel needs the attribute argument to be able to update the filter\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEffect,
|
|
1
|
+
import { useEffect, useMemo } from "react";
|
|
2
2
|
import { useDispatch, useSelector } from "react-redux";
|
|
3
3
|
import { useLocation } from "react-router";
|
|
4
4
|
import { HTTP_METHODS } from "../constants";
|
|
@@ -9,45 +9,40 @@ import Href from "../models/href/Href";
|
|
|
9
9
|
/**
|
|
10
10
|
* Core hook to retrieve information for a Be Informed modular ui resource
|
|
11
11
|
*/
|
|
12
|
-
export const useModularUI = (modelKey, url, options = {
|
|
13
|
-
method: HTTP_METHODS.GET,
|
|
14
|
-
removeOnUnmount: false
|
|
15
|
-
}) => {
|
|
12
|
+
export const useModularUI = (modelKey, url, options = {}) => {
|
|
16
13
|
const dispatch = useDispatch();
|
|
17
14
|
const href = useMemo(() => url?.toString() || "", [url]);
|
|
18
15
|
const key = useModularUIKey(modelKey, href);
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
16
|
+
const model = useSelector(state => state.modularui[key]);
|
|
17
|
+
const requestOptions = useMemo(() => {
|
|
18
|
+
const merged = {
|
|
19
|
+
method: HTTP_METHODS.GET,
|
|
20
|
+
removeOnUnmount: false,
|
|
21
|
+
...options
|
|
22
|
+
};
|
|
23
|
+
if (url instanceof Href) {
|
|
24
|
+
merged.origin = merged.origin ?? url.origin;
|
|
25
|
+
merged.contextPath = merged.contextPath ?? url.contextPath;
|
|
26
|
+
}
|
|
27
|
+
return merged;
|
|
28
|
+
}, [options, url]);
|
|
25
29
|
const location = useLocation();
|
|
26
30
|
const redirectLocation = location.state?.redirectLocation;
|
|
27
|
-
const
|
|
28
|
-
const prevOptions = useRef(options);
|
|
29
|
-
const prevHref = useRef(href);
|
|
30
|
-
const prevForceLoad = useRef(forceLoad);
|
|
31
|
+
const shouldLoad = model == null || (redirectLocation instanceof Href ? redirectLocation?.equals(href) : false) || requestOptions.isReload === true;
|
|
31
32
|
|
|
32
33
|
// dispatch loadModularUI
|
|
33
34
|
useDeepCompareEffect(() => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const doForceLoad = forceLoad && !prevForceLoad.current;
|
|
37
|
-
if (href !== "" && (doForceLoad || !isOldReload)) {
|
|
38
|
-
dispatch(loadModularUI(key, href, options));
|
|
35
|
+
if (href !== "" && shouldLoad) {
|
|
36
|
+
dispatch(loadModularUI(key, href, requestOptions));
|
|
39
37
|
}
|
|
40
|
-
|
|
41
|
-
prevHref.current = href;
|
|
42
|
-
prevForceLoad.current = forceLoad;
|
|
43
|
-
}, [key, href, options, forceLoad]);
|
|
38
|
+
}, [key, href, requestOptions, shouldLoad]);
|
|
44
39
|
useEffect(() => {
|
|
45
|
-
if (
|
|
40
|
+
if (requestOptions.removeOnUnmount) {
|
|
46
41
|
return () => {
|
|
47
42
|
dispatch(removeModelByKey(key));
|
|
48
43
|
};
|
|
49
44
|
}
|
|
50
|
-
}, [dispatch, key,
|
|
45
|
+
}, [dispatch, key, requestOptions.removeOnUnmount]);
|
|
51
46
|
return model;
|
|
52
47
|
};
|
|
53
48
|
//# sourceMappingURL=useModularUI.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import { useEffect,
|
|
2
|
+
import { useEffect, useMemo } from "react";
|
|
3
3
|
import { useDispatch, useSelector } from "react-redux";
|
|
4
4
|
import { useLocation } from "react-router";
|
|
5
5
|
|
|
@@ -21,59 +21,53 @@ import type { RequestModularUIOptions } from "../utils";
|
|
|
21
21
|
export const useModularUI = (
|
|
22
22
|
modelKey: string,
|
|
23
23
|
url: string | Href,
|
|
24
|
-
options: RequestModularUIOptions = {
|
|
25
|
-
method: HTTP_METHODS.GET,
|
|
26
|
-
removeOnUnmount: false,
|
|
27
|
-
},
|
|
24
|
+
options: RequestModularUIOptions = {},
|
|
28
25
|
): any => {
|
|
29
26
|
const dispatch = useDispatch();
|
|
27
|
+
|
|
30
28
|
const href = useMemo(() => url?.toString() || "", [url]);
|
|
31
29
|
const key = useModularUIKey(modelKey, href);
|
|
32
30
|
|
|
33
|
-
const
|
|
34
|
-
|
|
31
|
+
const model = useSelector((state) => state.modularui[key]);
|
|
32
|
+
|
|
33
|
+
const requestOptions = useMemo(() => {
|
|
34
|
+
const merged = {
|
|
35
|
+
method: HTTP_METHODS.GET,
|
|
36
|
+
removeOnUnmount: false,
|
|
37
|
+
...options,
|
|
38
|
+
};
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
if (url instanceof Href) {
|
|
41
|
+
merged.origin = merged.origin ?? url.origin;
|
|
42
|
+
merged.contextPath = merged.contextPath ?? url.contextPath;
|
|
43
|
+
}
|
|
44
|
+
return merged;
|
|
45
|
+
}, [options, url]);
|
|
40
46
|
|
|
41
47
|
const location = useLocation();
|
|
42
48
|
const redirectLocation = location.state?.redirectLocation;
|
|
43
|
-
const forceLoad =
|
|
44
|
-
model == null ||
|
|
45
|
-
(redirectLocation instanceof Href ? redirectLocation?.equals(href) : false);
|
|
46
49
|
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
const shouldLoad =
|
|
51
|
+
model == null ||
|
|
52
|
+
(redirectLocation instanceof Href
|
|
53
|
+
? redirectLocation?.equals(href)
|
|
54
|
+
: false) ||
|
|
55
|
+
requestOptions.isReload === true;
|
|
50
56
|
|
|
51
57
|
// dispatch loadModularUI
|
|
52
58
|
useDeepCompareEffect(() => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
prevHref.current === href &&
|
|
56
|
-
prevOptions.current.isReload &&
|
|
57
|
-
!options.isReload;
|
|
58
|
-
|
|
59
|
-
const doForceLoad = forceLoad && !prevForceLoad.current;
|
|
60
|
-
|
|
61
|
-
if (href !== "" && (doForceLoad || !isOldReload)) {
|
|
62
|
-
dispatch(loadModularUI(key, href, options));
|
|
59
|
+
if (href !== "" && shouldLoad) {
|
|
60
|
+
dispatch(loadModularUI(key, href, requestOptions));
|
|
63
61
|
}
|
|
64
|
-
|
|
65
|
-
prevOptions.current = options;
|
|
66
|
-
prevHref.current = href;
|
|
67
|
-
prevForceLoad.current = forceLoad;
|
|
68
|
-
}, [key, href, options, forceLoad]);
|
|
62
|
+
}, [key, href, requestOptions, shouldLoad]);
|
|
69
63
|
|
|
70
64
|
useEffect(() => {
|
|
71
|
-
if (
|
|
65
|
+
if (requestOptions.removeOnUnmount) {
|
|
72
66
|
return () => {
|
|
73
67
|
dispatch(removeModelByKey(key));
|
|
74
68
|
};
|
|
75
69
|
}
|
|
76
|
-
}, [dispatch, key,
|
|
70
|
+
}, [dispatch, key, requestOptions.removeOnUnmount]);
|
|
77
71
|
|
|
78
72
|
return model;
|
|
79
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModularUI.js","names":["useEffect","
|
|
1
|
+
{"version":3,"file":"useModularUI.js","names":["useEffect","useMemo","useDispatch","useSelector","useLocation","HTTP_METHODS","loadModularUI","removeModelByKey","useDeepCompareEffect","useModularUIKey","Href","useModularUI","modelKey","url","options","dispatch","href","toString","key","model","state","modularui","requestOptions","merged","method","GET","removeOnUnmount","origin","contextPath","location","redirectLocation","shouldLoad","equals","isReload"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\nimport { useModularUIKey } from \"./useModularUIKey\";\n\nimport Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n * Core hook to retrieve information for a Be Informed modular ui resource\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {},\n): any => {\n const dispatch = useDispatch();\n\n const href = useMemo(() => url?.toString() || \"\", [url]);\n const key = useModularUIKey(modelKey, href);\n\n const model = useSelector((state) => state.modularui[key]);\n\n const requestOptions = useMemo(() => {\n const merged = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n ...options,\n };\n\n if (url instanceof Href) {\n merged.origin = merged.origin ?? url.origin;\n merged.contextPath = merged.contextPath ?? url.contextPath;\n }\n return merged;\n }, [options, url]);\n\n const location = useLocation();\n const redirectLocation = location.state?.redirectLocation;\n\n const shouldLoad =\n model == null ||\n (redirectLocation instanceof Href\n ? redirectLocation?.equals(href)\n : false) ||\n requestOptions.isReload === true;\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n if (href !== \"\" && shouldLoad) {\n dispatch(loadModularUI(key, href, requestOptions));\n }\n }, [key, href, requestOptions, shouldLoad]);\n\n useEffect(() => {\n if (requestOptions.removeOnUnmount) {\n return () => {\n dispatch(removeModelByKey(key));\n };\n }\n }, [dispatch, key, requestOptions.removeOnUnmount]);\n\n return model;\n};\n"],"mappings":"AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC1C,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AACtD,SAASC,WAAW,QAAQ,cAAc;AAE1C,SAASC,YAAY,QAAQ,cAAc;AAC3C,SACEC,aAAa,EACbC,gBAAgB,QACX,sCAAsC;AAE7C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,OAAOC,IAAI,MAAM,qBAAqB;AAGtC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,QAAgB,EAChBC,GAAkB,EAClBC,OAAgC,GAAG,CAAC,CAAC,KAC7B;EACR,MAAMC,QAAQ,GAAGb,WAAW,CAAC,CAAC;EAE9B,MAAMc,IAAI,GAAGf,OAAO,CAAC,MAAMY,GAAG,EAAEI,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAACJ,GAAG,CAAC,CAAC;EACxD,MAAMK,GAAG,GAAGT,eAAe,CAACG,QAAQ,EAAEI,IAAI,CAAC;EAE3C,MAAMG,KAAK,GAAGhB,WAAW,CAAEiB,KAAK,IAAKA,KAAK,CAACC,SAAS,CAACH,GAAG,CAAC,CAAC;EAE1D,MAAMI,cAAc,GAAGrB,OAAO,CAAC,MAAM;IACnC,MAAMsB,MAAM,GAAG;MACbC,MAAM,EAAEnB,YAAY,CAACoB,GAAG;MACxBC,eAAe,EAAE,KAAK;MACtB,GAAGZ;IACL,CAAC;IAED,IAAID,GAAG,YAAYH,IAAI,EAAE;MACvBa,MAAM,CAACI,MAAM,GAAGJ,MAAM,CAACI,MAAM,IAAId,GAAG,CAACc,MAAM;MAC3CJ,MAAM,CAACK,WAAW,GAAGL,MAAM,CAACK,WAAW,IAAIf,GAAG,CAACe,WAAW;IAC5D;IACA,OAAOL,MAAM;EACf,CAAC,EAAE,CAACT,OAAO,EAAED,GAAG,CAAC,CAAC;EAElB,MAAMgB,QAAQ,GAAGzB,WAAW,CAAC,CAAC;EAC9B,MAAM0B,gBAAgB,GAAGD,QAAQ,CAACT,KAAK,EAAEU,gBAAgB;EAEzD,MAAMC,UAAU,GACdZ,KAAK,IAAI,IAAI,KACZW,gBAAgB,YAAYpB,IAAI,GAC7BoB,gBAAgB,EAAEE,MAAM,CAAChB,IAAI,CAAC,GAC9B,KAAK,CAAC,IACVM,cAAc,CAACW,QAAQ,KAAK,IAAI;;EAElC;EACAzB,oBAAoB,CAAC,MAAM;IACzB,IAAIQ,IAAI,KAAK,EAAE,IAAIe,UAAU,EAAE;MAC7BhB,QAAQ,CAACT,aAAa,CAACY,GAAG,EAAEF,IAAI,EAAEM,cAAc,CAAC,CAAC;IACpD;EACF,CAAC,EAAE,CAACJ,GAAG,EAAEF,IAAI,EAAEM,cAAc,EAAES,UAAU,CAAC,CAAC;EAE3C/B,SAAS,CAAC,MAAM;IACd,IAAIsB,cAAc,CAACI,eAAe,EAAE;MAClC,OAAO,MAAM;QACXX,QAAQ,CAACR,gBAAgB,CAACW,GAAG,CAAC,CAAC;MACjC,CAAC;IACH;EACF,CAAC,EAAE,CAACH,QAAQ,EAAEG,GAAG,EAAEI,cAAc,CAACI,eAAe,CAAC,CAAC;EAEnD,OAAOP,KAAK;AACd,CAAC","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
|
|
1
2
|
import { useLocation } from "react-router";
|
|
2
3
|
import { useSelector } from "react-redux";
|
|
3
4
|
import { useMemo } from "react";
|
|
@@ -7,48 +8,24 @@ import { useModularUIKey } from "./useModularUIKey";
|
|
|
7
8
|
// Helper to create useModularUI options
|
|
8
9
|
const createUseModularUIOptions = (options, href, mustReload) => {
|
|
9
10
|
const baseOptions = {
|
|
10
|
-
|
|
11
|
-
forceTargetModel: undefined,
|
|
12
|
-
isReload: false,
|
|
13
|
-
origin: undefined,
|
|
14
|
-
contextPath: undefined,
|
|
15
|
-
cache: false,
|
|
16
|
-
removeOnUnmount: false,
|
|
11
|
+
expectedModels: [],
|
|
17
12
|
method: HTTP_METHODS.GET,
|
|
18
|
-
data: undefined
|
|
13
|
+
data: undefined,
|
|
14
|
+
removeOnUnmount: false,
|
|
15
|
+
...options,
|
|
16
|
+
isReload: mustReload || options.isReload
|
|
19
17
|
};
|
|
20
|
-
|
|
21
|
-
// Handle targetModel and forceTargetModel
|
|
22
|
-
if (options.targetModel) {
|
|
23
|
-
baseOptions.targetModel = options.targetModel;
|
|
24
|
-
baseOptions.forceTargetModel = options.forceTargetModel;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Handle cache option
|
|
28
|
-
if (options.cache) {
|
|
29
|
-
baseOptions.cache = options.cache;
|
|
30
|
-
}
|
|
31
|
-
if (mustReload) {
|
|
32
|
-
baseOptions.isReload = true;
|
|
33
|
-
}
|
|
34
|
-
if (options.removeOnUnmount) {
|
|
35
|
-
baseOptions.removeOnUnmount = true;
|
|
36
|
-
}
|
|
37
18
|
if (options.formdata != null) {
|
|
38
19
|
baseOptions.method = HTTP_METHODS.POST;
|
|
39
20
|
baseOptions.data = options.formdata;
|
|
40
21
|
}
|
|
41
|
-
|
|
42
|
-
// Handle origin and contextPath options
|
|
43
|
-
baseOptions.origin = options.origin ?? baseOptions.origin;
|
|
44
|
-
baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;
|
|
45
22
|
return baseOptions;
|
|
46
23
|
};
|
|
47
24
|
|
|
48
25
|
// Helper to validate the model against expectedModels
|
|
49
26
|
const validateModel = (model, expectedModels) => {
|
|
50
27
|
if (expectedModels.length > 0) {
|
|
51
|
-
const isCorrectModel = expectedModels.
|
|
28
|
+
const isCorrectModel = _includesInstanceProperty(expectedModels).call(expectedModels, model.type);
|
|
52
29
|
if (!isCorrectModel) {
|
|
53
30
|
console.warn(model, "is not of instance", expectedModels);
|
|
54
31
|
}
|
|
@@ -58,15 +35,7 @@ const validateModel = (model, expectedModels) => {
|
|
|
58
35
|
/**
|
|
59
36
|
* useModularUIBasic Hook
|
|
60
37
|
*/
|
|
61
|
-
export const useModularUIBasic = (defaultKey, href, options = {
|
|
62
|
-
expectedModels: [],
|
|
63
|
-
targetModel: undefined,
|
|
64
|
-
forceTargetModel: false,
|
|
65
|
-
origin: undefined,
|
|
66
|
-
contextPath: undefined,
|
|
67
|
-
key: undefined,
|
|
68
|
-
formdata: undefined
|
|
69
|
-
}) => {
|
|
38
|
+
export const useModularUIBasic = (defaultKey, href, options = {}) => {
|
|
70
39
|
const memoizedHref = useMemo(() => href.toString(), [href]);
|
|
71
40
|
const key = options.key ?? defaultKey;
|
|
72
41
|
const mustReload = useReload(key, memoizedHref);
|
|
@@ -36,54 +36,26 @@ const createUseModularUIOptions = <T: ModularUIModel>(
|
|
|
36
36
|
mustReload: boolean,
|
|
37
37
|
): Object => {
|
|
38
38
|
const baseOptions = {
|
|
39
|
-
|
|
40
|
-
forceTargetModel: undefined,
|
|
41
|
-
isReload: false,
|
|
42
|
-
origin: undefined,
|
|
43
|
-
contextPath: undefined,
|
|
44
|
-
cache: false,
|
|
45
|
-
removeOnUnmount: false,
|
|
39
|
+
expectedModels: [],
|
|
46
40
|
method: HTTP_METHODS.GET,
|
|
47
41
|
data: undefined,
|
|
42
|
+
removeOnUnmount: false,
|
|
43
|
+
...options,
|
|
44
|
+
isReload: mustReload || options.isReload,
|
|
48
45
|
};
|
|
49
46
|
|
|
50
|
-
// Handle targetModel and forceTargetModel
|
|
51
|
-
if (options.targetModel) {
|
|
52
|
-
baseOptions.targetModel = options.targetModel;
|
|
53
|
-
baseOptions.forceTargetModel = options.forceTargetModel;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Handle cache option
|
|
57
|
-
if (options.cache) {
|
|
58
|
-
baseOptions.cache = options.cache;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (mustReload) {
|
|
62
|
-
baseOptions.isReload = true;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (options.removeOnUnmount) {
|
|
66
|
-
baseOptions.removeOnUnmount = true;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
47
|
if (options.formdata != null) {
|
|
70
48
|
baseOptions.method = HTTP_METHODS.POST;
|
|
71
49
|
baseOptions.data = options.formdata;
|
|
72
50
|
}
|
|
73
51
|
|
|
74
|
-
// Handle origin and contextPath options
|
|
75
|
-
baseOptions.origin = options.origin ?? baseOptions.origin;
|
|
76
|
-
baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;
|
|
77
|
-
|
|
78
52
|
return baseOptions;
|
|
79
53
|
};
|
|
80
54
|
|
|
81
55
|
// Helper to validate the model against expectedModels
|
|
82
56
|
const validateModel = (model: any, expectedModels: Array<string>) => {
|
|
83
57
|
if (expectedModels.length > 0) {
|
|
84
|
-
const isCorrectModel = expectedModels.
|
|
85
|
-
(expectedModel) => model.type === expectedModel,
|
|
86
|
-
);
|
|
58
|
+
const isCorrectModel = expectedModels.includes(model.type);
|
|
87
59
|
if (!isCorrectModel) {
|
|
88
60
|
console.warn(model, "is not of instance", expectedModels);
|
|
89
61
|
}
|
|
@@ -96,15 +68,7 @@ const validateModel = (model: any, expectedModels: Array<string>) => {
|
|
|
96
68
|
export const useModularUIBasic = <T: ModularUIModel>(
|
|
97
69
|
defaultKey: string,
|
|
98
70
|
href: string | Href,
|
|
99
|
-
options: UseModularUIBasicOptions<T> = {
|
|
100
|
-
expectedModels: [],
|
|
101
|
-
targetModel: undefined,
|
|
102
|
-
forceTargetModel: false,
|
|
103
|
-
origin: undefined,
|
|
104
|
-
contextPath: undefined,
|
|
105
|
-
key: undefined,
|
|
106
|
-
formdata: undefined,
|
|
107
|
-
},
|
|
71
|
+
options: UseModularUIBasicOptions<T> = {},
|
|
108
72
|
): T | null => {
|
|
109
73
|
const memoizedHref = useMemo(() => href.toString(), [href]);
|
|
110
74
|
const key = options.key ?? defaultKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModularUIBasic.js","names":["useLocation","useSelector","useMemo","useModularUI","HTTP_METHODS","MODULARUI_STATUS","useModularUIKey","createUseModularUIOptions","options","href","mustReload","baseOptions","
|
|
1
|
+
{"version":3,"file":"useModularUIBasic.js","names":["useLocation","useSelector","useMemo","useModularUI","HTTP_METHODS","MODULARUI_STATUS","useModularUIKey","createUseModularUIOptions","options","href","mustReload","baseOptions","expectedModels","method","GET","data","undefined","removeOnUnmount","isReload","formdata","POST","validateModel","model","length","isCorrectModel","_includesInstanceProperty","call","type","console","warn","useModularUIBasic","defaultKey","memoizedHref","toString","key","useReload","modularUIOptions","modularUI","modelKey","url","location","modelEntry","state","modularui","reload","isFullyLoaded","status","FINISHED","lastModification"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport { useLocation } from \"react-router\";\nimport { useSelector } from \"react-redux\";\nimport { useMemo } from \"react\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../constants\";\nimport { useModularUIKey } from \"./useModularUIKey\";\n\nimport type { ModularUIModel, Href } from \"../models\";\nexport type HookOptions = {\n key?: string,\n origin?: string,\n contextPath?: string,\n removeOnUnmount?: boolean,\n formdata?: any,\n};\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n origin?: string,\n contextPath?: string,\n cache?: boolean,\n key?: string,\n isReload?: boolean,\n removeOnUnmount?: boolean,\n formdata?: any,\n};\n\n// Helper to create useModularUI options\nconst createUseModularUIOptions = <T: ModularUIModel>(\n options: UseModularUIBasicOptions<T>,\n href: string,\n mustReload: boolean,\n): Object => {\n const baseOptions = {\n expectedModels: [],\n method: HTTP_METHODS.GET,\n data: undefined,\n removeOnUnmount: false,\n ...options,\n isReload: mustReload || options.isReload,\n };\n\n if (options.formdata != null) {\n baseOptions.method = HTTP_METHODS.POST;\n baseOptions.data = options.formdata;\n }\n\n return baseOptions;\n};\n\n// Helper to validate the model against expectedModels\nconst validateModel = (model: any, expectedModels: Array<string>) => {\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.includes(model.type);\n if (!isCorrectModel) {\n console.warn(model, \"is not of instance\", expectedModels);\n }\n }\n};\n\n/**\n * useModularUIBasic Hook\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n defaultKey: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {},\n): T | null => {\n const memoizedHref = useMemo(() => href.toString(), [href]);\n const key = options.key ?? defaultKey;\n\n const mustReload = useReload(key, memoizedHref);\n const modularUIOptions = useMemo(\n () => createUseModularUIOptions(options, memoizedHref, mustReload),\n [options, memoizedHref, mustReload],\n );\n\n const modularUI = useModularUI(key, href, modularUIOptions);\n const expectedModels = useMemo(\n () => options.expectedModels ?? [],\n [options.expectedModels],\n );\n\n return useMemo((): T | null => {\n if (modularUI?.model) {\n validateModel(modularUI.model, expectedModels);\n return modularUI.model;\n }\n return null;\n }, [expectedModels, modularUI]);\n};\n\n/**\n * Check if the model corresponding to a modular ui service should be reloaded\n */\nexport const useReload = (modelKey: string, url: string): boolean => {\n const location = useLocation();\n const key = useModularUIKey(modelKey, url);\n const modelEntry = useSelector((state) => state.modularui[key]);\n\n if (modelEntry) {\n const reload = location.state?.reload || 0;\n if (reload > 0) {\n const isFullyLoaded = modelEntry?.status === MODULARUI_STATUS.FINISHED;\n const lastModification = modelEntry?.lastModification ?? 0;\n if (isFullyLoaded && lastModification < reload) {\n return true;\n }\n }\n }\n return false;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/lib/hooks/useList.js
CHANGED
|
@@ -67,6 +67,7 @@ const useListNavigation = ({
|
|
|
67
67
|
if (list.requestMethod === _Constants.HTTP_METHODS.POST) {
|
|
68
68
|
if (syncLocation) {
|
|
69
69
|
navigate({
|
|
70
|
+
pathname: listHref.path,
|
|
70
71
|
search: listHref.getQuerystring(true),
|
|
71
72
|
state: {
|
|
72
73
|
formdata: list.formdata
|
|
@@ -81,6 +82,7 @@ const useListNavigation = ({
|
|
|
81
82
|
} else {
|
|
82
83
|
if (syncLocation) {
|
|
83
84
|
navigate({
|
|
85
|
+
pathname: listHref.path,
|
|
84
86
|
search: listHref.getQuerystring(true)
|
|
85
87
|
});
|
|
86
88
|
}
|
|
@@ -98,7 +100,7 @@ const useListNavigation = ({
|
|
|
98
100
|
if (attribute) {
|
|
99
101
|
filter.update(attribute, value);
|
|
100
102
|
} else if (filter instanceof _AssignmentFilterModel.default) {
|
|
101
|
-
throw new
|
|
103
|
+
throw new TypeError("AssignmentFilterModel needs the attribute argument to be able to update the filter");
|
|
102
104
|
} else if (filter instanceof _FilterModel.default) {
|
|
103
105
|
filter.update(filter.attribute, value);
|
|
104
106
|
}
|
package/lib/hooks/useList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useList.js","names":["_reactRedux","require","_useModularUIBasic","_Constants","_redux","_useRouter","_DetailModel","_interopRequireDefault","_ListModel","_CaseSearchModel","_ListDetailModel","_Href","_FilterCollection","_AssignmentFilterModel","_FilterModel","_react","useList","href","options","useModularUIBasic","expectedModels","targetModel","ListModel","CaseSearchModel","exports","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","useNavigation","dispatch","useDispatch","navigate","update","useCallback","list","resetPage","listHref","selfhref","page","requestMethod","HTTP_METHODS","POST","search","getQuerystring","state","formdata","loadModularUI","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","AssignmentFilterModel","Error","FilterModel","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize","useMemo"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (list: ListModel, filters: FilterCollection) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({ search: listHref.getQuerystring(true) });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new Error(\n \"Need the attribute to update for AssigmentFilterModel\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useList.js","names":["_reactRedux","require","_useModularUIBasic","_Constants","_redux","_useRouter","_DetailModel","_interopRequireDefault","_ListModel","_CaseSearchModel","_ListDetailModel","_Href","_FilterCollection","_AssignmentFilterModel","_FilterModel","_react","useList","href","options","useModularUIBasic","expectedModels","targetModel","ListModel","CaseSearchModel","exports","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","useNavigation","dispatch","useDispatch","navigate","update","useCallback","list","resetPage","listHref","selfhref","page","requestMethod","HTTP_METHODS","POST","pathname","path","search","getQuerystring","state","formdata","loadModularUI","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","AssignmentFilterModel","TypeError","FilterModel","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize","useMemo"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (\n list: ListModel,\n filters: FilterCollection | Array<IFilter>,\n ) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new TypeError(\n \"AssignmentFilterModel needs the attribute argument to be able to update the filter\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
|