@beinformed/ui 1.17.2 → 1.18.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.
Files changed (84) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/esm/constants/Constants.js +4 -0
  3. package/esm/constants/Constants.js.map +1 -1
  4. package/esm/constants/Settings.js +25 -1
  5. package/esm/constants/Settings.js.map +1 -1
  6. package/esm/hooks/useForm.js +1 -11
  7. package/esm/hooks/useForm.js.map +1 -1
  8. package/esm/i18n/Locale.js +2 -1
  9. package/esm/i18n/Locale.js.map +1 -1
  10. package/esm/models/attributes/AttributeContent.js +2 -0
  11. package/esm/models/attributes/AttributeContent.js.map +1 -1
  12. package/esm/models/content/SectionModel.js +2 -0
  13. package/esm/models/content/SectionModel.js.map +1 -1
  14. package/esm/modularui/Authenticate.js +9 -9
  15. package/esm/modularui/Authenticate.js.map +1 -1
  16. package/esm/react-client/client.js +3 -2
  17. package/esm/react-client/client.js.map +1 -1
  18. package/esm/react-server/serverUtil.js +2 -1
  19. package/esm/react-server/serverUtil.js.map +1 -1
  20. package/esm/redux/actions/FormAttributeSet.js +5 -11
  21. package/esm/redux/actions/FormAttributeSet.js.map +1 -1
  22. package/esm/redux/actions/Preferences.js +32 -2
  23. package/esm/redux/actions/Preferences.js.map +1 -1
  24. package/esm/redux/reducers/PreferencesReducer.js +5 -1
  25. package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
  26. package/lib/constants/Constants.js +9 -1
  27. package/lib/constants/Constants.js.flow +5 -0
  28. package/lib/constants/Constants.js.map +1 -1
  29. package/lib/constants/Settings.js +37 -1
  30. package/lib/constants/Settings.js.flow +25 -1
  31. package/lib/constants/Settings.js.map +1 -1
  32. package/lib/hooks/useForm.js +2 -15
  33. package/lib/hooks/useForm.js.flow +0 -10
  34. package/lib/hooks/useForm.js.map +1 -1
  35. package/lib/i18n/Locale.js +2 -1
  36. package/lib/i18n/Locale.js.flow +4 -2
  37. package/lib/i18n/Locale.js.map +1 -1
  38. package/lib/i18n/__tests__/Locale.spec.js.flow +3 -2
  39. package/lib/models/attributes/AttributeContent.js +2 -0
  40. package/lib/models/attributes/AttributeContent.js.flow +2 -0
  41. package/lib/models/attributes/AttributeContent.js.map +1 -1
  42. package/lib/models/content/SectionModel.js +2 -0
  43. package/lib/models/content/SectionModel.js.flow +2 -0
  44. package/lib/models/content/SectionModel.js.map +1 -1
  45. package/lib/modularui/Authenticate.js +10 -10
  46. package/lib/modularui/Authenticate.js.flow +11 -7
  47. package/lib/modularui/Authenticate.js.map +1 -1
  48. package/lib/react-client/client.js +2 -1
  49. package/lib/react-client/client.js.flow +5 -1
  50. package/lib/react-client/client.js.map +1 -1
  51. package/lib/react-server/__tests__/serverUtil.spec.js.flow +18 -0
  52. package/lib/react-server/serverUtil.js +1 -0
  53. package/lib/react-server/serverUtil.js.flow +2 -0
  54. package/lib/react-server/serverUtil.js.map +1 -1
  55. package/lib/redux/actions/FormAttributeSet.js +6 -15
  56. package/lib/redux/actions/FormAttributeSet.js.flow +3 -16
  57. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  58. package/lib/redux/actions/Preferences.js +41 -1
  59. package/lib/redux/actions/Preferences.js.flow +49 -2
  60. package/lib/redux/actions/Preferences.js.map +1 -1
  61. package/lib/redux/actions/__tests__/Preferences.spec.js.flow +11 -0
  62. package/lib/redux/reducers/PreferencesReducer.js +5 -1
  63. package/lib/redux/reducers/PreferencesReducer.js.flow +8 -1
  64. package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
  65. package/lib/redux/reducers/__tests__/PreferencesReducer.spec.js.flow +12 -0
  66. package/lib/redux/types.js.flow +5 -0
  67. package/package.json +26 -24
  68. package/src/constants/Constants.js +5 -0
  69. package/src/constants/Settings.js +25 -1
  70. package/src/hooks/useForm.js +0 -10
  71. package/src/i18n/Locale.js +4 -2
  72. package/src/i18n/__tests__/Locale.spec.js +3 -2
  73. package/src/models/attributes/AttributeContent.js +2 -0
  74. package/src/models/content/SectionModel.js +2 -0
  75. package/src/modularui/Authenticate.js +11 -7
  76. package/src/react-client/client.js +5 -1
  77. package/src/react-server/__tests__/serverUtil.spec.js +18 -0
  78. package/src/react-server/serverUtil.js +2 -0
  79. package/src/redux/actions/FormAttributeSet.js +3 -16
  80. package/src/redux/actions/Preferences.js +49 -2
  81. package/src/redux/actions/__tests__/Preferences.spec.js +11 -0
  82. package/src/redux/reducers/PreferencesReducer.js +8 -1
  83. package/src/redux/reducers/__tests__/PreferencesReducer.spec.js +12 -0
  84. package/src/redux/types.js +5 -0
package/CHANGELOG.md CHANGED
@@ -2,12 +2,32 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
- ### [1.17.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.17.1...v1.17.2) (2022-04-07)
5
+ ### [1.18.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.18.0...v1.18.1) (2022-04-28)
6
+
7
+ ## [1.18.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.17.4...v1.18.0) (2022-04-28)
8
+
9
+ ### Features
10
+
11
+ - **login:** make the login url, username and password field configurable ([fd99569](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/fd995699e77002eb683753c4d8cb318b25b837bf))
12
+
13
+ ### [1.17.4](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.17.3...v1.17.4) (2022-04-22)
14
+
15
+ ### Bug Fixes
16
+
17
+ - **console:** set log about missing translation to debug ([7f679a8](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/7f679a8002032e6105cd7234c716eea373852d6a))
18
+ - **validation:** remove useAttributeValidate hook ([918bd9a](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/918bd9aeaeaefb8309eac2d1aeb99f471fdc678d))
6
19
 
20
+ ### [1.17.3](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.17.2...v1.17.3) (2022-04-13)
21
+
22
+ ### Bug Fixes
23
+
24
+ - **flowtype:** set correct return type for validation hook ([19d5f80](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/19d5f800be6fd0ca64944b6b64496636b8556075))
25
+
26
+ ### [1.17.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.17.1...v1.17.2) (2022-04-07)
7
27
 
8
28
  ### Bug Fixes
9
29
 
10
- * **validate:** Added useAttributeValidate to validate the attribute onBlur ([#17](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/issues/17)) ([426b592](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/426b592015cf07d2c35d1708a54b7d68b6ab9cec))
30
+ - **validate:** Added useAttributeValidate to validate the attribute onBlur ([#17](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/issues/17)) ([426b592](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/426b592015cf07d2c35d1708a54b7d68b6ab9cec))
11
31
 
12
32
  ### [1.17.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.17.0...v1.17.1) (2022-03-30)
13
33
 
@@ -192,4 +192,8 @@ export var ATTRIBUTE_WIDTH = {
192
192
  EXTRA_LARGE: "EXTRA_LARGE"
193
193
  };
194
194
  export var ALL_CONTENT_IN_DATA_SETTING = "hasAllContentInData";
195
+ export var LOGIN_PATH_SETTING = "FormClient.login_url";
196
+ export var LOGIN_USERNAME_SETTING = "FormClient.username_field_name";
197
+ export var LOGIN_PASSWORD_SETTING = "FormClient.password_field_name";
198
+ export var LOGOUT_PATH_SETTING = "FormClient.logout_url";
195
199
  //# sourceMappingURL=Constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/Constants.js"],"names":["USE_CACHE","serverBase","__CONTEXT_PATH__","BASE","window","contextPath","MODULARUI_CONTRIBUTIONS","APPLICATION_URI","APPLICATION_PATH","CONTENT_PATH","UPLOAD_PATH","CAPTCHA_PATH","LOGIN_PATH","LOGOUT_PATH","CHANGEPASSWORD_PATH","USERPROFILE_PATH","PARAMETER_SEPARATOR","TIMEVERSION_FILTER_NAME","PARAMETER_OVERVIEW_VIEWTYPE","DEFAULT_UI_PARAMETERS","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","ISO_TIME_FORMAT","ISO_TIMESTAMP_FORMAT","DEFAULT_WEEK_STARTS_ON","DEFAULT_FIRST_WEEK_CONTAINS_DATE","KEYCODES","TAB","ENTER","ESCAPE","SPACE","PAGE_UP","PAGE_DOWN","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","IS_SYNC","dataFetcher","IS_SERVER","NOTIFICATION_TYPES","SUCCESS","INFO","WARNING","ERROR","HTTP_METHODS","GET","POST","MODULARUI_STATUS","LOADING","FINISHED","AUTOSAVE_STATUS","START","INPUT_DEBOUNCE_TIMEOUT","VALIDATE_DEBOUNCE_TIMEOUT","ATTRIBUTE_WIDTH","EXTRA_SMALL","SMALL","MEDIUM","LARGE","EXTRA_LARGE","ALL_CONTENT_IN_DATA_SETTING"],"mappings":"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","sourcesContent":["// @flow\n/**\n * Indicates if contributions should be cached\n */\nexport const USE_CACHE = true;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\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 BASE: string =\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\");\n\n/**\n * Path to the contributions api end point\n * /contributions uri part is added through the _links in the data service\n */\nexport const MODULARUI_CONTRIBUTIONS = \"/contributions\";\n\n/**\n * Application uri\n * @private\n */\nconst APPLICATION_URI = \"/\";\n\n/**\n * Base Path\n */\nexport const APPLICATION_PATH: string = BASE + APPLICATION_URI;\n\n/**\n * path to content service\n */\nexport const CONTENT_PATH = `${BASE}/content`;\n\n/**\n * Upload Path\n */\nexport const UPLOAD_PATH = `${BASE}/uploadFile`;\n\n/**\n * Captcha Path\n */\nexport const CAPTCHA_PATH = `${BASE}/captchaServices`;\n\n/**\n * Path to login page / component\n */\nexport const LOGIN_PATH = \"/signin\";\n\n/**\n * Path to logout page / component\n */\nexport const LOGOUT_PATH = \"/signout\";\n\n/**\n * Path to change password page / component\n */\nexport const CHANGEPASSWORD_PATH = \"/change-password\";\n\n/**\n * Path to user profile page / component\n */\nexport const USERPROFILE_PATH = \"/user\";\n\n/**\n * Separator for parameters of a list, makes it possible to render multiple lists on a page in a non-js environment\n */\nexport const PARAMETER_SEPARATOR = \"~\";\n\n/**\n * Timeversion filter name\n */\nexport const TIMEVERSION_FILTER_NAME = \"entryDate\";\n\nconst PARAMETER_OVERVIEW_VIEWTYPE = \"viewType\";\n/**\n * Parameter name for the viewtype toggle\n */\nexport const DEFAULT_UI_PARAMETERS: Array<string> = [\n PARAMETER_OVERVIEW_VIEWTYPE,\n];\n\n/**\n */\nexport const ISO_DATE_FORMAT = \"yyyy-MM-dd\";\n/**\n */\nexport const ISO_DATETIME_FORMAT = \"yyyy-MM-dd'T'HH:mm:ss\";\n/**\n */\nexport const ISO_TIME_FORMAT = \"HH:mm:ss\";\n/**\n */\nexport const ISO_TIMESTAMP_FORMAT = \"yyyy-MM-dd'T'HH:mm:ss.SSS\";\n/**\n * week starts on monday by default\n */\nexport const DEFAULT_WEEK_STARTS_ON = 1;\n\n/**\n * first week indicated by the 1st of january\n */\nexport const DEFAULT_FIRST_WEEK_CONTAINS_DATE = 1;\n\n/**\n * Key codes\n * @type {{SPACE: number, PAGE_DOWN: number, TAB: number, ARROW_RIGHT: number, ARROW_DOWN: number, ENTER: number, ARROW_UP: number, ARROW_LEFT: number, PAGE_UP: number, ESCAPE: number}}\n */\nexport const KEYCODES = {\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n ARROW_LEFT: 37,\n ARROW_UP: 38,\n ARROW_RIGHT: 39,\n ARROW_DOWN: 40,\n};\n\n/**\n * @type {boolean}\n */\nexport const IS_SYNC = typeof dataFetcher !== \"undefined\";\n/**\n * @type {boolean}\n */\nexport const IS_SERVER = IS_SYNC;\n\n/**\n * @type {{SUCCESS: string, ERROR: string, INFO: string, WARNING: string}}\n */\nexport const NOTIFICATION_TYPES = {\n SUCCESS: \"SUCCESS\",\n INFO: \"INFO\",\n WARNING: \"WARNING\",\n ERROR: \"ERROR\",\n};\n\n/**\n * SUPPORTED HTTP METHODS\n * @type {{POST: string, GET: string}}\n */\nexport const HTTP_METHODS = {\n GET: \"GET\",\n POST: \"POST\",\n};\n\n/**\n * POSSIBLE MODULARUI STATUSSES\n * @type {{LOADING: string, ERROR: string, FINISHED: string}}\n */\nexport const MODULARUI_STATUS = {\n LOADING: \"LOADING\",\n FINISHED: \"FINISHED\",\n ERROR: \"ERROR\",\n};\n\n/**\n * POSSIBLE AUTOSAVE STATUSSES\n * @type {{START: string, FINISHED: string}}\n */\nexport const AUTOSAVE_STATUS = {\n START: \"START\",\n FINISHED: \"FINISHED\",\n};\n\n/**\n * DEBOUNCE INPUT TIMEOUT\n */\nexport const INPUT_DEBOUNCE_TIMEOUT = 100;\n\n/**\n * DEBOUNCE VALIDATION TIMEOUT\n */\nexport const VALIDATE_DEBOUNCE_TIMEOUT = 500;\n\n/**\n * ATTRIBUTE WIDTH\n */\nexport const ATTRIBUTE_WIDTH = {\n EXTRA_SMALL: \"EXTRA_SMALL\",\n SMALL: \"SMALL\",\n MEDIUM: \"MEDIUM\",\n LARGE: \"LARGE\",\n EXTRA_LARGE: \"EXTRA_LARGE\",\n};\n\nexport const ALL_CONTENT_IN_DATA_SETTING = \"hasAllContentInData\";\n"],"file":"Constants.js"}
1
+ {"version":3,"sources":["../../src/constants/Constants.js"],"names":["USE_CACHE","serverBase","__CONTEXT_PATH__","BASE","window","contextPath","MODULARUI_CONTRIBUTIONS","APPLICATION_URI","APPLICATION_PATH","CONTENT_PATH","UPLOAD_PATH","CAPTCHA_PATH","LOGIN_PATH","LOGOUT_PATH","CHANGEPASSWORD_PATH","USERPROFILE_PATH","PARAMETER_SEPARATOR","TIMEVERSION_FILTER_NAME","PARAMETER_OVERVIEW_VIEWTYPE","DEFAULT_UI_PARAMETERS","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","ISO_TIME_FORMAT","ISO_TIMESTAMP_FORMAT","DEFAULT_WEEK_STARTS_ON","DEFAULT_FIRST_WEEK_CONTAINS_DATE","KEYCODES","TAB","ENTER","ESCAPE","SPACE","PAGE_UP","PAGE_DOWN","ARROW_LEFT","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","IS_SYNC","dataFetcher","IS_SERVER","NOTIFICATION_TYPES","SUCCESS","INFO","WARNING","ERROR","HTTP_METHODS","GET","POST","MODULARUI_STATUS","LOADING","FINISHED","AUTOSAVE_STATUS","START","INPUT_DEBOUNCE_TIMEOUT","VALIDATE_DEBOUNCE_TIMEOUT","ATTRIBUTE_WIDTH","EXTRA_SMALL","SMALL","MEDIUM","LARGE","EXTRA_LARGE","ALL_CONTENT_IN_DATA_SETTING","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING"],"mappings":"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","sourcesContent":["// @flow\n/**\n * Indicates if contributions should be cached\n */\nexport const USE_CACHE = true;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\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 BASE: string =\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\");\n\n/**\n * Path to the contributions api end point\n * /contributions uri part is added through the _links in the data service\n */\nexport const MODULARUI_CONTRIBUTIONS = \"/contributions\";\n\n/**\n * Application uri\n * @private\n */\nconst APPLICATION_URI = \"/\";\n\n/**\n * Base Path\n */\nexport const APPLICATION_PATH: string = BASE + APPLICATION_URI;\n\n/**\n * path to content service\n */\nexport const CONTENT_PATH = `${BASE}/content`;\n\n/**\n * Upload Path\n */\nexport const UPLOAD_PATH = `${BASE}/uploadFile`;\n\n/**\n * Captcha Path\n */\nexport const CAPTCHA_PATH = `${BASE}/captchaServices`;\n\n/**\n * Path to login page / component\n */\nexport const LOGIN_PATH = \"/signin\";\n\n/**\n * Path to logout page / component\n */\nexport const LOGOUT_PATH = \"/signout\";\n\n/**\n * Path to change password page / component\n */\nexport const CHANGEPASSWORD_PATH = \"/change-password\";\n\n/**\n * Path to user profile page / component\n */\nexport const USERPROFILE_PATH = \"/user\";\n\n/**\n * Separator for parameters of a list, makes it possible to render multiple lists on a page in a non-js environment\n */\nexport const PARAMETER_SEPARATOR = \"~\";\n\n/**\n * Timeversion filter name\n */\nexport const TIMEVERSION_FILTER_NAME = \"entryDate\";\n\nconst PARAMETER_OVERVIEW_VIEWTYPE = \"viewType\";\n/**\n * Parameter name for the viewtype toggle\n */\nexport const DEFAULT_UI_PARAMETERS: Array<string> = [\n PARAMETER_OVERVIEW_VIEWTYPE,\n];\n\n/**\n */\nexport const ISO_DATE_FORMAT = \"yyyy-MM-dd\";\n/**\n */\nexport const ISO_DATETIME_FORMAT = \"yyyy-MM-dd'T'HH:mm:ss\";\n/**\n */\nexport const ISO_TIME_FORMAT = \"HH:mm:ss\";\n/**\n */\nexport const ISO_TIMESTAMP_FORMAT = \"yyyy-MM-dd'T'HH:mm:ss.SSS\";\n/**\n * week starts on monday by default\n */\nexport const DEFAULT_WEEK_STARTS_ON = 1;\n\n/**\n * first week indicated by the 1st of january\n */\nexport const DEFAULT_FIRST_WEEK_CONTAINS_DATE = 1;\n\n/**\n * Key codes\n * @type {{SPACE: number, PAGE_DOWN: number, TAB: number, ARROW_RIGHT: number, ARROW_DOWN: number, ENTER: number, ARROW_UP: number, ARROW_LEFT: number, PAGE_UP: number, ESCAPE: number}}\n */\nexport const KEYCODES = {\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n ARROW_LEFT: 37,\n ARROW_UP: 38,\n ARROW_RIGHT: 39,\n ARROW_DOWN: 40,\n};\n\n/**\n * @type {boolean}\n */\nexport const IS_SYNC = typeof dataFetcher !== \"undefined\";\n/**\n * @type {boolean}\n */\nexport const IS_SERVER = IS_SYNC;\n\n/**\n * @type {{SUCCESS: string, ERROR: string, INFO: string, WARNING: string}}\n */\nexport const NOTIFICATION_TYPES = {\n SUCCESS: \"SUCCESS\",\n INFO: \"INFO\",\n WARNING: \"WARNING\",\n ERROR: \"ERROR\",\n};\n\n/**\n * SUPPORTED HTTP METHODS\n * @type {{POST: string, GET: string}}\n */\nexport const HTTP_METHODS = {\n GET: \"GET\",\n POST: \"POST\",\n};\n\n/**\n * POSSIBLE MODULARUI STATUSSES\n * @type {{LOADING: string, ERROR: string, FINISHED: string}}\n */\nexport const MODULARUI_STATUS = {\n LOADING: \"LOADING\",\n FINISHED: \"FINISHED\",\n ERROR: \"ERROR\",\n};\n\n/**\n * POSSIBLE AUTOSAVE STATUSSES\n * @type {{START: string, FINISHED: string}}\n */\nexport const AUTOSAVE_STATUS = {\n START: \"START\",\n FINISHED: \"FINISHED\",\n};\n\n/**\n * DEBOUNCE INPUT TIMEOUT\n */\nexport const INPUT_DEBOUNCE_TIMEOUT = 100;\n\n/**\n * DEBOUNCE VALIDATION TIMEOUT\n */\nexport const VALIDATE_DEBOUNCE_TIMEOUT = 500;\n\n/**\n * ATTRIBUTE WIDTH\n */\nexport const ATTRIBUTE_WIDTH = {\n EXTRA_SMALL: \"EXTRA_SMALL\",\n SMALL: \"SMALL\",\n MEDIUM: \"MEDIUM\",\n LARGE: \"LARGE\",\n EXTRA_LARGE: \"EXTRA_LARGE\",\n};\n\nexport const ALL_CONTENT_IN_DATA_SETTING = \"hasAllContentInData\";\n\nexport const LOGIN_PATH_SETTING = \"FormClient.login_url\";\nexport const LOGIN_USERNAME_SETTING = \"FormClient.username_field_name\";\nexport const LOGIN_PASSWORD_SETTING = \"FormClient.password_field_name\";\nexport const LOGOUT_PATH_SETTING = \"FormClient.logout_url\";\n"],"file":"Constants.js"}
@@ -1,6 +1,6 @@
1
1
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
2
2
  import { isPlainObject, has } from "../utils/helpers/objects";
3
- import { ALL_CONTENT_IN_DATA_SETTING } from "./Constants";
3
+ import { BASE, ALL_CONTENT_IN_DATA_SETTING, LOGIN_PATH_SETTING, LOGIN_USERNAME_SETTING, LOGIN_PASSWORD_SETTING, LOGOUT_PATH_SETTING } from "./Constants";
4
4
  var defaultSettings = {
5
5
  // Debug missing i18n messages in layout
6
6
  DEBUG_I18N_MESSAGE_NOT_FOUND: true,
@@ -87,4 +87,28 @@ export var allSettings = function allSettings() {
87
87
  export var hasAllContentInData = function hasAllContentInData() {
88
88
  return getSetting(ALL_CONTENT_IN_DATA_SETTING, true);
89
89
  };
90
+ /**
91
+ */
92
+
93
+ export var loginPath = function loginPath() {
94
+ return getSetting(LOGIN_PATH_SETTING, "".concat(BASE, "/j_security_check"));
95
+ };
96
+ /**
97
+ */
98
+
99
+ export var loginUsernameField = function loginUsernameField() {
100
+ return getSetting(LOGIN_USERNAME_SETTING, "j_username");
101
+ };
102
+ /**
103
+ */
104
+
105
+ export var loginPasswordField = function loginPasswordField() {
106
+ return getSetting(LOGIN_PASSWORD_SETTING, "j_password");
107
+ };
108
+ /**
109
+ */
110
+
111
+ export var logoutPath = function logoutPath() {
112
+ return getSetting(LOGOUT_PATH_SETTING, "".concat(BASE, "/Logoff"));
113
+ };
90
114
  //# sourceMappingURL=Settings.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants/Settings.js"],"names":["isPlainObject","has","ALL_CONTENT_IN_DATA_SETTING","defaultSettings","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_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","DATE_INPUT_FORMAT","DATE_READONLY_FORMAT","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","settings","setSettings","config","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","hasAllContentInData"],"mappings":";AACA,SAASA,aAAT,EAAwBC,GAAxB,QAAmC,0BAAnC;AACA,SAASC,2BAAT,QAA4C,aAA5C;AAIA,IAAMC,eAAe,GAAG;AACtB;AACAC,EAAAA,4BAA4B,EAAE,IAFR;AAItB;AACAC,EAAAA,yBAAyB,EAAE,IALL;AAOtB;AACAC,EAAAA,kBAAkB,EAAE,KARE;AAUtB;AACAC,EAAAA,sBAAsB,EAAE,IAXF;AAatB;AACAC,EAAAA,qCAAqC,EAAE,IAdjB;AAgBtB;AACAC,EAAAA,oCAAoC,EAAE,KAjBhB;AAmBtB;AACAC,EAAAA,oBAAoB,EAAE,CAAC,UAAD,EAAa,WAAb,CApBA;AAsBtB;AACAC,EAAAA,yBAAyB,EAAE,IAvBL;AAyBtB;AACAC,EAAAA,6BAA6B,EAAE,IA1BT;AA4BtB;AACAC,EAAAA,eAAe,EAAE,CAAC,IAAD,EAAO,IAAP,CA7BK;AA+BtB;AACAC,EAAAA,qBAAqB,EAAE,IAhCD;AAkCtB;AACAC,EAAAA,wBAAwB,EAAE,GAnCJ;AAqCtB;AACAC,EAAAA,+BAA+B,EAAE,kCAtCX;AAwCtB;AACAC,EAAAA,8BAA8B,EAAE,CAC9B,yDAD8B,CAzCV;AA4CtBC,EAAAA,mCAAmC,EAAE,CACnC,qDADmC,CA5Cf;AA+CtBC,EAAAA,sCAAsC,EAAE,CACtC,gDADsC,CA/ClB;AAmDtB;AACAC,EAAAA,iBAAiB,EAAE,EApDG;AAsDtB;AACAC,EAAAA,oBAAoB,EAAE,EAvDA;AAyDtB;AACAC,EAAAA,uBAAuB,EAAE,CA1DH;AA4DtB;AACAC,EAAAA,iCAAiC,EAAE,CA7Db;AA+DtB;AACAC,EAAAA,aAAa,EAAE,EAhEO;AAkEtB;AACAC,EAAAA,6BAA6B,EAAE,IAnET;AAqEtB;AACAC,EAAAA,iCAAiC,EAAE,KAtEb;AAwEtBC,EAAAA,cAAc,EAAE;AAxEM,CAAxB;AA2EA,IAAIC,QAAQ,GAAGzB,eAAf;AAEA;AACA;;AACA,OAAO,IAAM0B,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAoB;AAC7C,MAAI9B,aAAa,CAAC8B,MAAD,CAAjB,EAA2B;AACzBF,IAAAA,QAAQ,GAAG,eAAczB,eAAd,EAA+B2B,MAA/B,CAAX;AACD;AACF,CAJM;AAMP;AACA;;AACA,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,GAAD,EAAcC,YAAd,EAA0C;AAAA;;AAClE,MAAI,CAAChC,GAAG,CAAC2B,QAAD,EAAWI,GAAX,CAAJ,IAAuBC,YAAY,KAAKC,SAA5C,EAAuD;AACrD,UAAM,IAAIC,KAAJ,6BACiBH,GADjB,0CAAN;AAGD;;AAED,0BAAOJ,QAAQ,CAACI,GAAD,CAAf,yDAAwBC,YAAxB;AACD,CARM;AAUP;AACA;;AACA,OAAO,IAAMG,UAAU,GAAG,SAAbA,UAAa,CAACJ,GAAD,EAAcK,KAAd,EAA6B;AACrDT,EAAAA,QAAQ,CAACI,GAAD,CAAR,GAAgBK,KAAhB;AACD,CAFM;AAIP;AACA;;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAmCV,QAAnC;AAAA,CAApB;AAEP;AACA;;AACA,OAAO,IAAMW,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,SACjCR,UAAU,CAAC7B,2BAAD,EAA8B,IAA9B,CADuB;AAAA,CAA5B","sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { ALL_CONTENT_IN_DATA_SETTING } from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst defaultSettings = {\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 // 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\n // Input format for dates. Without this setting having a value, the contributions format is used\n DATE_INPUT_FORMAT: \"\",\n\n // Readonly format for dates. Without this setting having a value, the contributions format is used\n DATE_READONLY_FORMAT: \"\",\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\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 */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n"],"file":"Settings.js"}
1
+ {"version":3,"sources":["../../src/constants/Settings.js"],"names":["isPlainObject","has","BASE","ALL_CONTENT_IN_DATA_SETTING","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING","defaultSettings","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_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","DATE_INPUT_FORMAT","DATE_READONLY_FORMAT","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","settings","setSettings","config","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","hasAllContentInData","loginPath","loginUsernameField","loginPasswordField","logoutPath"],"mappings":"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","sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport {\n BASE,\n ALL_CONTENT_IN_DATA_SETTING,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst defaultSettings = {\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 // 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\n // Input format for dates. Without this setting having a value, the contributions format is used\n DATE_INPUT_FORMAT: \"\",\n\n // Readonly format for dates. Without this setting having a value, the contributions format is used\n DATE_READONLY_FORMAT: \"\",\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\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 */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n */\nexport const loginPath = (): string =>\n getSetting(LOGIN_PATH_SETTING, `${BASE}/j_security_check`);\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, `${BASE}/Logoff`);\n"],"file":"Settings.js"}
@@ -3,7 +3,7 @@ import Href from "../models/href/Href";
3
3
  import { getSetting, HTTP_METHODS } from "../constants";
4
4
  import { loadModularUI, removeModelByKey } from "../redux/_modularui";
5
5
  import { useModularUI } from "./useModularUI";
6
- import { addRepeatableAttributeSet, cancelForm, cancelRepeatableAttributeSet, previousObject, removeRepeatableAttributeSet, showFormNotification, updateFormAttribute, validateFormAttribute } from "../redux/actions";
6
+ import { addRepeatableAttributeSet, cancelForm, cancelRepeatableAttributeSet, previousObject, removeRepeatableAttributeSet, showFormNotification, updateFormAttribute } from "../redux/actions";
7
7
  import FormModel from "../models/form/FormModel";
8
8
 
9
9
  /**
@@ -76,16 +76,6 @@ export var useAttributeUpdate = function useAttributeUpdate(form, object) {
76
76
  return dispatch(updateFormAttribute(form, object, attribute, value, options));
77
77
  };
78
78
  };
79
- /**
80
- * Validate attributes of a form
81
- */
82
-
83
- export var useAttributeValidate = function useAttributeValidate(form) {
84
- var dispatch = useDispatch();
85
- return function () {
86
- return dispatch(validateFormAttribute(form));
87
- };
88
- };
89
79
  /**
90
80
  * Attributeset actions
91
81
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useForm.js"],"names":["useDispatch","Href","getSetting","HTTP_METHODS","loadModularUI","removeModelByKey","useModularUI","addRepeatableAttributeSet","cancelForm","cancelRepeatableAttributeSet","previousObject","removeRepeatableAttributeSet","showFormNotification","updateFormAttribute","validateFormAttribute","FormModel","useForm","href","formHref","addParameter","form","method","POST","targetModel","removeOnUnmount","model","useFormNavigation","dispatch","previous","cancel","submit","connectKey","selfhref","data","formdata","updateModel","remove","showFormNotificationAction","useAttributeUpdate","object","attribute","value","options","useAttributeValidate","useAttributeSet","save"],"mappings":"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","sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n validateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { FormObjectModel, AttributeType } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\nimport type {\n RemoveModelByKeyAction,\n UpdateModelAction,\n} from \"../redux/_modularui\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateModelAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateModelAction,\n cancel: (object: FormObjectModel) => UpdateModelAction,\n remove: (object: FormObjectModel) => UpdateModelAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateModel: form,\n targetModel: FormModel,\n })\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Update attributes of a form\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Validate attributes of a form\n */\nexport const useAttributeValidate = (form: FormModel): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return () => dispatch(validateFormAttribute(form));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"file":"useForm.js"}
1
+ {"version":3,"sources":["../../src/hooks/useForm.js"],"names":["useDispatch","Href","getSetting","HTTP_METHODS","loadModularUI","removeModelByKey","useModularUI","addRepeatableAttributeSet","cancelForm","cancelRepeatableAttributeSet","previousObject","removeRepeatableAttributeSet","showFormNotification","updateFormAttribute","FormModel","useForm","href","formHref","addParameter","form","method","POST","targetModel","removeOnUnmount","model","useFormNavigation","dispatch","previous","cancel","submit","connectKey","selfhref","data","formdata","updateModel","remove","showFormNotificationAction","useAttributeUpdate","object","attribute","value","options","useAttributeSet","save"],"mappings":"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","sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport Href from \"../models/href/Href\";\n\nimport { getSetting, HTTP_METHODS } from \"../constants\";\n\nimport { loadModularUI, removeModelByKey } from \"../redux/_modularui\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport {\n addRepeatableAttributeSet,\n cancelForm,\n cancelRepeatableAttributeSet,\n previousObject,\n removeRepeatableAttributeSet,\n showFormNotification,\n updateFormAttribute,\n} from \"../redux/actions\";\n\nimport FormModel from \"../models/form/FormModel\";\n\nimport type { FormObjectModel, AttributeType } from \"../models\";\nimport type { UpdateFormOptions } from \"../redux/types\";\nimport type {\n RemoveModelByKeyAction,\n UpdateModelAction,\n} from \"../redux/_modularui\";\n\ntype FormNavigationHook = {\n previous: (form: FormModel) => UpdateModelAction,\n cancel: (form: FormModel) => void,\n submit: (form: FormModel) => void,\n showFormNotification: (form: FormModel) => void,\n remove: (form: FormModel) => RemoveModelByKeyAction,\n};\n\ntype AttributeSetHook = {\n save: () => UpdateModelAction,\n cancel: (object: FormObjectModel) => UpdateModelAction,\n remove: (object: FormObjectModel) => UpdateModelAction,\n};\n\ntype AttributeUpdateHook = (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n) => void;\n\n/**\n * Load a form by href\n */\nexport const useForm = (href: string | Href): ?FormModel => {\n const formHref = new Href(href);\n\n if (!getSetting(\"ALWAYS_COMMIT_FORM\")) {\n formHref.addParameter(\"commit\", \"false\");\n }\n\n const form = useModularUI(\"form\", formHref, {\n method: HTTP_METHODS.POST,\n targetModel: FormModel,\n removeOnUnmount: true,\n });\n\n if (form?.model) {\n return form.model;\n }\n};\n\n/**\n * Form navigation methods\n */\nexport const useFormNavigation = (): FormNavigationHook => {\n const dispatch = useDispatch();\n\n const previous = (form: FormModel) => dispatch(previousObject(form));\n\n const cancel = (form: FormModel) => dispatch(cancelForm(form));\n\n const submit = (form: FormModel) =>\n dispatch(\n loadModularUI(form.connectKey, form.selfhref, {\n method: HTTP_METHODS.POST,\n data: form.formdata,\n updateModel: form,\n targetModel: FormModel,\n })\n );\n\n const remove = (form: FormModel) =>\n dispatch(removeModelByKey(form.connectKey));\n\n const showFormNotificationAction = (form: FormModel) =>\n dispatch(showFormNotification(form));\n\n return {\n previous,\n cancel,\n submit,\n remove,\n showFormNotification: showFormNotificationAction,\n };\n};\n\n/**\n * Update attributes of a form\n */\nexport const useAttributeUpdate = (\n form: FormModel,\n object: FormObjectModel\n): AttributeUpdateHook => {\n const dispatch = useDispatch();\n\n return (\n attribute: AttributeType,\n value: string,\n options: UpdateFormOptions\n ) => dispatch(updateFormAttribute(form, object, attribute, value, options));\n};\n\n/**\n * Attributeset actions\n */\nexport const useAttributeSet = (form: FormModel): AttributeSetHook => {\n const dispatch = useDispatch();\n\n return {\n save: () => dispatch(addRepeatableAttributeSet(form)),\n cancel: (object: FormObjectModel) =>\n dispatch(cancelRepeatableAttributeSet(form, object)),\n remove: (object: FormObjectModel) =>\n dispatch(removeRepeatableAttributeSet(form, object)),\n };\n};\n"],"file":"useForm.js"}
@@ -135,7 +135,8 @@ var Locale = /*#__PURE__*/function () {
135
135
  if ((typeof process === "undefined" || process.env.NODE_ENV !== "production") && !messageFromLocale && id && getSetting("DEBUG_I18N_MESSAGE_NOT_FOUND")) {
136
136
  var _context;
137
137
 
138
- console.warn(_concatInstanceProperty(_context = "Message with id ".concat(id, " not found for locale ")).call(_context, this.code));
138
+ // eslint-disable-next-line no-console
139
+ console.debug(_concatInstanceProperty(_context = "Message with id ".concat(id, " not found for locale ")).call(_context, this.code, " in layout translations"));
139
140
  }
140
141
 
141
142
  return messageFromLocale || this.fixPlaceHolders(defaultMessage) || id;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i18n/Locale.js"],"names":["formatMessage","languages","IllegalStateException","getSetting","Locale","locale","_code","code","_messages","fixPlaceHoldersInObject","messages","_errors","errors","_nativeName","nativeName","setup","missingTranslation","aLocale","split","length","language","lang","toUpperCase","message","replace","JSON","parse","id","defaultMessage","messageFromLocale","process","env","NODE_ENV","console","warn","fixPlaceHolders","parameters","getBaseMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAOA,cAAP,MAA0B,gBAA1B;AAEA,OAAOC,SAAP,MAAsB,aAAtB;AACA,SAASC,qBAAT,QAAsC,eAAtC;AAEA,SAASC,UAAT,QAA2B,cAA3B;;AAIA;AACA;AACA;IACMC,M;AAMJ,kBAAYC,MAAZ,EAAyC;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACvC,SAAKC,KAAL,GAAaD,MAAM,CAACE,IAApB;AAEA,SAAKC,SAAL,GAAiB,KAAKC,uBAAL,CAA6BJ,MAAM,CAACK,QAApC,CAAjB;AACA,SAAKC,OAAL,GAAe,KAAKF,uBAAL,CAA6BJ,MAAM,CAACO,MAApC,CAAf;AAEA,SAAKC,WAAL,GAAmBR,MAAM,CAACS,UAA1B;;AAEAd,IAAAA,cAAa,CAACe,KAAd,CAAoB;AAClBC,MAAAA,kBAAkB,EAAE;AADF,KAApB;AAGD;AAED;AACF;AACA;;;;;SACE,eAAmB;AACjB,aAAO,KAAKV,KAAZ;AACD;AAED;AACF;AACA;;;;SACE,eAAyB;AACvB,UAAI,KAAKO,WAAT,EAAsB;AACpB,eAAO,KAAKA,WAAZ;AACD;;AAED,UAAMI,OAAO,GAAG,KAAKV,IAAL,CAAUW,KAAV,CAAgB,GAAhB,CAAhB;;AAEA,UAAID,OAAO,CAACE,MAAR,GAAiB,CAArB,EAAwB;AACtB,YAAMC,QAAQ,GAAGnB,SAAS,CAACoB,IAAV,CAAeJ,OAAO,CAAC,CAAD,CAAtB,CAAjB;;AAEA,YAAIG,QAAJ,EAAc;AACZ,iBACEA,QAAQ,CAAC,CAAD,CAAR,IAAeH,OAAO,CAAC,CAAD,CAAP,eAAkBA,OAAO,CAAC,CAAD,CAAP,CAAWK,WAAX,EAAlB,SAAgD,EAA/D,CADF;AAGD;AACF;;AAED,YAAM,IAAIpB,qBAAJ,uDAC2C,KAAKK,IADhD,EAAN;AAGD;AAED;AACF;AACA;AACA;AACA;;;;WACE,yBAAgBgB,OAAhB,EAAiD;AAC/C,UAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAC/B,eAAOA,OAAO,CACXC,OADI,2BACI,gBADJ;AAAA;AAAA,YAC2B,cAD3B,EAEJA,OAFI,2BAEI,cAFJ;AAAA;AAAA,YAEyB,UAFzB,CAAP;AAGD;;AAED,aAAO,IAAP;AACD;AAED;AACF;AACA;AACA;AACA;;;;WACE,mCAAuD;AAAA,UAA/Bd,QAA+B,uEAAZ,EAAY;AACrD,aAAOe,IAAI,CAACC,KAAL,CACL,gBAAehB,QAAf,EACGc,OADH,2BACW,gBADX;AAAA;AAAA,UACkC,cADlC,EAEGA,OAFH,2BAEW,cAFX;AAAA;AAAA,UAEgC,UAFhC,CADK,CAAP;AAKD;AAED;AACF;AACA;;;;WACE,wBAAeG,EAAf,EAA2BC,cAA3B,EAA4D;AAC1D,UAAI,CAACD,EAAD,IAAO,CAACC,cAAZ,EAA4B;AAC1B,eAAO,yCAAP;AACD;;AAED,UAAMC,iBAAiB,GAAG,KAAKrB,SAAL,CAAemB,EAAf,KAAsB,KAAKhB,OAAL,CAAagB,EAAb,CAAhD;;AAEA,UACE,CAAC,OAAOG,OAAP,KAAmB,WAAnB,IACCA,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAD3B,KAEA,CAACH,iBAFD,IAGAF,EAHA,IAIAxB,UAAU,CAAC,8BAAD,CALZ,EAME;AAAA;;AACA8B,QAAAA,OAAO,CAACC,IAAR,8DAAgCP,EAAhC,4CAA2D,KAAKpB,IAAhE;AACD;;AAED,aAAOsB,iBAAiB,IAAI,KAAKM,eAAL,CAAqBP,cAArB,CAArB,IAA6DD,EAApE;AACD;AAED;AACF;AACA;;;;WACE,uBAAcJ,OAAd,EAA+Ba,UAA/B,EAAuE;AACrE,UAAIA,UAAJ,EAAgB;AACd,eAAOpC,cAAa,CAACuB,OAAD,EAAUa,UAAV,CAApB;AACD;;AAED,aAAOb,OAAP;AACD;AAED;AACF;AACA;;;;WACE,oBACEI,EADF,EAEEC,cAFF,EAGEQ,UAHF,EAIU;AACR,UAAMb,OAAO,GAAG,KAAKc,cAAL,CAAoBV,EAApB,EAAwBC,cAAxB,CAAhB;AACA,aAAO,KAAK5B,aAAL,CAAmBuB,OAAnB,EAA4Ba,UAA5B,CAAP;AACD;AAED;AACF;AACA;;;;WACE,kBAAmD;AAAA,UAA5C1B,QAA4C,uEAAzB,EAAyB;AAAA,UAArBE,MAAqB,uEAAJ,EAAI;AACjD,WAAKJ,SAAL,mCACK,KAAKA,SADV,GAEK,KAAKC,uBAAL,CAA6BC,QAA7B,CAFL;AAKA,WAAKC,OAAL,mCACK,KAAKA,OADV,GAEK,KAAKF,uBAAL,CAA6BG,MAA7B,CAFL;AAID;;;;;;AAGH,eAAeR,MAAf","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 console.warn(`Message with id ${id} not found for locale ${this.code}`);\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"],"file":"Locale.js"}
1
+ {"version":3,"sources":["../../src/i18n/Locale.js"],"names":["formatMessage","languages","IllegalStateException","getSetting","Locale","locale","_code","code","_messages","fixPlaceHoldersInObject","messages","_errors","errors","_nativeName","nativeName","setup","missingTranslation","aLocale","split","length","language","lang","toUpperCase","message","replace","JSON","parse","id","defaultMessage","messageFromLocale","process","env","NODE_ENV","console","debug","fixPlaceHolders","parameters","getBaseMessage"],"mappings":"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","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"],"file":"Locale.js"}
@@ -31,6 +31,8 @@ import SectionModel from "../content/SectionModel";
31
31
  import LayoutHintCollection from "../layouthint/LayoutHintCollection";
32
32
  import { isPlainObject } from "../../utils";
33
33
 
34
+ /**
35
+ */
34
36
  var AttributeContent = /*#__PURE__*/function () {
35
37
  function AttributeContent(content) {
36
38
  _classCallCheck(this, AttributeContent);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","content","_content","headerLabel","headerDescription","label","header","description","message","elements","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","elementName","collectionName","getContentElements","labels","getContentElementCollections","getContentElementCollectionByLabels","types","type","referredSections","push","getReferredSections"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,YAAT,QAA6B,0BAA7B;AACA,SAASC,mBAAT,QAAoC,0BAApC;AACA,OAAOC,YAAP,MAAyB,yBAAzB;AAEA,OAAOC,oBAAP,MAAiC,oCAAjC;AACA,SAASC,aAAT,QAA8B,aAA9B;;IAaMC,gB;AAGJ,4BAAYC,OAAZ,EAAmC;AAAA;;AAAA;;AACjC,SAAKC,QAAL,GAAgBD,OAAhB;AACD;AAED;AACF;;;;;SACE,eAAwB;AACtB,aAAOL,mBAAmB,EAA1B;AACD;AAED;AACF;;;;SACE,eAGE;AAAA;;AACA,UAAIO,WAAW,GAAG,IAAlB;AACA,UAAIC,iBAAiB,GAAG,IAAxB;AAEA,UAAMC,KAAK,qBAAG,KAAKH,QAAR,4EAAG,eAAeI,MAAlB,0DAAG,sBAAuBD,KAArC;;AACA,UAAIA,KAAJ,EAAW;AACTF,QAAAA,WAAW,GAAGE,KAAd;AACD;;AAED,UAAME,WAAW,sBAAG,KAAKL,QAAR,6EAAG,gBAAeI,MAAlB,0DAAG,sBAAuBC,WAA3C;;AACA,UAAIA,WAAJ,EAAiB;AACf,YAAIR,aAAa,CAACQ,WAAD,CAAb,IAA8B,aAAaA,WAA/C,EAA4D;AAC1DH,UAAAA,iBAAiB,GAAGG,WAAW,CAACC,OAAhC;AACD,SAFD,MAEO,IAAI,OAAOD,WAAP,KAAuB,QAA3B,EAAqC;AAC1CH,UAAAA,iBAAiB,GAAGG,WAApB;AACD;AACF;;AAED,aAAO;AAAEF,QAAAA,KAAK,EAAEF,WAAT;AAAsBI,QAAAA,WAAW,EAAEH;AAAnC,OAAP;AACD;AAED;AACF;;;;SACE,eAA2B;AAAA;;AACzB,6BAAI,KAAKF,QAAT,4CAAI,gBAAeO,QAAnB,EAA6B;AAAA;;AAC3B,wCAAO,KAAKP,QAAL,CAAcO,QAArB,0DAAO,wEAA4B,UAACC,OAAD,EAAa;AAC9C,cAAIA,OAAO,CAACC,eAAZ,EAA6B;AAC3B,wCAA0CD,OAAO,CAACC,eAAlD;AAAA,gBAAQN,KAAR,yBAAQA,KAAR;AAAA,gBAAeO,UAAf,yBAAeA,UAAf;AAAA,gBAA2BC,UAA3B,yBAA2BA,UAA3B;AAEA,mBAAO;AACLF,cAAAA,eAAe,EAAE;AACfN,gBAAAA,KAAK,EAALA,KADe;AAEfO,gBAAAA,UAAU,EAAE,IAAId,oBAAJ,CAAyBc,UAAzB,CAFG;AAGfC,gBAAAA,UAAU,EAAVA;AAHe;AADZ,aAAP;AAOD;;AAED,cAAIH,OAAO,CAACI,mBAAZ,EAAiC;AAC/B,wCACEJ,OAAO,CAACI,mBADV;AAAA,gBAAQT,MAAR,yBAAQA,KAAR;AAAA,gBAAeO,WAAf,yBAAeA,UAAf;AAAA,gBAA2BG,aAA3B,yBAA2BA,aAA3B;AAEA,mBAAO;AACLD,cAAAA,mBAAmB,EAAE;AACnBT,gBAAAA,KAAK,EAALA,MADmB;AAEnBO,gBAAAA,UAAU,EAAE,IAAId,oBAAJ,CAAyBc,WAAzB,CAFO;AAGnBG,gBAAAA,aAAa,EAAE,qBAAAA,aAAa,MAAb,CAAAA,aAAa,EAAK,UAACC,YAAD;AAAA,yDAC5BA,YAD4B;AAE/BC,oBAAAA,IAAI,EAAEtB,YAAY,CAACqB,YAAY,CAACC,IAAd;AAFa;AAAA,iBAAL;AAHT;AADhB,aAAP;AAUD;;AAED,cAAIP,OAAO,CAACQ,cAAZ,EAA4B;AAC1B,wCAAwCR,OAAO,CAACQ,cAAhD;AAAA,gBAAQb,OAAR,yBAAQA,KAAR;AAAA,gBAAeO,YAAf,yBAAeA,UAAf;AAAA,gBAA2BO,QAA3B,yBAA2BA,QAA3B;AACA,mBAAO;AACLD,cAAAA,cAAc,EAAE;AACdb,gBAAAA,KAAK,EAALA,OADc;AAEdO,gBAAAA,UAAU,EAAE,IAAId,oBAAJ,CAAyBc,YAAzB,CAFE;AAGdO,gBAAAA,QAAQ,EAAE,qBAAAA,QAAQ,MAAR,CAAAA,QAAQ,EAChB,UAACC,OAAD;AAAA,yBAAa,IAAIvB,YAAJ,CAAiBuB,OAAjB,EAA0B,IAA1B,CAAb;AAAA,iBADgB;AAHJ;AADX,aAAP;AASD,WAvC6C,CAyC9C;;;AACA,iBAAOV,OAAP;AACD,SA3CM,CAAP;AA4CD;;AAED,aAAO,EAAP;AACD;AAED;AACF;;;;SACE,eAAqB;AAAA;;AACnB,gCAAO,KAAKR,QAAZ,oDAAO,gBAAeG,KAAtB;AACD;AAED;AACF;;;;WACE,4BAAsBgB,WAAtB,EAAqD;AAAA;;AACnD;AACA,aAAO,wCAAKZ,QAAL,iBAAqB,UAACC,OAAD;AAAA,eAAaW,WAAW,IAAIX,OAA5B;AAAA,OAArB,CAAP;AACD;AAED;AACF;;;;WACE,sCACEW,WADF,EAEEC,cAFF,EAGY;AAAA;;AACV,aAAO,wEAAKC,kBAAL,CAAwBF,WAAxB,mBACA,UAACX,OAAD;AAAA,eAAaA,OAAO,CAACW,WAAD,CAAP,CAAqBC,cAArB,CAAb;AAAA,OADA,kBAAP;AAGD;AAED;AACF;;;;WACE,6CACED,WADF,EAEEC,cAFF,EAGEE,MAHF,EAIY;AAAA;;AACV,aACE,4GAAKD,kBAAL,CAA2BF,WAA3B,EACE;AADF,wBAEU,UAACX,OAAD;AAAA,eAAa,0BAAAc,MAAM,MAAN,CAAAA,MAAM,EAAUd,OAAO,CAACW,WAAD,CAAP,CAAqBhB,KAA/B,CAAnB;AAAA,OAFV,EAGE;AAHF,wBAIO,UAACK,OAAD;AAAA,eAAaA,OAAO,CAACW,WAAD,CAAP,CAAqBC,cAArB,CAAb;AAAA,OAJP,kBADF;AAQD;AAED;AACF;;;;SACE,eAAsC;AACpC,aAAO,KAAKG,4BAAL,CACL,iBADK,EAEL,YAFK,CAAP;AAID;AAED;AACF;AACA;;;;WACE,sCAA6BD,MAA7B,EAAyE;AACvE,aAAO,KAAKE,mCAAL,CAGL,iBAHK,EAGc,YAHd,EAG4BF,MAH5B,CAAP;AAID;AAED;AACF;;;;SACE,eAA6C;AAC3C,aAAO,KAAKC,4BAAL,CACL,qBADK,EAEL,eAFK,CAAP;AAID;AAED;AACF;AACA;;;;WACE,kCAAyBD,MAAzB,EAAyE;AACvE,aAAO,KAAKE,mCAAL,CAGL,qBAHK,EAGkB,eAHlB,EAGmCF,MAHnC,CAAP;AAID;AAED;AACF;;;;SACE,eAAoC;AAClC,aAAO,KAAKC,4BAAL,CACL,gBADK,EAEL,UAFK,CAAP;AAID;AAED;AACF;;;;WACE,2BAAkBE,KAAlB,EAA6D;AAAA;;AAC3D,aAAO,yCAAKR,QAAL,kBAAqB,UAACC,OAAD;AAAA,eAAa,0BAAAO,KAAK,MAAL,CAAAA,KAAK,EAAUP,OAAO,CAACQ,IAAlB,CAAlB;AAAA,OAArB,CAAP;AACD;AAED;AACF;AACA;;;;WACE,6BAAoBJ,MAApB,EAAgE;AAC9D,aAAO,KAAKE,mCAAL,CAGL,gBAHK,EAGa,UAHb,EAGyBF,MAHzB,CAAP;AAID;AAED;AACF;;;;WACE,+BAA6D;AAC3D,UAAMK,gBAAgB,GAAG,EAAzB;;AAD2D,iDAGrC,KAAKV,QAHgC;AAAA;;AAAA;AAG3D,4DAAqC;AAAA,cAA1BC,OAA0B;AACnCS,UAAAA,gBAAgB,CAACC,IAAjB,OAAAD,gBAAgB,qBAAST,OAAO,CAACW,mBAAR,EAAT,EAAhB;AACD;AAL0D;AAAA;AAAA;AAAA;AAAA;;AAO3D,aAAOF,gBAAP;AACD;;;;;;AAGH,eAAe7B,gBAAf","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\"\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
1
+ {"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["retrieveText","hasAllContentInData","SectionModel","LayoutHintCollection","isPlainObject","AttributeContent","content","_content","headerLabel","headerDescription","label","header","description","message","elements","element","propertyElement","layouthint","properties","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","elementName","collectionName","getContentElements","labels","getContentElementCollections","getContentElementCollectionByLabels","types","type","referredSections","push","getReferredSections"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAASA,YAAT,QAA6B,0BAA7B;AACA,SAASC,mBAAT,QAAoC,0BAApC;AACA,OAAOC,YAAP,MAAyB,yBAAzB;AAEA,OAAOC,oBAAP,MAAiC,oCAAjC;AACA,SAASC,aAAT,QAA8B,aAA9B;;AAaA;AACA;IACMC,gB;AAGJ,4BAAYC,OAAZ,EAAmC;AAAA;;AAAA;;AACjC,SAAKC,QAAL,GAAgBD,OAAhB;AACD;AAED;AACF;;;;;SACE,eAAwB;AACtB,aAAOL,mBAAmB,EAA1B;AACD;AAED;AACF;;;;SACE,eAGE;AAAA;;AACA,UAAIO,WAAW,GAAG,IAAlB;AACA,UAAIC,iBAAiB,GAAG,IAAxB;AAEA,UAAMC,KAAK,qBAAG,KAAKH,QAAR,4EAAG,eAAeI,MAAlB,0DAAG,sBAAuBD,KAArC;;AACA,UAAIA,KAAJ,EAAW;AACTF,QAAAA,WAAW,GAAGE,KAAd;AACD;;AAED,UAAME,WAAW,sBAAG,KAAKL,QAAR,6EAAG,gBAAeI,MAAlB,0DAAG,sBAAuBC,WAA3C;;AACA,UAAIA,WAAJ,EAAiB;AACf,YAAIR,aAAa,CAACQ,WAAD,CAAb,IAA8B,aAAaA,WAA/C,EAA4D;AAC1DH,UAAAA,iBAAiB,GAAGG,WAAW,CAACC,OAAhC;AACD,SAFD,MAEO,IAAI,OAAOD,WAAP,KAAuB,QAA3B,EAAqC;AAC1CH,UAAAA,iBAAiB,GAAGG,WAApB;AACD;AACF;;AAED,aAAO;AAAEF,QAAAA,KAAK,EAAEF,WAAT;AAAsBI,QAAAA,WAAW,EAAEH;AAAnC,OAAP;AACD;AAED;AACF;;;;SACE,eAA2B;AAAA;;AACzB,6BAAI,KAAKF,QAAT,4CAAI,gBAAeO,QAAnB,EAA6B;AAAA;;AAC3B,wCAAO,KAAKP,QAAL,CAAcO,QAArB,0DAAO,wEAA4B,UAACC,OAAD,EAAa;AAC9C,cAAIA,OAAO,CAACC,eAAZ,EAA6B;AAC3B,wCAA0CD,OAAO,CAACC,eAAlD;AAAA,gBAAQN,KAAR,yBAAQA,KAAR;AAAA,gBAAeO,UAAf,yBAAeA,UAAf;AAAA,gBAA2BC,UAA3B,yBAA2BA,UAA3B;AAEA,mBAAO;AACLF,cAAAA,eAAe,EAAE;AACfN,gBAAAA,KAAK,EAALA,KADe;AAEfO,gBAAAA,UAAU,EAAE,IAAId,oBAAJ,CAAyBc,UAAzB,CAFG;AAGfC,gBAAAA,UAAU,EAAVA;AAHe;AADZ,aAAP;AAOD;;AAED,cAAIH,OAAO,CAACI,mBAAZ,EAAiC;AAC/B,wCACEJ,OAAO,CAACI,mBADV;AAAA,gBAAQT,MAAR,yBAAQA,KAAR;AAAA,gBAAeO,WAAf,yBAAeA,UAAf;AAAA,gBAA2BG,aAA3B,yBAA2BA,aAA3B;AAEA,mBAAO;AACLD,cAAAA,mBAAmB,EAAE;AACnBT,gBAAAA,KAAK,EAALA,MADmB;AAEnBO,gBAAAA,UAAU,EAAE,IAAId,oBAAJ,CAAyBc,WAAzB,CAFO;AAGnBG,gBAAAA,aAAa,EAAE,qBAAAA,aAAa,MAAb,CAAAA,aAAa,EAAK,UAACC,YAAD;AAAA,yDAC5BA,YAD4B;AAE/BC,oBAAAA,IAAI,EAAEtB,YAAY,CAACqB,YAAY,CAACC,IAAd;AAFa;AAAA,iBAAL;AAHT;AADhB,aAAP;AAUD;;AAED,cAAIP,OAAO,CAACQ,cAAZ,EAA4B;AAC1B,wCAAwCR,OAAO,CAACQ,cAAhD;AAAA,gBAAQb,OAAR,yBAAQA,KAAR;AAAA,gBAAeO,YAAf,yBAAeA,UAAf;AAAA,gBAA2BO,QAA3B,yBAA2BA,QAA3B;AACA,mBAAO;AACLD,cAAAA,cAAc,EAAE;AACdb,gBAAAA,KAAK,EAALA,OADc;AAEdO,gBAAAA,UAAU,EAAE,IAAId,oBAAJ,CAAyBc,YAAzB,CAFE;AAGdO,gBAAAA,QAAQ,EAAE,qBAAAA,QAAQ,MAAR,CAAAA,QAAQ,EAChB,UAACC,OAAD;AAAA,yBAAa,IAAIvB,YAAJ,CAAiBuB,OAAjB,EAA0B,IAA1B,CAAb;AAAA,iBADgB;AAHJ;AADX,aAAP;AASD,WAvC6C,CAyC9C;;;AACA,iBAAOV,OAAP;AACD,SA3CM,CAAP;AA4CD;;AAED,aAAO,EAAP;AACD;AAED;AACF;;;;SACE,eAAqB;AAAA;;AACnB,gCAAO,KAAKR,QAAZ,oDAAO,gBAAeG,KAAtB;AACD;AAED;AACF;;;;WACE,4BAAsBgB,WAAtB,EAAqD;AAAA;;AACnD;AACA,aAAO,wCAAKZ,QAAL,iBAAqB,UAACC,OAAD;AAAA,eAAaW,WAAW,IAAIX,OAA5B;AAAA,OAArB,CAAP;AACD;AAED;AACF;;;;WACE,sCACEW,WADF,EAEEC,cAFF,EAGY;AAAA;;AACV,aAAO,wEAAKC,kBAAL,CAAwBF,WAAxB,mBACA,UAACX,OAAD;AAAA,eAAaA,OAAO,CAACW,WAAD,CAAP,CAAqBC,cAArB,CAAb;AAAA,OADA,kBAAP;AAGD;AAED;AACF;;;;WACE,6CACED,WADF,EAEEC,cAFF,EAGEE,MAHF,EAIY;AAAA;;AACV,aACE,4GAAKD,kBAAL,CAA2BF,WAA3B,EACE;AADF,wBAEU,UAACX,OAAD;AAAA,eAAa,0BAAAc,MAAM,MAAN,CAAAA,MAAM,EAAUd,OAAO,CAACW,WAAD,CAAP,CAAqBhB,KAA/B,CAAnB;AAAA,OAFV,EAGE;AAHF,wBAIO,UAACK,OAAD;AAAA,eAAaA,OAAO,CAACW,WAAD,CAAP,CAAqBC,cAArB,CAAb;AAAA,OAJP,kBADF;AAQD;AAED;AACF;;;;SACE,eAAsC;AACpC,aAAO,KAAKG,4BAAL,CACL,iBADK,EAEL,YAFK,CAAP;AAID;AAED;AACF;AACA;;;;WACE,sCAA6BD,MAA7B,EAAyE;AACvE,aAAO,KAAKE,mCAAL,CAGL,iBAHK,EAGc,YAHd,EAG4BF,MAH5B,CAAP;AAID;AAED;AACF;;;;SACE,eAA6C;AAC3C,aAAO,KAAKC,4BAAL,CACL,qBADK,EAEL,eAFK,CAAP;AAID;AAED;AACF;AACA;;;;WACE,kCAAyBD,MAAzB,EAAyE;AACvE,aAAO,KAAKE,mCAAL,CAGL,qBAHK,EAGkB,eAHlB,EAGmCF,MAHnC,CAAP;AAID;AAED;AACF;;;;SACE,eAAoC;AAClC,aAAO,KAAKC,4BAAL,CACL,gBADK,EAEL,UAFK,CAAP;AAID;AAED;AACF;;;;WACE,2BAAkBE,KAAlB,EAA6D;AAAA;;AAC3D,aAAO,yCAAKR,QAAL,kBAAqB,UAACC,OAAD;AAAA,eAAa,0BAAAO,KAAK,MAAL,CAAAA,KAAK,EAAUP,OAAO,CAACQ,IAAlB,CAAlB;AAAA,OAArB,CAAP;AACD;AAED;AACF;AACA;;;;WACE,6BAAoBJ,MAApB,EAAgE;AAC9D,aAAO,KAAKE,mCAAL,CAGL,gBAHK,EAGa,UAHb,EAGyBF,MAHzB,CAAP;AAID;AAED;AACF;;;;WACE,+BAA6D;AAC3D,UAAMK,gBAAgB,GAAG,EAAzB;;AAD2D,iDAGrC,KAAKV,QAHgC;AAAA;;AAAA;AAG3D,4DAAqC;AAAA,cAA1BC,OAA0B;AACnCS,UAAAA,gBAAgB,CAACC,IAAjB,OAAAD,gBAAgB,qBAAST,OAAO,CAACW,mBAAR,EAAT,EAAhB;AACD;AAL0D;AAAA;AAAA;AAAA;AAAA;;AAO3D,aAAOF,gBAAP;AACD;;;;;;AAGH,eAAe7B,gBAAf","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport { isPlainObject } from \"../../utils\";\n\nimport type {\n ContentData,\n ContentElementMapped,\n PropertyData,\n PropertyElementMapped,\n TextFragmentData,\n TextFragmentElementMapped,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\n\n/**\n */\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n let headerLabel = null;\n let headerDescription = null;\n\n const label = this._content?.header?.label;\n if (label) {\n headerLabel = label;\n }\n\n const description = this._content?.header?.description;\n if (description) {\n if (isPlainObject(description) && \"message\" in description) {\n headerDescription = description.message;\n } else if (typeof description === \"string\") {\n headerDescription = description;\n }\n }\n\n return { label: headerLabel, description: headerDescription };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (element.propertyElement) {\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (element.textFragmentElement) {\n const { label, layouthint, textfragments } =\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (element.contentElement) {\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this._content?.label;\n }\n\n /**\n */\n getContentElements<T>(elementName: string): Array<T> {\n // $FlowIssue incompatible-return\n return this.elements.filter((element) => elementName in element);\n }\n\n /**\n */\n getContentElementCollections<T>(\n elementName: string,\n collectionName: string\n ): Array<T> {\n return this.getContentElements(elementName)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n getContentElementCollectionByLabels<T, U>(\n elementName: string,\n collectionName: string,\n labels: Array<string>\n ): Array<U> {\n return (\n this.getContentElements<T>(elementName)\n // $FlowIssue incompatible-use\n .filter((element) => labels.includes(element[elementName].label))\n // $FlowIssue incompatible-use\n .map((element) => element[elementName][collectionName])\n .flat()\n );\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElementCollections<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by property element label\n */\n getConceptPropertiesByLabels(labels: Array<string>): Array<PropertyData> {\n return this.getContentElementCollectionByLabels<\n PropertyElementMapped,\n PropertyData\n >(\"propertyElement\", \"properties\", labels);\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElementCollections<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getTextFragmentsByLabels(labels: Array<string>): Array<TextFragmentData> {\n return this.getContentElementCollectionByLabels<\n TextFragmentElementMapped,\n TextFragmentData\n >(\"textFragmentElement\", \"textfragments\", labels);\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElementCollections<SectionModel>(\n \"contentElement\",\n \"sections\"\n );\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n * Get concept text fragments by text fragment element label\n */\n getSectionsByLabels(labels: Array<string>): Array<SectionModel> {\n return this.getContentElementCollectionByLabels<\n ContentElementMapped,\n SectionModel\n >(\"contentElement\", \"sections\", labels);\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
@@ -31,6 +31,8 @@ import SubSectionModel from "./SubSectionModel";
31
31
  import { createHashFromHref } from "../../utils/helpers/createHash";
32
32
  import LinkModel from "../links/LinkModel";
33
33
  import { retrieveText } from "../../utils";
34
+ /**
35
+ */
34
36
 
35
37
  var SectionModel = /*#__PURE__*/function (_BaseModel) {
36
38
  _inherits(SectionModel, _BaseModel);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/models/content/SectionModel.js"],"names":["BaseModel","ContentLinkModel","SubSectionModel","createHashFromHref","LinkModel","retrieveText","SectionModel","data","entryDate","_entryDate","referred","_selflink","_links","self","selflink","href","type","sourceLabel","id","_id","getData","number","body","childSections","childSection","section","label","_childSections","sections","subSections","subSection","selfhref","push","referredChilds","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type Href from \"../href/Href\";\nimport { retrieveText } from \"../../utils\";\n\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(data: Object, entryDate: ISO_DATE | null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(this.data._links?.self);\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate\n )\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map((childSection) => new SectionModel(childSection, this.entryDate));\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) => new SubSectionModel(subSection)\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"file":"SectionModel.js"}
1
+ {"version":3,"sources":["../../../src/models/content/SectionModel.js"],"names":["BaseModel","ContentLinkModel","SubSectionModel","createHashFromHref","LinkModel","retrieveText","SectionModel","data","entryDate","_entryDate","referred","_selflink","_links","self","selflink","href","type","sourceLabel","id","_id","getData","number","body","childSections","childSection","section","label","_childSections","sections","subSections","subSection","selfhref","push","referredChilds","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type Href from \"../href/Href\";\nimport { retrieveText } from \"../../utils\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(data: Object, entryDate: ISO_DATE | null) {\n super(data, {});\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(this.data._links?.self);\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate\n )\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map((childSection) => new SectionModel(childSection, this.entryDate));\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) => new SubSectionModel(subSection)\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"file":"SectionModel.js"}
@@ -7,10 +7,7 @@ import { BASE, HTTP_METHODS } from "../constants/Constants";
7
7
  import universalFetch from "../utils/fetch/universalFetch";
8
8
  import Cache from "../utils/browser/Cache";
9
9
  import { UnauthorizedException } from "../exceptions";
10
- var LOGIN_PATH = "".concat(BASE, "/j_security_check");
11
- var LOGOUT_PATH = "".concat(BASE, "/Logoff");
12
- var usernameField = "j_username";
13
- var passwordField = "j_password";
10
+ import { loginPasswordField, loginPath, loginUsernameField, logoutPath } from "../constants";
14
11
  /**
15
12
  */
16
13
 
@@ -75,8 +72,11 @@ var Authenticate = /*#__PURE__*/function () {
75
72
  }, {
76
73
  key: "createLogin",
77
74
  value: function createLogin(username, password) {
78
- var _context, _context2;
75
+ var _context, _context2, _context3;
79
76
 
77
+ var LOGIN_PATH = loginPath();
78
+ var usernameField = loginUsernameField();
79
+ var passwordField = loginPasswordField();
80
80
  var encodedUsername = encodeURIComponent(username);
81
81
  var encodedPassword = encodeURIComponent(password);
82
82
  return {
@@ -86,7 +86,7 @@ var Authenticate = /*#__PURE__*/function () {
86
86
  Accept: "application/json",
87
87
  "Content-Type": "application/x-www-form-urlencoded"
88
88
  },
89
- data: _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = "".concat(usernameField, "=").concat(encodedUsername, "&")).call(_context2, passwordField, "=")).call(_context, encodedPassword)
89
+ data: _concatInstanceProperty(_context = _concatInstanceProperty(_context2 = _concatInstanceProperty(_context3 = "".concat(usernameField, "=")).call(_context3, encodedUsername, "&")).call(_context2, passwordField, "=")).call(_context, encodedPassword)
90
90
  };
91
91
  }
92
92
  /**
@@ -99,9 +99,9 @@ var Authenticate = /*#__PURE__*/function () {
99
99
 
100
100
  return this.initLogin(true).then(function () {
101
101
  if (_this2.isBasicAuthentication) {
102
- var _context3;
102
+ var _context4;
103
103
 
104
- Cache.addItem("basic", btoa(_concatInstanceProperty(_context3 = "".concat(username, ":")).call(_context3, password)));
104
+ Cache.addItem("basic", btoa(_concatInstanceProperty(_context4 = "".concat(username, ":")).call(_context4, password)));
105
105
  return _Promise.resolve();
106
106
  }
107
107
 
@@ -115,7 +115,7 @@ var Authenticate = /*#__PURE__*/function () {
115
115
  key: "logout",
116
116
  value: function logout() {
117
117
  return universalFetch({
118
- url: LOGOUT_PATH
118
+ url: logoutPath()
119
119
  }).then(function () {
120
120
  // clear cache because of cached contributions
121
121
  Cache.clear();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/modularui/Authenticate.js"],"names":["BASE","HTTP_METHODS","universalFetch","Cache","UnauthorizedException","LOGIN_PATH","LOGOUT_PATH","usernameField","passwordField","Authenticate","_isBasic","isBasicAuthentication","initLogin","resolve","url","method","GET","headers","Accept","catch","error","username","password","encodedUsername","encodeURIComponent","encodedPassword","POST","data","then","addItem","btoa","createLogin","clear"],"mappings":";;;;;AACA,SAASA,IAAT,EAAeC,YAAf,QAAmC,wBAAnC;AAEA,OAAOC,cAAP,MAA2B,+BAA3B;AACA,OAAOC,KAAP,MAAkB,wBAAlB;AAEA,SAASC,qBAAT,QAAsC,eAAtC;AAGA,IAAMC,UAAU,aAAML,IAAN,sBAAhB;AACA,IAAMM,WAAW,aAAMN,IAAN,YAAjB;AAEA,IAAMO,aAAa,GAAG,YAAtB;AACA,IAAMC,aAAa,GAAG,YAAtB;AAEA;AACA;;IACMC,Y;AAGJ;AACF;AACE,0BAAc;AAAA;;AAAA;;AACZ,SAAKC,QAAL,GAAgB,KAAhB;AACD;AAED;AACF;;;;;SACE,eAAqC;AACnC,aAAO,KAAKA,QAAZ;AACD;AAED;AACF;;SACE,aAA0BC,qBAA1B,EAA0D;AACxD,WAAKD,QAAL,GAAgBC,qBAAhB;AACD;AAED;AACF;;;;WACE,mBAAUC,UAAV,EAA4C;AAAA;;AAC1C,UAAI,KAAKD,qBAAL,IAA8B,CAACC,UAAnC,EAA8C;AAC5C,eAAO,SAAQC,OAAR,CAAgB,IAAhB,CAAP;AACD;;AAED,aAAOX,cAAc,CAAC;AACpBY,QAAAA,GAAG,YAAKd,IAAL,WADiB;AAEpBe,QAAAA,MAAM,EAAEd,YAAY,CAACe,GAFD;AAGpBC,QAAAA,OAAO,EAAE;AACPC,UAAAA,MAAM,EAAE,kBADD;AAEP,0BAAgB;AAFT;AAHW,OAAD,CAAd,CAOJC,KAPI,CAOE,UAACC,KAAD,EAAW;AAClB;AACA;AACA;AACA,YAAIA,KAAK,YAAYhB,qBAArB,EAA4C;AAC1C,UAAA,KAAI,CAACO,qBAAL,GAA6B,IAA7B;AACD;;AAED,eAAO,SAAQE,OAAR,CAAgB,EAAhB,CAAP;AACD,OAhBM,CAAP;AAiBD;AAED;AACF;;;;WACE,qBAAYQ,QAAZ,EAA8BC,QAA9B,EAAwE;AAAA;;AACtE,UAAMC,eAAe,GAAGC,kBAAkB,CAACH,QAAD,CAA1C;AACA,UAAMI,eAAe,GAAGD,kBAAkB,CAACF,QAAD,CAA1C;AAEA,aAAO;AACLR,QAAAA,GAAG,EAAET,UADA;AAELU,QAAAA,MAAM,EAAEd,YAAY,CAACyB,IAFhB;AAGLT,QAAAA,OAAO,EAAE;AACPC,UAAAA,MAAM,EAAE,kBADD;AAEP,0BAAgB;AAFT,SAHJ;AAOLS,QAAAA,IAAI,mFAAKpB,aAAL,cAAsBgB,eAAtB,wBAAyCf,aAAzC,uBAA0DiB,eAA1D;AAPC,OAAP;AASD;AAED;AACF;;;;WACE,eAAMJ,QAAN,EAAwBC,QAAxB,EAAwD;AAAA;;AACtD,aAAO,KAAKV,SAAL,CAAe,IAAf,EAAqBgB,IAArB,CAA0B,YAAM;AACrC,YAAI,MAAI,CAACjB,qBAAT,EAAgC;AAAA;;AAC9BR,UAAAA,KAAK,CAAC0B,OAAN,CAAc,OAAd,EAAuBC,IAAI,+CAAIT,QAAJ,wBAAgBC,QAAhB,EAA3B;AAEA,iBAAO,SAAQT,OAAR,EAAP;AACD;;AAED,eAAOX,cAAc,CAAC,MAAI,CAAC6B,WAAL,CAAiBV,QAAjB,EAA2BC,QAA3B,CAAD,CAArB;AACD,OARM,CAAP;AASD;AAED;AACF;;;;WACE,kBAAwB;AACtB,aAAOpB,cAAc,CAAC;AACpBY,QAAAA,GAAG,EAAER;AADe,OAAD,CAAd,CAEJsB,IAFI,CAEC,YAAM;AACZ;AACAzB,QAAAA,KAAK,CAAC6B,KAAN;AACD,OALM,CAAP;AAMD;;;;;;AAGH,eAAevB,YAAf","sourcesContent":["// @flow\nimport { BASE, HTTP_METHODS } from \"../constants/Constants\";\n\nimport universalFetch from \"../utils/fetch/universalFetch\";\nimport Cache from \"../utils/browser/Cache\";\n\nimport { UnauthorizedException } from \"../exceptions\";\nimport type { RequestOptions } from \"../utils/fetch/types\";\n\nconst LOGIN_PATH = `${BASE}/j_security_check`;\nconst LOGOUT_PATH = `${BASE}/Logoff`;\n\nconst usernameField = \"j_username\";\nconst passwordField = \"j_password\";\n\n/**\n */\nclass Authenticate {\n _isBasic: boolean;\n\n /**\n */\n constructor() {\n this._isBasic = false;\n }\n\n /**\n */\n get isBasicAuthentication(): boolean {\n return this._isBasic;\n }\n\n /**\n */\n set isBasicAuthentication(isBasicAuthentication: boolean) {\n this._isBasic = isBasicAuthentication;\n }\n\n /**\n */\n initLogin(initLogin: boolean): Promise<any> {\n if (this.isBasicAuthentication || !initLogin) {\n return Promise.resolve(true);\n }\n\n return universalFetch({\n url: `${BASE}/login`,\n method: HTTP_METHODS.GET,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n }).catch((error) => {\n // when an unauthorizedexception is received on a request to the login service,\n // this indicates a basic authorization scenario\n // in case of form based authentication other exceptions are thrown\n if (error instanceof UnauthorizedException) {\n this.isBasicAuthentication = true;\n }\n\n return Promise.resolve({});\n });\n }\n\n /**\n */\n createLogin(username: string, password: string): $Shape<RequestOptions> {\n const encodedUsername = encodeURIComponent(username);\n const encodedPassword = encodeURIComponent(password);\n\n return {\n url: LOGIN_PATH,\n method: HTTP_METHODS.POST,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n data: `${usernameField}=${encodedUsername}&${passwordField}=${encodedPassword}`,\n };\n }\n\n /**\n */\n login(username: string, password: string): Promise<any> {\n return this.initLogin(true).then(() => {\n if (this.isBasicAuthentication) {\n Cache.addItem(\"basic\", btoa(`${username}:${password}`));\n\n return Promise.resolve();\n }\n\n return universalFetch(this.createLogin(username, password));\n });\n }\n\n /**\n */\n logout(): Promise<void> {\n return universalFetch({\n url: LOGOUT_PATH,\n }).then(() => {\n // clear cache because of cached contributions\n Cache.clear();\n });\n }\n}\n\nexport default Authenticate;\n"],"file":"Authenticate.js"}
1
+ {"version":3,"sources":["../../src/modularui/Authenticate.js"],"names":["BASE","HTTP_METHODS","universalFetch","Cache","UnauthorizedException","loginPasswordField","loginPath","loginUsernameField","logoutPath","Authenticate","_isBasic","isBasicAuthentication","initLogin","resolve","url","method","GET","headers","Accept","catch","error","username","password","LOGIN_PATH","usernameField","passwordField","encodedUsername","encodeURIComponent","encodedPassword","POST","data","then","addItem","btoa","createLogin","clear"],"mappings":";;;;;AACA,SAASA,IAAT,EAAeC,YAAf,QAAmC,wBAAnC;AAEA,OAAOC,cAAP,MAA2B,+BAA3B;AACA,OAAOC,KAAP,MAAkB,wBAAlB;AAEA,SAASC,qBAAT,QAAsC,eAAtC;AAEA,SACEC,kBADF,EAEEC,SAFF,EAGEC,kBAHF,EAIEC,UAJF,QAKO,cALP;AAOA;AACA;;IACMC,Y;AAGJ;AACF;AACE,0BAAc;AAAA;;AAAA;;AACZ,SAAKC,QAAL,GAAgB,KAAhB;AACD;AAED;AACF;;;;;SACE,eAAqC;AACnC,aAAO,KAAKA,QAAZ;AACD;AAED;AACF;;SACE,aAA0BC,qBAA1B,EAA0D;AACxD,WAAKD,QAAL,GAAgBC,qBAAhB;AACD;AAED;AACF;;;;WACE,mBAAUC,UAAV,EAA4C;AAAA;;AAC1C,UAAI,KAAKD,qBAAL,IAA8B,CAACC,UAAnC,EAA8C;AAC5C,eAAO,SAAQC,OAAR,CAAgB,IAAhB,CAAP;AACD;;AAED,aAAOX,cAAc,CAAC;AACpBY,QAAAA,GAAG,YAAKd,IAAL,WADiB;AAEpBe,QAAAA,MAAM,EAAEd,YAAY,CAACe,GAFD;AAGpBC,QAAAA,OAAO,EAAE;AACPC,UAAAA,MAAM,EAAE,kBADD;AAEP,0BAAgB;AAFT;AAHW,OAAD,CAAd,CAOJC,KAPI,CAOE,UAACC,KAAD,EAAW;AAClB;AACA;AACA;AACA,YAAIA,KAAK,YAAYhB,qBAArB,EAA4C;AAC1C,UAAA,KAAI,CAACO,qBAAL,GAA6B,IAA7B;AACD;;AAED,eAAO,SAAQE,OAAR,CAAgB,EAAhB,CAAP;AACD,OAhBM,CAAP;AAiBD;AAED;AACF;;;;WACE,qBAAYQ,QAAZ,EAA8BC,QAA9B,EAAwE;AAAA;;AACtE,UAAMC,UAAU,GAAGjB,SAAS,EAA5B;AACA,UAAMkB,aAAa,GAAGjB,kBAAkB,EAAxC;AACA,UAAMkB,aAAa,GAAGpB,kBAAkB,EAAxC;AAEA,UAAMqB,eAAe,GAAGC,kBAAkB,CAACN,QAAD,CAA1C;AACA,UAAMO,eAAe,GAAGD,kBAAkB,CAACL,QAAD,CAA1C;AAEA,aAAO;AACLR,QAAAA,GAAG,EAAES,UADA;AAELR,QAAAA,MAAM,EAAEd,YAAY,CAAC4B,IAFhB;AAGLZ,QAAAA,OAAO,EAAE;AACPC,UAAAA,MAAM,EAAE,kBADD;AAEP,0BAAgB;AAFT,SAHJ;AAOLY,QAAAA,IAAI,uHAAKN,aAAL,wBAAsBE,eAAtB,wBAAyCD,aAAzC,uBAA0DG,eAA1D;AAPC,OAAP;AASD;AAED;AACF;;;;WACE,eAAMP,QAAN,EAAwBC,QAAxB,EAAwD;AAAA;;AACtD,aAAO,KAAKV,SAAL,CAAe,IAAf,EAAqBmB,IAArB,CAA0B,YAAM;AACrC,YAAI,MAAI,CAACpB,qBAAT,EAAgC;AAAA;;AAC9BR,UAAAA,KAAK,CAAC6B,OAAN,CAAc,OAAd,EAAuBC,IAAI,+CAAIZ,QAAJ,wBAAgBC,QAAhB,EAA3B;AAEA,iBAAO,SAAQT,OAAR,EAAP;AACD;;AAED,eAAOX,cAAc,CAAC,MAAI,CAACgC,WAAL,CAAiBb,QAAjB,EAA2BC,QAA3B,CAAD,CAArB;AACD,OARM,CAAP;AASD;AAED;AACF;;;;WACE,kBAAwB;AACtB,aAAOpB,cAAc,CAAC;AACpBY,QAAAA,GAAG,EAAEN,UAAU;AADK,OAAD,CAAd,CAEJuB,IAFI,CAEC,YAAM;AACZ;AACA5B,QAAAA,KAAK,CAACgC,KAAN;AACD,OALM,CAAP;AAMD;;;;;;AAGH,eAAe1B,YAAf","sourcesContent":["// @flow\nimport { BASE, HTTP_METHODS } from \"../constants/Constants\";\n\nimport universalFetch from \"../utils/fetch/universalFetch\";\nimport Cache from \"../utils/browser/Cache\";\n\nimport { UnauthorizedException } from \"../exceptions\";\nimport type { RequestOptions } from \"../utils/fetch/types\";\nimport {\n loginPasswordField,\n loginPath,\n loginUsernameField,\n logoutPath,\n} from \"../constants\";\n\n/**\n */\nclass Authenticate {\n _isBasic: boolean;\n\n /**\n */\n constructor() {\n this._isBasic = false;\n }\n\n /**\n */\n get isBasicAuthentication(): boolean {\n return this._isBasic;\n }\n\n /**\n */\n set isBasicAuthentication(isBasicAuthentication: boolean) {\n this._isBasic = isBasicAuthentication;\n }\n\n /**\n */\n initLogin(initLogin: boolean): Promise<any> {\n if (this.isBasicAuthentication || !initLogin) {\n return Promise.resolve(true);\n }\n\n return universalFetch({\n url: `${BASE}/login`,\n method: HTTP_METHODS.GET,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n }).catch((error) => {\n // when an unauthorizedexception is received on a request to the login service,\n // this indicates a basic authorization scenario\n // in case of form based authentication other exceptions are thrown\n if (error instanceof UnauthorizedException) {\n this.isBasicAuthentication = true;\n }\n\n return Promise.resolve({});\n });\n }\n\n /**\n */\n createLogin(username: string, password: string): $Shape<RequestOptions> {\n const LOGIN_PATH = loginPath();\n const usernameField = loginUsernameField();\n const passwordField = loginPasswordField();\n\n const encodedUsername = encodeURIComponent(username);\n const encodedPassword = encodeURIComponent(password);\n\n return {\n url: LOGIN_PATH,\n method: HTTP_METHODS.POST,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n data: `${usernameField}=${encodedUsername}&${passwordField}=${encodedPassword}`,\n };\n }\n\n /**\n */\n login(username: string, password: string): Promise<any> {\n return this.initLogin(true).then(() => {\n if (this.isBasicAuthentication) {\n Cache.addItem(\"basic\", btoa(`${username}:${password}`));\n\n return Promise.resolve();\n }\n\n return universalFetch(this.createLogin(username, password));\n });\n }\n\n /**\n */\n logout(): Promise<void> {\n return universalFetch({\n url: logoutPath(),\n }).then(() => {\n // clear cache because of cached contributions\n Cache.clear();\n });\n }\n}\n\nexport default Authenticate;\n"],"file":"Authenticate.js"}
@@ -14,7 +14,7 @@ import { createBrowserHistory } from "history";
14
14
  import configureStore from "../redux/store/configureStore";
15
15
  import rehydrate from "./rehydrate";
16
16
  import { BASE } from "../constants/Constants";
17
- import { setAllContentInDataSetting } from "../redux/actions/Preferences";
17
+ import { setAllContentInDataSetting, setLoginPreferences } from "../redux/actions/Preferences";
18
18
  import { showXHRErrorNotification } from "../redux/actions/Notification";
19
19
  import { handleError } from "../redux/actions/Error";
20
20
  import { loginSuccess } from "../redux/actions/SignIn";
@@ -78,7 +78,8 @@ var client = function client() {
78
78
  history = _configureStore.history,
79
79
  store = _configureStore.store;
80
80
 
81
- setAllContentInDataSetting(store.getState()); // load existing cache from other browser tabs
81
+ setAllContentInDataSetting(store.getState());
82
+ setLoginPreferences(store.getState()); // load existing cache from other browser tabs
82
83
 
83
84
  Cache.loadOtherBrowserTabs(function () {
84
85
  if (Cache.getItem("auth")) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react-client/client.js"],"names":["elementClosest","window","hydrate","render","reactRender","has","setImmediate","Cache","createBrowserHistory","configureStore","rehydrate","BASE","setAllContentInDataSetting","showXHRErrorNotification","handleError","loginSuccess","locationChange","JsonParseException","FetchException","Init","handleBeforeRenderHooks","parseDataToJSON","data","JSON","parse","error","client","customReducers","theme","beforeRenderHooks","ErrorFallbackComponent","contextPath","Error","dataElement","document","querySelector","textContent","clear","browserHistory","basename","history","store","getState","loadOtherBrowserTabs","getItem","dispatch","response","listen","location","action","onunhandledrejection","event","detail","errorMessage","reason","message","toString","body","className","addContentLoadedEvent","addEventListener","applicationNode","isSSR","mount"],"mappings":"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","sourcesContent":["// @flow\n/* polyfills needed for ie11 */\nimport elementClosest from \"element-closest\";\nelementClosest(window);\n\n/* polyfill for focus-visible */\nimport \"focus-visible\";\n\nimport { hydrate, render as reactRender } from \"react-dom\";\n\nimport { has } from \"../utils/helpers/objects\";\nimport setImmediate from \"setimmediate\";\n\nimport Cache from \"../utils/browser/Cache\";\n\nimport { createBrowserHistory } from \"history\";\nimport configureStore from \"../redux/store/configureStore\";\n\nimport rehydrate from \"./rehydrate\";\nimport { BASE } from \"../constants/Constants\";\n\nimport { setAllContentInDataSetting } from \"../redux/actions/Preferences\";\nimport { showXHRErrorNotification } from \"../redux/actions/Notification\";\n\nimport { handleError } from \"../redux/actions/Error\";\nimport { loginSuccess } from \"../redux/actions/SignIn\";\n\nimport { locationChange } from \"../redux/_router/actions\";\n\nimport { JsonParseException, FetchException } from \"../exceptions\";\n\nimport Init from \"./Init\";\n\nimport { handleBeforeRenderHooks } from \"../redux/store/beforeRenderHooks\";\n\nimport type { ComponentType } from \"react\";\nimport type { Theme } from \"../react-theme/types\";\nimport type { CustomReducers } from \"../redux/types\";\nimport type { RouterHistory } from \"react-router\";\nimport type { BeforeRenderHook } from \"../redux/store/beforeRenderHooks\";\nimport type { Props as FallbackProps } from \"../react/ErrorBoundaryFallback\";\nexport type Props = {\n customReducers?: CustomReducers,\n theme?: Theme | Array<Theme>,\n render: Function,\n beforeRenderHooks?: Array<BeforeRenderHook>,\n ErrorFallbackComponent?: ComponentType<FallbackProps>,\n};\n\n/*\n * deserialize serialized data from the server to provide a smooth dehydration.\n */\n/**\n */\nconst parseDataToJSON = (data) => {\n try {\n return JSON.parse(data);\n } catch (error) {\n throw new JsonParseException(`Error parsing content ${data}`);\n }\n};\n\n/**\n * Mount the webapplication to the DOM, used client side when JavaScript is enabled.\n */\nconst client = ({\n customReducers = {},\n theme = {},\n render,\n beforeRenderHooks,\n ErrorFallbackComponent,\n}: Props = {}) => {\n if (typeof window.contextPath === \"undefined\") {\n throw new Error(\"Missing contextPath on window object\");\n }\n\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]'\n );\n if (!dataElement) {\n throw new Error(\"Error loading state, json not found\");\n } else if (dataElement.textContent.trim() === \"\") {\n return;\n }\n\n const data = parseDataToJSON(dataElement.textContent);\n\n // remove all resources from cache\n Cache.clear(\"^res:\");\n\n // $FlowExpectedError\n const browserHistory: RouterHistory = createBrowserHistory({\n basename: BASE,\n });\n const { history, store } = configureStore(\n browserHistory,\n customReducers,\n rehydrate(data)\n );\n\n setAllContentInDataSetting(store.getState());\n\n // load existing cache from other browser tabs\n Cache.loadOtherBrowserTabs(() => {\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n });\n\n if (has(data, \"error.name\")) {\n const error = new FetchException(data.error.response);\n store.dispatch(handleError(error));\n }\n\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n\n // listen to history change and update the redux router store\n history.listen((location, action) => {\n store.dispatch(locationChange(location, action));\n });\n\n /**\n */\n window.onunhandledrejection = (event) => {\n if (event.detail) {\n return setImmediate(() => {\n const errorMessage = event.detail.reason.message.toString();\n\n store.dispatch(showXHRErrorNotification(errorMessage));\n throw event.detail.reason;\n });\n }\n\n return event;\n };\n\n if (document.body) {\n document.body.className = \"js\";\n }\n\n handleBeforeRenderHooks(beforeRenderHooks, { store });\n\n addContentLoadedEvent(store, history, theme, render, ErrorFallbackComponent);\n};\n\n/**\n */\nconst addContentLoadedEvent = (\n store,\n history,\n theme,\n render,\n ErrorFallbackComponent\n) => {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const applicationNode = document.querySelector(\"#application\");\n if (applicationNode) {\n const isSSR = applicationNode.querySelector(\".application\");\n const mount = isSSR ? hydrate : reactRender;\n mount(\n <Init\n store={store}\n history={history}\n contextPath={window.contextPath}\n theme={theme}\n ErrorFallbackComponent={ErrorFallbackComponent}\n >\n {render()}\n </Init>,\n applicationNode\n );\n } else {\n throw new Error(\n \"No DOM element with id application found to attach client to\"\n );\n }\n });\n};\n\nexport default client;\n"],"file":"client.js"}
1
+ {"version":3,"sources":["../../src/react-client/client.js"],"names":["elementClosest","window","hydrate","render","reactRender","has","setImmediate","Cache","createBrowserHistory","configureStore","rehydrate","BASE","setAllContentInDataSetting","setLoginPreferences","showXHRErrorNotification","handleError","loginSuccess","locationChange","JsonParseException","FetchException","Init","handleBeforeRenderHooks","parseDataToJSON","data","JSON","parse","error","client","customReducers","theme","beforeRenderHooks","ErrorFallbackComponent","contextPath","Error","dataElement","document","querySelector","textContent","clear","browserHistory","basename","history","store","getState","loadOtherBrowserTabs","getItem","dispatch","response","listen","location","action","onunhandledrejection","event","detail","errorMessage","reason","message","toString","body","className","addContentLoadedEvent","addEventListener","applicationNode","isSSR","mount"],"mappings":"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","sourcesContent":["// @flow\n/* polyfills needed for ie11 */\nimport elementClosest from \"element-closest\";\nelementClosest(window);\n\n/* polyfill for focus-visible */\nimport \"focus-visible\";\n\nimport { hydrate, render as reactRender } from \"react-dom\";\n\nimport { has } from \"../utils/helpers/objects\";\nimport setImmediate from \"setimmediate\";\n\nimport Cache from \"../utils/browser/Cache\";\n\nimport { createBrowserHistory } from \"history\";\nimport configureStore from \"../redux/store/configureStore\";\n\nimport rehydrate from \"./rehydrate\";\nimport { BASE } from \"../constants/Constants\";\n\nimport {\n setAllContentInDataSetting,\n setLoginPreferences,\n} from \"../redux/actions/Preferences\";\nimport { showXHRErrorNotification } from \"../redux/actions/Notification\";\n\nimport { handleError } from \"../redux/actions/Error\";\nimport { loginSuccess } from \"../redux/actions/SignIn\";\n\nimport { locationChange } from \"../redux/_router/actions\";\n\nimport { JsonParseException, FetchException } from \"../exceptions\";\n\nimport Init from \"./Init\";\n\nimport { handleBeforeRenderHooks } from \"../redux/store/beforeRenderHooks\";\n\nimport type { ComponentType } from \"react\";\nimport type { Theme } from \"../react-theme/types\";\nimport type { CustomReducers } from \"../redux/types\";\nimport type { RouterHistory } from \"react-router\";\nimport type { BeforeRenderHook } from \"../redux/store/beforeRenderHooks\";\nimport type { Props as FallbackProps } from \"../react/ErrorBoundaryFallback\";\nexport type Props = {\n customReducers?: CustomReducers,\n theme?: Theme | Array<Theme>,\n render: Function,\n beforeRenderHooks?: Array<BeforeRenderHook>,\n ErrorFallbackComponent?: ComponentType<FallbackProps>,\n};\n\n/*\n * deserialize serialized data from the server to provide a smooth dehydration.\n */\n/**\n */\nconst parseDataToJSON = (data) => {\n try {\n return JSON.parse(data);\n } catch (error) {\n throw new JsonParseException(`Error parsing content ${data}`);\n }\n};\n\n/**\n * Mount the webapplication to the DOM, used client side when JavaScript is enabled.\n */\nconst client = ({\n customReducers = {},\n theme = {},\n render,\n beforeRenderHooks,\n ErrorFallbackComponent,\n}: Props = {}) => {\n if (typeof window.contextPath === \"undefined\") {\n throw new Error(\"Missing contextPath on window object\");\n }\n\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]'\n );\n if (!dataElement) {\n throw new Error(\"Error loading state, json not found\");\n } else if (dataElement.textContent.trim() === \"\") {\n return;\n }\n\n const data = parseDataToJSON(dataElement.textContent);\n\n // remove all resources from cache\n Cache.clear(\"^res:\");\n\n // $FlowExpectedError\n const browserHistory: RouterHistory = createBrowserHistory({\n basename: BASE,\n });\n const { history, store } = configureStore(\n browserHistory,\n customReducers,\n rehydrate(data)\n );\n\n setAllContentInDataSetting(store.getState());\n setLoginPreferences(store.getState());\n\n // load existing cache from other browser tabs\n Cache.loadOtherBrowserTabs(() => {\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n });\n\n if (has(data, \"error.name\")) {\n const error = new FetchException(data.error.response);\n store.dispatch(handleError(error));\n }\n\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n\n // listen to history change and update the redux router store\n history.listen((location, action) => {\n store.dispatch(locationChange(location, action));\n });\n\n /**\n */\n window.onunhandledrejection = (event) => {\n if (event.detail) {\n return setImmediate(() => {\n const errorMessage = event.detail.reason.message.toString();\n\n store.dispatch(showXHRErrorNotification(errorMessage));\n throw event.detail.reason;\n });\n }\n\n return event;\n };\n\n if (document.body) {\n document.body.className = \"js\";\n }\n\n handleBeforeRenderHooks(beforeRenderHooks, { store });\n\n addContentLoadedEvent(store, history, theme, render, ErrorFallbackComponent);\n};\n\n/**\n */\nconst addContentLoadedEvent = (\n store,\n history,\n theme,\n render,\n ErrorFallbackComponent\n) => {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const applicationNode = document.querySelector(\"#application\");\n if (applicationNode) {\n const isSSR = applicationNode.querySelector(\".application\");\n const mount = isSSR ? hydrate : reactRender;\n mount(\n <Init\n store={store}\n history={history}\n contextPath={window.contextPath}\n theme={theme}\n ErrorFallbackComponent={ErrorFallbackComponent}\n >\n {render()}\n </Init>,\n applicationNode\n );\n } else {\n throw new Error(\n \"No DOM element with id application found to attach client to\"\n );\n }\n });\n};\n\nexport default client;\n"],"file":"client.js"}
@@ -24,7 +24,7 @@ import { availableLocales } from "../i18n/Locales";
24
24
  import Locales from "../i18n/Locales";
25
25
  import { getPreferredLocale } from "./requestInformation";
26
26
  import { setLocales } from "../redux/_i18n/actions";
27
- import { setServerPreference, setThemePreference, setPreference, setAllContentInDataSetting } from "../redux/actions/Preferences";
27
+ import { setServerPreference, setThemePreference, setPreference, setAllContentInDataSetting, setLoginPreferences } from "../redux/actions/Preferences";
28
28
  import { getSetting } from "../constants/Settings";
29
29
  import { IllegalArgumentException } from "../exceptions";
30
30
 
@@ -124,6 +124,7 @@ var setServerPreferences = function setServerPreferences(store, serverPreference
124
124
  }
125
125
 
126
126
  store.dispatch(setAllContentInDataSetting());
127
+ store.dispatch(setLoginPreferences());
127
128
 
128
129
  if (preferencesProvider && preferencesProvider.isStudioContext && preferencesProvider.isStudioContext()) {
129
130
  store.dispatch(setPreference("isStudioContext", true));