@beinformed/ui 1.47.1 → 1.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/esm/constants/Constants.js.map +1 -1
  3. package/esm/constants/Settings.js.map +1 -1
  4. package/esm/exceptions/FetchException.js.map +1 -1
  5. package/esm/exceptions/NetworkException.js.map +1 -1
  6. package/esm/exceptions/NotFoundException.js.map +1 -1
  7. package/esm/exceptions/TimeoutException.js.map +1 -1
  8. package/esm/exceptions/UnauthorizedException.js.map +1 -1
  9. package/esm/hooks/useAuthentication.js.map +1 -1
  10. package/esm/hooks/useModularUI.js.map +1 -1
  11. package/esm/i18n/Locale.js.map +1 -1
  12. package/esm/i18n/Locales.js.map +1 -1
  13. package/esm/models/actions/ActionCollection.js.map +1 -1
  14. package/esm/models/actions/ActionModel.js.map +1 -1
  15. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  16. package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
  17. package/esm/models/attributes/AttributeModel.js.map +1 -1
  18. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  19. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  20. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  21. package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
  22. package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
  23. package/esm/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  24. package/esm/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  25. package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  26. package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  27. package/esm/models/base/ResourceModel.js.map +1 -1
  28. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  29. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  30. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  31. package/esm/models/concepts/ConceptRelationModel.js +24 -5
  32. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  33. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  34. package/esm/models/content/ContentLinkModel.js.map +1 -1
  35. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  36. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  37. package/esm/models/filters/FilterCollection.js.map +1 -1
  38. package/esm/models/form/FormObjectModel.js.map +1 -1
  39. package/esm/models/href/Href.js.map +1 -1
  40. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  41. package/esm/models/links/LinkCollection.js.map +1 -1
  42. package/esm/models/list/ListDetailModel.js.map +1 -1
  43. package/esm/models/list/ListItemCollection.js.map +1 -1
  44. package/esm/models/parameter/Parameter.js.map +1 -1
  45. package/esm/models/sorting/SortOptionModel.js.map +1 -1
  46. package/esm/modularui/Authenticate.js.map +1 -1
  47. package/esm/modularui/ModularUIRequest.js.map +1 -1
  48. package/esm/react/utils.js.map +1 -1
  49. package/esm/react-client/client.js.map +1 -1
  50. package/esm/react-client/contextPath.js.map +1 -1
  51. package/esm/react-server/contextPath.js.map +1 -1
  52. package/esm/react-server/htmlpage.js.map +1 -1
  53. package/esm/react-server/requestInformation.js.map +1 -1
  54. package/esm/react-server/serverUtil.js.map +1 -1
  55. package/esm/react-theme/createTheme.js.map +1 -1
  56. package/esm/react-theme/utils/background.js.map +1 -1
  57. package/esm/react-theme/utils/contrast.js.map +1 -1
  58. package/esm/react-theme/utils/corners.js.map +1 -1
  59. package/esm/react-theme/utils/spacers.js.map +1 -1
  60. package/esm/react-theme/utils/themeProps.js.map +1 -1
  61. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  62. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  63. package/esm/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  64. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  65. package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
  66. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  67. package/esm/redux/actions/Application.js.map +1 -1
  68. package/esm/redux/actions/Preferences.js.map +1 -1
  69. package/esm/redux/connectors/ConceptDetail.js.map +1 -1
  70. package/esm/redux/connectors/ContentDetail.js.map +1 -1
  71. package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
  72. package/esm/redux/connectors/Form.js.map +1 -1
  73. package/esm/utils/browser/Cache.js.map +1 -1
  74. package/esm/utils/fetch/serverFetch.js.map +1 -1
  75. package/esm/utils/fetch/universalFetch.js.map +1 -1
  76. package/esm/utils/fetch/xhr.js.map +1 -1
  77. package/esm/utils/helpers/createHref.js.map +1 -1
  78. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  79. package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
  80. package/esm/utils/number/DecimalFormat.js.map +1 -1
  81. package/esm/utils/number/formatValue.js.map +1 -1
  82. package/lib/constants/Constants.js.map +1 -1
  83. package/lib/constants/Settings.js.map +1 -1
  84. package/lib/exceptions/FetchException.js.map +1 -1
  85. package/lib/exceptions/NetworkException.js.map +1 -1
  86. package/lib/exceptions/NotFoundException.js.map +1 -1
  87. package/lib/exceptions/TimeoutException.js.map +1 -1
  88. package/lib/exceptions/UnauthorizedException.js.map +1 -1
  89. package/lib/hooks/useAuthentication.js.map +1 -1
  90. package/lib/hooks/useModularUI.js.map +1 -1
  91. package/lib/i18n/Locale.js.map +1 -1
  92. package/lib/i18n/Locales.js.map +1 -1
  93. package/lib/models/actions/ActionCollection.js.map +1 -1
  94. package/lib/models/actions/ActionModel.js.map +1 -1
  95. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  96. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  97. package/lib/models/attributes/AttributeModel.js.map +1 -1
  98. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  99. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  100. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  101. package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
  102. package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
  103. package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
  104. package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
  105. package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
  106. package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  107. package/lib/models/base/ResourceModel.js.map +1 -1
  108. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  109. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  110. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  111. package/lib/models/concepts/ConceptRelationModel.js +24 -5
  112. package/lib/models/concepts/ConceptRelationModel.js.flow +25 -5
  113. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  114. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  115. package/lib/models/concepts/__mock__/relation_with_props_and_tf_data.js.flow +27 -0
  116. package/lib/models/concepts/__tests__/ConceptRelationModel.spec.js.flow +44 -0
  117. package/lib/models/content/ContentLinkModel.js.map +1 -1
  118. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  119. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  120. package/lib/models/filters/FilterCollection.js.map +1 -1
  121. package/lib/models/form/FormObjectModel.js.map +1 -1
  122. package/lib/models/href/Href.js.map +1 -1
  123. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  124. package/lib/models/links/LinkCollection.js.map +1 -1
  125. package/lib/models/list/ListDetailModel.js.map +1 -1
  126. package/lib/models/list/ListItemCollection.js.map +1 -1
  127. package/lib/models/parameter/Parameter.js.map +1 -1
  128. package/lib/models/sorting/SortOptionModel.js.map +1 -1
  129. package/lib/modularui/Authenticate.js.map +1 -1
  130. package/lib/modularui/ModularUIRequest.js.map +1 -1
  131. package/lib/react/utils.js.map +1 -1
  132. package/lib/react-client/client.js.map +1 -1
  133. package/lib/react-client/contextPath.js.map +1 -1
  134. package/lib/react-server/contextPath.js.map +1 -1
  135. package/lib/react-server/htmlpage.js.map +1 -1
  136. package/lib/react-server/requestInformation.js.map +1 -1
  137. package/lib/react-server/serverUtil.js.map +1 -1
  138. package/lib/react-theme/createTheme.js.map +1 -1
  139. package/lib/react-theme/utils/background.js.map +1 -1
  140. package/lib/react-theme/utils/contrast.js.map +1 -1
  141. package/lib/react-theme/utils/corners.js.map +1 -1
  142. package/lib/react-theme/utils/spacers.js.map +1 -1
  143. package/lib/react-theme/utils/themeProps.js.map +1 -1
  144. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  145. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  146. package/lib/redux/_modularui/ModularUIMiddleware.js.map +1 -1
  147. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  148. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  149. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  150. package/lib/redux/actions/Application.js.map +1 -1
  151. package/lib/redux/actions/Preferences.js.map +1 -1
  152. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  153. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  154. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  155. package/lib/redux/connectors/Form.js.map +1 -1
  156. package/lib/utils/browser/Cache.js.map +1 -1
  157. package/lib/utils/fetch/serverFetch.js.map +1 -1
  158. package/lib/utils/fetch/universalFetch.js.map +1 -1
  159. package/lib/utils/fetch/xhr.js.map +1 -1
  160. package/lib/utils/helpers/createHref.js.map +1 -1
  161. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  162. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  163. package/lib/utils/number/DecimalFormat.js.map +1 -1
  164. package/lib/utils/number/formatValue.js.map +1 -1
  165. package/package.json +3 -3
  166. package/src/models/concepts/ConceptRelationModel.js +25 -5
  167. package/src/models/concepts/__mock__/relation_with_props_and_tf_data.js +27 -0
  168. package/src/models/concepts/__mock__/relation_with_props_and_tf_data.json +67 -0
  169. package/src/models/concepts/__tests__/ConceptRelationModel.spec.js +44 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.48.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.47.2...v1.48.0) (2024-05-28)
6
+
7
+
8
+ ### Features
9
+
10
+ * **concept-relations:** add all information on relation model ([fc255b5](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/fc255b55c7b0d6b90691dfa777927ebf5dcf0d10))
11
+
12
+ ## [1.47.2](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.47.1...v1.47.2) (2024-05-22)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **dependencies:** update react-helmet-async peer dependencies to allow 2.0.0 and up ([24dadef](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/24dadef8b5ab9fb5125b3175b053bc7fe4178d62))
18
+
5
19
  ## [1.47.1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.47.0...v1.47.1) (2024-05-17)
6
20
 
7
21
  ## [1.47.0](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.46.1...v1.47.0) (2024-05-14)
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","names":["CONTENT_PATH","UPLOAD_PATH","CAPTCHA_PATH","CHANGEAVATAR_PATH","CHANGEPASSWORD_PATH","USERPROFILE_PATH","RESOURCE_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","INTERNAL_LOGIN_TYPE","JAAS","PAC4J_FORM","PAC4J_BASIC","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING","DEFAULT_AUTHENTICATION_TYPE","name","authentication","isPrimary"],"sources":["../../src/constants/Constants.js"],"sourcesContent":["// @flow\n/**\n * path to content service\n */\nexport const CONTENT_PATH = `/content`;\n\n/**\n * Upload Path\n */\nexport const UPLOAD_PATH = `/uploadFile`;\n\n/**\n * Captcha Path\n */\nexport const CAPTCHA_PATH = `/captchaServices`;\n\n/**\n * Path to change avatar page / component\n */\nexport const CHANGEAVATAR_PATH = \"/change-avatar\";\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 * Path to resources in the Be Informed repository\n */\nexport const RESOURCE_PATH = \"/resource\";\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 INTERNAL_LOGIN_TYPE = {\n JAAS: \"JAAS\",\n PAC4J_FORM: \"PAC4J_FORM\",\n PAC4J_BASIC: \"PAC4J_BASIC\",\n};\nexport const LOGIN_TYPE = \"security.clients\";\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\nexport const DEFAULT_AUTHENTICATION_TYPE = {\n name: \"Form based authentication\",\n authentication: \"DefaultFormClient\",\n isPrimary: true,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Constants.js","names":["CONTENT_PATH","UPLOAD_PATH","CAPTCHA_PATH","CHANGEAVATAR_PATH","CHANGEPASSWORD_PATH","USERPROFILE_PATH","RESOURCE_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","INTERNAL_LOGIN_TYPE","JAAS","PAC4J_FORM","PAC4J_BASIC","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING","DEFAULT_AUTHENTICATION_TYPE","name","authentication","isPrimary"],"sources":["../../src/constants/Constants.js"],"sourcesContent":["// @flow\n/**\n * path to content service\n */\nexport const CONTENT_PATH = `/content`;\n\n/**\n * Upload Path\n */\nexport const UPLOAD_PATH = `/uploadFile`;\n\n/**\n * Captcha Path\n */\nexport const CAPTCHA_PATH = `/captchaServices`;\n\n/**\n * Path to change avatar page / component\n */\nexport const CHANGEAVATAR_PATH = \"/change-avatar\";\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 * Path to resources in the Be Informed repository\n */\nexport const RESOURCE_PATH = \"/resource\";\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 INTERNAL_LOGIN_TYPE = {\n JAAS: \"JAAS\",\n PAC4J_FORM: \"PAC4J_FORM\",\n PAC4J_BASIC: \"PAC4J_BASIC\",\n};\nexport const LOGIN_TYPE = \"security.clients\";\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\nexport const DEFAULT_AUTHENTICATION_TYPE = {\n name: \"Form based authentication\",\n authentication: \"DefaultFormClient\",\n isPrimary: true,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","names":["isPlainObject","has","getRepositoryResourceUrl","ALL_CONTENT_IN_DATA_SETTING","INTERNAL_LOGIN_TYPE","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING","UPLOAD_PATH","CAPTCHA_PATH","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","settings","setSettings","config","_Object$assign","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getUploadPath","getCaptchaPath","hasAllContentInData","loginType","JAAS","loginPath","loginUsernameField","loginPasswordField","logoutPath","getSwimLaneDiagramConfiguration","configLocation","_startsWithInstanceProperty","call","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * Base path\n * This uses contextPath set from property from server\n * When requesting a remote server with CORS enabled, add the origin, for example:\n * export const BEINFORMED_PATH = 'http://192.168.128.61:8080/BeInformed';\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (): string => `${getBasePath()}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (): string => `${getBasePath()}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (): string =>\n getSetting(LOGIN_PATH_SETTING, \"/callback?client_name=FormClient\");\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Settings.js","names":["isPlainObject","has","getRepositoryResourceUrl","ALL_CONTENT_IN_DATA_SETTING","INTERNAL_LOGIN_TYPE","LOGIN_TYPE","LOGIN_PATH_SETTING","LOGIN_USERNAME_SETTING","LOGIN_PASSWORD_SETTING","LOGOUT_PATH_SETTING","UPLOAD_PATH","CAPTCHA_PATH","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","settings","setSettings","config","_Object$assign","getSetting","key","defaultValue","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getUploadPath","getCaptchaPath","hasAllContentInData","loginType","JAAS","loginPath","loginUsernameField","loginPasswordField","logoutPath","getSwimLaneDiagramConfiguration","configLocation","_startsWithInstanceProperty","call","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * Base path\n * This uses contextPath set from property from server\n * When requesting a remote server with CORS enabled, add the origin, for example:\n * export const BEINFORMED_PATH = 'http://192.168.128.61:8080/BeInformed';\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (): string => `${getBasePath()}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (): string => `${getBasePath()}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (): string =>\n getSetting(LOGIN_PATH_SETTING, \"/callback?client_name=FormClient\");\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FetchException.js","names":["has","HTTP_METHODS","CLIENT_ERROR_CODE","getErrorInfo","errorResponse","requestOptions","defaultErrorInfo","id","defaultMessage","url","method","GET","properties","param","error","key","_Object$keys","errors","FetchException","Error","constructor","failedRequest","errorInfo","_defineProperty","name","request","status","response","parameters","captureStackTrace"],"sources":["../../src/exceptions/FetchException.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\n\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport type { MessageParameters } from \"../i18n/types\";\nimport type { RequestOptions } from \"../utils/fetch/types\";\n\nexport type ModularUIErrorResponse = {\n error: {\n id: string,\n properties: {\n [propertyName: string]: string | number,\n ...\n },\n },\n};\n\ntype RequestResult = { status: number };\ntype RequestParameters = { [key: string]: any };\n\nconst CLIENT_ERROR_CODE = 400;\n\n/**\n * @private\n */\nconst getErrorInfo = (\n errorResponse: ?ModularUIErrorResponse,\n requestOptions: ?RequestOptions,\n) => {\n const defaultErrorInfo = {\n id: \"Error.CannotRequestResource\",\n defaultMessage: `Cannot request resource ${\n requestOptions?.url ?? \"\"\n } with method ${requestOptions?.method ?? HTTP_METHODS.GET}`,\n properties: {},\n param: null,\n };\n\n if (!errorResponse) {\n return defaultErrorInfo;\n }\n\n if (has(errorResponse, \"error\")) {\n return {\n ...defaultErrorInfo,\n ...errorResponse.error,\n };\n }\n\n const [key] = Object.keys(errorResponse);\n if (has(errorResponse[key], \"errors\")) {\n return {\n ...defaultErrorInfo,\n // $FlowFixMe[prop-missing] - not sure in what case this could happen\n ...errorResponse[key].errors,\n };\n }\n\n return defaultErrorInfo;\n};\n\n/**\n * FetchException\n */\nexport default class FetchException extends Error {\n request: ?RequestResult | XMLHttpRequest;\n status: number;\n response: ?ModularUIErrorResponse;\n parameters: ?RequestParameters;\n properties: MessageParameters;\n requestOptions: ?RequestOptions;\n id: string;\n\n constructor(\n errorResponse: ?ModularUIErrorResponse,\n failedRequest?: ?RequestResult | XMLHttpRequest,\n requestOptions?: RequestOptions,\n ) {\n const errorInfo = getErrorInfo(errorResponse, requestOptions);\n super(errorInfo.id);\n\n this.name = errorInfo.id;\n this.id = errorInfo.id;\n this.request = failedRequest;\n this.requestOptions = requestOptions;\n\n this.status =\n failedRequest && failedRequest.status\n ? failedRequest.status\n : CLIENT_ERROR_CODE;\n\n this.response = errorResponse;\n this.properties = errorInfo.properties ?? {};\n this.parameters = errorInfo.param ?? null;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FetchException);\n }\n }\n}\n"],"mappings":";;AACA,SAASA,GAAG,QAAQ,0BAA0B;AAE9C,SAASC,YAAY,QAAQ,wBAAwB;AAkBrD,MAAMC,iBAAiB,GAAG,GAAG;;AAE7B;AACA;AACA;AACA,MAAMC,YAAY,GAAGA,CACnBC,aAAsC,EACtCC,cAA+B,KAC5B;EACH,MAAMC,gBAAgB,GAAG;IACvBC,EAAE,EAAE,6BAA6B;IACjCC,cAAc,EAAG,2BACfH,cAAc,EAAEI,GAAG,IAAI,EACxB,gBAAeJ,cAAc,EAAEK,MAAM,IAAIT,YAAY,CAACU,GAAI,EAAC;IAC5DC,UAAU,EAAE,CAAC,CAAC;IACdC,KAAK,EAAE;EACT,CAAC;EAED,IAAI,CAACT,aAAa,EAAE;IAClB,OAAOE,gBAAgB;EACzB;EAEA,IAAIN,GAAG,CAACI,aAAa,EAAE,OAAO,CAAC,EAAE;IAC/B,OAAO;MACL,GAAGE,gBAAgB;MACnB,GAAGF,aAAa,CAACU;IACnB,CAAC;EACH;EAEA,MAAM,CAACC,GAAG,CAAC,GAAGC,YAAA,CAAYZ,aAAa,CAAC;EACxC,IAAIJ,GAAG,CAACI,aAAa,CAACW,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;IACrC,OAAO;MACL,GAAGT,gBAAgB;MACnB;MACA,GAAGF,aAAa,CAACW,GAAG,CAAC,CAACE;IACxB,CAAC;EACH;EAEA,OAAOX,gBAAgB;AACzB,CAAC;;AAED;AACA;AACA;AACA,eAAe,MAAMY,cAAc,SAASC,KAAK,CAAC;EAShDC,WAAWA,CACThB,aAAsC,EACtCiB,aAA+C,EAC/ChB,cAA+B,EAC/B;IACA,MAAMiB,SAAS,GAAGnB,YAAY,CAACC,aAAa,EAAEC,cAAc,CAAC;IAC7D,KAAK,CAACiB,SAAS,CAACf,EAAE,CAAC;IAACgB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEpB,IAAI,CAACC,IAAI,GAAGF,SAAS,CAACf,EAAE;IACxB,IAAI,CAACA,EAAE,GAAGe,SAAS,CAACf,EAAE;IACtB,IAAI,CAACkB,OAAO,GAAGJ,aAAa;IAC5B,IAAI,CAAChB,cAAc,GAAGA,cAAc;IAEpC,IAAI,CAACqB,MAAM,GACTL,aAAa,IAAIA,aAAa,CAACK,MAAM,GACjCL,aAAa,CAACK,MAAM,GACpBxB,iBAAiB;IAEvB,IAAI,CAACyB,QAAQ,GAAGvB,aAAa;IAC7B,IAAI,CAACQ,UAAU,GAAGU,SAAS,CAACV,UAAU,IAAI,CAAC,CAAC;IAC5C,IAAI,CAACgB,UAAU,GAAGN,SAAS,CAACT,KAAK,IAAI,IAAI;IAEzC,IAAIM,KAAK,CAACU,iBAAiB,EAAE;MAC3BV,KAAK,CAACU,iBAAiB,CAAC,IAAI,EAAEX,cAAc,CAAC;IAC/C;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"FetchException.js","names":["has","HTTP_METHODS","CLIENT_ERROR_CODE","getErrorInfo","errorResponse","requestOptions","defaultErrorInfo","id","defaultMessage","url","method","GET","properties","param","error","key","_Object$keys","errors","FetchException","Error","constructor","failedRequest","errorInfo","_defineProperty","name","request","status","response","parameters","captureStackTrace"],"sources":["../../src/exceptions/FetchException.js"],"sourcesContent":["// @flow\nimport { has } from \"../utils/helpers/objects\";\n\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport type { MessageParameters } from \"../i18n/types\";\nimport type { RequestOptions } from \"../utils/fetch/types\";\n\nexport type ModularUIErrorResponse = {\n error: {\n id: string,\n properties: {\n [propertyName: string]: string | number,\n ...\n },\n },\n};\n\ntype RequestResult = { status: number };\ntype RequestParameters = { [key: string]: any };\n\nconst CLIENT_ERROR_CODE = 400;\n\n/**\n * @private\n */\nconst getErrorInfo = (\n errorResponse: ?ModularUIErrorResponse,\n requestOptions: ?RequestOptions,\n) => {\n const defaultErrorInfo = {\n id: \"Error.CannotRequestResource\",\n defaultMessage: `Cannot request resource ${\n requestOptions?.url ?? \"\"\n } with method ${requestOptions?.method ?? HTTP_METHODS.GET}`,\n properties: {},\n param: null,\n };\n\n if (!errorResponse) {\n return defaultErrorInfo;\n }\n\n if (has(errorResponse, \"error\")) {\n return {\n ...defaultErrorInfo,\n ...errorResponse.error,\n };\n }\n\n const [key] = Object.keys(errorResponse);\n if (has(errorResponse[key], \"errors\")) {\n return {\n ...defaultErrorInfo,\n // $FlowFixMe[prop-missing] - not sure in what case this could happen\n ...errorResponse[key].errors,\n };\n }\n\n return defaultErrorInfo;\n};\n\n/**\n * FetchException\n */\nexport default class FetchException extends Error {\n request: ?RequestResult | XMLHttpRequest;\n status: number;\n response: ?ModularUIErrorResponse;\n parameters: ?RequestParameters;\n properties: MessageParameters;\n requestOptions: ?RequestOptions;\n id: string;\n\n constructor(\n errorResponse: ?ModularUIErrorResponse,\n failedRequest?: ?RequestResult | XMLHttpRequest,\n requestOptions?: RequestOptions,\n ) {\n const errorInfo = getErrorInfo(errorResponse, requestOptions);\n super(errorInfo.id);\n\n this.name = errorInfo.id;\n this.id = errorInfo.id;\n this.request = failedRequest;\n this.requestOptions = requestOptions;\n\n this.status =\n failedRequest && failedRequest.status\n ? failedRequest.status\n : CLIENT_ERROR_CODE;\n\n this.response = errorResponse;\n this.properties = errorInfo.properties ?? {};\n this.parameters = errorInfo.param ?? null;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, FetchException);\n }\n }\n}\n"],"mappings":";;AACA,SAASA,GAAG,QAAQ,0BAA0B;AAE9C,SAASC,YAAY,QAAQ,wBAAwB;AAkBrD,MAAMC,iBAAiB,GAAG,GAAG;;AAE7B;AACA;AACA;AACA,MAAMC,YAAY,GAAGA,CACnBC,aAAsC,EACtCC,cAA+B,KAC5B;EACH,MAAMC,gBAAgB,GAAG;IACvBC,EAAE,EAAE,6BAA6B;IACjCC,cAAc,EAAE,2BACdH,cAAc,EAAEI,GAAG,IAAI,EAAE,gBACXJ,cAAc,EAAEK,MAAM,IAAIT,YAAY,CAACU,GAAG,EAAE;IAC5DC,UAAU,EAAE,CAAC,CAAC;IACdC,KAAK,EAAE;EACT,CAAC;EAED,IAAI,CAACT,aAAa,EAAE;IAClB,OAAOE,gBAAgB;EACzB;EAEA,IAAIN,GAAG,CAACI,aAAa,EAAE,OAAO,CAAC,EAAE;IAC/B,OAAO;MACL,GAAGE,gBAAgB;MACnB,GAAGF,aAAa,CAACU;IACnB,CAAC;EACH;EAEA,MAAM,CAACC,GAAG,CAAC,GAAGC,YAAA,CAAYZ,aAAa,CAAC;EACxC,IAAIJ,GAAG,CAACI,aAAa,CAACW,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;IACrC,OAAO;MACL,GAAGT,gBAAgB;MACnB;MACA,GAAGF,aAAa,CAACW,GAAG,CAAC,CAACE;IACxB,CAAC;EACH;EAEA,OAAOX,gBAAgB;AACzB,CAAC;;AAED;AACA;AACA;AACA,eAAe,MAAMY,cAAc,SAASC,KAAK,CAAC;EAShDC,WAAWA,CACThB,aAAsC,EACtCiB,aAA+C,EAC/ChB,cAA+B,EAC/B;IACA,MAAMiB,SAAS,GAAGnB,YAAY,CAACC,aAAa,EAAEC,cAAc,CAAC;IAC7D,KAAK,CAACiB,SAAS,CAACf,EAAE,CAAC;IAACgB,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEpB,IAAI,CAACC,IAAI,GAAGF,SAAS,CAACf,EAAE;IACxB,IAAI,CAACA,EAAE,GAAGe,SAAS,CAACf,EAAE;IACtB,IAAI,CAACkB,OAAO,GAAGJ,aAAa;IAC5B,IAAI,CAAChB,cAAc,GAAGA,cAAc;IAEpC,IAAI,CAACqB,MAAM,GACTL,aAAa,IAAIA,aAAa,CAACK,MAAM,GACjCL,aAAa,CAACK,MAAM,GACpBxB,iBAAiB;IAEvB,IAAI,CAACyB,QAAQ,GAAGvB,aAAa;IAC7B,IAAI,CAACQ,UAAU,GAAGU,SAAS,CAACV,UAAU,IAAI,CAAC,CAAC;IAC5C,IAAI,CAACgB,UAAU,GAAGN,SAAS,CAACT,KAAK,IAAI,IAAI;IAEzC,IAAIM,KAAK,CAACU,iBAAiB,EAAE;MAC3BV,KAAK,CAACU,iBAAiB,CAAC,IAAI,EAAEX,cAAc,CAAC;IAC/C;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkException.js","names":["NetworkException","Error","constructor","url","method","_defineProperty","name","id","status"],"sources":["../../src/exceptions/NetworkException.js"],"sourcesContent":["// @flow\n/**\n * NetworkException\n */\nclass NetworkException extends Error {\n status: number;\n id: string;\n\n constructor(url: string, method: string) {\n super(\n `An unexpected network error occurred, cannot request resource ${url} with method ${method}`,\n );\n\n this.name = \"NetworkException\";\n this.id = \"NetworkException\";\n this.status = 0;\n }\n}\n\nexport default NetworkException;\n"],"mappings":";AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,CACF,iEAAgED,GAAI,gBAAeC,MAAO,EAC7F,CAAC;IAACC,eAAA;IAAAA,eAAA;IAEF,IAAI,CAACC,IAAI,GAAG,kBAAkB;IAC9B,IAAI,CAACC,EAAE,GAAG,kBAAkB;IAC5B,IAAI,CAACC,MAAM,GAAG,CAAC;EACjB;AACF;AAEA,eAAeR,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"NetworkException.js","names":["NetworkException","Error","constructor","url","method","_defineProperty","name","id","status"],"sources":["../../src/exceptions/NetworkException.js"],"sourcesContent":["// @flow\n/**\n * NetworkException\n */\nclass NetworkException extends Error {\n status: number;\n id: string;\n\n constructor(url: string, method: string) {\n super(\n `An unexpected network error occurred, cannot request resource ${url} with method ${method}`,\n );\n\n this.name = \"NetworkException\";\n this.id = \"NetworkException\";\n this.status = 0;\n }\n}\n\nexport default NetworkException;\n"],"mappings":";AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EAInCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,CACH,iEAAiED,GAAG,gBAAgBC,MAAM,EAC5F,CAAC;IAACC,eAAA;IAAAA,eAAA;IAEF,IAAI,CAACC,IAAI,GAAG,kBAAkB;IAC9B,IAAI,CAACC,EAAE,GAAG,kBAAkB;IAC5B,IAAI,CAACC,MAAM,GAAG,CAAC;EACjB;AACF;AAEA,eAAeR,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NotFoundException.js","names":["NotFoundException","Error","constructor","url","method","isReload","arguments","length","undefined","_defineProperty","name","id","status"],"sources":["../../src/exceptions/NotFoundException.js"],"sourcesContent":["// @flow\n/**\n * NotFoundException\n */\nclass NotFoundException extends Error {\n status: number;\n isReload: boolean;\n id: string;\n\n constructor(url: string, method: string, isReload: boolean = false) {\n super(`Resource ${url} with method ${method} not found`);\n\n this.name = \"NotFoundException\";\n this.id = \"NotFoundException\";\n this.status = 404;\n this.isReload = isReload;\n }\n}\n\nexport default NotFoundException;\n"],"mappings":";AACA;AACA;AACA;AACA,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAKpCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAA6B;IAAA,IAA3BC,QAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAChE,KAAK,CAAE,YAAWH,GAAI,gBAAeC,MAAO,YAAW,CAAC;IAACK,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEzD,IAAI,CAACC,IAAI,GAAG,mBAAmB;IAC/B,IAAI,CAACC,EAAE,GAAG,mBAAmB;IAC7B,IAAI,CAACC,MAAM,GAAG,GAAG;IACjB,IAAI,CAACP,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAEA,eAAeL,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"NotFoundException.js","names":["NotFoundException","Error","constructor","url","method","isReload","arguments","length","undefined","_defineProperty","name","id","status"],"sources":["../../src/exceptions/NotFoundException.js"],"sourcesContent":["// @flow\n/**\n * NotFoundException\n */\nclass NotFoundException extends Error {\n status: number;\n isReload: boolean;\n id: string;\n\n constructor(url: string, method: string, isReload: boolean = false) {\n super(`Resource ${url} with method ${method} not found`);\n\n this.name = \"NotFoundException\";\n this.id = \"NotFoundException\";\n this.status = 404;\n this.isReload = isReload;\n }\n}\n\nexport default NotFoundException;\n"],"mappings":";AACA;AACA;AACA;AACA,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAKpCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAA6B;IAAA,IAA3BC,QAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAChE,KAAK,CAAC,YAAYH,GAAG,gBAAgBC,MAAM,YAAY,CAAC;IAACK,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEzD,IAAI,CAACC,IAAI,GAAG,mBAAmB;IAC/B,IAAI,CAACC,EAAE,GAAG,mBAAmB;IAC7B,IAAI,CAACC,MAAM,GAAG,GAAG;IACjB,IAAI,CAACP,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAEA,eAAeL,iBAAiB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TimeoutException.js","names":["TimeoutException","Error","constructor","url","method","name"],"sources":["../../src/exceptions/TimeoutException.js"],"sourcesContent":["// @flow\n/**\n * TimeoutException\n */\nclass TimeoutException extends Error {\n constructor(url: string, method: string) {\n super(`Timeout occurred in connection to ${url} with method ${method}.`);\n\n this.name = \"TimeoutException\";\n }\n}\n\nexport default TimeoutException;\n"],"mappings":"AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EACnCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,CAAE,qCAAoCD,GAAI,gBAAeC,MAAO,GAAE,CAAC;IAExE,IAAI,CAACC,IAAI,GAAG,kBAAkB;EAChC;AACF;AAEA,eAAeL,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"TimeoutException.js","names":["TimeoutException","Error","constructor","url","method","name"],"sources":["../../src/exceptions/TimeoutException.js"],"sourcesContent":["// @flow\n/**\n * TimeoutException\n */\nclass TimeoutException extends Error {\n constructor(url: string, method: string) {\n super(`Timeout occurred in connection to ${url} with method ${method}.`);\n\n this.name = \"TimeoutException\";\n }\n}\n\nexport default TimeoutException;\n"],"mappings":"AACA;AACA;AACA;AACA,MAAMA,gBAAgB,SAASC,KAAK,CAAC;EACnCC,WAAWA,CAACC,GAAW,EAAEC,MAAc,EAAE;IACvC,KAAK,CAAC,qCAAqCD,GAAG,gBAAgBC,MAAM,GAAG,CAAC;IAExE,IAAI,CAACC,IAAI,GAAG,kBAAkB;EAChC;AACF;AAEA,eAAeL,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"UnauthorizedException.js","names":["UnauthorizedException","Error","constructor","url","method","errorResponse","_defineProperty","name","id","status","response"],"sources":["../../src/exceptions/UnauthorizedException.js"],"sourcesContent":["// @flow\nimport type { ModularUIErrorResponse } from \"./FetchException\";\n\n/**\n * UnauthorizedException\n */\nclass UnauthorizedException extends Error {\n status: number;\n id: string;\n response: ?ModularUIErrorResponse;\n\n constructor(\n url: string,\n method: string,\n errorResponse: ?ModularUIErrorResponse,\n ) {\n super(`Cannot request resource ${url} with method ${method}`);\n\n this.name = \"UnauthorizedException\";\n this.id = \"UnauthorizedException\";\n this.status = 401;\n this.response = errorResponse;\n }\n}\n\nexport default UnauthorizedException;\n"],"mappings":";AAGA;AACA;AACA;AACA,MAAMA,qBAAqB,SAASC,KAAK,CAAC;EAKxCC,WAAWA,CACTC,GAAW,EACXC,MAAc,EACdC,aAAsC,EACtC;IACA,KAAK,CAAE,2BAA0BF,GAAI,gBAAeC,MAAO,EAAC,CAAC;IAACE,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAE9D,IAAI,CAACC,IAAI,GAAG,uBAAuB;IACnC,IAAI,CAACC,EAAE,GAAG,uBAAuB;IACjC,IAAI,CAACC,MAAM,GAAG,GAAG;IACjB,IAAI,CAACC,QAAQ,GAAGL,aAAa;EAC/B;AACF;AAEA,eAAeL,qBAAqB","ignoreList":[]}
1
+ {"version":3,"file":"UnauthorizedException.js","names":["UnauthorizedException","Error","constructor","url","method","errorResponse","_defineProperty","name","id","status","response"],"sources":["../../src/exceptions/UnauthorizedException.js"],"sourcesContent":["// @flow\nimport type { ModularUIErrorResponse } from \"./FetchException\";\n\n/**\n * UnauthorizedException\n */\nclass UnauthorizedException extends Error {\n status: number;\n id: string;\n response: ?ModularUIErrorResponse;\n\n constructor(\n url: string,\n method: string,\n errorResponse: ?ModularUIErrorResponse,\n ) {\n super(`Cannot request resource ${url} with method ${method}`);\n\n this.name = \"UnauthorizedException\";\n this.id = \"UnauthorizedException\";\n this.status = 401;\n this.response = errorResponse;\n }\n}\n\nexport default UnauthorizedException;\n"],"mappings":";AAGA;AACA;AACA;AACA,MAAMA,qBAAqB,SAASC,KAAK,CAAC;EAKxCC,WAAWA,CACTC,GAAW,EACXC,MAAc,EACdC,aAAsC,EACtC;IACA,KAAK,CAAC,2BAA2BF,GAAG,gBAAgBC,MAAM,EAAE,CAAC;IAACE,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAE9D,IAAI,CAACC,IAAI,GAAG,uBAAuB;IACnC,IAAI,CAACC,EAAE,GAAG,uBAAuB;IACjC,IAAI,CAACC,MAAM,GAAG,GAAG;IACjB,IAAI,CAACC,QAAQ,GAAGL,aAAa;EAC/B;AACF;AAEA,eAAeL,qBAAqB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthentication.js","names":["useSelector","useDispatch","getApplication","login","logout","resetAuthErrors","Cache","DEFAULT_AUTHENTICATION_TYPE","getBasePath","logoutPath","IllegalStateException","useLogin","setItem","dispatch","application","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","errorMessage","error","resetErrors","username","password","redirectLogin","authenticationType","getItem","authentication","redirectUri","window","location","assign","useLogout","LOGOUT_PATH","BASE_PATH","origin","url"],"sources":["../../src/hooks/useAuthentication.js"],"sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getApplication } from \"../redux/_modularui/ModularUISelectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\n\nimport Cache from \"../utils/browser/Cache\";\nimport {\n DEFAULT_AUTHENTICATION_TYPE,\n getBasePath,\n logoutPath,\n} from \"../constants\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\nimport { IllegalStateException } from \"../exceptions\";\ntype LoginHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n redirectLogin: (authenticationType: AuthenticationType) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n logout: () => void,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n redirectLogin: (authenticationType: AuthenticationType) => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n // prevent endless loop in redirects when authentication type can't be redirected\n throw new IllegalStateException(\n `Could not redirect to '${\n authenticationType.authentication\n }' using url: '${authenticationType.redirectUri ?? \"\"}'`,\n );\n }\n\n if (!isAuthenticated) {\n Cache.setItem(\"isRedirectLogin\", true);\n window.location.assign(\n `${getBasePath()}${authenticationType.redirectUri ?? \"\"}`,\n );\n }\n },\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n\n const LOGOUT_PATH = logoutPath();\n const BASE_PATH = getBasePath();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n };\n};\n"],"mappings":"AACA,SAASA,WAAW,EAAEC,WAAW,QAAQ,aAAa;AAEtD,SAASC,cAAc,QAAQ,wCAAwC;AACvE,SAASC,KAAK,EAAEC,MAAM,EAAEC,eAAe,QAAQ,kBAAkB;AAEjE,OAAOC,KAAK,MAAM,wBAAwB;AAC1C,SACEC,2BAA2B,EAC3BC,WAAW,EACXC,UAAU,QACL,cAAc;AAIrB,SAASC,qBAAqB,QAAQ,eAAe;AAerD;AACA;AACA,OAAO,MAAMC,QAAQ,GAAGA,CAAA,KAAiB;EACvCL,KAAK,CAACM,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;EAEvC,MAAMC,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAE9B,MAAMa,WAAW,GAAGd,WAAW,CAACE,cAAc,CAAC;EAC/C,MAAMa,IAAI,GAAGf,WAAW,CAAEgB,KAAK,IAAKA,KAAK,CAACD,IAAI,CAAC;EAE/C,MAAME,eAAe,GAAGH,WAAW,EAAEI,UAAU,IAAI,KAAK;EAExD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEL,WAAW,EAAEK,mBAAmB,IAAI,CACvDZ,2BAA2B,CAC5B;IACDa,YAAY,EAAEL,IAAI,CAACM,KAAK;IACxBC,WAAW,EAAEA,CAAA,KAAMT,QAAQ,CAACR,eAAe,CAAC,CAAC,CAAC;IAC9CF,KAAK,EAAEA,CAACoB,QAAgB,EAAEC,QAAgB,KACxCX,QAAQ,CAACV,KAAK,CAACoB,QAAQ,EAAEC,QAAQ,CAAC,CAAC;IACrCC,aAAa,EAAGC,kBAAsC,IAAK;MACzD,IAAIpB,KAAK,CAACqB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC;QACA,MAAM,IAAIjB,qBAAqB,CAC5B,0BACCgB,kBAAkB,CAACE,cACpB,iBAAgBF,kBAAkB,CAACG,WAAW,IAAI,EAAG,GACxD,CAAC;MACH;MAEA,IAAI,CAACZ,eAAe,EAAE;QACpBX,KAAK,CAACM,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACtCkB,MAAM,CAACC,QAAQ,CAACC,MAAM,CACnB,GAAExB,WAAW,CAAC,CAAE,GAAEkB,kBAAkB,CAACG,WAAW,IAAI,EAAG,EAC1D,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA,OAAO,MAAMI,SAAS,GAAGA,CAAA,KAAkB;EACzC,MAAMpB,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAC9B,MAAMa,WAAW,GAAGd,WAAW,CAACE,cAAc,CAAC;EAE/C,MAAMgC,WAAW,GAAGzB,UAAU,CAAC,CAAC;EAChC,MAAM0B,SAAS,GAAG3B,WAAW,CAAC,CAAC;EAE/B,MAAMS,eAAe,GAAGH,WAAW,EAAEI,UAAU,IAAI,KAAK;EACxD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEL,WAAW,EAAEK,mBAAmB,IAAI,CACvDZ,2BAA2B,CAC5B;IACDH,MAAM,EAAEA,CAAA,KAAM;MACZ,IAAIE,KAAK,CAACqB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC,MAAMS,MAAM,GAAGN,MAAM,CAACC,QAAQ,CAACK,MAAM;QACrC,MAAMC,GAAG,GAAI,GAAED,MAAO,GAAED,SAAU,eAAcC,MAAO,GAAED,SAAU,GAAED,WAAY,EAAC;QAClF5B,KAAK,CAACM,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;QACvCkB,MAAM,CAACC,QAAQ,CAACC,MAAM,CAACK,GAAG,CAAC;MAC7B,CAAC,MAAM;QACL,OAAOxB,QAAQ,CAACT,MAAM,CAAC,CAAC,CAAC;MAC3B;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useAuthentication.js","names":["useSelector","useDispatch","getApplication","login","logout","resetAuthErrors","Cache","DEFAULT_AUTHENTICATION_TYPE","getBasePath","logoutPath","IllegalStateException","useLogin","setItem","dispatch","application","auth","state","isAuthenticated","isLoggedIn","authenticationTypes","errorMessage","error","resetErrors","username","password","redirectLogin","authenticationType","getItem","authentication","redirectUri","window","location","assign","useLogout","LOGOUT_PATH","BASE_PATH","origin","url"],"sources":["../../src/hooks/useAuthentication.js"],"sourcesContent":["// @flow\nimport { useSelector, useDispatch } from \"react-redux\";\n\nimport { getApplication } from \"../redux/_modularui/ModularUISelectors\";\nimport { login, logout, resetAuthErrors } from \"../redux/actions\";\n\nimport Cache from \"../utils/browser/Cache\";\nimport {\n DEFAULT_AUTHENTICATION_TYPE,\n getBasePath,\n logoutPath,\n} from \"../constants\";\n\nimport type { ResetAuthErrorsAction } from \"../redux/types\";\nimport type { AuthenticationType } from \"../models/types\";\nimport { IllegalStateException } from \"../exceptions\";\ntype LoginHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n errorMessage: ?string,\n resetErrors: () => ResetAuthErrorsAction,\n login: (username: string, password: string) => void,\n redirectLogin: (authenticationType: AuthenticationType) => void,\n};\ntype LogoutHook = {\n isAuthenticated: boolean,\n authenticationTypes: Array<AuthenticationType>,\n logout: () => void,\n};\n\n/**\n */\nexport const useLogin = (): LoginHook => {\n Cache.setItem(\"isRedirectLogin\", false);\n\n const dispatch = useDispatch();\n\n const application = useSelector(getApplication);\n const auth = useSelector((state) => state.auth);\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n errorMessage: auth.error,\n resetErrors: () => dispatch(resetAuthErrors()),\n login: (username: string, password: string) =>\n dispatch(login(username, password)),\n redirectLogin: (authenticationType: AuthenticationType) => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n // prevent endless loop in redirects when authentication type can't be redirected\n throw new IllegalStateException(\n `Could not redirect to '${\n authenticationType.authentication\n }' using url: '${authenticationType.redirectUri ?? \"\"}'`,\n );\n }\n\n if (!isAuthenticated) {\n Cache.setItem(\"isRedirectLogin\", true);\n window.location.assign(\n `${getBasePath()}${authenticationType.redirectUri ?? \"\"}`,\n );\n }\n },\n };\n};\n\n/**\n */\nexport const useLogout = (): LogoutHook => {\n const dispatch = useDispatch();\n const application = useSelector(getApplication);\n\n const LOGOUT_PATH = logoutPath();\n const BASE_PATH = getBasePath();\n\n const isAuthenticated = application?.isLoggedIn ?? false;\n return {\n isAuthenticated,\n authenticationTypes: application?.authenticationTypes ?? [\n DEFAULT_AUTHENTICATION_TYPE,\n ],\n logout: () => {\n if (Cache.getItem(\"isRedirectLogin\")) {\n const origin = window.location.origin;\n const url = `${origin}${BASE_PATH}/logout?url=${origin}${BASE_PATH}${LOGOUT_PATH}`;\n Cache.setItem(\"isRedirectLogin\", false);\n window.location.assign(url);\n } else {\n return dispatch(logout());\n }\n },\n };\n};\n"],"mappings":"AACA,SAASA,WAAW,EAAEC,WAAW,QAAQ,aAAa;AAEtD,SAASC,cAAc,QAAQ,wCAAwC;AACvE,SAASC,KAAK,EAAEC,MAAM,EAAEC,eAAe,QAAQ,kBAAkB;AAEjE,OAAOC,KAAK,MAAM,wBAAwB;AAC1C,SACEC,2BAA2B,EAC3BC,WAAW,EACXC,UAAU,QACL,cAAc;AAIrB,SAASC,qBAAqB,QAAQ,eAAe;AAerD;AACA;AACA,OAAO,MAAMC,QAAQ,GAAGA,CAAA,KAAiB;EACvCL,KAAK,CAACM,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;EAEvC,MAAMC,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAE9B,MAAMa,WAAW,GAAGd,WAAW,CAACE,cAAc,CAAC;EAC/C,MAAMa,IAAI,GAAGf,WAAW,CAAEgB,KAAK,IAAKA,KAAK,CAACD,IAAI,CAAC;EAE/C,MAAME,eAAe,GAAGH,WAAW,EAAEI,UAAU,IAAI,KAAK;EAExD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEL,WAAW,EAAEK,mBAAmB,IAAI,CACvDZ,2BAA2B,CAC5B;IACDa,YAAY,EAAEL,IAAI,CAACM,KAAK;IACxBC,WAAW,EAAEA,CAAA,KAAMT,QAAQ,CAACR,eAAe,CAAC,CAAC,CAAC;IAC9CF,KAAK,EAAEA,CAACoB,QAAgB,EAAEC,QAAgB,KACxCX,QAAQ,CAACV,KAAK,CAACoB,QAAQ,EAAEC,QAAQ,CAAC,CAAC;IACrCC,aAAa,EAAGC,kBAAsC,IAAK;MACzD,IAAIpB,KAAK,CAACqB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC;QACA,MAAM,IAAIjB,qBAAqB,CAC7B,0BACEgB,kBAAkB,CAACE,cAAc,iBAClBF,kBAAkB,CAACG,WAAW,IAAI,EAAE,GACvD,CAAC;MACH;MAEA,IAAI,CAACZ,eAAe,EAAE;QACpBX,KAAK,CAACM,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACtCkB,MAAM,CAACC,QAAQ,CAACC,MAAM,CACpB,GAAGxB,WAAW,CAAC,CAAC,GAAGkB,kBAAkB,CAACG,WAAW,IAAI,EAAE,EACzD,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA,OAAO,MAAMI,SAAS,GAAGA,CAAA,KAAkB;EACzC,MAAMpB,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAC9B,MAAMa,WAAW,GAAGd,WAAW,CAACE,cAAc,CAAC;EAE/C,MAAMgC,WAAW,GAAGzB,UAAU,CAAC,CAAC;EAChC,MAAM0B,SAAS,GAAG3B,WAAW,CAAC,CAAC;EAE/B,MAAMS,eAAe,GAAGH,WAAW,EAAEI,UAAU,IAAI,KAAK;EACxD,OAAO;IACLD,eAAe;IACfE,mBAAmB,EAAEL,WAAW,EAAEK,mBAAmB,IAAI,CACvDZ,2BAA2B,CAC5B;IACDH,MAAM,EAAEA,CAAA,KAAM;MACZ,IAAIE,KAAK,CAACqB,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACpC,MAAMS,MAAM,GAAGN,MAAM,CAACC,QAAQ,CAACK,MAAM;QACrC,MAAMC,GAAG,GAAG,GAAGD,MAAM,GAAGD,SAAS,eAAeC,MAAM,GAAGD,SAAS,GAAGD,WAAW,EAAE;QAClF5B,KAAK,CAACM,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC;QACvCkB,MAAM,CAACC,QAAQ,CAACC,MAAM,CAACK,GAAG,CAAC;MAC7B,CAAC,MAAM;QACL,OAAOxB,QAAQ,CAACT,MAAM,CAAC,CAAC,CAAC;MAC3B;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUI.js","names":["useEffect","useRef","useDispatch","useSelector","HTTP_METHODS","loadModularUI","removeModelByKey","useDeepCompareEffect","useLocale","useKeyForHook","modelKey","url","locale","split","useModularUI","options","arguments","length","undefined","method","GET","removeOnUnmount","dispatch","href","toString","key","prevOptions","prevHref","isOldReload","current","isReload","state","modularui"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\n\nimport type Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useLocale();\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = url.toString();\n const key = useKeyForHook(modelKey, href);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (!isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"mappings":"AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AAEtD,SAASC,YAAY,QAAQ,cAAc;AAC3C,SACEC,aAAa,EACbC,gBAAgB,QACX,sCAAsC;AAE7C,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,SAASC,SAAS,QAAQ,WAAW;AAKrC;AACA;AACA,MAAMC,aAAa,GAAGA,CAACC,QAAgB,EAAEC,GAAW,KAAK;EACvD,MAAMC,MAAM,GAAGJ,SAAS,CAAC,CAAC;EAC1B,OAAQ,GAAEE,QAAS,IAAGC,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,KAAID,MAAO,GAAE;AACvD,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAME,YAAY,GAAG,SAAAA,CAC1BJ,QAAgB,EAChBC,GAAkB,EAKV;EAAA,IAJRI,OAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACjCG,MAAM,EAAEf,YAAY,CAACgB,GAAG;IACxBC,eAAe,EAAE;EACnB,CAAC;EAED,MAAMC,QAAQ,GAAGpB,WAAW,CAAC,CAAC;EAC9B,MAAMqB,IAAI,GAAGZ,GAAG,CAACa,QAAQ,CAAC,CAAC;EAC3B,MAAMC,GAAG,GAAGhB,aAAa,CAACC,QAAQ,EAAEa,IAAI,CAAC;EAEzC,MAAMG,WAAW,GAAGzB,MAAM,CAACc,OAAO,CAAC;EACnC,MAAMY,QAAQ,GAAG1B,MAAM,CAACsB,IAAI,CAAC;;EAE7B;EACAhB,oBAAoB,CAAC,MAAM;IACzB;IACA,MAAMqB,WAAW,GACfD,QAAQ,CAACE,OAAO,KAAKN,IAAI,IACzBG,WAAW,CAACG,OAAO,CAACC,QAAQ,IAC5B,CAACf,OAAO,CAACe,QAAQ;IAEnB,IAAI,CAACF,WAAW,EAAE;MAChBN,QAAQ,CAACjB,aAAa,CAACoB,GAAG,EAAEF,IAAI,EAAER,OAAO,CAAC,CAAC;IAC7C;IAEAW,WAAW,CAACG,OAAO,GAAGd,OAAO;IAC7BY,QAAQ,CAACE,OAAO,GAAGN,IAAI;EACzB,CAAC,EAAE,CAACE,GAAG,EAAEF,IAAI,EAAER,OAAO,CAAC,CAAC;EAExB,MAAM;IAAEM,eAAe,GAAG;EAAM,CAAC,GAAGN,OAAO;EAC3Cf,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAIqB,eAAe,EAAE;QACnBC,QAAQ,CAAChB,gBAAgB,CAACmB,GAAG,CAAC,CAAC;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACH,QAAQ,EAAEG,GAAG,EAAEJ,eAAe,CAAC,CAAC;;EAEpC;EACA,OAAOlB,WAAW,CAAE4B,KAAK,IAAK;IAC5B,OAAOA,KAAK,CAACC,SAAS,CAACP,GAAG,CAAC;EAC7B,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useModularUI.js","names":["useEffect","useRef","useDispatch","useSelector","HTTP_METHODS","loadModularUI","removeModelByKey","useDeepCompareEffect","useLocale","useKeyForHook","modelKey","url","locale","split","useModularUI","options","arguments","length","undefined","method","GET","removeOnUnmount","dispatch","href","toString","key","prevOptions","prevHref","isOldReload","current","isReload","state","modularui"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\n\nimport { useLocale } from \"./useI18n\";\n\nimport type Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n */\nconst useKeyForHook = (modelKey: string, url: string) => {\n const locale = useLocale();\n return `${modelKey}(${url.split(\"?\")[0]})(${locale})`;\n};\n\n/**\n * Use redux action and selector to retrieve the correct modular ui service model\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = url.toString();\n const key = useKeyForHook(modelKey, href);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n if (!isOldReload) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n }, [key, href, options]);\n\n const { removeOnUnmount = false } = options;\n useEffect(() => {\n return () => {\n if (removeOnUnmount) {\n dispatch(removeModelByKey(key));\n }\n };\n }, [dispatch, key, removeOnUnmount]);\n\n // retrieve current model from modularui reducer\n return useSelector((state) => {\n return state.modularui[key];\n });\n};\n"],"mappings":"AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AAEtD,SAASC,YAAY,QAAQ,cAAc;AAC3C,SACEC,aAAa,EACbC,gBAAgB,QACX,sCAAsC;AAE7C,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,SAASC,SAAS,QAAQ,WAAW;AAKrC;AACA;AACA,MAAMC,aAAa,GAAGA,CAACC,QAAgB,EAAEC,GAAW,KAAK;EACvD,MAAMC,MAAM,GAAGJ,SAAS,CAAC,CAAC;EAC1B,OAAO,GAAGE,QAAQ,IAAIC,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKD,MAAM,GAAG;AACvD,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAME,YAAY,GAAG,SAAAA,CAC1BJ,QAAgB,EAChBC,GAAkB,EAKV;EAAA,IAJRI,OAAgC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;IACjCG,MAAM,EAAEf,YAAY,CAACgB,GAAG;IACxBC,eAAe,EAAE;EACnB,CAAC;EAED,MAAMC,QAAQ,GAAGpB,WAAW,CAAC,CAAC;EAC9B,MAAMqB,IAAI,GAAGZ,GAAG,CAACa,QAAQ,CAAC,CAAC;EAC3B,MAAMC,GAAG,GAAGhB,aAAa,CAACC,QAAQ,EAAEa,IAAI,CAAC;EAEzC,MAAMG,WAAW,GAAGzB,MAAM,CAACc,OAAO,CAAC;EACnC,MAAMY,QAAQ,GAAG1B,MAAM,CAACsB,IAAI,CAAC;;EAE7B;EACAhB,oBAAoB,CAAC,MAAM;IACzB;IACA,MAAMqB,WAAW,GACfD,QAAQ,CAACE,OAAO,KAAKN,IAAI,IACzBG,WAAW,CAACG,OAAO,CAACC,QAAQ,IAC5B,CAACf,OAAO,CAACe,QAAQ;IAEnB,IAAI,CAACF,WAAW,EAAE;MAChBN,QAAQ,CAACjB,aAAa,CAACoB,GAAG,EAAEF,IAAI,EAAER,OAAO,CAAC,CAAC;IAC7C;IAEAW,WAAW,CAACG,OAAO,GAAGd,OAAO;IAC7BY,QAAQ,CAACE,OAAO,GAAGN,IAAI;EACzB,CAAC,EAAE,CAACE,GAAG,EAAEF,IAAI,EAAER,OAAO,CAAC,CAAC;EAExB,MAAM;IAAEM,eAAe,GAAG;EAAM,CAAC,GAAGN,OAAO;EAC3Cf,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,IAAIqB,eAAe,EAAE;QACnBC,QAAQ,CAAChB,gBAAgB,CAACmB,GAAG,CAAC,CAAC;MACjC;IACF,CAAC;EACH,CAAC,EAAE,CAACH,QAAQ,EAAEG,GAAG,EAAEJ,eAAe,CAAC,CAAC;;EAEpC;EACA,OAAOlB,WAAW,CAAE4B,KAAK,IAAK;IAC5B,OAAOA,KAAK,CAACC,SAAS,CAACP,GAAG,CAAC;EAC7B,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Locale.js","names":["formatMessage","languages","IllegalStateException","getSetting","Locale","constructor","locale","_defineProperty","_code","code","_messages","fixPlaceHoldersInObject","messages","_errors","errors","_nativeName","nativeName","setup","missingTranslation","aLocale","split","length","language","lang","toUpperCase","fixPlaceHolders","message","replace","arguments","undefined","JSON","parse","_JSON$stringify","getBaseMessage","id","defaultMessage","messageFromLocale","process","env","NODE_ENV","console","debug","parameters","getMessage","update"],"sources":["../../src/i18n/Locale.js"],"sourcesContent":["// @flow\nimport formatMessage from \"format-message\";\n\nimport languages from \"./languages\";\nimport { IllegalStateException } from \"../exceptions\";\n\nimport { getSetting } from \"../constants\";\n\nimport type { LocaleConfiguration, MessageParameters } from \"./types\";\n\n/**\n * Create a locale\n */\nclass Locale {\n _code: string;\n _messages: { [string]: string };\n _errors: { [string]: string };\n _nativeName: ?string;\n\n constructor(locale: LocaleConfiguration) {\n this._code = locale.code;\n\n this._messages = this.fixPlaceHoldersInObject(locale.messages);\n this._errors = this.fixPlaceHoldersInObject(locale.errors);\n\n this._nativeName = locale.nativeName;\n\n formatMessage.setup({\n missingTranslation: \"ignore\",\n });\n }\n\n /**\n * Retrieve locale code\n */\n get code(): string {\n return this._code;\n }\n\n /**\n * Retrieve nativeName\n */\n get nativeName(): string {\n if (this._nativeName) {\n return this._nativeName;\n }\n\n const aLocale = this.code.split(\"-\");\n\n if (aLocale.length > 0) {\n const language = languages.lang[aLocale[0]];\n\n if (language) {\n return (\n language[1] + (aLocale[1] ? ` (${aLocale[1].toUpperCase()})` : \"\")\n );\n }\n }\n\n throw new IllegalStateException(\n `Can not find language name based on locale: ${this.code}`,\n );\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHolders(message: ?string): null | string {\n if (typeof message === \"string\") {\n return message\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\");\n }\n\n return null;\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHoldersInObject(messages: Object = {}): Object {\n return JSON.parse(\n JSON.stringify(messages)\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\"),\n );\n }\n\n /**\n * Retrieve message by id\n */\n getBaseMessage(id: string, defaultMessage?: string): string {\n if (!id && !defaultMessage) {\n return \"[message: id or defaultMessage missing]\";\n }\n\n const messageFromLocale = this._messages[id] || this._errors[id];\n\n if (\n (typeof process === \"undefined\" ||\n process.env.NODE_ENV !== \"production\") &&\n !messageFromLocale &&\n id &&\n getSetting(\"DEBUG_I18N_MESSAGE_NOT_FOUND\")\n ) {\n // eslint-disable-next-line no-console\n console.debug(\n `Message with id ${id} not found for locale ${this.code} in layout translations`,\n );\n }\n return messageFromLocale || this.fixPlaceHolders(defaultMessage) || id;\n }\n\n /**\n * Format message using formatMessage library\n */\n formatMessage(message: string, parameters?: MessageParameters): string {\n if (parameters) {\n return formatMessage(message, parameters);\n }\n\n return message;\n }\n\n /**\n * Retrieve a messages with replaced parameters\n */\n getMessage(\n id: string,\n defaultMessage?: string,\n parameters?: MessageParameters,\n ): string {\n const message = this.getBaseMessage(id, defaultMessage);\n return this.formatMessage(message, parameters);\n }\n\n /**\n * Add or change messages for this locale. It is not possible to remove messages.\n */\n update(messages: Object = {}, errors: Object = {}) {\n this._messages = {\n ...this._messages,\n ...this.fixPlaceHoldersInObject(messages),\n };\n\n this._errors = {\n ...this._errors,\n ...this.fixPlaceHoldersInObject(errors),\n };\n }\n}\n\nexport default Locale;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Locale.js","names":["formatMessage","languages","IllegalStateException","getSetting","Locale","constructor","locale","_defineProperty","_code","code","_messages","fixPlaceHoldersInObject","messages","_errors","errors","_nativeName","nativeName","setup","missingTranslation","aLocale","split","length","language","lang","toUpperCase","fixPlaceHolders","message","replace","arguments","undefined","JSON","parse","_JSON$stringify","getBaseMessage","id","defaultMessage","messageFromLocale","process","env","NODE_ENV","console","debug","parameters","getMessage","update"],"sources":["../../src/i18n/Locale.js"],"sourcesContent":["// @flow\nimport formatMessage from \"format-message\";\n\nimport languages from \"./languages\";\nimport { IllegalStateException } from \"../exceptions\";\n\nimport { getSetting } from \"../constants\";\n\nimport type { LocaleConfiguration, MessageParameters } from \"./types\";\n\n/**\n * Create a locale\n */\nclass Locale {\n _code: string;\n _messages: { [string]: string };\n _errors: { [string]: string };\n _nativeName: ?string;\n\n constructor(locale: LocaleConfiguration) {\n this._code = locale.code;\n\n this._messages = this.fixPlaceHoldersInObject(locale.messages);\n this._errors = this.fixPlaceHoldersInObject(locale.errors);\n\n this._nativeName = locale.nativeName;\n\n formatMessage.setup({\n missingTranslation: \"ignore\",\n });\n }\n\n /**\n * Retrieve locale code\n */\n get code(): string {\n return this._code;\n }\n\n /**\n * Retrieve nativeName\n */\n get nativeName(): string {\n if (this._nativeName) {\n return this._nativeName;\n }\n\n const aLocale = this.code.split(\"-\");\n\n if (aLocale.length > 0) {\n const language = languages.lang[aLocale[0]];\n\n if (language) {\n return (\n language[1] + (aLocale[1] ? ` (${aLocale[1].toUpperCase()})` : \"\")\n );\n }\n }\n\n throw new IllegalStateException(\n `Can not find language name based on locale: ${this.code}`,\n );\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHolders(message: ?string): null | string {\n if (typeof message === \"string\") {\n return message\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\");\n }\n\n return null;\n }\n\n /**\n * Exported messages from Be Informed have placeholders in the syntax ${placeholder_name}\n * where the ICU messageformat module uses {placeholder_name}.\n * This method converts the ${} to {}\n */\n fixPlaceHoldersInObject(messages: Object = {}): Object {\n return JSON.parse(\n JSON.stringify(messages)\n .replace(/'\\$\\{(?<key>.*?)}'/g, \"''{$<key>}''\")\n .replace(/\\$\\{(?<key>.*?)}/g, \"{$<key>}\"),\n );\n }\n\n /**\n * Retrieve message by id\n */\n getBaseMessage(id: string, defaultMessage?: string): string {\n if (!id && !defaultMessage) {\n return \"[message: id or defaultMessage missing]\";\n }\n\n const messageFromLocale = this._messages[id] || this._errors[id];\n\n if (\n (typeof process === \"undefined\" ||\n process.env.NODE_ENV !== \"production\") &&\n !messageFromLocale &&\n id &&\n getSetting(\"DEBUG_I18N_MESSAGE_NOT_FOUND\")\n ) {\n // eslint-disable-next-line no-console\n console.debug(\n `Message with id ${id} not found for locale ${this.code} in layout translations`,\n );\n }\n return messageFromLocale || this.fixPlaceHolders(defaultMessage) || id;\n }\n\n /**\n * Format message using formatMessage library\n */\n formatMessage(message: string, parameters?: MessageParameters): string {\n if (parameters) {\n return formatMessage(message, parameters);\n }\n\n return message;\n }\n\n /**\n * Retrieve a messages with replaced parameters\n */\n getMessage(\n id: string,\n defaultMessage?: string,\n parameters?: MessageParameters,\n ): string {\n const message = this.getBaseMessage(id, defaultMessage);\n return this.formatMessage(message, parameters);\n }\n\n /**\n * Add or change messages for this locale. It is not possible to remove messages.\n */\n update(messages: Object = {}, errors: Object = {}) {\n this._messages = {\n ...this._messages,\n ...this.fixPlaceHoldersInObject(messages),\n };\n\n this._errors = {\n ...this._errors,\n ...this.fixPlaceHoldersInObject(errors),\n };\n }\n}\n\nexport default Locale;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Locales.js","names":["Locale","englishErrors","dutchErrors","BaseCollection","IllegalArgumentException","availableLocales","code","messages","errors","createLocalesWithConfiguredErrors","configuredErrors","_mapInstanceProperty","call","availableLocale","Locales","constructor","locales","arguments","length","undefined","locale","rehydrate","hydatedLocales","_collection","_context","_code","_messages","_errors","hasLocale","localeCode","some","item","_startsWithInstanceProperty","getLocale","_context2","_findInstanceProperty","availableLocaleCodes","_context3","getPreferredLocale","acceptLanguageHeader","_context4","acceptLanguages","match","preferredLocales","_filterInstanceProperty","_context5","update","add"],"sources":["../../src/i18n/Locales.js"],"sourcesContent":["// @flow\nimport Locale from \"./Locale\";\n\nimport englishErrors from \"./translations/beinformed_error_messages_en.nl\";\nimport dutchErrors from \"./translations/beinformed_error_messages_nl.nl\";\n\nimport BaseCollection from \"../models/base/BaseCollection\";\n\nimport { IllegalArgumentException } from \"../exceptions\";\n\nimport type { LocaleConfiguration } from \"./types\";\n\ntype ErrorMessageObject = {\n [languageCode: string]: {\n [messageID: string]: string,\n },\n};\n\ntype HydratedLocales = {\n _collection: Array<{\n _code: string,\n _messages: {\n [string]: string,\n },\n _errors: {\n [string]: string,\n },\n }>,\n};\n\n/**\n * Array of available locales\n * Order of locales is the preferred order of locales.\n * When user has an accept language header that does not correspond to the locales array,\n * the first one is used as the preferred language\n */\nexport const availableLocales: Array<LocaleConfiguration> = [\n {\n code: \"en\",\n messages: {},\n errors: englishErrors,\n },\n {\n code: \"nl\",\n messages: {},\n errors: dutchErrors,\n },\n];\n\n/**\n * Merge an object with custom error messages (exported and translated from be informed for example) and merge them with the existing translations.\n */\nexport const createLocalesWithConfiguredErrors = (\n configuredErrors: ErrorMessageObject,\n): Array<Object> =>\n availableLocales.map((availableLocale) => {\n if (configuredErrors[availableLocale.code]) {\n return {\n ...availableLocale,\n errors: {\n ...availableLocale.errors,\n ...configuredErrors[availableLocale.code],\n },\n };\n }\n\n return availableLocale;\n });\n\n/**\n * Locales, collection of Locale\n */\nclass Locales extends BaseCollection<Locale> {\n constructor(locales: Array<LocaleConfiguration> = availableLocales) {\n super(locales.map((locale) => new Locale(locale)));\n }\n\n /**\n * rehydrate\n */\n static rehydrate(hydatedLocales: HydratedLocales): Locales {\n if (hydatedLocales && hydatedLocales._collection) {\n return new Locales(\n hydatedLocales._collection.map((locale) => ({\n code: locale._code,\n messages: locale._messages,\n errors: locale._errors,\n })),\n );\n }\n\n return new Locales([]);\n }\n\n /**\n * Check if locale with localeCode exists\n */\n hasLocale(localeCode: string): boolean {\n return this.some((item) => localeCode.startsWith(item.code));\n }\n\n /**\n * Retrieve locales by localeCode from Locales collection\n */\n getLocale(localeCode: string): Locale {\n if (this.hasLocale(localeCode)) {\n const locale = this.find((item) => localeCode.startsWith(item.code));\n if (locale) {\n return locale;\n }\n }\n throw new IllegalArgumentException(\n `Locale configuration for locale ${localeCode} not found`,\n );\n }\n\n /**\n * Retrieve all available locale codes\n */\n get availableLocaleCodes(): Array<string> {\n return this.map((locale) => locale.code);\n }\n\n /**\n * Retrieve preferred locale based on the accept header of a browser\n */\n getPreferredLocale(acceptLanguageHeader: string | null): void | string {\n if (acceptLanguageHeader != null) {\n const acceptLanguages =\n acceptLanguageHeader.match(/[-A-Za-z]{2,10}/gu) || [];\n\n const preferredLocales = acceptLanguages\n .filter((locale) =>\n this.availableLocaleCodes.some((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n )\n .map((locale) =>\n this.availableLocaleCodes.find((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n );\n\n if (preferredLocales.length > 0) {\n return preferredLocales[0];\n }\n }\n\n return this.availableLocaleCodes[0];\n }\n\n /**\n * Add or change messages and errors for the given locale.<br>\n * It is not possible to remove messages.\n */\n update(locale: string, messages: Object = {}, errors: Object = {}) {\n if (this.hasLocale(locale)) {\n this.getLocale(locale).update(messages, errors);\n } else {\n this.add(\n new Locale({\n code: locale,\n messages,\n errors,\n }),\n );\n }\n }\n}\n\nexport default Locales;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Locales.js","names":["Locale","englishErrors","dutchErrors","BaseCollection","IllegalArgumentException","availableLocales","code","messages","errors","createLocalesWithConfiguredErrors","configuredErrors","_mapInstanceProperty","call","availableLocale","Locales","constructor","locales","arguments","length","undefined","locale","rehydrate","hydatedLocales","_collection","_context","_code","_messages","_errors","hasLocale","localeCode","some","item","_startsWithInstanceProperty","getLocale","_context2","_findInstanceProperty","availableLocaleCodes","_context3","getPreferredLocale","acceptLanguageHeader","_context4","acceptLanguages","match","preferredLocales","_filterInstanceProperty","_context5","update","add"],"sources":["../../src/i18n/Locales.js"],"sourcesContent":["// @flow\nimport Locale from \"./Locale\";\n\nimport englishErrors from \"./translations/beinformed_error_messages_en.nl\";\nimport dutchErrors from \"./translations/beinformed_error_messages_nl.nl\";\n\nimport BaseCollection from \"../models/base/BaseCollection\";\n\nimport { IllegalArgumentException } from \"../exceptions\";\n\nimport type { LocaleConfiguration } from \"./types\";\n\ntype ErrorMessageObject = {\n [languageCode: string]: {\n [messageID: string]: string,\n },\n};\n\ntype HydratedLocales = {\n _collection: Array<{\n _code: string,\n _messages: {\n [string]: string,\n },\n _errors: {\n [string]: string,\n },\n }>,\n};\n\n/**\n * Array of available locales\n * Order of locales is the preferred order of locales.\n * When user has an accept language header that does not correspond to the locales array,\n * the first one is used as the preferred language\n */\nexport const availableLocales: Array<LocaleConfiguration> = [\n {\n code: \"en\",\n messages: {},\n errors: englishErrors,\n },\n {\n code: \"nl\",\n messages: {},\n errors: dutchErrors,\n },\n];\n\n/**\n * Merge an object with custom error messages (exported and translated from be informed for example) and merge them with the existing translations.\n */\nexport const createLocalesWithConfiguredErrors = (\n configuredErrors: ErrorMessageObject,\n): Array<Object> =>\n availableLocales.map((availableLocale) => {\n if (configuredErrors[availableLocale.code]) {\n return {\n ...availableLocale,\n errors: {\n ...availableLocale.errors,\n ...configuredErrors[availableLocale.code],\n },\n };\n }\n\n return availableLocale;\n });\n\n/**\n * Locales, collection of Locale\n */\nclass Locales extends BaseCollection<Locale> {\n constructor(locales: Array<LocaleConfiguration> = availableLocales) {\n super(locales.map((locale) => new Locale(locale)));\n }\n\n /**\n * rehydrate\n */\n static rehydrate(hydatedLocales: HydratedLocales): Locales {\n if (hydatedLocales && hydatedLocales._collection) {\n return new Locales(\n hydatedLocales._collection.map((locale) => ({\n code: locale._code,\n messages: locale._messages,\n errors: locale._errors,\n })),\n );\n }\n\n return new Locales([]);\n }\n\n /**\n * Check if locale with localeCode exists\n */\n hasLocale(localeCode: string): boolean {\n return this.some((item) => localeCode.startsWith(item.code));\n }\n\n /**\n * Retrieve locales by localeCode from Locales collection\n */\n getLocale(localeCode: string): Locale {\n if (this.hasLocale(localeCode)) {\n const locale = this.find((item) => localeCode.startsWith(item.code));\n if (locale) {\n return locale;\n }\n }\n throw new IllegalArgumentException(\n `Locale configuration for locale ${localeCode} not found`,\n );\n }\n\n /**\n * Retrieve all available locale codes\n */\n get availableLocaleCodes(): Array<string> {\n return this.map((locale) => locale.code);\n }\n\n /**\n * Retrieve preferred locale based on the accept header of a browser\n */\n getPreferredLocale(acceptLanguageHeader: string | null): void | string {\n if (acceptLanguageHeader != null) {\n const acceptLanguages =\n acceptLanguageHeader.match(/[-A-Za-z]{2,10}/gu) || [];\n\n const preferredLocales = acceptLanguages\n .filter((locale) =>\n this.availableLocaleCodes.some((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n )\n .map((locale) =>\n this.availableLocaleCodes.find((availableLocale) =>\n locale.startsWith(availableLocale),\n ),\n );\n\n if (preferredLocales.length > 0) {\n return preferredLocales[0];\n }\n }\n\n return this.availableLocaleCodes[0];\n }\n\n /**\n * Add or change messages and errors for the given locale.<br>\n * It is not possible to remove messages.\n */\n update(locale: string, messages: Object = {}, errors: Object = {}) {\n if (this.hasLocale(locale)) {\n this.getLocale(locale).update(messages, errors);\n } else {\n this.add(\n new Locale({\n code: locale,\n messages,\n errors,\n }),\n );\n }\n }\n}\n\nexport default Locales;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCollection.js","names":["BaseCollection","ActionModel","ActionCollection","constructor","actions","actionsContributions","Array","isArray","collection","actionModels","actionData","actionContribution","_findInstanceProperty","call","name","type","push","getActionByKey","key","_context","newCollection","_filterInstanceProperty","action","first","getActionsByType","_context2","_includesInstanceProperty","getActionsByLayoutHint","_context3","_len","arguments","length","hints","_key","layouthint","has","hasActionsByLayoutHint","routePath","_context4","enabledRoutes","isDisabled","path","_mapInstanceProperty","selfhref","join"],"sources":["../../../src/models/actions/ActionCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport ActionModel from \"./ActionModel\";\n\n/**\n * Collection of actions\n */\nexport default class ActionCollection extends BaseCollection<ActionModel> {\n constructor(actions?: Object, actionsContributions?: Object) {\n super();\n\n // no actions gives an empty collection\n if (!Array.isArray(actions)) {\n this.collection = [];\n } else if (Array.isArray(actionsContributions)) {\n const actionModels = [];\n for (const actionData of actions) {\n const actionContribution = actionsContributions.find(\n (actionContribution) =>\n actionContribution.name === actionData.name &&\n actionContribution.type !== \"service-operation\",\n );\n\n if (actionContribution) {\n actionModels.push(new ActionModel(actionData, actionContribution));\n }\n }\n\n this.collection = actionModels;\n }\n }\n\n /**\n * Retrieve action by key\n */\n getActionByKey(key: string): ActionModel | null {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) => action.key === key);\n\n return newCollection.first;\n }\n\n /**\n * Retrieve actions by type\n */\n getActionsByType(type: string | Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n Array.isArray(type) ? type.includes(action.type) : action.type === type,\n );\n\n return newCollection;\n }\n\n /**\n * Retrieve actions including a layout hint\n */\n getActionsByLayoutHint(...hints: Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n action.layouthint.has(...hints),\n );\n\n return newCollection;\n }\n\n /**\n * Indicates if an action with layout hint exists\n */\n hasActionsByLayoutHint(...hints: Array<string>): boolean {\n return this.getActionsByLayoutHint(...hints).length > 0;\n }\n\n /**\n * Use as path regex for react router routes\n */\n get routePath(): string {\n const enabledRoutes = this.collection.filter(\n (action) => !action.isDisabled,\n );\n\n if (enabledRoutes.length === 0) {\n return \"__NON_EXISTING_ROUTE__\";\n }\n\n const path = enabledRoutes.map((action) => action.selfhref.path).join(\"|\");\n\n return this.length > 1 ? `(${path})` : path;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ActionCollection.js","names":["BaseCollection","ActionModel","ActionCollection","constructor","actions","actionsContributions","Array","isArray","collection","actionModels","actionData","actionContribution","_findInstanceProperty","call","name","type","push","getActionByKey","key","_context","newCollection","_filterInstanceProperty","action","first","getActionsByType","_context2","_includesInstanceProperty","getActionsByLayoutHint","_context3","_len","arguments","length","hints","_key","layouthint","has","hasActionsByLayoutHint","routePath","_context4","enabledRoutes","isDisabled","path","_mapInstanceProperty","selfhref","join"],"sources":["../../../src/models/actions/ActionCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport ActionModel from \"./ActionModel\";\n\n/**\n * Collection of actions\n */\nexport default class ActionCollection extends BaseCollection<ActionModel> {\n constructor(actions?: Object, actionsContributions?: Object) {\n super();\n\n // no actions gives an empty collection\n if (!Array.isArray(actions)) {\n this.collection = [];\n } else if (Array.isArray(actionsContributions)) {\n const actionModels = [];\n for (const actionData of actions) {\n const actionContribution = actionsContributions.find(\n (actionContribution) =>\n actionContribution.name === actionData.name &&\n actionContribution.type !== \"service-operation\",\n );\n\n if (actionContribution) {\n actionModels.push(new ActionModel(actionData, actionContribution));\n }\n }\n\n this.collection = actionModels;\n }\n }\n\n /**\n * Retrieve action by key\n */\n getActionByKey(key: string): ActionModel | null {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) => action.key === key);\n\n return newCollection.first;\n }\n\n /**\n * Retrieve actions by type\n */\n getActionsByType(type: string | Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n Array.isArray(type) ? type.includes(action.type) : action.type === type,\n );\n\n return newCollection;\n }\n\n /**\n * Retrieve actions including a layout hint\n */\n getActionsByLayoutHint(...hints: Array<string>): ActionCollection {\n const newCollection = new ActionCollection();\n\n newCollection.collection = this.filter((action) =>\n action.layouthint.has(...hints),\n );\n\n return newCollection;\n }\n\n /**\n * Indicates if an action with layout hint exists\n */\n hasActionsByLayoutHint(...hints: Array<string>): boolean {\n return this.getActionsByLayoutHint(...hints).length > 0;\n }\n\n /**\n * Use as path regex for react router routes\n */\n get routePath(): string {\n const enabledRoutes = this.collection.filter(\n (action) => !action.isDisabled,\n );\n\n if (enabledRoutes.length === 0) {\n return \"__NON_EXISTING_ROUTE__\";\n }\n\n const path = enabledRoutes.map((action) => action.selfhref.path).join(\"|\");\n\n return this.length > 1 ? `(${path})` : path;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionModel.js","names":["has","ProcessStatusSettingsModel","AttributeCollection","BaseModel","Href","HTTP_METHODS","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","ActionModel","constructor","data","contributions","_defineProperty","_fieldCollection","fields","createFromHref","name","href","label","type","arguments","length","undefined","isDisabled","selfhref","_href","querystring","method","getData","POST","layouthint","getContribution","all","fieldCollection","_context","_context2","_mapInstanceProperty","_filterInstanceProperty","call","attribute","value","join","getFieldByKey","key","getAttributeByKey","hasFieldByKey","isProcessTask","processStatus","icon","_icon"],"sources":["../../../src/models/actions/ActionModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ProcessStatusSettingsModel from \"../process/ProcessStatusSettingsModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport {\n CREATE_ACTION,\n UPDATE_ACTION,\n DELETE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Defines an Action. For instance an action on the tab 'books', which leads to a form\n */\nexport default class ActionModel extends BaseModel {\n _fieldCollection: AttributeCollection;\n _href: Href;\n _icon: string;\n\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._fieldCollection = new AttributeCollection(\n this.data.fields,\n this.contributions.fields,\n );\n }\n\n /**\n */\n static createFromHref(\n name: string,\n href: string,\n label: string,\n type: string = \"form\",\n ): ActionModel {\n return new ActionModel(\n {\n name,\n href,\n },\n {\n name,\n label: label || name,\n type,\n },\n );\n }\n\n /**\n */\n get isDisabled(): boolean {\n return this.data.href == null;\n }\n\n /**\n * retrieve href of action\n */\n get selfhref(): Href {\n return (\n this._href || new Href(`${this.data.href}?${this.querystring}`, \"Form\")\n );\n }\n\n /**\n */\n set selfhref(href: Href) {\n this._href = href;\n }\n\n /**\n * retrieve request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.getData(\"method\", HTTP_METHODS.POST);\n }\n\n /**\n * Retrieve type of method\n */\n get type(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"type\", \"general\");\n }\n\n /**\n * Retrieve name of action\n */\n get name(): string {\n return this.getData(\"name\", \"unknown\");\n }\n\n /**\n * retrieve the collection of field attributes as an array\n */\n get fields(): Array<AttributeType> {\n return this._fieldCollection.all;\n }\n\n /**\n * Retrieve the field collection\n */\n get fieldCollection(): AttributeCollection {\n return this._fieldCollection;\n }\n\n /**\n */\n set fieldCollection(fieldCollection: AttributeCollection) {\n this._fieldCollection = fieldCollection;\n }\n\n /**\n * Retrieve querystring of action\n */\n get querystring(): string {\n return this.fields\n .filter((attribute) => attribute.value != null && attribute.value !== \"\")\n .map((attribute) => {\n const { value } = attribute;\n if (value !== null) {\n return `${attribute.name}=${value}`;\n }\n return attribute.name;\n })\n .join(\"&\");\n }\n\n /**\n * Retrieve a field by it's key\n */\n getFieldByKey(key: string): AttributeType | null {\n return this._fieldCollection.getAttributeByKey(key);\n }\n\n /**\n * Indicates if field exists by the given key\n */\n hasFieldByKey(key: string): boolean {\n return this.getFieldByKey(key) !== null;\n }\n\n /**\n * Getting the key/name of this action\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Getting the label of the action\n */\n get label(): string {\n return this.getContribution(\"label\", this.key);\n }\n\n /**\n */\n get isProcessTask(): boolean {\n return has(this.contributions, \"processTask\");\n }\n\n /**\n */\n get processStatus(): ProcessStatusSettingsModel | null {\n if (this.isProcessTask) {\n return new ProcessStatusSettingsModel(\n this.getData(\"processStatus\", {}),\n this.getContribution(\"processTask\", {}),\n );\n }\n\n return null;\n }\n\n /**\n */\n get icon(): string {\n return this._icon;\n }\n\n /**\n */\n set icon(icon: string) {\n this._icon = icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ActionModel.js","names":["has","ProcessStatusSettingsModel","AttributeCollection","BaseModel","Href","HTTP_METHODS","CREATE_ACTION","UPDATE_ACTION","DELETE_ACTION","ActionModel","constructor","data","contributions","_defineProperty","_fieldCollection","fields","createFromHref","name","href","label","type","arguments","length","undefined","isDisabled","selfhref","_href","querystring","method","getData","POST","layouthint","getContribution","all","fieldCollection","_context","_context2","_mapInstanceProperty","_filterInstanceProperty","call","attribute","value","join","getFieldByKey","key","getAttributeByKey","hasFieldByKey","isProcessTask","processStatus","icon","_icon"],"sources":["../../../src/models/actions/ActionModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ProcessStatusSettingsModel from \"../process/ProcessStatusSettingsModel\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport BaseModel from \"../base/BaseModel\";\nimport Href from \"../href/Href\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\nimport {\n CREATE_ACTION,\n UPDATE_ACTION,\n DELETE_ACTION,\n} from \"../../constants/LayoutHints\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Defines an Action. For instance an action on the tab 'books', which leads to a form\n */\nexport default class ActionModel extends BaseModel {\n _fieldCollection: AttributeCollection;\n _href: Href;\n _icon: string;\n\n constructor(data: Object, contributions: Object) {\n super(data, contributions);\n\n this._fieldCollection = new AttributeCollection(\n this.data.fields,\n this.contributions.fields,\n );\n }\n\n /**\n */\n static createFromHref(\n name: string,\n href: string,\n label: string,\n type: string = \"form\",\n ): ActionModel {\n return new ActionModel(\n {\n name,\n href,\n },\n {\n name,\n label: label || name,\n type,\n },\n );\n }\n\n /**\n */\n get isDisabled(): boolean {\n return this.data.href == null;\n }\n\n /**\n * retrieve href of action\n */\n get selfhref(): Href {\n return (\n this._href || new Href(`${this.data.href}?${this.querystring}`, \"Form\")\n );\n }\n\n /**\n */\n set selfhref(href: Href) {\n this._href = href;\n }\n\n /**\n * retrieve request method\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.getData(\"method\", HTTP_METHODS.POST);\n }\n\n /**\n * Retrieve type of method\n */\n get type(): string {\n if (this.layouthint.has(CREATE_ACTION)) {\n return \"create\";\n }\n if (this.layouthint.has(UPDATE_ACTION)) {\n return \"update\";\n }\n if (this.layouthint.has(DELETE_ACTION)) {\n return \"delete\";\n }\n\n return this.getContribution(\"type\", \"general\");\n }\n\n /**\n * Retrieve name of action\n */\n get name(): string {\n return this.getData(\"name\", \"unknown\");\n }\n\n /**\n * retrieve the collection of field attributes as an array\n */\n get fields(): Array<AttributeType> {\n return this._fieldCollection.all;\n }\n\n /**\n * Retrieve the field collection\n */\n get fieldCollection(): AttributeCollection {\n return this._fieldCollection;\n }\n\n /**\n */\n set fieldCollection(fieldCollection: AttributeCollection) {\n this._fieldCollection = fieldCollection;\n }\n\n /**\n * Retrieve querystring of action\n */\n get querystring(): string {\n return this.fields\n .filter((attribute) => attribute.value != null && attribute.value !== \"\")\n .map((attribute) => {\n const { value } = attribute;\n if (value !== null) {\n return `${attribute.name}=${value}`;\n }\n return attribute.name;\n })\n .join(\"&\");\n }\n\n /**\n * Retrieve a field by it's key\n */\n getFieldByKey(key: string): AttributeType | null {\n return this._fieldCollection.getAttributeByKey(key);\n }\n\n /**\n * Indicates if field exists by the given key\n */\n hasFieldByKey(key: string): boolean {\n return this.getFieldByKey(key) !== null;\n }\n\n /**\n * Getting the key/name of this action\n */\n get key(): string {\n return this.data.name;\n }\n\n /**\n * Getting the label of the action\n */\n get label(): string {\n return this.getContribution(\"label\", this.key);\n }\n\n /**\n */\n get isProcessTask(): boolean {\n return has(this.contributions, \"processTask\");\n }\n\n /**\n */\n get processStatus(): ProcessStatusSettingsModel | null {\n if (this.isProcessTask) {\n return new ProcessStatusSettingsModel(\n this.getData(\"processStatus\", {}),\n this.getContribution(\"processTask\", {}),\n );\n }\n\n return null;\n }\n\n /**\n */\n get icon(): string {\n return this._icon;\n }\n\n /**\n */\n set icon(icon: string) {\n this._icon = icon;\n }\n}\n"],"mappings":";;;AACA,SAASA,GAAG,QAAQ,6BAA6B;AAEjD,OAAOC,0BAA0B,MAAM,uCAAuC;AAC9E,OAAOC,mBAAmB,MAAM,mCAAmC;AACnE,OAAOC,SAAS,MAAM,mBAAmB;AACzC,OAAOC,IAAI,MAAM,cAAc;AAE/B,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SACEC,aAAa,EACbC,aAAa,EACbC,aAAa,QACR,6BAA6B;AAIpC;AACA;AACA;AACA,eAAe,MAAMC,WAAW,SAASN,SAAS,CAAC;EAKjDO,WAAWA,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAC/C,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAE3B,IAAI,CAACC,gBAAgB,GAAG,IAAIZ,mBAAmB,CAC7C,IAAI,CAACS,IAAI,CAACI,MAAM,EAChB,IAAI,CAACH,aAAa,CAACG,MACrB,CAAC;EACH;;EAEA;AACF;EACE,OAAOC,cAAcA,CACnBC,IAAY,EACZC,IAAY,EACZC,KAAa,EAEA;IAAA,IADbC,IAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,MAAM;IAErB,OAAO,IAAIZ,WAAW,CACpB;MACEQ,IAAI;MACJC;IACF,CAAC,EACD;MACED,IAAI;MACJE,KAAK,EAAEA,KAAK,IAAIF,IAAI;MACpBG;IACF,CACF,CAAC;EACH;;EAEA;AACF;EACE,IAAII,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACb,IAAI,CAACO,IAAI,IAAI,IAAI;EAC/B;;EAEA;AACF;AACA;EACE,IAAIO,QAAQA,CAAA,EAAS;IACnB,OACE,IAAI,CAACC,KAAK,IAAI,IAAItB,IAAI,CAAC,GAAG,IAAI,CAACO,IAAI,CAACO,IAAI,IAAI,IAAI,CAACS,WAAW,EAAE,EAAE,MAAM,CAAC;EAE3E;;EAEA;AACF;EACE,IAAIF,QAAQA,CAACP,IAAU,EAAE;IACvB,IAAI,CAACQ,KAAK,GAAGR,IAAI;EACnB;;EAEA;AACF;AACA;EACE,IAAIU,MAAMA,CAAA,EAA+B;IACvC,OAAO,IAAI,CAACC,OAAO,CAAC,QAAQ,EAAExB,YAAY,CAACyB,IAAI,CAAC;EAClD;;EAEA;AACF;AACA;EACE,IAAIV,IAAIA,CAAA,EAAW;IACjB,IAAI,IAAI,CAACW,UAAU,CAAC/B,GAAG,CAACM,aAAa,CAAC,EAAE;MACtC,OAAO,QAAQ;IACjB;IACA,IAAI,IAAI,CAACyB,UAAU,CAAC/B,GAAG,CAACO,aAAa,CAAC,EAAE;MACtC,OAAO,QAAQ;IACjB;IACA,IAAI,IAAI,CAACwB,UAAU,CAAC/B,GAAG,CAACQ,aAAa,CAAC,EAAE;MACtC,OAAO,QAAQ;IACjB;IAEA,OAAO,IAAI,CAACwB,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;EAChD;;EAEA;AACF;AACA;EACE,IAAIf,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACY,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC;EACxC;;EAEA;AACF;AACA;EACE,IAAId,MAAMA,CAAA,EAAyB;IACjC,OAAO,IAAI,CAACD,gBAAgB,CAACmB,GAAG;EAClC;;EAEA;AACF;AACA;EACE,IAAIC,eAAeA,CAAA,EAAwB;IACzC,OAAO,IAAI,CAACpB,gBAAgB;EAC9B;;EAEA;AACF;EACE,IAAIoB,eAAeA,CAACA,eAAoC,EAAE;IACxD,IAAI,CAACpB,gBAAgB,GAAGoB,eAAe;EACzC;;EAEA;AACF;AACA;EACE,IAAIP,WAAWA,CAAA,EAAW;IAAA,IAAAQ,QAAA,EAAAC,SAAA;IACxB,OAAOC,oBAAA,CAAAF,QAAA,GAAAG,uBAAA,CAAAF,SAAA,OAAI,CAACrB,MAAM,EAAAwB,IAAA,CAAAH,SAAA,EACPI,SAAS,IAAKA,SAAS,CAACC,KAAK,IAAI,IAAI,IAAID,SAAS,CAACC,KAAK,KAAK,EAAE,CAAC,EAAAF,IAAA,CAAAJ,QAAA,EACnEK,SAAS,IAAK;MAClB,MAAM;QAAEC;MAAM,CAAC,GAAGD,SAAS;MAC3B,IAAIC,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,GAAGD,SAAS,CAACvB,IAAI,IAAIwB,KAAK,EAAE;MACrC;MACA,OAAOD,SAAS,CAACvB,IAAI;IACvB,CAAC,CAAC,CACDyB,IAAI,CAAC,GAAG,CAAC;EACd;;EAEA;AACF;AACA;EACEC,aAAaA,CAACC,GAAW,EAAwB;IAC/C,OAAO,IAAI,CAAC9B,gBAAgB,CAAC+B,iBAAiB,CAACD,GAAG,CAAC;EACrD;;EAEA;AACF;AACA;EACEE,aAAaA,CAACF,GAAW,EAAW;IAClC,OAAO,IAAI,CAACD,aAAa,CAACC,GAAG,CAAC,KAAK,IAAI;EACzC;;EAEA;AACF;AACA;EACE,IAAIA,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACjC,IAAI,CAACM,IAAI;EACvB;;EAEA;AACF;AACA;EACE,IAAIE,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACa,eAAe,CAAC,OAAO,EAAE,IAAI,CAACY,GAAG,CAAC;EAChD;;EAEA;AACF;EACE,IAAIG,aAAaA,CAAA,EAAY;IAC3B,OAAO/C,GAAG,CAAC,IAAI,CAACY,aAAa,EAAE,aAAa,CAAC;EAC/C;;EAEA;AACF;EACE,IAAIoC,aAAaA,CAAA,EAAsC;IACrD,IAAI,IAAI,CAACD,aAAa,EAAE;MACtB,OAAO,IAAI9C,0BAA0B,CACnC,IAAI,CAAC4B,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EACjC,IAAI,CAACG,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC,CACxC,CAAC;IACH;IAEA,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIiB,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACC,KAAK;EACnB;;EAEA;AACF;EACE,IAAID,IAAIA,CAACA,IAAY,EAAE;IACrB,IAAI,CAACC,KAAK,GAAGD,IAAI;EACnB;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeCollection.js","names":["has","ResourceCollection","createAttribute","ChoiceAttributeModel","CompositeAttributeModel","ContentConfiguration","ConfigurationException","AttributeCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_Object$keys","attribute","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filterInstanceProperty","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_findInstanceProperty","attr","equals","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWithInstanceProperty","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_mapInstanceProperty","isVisible","getEmptyFormData","attributeFormData"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AttributeCollection.js","names":["has","ResourceCollection","createAttribute","ChoiceAttributeModel","CompositeAttributeModel","ContentConfiguration","ConfigurationException","AttributeCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_Object$keys","attribute","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filterInstanceProperty","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_findInstanceProperty","attr","equals","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWithInstanceProperty","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_mapInstanceProperty","isVisible","getEmptyFormData","attributeFormData"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":";;;;;AACA,SAASA,GAAG,QAAQ,6BAA6B;AAEjD,OAAOC,kBAAkB,MAAM,4BAA4B;AAE3D,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,uBAAuB,MAAM,2BAA2B;AAE/D,OAAOC,oBAAoB,MAAM,8CAA8C;AAE/E,SAASC,sBAAsB,QAAQ,kBAAkB;AAIzD;AACA;AACA;AACA,MAAMC,mBAAmB,SAASN,kBAAkB,CAAgB;EAClEO,WAAWA,CAAA,EAIT;IAAA,IAHAC,IAA4B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAAA,IACjCG,aAA4B,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAAA,IACjCI,UAAmB,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAE3B,KAAK,CAAC,CAAC;IAEP,IAAIG,aAAa,EAAE;MACjBA,aAAa,CAACE,OAAO,CAAEC,YAAY,IAAK;QACtC,MAAM,CAACC,GAAG,CAAC,GAAGC,YAAA,CAAYF,YAAY,CAAC;QAEvC,MAAMG,SAAS,GAAGjB,eAAe,CAACe,GAAG,EAAER,IAAI,EAAEO,YAAY,CAACC,GAAG,CAAC,CAAC;QAE/D,IAAIE,SAAS,KAAK,IAAI,EAAE;UACtB;UACA,IAAIL,UAAU,IAAI,CAACd,GAAG,CAACgB,YAAY,CAACC,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE;YACrDE,SAAS,CAACC,QAAQ,GAAG,IAAI;UAC3B;UAEA,IAAI,CAACC,UAAU,CAACC,IAAI,CAACH,SAAS,CAAC;QACjC;MACF,CAAC,CAAC;MAEF,IAAI,CAACI,sBAAsB,CAAC,CAAC;IAC/B;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,IAAIC,UAAUA,CAAA,EAAyB;IACrC,IAAI,CAACD,sBAAsB,CAAC,CAAC;IAC7B,OAAO,IAAI,CAACE,GAAG;EACjB;;EAEA;AACF;AACA;EACE,IAAID,UAAUA,CAACA,UAAgC,EAAE;IAC/C,IAAI,CAACH,UAAU,GAAGG,UAAU;EAC9B;;EAEA;AACF;EACED,sBAAsBA,CAAA,EAAS;IAC7B,IAAI,CAACE,GAAG,CAACV,OAAO,CAAEI,SAAS,IAAK;MAC9BA,SAAS,CAACI,sBAAsB,CAAC,IAAI,CAAC;IACxC,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,IAAIG,OAAOA,CAAA,EAAyB;IAClC;IACA,IAAI,IAAI,YAAYnB,mBAAmB,EAAE;MAAA,IAAAoB,QAAA;MACvC,OAAOC,uBAAA,CAAAD,QAAA,OAAI,CAACH,UAAU,EAAAK,IAAA,CAAAF,QAAA,EAASR,SAAS,IAAK,CAACA,SAAS,CAACW,QAAQ,CAAC;IACnE;IAEA,OAAO,EAAE;EACX;;EAEA;AACF;EACE,IAAIC,SAASA,CAAA,EAAyB;IAAA,IAAAC,SAAA;IACpC,OAAOJ,uBAAA,CAAAI,SAAA,OAAI,CAACN,OAAO,EAAAG,IAAA,CAAAG,SAAA,EAASb,SAAS,IAAK,CAACA,SAAS,CAACc,QAAQ,CAAC;EAChE;;EAEA;AACF;EACE,IAAIC,OAAOA,CAAA,EAAyB;IAAA,IAAAC,SAAA;IAClC,OAAOP,uBAAA,CAAAO,SAAA,OAAI,CAACT,OAAO,EAAAG,IAAA,CAAAM,SAAA,EAAShB,SAAS,IAAKA,SAAS,CAACc,QAAQ,CAAC;EAC/D;;EAEA;AACF;EACEG,uBAAuBA,CAACjB,SAAwB,EAAwB;IAAA,IAAAkB,SAAA;IACtE,OAAOC,qBAAA,CAAAD,SAAA,OAAI,EAAAR,IAAA,CAAAQ,SAAA,EAAOE,IAAI,IAAK;MACzB,IAAIA,IAAI,CAACC,MAAM,CAACrB,SAAS,CAAC,EAAE;QAC1B,OAAO,IAAI;MACb,CAAC,MAAM,IAAIA,SAAS,YAAYf,uBAAuB,EAAE;QACvD,OAAOe,SAAS,CAACsB,mBAAmB,CAACtB,SAAS,CAAC;MACjD;MAEA,OAAO,KAAK;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEuB,iBAAiBA,CAACzB,GAAW,EAAwB;IAAA,IAAA0B,SAAA;IACnD,OAAOL,qBAAA,CAAAK,SAAA,OAAI,EAAAd,IAAA,CAAAc,SAAA,EAAOxB,SAAS,IAAK;MAC9B,IAAIA,SAAS,CAACF,GAAG,KAAKA,GAAG,EAAE;QACzB,OAAO,IAAI;MACb,CAAC,MAAM,IAAIE,SAAS,YAAYf,uBAAuB,EAAE;QACvD,OAAOe,SAAS,CAACyB,aAAa,CAAC3B,GAAG,CAAC;MACrC;MAEA,OAAO,KAAK;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE4B,iBAAiBA,CAAC5B,GAAW,EAAW;IACtC,OAAO,IAAI,CAACyB,iBAAiB,CAACzB,GAAG,CAAC,KAAK,IAAI;EAC7C;;EAEA;AACF;AACA;EACE6B,wBAAwBA,CAAA,EAAgD;IAAA,IAAAC,SAAA;IAAA,SAAAC,IAAA,GAAAtC,SAAA,CAAAC,MAAA,EAA5CsC,KAAK,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAALF,KAAK,CAAAE,IAAA,IAAAzC,SAAA,CAAAyC,IAAA;IAAA;IAC/B,OAAOb,qBAAA,CAAAS,SAAA,OAAI,EAAAlB,IAAA,CAAAkB,SAAA,EAAO5B,SAAS,IAAKA,SAAS,CAACiC,UAAU,CAACpD,GAAG,CAAC,GAAGiD,KAAK,CAAC,CAAC,IAAI,IAAI;EAC7E;;EAEA;AACF;AACA;EACEI,8BAA8BA,CAC5BC,UAAkB,EACW;IAC7B,MAAMnC,SAAS,GAAG,IAAI,CAAC2B,wBAAwB,CAACQ,UAAU,CAAC;IAE3D,OAAOnC,SAAS,YAAYhB,oBAAoB,GAAGgB,SAAS,GAAG,IAAI;EACrE;;EAEA;AACF;AACA;EACEoC,yBAAyBA,CAAA,EAAgD;IAAA,IAAAC,SAAA;IAAA,SAAAC,KAAA,GAAA/C,SAAA,CAAAC,MAAA,EAA5CsC,KAAK,OAAAC,KAAA,CAAAO,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAALT,KAAK,CAAAS,KAAA,IAAAhD,SAAA,CAAAgD,KAAA;IAAA;IAChC,OAAO9B,uBAAA,CAAA4B,SAAA,OAAI,EAAA3B,IAAA,CAAA2B,SAAA,EAASrC,SAAS,IAAKA,SAAS,CAACiC,UAAU,CAACpD,GAAG,CAAC,GAAGiD,KAAK,CAAC,CAAC;EACvE;;EAEA;AACF;AACA;EACEU,OAAOA,CAACC,YAA2B,EAAEC,YAA2B,EAAQ;IACtE,IAAI,CAACC,YAAY,CAACF,YAAY,CAAC3C,GAAG,EAAE4C,YAAY,CAAC;EACnD;;EAEA;AACF;AACA;EACEC,YAAYA,CAAC7C,GAAW,EAAE4C,YAA2B,EAAQ;IAC3D,IAAI,CAAC9C,OAAO,CAAC,CAACI,SAAS,EAAE4C,KAAK,KAAK;MACjC,IAAI5C,SAAS,CAACF,GAAG,KAAKA,GAAG,EAAE;QACzB,IAAI,CAACI,UAAU,CAAC0C,KAAK,CAAC,GAAGF,YAAY;MACvC;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;EACEG,gBAAgBA,CAACC,IAAY,EAAQ;IACnC,IAAI,CAAClD,OAAO,CAAEI,SAAS,IAAK;MAC1B,MAAM0C,YAAY,GAAG1C,SAAS,CAAC+C,KAAK,CAAC,CAAC;MAEtCL,YAAY,CAACM,aAAa,GAAGF,IAAI;MAEjC,IAAI,CAACN,OAAO,CAACxC,SAAS,EAAE0C,YAAY,CAAC;IACvC,CAAC,CAAC;EACJ;;EAEA;AACF;EACEO,eAAeA,CAAA,EAAY;IACzB,OAAO,IAAI,CAAC/C,UAAU,CAACgD,IAAI,CAAElD,SAAS,IAAKA,SAAS,CAACiD,eAAe,CAAC,CAAC,CAAC;EACzE;;EAEA;AACF;EACEE,cAAcA,CAACC,KAAsB,EAAQ;IAC3C,MAAMC,SAAS,GAAGD,KAAK,EAAEE,MAAM,EAAED,SAAS;IAE1C,IAAIA,SAAS,EAAE;MACb,MAAMrD,SAAS,GAAG,IAAI,CAACuB,iBAAiB,CAAC8B,SAAS,CAAC;MACnD,IAAIrD,SAAS,EAAE;QACbA,SAAS,CAACmD,cAAc,CAACC,KAAK,CAAC;MACjC,CAAC,MAAM;QACL,MAAM,IAAIjE,sBAAsB,CAC9B,oDAAoDkE,SAAS,EAC/D,CAAC;MACH;IACF;EACF;;EAEA;AACF;EACEE,SAASA,CAAA,EAAY;IACnB,OAAO,IAAI,CAAChD,OAAO,CAAC2C,IAAI,CAAElD,SAAS,IAAKA,SAAS,CAACuD,SAAS,CAAC,CAAC,CAAC;EAChE;;EAEA;AACF;EACEC,iBAAiBA,CAACC,MAAqB,EAAuB;IAAA,IAAAC,SAAA;IAC5DjD,uBAAA,CAAAiD,SAAA,OAAI,CAACpD,GAAG,EAAAI,IAAA,CAAAgD,SAAA,EACG1D,SAAS,IAAKA,SAAS,CAAC2D,wBAAwB,CAAC,CACzD/D,OAAO,CAAEI,SAAS,IAAK;MACtB,MAAM4D,eAAe,GAAGnD,uBAAA,CAAAgD,MAAM,EAAA/C,IAAA,CAAN+C,MAAM,EAC3BL,KAAK,IAAKA,KAAK,CAACE,MAAM,EAAED,SAAS,KAAKrD,SAAS,CAACF,GACnD,CAAC;MACDE,SAAS,CAACwD,iBAAiB,CAACI,eAAe,CAAC;MAE5C,IAAI5D,SAAS,YAAYf,uBAAuB,EAAE;QAChD,MAAM4E,oBAAoB,GAAGpD,uBAAA,CAAAgD,MAAM,EAAA/C,IAAA,CAAN+C,MAAM,EAASL,KAAK,IAAK;UACpD,MAAMU,SAAS,GAAGV,KAAK,CAACE,MAAM,EAAED,SAAS;UACzC,OAAOS,SAAS,IAAIC,2BAAA,CAAAD,SAAS,EAAApD,IAAA,CAAToD,SAAS,EAAY,GAAG9D,SAAS,CAACF,GAAG,GAAG,CAAC;QAC/D,CAAC,CAAC;QAEFE,SAAS,CAACgE,QAAQ,CAACR,iBAAiB,CAClC,GAAGxD,SAAS,CAACF,GAAG,GAAG,EACnB+D,oBACF,CAAC;MACH;IACF,CAAC,CAAC;IAEJ,OAAO,IAAI;EACb;;EAEA;AACF;EACEI,4BAA4BA,CAC1BC,oBAA0C,EACpC;IACN,IAAIA,oBAAoB,EAAE;MACxB,IAAI,CAAC5D,GAAG,CAACV,OAAO,CAAEI,SAAS,IAAK;QAC9BA,SAAS,CAACiE,4BAA4B,CAACC,oBAAoB,CAAC;MAC9D,CAAC,CAAC;IACJ;EACF;;EAEA;AACF;AACA;AACA;EACE,IAAIC,QAAQA,CAAA,EAA6B;IACvC,OAAO,IAAI,CAACC,WAAW,CAAC,KAAK,CAAC;EAChC;;EAEA;AACF;EACEA,WAAWA,CAAA,EAA4D;IAAA,IAAAC,SAAA,EAAAC,UAAA;IAAA,IAA3DC,cAAuB,GAAAhF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACzC,MAAMiF,kBAAkB,GAAGC,oBAAA,CAAAJ,SAAA,GAAA5D,uBAAA,CAAA6D,UAAA,OAAI,CAACjE,UAAU,EAAAK,IAAA,CAAA4D,UAAA,EAErCtE,SAAS,IACRA,SAAS,CAACmE,QAAQ,KAAK,IAAI,IAC3B,CAACnE,SAAS,CAACC,QAAQ,KAClB,CAACsE,cAAc,IAAIvE,SAAS,CAAC2D,wBAAwB,CAC1D,CAAC,EAAAjD,IAAA,CAAA2D,SAAA,EACKrE,SAAS,IAAK;MAClB;MACA,IAAIA,SAAS,CAAC0E,SAAS,EAAE;QACvB,OAAO1E,SAAS,CAACmE,QAAQ;MAC3B;MAEA,OAAOnE,SAAS,CAAC2E,gBAAgB,CAAC,CAAC;IACrC,CAAC,CAAC;IAEJ,IAAIrF,IAAI,GAAG,CAAC,CAAC;IACbkF,kBAAkB,CAAC5E,OAAO,CAAEgF,iBAAiB,IAAK;MAChD;MACA;MACAtF,IAAI,GAAG;QACL,GAAGA,IAAI;QACP,GAAGsF;MACL,CAAC;IACH,CAAC,CAAC;IAEF,OAAOtF,IAAI;EACb;AACF;AAEA,eAAeF,mBAAmB","ignoreList":[]}