@beinformed/ui 1.47.2 → 1.48.1
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 +14 -0
- package/esm/constants/Constants.js.map +1 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/exceptions/FetchException.js.map +1 -1
- package/esm/exceptions/NetworkException.js.map +1 -1
- package/esm/exceptions/NotFoundException.js.map +1 -1
- package/esm/exceptions/TimeoutException.js.map +1 -1
- package/esm/exceptions/UnauthorizedException.js.map +1 -1
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/i18n/Locales.js.map +1 -1
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/actions/ActionModel.js.map +1 -1
- package/esm/models/attributes/AttributeCollection.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/AttributeSetModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
- package/esm/models/concepts/ConceptRelationModel.js +31 -5
- package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/FilterCollection.js.map +1 -1
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/links/LinkCollection.js.map +1 -1
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListItemCollection.js.map +1 -1
- package/esm/models/parameter/Parameter.js.map +1 -1
- package/esm/models/sorting/SortOptionModel.js.map +1 -1
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/react/utils.js.map +1 -1
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/react-server/contextPath.js.map +1 -1
- package/esm/react-server/htmlpage.js.map +1 -1
- package/esm/react-server/requestInformation.js.map +1 -1
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/react-theme/createTheme.js.map +1 -1
- package/esm/react-theme/utils/background.js.map +1 -1
- package/esm/react-theme/utils/contrast.js.map +1 -1
- package/esm/react-theme/utils/corners.js.map +1 -1
- package/esm/react-theme/utils/spacers.js.map +1 -1
- package/esm/react-theme/utils/themeProps.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/connectors/ConceptDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetail.js.map +1 -1
- package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
- package/esm/redux/connectors/Form.js.map +1 -1
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/fetch/serverFetch.js.map +1 -1
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/createHref.js.map +1 -1
- package/esm/utils/helpers/repositoryResource.js.map +1 -1
- package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/esm/utils/number/formatValue.js.map +1 -1
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/Settings.js.map +1 -1
- package/lib/exceptions/FetchException.js.map +1 -1
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/actions/ActionModel.js.map +1 -1
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/AttributeSetModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
- package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
- package/lib/models/concepts/ConceptRelationModel.js +31 -5
- package/lib/models/concepts/ConceptRelationModel.js.flow +37 -5
- package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/concepts/__mock__/relation_with_props_and_tf_data.js.flow +27 -0
- package/lib/models/concepts/__tests__/ConceptRelationModel.spec.js.flow +44 -0
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/FilterCollection.js.map +1 -1
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/links/LinkCollection.js.map +1 -1
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/react/utils.js.map +1 -1
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/react-server/contextPath.js.map +1 -1
- package/lib/react-server/htmlpage.js.map +1 -1
- package/lib/react-server/requestInformation.js.map +1 -1
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/react-theme/utils/background.js.map +1 -1
- package/lib/react-theme/utils/contrast.js.map +1 -1
- package/lib/react-theme/utils/corners.js.map +1 -1
- package/lib/react-theme/utils/spacers.js.map +1 -1
- package/lib/react-theme/utils/themeProps.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/fetch/serverFetch.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/createHref.js.map +1 -1
- package/lib/utils/helpers/repositoryResource.js.map +1 -1
- package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/formatValue.js.map +1 -1
- package/package.json +18 -18
- package/src/models/concepts/ConceptRelationModel.js +37 -5
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.js +27 -0
- package/src/models/concepts/__mock__/relation_with_props_and_tf_data.json +67 -0
- package/src/models/concepts/__tests__/ConceptRelationModel.spec.js +44 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","names":["_objects","require","_repositoryResource","_Constants","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","settings","setSettings","config","isPlainObject","_assign","default","exports","getSetting","key","defaultValue","has","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getUploadPath","UPLOAD_PATH","getCaptchaPath","CAPTCHA_PATH","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING","loginType","LOGIN_TYPE","INTERNAL_LOGIN_TYPE","JAAS","loginPath","LOGIN_PATH_SETTING","loginUsernameField","LOGIN_USERNAME_SETTING","loginPasswordField","LOGIN_PASSWORD_SETTING","logoutPath","LOGOUT_PATH_SETTING","getSwimLaneDiagramConfiguration","configLocation","_startsWith","call","getRepositoryResourceUrl","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * Base path\n * This uses contextPath set from property from server\n * When requesting a remote server with CORS enabled, add the origin, for example:\n * export const BEINFORMED_PATH = 'http://192.168.128.61:8080/BeInformed';\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (): string => `${getBasePath()}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (): string => `${getBasePath()}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (): string =>\n getSetting(LOGIN_PATH_SETTING, \"/callback?client_name=FormClient\");\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Settings.js","names":["_objects","require","_repositoryResource","_Constants","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","settings","setSettings","config","isPlainObject","_assign","default","exports","getSetting","key","defaultValue","has","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getUploadPath","UPLOAD_PATH","getCaptchaPath","CAPTCHA_PATH","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING","loginType","LOGIN_TYPE","INTERNAL_LOGIN_TYPE","JAAS","loginPath","LOGIN_PATH_SETTING","loginUsernameField","LOGIN_USERNAME_SETTING","loginPasswordField","LOGIN_PASSWORD_SETTING","logoutPath","LOGOUT_PATH_SETTING","getSwimLaneDiagramConfiguration","configLocation","_startsWith","call","getRepositoryResourceUrl","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * Base path\n * This uses contextPath set from property from server\n * When requesting a remote server with CORS enabled, add the origin, for example:\n * export const BEINFORMED_PATH = 'http://192.168.128.61:8080/BeInformed';\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (): string => `${getBasePath()}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (): string => `${getBasePath()}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (): string =>\n getSetting(LOGIN_PATH_SETTING, \"/callback?client_name=FormClient\");\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchException.js","names":["_objects","require","_Constants","CLIENT_ERROR_CODE","getErrorInfo","errorResponse","requestOptions","defaultErrorInfo","id","defaultMessage","url","method","HTTP_METHODS","GET","properties","param","has","error","key","_keys","default","errors","FetchException","Error","constructor","failedRequest","errorInfo","_defineProperty2","name","request","status","response","parameters","captureStackTrace","exports"],"sources":["../../src/exceptions/FetchException.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\n\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport type { MessageParameters } from \"../i18n/types\";\nimport type { RequestOptions } from \"../utils/fetch/types\";\n\nexport type ModularUIErrorResponse = {\n error: {\n id: string,\n properties: {\n [propertyName: string]: string | number,\n ...\n },\n },\n};\n\ntype RequestResult = { status: number };\ntype RequestParameters = { [key: string]: any };\n\nconst CLIENT_ERROR_CODE = 400;\n\n/**\n * @private\n */\nconst getErrorInfo = (\n errorResponse: ?ModularUIErrorResponse,\n requestOptions: ?RequestOptions,\n) => {\n const defaultErrorInfo = {\n id: \"Error.CannotRequestResource\",\n defaultMessage: `Cannot request resource ${\n requestOptions?.url ?? \"\"\n } with method ${requestOptions?.method ?? HTTP_METHODS.GET}`,\n properties: {},\n param: null,\n };\n\n if (!errorResponse) {\n return defaultErrorInfo;\n }\n\n if (has(errorResponse, \"error\")) {\n return {\n ...defaultErrorInfo,\n ...errorResponse.error,\n };\n }\n\n const [key] = Object.keys(errorResponse);\n if (has(errorResponse[key], \"errors\")) {\n return {\n ...defaultErrorInfo,\n // $FlowFixMe[prop-missing] - not sure in what case this could happen\n ...errorResponse[key].errors,\n };\n }\n\n return defaultErrorInfo;\n};\n\n/**\n * FetchException\n */\nexport default class FetchException extends Error {\n request: ?RequestResult | XMLHttpRequest;\n status: number;\n response: ?ModularUIErrorResponse;\n parameters: ?RequestParameters;\n properties: MessageParameters;\n requestOptions: ?RequestOptions;\n id: string;\n\n constructor(\n errorResponse: ?ModularUIErrorResponse,\n failedRequest?: ?RequestResult | XMLHttpRequest,\n requestOptions?: RequestOptions,\n ) {\n const errorInfo = getErrorInfo(errorResponse, requestOptions);\n super(errorInfo.id);\n\n this.name = errorInfo.id;\n this.id = errorInfo.id;\n this.request = failedRequest;\n this.requestOptions = requestOptions;\n\n this.status =\n failedRequest && failedRequest.status\n ? failedRequest.status\n : CLIENT_ERROR_CODE;\n\n this.response = errorResponse;\n this.properties = errorInfo.properties ?? {};\n this.parameters = errorInfo.param ?? null;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FetchException);\n }\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAkBA,MAAME,iBAAiB,GAAG,GAAG;;AAE7B;AACA;AACA;AACA,MAAMC,YAAY,GAAGA,CACnBC,aAAsC,EACtCC,cAA+B,KAC5B;EACH,MAAMC,gBAAgB,GAAG;IACvBC,EAAE,EAAE,6BAA6B;IACjCC,cAAc,
|
|
1
|
+
{"version":3,"file":"FetchException.js","names":["_objects","require","_Constants","CLIENT_ERROR_CODE","getErrorInfo","errorResponse","requestOptions","defaultErrorInfo","id","defaultMessage","url","method","HTTP_METHODS","GET","properties","param","has","error","key","_keys","default","errors","FetchException","Error","constructor","failedRequest","errorInfo","_defineProperty2","name","request","status","response","parameters","captureStackTrace","exports"],"sources":["../../src/exceptions/FetchException.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\n\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport type { MessageParameters } from \"../i18n/types\";\nimport type { RequestOptions } from \"../utils/fetch/types\";\n\nexport type ModularUIErrorResponse = {\n error: {\n id: string,\n properties: {\n [propertyName: string]: string | number,\n ...\n },\n },\n};\n\ntype RequestResult = { status: number };\ntype RequestParameters = { [key: string]: any };\n\nconst CLIENT_ERROR_CODE = 400;\n\n/**\n * @private\n */\nconst getErrorInfo = (\n errorResponse: ?ModularUIErrorResponse,\n requestOptions: ?RequestOptions,\n) => {\n const defaultErrorInfo = {\n id: \"Error.CannotRequestResource\",\n defaultMessage: `Cannot request resource ${\n requestOptions?.url ?? \"\"\n } with method ${requestOptions?.method ?? HTTP_METHODS.GET}`,\n properties: {},\n param: null,\n };\n\n if (!errorResponse) {\n return defaultErrorInfo;\n }\n\n if (has(errorResponse, \"error\")) {\n return {\n ...defaultErrorInfo,\n ...errorResponse.error,\n };\n }\n\n const [key] = Object.keys(errorResponse);\n if (has(errorResponse[key], \"errors\")) {\n return {\n ...defaultErrorInfo,\n // $FlowFixMe[prop-missing] - not sure in what case this could happen\n ...errorResponse[key].errors,\n };\n }\n\n return defaultErrorInfo;\n};\n\n/**\n * FetchException\n */\nexport default class FetchException extends Error {\n request: ?RequestResult | XMLHttpRequest;\n status: number;\n response: ?ModularUIErrorResponse;\n parameters: ?RequestParameters;\n properties: MessageParameters;\n requestOptions: ?RequestOptions;\n id: string;\n\n constructor(\n errorResponse: ?ModularUIErrorResponse,\n failedRequest?: ?RequestResult | XMLHttpRequest,\n requestOptions?: RequestOptions,\n ) {\n const errorInfo = getErrorInfo(errorResponse, requestOptions);\n super(errorInfo.id);\n\n this.name = errorInfo.id;\n this.id = errorInfo.id;\n this.request = failedRequest;\n this.requestOptions = requestOptions;\n\n this.status =\n failedRequest && failedRequest.status\n ? failedRequest.status\n : CLIENT_ERROR_CODE;\n\n this.response = errorResponse;\n this.properties = errorInfo.properties ?? {};\n this.parameters = errorInfo.param ?? null;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FetchException);\n }\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAkBA,MAAME,iBAAiB,GAAG,GAAG;;AAE7B;AACA;AACA;AACA,MAAMC,YAAY,GAAGA,CACnBC,aAAsC,EACtCC,cAA+B,KAC5B;EACH,MAAMC,gBAAgB,GAAG;IACvBC,EAAE,EAAE,6BAA6B;IACjCC,cAAc,EAAE,2BACdH,cAAc,EAAEI,GAAG,IAAI,EAAE,gBACXJ,cAAc,EAAEK,MAAM,IAAIC,uBAAY,CAACC,GAAG,EAAE;IAC5DC,UAAU,EAAE,CAAC,CAAC;IACdC,KAAK,EAAE;EACT,CAAC;EAED,IAAI,CAACV,aAAa,EAAE;IAClB,OAAOE,gBAAgB;EACzB;EAEA,IAAI,IAAAS,YAAG,EAACX,aAAa,EAAE,OAAO,CAAC,EAAE;IAC/B,OAAO;MACL,GAAGE,gBAAgB;MACnB,GAAGF,aAAa,CAACY;IACnB,CAAC;EACH;EAEA,MAAM,CAACC,GAAG,CAAC,GAAG,IAAAC,KAAA,CAAAC,OAAA,EAAYf,aAAa,CAAC;EACxC,IAAI,IAAAW,YAAG,EAACX,aAAa,CAACa,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;IACrC,OAAO;MACL,GAAGX,gBAAgB;MACnB;MACA,GAAGF,aAAa,CAACa,GAAG,CAAC,CAACG;IACxB,CAAC;EACH;EAEA,OAAOd,gBAAgB;AACzB,CAAC;;AAED;AACA;AACA;AACe,MAAMe,cAAc,SAASC,KAAK,CAAC;EAShDC,WAAWA,CACTnB,aAAsC,EACtCoB,aAA+C,EAC/CnB,cAA+B,EAC/B;IACA,MAAMoB,SAAS,GAAGtB,YAAY,CAACC,aAAa,EAAEC,cAAc,CAAC;IAC7D,KAAK,CAACoB,SAAS,CAAClB,EAAE,CAAC;IAAC,IAAAmB,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAAA,IAAAO,gBAAA,CAAAP,OAAA;IAEpB,IAAI,CAACQ,IAAI,GAAGF,SAAS,CAAClB,EAAE;IACxB,IAAI,CAACA,EAAE,GAAGkB,SAAS,CAAClB,EAAE;IACtB,IAAI,CAACqB,OAAO,GAAGJ,aAAa;IAC5B,IAAI,CAACnB,cAAc,GAAGA,cAAc;IAEpC,IAAI,CAACwB,MAAM,GACTL,aAAa,IAAIA,aAAa,CAACK,MAAM,GACjCL,aAAa,CAACK,MAAM,GACpB3B,iBAAiB;IAEvB,IAAI,CAAC4B,QAAQ,GAAG1B,aAAa;IAC7B,IAAI,CAACS,UAAU,GAAGY,SAAS,CAACZ,UAAU,IAAI,CAAC,CAAC;IAC5C,IAAI,CAACkB,UAAU,GAAGN,SAAS,CAACX,KAAK,IAAI,IAAI;IAEzC,IAAIQ,KAAK,CAACU,iBAAiB,EAAE;MAC3BV,KAAK,CAACU,iBAAiB,CAAC,IAAI,EAAEX,cAAc,CAAC;IAC/C;EACF;AACF;AAACY,OAAA,CAAAd,OAAA,GAAAE,cAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkException.js","names":["NetworkException","Error","constructor","url","method","_defineProperty2","default","name","id","status","_default","exports"],"sources":["../../src/exceptions/NetworkException.js"],"sourcesContent":["// @flow\n/**\n * NetworkException\n */\nclass NetworkException extends Error {\n status: number;\n id: string;\n\n constructor(url: string, method: string) {\n super(\n `An unexpected network error occurred, cannot request resource ${url} with method ${method}`,\n );\n\n this.name = \"NetworkException\";\n this.id = \"NetworkException\";\n this.status = 0;\n }\n}\n\nexport default NetworkException;\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,
|
|
1
|
+
{"version":3,"file":"NetworkException.js","names":["NetworkException","Error","constructor","url","method","_defineProperty2","default","name","id","status","_default","exports"],"sources":["../../src/exceptions/NetworkException.js"],"sourcesContent":["// @flow\n/**\n * NetworkException\n */\nclass NetworkException extends Error {\n status: number;\n id: string;\n\n constructor(url: string, method: string) {\n super(\n `An unexpected network error occurred, cannot request resource ${url} with method ${method}`,\n );\n\n this.name = \"NetworkException\";\n this.id = \"NetworkException\";\n this.status = 0;\n }\n}\n\nexport default NetworkException;\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,CACH,iEAAiED,GAAG,gBAAgBC,MAAM,EAC5F,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAEF,IAAI,CAACC,IAAI,GAAG,kBAAkB;IAC9B,IAAI,CAACC,EAAE,GAAG,kBAAkB;IAC5B,IAAI,CAACC,MAAM,GAAG,CAAC;EACjB;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAL,OAAA,GAEcN,gBAAgB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotFoundException.js","names":["NotFoundException","Error","constructor","url","method","isReload","arguments","length","undefined","_defineProperty2","default","name","id","status","_default","exports"],"sources":["../../src/exceptions/NotFoundException.js"],"sourcesContent":["// @flow\n/**\n * NotFoundException\n */\nclass NotFoundException extends Error {\n status: number;\n isReload: boolean;\n id: string;\n\n constructor(url: string, method: string, isReload: boolean = false) {\n super(`Resource ${url} with method ${method} not found`);\n\n this.name = \"NotFoundException\";\n this.id = \"NotFoundException\";\n this.status = 404;\n this.isReload = isReload;\n }\n}\n\nexport default NotFoundException;\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAKpCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAA6B;IAAA,IAA3BC,QAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAChE,KAAK,
|
|
1
|
+
{"version":3,"file":"NotFoundException.js","names":["NotFoundException","Error","constructor","url","method","isReload","arguments","length","undefined","_defineProperty2","default","name","id","status","_default","exports"],"sources":["../../src/exceptions/NotFoundException.js"],"sourcesContent":["// @flow\n/**\n * NotFoundException\n */\nclass NotFoundException extends Error {\n status: number;\n isReload: boolean;\n id: string;\n\n constructor(url: string, method: string, isReload: boolean = false) {\n super(`Resource ${url} with method ${method} not found`);\n\n this.name = \"NotFoundException\";\n this.id = \"NotFoundException\";\n this.status = 404;\n this.isReload = isReload;\n }\n}\n\nexport default NotFoundException;\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAKpCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAA6B;IAAA,IAA3BC,QAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAChE,KAAK,CAAC,YAAYH,GAAG,gBAAgBC,MAAM,YAAY,CAAC;IAAC,IAAAK,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAEzD,IAAI,CAACC,IAAI,GAAG,mBAAmB;IAC/B,IAAI,CAACC,EAAE,GAAG,mBAAmB;IAC7B,IAAI,CAACC,MAAM,GAAG,GAAG;IACjB,IAAI,CAACR,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAAC,IAAAS,QAAA,GAAAC,OAAA,CAAAL,OAAA,GAEcV,iBAAiB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeoutException.js","names":["TimeoutException","Error","constructor","url","method","name","_default","exports","default"],"sources":["../../src/exceptions/TimeoutException.js"],"sourcesContent":["// @flow\n/**\n * TimeoutException\n */\nclass TimeoutException extends Error {\n constructor(url: string, method: string) {\n super(`Timeout occurred in connection to ${url} with method ${method}.`);\n\n this.name = \"TimeoutException\";\n }\n}\n\nexport default TimeoutException;\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EACnCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,
|
|
1
|
+
{"version":3,"file":"TimeoutException.js","names":["TimeoutException","Error","constructor","url","method","name","_default","exports","default"],"sources":["../../src/exceptions/TimeoutException.js"],"sourcesContent":["// @flow\n/**\n * TimeoutException\n */\nclass TimeoutException extends Error {\n constructor(url: string, method: string) {\n super(`Timeout occurred in connection to ${url} with method ${method}.`);\n\n this.name = \"TimeoutException\";\n }\n}\n\nexport default TimeoutException;\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EACnCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,CAAC,qCAAqCD,GAAG,gBAAgBC,MAAM,GAAG,CAAC;IAExE,IAAI,CAACC,IAAI,GAAG,kBAAkB;EAChC;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,gBAAgB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnauthorizedException.js","names":["UnauthorizedException","Error","constructor","url","method","errorResponse","_defineProperty2","default","name","id","status","response","_default","exports"],"sources":["../../src/exceptions/UnauthorizedException.js"],"sourcesContent":["// @flow\nimport type { ModularUIErrorResponse } from \"./FetchException\";\n\n/**\n * UnauthorizedException\n */\nclass UnauthorizedException extends Error {\n status: number;\n id: string;\n response: ?ModularUIErrorResponse;\n\n constructor(\n url: string,\n method: string,\n errorResponse: ?ModularUIErrorResponse,\n ) {\n super(`Cannot request resource ${url} with method ${method}`);\n\n this.name = \"UnauthorizedException\";\n this.id = \"UnauthorizedException\";\n this.status = 401;\n this.response = errorResponse;\n }\n}\n\nexport default UnauthorizedException;\n"],"mappings":";;;;;;;;AAGA;AACA;AACA;AACA,MAAMA,qBAAqB,SAASC,KAAK,CAAC;EAKxCC,WAAWA,CACTC,GAAW,EACXC,MAAc,EACdC,aAAsC,EACtC;IACA,KAAK,
|
|
1
|
+
{"version":3,"file":"UnauthorizedException.js","names":["UnauthorizedException","Error","constructor","url","method","errorResponse","_defineProperty2","default","name","id","status","response","_default","exports"],"sources":["../../src/exceptions/UnauthorizedException.js"],"sourcesContent":["// @flow\nimport type { ModularUIErrorResponse } from \"./FetchException\";\n\n/**\n * UnauthorizedException\n */\nclass UnauthorizedException extends Error {\n status: number;\n id: string;\n response: ?ModularUIErrorResponse;\n\n constructor(\n url: string,\n method: string,\n errorResponse: ?ModularUIErrorResponse,\n ) {\n super(`Cannot request resource ${url} with method ${method}`);\n\n this.name = \"UnauthorizedException\";\n this.id = \"UnauthorizedException\";\n this.status = 401;\n this.response = errorResponse;\n }\n}\n\nexport default UnauthorizedException;\n"],"mappings":";;;;;;;;AAGA;AACA;AACA;AACA,MAAMA,qBAAqB,SAASC,KAAK,CAAC;EAKxCC,WAAWA,CACTC,GAAW,EACXC,MAAc,EACdC,aAAsC,EACtC;IACA,KAAK,CAAC,2BAA2BF,GAAG,gBAAgBC,MAAM,EAAE,CAAC;IAAC,IAAAE,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAE9D,IAAI,CAACC,IAAI,GAAG,uBAAuB;IACnC,IAAI,CAACC,EAAE,GAAG,uBAAuB;IACjC,IAAI,CAACC,MAAM,GAAG,GAAG;IACjB,IAAI,CAACC,QAAQ,GAAGN,aAAa;EAC/B;AACF;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAN,OAAA,GAEcP,qBAAqB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthentication.js","names":["_reactRedux","require","_ModularUISelectors","_actions","_Cache","_interopRequireDefault","_constants","_exceptions","useLogin","Cache","setItem","dispatch","useDispatch","application","useSelector","getApplication","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","errorMessage","error","resetErrors","resetAuthErrors","login","username","password","redirectLogin","authenticationType","getItem","IllegalStateException","authentication","redirectUri","window","location","assign","getBasePath","exports","useLogout","LOGOUT_PATH","logoutPath","BASE_PATH","logout","origin","url"],"sources":["../../src/hooks/useAuthentication.js"],"sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getApplication } from \"../redux/_modularui/ModularUISelectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\n\nimport Cache from \"../utils/browser/Cache\";\nimport {\n DEFAULT_AUTHENTICATION_TYPE,\n getBasePath,\n logoutPath,\n} from \"../constants\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\nimport { IllegalStateException } from \"../exceptions\";\ntype LoginHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n redirectLogin: (authenticationType: AuthenticationType) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n logout: () => void,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n redirectLogin: (authenticationType: AuthenticationType) => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n // prevent endless loop in redirects when authentication type can't be redirected\n throw new IllegalStateException(\n `Could not redirect to '${\n authenticationType.authentication\n }' using url: '${authenticationType.redirectUri ?? \"\"}'`,\n );\n }\n\n if (!isAuthenticated) {\n Cache.setItem(\"isRedirectLogin\", true);\n window.location.assign(\n `${getBasePath()}${authenticationType.redirectUri ?? \"\"}`,\n );\n }\n },\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n\n const LOGOUT_PATH = logoutPath();\n const BASE_PATH = getBasePath();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n };\n};\n"],"mappings":";;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAQA,IAAAM,WAAA,GAAAN,OAAA;AAeA;AACA;AACO,MAAMO,QAAQ,GAAGA,CAAA,KAAiB;EACvCC,cAAK,CAACC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;EAEvC,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAE9B,MAAMC,WAAW,GAAG,IAAAC,uBAAW,EAACC,kCAAc,CAAC;EAC/C,MAAMC,IAAI,GAAG,IAAAF,uBAAW,EAAEG,KAAK,IAAKA,KAAK,CAACD,IAAI,CAAC;EAE/C,MAAME,eAAe,GAAGL,WAAW,EAAEM,UAAU,IAAI,KAAK;EAExD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEP,WAAW,EAAEO,mBAAmB,IAAI,CACvDC,sCAA2B,CAC5B;IACDC,YAAY,EAAEN,IAAI,CAACO,KAAK;IACxBC,WAAW,EAAEA,CAAA,KAAMb,QAAQ,CAAC,IAAAc,wBAAe,EAAC,CAAC,CAAC;IAC9CC,KAAK,EAAEA,CAACC,QAAgB,EAAEC,QAAgB,KACxCjB,QAAQ,CAAC,IAAAe,cAAK,EAACC,QAAQ,EAAEC,QAAQ,CAAC,CAAC;IACrCC,aAAa,EAAGC,kBAAsC,IAAK;MACzD,IAAIrB,cAAK,CAACsB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC;QACA,MAAM,IAAIC,iCAAqB,
|
|
1
|
+
{"version":3,"file":"useAuthentication.js","names":["_reactRedux","require","_ModularUISelectors","_actions","_Cache","_interopRequireDefault","_constants","_exceptions","useLogin","Cache","setItem","dispatch","useDispatch","application","useSelector","getApplication","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","DEFAULT_AUTHENTICATION_TYPE","errorMessage","error","resetErrors","resetAuthErrors","login","username","password","redirectLogin","authenticationType","getItem","IllegalStateException","authentication","redirectUri","window","location","assign","getBasePath","exports","useLogout","LOGOUT_PATH","logoutPath","BASE_PATH","logout","origin","url"],"sources":["../../src/hooks/useAuthentication.js"],"sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getApplication } from \"../redux/_modularui/ModularUISelectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\n\nimport Cache from \"../utils/browser/Cache\";\nimport {\n DEFAULT_AUTHENTICATION_TYPE,\n getBasePath,\n logoutPath,\n} from \"../constants\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\nimport { IllegalStateException } from \"../exceptions\";\ntype LoginHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n redirectLogin: (authenticationType: AuthenticationType) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n logout: () => void,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n redirectLogin: (authenticationType: AuthenticationType) => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n // prevent endless loop in redirects when authentication type can't be redirected\n throw new IllegalStateException(\n `Could not redirect to '${\n authenticationType.authentication\n }' using url: '${authenticationType.redirectUri ?? \"\"}'`,\n );\n }\n\n if (!isAuthenticated) {\n Cache.setItem(\"isRedirectLogin\", true);\n window.location.assign(\n `${getBasePath()}${authenticationType.redirectUri ?? \"\"}`,\n );\n }\n },\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n\n const LOGOUT_PATH = logoutPath();\n const BASE_PATH = getBasePath();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModularUI.js","names":["_react","require","_reactRedux","_constants","_ModularUIActions","_useDeepCompareEffect","_interopRequireDefault","_useI18n","useKeyForHook","modelKey","url","locale","useLocale","split","useModularUI","options","arguments","length","undefined","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","useDispatch","href","toString","key","prevOptions","useRef","prevHref","useDeepCompareEffect","isOldReload","current","isReload","loadModularUI","useEffect","removeModelByKey","useSelector","state","modularui","exports"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\n\nimport type Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useLocale();\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = url.toString();\n const key = useKeyForHook(modelKey, href);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (!isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAKA,IAAAI,qBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AAKA;AACA;AACA,MAAMO,aAAa,GAAGA,CAACC,QAAgB,EAAEC,GAAW,KAAK;EACvD,MAAMC,MAAM,GAAG,IAAAC,kBAAS,EAAC,CAAC;EAC1B,
|
|
1
|
+
{"version":3,"file":"useModularUI.js","names":["_react","require","_reactRedux","_constants","_ModularUIActions","_useDeepCompareEffect","_interopRequireDefault","_useI18n","useKeyForHook","modelKey","url","locale","useLocale","split","useModularUI","options","arguments","length","undefined","method","HTTP_METHODS","GET","removeOnUnmount","dispatch","useDispatch","href","toString","key","prevOptions","useRef","prevHref","useDeepCompareEffect","isOldReload","current","isReload","loadModularUI","useEffect","removeModelByKey","useSelector","state","modularui","exports"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\n\nimport type Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useLocale();\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = url.toString();\n const key = useKeyForHook(modelKey, href);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (!isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAKA,IAAAI,qBAAA,GAAAC,sBAAA,CAAAL,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AAKA;AACA;AACA,MAAMO,aAAa,GAAGA,CAACC,QAAgB,EAAEC,GAAW,KAAK;EACvD,MAAMC,MAAM,GAAG,IAAAC,kBAAS,EAAC,CAAC;EAC1B,OAAO,GAAGH,QAAQ,IAAIC,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKF,MAAM,GAAG;AACvD,CAAC;;AAED;AACA;AACA;AACO,MAAMG,YAAY,GAAG,SAAAA,CAC1BL,QAAgB,EAChBC,GAAkB,EAKV;EAAA,IAJRK,OAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACjCG,MAAM,EAAEC,uBAAY,CAACC,GAAG;IACxBC,eAAe,EAAE;EACnB,CAAC;EAED,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,MAAMC,IAAI,GAAGf,GAAG,CAACgB,QAAQ,CAAC,CAAC;EAC3B,MAAMC,GAAG,GAAGnB,aAAa,CAACC,QAAQ,EAAEgB,IAAI,CAAC;EAEzC,MAAMG,WAAW,GAAG,IAAAC,aAAM,EAACd,OAAO,CAAC;EACnC,MAAMe,QAAQ,GAAG,IAAAD,aAAM,EAACJ,IAAI,CAAC;;EAE7B;EACA,IAAAM,6BAAoB,EAAC,MAAM;IACzB;IACA,MAAMC,WAAW,GACfF,QAAQ,CAACG,OAAO,KAAKR,IAAI,IACzBG,WAAW,CAACK,OAAO,CAACC,QAAQ,IAC5B,CAACnB,OAAO,CAACmB,QAAQ;IAEnB,IAAI,CAACF,WAAW,EAAE;MAChBT,QAAQ,CAAC,IAAAY,+BAAa,EAACR,GAAG,EAAEF,IAAI,EAAEV,OAAO,CAAC,CAAC;IAC7C;IAEAa,WAAW,CAACK,OAAO,GAAGlB,OAAO;IAC7Be,QAAQ,CAACG,OAAO,GAAGR,IAAI;EACzB,CAAC,EAAE,CAACE,GAAG,EAAEF,IAAI,EAAEV,OAAO,CAAC,CAAC;EAExB,MAAM;IAAEO,eAAe,GAAG;EAAM,CAAC,GAAGP,OAAO;EAC3C,IAAAqB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAId,eAAe,EAAE;QACnBC,QAAQ,CAAC,IAAAc,kCAAgB,EAACV,GAAG,CAAC,CAAC;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACJ,QAAQ,EAAEI,GAAG,EAAEL,eAAe,CAAC,CAAC;;EAEpC;EACA,OAAO,IAAAgB,uBAAW,EAAEC,KAAK,IAAK;IAC5B,OAAOA,KAAK,CAACC,SAAS,CAACb,GAAG,CAAC;EAC7B,CAAC,CAAC;AACJ,CAAC;AAACc,OAAA,CAAA3B,YAAA,GAAAA,YAAA","ignoreList":[]}
|
package/lib/i18n/Locale.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Locale.js","names":["_formatMessage","_interopRequireDefault","require","_languages","_exceptions","_constants","Locale","constructor","locale","_defineProperty2","default","_code","code","_messages","fixPlaceHoldersInObject","messages","_errors","errors","_nativeName","nativeName","formatMessage","setup","missingTranslation","aLocale","split","length","language","languages","lang","toUpperCase","IllegalStateException","fixPlaceHolders","message","replace","arguments","undefined","JSON","parse","_stringify","getBaseMessage","id","defaultMessage","messageFromLocale","process","env","NODE_ENV","getSetting","console","debug","parameters","getMessage","update","_default","exports"],"sources":["../../src/i18n/Locale.js"],"sourcesContent":["// @flow\nimport formatMessage from \"format-message\";\n\nimport languages from \"./languages\";\nimport { IllegalStateException } from \"../exceptions\";\n\nimport { getSetting } from \"../constants\";\n\nimport type { LocaleConfiguration, MessageParameters } from \"./types\";\n\n/**\n * Create a locale\n */\nclass Locale {\n _code: string;\n _messages: { [string]: string };\n _errors: { [string]: string };\n _nativeName: ?string;\n\n constructor(locale: LocaleConfiguration) {\n this._code = locale.code;\n\n this._messages = this.fixPlaceHoldersInObject(locale.messages);\n this._errors = this.fixPlaceHoldersInObject(locale.errors);\n\n this._nativeName = locale.nativeName;\n\n formatMessage.setup({\n missingTranslation: \"ignore\",\n });\n }\n\n /**\n * Retrieve locale code\n */\n get code(): string {\n return this._code;\n }\n\n /**\n * Retrieve nativeName\n */\n get nativeName(): string {\n if (this._nativeName) {\n return this._nativeName;\n }\n\n const aLocale = this.code.split(\"-\");\n\n if (aLocale.length > 0) {\n const language = languages.lang[aLocale[0]];\n\n if (language) {\n return (\n language[1] + (aLocale[1] ? ` (${aLocale[1].toUpperCase()})` : \"\")\n );\n }\n }\n\n throw new IllegalStateException(\n `Can not find language name based on locale: ${this.code}`,\n );\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHolders(message: ?string): null | string {\n if (typeof message === \"string\") {\n return message\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\");\n }\n\n return null;\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHoldersInObject(messages: Object = {}): Object {\n return JSON.parse(\n JSON.stringify(messages)\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\"),\n );\n }\n\n /**\n * Retrieve message by id\n */\n getBaseMessage(id: string, defaultMessage?: string): string {\n if (!id && !defaultMessage) {\n return \"[message: id or defaultMessage missing]\";\n }\n\n const messageFromLocale = this._messages[id] || this._errors[id];\n\n if (\n (typeof process === \"undefined\" ||\n process.env.NODE_ENV !== \"production\") &&\n !messageFromLocale &&\n id &&\n getSetting(\"DEBUG_I18N_MESSAGE_NOT_FOUND\")\n ) {\n // eslint-disable-next-line no-console\n console.debug(\n `Message with id ${id} not found for locale ${this.code} in layout translations`,\n );\n }\n return messageFromLocale || this.fixPlaceHolders(defaultMessage) || id;\n }\n\n /**\n * Format message using formatMessage library\n */\n formatMessage(message: string, parameters?: MessageParameters): string {\n if (parameters) {\n return formatMessage(message, parameters);\n }\n\n return message;\n }\n\n /**\n * Retrieve a messages with replaced parameters\n */\n getMessage(\n id: string,\n defaultMessage?: string,\n parameters?: MessageParameters,\n ): string {\n const message = this.getBaseMessage(id, defaultMessage);\n return this.formatMessage(message, parameters);\n }\n\n /**\n * Add or change messages for this locale. It is not possible to remove messages.\n */\n update(messages: Object = {}, errors: Object = {}) {\n this._messages = {\n ...this._messages,\n ...this.fixPlaceHoldersInObject(messages),\n };\n\n this._errors = {\n ...this._errors,\n ...this.fixPlaceHoldersInObject(errors),\n };\n }\n}\n\nexport default Locale;\n"],"mappings":";;;;;;;;;AACA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAIA;AACA;AACA;AACA,MAAMI,MAAM,CAAC;EAMXC,WAAWA,CAACC,MAA2B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACvC,IAAI,CAACC,KAAK,GAAGH,MAAM,CAACI,IAAI;IAExB,IAAI,CAACC,SAAS,GAAG,IAAI,CAACC,uBAAuB,CAACN,MAAM,CAACO,QAAQ,CAAC;IAC9D,IAAI,CAACC,OAAO,GAAG,IAAI,CAACF,uBAAuB,CAACN,MAAM,CAACS,MAAM,CAAC;IAE1D,IAAI,CAACC,WAAW,GAAGV,MAAM,CAACW,UAAU;IAEpCC,sBAAa,CAACC,KAAK,CAAC;MAClBC,kBAAkB,EAAE;IACtB,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,IAAIV,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACD,KAAK;EACnB;;EAEA;AACF;AACA;EACE,IAAIQ,UAAUA,CAAA,EAAW;IACvB,IAAI,IAAI,CAACD,WAAW,EAAE;MACpB,OAAO,IAAI,CAACA,WAAW;IACzB;IAEA,MAAMK,OAAO,GAAG,IAAI,CAACX,IAAI,CAACY,KAAK,CAAC,GAAG,CAAC;IAEpC,IAAID,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;MACtB,MAAMC,QAAQ,GAAGC,kBAAS,CAACC,IAAI,CAACL,OAAO,CAAC,CAAC,CAAC,CAAC;MAE3C,IAAIG,QAAQ,EAAE;QACZ,OACEA,QAAQ,CAAC,CAAC,CAAC,IAAIH,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Locale.js","names":["_formatMessage","_interopRequireDefault","require","_languages","_exceptions","_constants","Locale","constructor","locale","_defineProperty2","default","_code","code","_messages","fixPlaceHoldersInObject","messages","_errors","errors","_nativeName","nativeName","formatMessage","setup","missingTranslation","aLocale","split","length","language","languages","lang","toUpperCase","IllegalStateException","fixPlaceHolders","message","replace","arguments","undefined","JSON","parse","_stringify","getBaseMessage","id","defaultMessage","messageFromLocale","process","env","NODE_ENV","getSetting","console","debug","parameters","getMessage","update","_default","exports"],"sources":["../../src/i18n/Locale.js"],"sourcesContent":["// @flow\nimport formatMessage from \"format-message\";\n\nimport languages from \"./languages\";\nimport { IllegalStateException } from \"../exceptions\";\n\nimport { getSetting } from \"../constants\";\n\nimport type { LocaleConfiguration, MessageParameters } from \"./types\";\n\n/**\n * Create a locale\n */\nclass Locale {\n _code: string;\n _messages: { [string]: string };\n _errors: { [string]: string };\n _nativeName: ?string;\n\n constructor(locale: LocaleConfiguration) {\n this._code = locale.code;\n\n this._messages = this.fixPlaceHoldersInObject(locale.messages);\n this._errors = this.fixPlaceHoldersInObject(locale.errors);\n\n this._nativeName = locale.nativeName;\n\n formatMessage.setup({\n missingTranslation: \"ignore\",\n });\n }\n\n /**\n * Retrieve locale code\n */\n get code(): string {\n return this._code;\n }\n\n /**\n * Retrieve nativeName\n */\n get nativeName(): string {\n if (this._nativeName) {\n return this._nativeName;\n }\n\n const aLocale = this.code.split(\"-\");\n\n if (aLocale.length > 0) {\n const language = languages.lang[aLocale[0]];\n\n if (language) {\n return (\n language[1] + (aLocale[1] ? ` (${aLocale[1].toUpperCase()})` : \"\")\n );\n }\n }\n\n throw new IllegalStateException(\n `Can not find language name based on locale: ${this.code}`,\n );\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHolders(message: ?string): null | string {\n if (typeof message === \"string\") {\n return message\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\");\n }\n\n return null;\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHoldersInObject(messages: Object = {}): Object {\n return JSON.parse(\n JSON.stringify(messages)\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\"),\n );\n }\n\n /**\n * Retrieve message by id\n */\n getBaseMessage(id: string, defaultMessage?: string): string {\n if (!id && !defaultMessage) {\n return \"[message: id or defaultMessage missing]\";\n }\n\n const messageFromLocale = this._messages[id] || this._errors[id];\n\n if (\n (typeof process === \"undefined\" ||\n process.env.NODE_ENV !== \"production\") &&\n !messageFromLocale &&\n id &&\n getSetting(\"DEBUG_I18N_MESSAGE_NOT_FOUND\")\n ) {\n // eslint-disable-next-line no-console\n console.debug(\n `Message with id ${id} not found for locale ${this.code} in layout translations`,\n );\n }\n return messageFromLocale || this.fixPlaceHolders(defaultMessage) || id;\n }\n\n /**\n * Format message using formatMessage library\n */\n formatMessage(message: string, parameters?: MessageParameters): string {\n if (parameters) {\n return formatMessage(message, parameters);\n }\n\n return message;\n }\n\n /**\n * Retrieve a messages with replaced parameters\n */\n getMessage(\n id: string,\n defaultMessage?: string,\n parameters?: MessageParameters,\n ): string {\n const message = this.getBaseMessage(id, defaultMessage);\n return this.formatMessage(message, parameters);\n }\n\n /**\n * Add or change messages for this locale. It is not possible to remove messages.\n */\n update(messages: Object = {}, errors: Object = {}) {\n this._messages = {\n ...this._messages,\n ...this.fixPlaceHoldersInObject(messages),\n };\n\n this._errors = {\n ...this._errors,\n ...this.fixPlaceHoldersInObject(errors),\n };\n }\n}\n\nexport default Locale;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/i18n/Locales.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Locales.js","names":["_Locale","_interopRequireDefault","require","_beinformed_error_messages_en","_beinformed_error_messages_nl","_BaseCollection","_exceptions","availableLocales","exports","code","messages","errors","englishErrors","dutchErrors","createLocalesWithConfiguredErrors","configuredErrors","_map","default","call","availableLocale","Locales","BaseCollection","constructor","locales","arguments","length","undefined","locale","Locale","rehydrate","hydatedLocales","_collection","_context","_code","_messages","_errors","hasLocale","localeCode","some","item","_startsWith","getLocale","_context2","_find","IllegalArgumentException","availableLocaleCodes","_context3","getPreferredLocale","acceptLanguageHeader","_context4","acceptLanguages","match","preferredLocales","_filter","_context5","update","add","_default"],"sources":["../../src/i18n/Locales.js"],"sourcesContent":["// @flow\nimport Locale from \"./Locale\";\n\nimport englishErrors from \"./translations/beinformed_error_messages_en.nl\";\nimport dutchErrors from \"./translations/beinformed_error_messages_nl.nl\";\n\nimport BaseCollection from \"../models/base/BaseCollection\";\n\nimport { IllegalArgumentException } from \"../exceptions\";\n\nimport type { LocaleConfiguration } from \"./types\";\n\ntype ErrorMessageObject = {\n [languageCode: string]: {\n [messageID: string]: string,\n },\n};\n\ntype HydratedLocales = {\n _collection: Array<{\n _code: string,\n _messages: {\n [string]: string,\n },\n _errors: {\n [string]: string,\n },\n }>,\n};\n\n/**\n * Array of available locales\n * Order of locales is the preferred order of locales.\n * When user has an accept language header that does not correspond to the locales array,\n * the first one is used as the preferred language\n */\nexport const availableLocales: Array<LocaleConfiguration> = [\n {\n code: \"en\",\n messages: {},\n errors: englishErrors,\n },\n {\n code: \"nl\",\n messages: {},\n errors: dutchErrors,\n },\n];\n\n/**\n * Merge an object with custom error messages (exported and translated from be informed for example) and merge them with the existing translations.\n */\nexport const createLocalesWithConfiguredErrors = (\n configuredErrors: ErrorMessageObject,\n): Array<Object> =>\n availableLocales.map((availableLocale) => {\n if (configuredErrors[availableLocale.code]) {\n return {\n ...availableLocale,\n errors: {\n ...availableLocale.errors,\n ...configuredErrors[availableLocale.code],\n },\n };\n }\n\n return availableLocale;\n });\n\n/**\n * Locales, collection of Locale\n */\nclass Locales extends BaseCollection<Locale> {\n constructor(locales: Array<LocaleConfiguration> = availableLocales) {\n super(locales.map((locale) => new Locale(locale)));\n }\n\n /**\n * rehydrate\n */\n static rehydrate(hydatedLocales: HydratedLocales): Locales {\n if (hydatedLocales && hydatedLocales._collection) {\n return new Locales(\n hydatedLocales._collection.map((locale) => ({\n code: locale._code,\n messages: locale._messages,\n errors: locale._errors,\n })),\n );\n }\n\n return new Locales([]);\n }\n\n /**\n * Check if locale with localeCode exists\n */\n hasLocale(localeCode: string): boolean {\n return this.some((item) => localeCode.startsWith(item.code));\n }\n\n /**\n * Retrieve locales by localeCode from Locales collection\n */\n getLocale(localeCode: string): Locale {\n if (this.hasLocale(localeCode)) {\n const locale = this.find((item) => localeCode.startsWith(item.code));\n if (locale) {\n return locale;\n }\n }\n throw new IllegalArgumentException(\n `Locale configuration for locale ${localeCode} not found`,\n );\n }\n\n /**\n * Retrieve all available locale codes\n */\n get availableLocaleCodes(): Array<string> {\n return this.map((locale) => locale.code);\n }\n\n /**\n * Retrieve preferred locale based on the accept header of a browser\n */\n getPreferredLocale(acceptLanguageHeader: string | null): void | string {\n if (acceptLanguageHeader != null) {\n const acceptLanguages =\n acceptLanguageHeader.match(/[-A-Za-z]{2,10}/gu) || [];\n\n const preferredLocales = acceptLanguages\n .filter((locale) =>\n this.availableLocaleCodes.some((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n )\n .map((locale) =>\n this.availableLocaleCodes.find((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n );\n\n if (preferredLocales.length > 0) {\n return preferredLocales[0];\n }\n }\n\n return this.availableLocaleCodes[0];\n }\n\n /**\n * Add or change messages and errors for the given locale.<br>\n * It is not possible to remove messages.\n */\n update(locale: string, messages: Object = {}, errors: Object = {}) {\n if (this.hasLocale(locale)) {\n this.getLocale(locale).update(messages, errors);\n } else {\n this.add(\n new Locale({\n code: locale,\n messages,\n errors,\n }),\n );\n }\n }\n}\n\nexport default Locales;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Locales.js","names":["_Locale","_interopRequireDefault","require","_beinformed_error_messages_en","_beinformed_error_messages_nl","_BaseCollection","_exceptions","availableLocales","exports","code","messages","errors","englishErrors","dutchErrors","createLocalesWithConfiguredErrors","configuredErrors","_map","default","call","availableLocale","Locales","BaseCollection","constructor","locales","arguments","length","undefined","locale","Locale","rehydrate","hydatedLocales","_collection","_context","_code","_messages","_errors","hasLocale","localeCode","some","item","_startsWith","getLocale","_context2","_find","IllegalArgumentException","availableLocaleCodes","_context3","getPreferredLocale","acceptLanguageHeader","_context4","acceptLanguages","match","preferredLocales","_filter","_context5","update","add","_default"],"sources":["../../src/i18n/Locales.js"],"sourcesContent":["// @flow\nimport Locale from \"./Locale\";\n\nimport englishErrors from \"./translations/beinformed_error_messages_en.nl\";\nimport dutchErrors from \"./translations/beinformed_error_messages_nl.nl\";\n\nimport BaseCollection from \"../models/base/BaseCollection\";\n\nimport { IllegalArgumentException } from \"../exceptions\";\n\nimport type { LocaleConfiguration } from \"./types\";\n\ntype ErrorMessageObject = {\n [languageCode: string]: {\n [messageID: string]: string,\n },\n};\n\ntype HydratedLocales = {\n _collection: Array<{\n _code: string,\n _messages: {\n [string]: string,\n },\n _errors: {\n [string]: string,\n },\n }>,\n};\n\n/**\n * Array of available locales\n * Order of locales is the preferred order of locales.\n * When user has an accept language header that does not correspond to the locales array,\n * the first one is used as the preferred language\n */\nexport const availableLocales: Array<LocaleConfiguration> = [\n {\n code: \"en\",\n messages: {},\n errors: englishErrors,\n },\n {\n code: \"nl\",\n messages: {},\n errors: dutchErrors,\n },\n];\n\n/**\n * Merge an object with custom error messages (exported and translated from be informed for example) and merge them with the existing translations.\n */\nexport const createLocalesWithConfiguredErrors = (\n configuredErrors: ErrorMessageObject,\n): Array<Object> =>\n availableLocales.map((availableLocale) => {\n if (configuredErrors[availableLocale.code]) {\n return {\n ...availableLocale,\n errors: {\n ...availableLocale.errors,\n ...configuredErrors[availableLocale.code],\n },\n };\n }\n\n return availableLocale;\n });\n\n/**\n * Locales, collection of Locale\n */\nclass Locales extends BaseCollection<Locale> {\n constructor(locales: Array<LocaleConfiguration> = availableLocales) {\n super(locales.map((locale) => new Locale(locale)));\n }\n\n /**\n * rehydrate\n */\n static rehydrate(hydatedLocales: HydratedLocales): Locales {\n if (hydatedLocales && hydatedLocales._collection) {\n return new Locales(\n hydatedLocales._collection.map((locale) => ({\n code: locale._code,\n messages: locale._messages,\n errors: locale._errors,\n })),\n );\n }\n\n return new Locales([]);\n }\n\n /**\n * Check if locale with localeCode exists\n */\n hasLocale(localeCode: string): boolean {\n return this.some((item) => localeCode.startsWith(item.code));\n }\n\n /**\n * Retrieve locales by localeCode from Locales collection\n */\n getLocale(localeCode: string): Locale {\n if (this.hasLocale(localeCode)) {\n const locale = this.find((item) => localeCode.startsWith(item.code));\n if (locale) {\n return locale;\n }\n }\n throw new IllegalArgumentException(\n `Locale configuration for locale ${localeCode} not found`,\n );\n }\n\n /**\n * Retrieve all available locale codes\n */\n get availableLocaleCodes(): Array<string> {\n return this.map((locale) => locale.code);\n }\n\n /**\n * Retrieve preferred locale based on the accept header of a browser\n */\n getPreferredLocale(acceptLanguageHeader: string | null): void | string {\n if (acceptLanguageHeader != null) {\n const acceptLanguages =\n acceptLanguageHeader.match(/[-A-Za-z]{2,10}/gu) || [];\n\n const preferredLocales = acceptLanguages\n .filter((locale) =>\n this.availableLocaleCodes.some((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n )\n .map((locale) =>\n this.availableLocaleCodes.find((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n );\n\n if (preferredLocales.length > 0) {\n return preferredLocales[0];\n }\n }\n\n return this.availableLocaleCodes[0];\n }\n\n /**\n * Add or change messages and errors for the given locale.<br>\n * It is not possible to remove messages.\n */\n update(locale: string, messages: Object = {}, errors: Object = {}) {\n if (this.hasLocale(locale)) {\n this.getLocale(locale).update(messages, errors);\n } else {\n this.add(\n new Locale({\n code: locale,\n messages,\n errors,\n }),\n );\n }\n }\n}\n\nexport default Locales;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_ActionModel","ActionCollection","BaseCollection","constructor","actions","actionsContributions","Array","isArray","collection","actionModels","actionData","actionContribution","_find","default","call","name","type","push","ActionModel","getActionByKey","key","_context","newCollection","_filter","action","first","getActionsByType","_context2","_includes","getActionsByLayoutHint","_context3","_len","arguments","length","hints","_key","layouthint","has","hasActionsByLayoutHint","routePath","_context4","enabledRoutes","isDisabled","path","_map","selfhref","join","exports"],"sources":["../../../src/models/actions/ActionCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport ActionModel from \"./ActionModel\";\n\n/**\n * Collection of actions\n */\nexport default class ActionCollection extends BaseCollection<ActionModel> {\n constructor(actions?: Object, actionsContributions?: Object) {\n super();\n\n // no actions gives an empty collection\n if (!Array.isArray(actions)) {\n this.collection = [];\n } else if (Array.isArray(actionsContributions)) {\n const actionModels = [];\n for (const actionData of actions) {\n const actionContribution = actionsContributions.find(\n (actionContribution) =>\n actionContribution.name === actionData.name &&\n actionContribution.type !== \"service-operation\",\n );\n\n if (actionContribution) {\n actionModels.push(new ActionModel(actionData, actionContribution));\n }\n }\n\n this.collection = actionModels;\n }\n }\n\n /**\n * Retrieve action by key\n */\n getActionByKey(key: string): ActionModel | null {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) => action.key === key);\n\n return newCollection.first;\n }\n\n /**\n * Retrieve actions by type\n */\n getActionsByType(type: string | Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n Array.isArray(type) ? type.includes(action.type) : action.type === type,\n );\n\n return newCollection;\n }\n\n /**\n * Retrieve actions including a layout hint\n */\n getActionsByLayoutHint(...hints: Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n action.layouthint.has(...hints),\n );\n\n return newCollection;\n }\n\n /**\n * Indicates if an action with layout hint exists\n */\n hasActionsByLayoutHint(...hints: Array<string>): boolean {\n return this.getActionsByLayoutHint(...hints).length > 0;\n }\n\n /**\n * Use as path regex for react router routes\n */\n get routePath(): string {\n const enabledRoutes = this.collection.filter(\n (action) => !action.isDisabled,\n );\n\n if (enabledRoutes.length === 0) {\n return \"__NON_EXISTING_ROUTE__\";\n }\n\n const path = enabledRoutes.map((action) => action.selfhref.path).join(\"|\");\n\n return this.length > 1 ? `(${path})` : path;\n }\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ActionCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_ActionModel","ActionCollection","BaseCollection","constructor","actions","actionsContributions","Array","isArray","collection","actionModels","actionData","actionContribution","_find","default","call","name","type","push","ActionModel","getActionByKey","key","_context","newCollection","_filter","action","first","getActionsByType","_context2","_includes","getActionsByLayoutHint","_context3","_len","arguments","length","hints","_key","layouthint","has","hasActionsByLayoutHint","routePath","_context4","enabledRoutes","isDisabled","path","_map","selfhref","join","exports"],"sources":["../../../src/models/actions/ActionCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport ActionModel from \"./ActionModel\";\n\n/**\n * Collection of actions\n */\nexport default class ActionCollection extends BaseCollection<ActionModel> {\n constructor(actions?: Object, actionsContributions?: Object) {\n super();\n\n // no actions gives an empty collection\n if (!Array.isArray(actions)) {\n this.collection = [];\n } else if (Array.isArray(actionsContributions)) {\n const actionModels = [];\n for (const actionData of actions) {\n const actionContribution = actionsContributions.find(\n (actionContribution) =>\n actionContribution.name === actionData.name &&\n actionContribution.type !== \"service-operation\",\n );\n\n if (actionContribution) {\n actionModels.push(new ActionModel(actionData, actionContribution));\n }\n }\n\n this.collection = actionModels;\n }\n }\n\n /**\n * Retrieve action by key\n */\n getActionByKey(key: string): ActionModel | null {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) => action.key === key);\n\n return newCollection.first;\n }\n\n /**\n * Retrieve actions by type\n */\n getActionsByType(type: string | Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n Array.isArray(type) ? type.includes(action.type) : action.type === type,\n );\n\n return newCollection;\n }\n\n /**\n * Retrieve actions including a layout hint\n */\n getActionsByLayoutHint(...hints: Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n action.layouthint.has(...hints),\n );\n\n return newCollection;\n }\n\n /**\n * Indicates if an action with layout hint exists\n */\n hasActionsByLayoutHint(...hints: Array<string>): boolean {\n return this.getActionsByLayoutHint(...hints).length > 0;\n }\n\n /**\n * Use as path regex for react router routes\n */\n get routePath(): string {\n const enabledRoutes = this.collection.filter(\n (action) => !action.isDisabled,\n );\n\n if (enabledRoutes.length === 0) {\n return \"__NON_EXISTING_ROUTE__\";\n }\n\n const path = enabledRoutes.map((action) => action.selfhref.path).join(\"|\");\n\n return this.length > 1 ? `(${path})` : path;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionModel.js","names":["_objects","require","_ProcessStatusSettingsModel","_interopRequireDefault","_AttributeCollection","_BaseModel","_Href","_Constants","_LayoutHints","ActionModel","BaseModel","constructor","data","contributions","_defineProperty2","default","_fieldCollection","AttributeCollection","fields","createFromHref","name","href","label","type","arguments","length","undefined","isDisabled","selfhref","_href","Href","querystring","method","getData","HTTP_METHODS","POST","layouthint","has","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","getContribution","all","fieldCollection","_context","_context2","_map","_filter","call","attribute","value","join","getFieldByKey","key","getAttributeByKey","hasFieldByKey","isProcessTask","processStatus","ProcessStatusSettingsModel","icon","_icon","exports"],"sources":["../../../src/models/actions/ActionModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ProcessStatusSettingsModel from \"../process/ProcessStatusSettingsModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport {\n CREATE_ACTION,\n UPDATE_ACTION,\n DELETE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Defines an Action. For instance an action on the tab 'books', which leads to a form\n */\nexport default class ActionModel extends BaseModel {\n _fieldCollection: AttributeCollection;\n _href: Href;\n _icon: string;\n\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._fieldCollection = new AttributeCollection(\n this.data.fields,\n this.contributions.fields,\n );\n }\n\n /**\n */\n static createFromHref(\n name: string,\n href: string,\n label: string,\n type: string = \"form\",\n ): ActionModel {\n return new ActionModel(\n {\n name,\n href,\n },\n {\n name,\n label: label || name,\n type,\n },\n );\n }\n\n /**\n */\n get isDisabled(): boolean {\n return this.data.href == null;\n }\n\n /**\n * retrieve href of action\n */\n get selfhref(): Href {\n return (\n this._href || new Href(`${this.data.href}?${this.querystring}`, \"Form\")\n );\n }\n\n /**\n */\n set selfhref(href: Href) {\n this._href = href;\n }\n\n /**\n * retrieve request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.getData(\"method\", HTTP_METHODS.POST);\n }\n\n /**\n * Retrieve type of method\n */\n get type(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"type\", \"general\");\n }\n\n /**\n * Retrieve name of action\n */\n get name(): string {\n return this.getData(\"name\", \"unknown\");\n }\n\n /**\n * retrieve the collection of field attributes as an array\n */\n get fields(): Array<AttributeType> {\n return this._fieldCollection.all;\n }\n\n /**\n * Retrieve the field collection\n */\n get fieldCollection(): AttributeCollection {\n return this._fieldCollection;\n }\n\n /**\n */\n set fieldCollection(fieldCollection: AttributeCollection) {\n this._fieldCollection = fieldCollection;\n }\n\n /**\n * Retrieve querystring of action\n */\n get querystring(): string {\n return this.fields\n .filter((attribute) => attribute.value != null && attribute.value !== \"\")\n .map((attribute) => {\n const { value } = attribute;\n if (value !== null) {\n return `${attribute.name}=${value}`;\n }\n return attribute.name;\n })\n .join(\"&\");\n }\n\n /**\n * Retrieve a field by it's key\n */\n getFieldByKey(key: string): AttributeType | null {\n return this._fieldCollection.getAttributeByKey(key);\n }\n\n /**\n * Indicates if field exists by the given key\n */\n hasFieldByKey(key: string): boolean {\n return this.getFieldByKey(key) !== null;\n }\n\n /**\n * Getting the key/name of this action\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Getting the label of the action\n */\n get label(): string {\n return this.getContribution(\"label\", this.key);\n }\n\n /**\n */\n get isProcessTask(): boolean {\n return has(this.contributions, \"processTask\");\n }\n\n /**\n */\n get processStatus(): ProcessStatusSettingsModel | null {\n if (this.isProcessTask) {\n return new ProcessStatusSettingsModel(\n this.getData(\"processStatus\", {}),\n this.getContribution(\"processTask\", {}),\n );\n }\n\n return null;\n }\n\n /**\n */\n get icon(): string {\n return this._icon;\n }\n\n /**\n */\n set icon(icon: string) {\n this._icon = icon;\n }\n}\n"],"mappings":";;;;;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,UAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AAEA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAQA;AACA;AACA;AACe,MAAMQ,WAAW,SAASC,kBAAS,CAAC;EAKjDC,WAAWA,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAC/C,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAE3B,IAAI,CAACC,gBAAgB,GAAG,IAAIC,4BAAmB,CAC7C,IAAI,CAACL,IAAI,CAACM,MAAM,EAChB,IAAI,CAACL,aAAa,CAACK,MACrB,CAAC;EACH;;EAEA;AACF;EACE,OAAOC,cAAcA,CACnBC,IAAY,EACZC,IAAY,EACZC,KAAa,EAEA;IAAA,IADbC,IAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,MAAM;IAErB,OAAO,IAAIf,WAAW,CACpB;MACEW,IAAI;MACJC;IACF,CAAC,EACD;MACED,IAAI;MACJE,KAAK,EAAEA,KAAK,IAAIF,IAAI;MACpBG;IACF,CACF,CAAC;EACH;;EAEA;AACF;EACE,IAAII,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACf,IAAI,CAACS,IAAI,IAAI,IAAI;EAC/B;;EAEA;AACF;AACA;EACE,IAAIO,QAAQA,CAAA,EAAS;IACnB,OACE,IAAI,CAACC,KAAK,IAAI,IAAIC,aAAI,
|
|
1
|
+
{"version":3,"file":"ActionModel.js","names":["_objects","require","_ProcessStatusSettingsModel","_interopRequireDefault","_AttributeCollection","_BaseModel","_Href","_Constants","_LayoutHints","ActionModel","BaseModel","constructor","data","contributions","_defineProperty2","default","_fieldCollection","AttributeCollection","fields","createFromHref","name","href","label","type","arguments","length","undefined","isDisabled","selfhref","_href","Href","querystring","method","getData","HTTP_METHODS","POST","layouthint","has","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","getContribution","all","fieldCollection","_context","_context2","_map","_filter","call","attribute","value","join","getFieldByKey","key","getAttributeByKey","hasFieldByKey","isProcessTask","processStatus","ProcessStatusSettingsModel","icon","_icon","exports"],"sources":["../../../src/models/actions/ActionModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ProcessStatusSettingsModel from \"../process/ProcessStatusSettingsModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport {\n CREATE_ACTION,\n UPDATE_ACTION,\n DELETE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Defines an Action. For instance an action on the tab 'books', which leads to a form\n */\nexport default class ActionModel extends BaseModel {\n _fieldCollection: AttributeCollection;\n _href: Href;\n _icon: string;\n\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._fieldCollection = new AttributeCollection(\n this.data.fields,\n this.contributions.fields,\n );\n }\n\n /**\n */\n static createFromHref(\n name: string,\n href: string,\n label: string,\n type: string = \"form\",\n ): ActionModel {\n return new ActionModel(\n {\n name,\n href,\n },\n {\n name,\n label: label || name,\n type,\n },\n );\n }\n\n /**\n */\n get isDisabled(): boolean {\n return this.data.href == null;\n }\n\n /**\n * retrieve href of action\n */\n get selfhref(): Href {\n return (\n this._href || new Href(`${this.data.href}?${this.querystring}`, \"Form\")\n );\n }\n\n /**\n */\n set selfhref(href: Href) {\n this._href = href;\n }\n\n /**\n * retrieve request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.getData(\"method\", HTTP_METHODS.POST);\n }\n\n /**\n * Retrieve type of method\n */\n get type(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"type\", \"general\");\n }\n\n /**\n * Retrieve name of action\n */\n get name(): string {\n return this.getData(\"name\", \"unknown\");\n }\n\n /**\n * retrieve the collection of field attributes as an array\n */\n get fields(): Array<AttributeType> {\n return this._fieldCollection.all;\n }\n\n /**\n * Retrieve the field collection\n */\n get fieldCollection(): AttributeCollection {\n return this._fieldCollection;\n }\n\n /**\n */\n set fieldCollection(fieldCollection: AttributeCollection) {\n this._fieldCollection = fieldCollection;\n }\n\n /**\n * Retrieve querystring of action\n */\n get querystring(): string {\n return this.fields\n .filter((attribute) => attribute.value != null && attribute.value !== \"\")\n .map((attribute) => {\n const { value } = attribute;\n if (value !== null) {\n return `${attribute.name}=${value}`;\n }\n return attribute.name;\n })\n .join(\"&\");\n }\n\n /**\n * Retrieve a field by it's key\n */\n getFieldByKey(key: string): AttributeType | null {\n return this._fieldCollection.getAttributeByKey(key);\n }\n\n /**\n * Indicates if field exists by the given key\n */\n hasFieldByKey(key: string): boolean {\n return this.getFieldByKey(key) !== null;\n }\n\n /**\n * Getting the key/name of this action\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Getting the label of the action\n */\n get label(): string {\n return this.getContribution(\"label\", this.key);\n }\n\n /**\n */\n get isProcessTask(): boolean {\n return has(this.contributions, \"processTask\");\n }\n\n /**\n */\n get processStatus(): ProcessStatusSettingsModel | null {\n if (this.isProcessTask) {\n return new ProcessStatusSettingsModel(\n this.getData(\"processStatus\", {}),\n this.getContribution(\"processTask\", {}),\n );\n }\n\n return null;\n }\n\n /**\n */\n get icon(): string {\n return this._icon;\n }\n\n /**\n */\n set icon(icon: string) {\n this._icon = icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeCollection.js","names":["_objects","require","_ResourceCollection","_interopRequireDefault","_createAttribute","_ChoiceAttributeModel","_CompositeAttributeModel","_ContentConfiguration","_exceptions","AttributeCollection","ResourceCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_keys","default","attribute","createAttribute","has","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filter","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_find","attr","equals","CompositeAttributeModel","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","ChoiceAttributeModel","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","ConfigurationException","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWith","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_map","isVisible","getEmptyFormData","attributeFormData","_default","exports"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AttributeCollection.js","names":["_objects","require","_ResourceCollection","_interopRequireDefault","_createAttribute","_ChoiceAttributeModel","_CompositeAttributeModel","_ContentConfiguration","_exceptions","AttributeCollection","ResourceCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_keys","default","attribute","createAttribute","has","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filter","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_find","attr","equals","CompositeAttributeModel","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","ChoiceAttributeModel","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","ConfigurationException","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWith","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_map","isVisible","getEmptyFormData","attributeFormData","_default","exports"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeDataHelper.js","names":["_full","require","_pick","_interopRequireDefault","_objects","AttributeDataHelper","constructor","data","key","childrenKeys","_defineProperty2","default","_key","Array","isArray","_attribute","_find","call","attr","elementid","name","param","_value","getValue","attributeData","klona","_links","pick","undefined","_children","createChildren","childData","parentKey","childKey","elements","_context","element","has","isPlainObject","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","arguments","length","keyExplicitlyNull","value","_map","childrenIsArray","_context2","attribute","_values","suggestions","suggestion","options","_context3","_context4","_filter","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","_keys","getData","_context5","child","subChild","_default","exports"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>,\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key,\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = klona(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string,\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey,\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object,\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children,\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = [],\n ): Array<AttributeDataHelper> {\n // Check if the original data explicitly contains the key and is explicitly null.\n const keyExplicitlyNull = this.value === null;\n\n if (keyExplicitlyNull) {\n // Handling for when the value is explicitly null: set childData to null.\n return childrenKeys.map((keyObject) => {\n const childData = null;\n return this.createChild(data, childData, keyObject);\n });\n }\n\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n }),\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return undefined;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n const value = this.value === undefined ? null : this.value;\n return {\n key: this.key,\n value: value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData(),\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,mBAAmB,CAAC;EAMxB;AACF;EACEC,WAAWA,CACTC,IAA4B,EAC5BC,GAAW,EACXC,YAA2B,EAC3B;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACA,IAAI,CAACC,IAAI,GAAGJ,GAAG;IAEf,IAAIK,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE;MACvB,IAAI,CAACQ,UAAU,GACb,IAAAC,KAAA,CAAAL,OAAA,EAAAJ,IAAI,EAAAU,IAAA,CAAJV,IAAI,EACDW,IAAI,IACHA,IAAI,CAACC,SAAS,KAAKX,GAAG,IAAIU,IAAI,CAACE,IAAI,KAAKZ,GAAG,IAAIU,IAAI,CAACG,KAAK,KAAKb,GAClE,CAAC,IAAI,CAAC,CAAC;MACT,IAAI,CAACc,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACR,UAAU,CAAC;IAC9C,CAAC,MAAM;MACL,MAAMS,aAAa,GAAG,IAAAC,WAAK,EAAClB,IAAI,CAAC;MACjCiB,aAAa,CAACE,MAAM,GAAG,IAAAC,aAAI,EAACpB,IAAI,CAACmB,MAAM,EAAE,CACvC,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,CACb,CAAC;MAEF,IAAI,CAACX,UAAU,GAAGS,aAAa;MAE/B,IAAIjB,IAAI,CAACC,GAAG,CAAC,KAAKoB,SAAS,IAAK,MAAM,IAAIrB,IAAI,IAAI,OAAO,IAAIA,IAAK,EAAE;QAClE,IAAI,CAACe,MAAM,GAAG,IAAI,CAACC,QAAQ,CAAChB,IAAI,CAAC;MACnC,CAAC,MAAM;QACL,IAAI,CAACe,MAAM,GAAGf,IAAI,CAACC,GAAG,CAAC;MACzB;IACF;IAEA,IAAI,CAACqB,SAAS,GAAG,IAAI,CAACC,cAAc,CAACvB,IAAI,EAAEE,YAAY,CAAC;EAC1D;;EAEA;AACF;EACEsB,SAASA,CACPxB,IAA4B,EAC5ByB,SAAiB,EACjBC,QAAgB,EACR;IACR,IAAIpB,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,EAAE;MACvB,IAAIM,KAAK,CAACC,OAAO,CAAC,IAAI,CAACC,UAAU,CAACmB,QAAQ,CAAC,EAAE;QAAA,IAAAC,QAAA;QAC3C,OAAO,IAAAnB,KAAA,CAAAL,OAAA,EAAAwB,QAAA,OAAI,CAACpB,UAAU,CAACmB,QAAQ,EAAAjB,IAAA,CAAAkB,QAAA,EAC5BC,OAAO,IAAKA,OAAO,CAACjB,SAAS,KAAKc,QACrC,CAAC;MACH;IACF,CAAC,MAAM,IAAI,IAAAI,YAAG,EAAC9B,IAAI,EAAEyB,SAAS,CAAC,IAAI,IAAAM,sBAAa,EAAC/B,IAAI,CAACyB,SAAS,CAAC,CAAC,EAAE;MACjE,MAAMO,UAAU,GAAGhC,IAAI,CAACyB,SAAS,CAAC;MAClC,IAAI,IAAAM,sBAAa,EAACC,UAAU,CAAC,IAAIhC,IAAI,CAACiC,OAAO,GAAGP,QAAQ,CAAC,EAAE;QACzD,OAAO;UAAE,GAAGM,UAAU;UAAEC,OAAO,EAAEjC,IAAI,CAACiC,OAAO,CAACP,QAAQ;QAAE,CAAC;MAC3D;MACA,OAAOM,UAAU;IACnB,CAAC,MAAM,IAAI,IAAAF,YAAG,EAAC9B,IAAI,EAAE0B,QAAQ,CAAC,IAAI,IAAAK,sBAAa,EAAC/B,IAAI,CAAC0B,QAAQ,CAAC,CAAC,EAAE;MAC/D,OAAO1B,IAAI,CAAC0B,QAAQ,CAAC;IACvB;IAEA,IAAI,IAAAK,sBAAa,EAAC/B,IAAI,CAAC,EAAE;MACvB,OAAOA,IAAI;IACb;IAEA,OAAO,CAAC,CAAC;EACX;;EAEA;AACF;EACEkC,WAAWA,CACTlC,IAA4B,EAC5BwB,SAAiB,EACjBW,SAAiB,EACI;IACrB,MAAMC,aAAa,GACjB,IAAAL,sBAAa,EAAC/B,IAAI,CAAC,IAAI,CAACM,KAAK,CAACC,OAAO,CAACP,IAAI,CAAC,GACvCA,IAAI,CAACoC,aAAa,GAClBf,SAAS;IAEf,IAAIgB,eAAe,GAAG,IAAI;IAC1B,IAAIF,SAAS,CAACE,eAAe,EAAE;MAC7BA,eAAe,GAAGF,SAAS,CAACE,eAAe;IAC7C,CAAC,MAAM,IACL,IAAAN,sBAAa,EAAC/B,IAAI,CAAC,IACnB,OAAOA,IAAI,CAACC,GAAG,KAAK,QAAQ,IAC5BkC,SAAS,CAAClC,GAAG,EACb;MACAoC,eAAe,GAAI,GAAErC,IAAI,CAACC,GAAI,IAAGkC,SAAS,CAAClC,GAAI,EAAC;IAClD;IAEA,OAAO,IAAIH,mBAAmB,CAC5B;MACE,GAAG0B,SAAS;MACZY,aAAa;MACbC;IACF,CAAC,EACDF,SAAS,CAAClC,GAAG,EACbkC,SAAS,CAACG,QACZ,CAAC;EACH;;EAEA;AACF;EACEf,cAAcA,CACZvB,IAA4B,EAEA;IAAA,IAD5BE,YAA2B,GAAAqC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAlB,SAAA,GAAAkB,SAAA,MAAG,EAAE;IAEhC;IACA,MAAME,iBAAiB,GAAG,IAAI,CAACC,KAAK,KAAK,IAAI;IAE7C,IAAID,iBAAiB,EAAE;MACrB;MACA,OAAO,IAAAE,IAAA,CAAAvC,OAAA,EAAAF,YAAY,EAAAQ,IAAA,CAAZR,YAAY,EAAMiC,SAAS,IAAK;QACrC,MAAMX,SAAS,GAAG,IAAI;QACtB,OAAO,IAAI,CAACU,WAAW,CAAClC,IAAI,EAAEwB,SAAS,EAAEW,SAAS,CAAC;MACrD,CAAC,CAAC;IACJ;IAEA,MAAMS,eAAe,GAAGtC,KAAK,CAACC,OAAO,CAAC,IAAI,CAACmC,KAAK,CAAC;IAEjD,IAAIE,eAAe,EAAE;MAAA,IAAAC,SAAA;MACnB,OAAO,IAAAF,IAAA,CAAAvC,OAAA,EAAAyC,SAAA,OAAI,CAACH,KAAK,EAAAhC,IAAA,CAAAmC,SAAA,EAAMH,KAAK,IAC1B,IAAAC,IAAA,CAAAvC,OAAA,EAAAF,YAAY,EAAAQ,IAAA,CAAZR,YAAY,EAAMiC,SAAS,IAAK;QAC9B,MAAMX,SAAS,GAAG,IAAI,CAACA,SAAS,CAACkB,KAAK,EAAE,IAAI,CAACzC,GAAG,EAAEkC,SAAS,CAAClC,GAAG,CAAC;QAEhE,OAAO,IAAI,CAACiC,WAAW,CAAClC,IAAI,EAAEwB,SAAS,EAAEW,SAAS,CAAC;MACrD,CAAC,CACH,CAAC;IACH;IAEA,OAAO,IAAAQ,IAAA,CAAAvC,OAAA,EAAAF,YAAY,EAAAQ,IAAA,CAAZR,YAAY,EAAMiC,SAAS,IAAK;MACrC,MAAMX,SAAS,GAAG,IAAI,CAACA,SAAS,CAACxB,IAAI,EAAE,IAAI,CAACC,GAAG,EAAEkC,SAAS,CAAClC,GAAG,CAAC;MAE/D,OAAO,IAAI,CAACiC,WAAW,CAAClC,IAAI,EAAEwB,SAAS,EAAEW,SAAS,CAAC;IACrD,CAAC,CAAC;EACJ;;EAEA;AACF;EACEnB,QAAQA,CAAC8B,SAAiB,EAAO;IAC/B,IAAI,QAAQ,IAAIA,SAAS,EAAE;MACzB,WAAAC,OAAA,CAAA3C,OAAA,EAAO0C,SAAS;IAClB;IAEA,IAAI,OAAO,IAAIA,SAAS,EAAE;MACxB,OAAOA,SAAS,CAACJ,KAAK;IACxB;IAEA,IAAI,aAAa,IAAII,SAAS,EAAE;MAC9B,OAAOA,SAAS,CAACE,WAAW;IAC9B;IAEA,IAAI,YAAY,IAAIF,SAAS,EAAE;MAC7B,OAAOA,SAAS,CAACG,UAAU;IAC7B;IAEA,IAAI3C,KAAK,CAACC,OAAO,CAACuC,SAAS,CAACI,OAAO,CAAC,EAAE;MAAA,IAAAC,SAAA,EAAAC,SAAA;MACpC,OAAO,IAAAT,IAAA,CAAAvC,OAAA,EAAA+C,SAAA,OAAAE,OAAA,CAAAjD,OAAA,EAAAgD,SAAA,GAAAN,SAAS,CAACI,OAAO,EAAAxC,IAAA,CAAA0C,SAAA,EACbE,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAAC,EAAA7C,IAAA,CAAAyC,SAAA,EAC9BG,MAAM,IAAKA,MAAM,CAACE,IAAI,IAAIF,MAAM,CAACrD,GAAG,CAAC;IAC/C;IAEA,OAAOoB,SAAS;EAClB;;EAEA;AACF;EACE,IAAIpB,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACI,IAAI;EAClB;;EAEA;AACF;EACE,IAAIqC,KAAKA,CAAA,EAAQ;IACf,OAAO,IAAI,CAAC3B,MAAM;EACpB;;EAEA;AACF;EACE,IAAI0C,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACjD,UAAU,CAACiD,MAAM,IAAI,KAAK;EACxC;;EAEA;AACF;EACE,IAAIC,KAAKA,CAAA,EAAQ;IACf,OAAO,IAAI,CAAClD,UAAU,CAACW,MAAM,IAAI,KAAK,CAAC;EACzC;;EAEA;AACF;EACE,IAAIkB,eAAeA,CAAA,EAAW;IAC5B,OAAO,IAAI,CAAC7B,UAAU,CAAC6B,eAAe,IAAI,IAAI,CAACpC,GAAG;EACpD;;EAEA;AACF;AACA;AACA;EACE;AACF;EACE,IAAImC,aAAaA,CAAA,EAAQ;IACvB,MAAM;MAAEA;IAAc,CAAC,GAAG,IAAI,CAAC5B,UAAU;IACzC,IAAI,CAAC4B,aAAa,EAAE;MAClB,OAAO,KAAK,CAAC;IACf;IAEA,IAAI9B,KAAK,CAACC,OAAO,CAAC6B,aAAa,CAAC,EAAE;MAChC,OAAOA,aAAa;IACtB,CAAC,MAAM,IAAIA,aAAa,CAAC,IAAI,CAACC,eAAe,CAAC,EAAE;MAC9C,MAAMsB,MAAM,GAAGvB,aAAa,CAAC,IAAI,CAACC,eAAe,CAAC;MAClD,OAAO,IAAAM,IAAA,CAAAvC,OAAA,EAAAuD,MAAM,EAAAjD,IAAA,CAANiD,MAAM,EAAMhD,IAAI,IAAK;QAC1B,IAAIA,IAAI,CAACgB,QAAQ,EAAE;UACjB,OAAO;YACL,GAAGhB,IAAI;YACPgB,QAAQ,EAAE;cACR,GAAGhB,IAAI,CAACgB,QAAQ;cAChBS;YACF;UACF,CAAC;QACH;QAEA,OAAOzB,IAAI;MACb,CAAC,CAAC;IACJ;IAEA,OAAO,KAAK,CAAC;EACf;;EAEA;AACF;EACE,IAAIuC,OAAOA,CAAA,EAAQ;IACjB,OAAO,IAAI,CAAC1C,UAAU,CAAC0C,OAAO,IAAI,KAAK,CAAC;EAC1C;;EAEA;AACF;EACE,IAAIU,OAAOA,CAAA,EAAQ;IACjB,OAAO,IAAI,CAACpD,UAAU,CAACoD,OAAO,IAAI,KAAK,CAAC;EAC1C;;EAEA;AACF;EACE,IAAIC,QAAQA,CAAA,EAAY;IACtB,OAAO,IAAI,CAACrD,UAAU,CAACqD,QAAQ,IAAI,KAAK;EAC1C;;EAEA;AACF;EACE,IAAIC,aAAaA,CAAA,EAAQ;IACvB,OAAO,IAAI,CAACtD,UAAU,CAACsD,aAAa,IAAI,KAAK,CAAC;EAChD;;EAEA;AACF;EACE,IAAIxB,QAAQA,CAAA,EAA+B;IACzC,OAAO,IAAI,CAAChB,SAAS,IAAI,EAAE;EAC7B;;EAEA;AACF;EACE,IAAIW,OAAOA,CAAA,EAAW;IACpB,IAAI,IAAI,CAACzB,UAAU,CAACyB,OAAO,EAAE;MAC3B,MAAM8B,aAAa,GAAG,IAAA3C,aAAI,EAAC,IAAI,CAACZ,UAAU,CAACyB,OAAO,EAAE,CAClD,QAAQ,EACR,OAAO,EACP,UAAU,EACV,YAAY,EACZ,MAAM,CACP,CAAC;MAEF,IAAI,IAAA+B,KAAA,CAAA5D,OAAA,EAAY2D,aAAa,CAAC,CAACvB,MAAM,GAAG,CAAC,EAAE;QACzC,OAAOuB,aAAa;MACtB;IACF;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;EACEE,OAAOA,CAAA,EAAW;IAAA,IAAAC,SAAA;IAChB,MAAMxB,KAAK,GAAG,IAAI,CAACA,KAAK,KAAKrB,SAAS,GAAG,IAAI,GAAG,IAAI,CAACqB,KAAK;IAC1D,OAAO;MACLzC,GAAG,EAAE,IAAI,CAACA,GAAG;MACbyC,KAAK,EAAEA,KAAK;MACZe,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBtC,MAAM,EAAE,IAAI,CAACuC,KAAK;MAClBtB,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCC,eAAe,EAAE,IAAI,CAACA,eAAe;MACrCa,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBU,OAAO,EAAE,IAAI,CAACA,OAAO;MACrBC,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCxB,QAAQ,EAAE,IAAAK,IAAA,CAAAvC,OAAA,EAAA8D,SAAA,OAAI,CAAC5B,QAAQ,EAAA5B,IAAA,CAAAwD,SAAA,EAAMC,KAAK,IAChC7D,KAAK,CAACC,OAAO,CAAC4D,KAAK,CAAC,GAChB,IAAAxB,IAAA,CAAAvC,OAAA,EAAA+D,KAAK,EAAAzD,IAAA,CAALyD,KAAK,EAAMC,QAAQ,IAAKA,QAAQ,CAACH,OAAO,CAAC,CAAC,CAAC,GAC3CE,KAAK,CAACF,OAAO,CAAC,CACpB,CAAC;MACDhC,OAAO,EAAE,IAAI,CAACA;IAChB,CAAC;EACH;AACF;AAAC,IAAAoC,QAAA,GAAAC,OAAA,CAAAlE,OAAA,GAEcN,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AttributeDataHelper.js","names":["_full","require","_pick","_interopRequireDefault","_objects","AttributeDataHelper","constructor","data","key","childrenKeys","_defineProperty2","default","_key","Array","isArray","_attribute","_find","call","attr","elementid","name","param","_value","getValue","attributeData","klona","_links","pick","undefined","_children","createChildren","childData","parentKey","childKey","elements","_context","element","has","isPlainObject","parentData","content","createChild","keyObject","dynamicschema","dynamicschemaId","children","arguments","length","keyExplicitlyNull","value","_map","childrenIsArray","_context2","attribute","_values","suggestions","suggestion","options","_context3","_context4","_filter","option","selected","code","static","links","attrDS","message","isResult","referenceDate","pickedContent","_keys","getData","_context5","child","subChild","_default","exports"],"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>,\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key,\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = klona(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n if (data[key] === undefined || (\"name\" in data && \"param\" in data)) {\n this._value = this.getValue(data);\n } else {\n this._value = data[key];\n }\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string,\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey,\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey] };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object,\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children,\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = [],\n ): Array<AttributeDataHelper> {\n // Check if the original data explicitly contains the key and is explicitly null.\n const keyExplicitlyNull = this.value === null;\n\n if (keyExplicitlyNull) {\n // Handling for when the value is explicitly null: set childData to null.\n return childrenKeys.map((keyObject) => {\n const childData = null;\n return this.createChild(data, childData, keyObject);\n });\n }\n\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n }),\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return undefined;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"label\",\n \"elements\",\n \"layouthint\",\n \"text\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n const value = this.value === undefined ? null : this.value;\n return {\n key: this.key,\n value: value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData(),\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"mappings":"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","ignoreList":[]}
|