@beinformed/ui 1.62.8 → 1.63.0
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 +19 -0
- package/esm/models/attributes/__tests__/AttributeContent.spec.js.flow +1 -1
- package/esm/models/content/SectionModel.js +22 -11
- package/esm/models/content/SectionModel.js.flow +32 -19
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/content/__tests__/ContentModel.spec.js.flow +35 -0
- package/esm/models/types.js.flow +2 -1
- package/esm/models/types.js.map +1 -1
- package/esm/react-server/__tests__/requestInformation.spec.js.flow +265 -0
- package/esm/react-server/requestInformation.js +6 -3
- package/esm/react-server/requestInformation.js.flow +8 -3
- package/esm/react-server/requestInformation.js.map +1 -1
- package/lib/models/content/SectionModel.js +22 -11
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/types.js.map +1 -1
- package/lib/react-server/requestInformation.js +6 -3
- package/lib/react-server/requestInformation.js.map +1 -1
- package/package.json +3 -3
- package/src/models/attributes/__tests__/AttributeContent.spec.js +1 -1
- package/src/models/content/SectionModel.js +32 -19
- package/src/models/content/__tests__/ContentModel.spec.js +35 -0
- package/src/models/content/__tests__/content-with-sections.json +105 -0
- package/src/models/types.js +2 -1
- package/src/react-server/__tests__/requestInformation.spec.js +265 -0
- package/src/react-server/requestInformation.js +8 -3
- package/esm/builder/index.d.ts +0 -1
- package/esm/builder/mergeLayoutHintConfigurations.d.ts +0 -1
- package/esm/constants/Constants.d.ts +0 -158
- package/esm/constants/LayoutHintConfig.d.ts +0 -267
- package/esm/constants/LayoutHints.d.ts +0 -83
- package/esm/constants/Settings.d.ts +0 -33
- package/esm/constants/index.d.ts +0 -3
- package/esm/exceptions/ConfigurationException.d.ts +0 -7
- package/esm/exceptions/FetchException.d.ts +0 -31
- package/esm/exceptions/IllegalArgumentException.d.ts +0 -7
- package/esm/exceptions/IllegalReturnException.d.ts +0 -6
- package/esm/exceptions/IllegalStateException.d.ts +0 -7
- package/esm/exceptions/JsonParseException.d.ts +0 -7
- package/esm/exceptions/MissingPropertyException.d.ts +0 -7
- package/esm/exceptions/NetworkException.d.ts +0 -9
- package/esm/exceptions/NotAllowedUriException.d.ts +0 -7
- package/esm/exceptions/NotFoundException.d.ts +0 -10
- package/esm/exceptions/ServerRequestException.d.ts +0 -7
- package/esm/exceptions/ThemePropertyException.d.ts +0 -7
- package/esm/exceptions/TimeoutException.d.ts +0 -7
- package/esm/exceptions/UnauthorizedException.d.ts +0 -11
- package/esm/exceptions/UnsupportedOperationException.d.ts +0 -7
- package/esm/exceptions/index.d.ts +0 -15
- package/esm/hooks/index.d.ts +0 -16
- package/esm/hooks/useAllFormsOnModel.d.ts +0 -7
- package/esm/hooks/useAuthentication.d.ts +0 -16
- package/esm/hooks/useContent.d.ts +0 -3
- package/esm/hooks/useDeepCompareEffect.d.ts +0 -6
- package/esm/hooks/useForm.d.ts +0 -21
- package/esm/hooks/useI18n.d.ts +0 -13
- package/esm/hooks/useModal.d.ts +0 -12
- package/esm/hooks/useModelCatalog.d.ts +0 -34
- package/esm/hooks/useModels.d.ts +0 -10
- package/esm/hooks/useModularUI.d.ts +0 -3
- package/esm/hooks/useModularUIBasic.d.ts +0 -9
- package/esm/hooks/useModularUIModel.d.ts +0 -27
- package/esm/hooks/useModularUIRequest.d.ts +0 -4
- package/esm/hooks/useNotification.d.ts +0 -8
- package/esm/hooks/usePreference.d.ts +0 -2
- package/esm/hooks/useProgressIndicator.d.ts +0 -9
- package/esm/hooks/useRouter.d.ts +0 -23
- package/esm/i18n/Locale.d.ts +0 -53
- package/esm/i18n/Locales.d.ts +0 -59
- package/esm/i18n/Message.d.ts +0 -6
- package/esm/i18n/index.d.ts +0 -5
- package/esm/i18n/languages.d.ts +0 -215
- package/esm/i18n/translations/beinformed_error_messages_en.nl.d.ts +0 -97
- package/esm/i18n/translations/beinformed_error_messages_nl.nl.d.ts +0 -97
- package/esm/i18n/types.d.ts +0 -11
- package/esm/i18n/withMessage.d.ts +0 -3
- package/esm/index.d.ts +0 -6
- package/esm/models/actions/ActionCollection.d.ts +0 -30
- package/esm/models/actions/ActionModel.d.ts +0 -82
- package/esm/models/application/ApplicationModel.d.ts +0 -48
- package/esm/models/attributes/AttributeCollection.d.ts +0 -102
- package/esm/models/attributes/AttributeContent.d.ts +0 -64
- package/esm/models/attributes/AttributeDataHelper.d.ts +0 -67
- package/esm/models/attributes/AttributeModel.d.ts +0 -398
- package/esm/models/attributes/AttributeSetModel.d.ts +0 -36
- package/esm/models/attributes/BooleanAttributeModel.d.ts +0 -69
- package/esm/models/attributes/CaptchaAttributeModel.d.ts +0 -19
- package/esm/models/attributes/ChoiceAttributeModel.d.ts +0 -85
- package/esm/models/attributes/ChoiceAttributeOptionCollection.d.ts +0 -87
- package/esm/models/attributes/ChoiceAttributeOptionModel.d.ts +0 -151
- package/esm/models/attributes/CompositeAttributeChildCollection.d.ts +0 -57
- package/esm/models/attributes/CompositeAttributeModel.d.ts +0 -42
- package/esm/models/attributes/DatetimeAttributeModel.d.ts +0 -85
- package/esm/models/attributes/HelptextAttributeModel.d.ts +0 -16
- package/esm/models/attributes/LabelAttributeModel.d.ts +0 -12
- package/esm/models/attributes/MemoAttributeModel.d.ts +0 -14
- package/esm/models/attributes/MoneyAttributeModel.d.ts +0 -14
- package/esm/models/attributes/NumberAttributeModel.d.ts +0 -49
- package/esm/models/attributes/PasswordAttributeModel.d.ts +0 -62
- package/esm/models/attributes/StringAttributeModel.d.ts +0 -65
- package/esm/models/attributes/UploadAttributeModel.d.ts +0 -60
- package/esm/models/attributes/XMLAttributeModel.d.ts +0 -10
- package/esm/models/attributes/_createAttribute.d.ts +0 -7
- package/esm/models/attributes/input-constraints/BSNConstraint.d.ts +0 -26
- package/esm/models/attributes/input-constraints/ConstraintCollection.d.ts +0 -24
- package/esm/models/attributes/input-constraints/ConstraintModel.d.ts +0 -34
- package/esm/models/attributes/input-constraints/DateBoundaryConstraint.d.ts +0 -65
- package/esm/models/attributes/input-constraints/DateTimeDateFormatConstraint.d.ts +0 -36
- package/esm/models/attributes/input-constraints/DateTimeTimeFormatConstraint.d.ts +0 -36
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.d.ts +0 -50
- package/esm/models/attributes/input-constraints/FileExtensionConstraint.d.ts +0 -33
- package/esm/models/attributes/input-constraints/FileSizeConstraint.d.ts +0 -42
- package/esm/models/attributes/input-constraints/IBANConstraint.d.ts +0 -23
- package/esm/models/attributes/input-constraints/MandatoryConstraint.d.ts +0 -23
- package/esm/models/attributes/input-constraints/MandatoryRangeConstraint.d.ts +0 -36
- package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.d.ts +0 -61
- package/esm/models/attributes/input-constraints/NumberFormatConstraint.d.ts +0 -52
- package/esm/models/attributes/input-constraints/NumberGroupingConstraint.d.ts +0 -46
- package/esm/models/attributes/input-constraints/PasswordConfirmConstraint.d.ts +0 -36
- package/esm/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.d.ts +0 -23
- package/esm/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.d.ts +0 -32
- package/esm/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.d.ts +0 -32
- package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.d.ts +0 -35
- package/esm/models/attributes/input-constraints/RangeConstraint.d.ts +0 -51
- package/esm/models/attributes/input-constraints/RegexConstraint.d.ts +0 -37
- package/esm/models/attributes/input-constraints/StringLengthConstraint.d.ts +0 -46
- package/esm/models/attributes/input-constraints/XMLConstraint.d.ts +0 -26
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.d.ts +0 -45
- package/esm/models/attributes/layouthint-rules/DependentAttribute.d.ts +0 -57
- package/esm/models/attributes/layouthint-rules/LayoutHintRuleCollection.d.ts +0 -27
- package/esm/models/attributes/layouthint-rules/RemainingTotalUploadSize.d.ts +0 -17
- package/esm/models/base/BaseCollection.d.ts +0 -89
- package/esm/models/base/BaseModel.d.ts +0 -78
- package/esm/models/base/ResourceCollection.d.ts +0 -20
- package/esm/models/base/ResourceModel.d.ts +0 -102
- package/esm/models/caseview/CaseViewModel.d.ts +0 -46
- package/esm/models/concepts/BusinessScenarioModel.d.ts +0 -20
- package/esm/models/concepts/ConceptDetailModel.d.ts +0 -86
- package/esm/models/concepts/ConceptIndexModel.d.ts +0 -44
- package/esm/models/concepts/ConceptLinkModel.d.ts +0 -82
- package/esm/models/concepts/ConceptRelationCollection.d.ts +0 -36
- package/esm/models/concepts/ConceptRelationModel.d.ts +0 -61
- package/esm/models/concepts/ConceptTypeDetailModel.d.ts +0 -54
- package/esm/models/concepts/SourceReferenceCollection.d.ts +0 -14
- package/esm/models/concepts/SourceReferenceModel.d.ts +0 -48
- package/esm/models/content/ContentIndexModel.d.ts +0 -41
- package/esm/models/content/ContentLinkModel.d.ts +0 -102
- package/esm/models/content/ContentModel.d.ts +0 -80
- package/esm/models/content/ContentTOCModel.d.ts +0 -56
- package/esm/models/content/ContentTypeModel.d.ts +0 -26
- package/esm/models/content/SectionModel.d.ts +0 -79
- package/esm/models/content/SubSectionModel.d.ts +0 -69
- package/esm/models/contentconfiguration/ContentConfiguration.d.ts +0 -28
- package/esm/models/contentconfiguration/ContentConfigurationElements.d.ts +0 -47
- package/esm/models/contentconfiguration/ContentConfigurationEndResults.d.ts +0 -16
- package/esm/models/contentconfiguration/ContentConfigurationQuestions.d.ts +0 -22
- package/esm/models/contentconfiguration/ContentConfigurationResults.d.ts +0 -39
- package/esm/models/detail/DetailModel.d.ts +0 -80
- package/esm/models/error/ErrorCollection.d.ts +0 -51
- package/esm/models/error/ErrorModel.d.ts +0 -41
- package/esm/models/error/ErrorResponse.d.ts +0 -156
- package/esm/models/filters/AssignmentFilterModel.d.ts +0 -35
- package/esm/models/filters/BaseFilterModel.d.ts +0 -101
- package/esm/models/filters/ConceptIndexFilterModel.d.ts +0 -6
- package/esm/models/filters/FilterCollection.d.ts +0 -49
- package/esm/models/filters/FilterModel.d.ts +0 -5
- package/esm/models/filters/RangeFilterModel.d.ts +0 -6
- package/esm/models/filters/StringFilterModel.d.ts +0 -30
- package/esm/models/form/FormModel.d.ts +0 -350
- package/esm/models/form/FormObjectModel.d.ts +0 -210
- package/esm/models/grouping/GroupingModel.d.ts +0 -86
- package/esm/models/href/Href.d.ts +0 -218
- package/esm/models/href/ListHref.d.ts +0 -64
- package/esm/models/index.d.ts +0 -96
- package/esm/models/layouthint/LayoutHintCollection.d.ts +0 -43
- package/esm/models/links/LinkCollection.d.ts +0 -71
- package/esm/models/links/LinkModel.d.ts +0 -93
- package/esm/models/links/normalizeLinkJSON.d.ts +0 -9
- package/esm/models/list/ListDetailModel.d.ts +0 -69
- package/esm/models/list/ListHeaderModel.d.ts +0 -53
- package/esm/models/list/ListItemCollection.d.ts +0 -21
- package/esm/models/list/ListItemModel.d.ts +0 -35
- package/esm/models/list/ListModel.d.ts +0 -143
- package/esm/models/lookup/LookupOptionCollection.d.ts +0 -15
- package/esm/models/lookup/LookupOptionsModel.d.ts +0 -23
- package/esm/models/modelcatalog/ModelCatalogModel.d.ts +0 -23
- package/esm/models/modelcatalog/ModelCategoryCollection.d.ts +0 -11
- package/esm/models/modelcatalog/ModelCategoryModel.d.ts +0 -39
- package/esm/models/paging/PagesizeModel.d.ts +0 -25
- package/esm/models/paging/PagingModel.d.ts +0 -49
- package/esm/models/panels/GroupingPanelModel.d.ts +0 -49
- package/esm/models/parameter/Parameter.d.ts +0 -40
- package/esm/models/process/ProcessStatusSettingsModel.d.ts +0 -38
- package/esm/models/resolveModel.d.ts +0 -7
- package/esm/models/search/CaseSearchModel.d.ts +0 -14
- package/esm/models/sorting/SortOptionModel.d.ts +0 -48
- package/esm/models/sorting/SortingModel.d.ts +0 -42
- package/esm/models/tab/TabModel.d.ts +0 -53
- package/esm/models/taskgroup/TaskGroupCollection.d.ts +0 -12
- package/esm/models/taskgroup/TaskGroupModel.d.ts +0 -25
- package/esm/models/types.d.ts +0 -171
- package/esm/models/user/UserModel.d.ts +0 -18
- package/esm/models/user/UserProfileModel.d.ts +0 -17
- package/esm/models/user/UserServicesModel.d.ts +0 -39
- package/esm/modularui/Authenticate.d.ts +0 -46
- package/esm/modularui/CaptchaRequest.d.ts +0 -54
- package/esm/modularui/ModularUIError.d.ts +0 -10
- package/esm/modularui/ModularUIRequest.d.ts +0 -207
- package/esm/modularui/ModularUIResponse.d.ts +0 -78
- package/esm/modularui/UploadRequest.d.ts +0 -41
- package/esm/modularui/index.d.ts +0 -5
- package/esm/modularui/types.d.ts +0 -2
- package/esm/react/ErrorBoundary.d.ts +0 -31
- package/esm/react/ErrorBoundaryFallback.d.ts +0 -8
- package/esm/react/index.d.ts +0 -2
- package/esm/react/utils.d.ts +0 -5
- package/esm/react-client/Init.d.ts +0 -6
- package/esm/react-client/client.d.ts +0 -25
- package/esm/react-client/contextPath.d.ts +0 -1
- package/esm/react-client/index.d.ts +0 -3
- package/esm/react-client/rehydrate.d.ts +0 -5
- package/esm/react-server/contextPath.d.ts +0 -1
- package/esm/react-server/createSSRComplete.d.ts +0 -5
- package/esm/react-server/htmlpage.d.ts +0 -11
- package/esm/react-server/index.d.ts +0 -8
- package/esm/react-server/renderSSRComplete.d.ts +0 -13
- package/esm/react-server/renderSSRMinimal.d.ts +0 -11
- package/esm/react-server/requestInformation.d.ts +0 -6
- package/esm/react-server/serverNoSSR.d.ts +0 -15
- package/esm/react-server/serverSSR.d.ts +0 -15
- package/esm/react-server/serverUtil.d.ts +0 -46
- package/esm/react-theme/ThemeProvider.d.ts +0 -8
- package/esm/react-theme/createTheme.d.ts +0 -53
- package/esm/react-theme/index.d.ts +0 -10
- package/esm/react-theme/types.d.ts +0 -13
- package/esm/react-theme/useTheme.d.ts +0 -4
- package/esm/react-theme/utils/background.d.ts +0 -4
- package/esm/react-theme/utils/colors.d.ts +0 -9
- package/esm/react-theme/utils/contrast.d.ts +0 -18
- package/esm/react-theme/utils/corners.d.ts +0 -3
- package/esm/react-theme/utils/spacers.d.ts +0 -9
- package/esm/react-theme/utils/themeProps.d.ts +0 -7
- package/esm/redux/_i18n/I18nActions.d.ts +0 -7
- package/esm/redux/_i18n/I18nReducer.d.ts +0 -7
- package/esm/redux/_i18n/index.d.ts +0 -3
- package/esm/redux/_i18n/types.d.ts +0 -13
- package/esm/redux/_modularui/ModularUIActions.d.ts +0 -26
- package/esm/redux/_modularui/ModularUIConnector.d.ts +0 -7
- package/esm/redux/_modularui/ModularUIMiddleware.d.ts +0 -7
- package/esm/redux/_modularui/ModularUIReducer.d.ts +0 -7
- package/esm/redux/_modularui/ModularUISelectors.d.ts +0 -3
- package/esm/redux/_modularui/ModularUIUtils.d.ts +0 -5
- package/esm/redux/_modularui/index.d.ts +0 -8
- package/esm/redux/_modularui/types.d.ts +0 -84
- package/esm/redux/_modularui/withModularUI.d.ts +0 -3
- package/esm/redux/_router/RouterActions.d.ts +0 -10
- package/esm/redux/_router/RouterConnectors.d.ts +0 -6
- package/esm/redux/_router/RouterMiddleware.d.ts +0 -5
- package/esm/redux/_router/RouterReducer.d.ts +0 -7
- package/esm/redux/_router/index.d.ts +0 -5
- package/esm/redux/_router/types.d.ts +0 -35
- package/esm/redux/actions/Application.d.ts +0 -4
- package/esm/redux/actions/Authorization.d.ts +0 -3
- package/esm/redux/actions/Error.d.ts +0 -7
- package/esm/redux/actions/Form.d.ts +0 -5
- package/esm/redux/actions/FormAttributeSet.d.ts +0 -6
- package/esm/redux/actions/FormAttributeSetRepeatable.d.ts +0 -6
- package/esm/redux/actions/FormAutosave.d.ts +0 -3
- package/esm/redux/actions/FormAutosubmit.d.ts +0 -4
- package/esm/redux/actions/FormAutoupdate.d.ts +0 -4
- package/esm/redux/actions/FormValidations.d.ts +0 -3
- package/esm/redux/actions/Modals.d.ts +0 -4
- package/esm/redux/actions/ModelCatalog.d.ts +0 -2
- package/esm/redux/actions/Notification.d.ts +0 -10
- package/esm/redux/actions/Preferences.d.ts +0 -11
- package/esm/redux/actions/ProgressIndicator.d.ts +0 -8
- package/esm/redux/actions/SignIn.d.ts +0 -10
- package/esm/redux/actions/SignOut.d.ts +0 -4
- package/esm/redux/actions/index.d.ts +0 -16
- package/esm/redux/connectors/Application.d.ts +0 -4
- package/esm/redux/connectors/Breadcrumb.d.ts +0 -3
- package/esm/redux/connectors/CaseView.d.ts +0 -4
- package/esm/redux/connectors/ConceptDetail.d.ts +0 -4
- package/esm/redux/connectors/ContentBrowser.d.ts +0 -4
- package/esm/redux/connectors/ContentDetail.d.ts +0 -4
- package/esm/redux/connectors/ContentDetailSection.d.ts +0 -4
- package/esm/redux/connectors/Form.d.ts +0 -16
- package/esm/redux/connectors/FormAttributeSet.d.ts +0 -5
- package/esm/redux/connectors/ListDetail.d.ts +0 -4
- package/esm/redux/connectors/Modal.d.ts +0 -4
- package/esm/redux/connectors/ModelCatalog.d.ts +0 -4
- package/esm/redux/connectors/Notification.d.ts +0 -4
- package/esm/redux/connectors/PanelRenderer.d.ts +0 -4
- package/esm/redux/connectors/Preferences.d.ts +0 -2
- package/esm/redux/connectors/Progress.d.ts +0 -3
- package/esm/redux/connectors/ProgressIndicator.d.ts +0 -3
- package/esm/redux/connectors/QuickSearch.d.ts +0 -11
- package/esm/redux/connectors/SignIn.d.ts +0 -4
- package/esm/redux/connectors/SignOut.d.ts +0 -4
- package/esm/redux/connectors/Tab.d.ts +0 -4
- package/esm/redux/connectors/index.d.ts +0 -21
- package/esm/redux/index.d.ts +0 -9
- package/esm/redux/reducers/AuthReducer.d.ts +0 -8
- package/esm/redux/reducers/ErrorReducer.d.ts +0 -8
- package/esm/redux/reducers/ModalsReducer.d.ts +0 -8
- package/esm/redux/reducers/ModelCatalogReducer.d.ts +0 -8
- package/esm/redux/reducers/NotificationReducer.d.ts +0 -8
- package/esm/redux/reducers/PreferencesReducer.d.ts +0 -8
- package/esm/redux/reducers/ProgressIndicatorReducer.d.ts +0 -8
- package/esm/redux/reducers/createReducer.d.ts +0 -14
- package/esm/redux/reducers/index.d.ts +0 -8
- package/esm/redux/selectors/i18n.d.ts +0 -4
- package/esm/redux/selectors/index.d.ts +0 -2
- package/esm/redux/selectors/modelcatalog.d.ts +0 -2
- package/esm/redux/store/beforeRenderHooks.d.ts +0 -7
- package/esm/redux/store/configureStore.d.ts +0 -9
- package/esm/redux/types.d.ts +0 -113
- package/esm/utils/browser/Cache.d.ts +0 -45
- package/esm/utils/browser/Cookies.d.ts +0 -9
- package/esm/utils/datetime/DateTimeUtil.d.ts +0 -214
- package/esm/utils/fetch/__mocks__/universalFetch.d.ts +0 -3
- package/esm/utils/fetch/serverFetch.d.ts +0 -5
- package/esm/utils/fetch/types.d.ts +0 -44
- package/esm/utils/fetch/universalFetch.d.ts +0 -7
- package/esm/utils/fetch/xhr.d.ts +0 -5
- package/esm/utils/helpers/checkResource.d.ts +0 -3
- package/esm/utils/helpers/createHash.d.ts +0 -9
- package/esm/utils/helpers/createHref.d.ts +0 -8
- package/esm/utils/helpers/createUUID.d.ts +0 -4
- package/esm/utils/helpers/index.d.ts +0 -8
- package/esm/utils/helpers/objects.d.ts +0 -11
- package/esm/utils/helpers/repositoryResource.d.ts +0 -1
- package/esm/utils/helpers/sanitizeHtml.d.ts +0 -9
- package/esm/utils/helpers/text.d.ts +0 -7
- package/esm/utils/index.d.ts +0 -11
- package/esm/utils/number/DecimalFormat.d.ts +0 -90
- package/esm/utils/number/formatValue.d.ts +0 -4
- package/esm/utils/number/parseNumbers.d.ts +0 -9
- package/lib/builder/index.d.ts +0 -1
- package/lib/builder/mergeLayoutHintConfigurations.d.ts +0 -1
- package/lib/constants/Constants.d.ts +0 -158
- package/lib/constants/LayoutHintConfig.d.ts +0 -267
- package/lib/constants/LayoutHints.d.ts +0 -83
- package/lib/constants/Settings.d.ts +0 -33
- package/lib/constants/index.d.ts +0 -3
- package/lib/exceptions/ConfigurationException.d.ts +0 -7
- package/lib/exceptions/FetchException.d.ts +0 -31
- package/lib/exceptions/IllegalArgumentException.d.ts +0 -7
- package/lib/exceptions/IllegalReturnException.d.ts +0 -6
- package/lib/exceptions/IllegalStateException.d.ts +0 -7
- package/lib/exceptions/JsonParseException.d.ts +0 -7
- package/lib/exceptions/MissingPropertyException.d.ts +0 -7
- package/lib/exceptions/NetworkException.d.ts +0 -9
- package/lib/exceptions/NotAllowedUriException.d.ts +0 -7
- package/lib/exceptions/NotFoundException.d.ts +0 -10
- package/lib/exceptions/ServerRequestException.d.ts +0 -7
- package/lib/exceptions/ThemePropertyException.d.ts +0 -7
- package/lib/exceptions/TimeoutException.d.ts +0 -7
- package/lib/exceptions/UnauthorizedException.d.ts +0 -11
- package/lib/exceptions/UnsupportedOperationException.d.ts +0 -7
- package/lib/exceptions/index.d.ts +0 -15
- package/lib/hooks/index.d.ts +0 -16
- package/lib/hooks/useAllFormsOnModel.d.ts +0 -7
- package/lib/hooks/useAuthentication.d.ts +0 -16
- package/lib/hooks/useContent.d.ts +0 -3
- package/lib/hooks/useDeepCompareEffect.d.ts +0 -6
- package/lib/hooks/useForm.d.ts +0 -21
- package/lib/hooks/useI18n.d.ts +0 -13
- package/lib/hooks/useModal.d.ts +0 -12
- package/lib/hooks/useModelCatalog.d.ts +0 -34
- package/lib/hooks/useModels.d.ts +0 -10
- package/lib/hooks/useModularUI.d.ts +0 -3
- package/lib/hooks/useModularUIBasic.d.ts +0 -9
- package/lib/hooks/useModularUIModel.d.ts +0 -27
- package/lib/hooks/useModularUIRequest.d.ts +0 -4
- package/lib/hooks/useNotification.d.ts +0 -8
- package/lib/hooks/usePreference.d.ts +0 -2
- package/lib/hooks/useProgressIndicator.d.ts +0 -9
- package/lib/hooks/useRouter.d.ts +0 -23
- package/lib/i18n/Locale.d.ts +0 -53
- package/lib/i18n/Locales.d.ts +0 -59
- package/lib/i18n/Message.d.ts +0 -6
- package/lib/i18n/index.d.ts +0 -5
- package/lib/i18n/languages.d.ts +0 -215
- package/lib/i18n/translations/beinformed_error_messages_en.nl.d.ts +0 -97
- package/lib/i18n/translations/beinformed_error_messages_nl.nl.d.ts +0 -97
- package/lib/i18n/types.d.ts +0 -11
- package/lib/i18n/withMessage.d.ts +0 -3
- package/lib/index.d.ts +0 -6
- package/lib/models/actions/ActionCollection.d.ts +0 -30
- package/lib/models/actions/ActionModel.d.ts +0 -82
- package/lib/models/application/ApplicationModel.d.ts +0 -48
- package/lib/models/attributes/AttributeCollection.d.ts +0 -102
- package/lib/models/attributes/AttributeContent.d.ts +0 -64
- package/lib/models/attributes/AttributeDataHelper.d.ts +0 -67
- package/lib/models/attributes/AttributeModel.d.ts +0 -398
- package/lib/models/attributes/AttributeSetModel.d.ts +0 -36
- package/lib/models/attributes/BooleanAttributeModel.d.ts +0 -69
- package/lib/models/attributes/CaptchaAttributeModel.d.ts +0 -19
- package/lib/models/attributes/ChoiceAttributeModel.d.ts +0 -85
- package/lib/models/attributes/ChoiceAttributeOptionCollection.d.ts +0 -87
- package/lib/models/attributes/ChoiceAttributeOptionModel.d.ts +0 -151
- package/lib/models/attributes/CompositeAttributeChildCollection.d.ts +0 -57
- package/lib/models/attributes/CompositeAttributeModel.d.ts +0 -42
- package/lib/models/attributes/DatetimeAttributeModel.d.ts +0 -85
- package/lib/models/attributes/HelptextAttributeModel.d.ts +0 -16
- package/lib/models/attributes/LabelAttributeModel.d.ts +0 -12
- package/lib/models/attributes/MemoAttributeModel.d.ts +0 -14
- package/lib/models/attributes/MoneyAttributeModel.d.ts +0 -14
- package/lib/models/attributes/NumberAttributeModel.d.ts +0 -49
- package/lib/models/attributes/PasswordAttributeModel.d.ts +0 -62
- package/lib/models/attributes/StringAttributeModel.d.ts +0 -65
- package/lib/models/attributes/UploadAttributeModel.d.ts +0 -60
- package/lib/models/attributes/XMLAttributeModel.d.ts +0 -10
- package/lib/models/attributes/_createAttribute.d.ts +0 -7
- package/lib/models/attributes/input-constraints/BSNConstraint.d.ts +0 -26
- package/lib/models/attributes/input-constraints/ConstraintCollection.d.ts +0 -24
- package/lib/models/attributes/input-constraints/ConstraintModel.d.ts +0 -34
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.d.ts +0 -65
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.d.ts +0 -36
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.d.ts +0 -36
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.d.ts +0 -50
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.d.ts +0 -33
- package/lib/models/attributes/input-constraints/FileSizeConstraint.d.ts +0 -42
- package/lib/models/attributes/input-constraints/IBANConstraint.d.ts +0 -23
- package/lib/models/attributes/input-constraints/MandatoryConstraint.d.ts +0 -23
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.d.ts +0 -36
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.d.ts +0 -61
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.d.ts +0 -52
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.d.ts +0 -46
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.d.ts +0 -36
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.d.ts +0 -23
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.d.ts +0 -32
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.d.ts +0 -32
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.d.ts +0 -35
- package/lib/models/attributes/input-constraints/RangeConstraint.d.ts +0 -51
- package/lib/models/attributes/input-constraints/RegexConstraint.d.ts +0 -37
- package/lib/models/attributes/input-constraints/StringLengthConstraint.d.ts +0 -46
- package/lib/models/attributes/input-constraints/XMLConstraint.d.ts +0 -26
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.d.ts +0 -45
- package/lib/models/attributes/layouthint-rules/DependentAttribute.d.ts +0 -57
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.d.ts +0 -27
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.d.ts +0 -17
- package/lib/models/base/BaseCollection.d.ts +0 -89
- package/lib/models/base/BaseModel.d.ts +0 -78
- package/lib/models/base/ResourceCollection.d.ts +0 -20
- package/lib/models/base/ResourceModel.d.ts +0 -102
- package/lib/models/caseview/CaseViewModel.d.ts +0 -46
- package/lib/models/concepts/BusinessScenarioModel.d.ts +0 -20
- package/lib/models/concepts/ConceptDetailModel.d.ts +0 -86
- package/lib/models/concepts/ConceptIndexModel.d.ts +0 -44
- package/lib/models/concepts/ConceptLinkModel.d.ts +0 -82
- package/lib/models/concepts/ConceptRelationCollection.d.ts +0 -36
- package/lib/models/concepts/ConceptRelationModel.d.ts +0 -61
- package/lib/models/concepts/ConceptTypeDetailModel.d.ts +0 -54
- package/lib/models/concepts/SourceReferenceCollection.d.ts +0 -14
- package/lib/models/concepts/SourceReferenceModel.d.ts +0 -48
- package/lib/models/content/ContentIndexModel.d.ts +0 -41
- package/lib/models/content/ContentLinkModel.d.ts +0 -102
- package/lib/models/content/ContentModel.d.ts +0 -80
- package/lib/models/content/ContentTOCModel.d.ts +0 -56
- package/lib/models/content/ContentTypeModel.d.ts +0 -26
- package/lib/models/content/SectionModel.d.ts +0 -79
- package/lib/models/content/SubSectionModel.d.ts +0 -69
- package/lib/models/contentconfiguration/ContentConfiguration.d.ts +0 -28
- package/lib/models/contentconfiguration/ContentConfigurationElements.d.ts +0 -47
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.d.ts +0 -16
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.d.ts +0 -22
- package/lib/models/contentconfiguration/ContentConfigurationResults.d.ts +0 -39
- package/lib/models/detail/DetailModel.d.ts +0 -80
- package/lib/models/error/ErrorCollection.d.ts +0 -51
- package/lib/models/error/ErrorModel.d.ts +0 -41
- package/lib/models/error/ErrorResponse.d.ts +0 -156
- package/lib/models/filters/AssignmentFilterModel.d.ts +0 -35
- package/lib/models/filters/BaseFilterModel.d.ts +0 -101
- package/lib/models/filters/ConceptIndexFilterModel.d.ts +0 -6
- package/lib/models/filters/FilterCollection.d.ts +0 -49
- package/lib/models/filters/FilterModel.d.ts +0 -5
- package/lib/models/filters/RangeFilterModel.d.ts +0 -6
- package/lib/models/filters/StringFilterModel.d.ts +0 -30
- package/lib/models/form/FormModel.d.ts +0 -350
- package/lib/models/form/FormObjectModel.d.ts +0 -210
- package/lib/models/grouping/GroupingModel.d.ts +0 -86
- package/lib/models/href/Href.d.ts +0 -218
- package/lib/models/href/ListHref.d.ts +0 -64
- package/lib/models/index.d.ts +0 -96
- package/lib/models/layouthint/LayoutHintCollection.d.ts +0 -43
- package/lib/models/links/LinkCollection.d.ts +0 -71
- package/lib/models/links/LinkModel.d.ts +0 -93
- package/lib/models/links/normalizeLinkJSON.d.ts +0 -9
- package/lib/models/list/ListDetailModel.d.ts +0 -69
- package/lib/models/list/ListHeaderModel.d.ts +0 -53
- package/lib/models/list/ListItemCollection.d.ts +0 -21
- package/lib/models/list/ListItemModel.d.ts +0 -35
- package/lib/models/list/ListModel.d.ts +0 -143
- package/lib/models/lookup/LookupOptionCollection.d.ts +0 -15
- package/lib/models/lookup/LookupOptionsModel.d.ts +0 -23
- package/lib/models/modelcatalog/ModelCatalogModel.d.ts +0 -23
- package/lib/models/modelcatalog/ModelCategoryCollection.d.ts +0 -11
- package/lib/models/modelcatalog/ModelCategoryModel.d.ts +0 -39
- package/lib/models/paging/PagesizeModel.d.ts +0 -25
- package/lib/models/paging/PagingModel.d.ts +0 -49
- package/lib/models/panels/GroupingPanelModel.d.ts +0 -49
- package/lib/models/parameter/Parameter.d.ts +0 -40
- package/lib/models/process/ProcessStatusSettingsModel.d.ts +0 -38
- package/lib/models/resolveModel.d.ts +0 -7
- package/lib/models/search/CaseSearchModel.d.ts +0 -14
- package/lib/models/sorting/SortOptionModel.d.ts +0 -48
- package/lib/models/sorting/SortingModel.d.ts +0 -42
- package/lib/models/tab/TabModel.d.ts +0 -53
- package/lib/models/taskgroup/TaskGroupCollection.d.ts +0 -12
- package/lib/models/taskgroup/TaskGroupModel.d.ts +0 -25
- package/lib/models/types.d.ts +0 -171
- package/lib/models/user/UserModel.d.ts +0 -18
- package/lib/models/user/UserProfileModel.d.ts +0 -17
- package/lib/models/user/UserServicesModel.d.ts +0 -39
- package/lib/modularui/Authenticate.d.ts +0 -46
- package/lib/modularui/CaptchaRequest.d.ts +0 -54
- package/lib/modularui/ModularUIError.d.ts +0 -10
- package/lib/modularui/ModularUIRequest.d.ts +0 -207
- package/lib/modularui/ModularUIResponse.d.ts +0 -78
- package/lib/modularui/UploadRequest.d.ts +0 -41
- package/lib/modularui/index.d.ts +0 -5
- package/lib/modularui/types.d.ts +0 -2
- package/lib/react/ErrorBoundary.d.ts +0 -31
- package/lib/react/ErrorBoundaryFallback.d.ts +0 -8
- package/lib/react/index.d.ts +0 -2
- package/lib/react/utils.d.ts +0 -5
- package/lib/react-client/Init.d.ts +0 -6
- package/lib/react-client/client.d.ts +0 -25
- package/lib/react-client/contextPath.d.ts +0 -1
- package/lib/react-client/index.d.ts +0 -3
- package/lib/react-client/rehydrate.d.ts +0 -5
- package/lib/react-server/contextPath.d.ts +0 -1
- package/lib/react-server/createSSRComplete.d.ts +0 -5
- package/lib/react-server/htmlpage.d.ts +0 -11
- package/lib/react-server/index.d.ts +0 -8
- package/lib/react-server/renderSSRComplete.d.ts +0 -13
- package/lib/react-server/renderSSRMinimal.d.ts +0 -11
- package/lib/react-server/requestInformation.d.ts +0 -6
- package/lib/react-server/serverNoSSR.d.ts +0 -15
- package/lib/react-server/serverSSR.d.ts +0 -15
- package/lib/react-server/serverUtil.d.ts +0 -46
- package/lib/react-theme/ThemeProvider.d.ts +0 -8
- package/lib/react-theme/createTheme.d.ts +0 -53
- package/lib/react-theme/index.d.ts +0 -10
- package/lib/react-theme/types.d.ts +0 -13
- package/lib/react-theme/useTheme.d.ts +0 -4
- package/lib/react-theme/utils/background.d.ts +0 -4
- package/lib/react-theme/utils/colors.d.ts +0 -9
- package/lib/react-theme/utils/contrast.d.ts +0 -18
- package/lib/react-theme/utils/corners.d.ts +0 -3
- package/lib/react-theme/utils/spacers.d.ts +0 -9
- package/lib/react-theme/utils/themeProps.d.ts +0 -7
- package/lib/redux/_i18n/I18nActions.d.ts +0 -7
- package/lib/redux/_i18n/I18nReducer.d.ts +0 -7
- package/lib/redux/_i18n/index.d.ts +0 -3
- package/lib/redux/_i18n/types.d.ts +0 -13
- package/lib/redux/_modularui/ModularUIActions.d.ts +0 -26
- package/lib/redux/_modularui/ModularUIConnector.d.ts +0 -7
- package/lib/redux/_modularui/ModularUIMiddleware.d.ts +0 -7
- package/lib/redux/_modularui/ModularUIReducer.d.ts +0 -7
- package/lib/redux/_modularui/ModularUISelectors.d.ts +0 -3
- package/lib/redux/_modularui/ModularUIUtils.d.ts +0 -5
- package/lib/redux/_modularui/index.d.ts +0 -8
- package/lib/redux/_modularui/types.d.ts +0 -84
- package/lib/redux/_modularui/withModularUI.d.ts +0 -3
- package/lib/redux/_router/RouterActions.d.ts +0 -10
- package/lib/redux/_router/RouterConnectors.d.ts +0 -6
- package/lib/redux/_router/RouterMiddleware.d.ts +0 -5
- package/lib/redux/_router/RouterReducer.d.ts +0 -7
- package/lib/redux/_router/index.d.ts +0 -5
- package/lib/redux/_router/types.d.ts +0 -35
- package/lib/redux/actions/Application.d.ts +0 -4
- package/lib/redux/actions/Authorization.d.ts +0 -3
- package/lib/redux/actions/Error.d.ts +0 -7
- package/lib/redux/actions/Form.d.ts +0 -5
- package/lib/redux/actions/FormAttributeSet.d.ts +0 -6
- package/lib/redux/actions/FormAttributeSetRepeatable.d.ts +0 -6
- package/lib/redux/actions/FormAutosave.d.ts +0 -3
- package/lib/redux/actions/FormAutosubmit.d.ts +0 -4
- package/lib/redux/actions/FormAutoupdate.d.ts +0 -4
- package/lib/redux/actions/FormValidations.d.ts +0 -3
- package/lib/redux/actions/Modals.d.ts +0 -4
- package/lib/redux/actions/ModelCatalog.d.ts +0 -2
- package/lib/redux/actions/Notification.d.ts +0 -10
- package/lib/redux/actions/Preferences.d.ts +0 -11
- package/lib/redux/actions/ProgressIndicator.d.ts +0 -8
- package/lib/redux/actions/SignIn.d.ts +0 -10
- package/lib/redux/actions/SignOut.d.ts +0 -4
- package/lib/redux/actions/index.d.ts +0 -16
- package/lib/redux/connectors/Application.d.ts +0 -4
- package/lib/redux/connectors/Breadcrumb.d.ts +0 -3
- package/lib/redux/connectors/CaseView.d.ts +0 -4
- package/lib/redux/connectors/ConceptDetail.d.ts +0 -4
- package/lib/redux/connectors/ContentBrowser.d.ts +0 -4
- package/lib/redux/connectors/ContentDetail.d.ts +0 -4
- package/lib/redux/connectors/ContentDetailSection.d.ts +0 -4
- package/lib/redux/connectors/Form.d.ts +0 -16
- package/lib/redux/connectors/FormAttributeSet.d.ts +0 -5
- package/lib/redux/connectors/ListDetail.d.ts +0 -4
- package/lib/redux/connectors/Modal.d.ts +0 -4
- package/lib/redux/connectors/ModelCatalog.d.ts +0 -4
- package/lib/redux/connectors/Notification.d.ts +0 -4
- package/lib/redux/connectors/PanelRenderer.d.ts +0 -4
- package/lib/redux/connectors/Preferences.d.ts +0 -2
- package/lib/redux/connectors/Progress.d.ts +0 -3
- package/lib/redux/connectors/ProgressIndicator.d.ts +0 -3
- package/lib/redux/connectors/QuickSearch.d.ts +0 -11
- package/lib/redux/connectors/SignIn.d.ts +0 -4
- package/lib/redux/connectors/SignOut.d.ts +0 -4
- package/lib/redux/connectors/Tab.d.ts +0 -4
- package/lib/redux/connectors/index.d.ts +0 -21
- package/lib/redux/index.d.ts +0 -9
- package/lib/redux/reducers/AuthReducer.d.ts +0 -8
- package/lib/redux/reducers/ErrorReducer.d.ts +0 -8
- package/lib/redux/reducers/ModalsReducer.d.ts +0 -8
- package/lib/redux/reducers/ModelCatalogReducer.d.ts +0 -8
- package/lib/redux/reducers/NotificationReducer.d.ts +0 -8
- package/lib/redux/reducers/PreferencesReducer.d.ts +0 -8
- package/lib/redux/reducers/ProgressIndicatorReducer.d.ts +0 -8
- package/lib/redux/reducers/createReducer.d.ts +0 -14
- package/lib/redux/reducers/index.d.ts +0 -8
- package/lib/redux/selectors/i18n.d.ts +0 -4
- package/lib/redux/selectors/index.d.ts +0 -2
- package/lib/redux/selectors/modelcatalog.d.ts +0 -2
- package/lib/redux/store/beforeRenderHooks.d.ts +0 -7
- package/lib/redux/store/configureStore.d.ts +0 -9
- package/lib/redux/types.d.ts +0 -113
- package/lib/utils/browser/Cache.d.ts +0 -45
- package/lib/utils/browser/Cookies.d.ts +0 -9
- package/lib/utils/datetime/DateTimeUtil.d.ts +0 -214
- package/lib/utils/fetch/__mocks__/universalFetch.d.ts +0 -3
- package/lib/utils/fetch/serverFetch.d.ts +0 -5
- package/lib/utils/fetch/types.d.ts +0 -44
- package/lib/utils/fetch/universalFetch.d.ts +0 -7
- package/lib/utils/fetch/xhr.d.ts +0 -5
- package/lib/utils/helpers/checkResource.d.ts +0 -3
- package/lib/utils/helpers/createHash.d.ts +0 -9
- package/lib/utils/helpers/createHref.d.ts +0 -8
- package/lib/utils/helpers/createUUID.d.ts +0 -4
- package/lib/utils/helpers/index.d.ts +0 -8
- package/lib/utils/helpers/objects.d.ts +0 -11
- package/lib/utils/helpers/repositoryResource.d.ts +0 -1
- package/lib/utils/helpers/sanitizeHtml.d.ts +0 -9
- package/lib/utils/helpers/text.d.ts +0 -7
- package/lib/utils/index.d.ts +0 -11
- package/lib/utils/number/DecimalFormat.d.ts +0 -90
- package/lib/utils/number/formatValue.d.ts +0 -4
- package/lib/utils/number/parseNumbers.d.ts +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
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.63.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.62.8...v1.63.0) (2025-07-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **content:** handle rename of childSections to sections ([8ba3298](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/8ba329856ca539c2e24f77c91992134a293667e4))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **server-request:** escape deeplink ([07c24a7](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/07c24a727806e7cfe3b2fc154886e9187ca93759))
|
|
16
|
+
|
|
17
|
+
## [1.62.9](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.62.8...v1.62.9) (2025-06-30)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **server-request:** escape deeplink ([07c24a7](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/07c24a727806e7cfe3b2fc154886e9187ca93759))
|
|
23
|
+
|
|
5
24
|
## [1.62.8](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.62.7...v1.62.8) (2025-06-27)
|
|
6
25
|
|
|
7
26
|
|
|
@@ -94,14 +94,19 @@ class SectionModel extends BaseModel {
|
|
|
94
94
|
* Retrieve child section links
|
|
95
95
|
*/
|
|
96
96
|
get childSectionLinks() {
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
let sections = [];
|
|
98
|
+
if (this.data.childSections) {
|
|
99
|
+
sections = this.data.childSections;
|
|
100
|
+
} else if (this.data.sections) {
|
|
101
|
+
sections = this.data.sections;
|
|
102
|
+
}
|
|
103
|
+
return _mapInstanceProperty(sections).call(sections, childSection => new ContentLinkModel({
|
|
99
104
|
section: childSection.id || childSection._id,
|
|
100
105
|
_id: childSection.id || childSection._id,
|
|
101
106
|
label: childSection.label,
|
|
102
107
|
sourceLabel: childSection.sourceLabel,
|
|
103
108
|
_links: childSection._links
|
|
104
|
-
}, this.entryDate, this.modelOptions))
|
|
109
|
+
}, this.entryDate, this.modelOptions));
|
|
105
110
|
}
|
|
106
111
|
|
|
107
112
|
/**
|
|
@@ -120,11 +125,17 @@ class SectionModel extends BaseModel {
|
|
|
120
125
|
* Get tree of child sections
|
|
121
126
|
*/
|
|
122
127
|
get childSections() {
|
|
123
|
-
if (!this._childSections
|
|
124
|
-
var
|
|
125
|
-
|
|
128
|
+
if (!this._childSections) {
|
|
129
|
+
var _context;
|
|
130
|
+
let sections = [];
|
|
131
|
+
if (this.data.childSections) {
|
|
132
|
+
sections = this.data.childSections;
|
|
133
|
+
} else if (this.data.sections) {
|
|
134
|
+
sections = this.data.sections;
|
|
135
|
+
}
|
|
136
|
+
this._childSections = _mapInstanceProperty(_context = _filterInstanceProperty(sections).call(sections, childSection => "body" in childSection)).call(_context, childSection => new SectionModel(childSection, this.entryDate, this.modelOptions));
|
|
126
137
|
}
|
|
127
|
-
return this._childSections
|
|
138
|
+
return this._childSections;
|
|
128
139
|
}
|
|
129
140
|
|
|
130
141
|
/**
|
|
@@ -138,8 +149,8 @@ class SectionModel extends BaseModel {
|
|
|
138
149
|
*/
|
|
139
150
|
get sections() {
|
|
140
151
|
if (this.data.sections) {
|
|
141
|
-
var
|
|
142
|
-
return _mapInstanceProperty(
|
|
152
|
+
var _context2;
|
|
153
|
+
return _mapInstanceProperty(_context2 = this.data.sections).call(_context2, section => new SectionModel(section, this.entryDate, this.modelOptions));
|
|
143
154
|
}
|
|
144
155
|
return [];
|
|
145
156
|
}
|
|
@@ -147,8 +158,8 @@ class SectionModel extends BaseModel {
|
|
|
147
158
|
* Get sub sections
|
|
148
159
|
*/
|
|
149
160
|
get subSections() {
|
|
150
|
-
var
|
|
151
|
-
return this.data.subSections ? _mapInstanceProperty(
|
|
161
|
+
var _context3;
|
|
162
|
+
return this.data.subSections ? _mapInstanceProperty(_context3 = this.data.subSections).call(_context3, subSection => new SubSectionModel(subSection, this.entryDate, this.modelOptions)) : [];
|
|
152
163
|
}
|
|
153
164
|
|
|
154
165
|
/**
|
|
@@ -108,22 +108,27 @@ class SectionModel extends BaseModel {
|
|
|
108
108
|
* Retrieve child section links
|
|
109
109
|
*/
|
|
110
110
|
get childSectionLinks(): Array<ContentLinkModel> {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
111
|
+
let sections = [];
|
|
112
|
+
if (this.data.childSections) {
|
|
113
|
+
sections = this.data.childSections;
|
|
114
|
+
} else if (this.data.sections) {
|
|
115
|
+
sections = this.data.sections;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return sections.map(
|
|
119
|
+
(childSection) =>
|
|
120
|
+
new ContentLinkModel(
|
|
121
|
+
{
|
|
122
|
+
section: childSection.id || childSection._id,
|
|
123
|
+
_id: childSection.id || childSection._id,
|
|
124
|
+
label: childSection.label,
|
|
125
|
+
sourceLabel: childSection.sourceLabel,
|
|
126
|
+
_links: childSection._links,
|
|
127
|
+
},
|
|
128
|
+
this.entryDate,
|
|
129
|
+
this.modelOptions,
|
|
130
|
+
),
|
|
131
|
+
);
|
|
127
132
|
}
|
|
128
133
|
|
|
129
134
|
/**
|
|
@@ -146,15 +151,23 @@ class SectionModel extends BaseModel {
|
|
|
146
151
|
* Get tree of child sections
|
|
147
152
|
*/
|
|
148
153
|
get childSections(): Array<SectionModel> {
|
|
149
|
-
if (!this._childSections
|
|
150
|
-
|
|
154
|
+
if (!this._childSections) {
|
|
155
|
+
let sections = [];
|
|
156
|
+
if (this.data.childSections) {
|
|
157
|
+
sections = this.data.childSections;
|
|
158
|
+
} else if (this.data.sections) {
|
|
159
|
+
sections = this.data.sections;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
this._childSections = sections
|
|
151
163
|
.filter((childSection) => "body" in childSection)
|
|
152
164
|
.map(
|
|
153
165
|
(childSection) =>
|
|
154
166
|
new SectionModel(childSection, this.entryDate, this.modelOptions),
|
|
155
167
|
);
|
|
156
168
|
}
|
|
157
|
-
|
|
169
|
+
|
|
170
|
+
return this._childSections;
|
|
158
171
|
}
|
|
159
172
|
|
|
160
173
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionModel.js","names":["BaseModel","ContentLinkModel","SubSectionModel","createHashFromHref","LinkModel","retrieveText","SectionModel","constructor","data","entryDate","modelOptions","_defineProperty","_entryDate","referred","selflink","_selflink","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","childSectionLinks","_context","childSections","_mapInstanceProperty","call","childSection","section","selfContentLink","_childSections","_context2","_context3","_filterInstanceProperty","sections","_context4","subSections","_context5","subSection","referenceHash","getReferredSections","push","referredChilds"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport { retrieveText } from \"../../utils\";\n\nimport type Href from \"../href/Href\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n ) {\n super(data, {}, modelOptions);\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(\n this.data._links?.self,\n null,\n this.modelOptions,\n );\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n this.modelOptions,\n ),\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n this.modelOptions,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map(\n (childSection) =>\n new SectionModel(childSection, this.entryDate, this.modelOptions),\n );\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n if (this.data.sections) {\n return this.data.sections.map(\n (section) =>\n new SectionModel(section, this.entryDate, this.modelOptions),\n );\n }\n return [];\n }\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) =>\n new SubSectionModel(subSection, this.entryDate, this.modelOptions),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SectionModel.js","names":["BaseModel","ContentLinkModel","SubSectionModel","createHashFromHref","LinkModel","retrieveText","SectionModel","constructor","data","entryDate","modelOptions","_defineProperty","_entryDate","referred","selflink","_selflink","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","childSectionLinks","sections","childSections","_mapInstanceProperty","call","childSection","section","selfContentLink","_childSections","_context","_filterInstanceProperty","_context2","subSections","_context3","subSection","referenceHash","getReferredSections","push","referredChilds"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport { retrieveText } from \"../../utils\";\n\nimport type Href from \"../href/Href\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n ) {\n super(data, {}, modelOptions);\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(\n this.data._links?.self,\n null,\n this.modelOptions,\n );\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n let sections = [];\n if (this.data.childSections) {\n sections = this.data.childSections;\n } else if (this.data.sections) {\n sections = this.data.sections;\n }\n\n return sections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n this.modelOptions,\n ),\n );\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n this.modelOptions,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections) {\n let sections = [];\n if (this.data.childSections) {\n sections = this.data.childSections;\n } else if (this.data.sections) {\n sections = this.data.sections;\n }\n\n this._childSections = sections\n .filter((childSection) => \"body\" in childSection)\n .map(\n (childSection) =>\n new SectionModel(childSection, this.entryDate, this.modelOptions),\n );\n }\n\n return this._childSections;\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n if (this.data.sections) {\n return this.data.sections.map(\n (section) =>\n new SectionModel(section, this.entryDate, this.modelOptions),\n );\n }\n return [];\n }\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) =>\n new SubSectionModel(subSection, this.entryDate, this.modelOptions),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ import content from "./content.json";
|
|
|
8
8
|
import contentWithSubsections from "./content-with-subsections.json";
|
|
9
9
|
import contentWithSubsections2 from "./content-with-subsections2.json";
|
|
10
10
|
import contentWithChildsections from "./content-with-childsections.json";
|
|
11
|
+
import contentWithSections from "./content-with-sections.json";
|
|
11
12
|
import ContentLinkModel from "../ContentLinkModel";
|
|
12
13
|
|
|
13
14
|
describe("contentmodel", () => {
|
|
@@ -119,6 +120,40 @@ describe("contentmodel", () => {
|
|
|
119
120
|
);
|
|
120
121
|
});
|
|
121
122
|
|
|
123
|
+
it("can handle content service with sections", () => {
|
|
124
|
+
const response = ModularUIResponse.create({
|
|
125
|
+
key: "contentmodel",
|
|
126
|
+
data: contentWithSections,
|
|
127
|
+
contributions,
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
expect(ContentModel.isApplicableModel(response)).toBe(true);
|
|
131
|
+
|
|
132
|
+
const contentModel = new ContentModel(response);
|
|
133
|
+
expect(contentModel.getInitialChildModelLinks()).toHaveLength(0);
|
|
134
|
+
|
|
135
|
+
expect(contentModel.id).toBe("uitslag");
|
|
136
|
+
|
|
137
|
+
expect(contentModel.childSectionLinks).toHaveLength(4);
|
|
138
|
+
expect(contentModel.childSections).toHaveLength(0);
|
|
139
|
+
expect(contentModel.subSections).toHaveLength(0);
|
|
140
|
+
expect(contentModel.relatedConceptsHrefs).toHaveLength(1);
|
|
141
|
+
expect(contentModel.relatedConceptsHref.href.toString()).toBe(
|
|
142
|
+
"/content/Incident/Business design/Content/Blaastest.textilesource/uitslag/relatedConcepts?entryDate=2021-08-31",
|
|
143
|
+
);
|
|
144
|
+
expect(contentModel.referenceHash).toBe(8236987459042);
|
|
145
|
+
|
|
146
|
+
const firstChildSectionLink = contentModel.childSectionLinks[0];
|
|
147
|
+
expect(firstChildSectionLink instanceof ContentLinkModel).toBe(true);
|
|
148
|
+
|
|
149
|
+
expect(firstChildSectionLink.key).toBe("pass");
|
|
150
|
+
expect(firstChildSectionLink.label).toBe("Pass");
|
|
151
|
+
expect(firstChildSectionLink.sourceLabel).toBeNull();
|
|
152
|
+
expect(firstChildSectionLink.encodedHref.toString()).toBe(
|
|
153
|
+
"/content/Incident%2FBusiness%20design%2FContent%2FBlaastest.textilesource/pass?entryDate=2021-08-31",
|
|
154
|
+
);
|
|
155
|
+
});
|
|
156
|
+
|
|
122
157
|
it("can handle content service with subsections and correct related concepts", () => {
|
|
123
158
|
const response = ModularUIResponse.create({
|
|
124
159
|
key: "contentmodel",
|
package/esm/models/types.js.flow
CHANGED
|
@@ -201,7 +201,8 @@ export type SectionData = {
|
|
|
201
201
|
number?: string,
|
|
202
202
|
body: string | { id?: string, message: string, properties?: Object },
|
|
203
203
|
_links: { self: { href: string } },
|
|
204
|
-
childSections
|
|
204
|
+
childSections?: Array<SectionData>,
|
|
205
|
+
sections?: Array<SectionData>,
|
|
205
206
|
subSections: Array<SectionData>,
|
|
206
207
|
};
|
|
207
208
|
|
package/esm/models/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/models/types.js"],"sourcesContent":["// @flow\nimport type ApplicationModel from \"./application/ApplicationModel\";\nimport type BooleanAttributeModel from \"./attributes/BooleanAttributeModel\";\nimport type CaptchaAttributeModel from \"./attributes/CaptchaAttributeModel\";\nimport type ChoiceAttributeModel from \"./attributes/ChoiceAttributeModel\";\nimport type CompositeAttributeModel from \"./attributes/CompositeAttributeModel\";\nimport type DatetimeAttributeModel from \"./attributes/DatetimeAttributeModel\";\nimport type HelptextAttributeModel from \"./attributes/HelptextAttributeModel\";\nimport type LabelAttributeModel from \"./attributes/LabelAttributeModel\";\nimport type MemoAttributeModel from \"./attributes/MemoAttributeModel\";\nimport type MoneyAttributeModel from \"./attributes/MoneyAttributeModel\";\nimport type NumberAttributeModel from \"./attributes/NumberAttributeModel\";\nimport type PasswordAttributeModel from \"./attributes/PasswordAttributeModel\";\nimport type StringAttributeModel from \"./attributes/StringAttributeModel\";\nimport type UploadAttributeModel from \"./attributes/UploadAttributeModel\";\nimport type XMLAttributeModel from \"./attributes/XMLAttributeModel\";\nimport type CaseViewModel from \"./caseview/CaseViewModel\";\nimport type BusinessScenarioModel from \"./concepts/BusinessScenarioModel\";\nimport type ConceptDetailModel from \"./concepts/ConceptDetailModel\";\nimport type ConceptIndexModel from \"./concepts/ConceptIndexModel\";\nimport type ConceptTypeDetailModel from \"./concepts/ConceptTypeDetailModel\";\nimport type ContentIndexModel from \"./content/ContentIndexModel\";\nimport type ContentModel from \"./content/ContentModel\";\nimport type SectionModel from \"./content/SectionModel\";\nimport type ContentTOCModel from \"./content/ContentTOCModel\";\nimport type ContentTypeModel from \"./content/ContentTypeModel\";\nimport type DetailModel from \"./detail/DetailModel\";\nimport type AssignmentFilterModel from \"./filters/AssignmentFilterModel\";\nimport type FilterModel from \"./filters/FilterModel\";\nimport type RangeFilterModel from \"./filters/RangeFilterModel\";\nimport type ConceptIndexFilterModel from \"./filters/ConceptIndexFilterModel\";\nimport type FormModel from \"./form/FormModel\";\nimport type ListDetailModel from \"./list/ListDetailModel\";\nimport type ListModel from \"./list/ListModel\";\nimport type ModelCatalogModel from \"./modelcatalog/ModelCatalogModel\";\nimport type GroupingPanelModel from \"./panels/GroupingPanelModel\";\nimport type CaseSearchModel from \"./search/CaseSearchModel\";\nimport type TabModel from \"./tab/TabModel\";\nimport type TaskGroupModel from \"./taskgroup/TaskGroupModel\";\nimport type UserModel from \"./user/UserModel\";\nimport type UserServicesModel from \"./user/UserServicesModel\";\nimport type LinkModel from \"./links/LinkModel\";\nimport type LookupOptionsModel from \"./lookup/LookupOptionsModel\";\nimport type BaseFilterModel from \"./filters/BaseFilterModel\";\nimport type AttributeCollection from \"./attributes/AttributeCollection\";\nimport type AttributeModel from \"./attributes/AttributeModel\";\nimport type LayoutHintCollection from \"./layouthint/LayoutHintCollection\";\nimport type ErrorResponse from \"./error/ErrorResponse\";\n\nexport type ModularUIModel =\n | ApplicationModel\n | CaseSearchModel\n | CaseViewModel\n | ListDetailModel\n | DetailModel\n | FormModel\n | GroupingPanelModel\n | ListModel\n | TabModel\n | TaskGroupModel\n | UserModel\n | UserServicesModel\n | ModelCatalogModel\n | ConceptIndexModel\n | ConceptDetailModel\n | BusinessScenarioModel\n | ConceptTypeDetailModel\n | ContentIndexModel\n | ContentTOCModel\n | ContentModel\n | ContentTypeModel\n | LookupOptionsModel;\n\nexport type AttributeType =\n | BooleanAttributeModel\n | CaptchaAttributeModel\n | ChoiceAttributeModel\n | DatetimeAttributeModel\n | HelptextAttributeModel\n | LabelAttributeModel\n | MemoAttributeModel\n | MoneyAttributeModel\n | NumberAttributeModel\n | PasswordAttributeModel\n | CompositeAttributeModel\n | StringAttributeModel\n | UploadAttributeModel\n | XMLAttributeModel;\n\nexport type RangeChildAttributeType =\n | NumberAttributeModel\n | DatetimeAttributeModel;\n\nexport type FilterType =\n | BaseFilterModel\n | FilterModel\n | AssignmentFilterModel\n | RangeFilterModel\n | ConceptIndexFilterModel;\n\nexport type FormErrorAnchor = {\n id: string,\n properties?: {\n [propertyName: string]: string | number,\n },\n anchor?: {\n objectid: string,\n elementid?: string,\n _links?: Object,\n index?: number,\n \"index-identifier\"?: string,\n },\n layouthint: LayoutHintCollection,\n message: string,\n param?: {\n name: string,\n },\n};\n\nexport type labelsJSON = {\n _id: string,\n label: string,\n value: string,\n};\n\nexport type propertyJSON = {\n _id: string,\n type: string,\n mandatory: string,\n label: string,\n value: string,\n};\n\nexport type textfragmentJSON = {\n label: string,\n text: string,\n type: string,\n};\n\nexport interface IConstraintModel {\n +id: string;\n +defaultMessage: string;\n +parameters: Object;\n +isMandatoryConstraint: boolean;\n validate(value: any): boolean;\n hasValidation(): boolean;\n}\n\nexport interface ILayoutHintRule {\n process(attribute: AttributeModel, attributes: AttributeCollection): void;\n}\n\nexport interface IModelWithChildModels {\n getInitialChildModelLinks(): Array<LinkModel>;\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void;\n}\n\nexport type AuthenticationType = {\n name: string,\n authentication: string,\n redirectUri?: string,\n isPrimary: boolean,\n};\n\nexport type FileEntryType = {\n name: string,\n size?: number,\n progress: number,\n error?: string,\n token?: string,\n};\n\nexport type FilesType = {\n [filename: string]: FileEntryType,\n};\n\nexport type FiletypeConstraintsType = Array<{|\n extensions: Array<string>,\n mimeTypes: Array<string>,\n|}>;\n\nexport type FilesizeConstraintsType = {\n fileSize: ?number,\n maxTotalFileSize: ?number,\n isMaxTotal: boolean,\n};\n\nexport type PropertyData = { type: string, label: string, value: string };\nexport type TextFragmentData = {\n type: string,\n label: string,\n text: string | { id?: string, message: string, properties?: Object },\n};\nexport type SectionData = {\n id: string,\n type: string,\n label?: string,\n number?: string,\n body: string | { id?: string, message: string, properties?: Object },\n _links: { self: { href: string } },\n childSections
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/models/types.js"],"sourcesContent":["// @flow\nimport type ApplicationModel from \"./application/ApplicationModel\";\nimport type BooleanAttributeModel from \"./attributes/BooleanAttributeModel\";\nimport type CaptchaAttributeModel from \"./attributes/CaptchaAttributeModel\";\nimport type ChoiceAttributeModel from \"./attributes/ChoiceAttributeModel\";\nimport type CompositeAttributeModel from \"./attributes/CompositeAttributeModel\";\nimport type DatetimeAttributeModel from \"./attributes/DatetimeAttributeModel\";\nimport type HelptextAttributeModel from \"./attributes/HelptextAttributeModel\";\nimport type LabelAttributeModel from \"./attributes/LabelAttributeModel\";\nimport type MemoAttributeModel from \"./attributes/MemoAttributeModel\";\nimport type MoneyAttributeModel from \"./attributes/MoneyAttributeModel\";\nimport type NumberAttributeModel from \"./attributes/NumberAttributeModel\";\nimport type PasswordAttributeModel from \"./attributes/PasswordAttributeModel\";\nimport type StringAttributeModel from \"./attributes/StringAttributeModel\";\nimport type UploadAttributeModel from \"./attributes/UploadAttributeModel\";\nimport type XMLAttributeModel from \"./attributes/XMLAttributeModel\";\nimport type CaseViewModel from \"./caseview/CaseViewModel\";\nimport type BusinessScenarioModel from \"./concepts/BusinessScenarioModel\";\nimport type ConceptDetailModel from \"./concepts/ConceptDetailModel\";\nimport type ConceptIndexModel from \"./concepts/ConceptIndexModel\";\nimport type ConceptTypeDetailModel from \"./concepts/ConceptTypeDetailModel\";\nimport type ContentIndexModel from \"./content/ContentIndexModel\";\nimport type ContentModel from \"./content/ContentModel\";\nimport type SectionModel from \"./content/SectionModel\";\nimport type ContentTOCModel from \"./content/ContentTOCModel\";\nimport type ContentTypeModel from \"./content/ContentTypeModel\";\nimport type DetailModel from \"./detail/DetailModel\";\nimport type AssignmentFilterModel from \"./filters/AssignmentFilterModel\";\nimport type FilterModel from \"./filters/FilterModel\";\nimport type RangeFilterModel from \"./filters/RangeFilterModel\";\nimport type ConceptIndexFilterModel from \"./filters/ConceptIndexFilterModel\";\nimport type FormModel from \"./form/FormModel\";\nimport type ListDetailModel from \"./list/ListDetailModel\";\nimport type ListModel from \"./list/ListModel\";\nimport type ModelCatalogModel from \"./modelcatalog/ModelCatalogModel\";\nimport type GroupingPanelModel from \"./panels/GroupingPanelModel\";\nimport type CaseSearchModel from \"./search/CaseSearchModel\";\nimport type TabModel from \"./tab/TabModel\";\nimport type TaskGroupModel from \"./taskgroup/TaskGroupModel\";\nimport type UserModel from \"./user/UserModel\";\nimport type UserServicesModel from \"./user/UserServicesModel\";\nimport type LinkModel from \"./links/LinkModel\";\nimport type LookupOptionsModel from \"./lookup/LookupOptionsModel\";\nimport type BaseFilterModel from \"./filters/BaseFilterModel\";\nimport type AttributeCollection from \"./attributes/AttributeCollection\";\nimport type AttributeModel from \"./attributes/AttributeModel\";\nimport type LayoutHintCollection from \"./layouthint/LayoutHintCollection\";\nimport type ErrorResponse from \"./error/ErrorResponse\";\n\nexport type ModularUIModel =\n | ApplicationModel\n | CaseSearchModel\n | CaseViewModel\n | ListDetailModel\n | DetailModel\n | FormModel\n | GroupingPanelModel\n | ListModel\n | TabModel\n | TaskGroupModel\n | UserModel\n | UserServicesModel\n | ModelCatalogModel\n | ConceptIndexModel\n | ConceptDetailModel\n | BusinessScenarioModel\n | ConceptTypeDetailModel\n | ContentIndexModel\n | ContentTOCModel\n | ContentModel\n | ContentTypeModel\n | LookupOptionsModel;\n\nexport type AttributeType =\n | BooleanAttributeModel\n | CaptchaAttributeModel\n | ChoiceAttributeModel\n | DatetimeAttributeModel\n | HelptextAttributeModel\n | LabelAttributeModel\n | MemoAttributeModel\n | MoneyAttributeModel\n | NumberAttributeModel\n | PasswordAttributeModel\n | CompositeAttributeModel\n | StringAttributeModel\n | UploadAttributeModel\n | XMLAttributeModel;\n\nexport type RangeChildAttributeType =\n | NumberAttributeModel\n | DatetimeAttributeModel;\n\nexport type FilterType =\n | BaseFilterModel\n | FilterModel\n | AssignmentFilterModel\n | RangeFilterModel\n | ConceptIndexFilterModel;\n\nexport type FormErrorAnchor = {\n id: string,\n properties?: {\n [propertyName: string]: string | number,\n },\n anchor?: {\n objectid: string,\n elementid?: string,\n _links?: Object,\n index?: number,\n \"index-identifier\"?: string,\n },\n layouthint: LayoutHintCollection,\n message: string,\n param?: {\n name: string,\n },\n};\n\nexport type labelsJSON = {\n _id: string,\n label: string,\n value: string,\n};\n\nexport type propertyJSON = {\n _id: string,\n type: string,\n mandatory: string,\n label: string,\n value: string,\n};\n\nexport type textfragmentJSON = {\n label: string,\n text: string,\n type: string,\n};\n\nexport interface IConstraintModel {\n +id: string;\n +defaultMessage: string;\n +parameters: Object;\n +isMandatoryConstraint: boolean;\n validate(value: any): boolean;\n hasValidation(): boolean;\n}\n\nexport interface ILayoutHintRule {\n process(attribute: AttributeModel, attributes: AttributeCollection): void;\n}\n\nexport interface IModelWithChildModels {\n getInitialChildModelLinks(): Array<LinkModel>;\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void;\n}\n\nexport type AuthenticationType = {\n name: string,\n authentication: string,\n redirectUri?: string,\n isPrimary: boolean,\n};\n\nexport type FileEntryType = {\n name: string,\n size?: number,\n progress: number,\n error?: string,\n token?: string,\n};\n\nexport type FilesType = {\n [filename: string]: FileEntryType,\n};\n\nexport type FiletypeConstraintsType = Array<{|\n extensions: Array<string>,\n mimeTypes: Array<string>,\n|}>;\n\nexport type FilesizeConstraintsType = {\n fileSize: ?number,\n maxTotalFileSize: ?number,\n isMaxTotal: boolean,\n};\n\nexport type PropertyData = { type: string, label: string, value: string };\nexport type TextFragmentData = {\n type: string,\n label: string,\n text: string | { id?: string, message: string, properties?: Object },\n};\nexport type SectionData = {\n id: string,\n type: string,\n label?: string,\n number?: string,\n body: string | { id?: string, message: string, properties?: Object },\n _links: { self: { href: string } },\n childSections?: Array<SectionData>,\n sections?: Array<SectionData>,\n subSections: Array<SectionData>,\n};\n\nexport type PropertyElement = {\n propertyElement: {\n label: string,\n layouthint: Array<string>,\n properties: Array<PropertyData>,\n },\n};\nexport type TextFragmentElement = {\n textFragmentElement: {\n label: string,\n layouthint: Array<string>,\n textfragments: Array<TextFragmentData>,\n },\n};\nexport type ContentElement = {\n contentElement: {\n label: string,\n layouthint: Array<string>,\n sections: Array<SectionData>,\n },\n};\n\nexport type PropertyElementMapped = {\n propertyElement: {\n label: string,\n layouthint: LayoutHintCollection,\n properties: Array<PropertyData>,\n },\n};\nexport type TextFragmentElementMapped = {\n textFragmentElement: {\n label: string,\n layouthint: LayoutHintCollection,\n textfragments: Array<TextFragmentData>,\n },\n};\nexport type ContentElementMapped = {\n contentElement: {\n label: string,\n layouthint: LayoutHintCollection,\n sections: Array<SectionModel>,\n },\n};\n\nexport type ContentAll = Array<\n PropertyElementMapped | TextFragmentElementMapped | ContentElementMapped,\n>;\n\nexport type ContentData = {\n header: {\n label?: string,\n description?: { id?: string, message: string, properties?: Object },\n },\n label?: string,\n elements: Array<PropertyElement | TextFragmentElement | ContentElement>,\n};\n\nexport type SectionFragment = {\n text: string,\n startOffset: number,\n endOffset: number,\n};\n\nexport type ModelOptions = {\n origin?: ?string,\n contextPath?: ?string,\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getFullRequestUrl,
|
|
3
|
+
getFullRequestHref,
|
|
4
|
+
getCookieFromRequest,
|
|
5
|
+
getPreferredLocale,
|
|
6
|
+
} from "../requestInformation"; // Adjust path as needed
|
|
7
|
+
|
|
8
|
+
// Mock the Href class
|
|
9
|
+
const mockHref = jest.fn((url) => ({
|
|
10
|
+
url: url, // For easy inspection in tests
|
|
11
|
+
// You can add other Href methods here if they are used by your functions
|
|
12
|
+
toString: () => url,
|
|
13
|
+
}));
|
|
14
|
+
jest.mock("../../models/href/Href", () => {
|
|
15
|
+
return jest.fn().mockImplementation((url) => {
|
|
16
|
+
return new mockHref(url);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// Mock the Locales class
|
|
21
|
+
const mockLocales = {
|
|
22
|
+
availableLocaleCodes: ["en-US", "es-ES", "fr-FR"],
|
|
23
|
+
getPreferredLocale: jest.fn((header) => {
|
|
24
|
+
if (header.includes("en")) return "en-US";
|
|
25
|
+
if (header.includes("es")) return "es-ES";
|
|
26
|
+
if (header.includes("fr")) return "fr-FR";
|
|
27
|
+
return mockLocales.availableLocaleCodes[0]; // Default if no match
|
|
28
|
+
}),
|
|
29
|
+
};
|
|
30
|
+
jest.mock("../../i18n/Locales", () => {
|
|
31
|
+
return jest.fn().mockImplementation(() => {
|
|
32
|
+
return mockLocales;
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// Helper function to create a mock HttpServletRequestJava object
|
|
37
|
+
const createMockRequest = ({
|
|
38
|
+
pathInfo = null,
|
|
39
|
+
queryString = null,
|
|
40
|
+
cookies = [],
|
|
41
|
+
headers = {},
|
|
42
|
+
} = {}) => ({
|
|
43
|
+
getPathInfo: jest.fn(() => pathInfo),
|
|
44
|
+
getQueryString: jest.fn(() => queryString),
|
|
45
|
+
getCookieByName: jest.fn((name) => {
|
|
46
|
+
const cookie = cookies.find((c) => c.name === name);
|
|
47
|
+
return cookie ? cookie.value : null;
|
|
48
|
+
}),
|
|
49
|
+
getHeader: jest.fn((name) => headers[name.toLowerCase()] || null),
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
describe("requestInformation", () => {
|
|
53
|
+
beforeEach(() => {
|
|
54
|
+
jest.clearAllMocks();
|
|
55
|
+
|
|
56
|
+
// Reset mock Href to its initial mock implementation
|
|
57
|
+
// This is important if you test multiple instantiations or interactions
|
|
58
|
+
// with the Href mock.
|
|
59
|
+
require("../../models/href/Href").mockClear();
|
|
60
|
+
require("../../models/href/Href").mockImplementation((url) => {
|
|
61
|
+
return new mockHref(url);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
describe("getFullRequestUrl", () => {
|
|
66
|
+
it("should return the path info when no query string is present", () => {
|
|
67
|
+
const request = createMockRequest({
|
|
68
|
+
pathInfo: "/some/path",
|
|
69
|
+
});
|
|
70
|
+
expect(getFullRequestUrl(request)).toBe("/some/path");
|
|
71
|
+
expect(request.getPathInfo).toHaveBeenCalledTimes(1);
|
|
72
|
+
expect(request.getQueryString).toHaveBeenCalledTimes(1);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it("should return the path info with a leading slash if pathInfo is null", () => {
|
|
76
|
+
const request = createMockRequest({
|
|
77
|
+
pathInfo: null,
|
|
78
|
+
});
|
|
79
|
+
expect(getFullRequestUrl(request)).toBe("/");
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it("should return the path info with a leading slash if pathInfo is an empty string", () => {
|
|
83
|
+
const request = createMockRequest({
|
|
84
|
+
pathInfo: "",
|
|
85
|
+
});
|
|
86
|
+
expect(getFullRequestUrl(request)).toBe("/");
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("should return the path info with an encoded query string", () => {
|
|
90
|
+
const request = createMockRequest({
|
|
91
|
+
pathInfo: "/search",
|
|
92
|
+
queryString: "q=hello world&filter=test",
|
|
93
|
+
});
|
|
94
|
+
expect(getFullRequestUrl(request)).toBe(
|
|
95
|
+
"/search?q%3Dhello%20world%26filter%3Dtest",
|
|
96
|
+
);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it("should handle special characters in pathInfo by encoding them", () => {
|
|
100
|
+
const request = createMockRequest({
|
|
101
|
+
pathInfo: "/path with spaces/and<script>alert(1)</script>",
|
|
102
|
+
});
|
|
103
|
+
expect(getFullRequestUrl(request)).toBe(
|
|
104
|
+
"/path%20with%20spaces/and%3Cscript%3Ealert(1)%3C/script%3E",
|
|
105
|
+
);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it("should handle path info with multiple segments and special characters", () => {
|
|
109
|
+
const request = createMockRequest({
|
|
110
|
+
pathInfo: "/product/category/item with special chars & numbers/id-123",
|
|
111
|
+
});
|
|
112
|
+
expect(getFullRequestUrl(request)).toBe(
|
|
113
|
+
"/product/category/item%20with%20special%20chars%20%26%20numbers/id-123",
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it("should correctly encode both path and query string with special characters", () => {
|
|
118
|
+
const request = createMockRequest({
|
|
119
|
+
pathInfo: "/api/data",
|
|
120
|
+
queryString: "name=John Doe & email=john@example.com",
|
|
121
|
+
});
|
|
122
|
+
expect(getFullRequestUrl(request)).toBe(
|
|
123
|
+
"/api/data?name%3DJohn%20Doe%20%26%20email%3Djohn%40example.com",
|
|
124
|
+
);
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("should handle an empty query string (not null) gracefully", () => {
|
|
128
|
+
const request = createMockRequest({
|
|
129
|
+
pathInfo: "/home",
|
|
130
|
+
queryString: "",
|
|
131
|
+
});
|
|
132
|
+
expect(getFullRequestUrl(request)).toBe("/home");
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
describe("getFullRequestHref", () => {
|
|
137
|
+
it("should return an Href instance with the full request URL", () => {
|
|
138
|
+
const request = createMockRequest({
|
|
139
|
+
pathInfo: "/products",
|
|
140
|
+
queryString: "id=123",
|
|
141
|
+
});
|
|
142
|
+
const hrefInstance = getFullRequestHref(request);
|
|
143
|
+
|
|
144
|
+
// Verify that Href constructor was called with the correct URL
|
|
145
|
+
expect(require("../../models/href/Href")).toHaveBeenCalledTimes(1);
|
|
146
|
+
expect(require("../../models/href/Href")).toHaveBeenCalledWith(
|
|
147
|
+
"/products?id%3D123",
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
// Verify the returned object is an instance of the mock Href
|
|
151
|
+
expect(hrefInstance.url).toBe("/products?id%3D123");
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
it("should handle complex URLs and pass them to Href", () => {
|
|
155
|
+
const request = createMockRequest({
|
|
156
|
+
pathInfo: "/search/results",
|
|
157
|
+
queryString: "q=javascript%20xss¶m=value",
|
|
158
|
+
});
|
|
159
|
+
const hrefInstance = getFullRequestHref(request);
|
|
160
|
+
expect(require("../../models/href/Href")).toHaveBeenCalledWith(
|
|
161
|
+
"/search/results?q%3Djavascript%2520xss%26param%3Dvalue",
|
|
162
|
+
);
|
|
163
|
+
expect(hrefInstance.url).toBe(
|
|
164
|
+
"/search/results?q%3Djavascript%2520xss%26param%3Dvalue",
|
|
165
|
+
);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
describe("getCookieFromRequest", () => {
|
|
170
|
+
it("should return the cookie value if found", () => {
|
|
171
|
+
const request = createMockRequest({
|
|
172
|
+
cookies: [
|
|
173
|
+
{
|
|
174
|
+
name: "session_id",
|
|
175
|
+
value: "abc123xyz",
|
|
176
|
+
},
|
|
177
|
+
],
|
|
178
|
+
});
|
|
179
|
+
expect(getCookieFromRequest(request, "session_id")).toBe("abc123xyz");
|
|
180
|
+
expect(request.getCookieByName).toHaveBeenCalledWith("session_id");
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
it("should return null if the cookie is not found", () => {
|
|
184
|
+
const request = createMockRequest({
|
|
185
|
+
cookies: [
|
|
186
|
+
{
|
|
187
|
+
name: "other_cookie",
|
|
188
|
+
value: "value",
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
});
|
|
192
|
+
expect(getCookieFromRequest(request, "non_existent_cookie")).toBeNull();
|
|
193
|
+
expect(request.getCookieByName).toHaveBeenCalledWith(
|
|
194
|
+
"non_existent_cookie",
|
|
195
|
+
);
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
it("should handle empty cookies array", () => {
|
|
199
|
+
const request = createMockRequest({
|
|
200
|
+
cookies: [],
|
|
201
|
+
});
|
|
202
|
+
expect(getCookieFromRequest(request, "any_cookie")).toBeNull();
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
describe("getPreferredLocale", () => {
|
|
207
|
+
it("should return locale from cookie if present", () => {
|
|
208
|
+
const request = createMockRequest({
|
|
209
|
+
cookies: [
|
|
210
|
+
{
|
|
211
|
+
name: "locale",
|
|
212
|
+
value: "es-ES",
|
|
213
|
+
},
|
|
214
|
+
],
|
|
215
|
+
headers: {
|
|
216
|
+
"accept-language": "en-US,en;q=0.9",
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
const locales = mockLocales; // Using the mocked locales directly for convenience
|
|
220
|
+
expect(getPreferredLocale(request, locales)).toBe("es-ES");
|
|
221
|
+
expect(locales.getPreferredLocale).toHaveBeenCalledWith("es-ES"); // Because cookie took precedence
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
it("should return the first available locale code if no cookie and no Accept-Language header", () => {
|
|
225
|
+
const request = createMockRequest({}); // No cookies, no headers
|
|
226
|
+
const locales = mockLocales;
|
|
227
|
+
expect(getPreferredLocale(request, locales)).toBe("en-US");
|
|
228
|
+
expect(locales.getPreferredLocale).not.toHaveBeenCalled();
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
it("should handle null Accept-Language header correctly", () => {
|
|
232
|
+
const request = createMockRequest({
|
|
233
|
+
headers: {
|
|
234
|
+
"accept-language": null,
|
|
235
|
+
},
|
|
236
|
+
}); // Explicitly null header
|
|
237
|
+
const locales = mockLocales;
|
|
238
|
+
expect(getPreferredLocale(request, locales)).toBe("en-US");
|
|
239
|
+
expect(locales.getPreferredLocale).not.toHaveBeenCalled();
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it("should handle empty string Accept-Language header correctly", () => {
|
|
243
|
+
const request = createMockRequest({
|
|
244
|
+
headers: {
|
|
245
|
+
"accept-language": "",
|
|
246
|
+
},
|
|
247
|
+
}); // Explicitly empty header
|
|
248
|
+
const locales = mockLocales;
|
|
249
|
+
expect(getPreferredLocale(request, locales)).toBe("en-US");
|
|
250
|
+
expect(locales.getPreferredLocale).not.toHaveBeenCalled();
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
it("should call getCookieFromRequest and getHeader", () => {
|
|
254
|
+
const request = createMockRequest({
|
|
255
|
+
headers: {
|
|
256
|
+
"accept-language": "de-DE",
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
const locales = mockLocales;
|
|
260
|
+
getPreferredLocale(request, locales);
|
|
261
|
+
expect(request.getCookieByName).toHaveBeenCalledWith("locale");
|
|
262
|
+
expect(request.getHeader).toHaveBeenCalledWith("Accept-Language");
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
});
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
1
2
|
import Href from "../models/href/Href";
|
|
2
3
|
/**
|
|
3
4
|
*/
|
|
4
5
|
export const getFullRequestUrl = request => {
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
var _context;
|
|
7
|
+
let pathInfo = request.getPathInfo() || "/";
|
|
8
|
+
let queryString = request.getQueryString();
|
|
9
|
+
pathInfo = _mapInstanceProperty(_context = pathInfo.split("/")).call(_context, segment => encodeURIComponent(segment)).join("/");
|
|
7
10
|
if (queryString) {
|
|
8
|
-
return `${pathInfo}?${queryString}`;
|
|
11
|
+
return `${pathInfo}?${encodeURIComponent(queryString)}`;
|
|
9
12
|
}
|
|
10
13
|
return pathInfo;
|
|
11
14
|
};
|
|
@@ -6,11 +6,16 @@ import type Locales from "../i18n/Locales";
|
|
|
6
6
|
/**
|
|
7
7
|
*/
|
|
8
8
|
export const getFullRequestUrl = (request: HttpServletRequestJava): string => {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
let pathInfo = request.getPathInfo() || "/";
|
|
10
|
+
let queryString = request.getQueryString();
|
|
11
|
+
|
|
12
|
+
pathInfo = pathInfo
|
|
13
|
+
.split("/")
|
|
14
|
+
.map((segment) => encodeURIComponent(segment))
|
|
15
|
+
.join("/");
|
|
11
16
|
|
|
12
17
|
if (queryString) {
|
|
13
|
-
return `${pathInfo}?${queryString}`;
|
|
18
|
+
return `${pathInfo}?${encodeURIComponent(queryString)}`;
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
return pathInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestInformation.js","names":["Href","getFullRequestUrl","request","pathInfo","getPathInfo","queryString","getQueryString","getFullRequestHref","getCookieFromRequest","cookieName","getCookieByName","getPreferredLocale","locales","languageFromCookie","acceptLanguageHeader","getHeader","availableLocaleCodes"],"sources":["../../src/react-server/requestInformation.js"],"sourcesContent":["// @flow\nimport Href from \"../models/href/Href\";\n\nimport type Locales from \"../i18n/Locales\";\n\n/**\n */\nexport const getFullRequestUrl = (request: HttpServletRequestJava): string => {\n
|
|
1
|
+
{"version":3,"file":"requestInformation.js","names":["Href","getFullRequestUrl","request","_context","pathInfo","getPathInfo","queryString","getQueryString","_mapInstanceProperty","split","call","segment","encodeURIComponent","join","getFullRequestHref","getCookieFromRequest","cookieName","getCookieByName","getPreferredLocale","locales","languageFromCookie","acceptLanguageHeader","getHeader","availableLocaleCodes"],"sources":["../../src/react-server/requestInformation.js"],"sourcesContent":["// @flow\nimport Href from \"../models/href/Href\";\n\nimport type Locales from \"../i18n/Locales\";\n\n/**\n */\nexport const getFullRequestUrl = (request: HttpServletRequestJava): string => {\n let pathInfo = request.getPathInfo() || \"/\";\n let queryString = request.getQueryString();\n\n pathInfo = pathInfo\n .split(\"/\")\n .map((segment) => encodeURIComponent(segment))\n .join(\"/\");\n\n if (queryString) {\n return `${pathInfo}?${encodeURIComponent(queryString)}`;\n }\n\n return pathInfo;\n};\n\n/**\n */\nexport const getFullRequestHref = (request: HttpServletRequestJava): Href =>\n new Href(getFullRequestUrl(request));\n\n/**\n */\nexport const getCookieFromRequest = (\n request: HttpServletRequestJava,\n cookieName: string,\n): null | string => {\n return request.getCookieByName(cookieName);\n};\n\n/**\n */\nexport const getPreferredLocale = (\n request: HttpServletRequestJava,\n locales: Locales,\n): void | string => {\n const languageFromCookie = getCookieFromRequest(request, \"locale\");\n const acceptLanguageHeader =\n languageFromCookie || request.getHeader(\"Accept-Language\");\n\n // when no accept language header or cookie present, get first locale code\n if (acceptLanguageHeader === null) {\n return locales.availableLocaleCodes[0];\n }\n\n return locales.getPreferredLocale(acceptLanguageHeader);\n};\n"],"mappings":";AACA,OAAOA,IAAI,MAAM,qBAAqB;AAItC;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAIC,OAA+B,IAAa;EAAA,IAAAC,QAAA;EAC5E,IAAIC,QAAQ,GAAGF,OAAO,CAACG,WAAW,CAAC,CAAC,IAAI,GAAG;EAC3C,IAAIC,WAAW,GAAGJ,OAAO,CAACK,cAAc,CAAC,CAAC;EAE1CH,QAAQ,GAAGI,oBAAA,CAAAL,QAAA,GAAAC,QAAQ,CAChBK,KAAK,CAAC,GAAG,CAAC,EAAAC,IAAA,CAAAP,QAAA,EACLQ,OAAO,IAAKC,kBAAkB,CAACD,OAAO,CAAC,CAAC,CAC7CE,IAAI,CAAC,GAAG,CAAC;EAEZ,IAAIP,WAAW,EAAE;IACf,OAAO,GAAGF,QAAQ,IAAIQ,kBAAkB,CAACN,WAAW,CAAC,EAAE;EACzD;EAEA,OAAOF,QAAQ;AACjB,CAAC;;AAED;AACA;AACA,OAAO,MAAMU,kBAAkB,GAAIZ,OAA+B,IAChE,IAAIF,IAAI,CAACC,iBAAiB,CAACC,OAAO,CAAC,CAAC;;AAEtC;AACA;AACA,OAAO,MAAMa,oBAAoB,GAAGA,CAClCb,OAA+B,EAC/Bc,UAAkB,KACA;EAClB,OAAOd,OAAO,CAACe,eAAe,CAACD,UAAU,CAAC;AAC5C,CAAC;;AAED;AACA;AACA,OAAO,MAAME,kBAAkB,GAAGA,CAChChB,OAA+B,EAC/BiB,OAAgB,KACE;EAClB,MAAMC,kBAAkB,GAAGL,oBAAoB,CAACb,OAAO,EAAE,QAAQ,CAAC;EAClE,MAAMmB,oBAAoB,GACxBD,kBAAkB,IAAIlB,OAAO,CAACoB,SAAS,CAAC,iBAAiB,CAAC;;EAE5D;EACA,IAAID,oBAAoB,KAAK,IAAI,EAAE;IACjC,OAAOF,OAAO,CAACI,oBAAoB,CAAC,CAAC,CAAC;EACxC;EAEA,OAAOJ,OAAO,CAACD,kBAAkB,CAACG,oBAAoB,CAAC;AACzD,CAAC","ignoreList":[]}
|