@beinformed/ui 1.63.2 → 1.63.4

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 (466) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/esm/constants/Settings.js +3 -14
  3. package/esm/constants/Settings.js.map +1 -1
  4. package/esm/exceptions/NotFoundException.js +1 -2
  5. package/esm/exceptions/NotFoundException.js.map +1 -1
  6. package/esm/hooks/useI18n.js +1 -6
  7. package/esm/hooks/useI18n.js.map +1 -1
  8. package/esm/hooks/useModal.js +3 -4
  9. package/esm/hooks/useModal.js.map +1 -1
  10. package/esm/hooks/useModelCatalog.js +10 -30
  11. package/esm/hooks/useModelCatalog.js.map +1 -1
  12. package/esm/hooks/useModularUI.js +4 -5
  13. package/esm/hooks/useModularUI.js.map +1 -1
  14. package/esm/hooks/useModularUIBasic.js +7 -8
  15. package/esm/hooks/useModularUIBasic.js.map +1 -1
  16. package/esm/i18n/Locale.js +2 -5
  17. package/esm/i18n/Locale.js.map +1 -1
  18. package/esm/i18n/Locales.js +2 -5
  19. package/esm/i18n/Locales.js.map +1 -1
  20. package/esm/i18n/Message.js +9 -10
  21. package/esm/i18n/Message.js.map +1 -1
  22. package/esm/i18n/withMessage.js +1 -6
  23. package/esm/i18n/withMessage.js.map +1 -1
  24. package/esm/models/actions/ActionCollection.js +3 -6
  25. package/esm/models/actions/ActionCollection.js.map +1 -1
  26. package/esm/models/actions/ActionModel.js +1 -4
  27. package/esm/models/actions/ActionModel.js.map +1 -1
  28. package/esm/models/application/ApplicationModel.js +2 -2
  29. package/esm/models/application/ApplicationModel.js.map +1 -1
  30. package/esm/models/attributes/AttributeCollection.js +4 -14
  31. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  32. package/esm/models/attributes/AttributeDataHelper.js +1 -2
  33. package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
  34. package/esm/models/attributes/AttributeSetModel.js +1 -5
  35. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  36. package/esm/models/attributes/CaptchaAttributeModel.js +2 -2
  37. package/esm/models/attributes/CaptchaAttributeModel.js.map +1 -1
  38. package/esm/models/attributes/ChoiceAttributeModel.js +1 -3
  39. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  40. package/esm/models/attributes/ChoiceAttributeOptionCollection.js +3 -9
  41. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  42. package/esm/models/attributes/ChoiceAttributeOptionModel.js +2 -8
  43. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  44. package/esm/models/attributes/PasswordAttributeModel.js +2 -2
  45. package/esm/models/attributes/PasswordAttributeModel.js.map +1 -1
  46. package/esm/models/attributes/UploadAttributeModel.js +2 -2
  47. package/esm/models/attributes/UploadAttributeModel.js.map +1 -1
  48. package/esm/models/attributes/input-constraints/ConstraintCollection.js +1 -2
  49. package/esm/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  50. package/esm/models/attributes/input-constraints/ConstraintModel.js +1 -2
  51. package/esm/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  52. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js +1 -4
  53. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  54. package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js +1 -6
  55. package/esm/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  56. package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js +1 -4
  57. package/esm/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  58. package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +1 -2
  59. package/esm/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  60. package/esm/models/attributes/layouthint-rules/DependentAttribute.js +2 -2
  61. package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  62. package/esm/models/base/BaseCollection.js +1 -2
  63. package/esm/models/base/BaseCollection.js.map +1 -1
  64. package/esm/models/base/BaseModel.js +6 -9
  65. package/esm/models/base/BaseModel.js.map +1 -1
  66. package/esm/models/base/ResourceModel.js +1 -2
  67. package/esm/models/base/ResourceModel.js.map +1 -1
  68. package/esm/models/concepts/BusinessScenarioModel.js +2 -2
  69. package/esm/models/concepts/BusinessScenarioModel.js.map +1 -1
  70. package/esm/models/concepts/ConceptDetailModel.js +1 -2
  71. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  72. package/esm/models/concepts/ConceptLinkModel.js +1 -3
  73. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  74. package/esm/models/concepts/ConceptRelationCollection.js +1 -4
  75. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  76. package/esm/models/concepts/ConceptRelationModel.js +1 -3
  77. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  78. package/esm/models/concepts/SourceReferenceCollection.js +1 -4
  79. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  80. package/esm/models/concepts/SourceReferenceModel.js +7 -3
  81. package/esm/models/concepts/SourceReferenceModel.js.flow +6 -0
  82. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  83. package/esm/models/content/ContentLinkModel.js +1 -3
  84. package/esm/models/content/ContentLinkModel.js.map +1 -1
  85. package/esm/models/content/ContentTOCModel.js +2 -2
  86. package/esm/models/content/ContentTOCModel.js.map +1 -1
  87. package/esm/models/contentconfiguration/ContentConfigurationElements.js +1 -2
  88. package/esm/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  89. package/esm/models/error/ErrorModel.js +1 -3
  90. package/esm/models/error/ErrorModel.js.map +1 -1
  91. package/esm/models/filters/FilterCollection.js +1 -4
  92. package/esm/models/filters/FilterCollection.js.map +1 -1
  93. package/esm/models/form/FormModel.js +3 -9
  94. package/esm/models/form/FormModel.js.map +1 -1
  95. package/esm/models/form/FormObjectModel.js +2 -4
  96. package/esm/models/form/FormObjectModel.js.map +1 -1
  97. package/esm/models/href/Href.js +3 -6
  98. package/esm/models/href/Href.js.map +1 -1
  99. package/esm/models/href/ListHref.js +1 -2
  100. package/esm/models/href/ListHref.js.map +1 -1
  101. package/esm/models/layouthint/LayoutHintCollection.js +3 -10
  102. package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
  103. package/esm/models/links/LinkCollection.js +6 -15
  104. package/esm/models/links/LinkCollection.js.map +1 -1
  105. package/esm/models/list/ListModel.js +2 -2
  106. package/esm/models/list/ListModel.js.map +1 -1
  107. package/esm/models/modelcatalog/ModelCategoryCollection.js +1 -2
  108. package/esm/models/modelcatalog/ModelCategoryCollection.js.map +1 -1
  109. package/esm/models/parameter/Parameter.js +2 -4
  110. package/esm/models/parameter/Parameter.js.map +1 -1
  111. package/esm/models/resolveModel.js +1 -2
  112. package/esm/models/resolveModel.js.map +1 -1
  113. package/esm/models/sorting/SortingModel.js +1 -2
  114. package/esm/models/sorting/SortingModel.js.map +1 -1
  115. package/esm/models/user/UserServicesModel.js +2 -2
  116. package/esm/models/user/UserServicesModel.js.map +1 -1
  117. package/esm/modularui/Authenticate.js +4 -6
  118. package/esm/modularui/Authenticate.js.flow +6 -6
  119. package/esm/modularui/Authenticate.js.map +1 -1
  120. package/esm/modularui/ModularUIRequest.js +1 -2
  121. package/esm/modularui/ModularUIRequest.js.map +1 -1
  122. package/esm/react/ErrorBoundary.js +2 -2
  123. package/esm/react/ErrorBoundary.js.map +1 -1
  124. package/esm/react/ErrorBoundaryFallback.js +13 -16
  125. package/esm/react/ErrorBoundaryFallback.js.map +1 -1
  126. package/esm/react/utils.js +1 -3
  127. package/esm/react/utils.js.map +1 -1
  128. package/esm/react-client/Init.js +20 -23
  129. package/esm/react-client/Init.js.map +1 -1
  130. package/esm/react-client/client.js +9 -13
  131. package/esm/react-client/client.js.map +1 -1
  132. package/esm/react-server/renderSSRComplete.js +9 -10
  133. package/esm/react-server/renderSSRComplete.js.map +1 -1
  134. package/esm/react-server/renderSSRMinimal.js +7 -8
  135. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  136. package/esm/react-server/serverNoSSR.js +11 -12
  137. package/esm/react-server/serverNoSSR.js.map +1 -1
  138. package/esm/react-server/serverSSR.js +11 -12
  139. package/esm/react-server/serverSSR.js.map +1 -1
  140. package/esm/react-server/serverUtil.js +1 -3
  141. package/esm/react-server/serverUtil.js.map +1 -1
  142. package/esm/react-theme/ThemeProvider.js +7 -11
  143. package/esm/react-theme/ThemeProvider.js.map +1 -1
  144. package/esm/react-theme/createTheme.js +3 -10
  145. package/esm/react-theme/createTheme.js.map +1 -1
  146. package/esm/react-theme/utils/background.js +3 -4
  147. package/esm/react-theme/utils/background.js.map +1 -1
  148. package/esm/react-theme/utils/colors.js +7 -16
  149. package/esm/react-theme/utils/colors.js.map +1 -1
  150. package/esm/react-theme/utils/contrast.js +11 -19
  151. package/esm/react-theme/utils/contrast.js.map +1 -1
  152. package/esm/react-theme/utils/corners.js +10 -16
  153. package/esm/react-theme/utils/corners.js.map +1 -1
  154. package/esm/react-theme/utils/spacers.js +15 -38
  155. package/esm/react-theme/utils/spacers.js.map +1 -1
  156. package/esm/react-theme/utils/themeProps.js +7 -22
  157. package/esm/react-theme/utils/themeProps.js.map +1 -1
  158. package/esm/redux/_i18n/I18nReducer.js +5 -8
  159. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  160. package/esm/redux/_modularui/ModularUIActions.js +19 -23
  161. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  162. package/esm/redux/_modularui/ModularUIConnector.js +4 -5
  163. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  164. package/esm/redux/_modularui/ModularUIReducer.js +14 -19
  165. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  166. package/esm/redux/_modularui/ModularUIUtils.js +1 -2
  167. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  168. package/esm/redux/_modularui/withModularUI.js +1 -2
  169. package/esm/redux/_modularui/withModularUI.js.map +1 -1
  170. package/esm/redux/_router/RouterReducer.js +1 -3
  171. package/esm/redux/_router/RouterReducer.js.map +1 -1
  172. package/esm/redux/actions/FormAttributeSet.js +34 -37
  173. package/esm/redux/actions/FormAttributeSet.js.map +1 -1
  174. package/esm/redux/actions/FormAutosubmit.js +1 -2
  175. package/esm/redux/actions/FormAutosubmit.js.map +1 -1
  176. package/esm/redux/actions/Preferences.js +8 -15
  177. package/esm/redux/actions/Preferences.js.map +1 -1
  178. package/esm/redux/connectors/CaseView.js +3 -6
  179. package/esm/redux/connectors/CaseView.js.map +1 -1
  180. package/esm/redux/connectors/ConceptDetail.js +4 -7
  181. package/esm/redux/connectors/ConceptDetail.js.map +1 -1
  182. package/esm/redux/connectors/ContentBrowser.js +3 -6
  183. package/esm/redux/connectors/ContentBrowser.js.map +1 -1
  184. package/esm/redux/connectors/ContentDetail.js +4 -7
  185. package/esm/redux/connectors/ContentDetail.js.map +1 -1
  186. package/esm/redux/connectors/ContentDetailSection.js +5 -8
  187. package/esm/redux/connectors/ContentDetailSection.js.map +1 -1
  188. package/esm/redux/connectors/Form.js +4 -5
  189. package/esm/redux/connectors/Form.js.map +1 -1
  190. package/esm/redux/connectors/FormAttributeSet.js +5 -8
  191. package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
  192. package/esm/redux/connectors/ListDetail.js +3 -6
  193. package/esm/redux/connectors/ListDetail.js.map +1 -1
  194. package/esm/redux/connectors/ModelCatalog.js +3 -6
  195. package/esm/redux/connectors/ModelCatalog.js.map +1 -1
  196. package/esm/redux/connectors/PanelRenderer.js +5 -6
  197. package/esm/redux/connectors/PanelRenderer.js.map +1 -1
  198. package/esm/redux/connectors/QuickSearch.js +3 -6
  199. package/esm/redux/connectors/QuickSearch.js.map +1 -1
  200. package/esm/redux/connectors/Tab.js +3 -6
  201. package/esm/redux/connectors/Tab.js.map +1 -1
  202. package/esm/redux/reducers/AuthReducer.js +1 -3
  203. package/esm/redux/reducers/AuthReducer.js.map +1 -1
  204. package/esm/redux/reducers/ErrorReducer.js +1 -3
  205. package/esm/redux/reducers/ErrorReducer.js.map +1 -1
  206. package/esm/redux/reducers/ModalsReducer.js +1 -3
  207. package/esm/redux/reducers/ModalsReducer.js.map +1 -1
  208. package/esm/redux/reducers/ModelCatalogReducer.js +1 -3
  209. package/esm/redux/reducers/ModelCatalogReducer.js.map +1 -1
  210. package/esm/redux/reducers/NotificationReducer.js +1 -3
  211. package/esm/redux/reducers/NotificationReducer.js.map +1 -1
  212. package/esm/redux/reducers/PreferencesReducer.js +1 -3
  213. package/esm/redux/reducers/PreferencesReducer.js.map +1 -1
  214. package/esm/redux/reducers/ProgressIndicatorReducer.js +1 -3
  215. package/esm/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  216. package/esm/redux/store/beforeRenderHooks.js +1 -3
  217. package/esm/redux/store/beforeRenderHooks.js.map +1 -1
  218. package/esm/utils/browser/Cache.js +1 -5
  219. package/esm/utils/browser/Cache.js.map +1 -1
  220. package/esm/utils/datetime/DateTimeUtil.js +45 -91
  221. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  222. package/esm/utils/fetch/xhr.js +1 -2
  223. package/esm/utils/fetch/xhr.js.map +1 -1
  224. package/esm/utils/helpers/repositoryResource.js +1 -3
  225. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  226. package/esm/utils/helpers/sanitizeHtml.js +3 -4
  227. package/esm/utils/helpers/sanitizeHtml.js.map +1 -1
  228. package/esm/utils/number/DecimalFormat.js +1 -2
  229. package/esm/utils/number/DecimalFormat.js.map +1 -1
  230. package/esm/utils/number/formatValue.js +1 -4
  231. package/esm/utils/number/formatValue.js.map +1 -1
  232. package/esm/utils/number/parseNumbers.js +2 -6
  233. package/esm/utils/number/parseNumbers.js.map +1 -1
  234. package/lib/constants/Settings.js +3 -14
  235. package/lib/constants/Settings.js.map +1 -1
  236. package/lib/exceptions/NotFoundException.js +1 -2
  237. package/lib/exceptions/NotFoundException.js.map +1 -1
  238. package/lib/hooks/useI18n.js +1 -6
  239. package/lib/hooks/useI18n.js.map +1 -1
  240. package/lib/hooks/useModal.js +3 -4
  241. package/lib/hooks/useModal.js.map +1 -1
  242. package/lib/hooks/useModelCatalog.js +10 -30
  243. package/lib/hooks/useModelCatalog.js.map +1 -1
  244. package/lib/hooks/useModularUI.js +4 -5
  245. package/lib/hooks/useModularUI.js.map +1 -1
  246. package/lib/hooks/useModularUIBasic.js +7 -8
  247. package/lib/hooks/useModularUIBasic.js.map +1 -1
  248. package/lib/i18n/Locale.js +2 -5
  249. package/lib/i18n/Locale.js.map +1 -1
  250. package/lib/i18n/Locales.js +2 -5
  251. package/lib/i18n/Locales.js.map +1 -1
  252. package/lib/i18n/Message.js +9 -10
  253. package/lib/i18n/Message.js.map +1 -1
  254. package/lib/i18n/withMessage.js +1 -6
  255. package/lib/i18n/withMessage.js.map +1 -1
  256. package/lib/models/actions/ActionCollection.js +3 -6
  257. package/lib/models/actions/ActionCollection.js.map +1 -1
  258. package/lib/models/actions/ActionModel.js +1 -4
  259. package/lib/models/actions/ActionModel.js.map +1 -1
  260. package/lib/models/application/ApplicationModel.js +2 -2
  261. package/lib/models/application/ApplicationModel.js.map +1 -1
  262. package/lib/models/attributes/AttributeCollection.js +4 -14
  263. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  264. package/lib/models/attributes/AttributeDataHelper.js +1 -2
  265. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  266. package/lib/models/attributes/AttributeSetModel.js +1 -5
  267. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  268. package/lib/models/attributes/CaptchaAttributeModel.js +2 -2
  269. package/lib/models/attributes/CaptchaAttributeModel.js.map +1 -1
  270. package/lib/models/attributes/ChoiceAttributeModel.js +1 -3
  271. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  272. package/lib/models/attributes/ChoiceAttributeOptionCollection.js +3 -9
  273. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  274. package/lib/models/attributes/ChoiceAttributeOptionModel.js +2 -8
  275. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  276. package/lib/models/attributes/PasswordAttributeModel.js +2 -2
  277. package/lib/models/attributes/PasswordAttributeModel.js.map +1 -1
  278. package/lib/models/attributes/UploadAttributeModel.js +2 -2
  279. package/lib/models/attributes/UploadAttributeModel.js.map +1 -1
  280. package/lib/models/attributes/input-constraints/ConstraintCollection.js +1 -2
  281. package/lib/models/attributes/input-constraints/ConstraintCollection.js.map +1 -1
  282. package/lib/models/attributes/input-constraints/ConstraintModel.js +1 -2
  283. package/lib/models/attributes/input-constraints/ConstraintModel.js.map +1 -1
  284. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js +1 -4
  285. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  286. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js +1 -6
  287. package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
  288. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js +1 -4
  289. package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
  290. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +1 -2
  291. package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
  292. package/lib/models/attributes/layouthint-rules/DependentAttribute.js +2 -2
  293. package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
  294. package/lib/models/base/BaseCollection.js +1 -2
  295. package/lib/models/base/BaseCollection.js.map +1 -1
  296. package/lib/models/base/BaseModel.js +6 -9
  297. package/lib/models/base/BaseModel.js.map +1 -1
  298. package/lib/models/base/ResourceModel.js +1 -2
  299. package/lib/models/base/ResourceModel.js.map +1 -1
  300. package/lib/models/concepts/BusinessScenarioModel.js +2 -2
  301. package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
  302. package/lib/models/concepts/ConceptDetailModel.js +1 -2
  303. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  304. package/lib/models/concepts/ConceptLinkModel.js +1 -3
  305. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  306. package/lib/models/concepts/ConceptRelationCollection.js +1 -4
  307. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  308. package/lib/models/concepts/ConceptRelationModel.js +1 -3
  309. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  310. package/lib/models/concepts/SourceReferenceCollection.js +1 -4
  311. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  312. package/lib/models/concepts/SourceReferenceModel.js +7 -3
  313. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  314. package/lib/models/content/ContentLinkModel.js +1 -3
  315. package/lib/models/content/ContentLinkModel.js.map +1 -1
  316. package/lib/models/content/ContentTOCModel.js +2 -2
  317. package/lib/models/content/ContentTOCModel.js.map +1 -1
  318. package/lib/models/contentconfiguration/ContentConfigurationElements.js +1 -2
  319. package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
  320. package/lib/models/error/ErrorModel.js +1 -3
  321. package/lib/models/error/ErrorModel.js.map +1 -1
  322. package/lib/models/filters/FilterCollection.js +1 -4
  323. package/lib/models/filters/FilterCollection.js.map +1 -1
  324. package/lib/models/form/FormModel.js +3 -9
  325. package/lib/models/form/FormModel.js.map +1 -1
  326. package/lib/models/form/FormObjectModel.js +2 -4
  327. package/lib/models/form/FormObjectModel.js.map +1 -1
  328. package/lib/models/href/Href.js +3 -6
  329. package/lib/models/href/Href.js.map +1 -1
  330. package/lib/models/href/ListHref.js +1 -2
  331. package/lib/models/href/ListHref.js.map +1 -1
  332. package/lib/models/layouthint/LayoutHintCollection.js +3 -10
  333. package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
  334. package/lib/models/links/LinkCollection.js +6 -15
  335. package/lib/models/links/LinkCollection.js.map +1 -1
  336. package/lib/models/list/ListModel.js +2 -2
  337. package/lib/models/list/ListModel.js.map +1 -1
  338. package/lib/models/modelcatalog/ModelCategoryCollection.js +1 -2
  339. package/lib/models/modelcatalog/ModelCategoryCollection.js.map +1 -1
  340. package/lib/models/parameter/Parameter.js +2 -4
  341. package/lib/models/parameter/Parameter.js.map +1 -1
  342. package/lib/models/resolveModel.js +1 -2
  343. package/lib/models/resolveModel.js.map +1 -1
  344. package/lib/models/sorting/SortingModel.js +1 -2
  345. package/lib/models/sorting/SortingModel.js.map +1 -1
  346. package/lib/models/user/UserServicesModel.js +2 -2
  347. package/lib/models/user/UserServicesModel.js.map +1 -1
  348. package/lib/modularui/Authenticate.js +4 -6
  349. package/lib/modularui/Authenticate.js.map +1 -1
  350. package/lib/modularui/ModularUIRequest.js +1 -2
  351. package/lib/modularui/ModularUIRequest.js.map +1 -1
  352. package/lib/react/ErrorBoundary.js +2 -2
  353. package/lib/react/ErrorBoundary.js.map +1 -1
  354. package/lib/react/ErrorBoundaryFallback.js +13 -16
  355. package/lib/react/ErrorBoundaryFallback.js.map +1 -1
  356. package/lib/react/utils.js +1 -3
  357. package/lib/react/utils.js.map +1 -1
  358. package/lib/react-client/Init.js +20 -23
  359. package/lib/react-client/Init.js.map +1 -1
  360. package/lib/react-client/client.js +9 -13
  361. package/lib/react-client/client.js.map +1 -1
  362. package/lib/react-server/renderSSRComplete.js +9 -10
  363. package/lib/react-server/renderSSRComplete.js.map +1 -1
  364. package/lib/react-server/renderSSRMinimal.js +7 -8
  365. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  366. package/lib/react-server/serverNoSSR.js +11 -12
  367. package/lib/react-server/serverNoSSR.js.map +1 -1
  368. package/lib/react-server/serverSSR.js +11 -12
  369. package/lib/react-server/serverSSR.js.map +1 -1
  370. package/lib/react-server/serverUtil.js +1 -3
  371. package/lib/react-server/serverUtil.js.map +1 -1
  372. package/lib/react-theme/ThemeProvider.js +7 -11
  373. package/lib/react-theme/ThemeProvider.js.map +1 -1
  374. package/lib/react-theme/createTheme.js +3 -10
  375. package/lib/react-theme/createTheme.js.map +1 -1
  376. package/lib/react-theme/utils/background.js +3 -4
  377. package/lib/react-theme/utils/background.js.map +1 -1
  378. package/lib/react-theme/utils/colors.js +7 -16
  379. package/lib/react-theme/utils/colors.js.map +1 -1
  380. package/lib/react-theme/utils/contrast.js +11 -19
  381. package/lib/react-theme/utils/contrast.js.map +1 -1
  382. package/lib/react-theme/utils/corners.js +10 -16
  383. package/lib/react-theme/utils/corners.js.map +1 -1
  384. package/lib/react-theme/utils/spacers.js +15 -38
  385. package/lib/react-theme/utils/spacers.js.map +1 -1
  386. package/lib/react-theme/utils/themeProps.js +7 -22
  387. package/lib/react-theme/utils/themeProps.js.map +1 -1
  388. package/lib/redux/_i18n/I18nReducer.js +5 -8
  389. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  390. package/lib/redux/_modularui/ModularUIActions.js +19 -23
  391. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  392. package/lib/redux/_modularui/ModularUIConnector.js +4 -5
  393. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  394. package/lib/redux/_modularui/ModularUIReducer.js +14 -19
  395. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  396. package/lib/redux/_modularui/ModularUIUtils.js +1 -2
  397. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  398. package/lib/redux/_modularui/withModularUI.js +1 -2
  399. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  400. package/lib/redux/_router/RouterReducer.js +1 -3
  401. package/lib/redux/_router/RouterReducer.js.map +1 -1
  402. package/lib/redux/actions/FormAttributeSet.js +34 -37
  403. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  404. package/lib/redux/actions/FormAutosubmit.js +1 -2
  405. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  406. package/lib/redux/actions/Preferences.js +8 -15
  407. package/lib/redux/actions/Preferences.js.map +1 -1
  408. package/lib/redux/connectors/CaseView.js +3 -6
  409. package/lib/redux/connectors/CaseView.js.map +1 -1
  410. package/lib/redux/connectors/ConceptDetail.js +4 -7
  411. package/lib/redux/connectors/ConceptDetail.js.map +1 -1
  412. package/lib/redux/connectors/ContentBrowser.js +3 -6
  413. package/lib/redux/connectors/ContentBrowser.js.map +1 -1
  414. package/lib/redux/connectors/ContentDetail.js +4 -7
  415. package/lib/redux/connectors/ContentDetail.js.map +1 -1
  416. package/lib/redux/connectors/ContentDetailSection.js +5 -8
  417. package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
  418. package/lib/redux/connectors/Form.js +4 -5
  419. package/lib/redux/connectors/Form.js.map +1 -1
  420. package/lib/redux/connectors/FormAttributeSet.js +5 -8
  421. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  422. package/lib/redux/connectors/ListDetail.js +3 -6
  423. package/lib/redux/connectors/ListDetail.js.map +1 -1
  424. package/lib/redux/connectors/ModelCatalog.js +3 -6
  425. package/lib/redux/connectors/ModelCatalog.js.map +1 -1
  426. package/lib/redux/connectors/PanelRenderer.js +5 -6
  427. package/lib/redux/connectors/PanelRenderer.js.map +1 -1
  428. package/lib/redux/connectors/QuickSearch.js +3 -6
  429. package/lib/redux/connectors/QuickSearch.js.map +1 -1
  430. package/lib/redux/connectors/Tab.js +3 -6
  431. package/lib/redux/connectors/Tab.js.map +1 -1
  432. package/lib/redux/reducers/AuthReducer.js +1 -3
  433. package/lib/redux/reducers/AuthReducer.js.map +1 -1
  434. package/lib/redux/reducers/ErrorReducer.js +1 -3
  435. package/lib/redux/reducers/ErrorReducer.js.map +1 -1
  436. package/lib/redux/reducers/ModalsReducer.js +1 -3
  437. package/lib/redux/reducers/ModalsReducer.js.map +1 -1
  438. package/lib/redux/reducers/ModelCatalogReducer.js +1 -3
  439. package/lib/redux/reducers/ModelCatalogReducer.js.map +1 -1
  440. package/lib/redux/reducers/NotificationReducer.js +1 -3
  441. package/lib/redux/reducers/NotificationReducer.js.map +1 -1
  442. package/lib/redux/reducers/PreferencesReducer.js +1 -3
  443. package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
  444. package/lib/redux/reducers/ProgressIndicatorReducer.js +1 -3
  445. package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
  446. package/lib/redux/store/beforeRenderHooks.js +1 -3
  447. package/lib/redux/store/beforeRenderHooks.js.map +1 -1
  448. package/lib/utils/browser/Cache.js +1 -5
  449. package/lib/utils/browser/Cache.js.map +1 -1
  450. package/lib/utils/datetime/DateTimeUtil.js +45 -91
  451. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  452. package/lib/utils/fetch/xhr.js +1 -2
  453. package/lib/utils/fetch/xhr.js.map +1 -1
  454. package/lib/utils/helpers/repositoryResource.js +1 -3
  455. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  456. package/lib/utils/helpers/sanitizeHtml.js +3 -4
  457. package/lib/utils/helpers/sanitizeHtml.js.map +1 -1
  458. package/lib/utils/number/DecimalFormat.js +1 -2
  459. package/lib/utils/number/DecimalFormat.js.map +1 -1
  460. package/lib/utils/number/formatValue.js +1 -4
  461. package/lib/utils/number/formatValue.js.map +1 -1
  462. package/lib/utils/number/parseNumbers.js +2 -6
  463. package/lib/utils/number/parseNumbers.js.map +1 -1
  464. package/package.json +23 -23
  465. package/src/models/concepts/SourceReferenceModel.js +6 -0
  466. package/src/modularui/Authenticate.js +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"NumberBoundaryConstraint.js","names":["_formatValue","_interopRequireDefault","require","_parseNumbers","INEXACT_NUMBER_ID","OUT_OF_RANGE_ID","BELOW_MINIMUM_ID","ABOVE_MAXIMUM_ID","NumberBoundaryConstraint","constructor","minNumber","arguments","length","undefined","maxNumber","groupingSeparator","decimalSeparator","format","_defineProperty2","default","_format","_groupingSeparator","_decimalSeparator","_minNumber","_maxNumber","id","hasValidation","defaultMessage","parameters","formatValue","isExactNumber","value","parsedNumber","parseToNumber","isSameOrAboveMinNumber","isNaN","isSameOrBelowMaxNumber","isBetweenNumbers","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/NumberBoundaryConstraint.js"],"sourcesContent":["// @flow\nimport formatValue from \"../../../utils/number/formatValue\";\nimport { parseToNumber } from \"../../../utils/number/parseNumbers\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst INEXACT_NUMBER_ID = \"Constraint.Number.InexactNumber\";\nconst OUT_OF_RANGE_ID = \"Constraint.Number.OutOfRange\";\nconst BELOW_MINIMUM_ID = \"Constraint.Number.BelowMinimum\";\nconst ABOVE_MAXIMUM_ID = \"Constraint.Number.AboveMaximum\";\n\n/**\n */\nclass NumberBoundaryConstraint implements IConstraintModel {\n _minNumber: ?number;\n _maxNumber: ?number;\n _groupingSeparator: string = \",\";\n _decimalSeparator: string = \".\";\n _format: string = \"\";\n\n /**\n */\n constructor(\n minNumber: ?number = null,\n maxNumber: ?number = null,\n groupingSeparator: string,\n decimalSeparator: string,\n format: string | null,\n ) {\n this._format = format ?? \"\";\n this._groupingSeparator = groupingSeparator;\n this._decimalSeparator = decimalSeparator;\n this._minNumber = minNumber;\n this._maxNumber = maxNumber;\n }\n\n /**\n */\n get id(): string {\n if (\n this.minNumber !== null &&\n this.maxNumber !== null &&\n this.minNumber === this.maxNumber\n ) {\n return INEXACT_NUMBER_ID;\n } else if (this.minNumber !== null && this.maxNumber !== null) {\n return OUT_OF_RANGE_ID;\n } else if (this.minNumber !== null) {\n return BELOW_MINIMUM_ID;\n } else if (this.maxNumber !== null) {\n return ABOVE_MAXIMUM_ID;\n }\n\n return \"Constraint.Number.NoBoundaryConstraint\";\n }\n\n /**\n */\n get minNumber(): ?number {\n return this._minNumber;\n }\n\n /**\n */\n get maxNumber(): ?number {\n return this._maxNumber;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return \"Number must be precisely ${min-number}\"; // NOSONAR\n case OUT_OF_RANGE_ID:\n return \"Must be between ${min-number} and ${max-number}\"; // NOSONAR\n case BELOW_MINIMUM_ID:\n return \"The number must be larger than ${min-number}\"; // NOSONAR\n case ABOVE_MAXIMUM_ID:\n return \"The number must be smaller than ${max-number}\"; // NOSONAR\n default:\n return \"\";\n }\n }\n\n /**\n */\n get parameters(): {\n \"max-number\": null | string,\n \"min-number\": null | string,\n } {\n return {\n \"min-number\":\n this.minNumber === null\n ? null\n : formatValue(\n this.minNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n ),\n \"max-number\":\n this.maxNumber === null\n ? null\n : formatValue(\n this.maxNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n ),\n };\n }\n\n /**\n */\n isExactNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n return parsedNumber === this.minNumber;\n }\n\n /**\n */\n isSameOrAboveMinNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.minNumber != null && parsedNumber >= this.minNumber;\n }\n\n /**\n */\n isSameOrBelowMaxNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.maxNumber != null && parsedNumber <= this.maxNumber;\n }\n\n /**\n */\n isBetweenNumbers(value: string): boolean {\n return (\n this.isSameOrAboveMinNumber(value) && this.isSameOrBelowMaxNumber(value)\n );\n }\n\n /**\n */\n validate(value: string): boolean {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return this.isExactNumber(value);\n case OUT_OF_RANGE_ID:\n return this.isBetweenNumbers(value);\n case BELOW_MINIMUM_ID:\n return this.isSameOrAboveMinNumber(value);\n case ABOVE_MAXIMUM_ID:\n return this.isSameOrBelowMaxNumber(value);\n default:\n return true;\n }\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberBoundaryConstraint;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberBoundaryConstraint.js","names":["_formatValue","_interopRequireDefault","require","_parseNumbers","INEXACT_NUMBER_ID","OUT_OF_RANGE_ID","BELOW_MINIMUM_ID","ABOVE_MAXIMUM_ID","NumberBoundaryConstraint","constructor","minNumber","maxNumber","groupingSeparator","decimalSeparator","format","_defineProperty2","default","_format","_groupingSeparator","_decimalSeparator","_minNumber","_maxNumber","id","hasValidation","defaultMessage","parameters","formatValue","isExactNumber","value","parsedNumber","parseToNumber","isSameOrAboveMinNumber","isNaN","isSameOrBelowMaxNumber","isBetweenNumbers","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/NumberBoundaryConstraint.js"],"sourcesContent":["// @flow\nimport formatValue from \"../../../utils/number/formatValue\";\nimport { parseToNumber } from \"../../../utils/number/parseNumbers\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst INEXACT_NUMBER_ID = \"Constraint.Number.InexactNumber\";\nconst OUT_OF_RANGE_ID = \"Constraint.Number.OutOfRange\";\nconst BELOW_MINIMUM_ID = \"Constraint.Number.BelowMinimum\";\nconst ABOVE_MAXIMUM_ID = \"Constraint.Number.AboveMaximum\";\n\n/**\n */\nclass NumberBoundaryConstraint implements IConstraintModel {\n _minNumber: ?number;\n _maxNumber: ?number;\n _groupingSeparator: string = \",\";\n _decimalSeparator: string = \".\";\n _format: string = \"\";\n\n /**\n */\n constructor(\n minNumber: ?number = null,\n maxNumber: ?number = null,\n groupingSeparator: string,\n decimalSeparator: string,\n format: string | null,\n ) {\n this._format = format ?? \"\";\n this._groupingSeparator = groupingSeparator;\n this._decimalSeparator = decimalSeparator;\n this._minNumber = minNumber;\n this._maxNumber = maxNumber;\n }\n\n /**\n */\n get id(): string {\n if (\n this.minNumber !== null &&\n this.maxNumber !== null &&\n this.minNumber === this.maxNumber\n ) {\n return INEXACT_NUMBER_ID;\n } else if (this.minNumber !== null && this.maxNumber !== null) {\n return OUT_OF_RANGE_ID;\n } else if (this.minNumber !== null) {\n return BELOW_MINIMUM_ID;\n } else if (this.maxNumber !== null) {\n return ABOVE_MAXIMUM_ID;\n }\n\n return \"Constraint.Number.NoBoundaryConstraint\";\n }\n\n /**\n */\n get minNumber(): ?number {\n return this._minNumber;\n }\n\n /**\n */\n get maxNumber(): ?number {\n return this._maxNumber;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return \"Number must be precisely ${min-number}\"; // NOSONAR\n case OUT_OF_RANGE_ID:\n return \"Must be between ${min-number} and ${max-number}\"; // NOSONAR\n case BELOW_MINIMUM_ID:\n return \"The number must be larger than ${min-number}\"; // NOSONAR\n case ABOVE_MAXIMUM_ID:\n return \"The number must be smaller than ${max-number}\"; // NOSONAR\n default:\n return \"\";\n }\n }\n\n /**\n */\n get parameters(): {\n \"max-number\": null | string,\n \"min-number\": null | string,\n } {\n return {\n \"min-number\":\n this.minNumber === null\n ? null\n : formatValue(\n this.minNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n ),\n \"max-number\":\n this.maxNumber === null\n ? null\n : formatValue(\n this.maxNumber,\n this.format,\n this.groupingSeparator,\n this.decimalSeparator,\n ),\n };\n }\n\n /**\n */\n isExactNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n return parsedNumber === this.minNumber;\n }\n\n /**\n */\n isSameOrAboveMinNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.minNumber != null && parsedNumber >= this.minNumber;\n }\n\n /**\n */\n isSameOrBelowMaxNumber(value: string): boolean {\n const parsedNumber = parseToNumber(\n value,\n this.groupingSeparator,\n this.decimalSeparator,\n );\n\n if (isNaN(parsedNumber) || parsedNumber == null) {\n return false;\n }\n\n return this.maxNumber != null && parsedNumber <= this.maxNumber;\n }\n\n /**\n */\n isBetweenNumbers(value: string): boolean {\n return (\n this.isSameOrAboveMinNumber(value) && this.isSameOrBelowMaxNumber(value)\n );\n }\n\n /**\n */\n validate(value: string): boolean {\n switch (this.id) {\n case INEXACT_NUMBER_ID:\n return this.isExactNumber(value);\n case OUT_OF_RANGE_ID:\n return this.isBetweenNumbers(value);\n case BELOW_MINIMUM_ID:\n return this.isSameOrAboveMinNumber(value);\n case ABOVE_MAXIMUM_ID:\n return this.isSameOrBelowMaxNumber(value);\n default:\n return true;\n }\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberBoundaryConstraint;\n"],"mappings":"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","ignoreList":[]}
@@ -16,10 +16,7 @@ const DEFAULT_GROUPING_SIZE = 3;
16
16
  class NumberGroupingConstraint {
17
17
  /**
18
18
  */
19
- constructor() {
20
- let groupingSeparator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ",";
21
- let decimalSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ".";
22
- let format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "0";
19
+ constructor(groupingSeparator = ",", decimalSeparator = ".", format = "0") {
23
20
  (0, _defineProperty2.default)(this, "_decimalSeparator", void 0);
24
21
  (0, _defineProperty2.default)(this, "_groupingSeparator", void 0);
25
22
  (0, _defineProperty2.default)(this, "_format", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"NumberGroupingConstraint.js","names":["_DecimalFormat","_interopRequireDefault","require","DEFAULT_GROUPING_SIZE","NumberGroupingConstraint","constructor","groupingSeparator","arguments","length","undefined","decimalSeparator","format","_defineProperty2","default","_decimalSeparator","_groupingSeparator","_format","id","groupSize","fromFormat","DecimalFormat","comma","hasValidation","defaultMessage","parameters","hasCorrectGrouping","value","absStringValue","replace","_includes","call","integer","indexOf","substring","groups","split","_slice","every","group","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/NumberGroupingConstraint.js"],"sourcesContent":["// @flow\nimport DecimalFormat from \"../../../utils/number/DecimalFormat\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst DEFAULT_GROUPING_SIZE = 3;\n\n/**\n */\nclass NumberGroupingConstraint implements IConstraintModel {\n _decimalSeparator: string;\n _groupingSeparator: string;\n _format: string;\n\n /**\n */\n constructor(\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\",\n format: ?string = \"0\",\n ) {\n this._decimalSeparator = decimalSeparator;\n this._groupingSeparator = groupingSeparator;\n this._format = format ?? \"0\";\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Number.GroupingSeparator\";\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupSize(): number {\n if (this.format) {\n const fromFormat = new DecimalFormat(this.format).comma;\n if (fromFormat > 0) {\n return fromFormat;\n }\n }\n\n return DEFAULT_GROUPING_SIZE;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Group divider '${group-divider}' must be correctly placed\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { \"group-divider\": string } {\n return { \"group-divider\": this.groupingSeparator };\n }\n\n /**\n */\n // $FlowFixMe\n hasCorrectGrouping(value: string) {\n // A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.\n const absStringValue = value.replace(\"-\", \"\").replace(\"+\", \"\");\n\n if (!absStringValue.includes(this.groupingSeparator)) {\n return true;\n }\n\n let integer = absStringValue;\n if (\n this.decimalSeparator !== \"\" &&\n absStringValue.includes(this.decimalSeparator)\n ) {\n // decimal before grouping\n if (\n absStringValue.indexOf(this.decimalSeparator) <\n absStringValue.indexOf(this.groupingSeparator)\n ) {\n return false;\n }\n\n integer = absStringValue.substring(\n 0,\n absStringValue.indexOf(this.decimalSeparator),\n );\n }\n\n let groups = integer.split(this.groupingSeparator);\n\n // when the first item is smaller than group size, remove it from check\n if (groups[0].length < this.groupSize) {\n groups = groups.slice(1);\n }\n\n return groups.every((group) => group.length === this.groupSize);\n }\n\n /**\n */\n validate(value: string | number): boolean {\n return (\n this.groupingSeparator === \"\" ||\n typeof value !== \"string\" ||\n !value.includes(this.groupingSeparator) ||\n this.hasCorrectGrouping(value)\n );\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberGroupingConstraint;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NumberGroupingConstraint.js","names":["_DecimalFormat","_interopRequireDefault","require","DEFAULT_GROUPING_SIZE","NumberGroupingConstraint","constructor","groupingSeparator","decimalSeparator","format","_defineProperty2","default","_decimalSeparator","_groupingSeparator","_format","id","groupSize","fromFormat","DecimalFormat","comma","hasValidation","defaultMessage","parameters","hasCorrectGrouping","value","absStringValue","replace","_includes","call","integer","indexOf","substring","groups","split","length","_slice","every","group","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/NumberGroupingConstraint.js"],"sourcesContent":["// @flow\nimport DecimalFormat from \"../../../utils/number/DecimalFormat\";\n\nimport type { IConstraintModel } from \"../../types\";\n\nconst DEFAULT_GROUPING_SIZE = 3;\n\n/**\n */\nclass NumberGroupingConstraint implements IConstraintModel {\n _decimalSeparator: string;\n _groupingSeparator: string;\n _format: string;\n\n /**\n */\n constructor(\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\",\n format: ?string = \"0\",\n ) {\n this._decimalSeparator = decimalSeparator;\n this._groupingSeparator = groupingSeparator;\n this._format = format ?? \"0\";\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Number.GroupingSeparator\";\n }\n\n /**\n */\n get decimalSeparator(): string {\n return this._decimalSeparator;\n }\n\n /**\n */\n get groupingSeparator(): string {\n return this._groupingSeparator;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get groupSize(): number {\n if (this.format) {\n const fromFormat = new DecimalFormat(this.format).comma;\n if (fromFormat > 0) {\n return fromFormat;\n }\n }\n\n return DEFAULT_GROUPING_SIZE;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Group divider '${group-divider}' must be correctly placed\"; // NOSONAR\n }\n\n /**\n */\n get parameters(): { \"group-divider\": string } {\n return { \"group-divider\": this.groupingSeparator };\n }\n\n /**\n */\n // $FlowFixMe\n hasCorrectGrouping(value: string) {\n // A negative or a negative value may cause an incorrect group length compared to groupSize. To avoid this, the negative or positive sign must be removed from the value.\n const absStringValue = value.replace(\"-\", \"\").replace(\"+\", \"\");\n\n if (!absStringValue.includes(this.groupingSeparator)) {\n return true;\n }\n\n let integer = absStringValue;\n if (\n this.decimalSeparator !== \"\" &&\n absStringValue.includes(this.decimalSeparator)\n ) {\n // decimal before grouping\n if (\n absStringValue.indexOf(this.decimalSeparator) <\n absStringValue.indexOf(this.groupingSeparator)\n ) {\n return false;\n }\n\n integer = absStringValue.substring(\n 0,\n absStringValue.indexOf(this.decimalSeparator),\n );\n }\n\n let groups = integer.split(this.groupingSeparator);\n\n // when the first item is smaller than group size, remove it from check\n if (groups[0].length < this.groupSize) {\n groups = groups.slice(1);\n }\n\n return groups.every((group) => group.length === this.groupSize);\n }\n\n /**\n */\n validate(value: string | number): boolean {\n return (\n this.groupingSeparator === \"\" ||\n typeof value !== \"string\" ||\n !value.includes(this.groupingSeparator) ||\n this.hasCorrectGrouping(value)\n );\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default NumberGroupingConstraint;\n"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
14
14
  class PasswordThreeConsecutiveCharactersNotAllowedConstraint {
15
15
  /**
16
16
  */
17
- constructor() {
18
- let maxSequence = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2;
17
+ constructor(maxSequence = 2) {
19
18
  (0, _defineProperty2.default)(this, "_maxSequence", void 0);
20
19
  this._maxSequence = maxSequence;
21
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PasswordThreeConsecutiveCharactersNotAllowedConstraint.js","names":["PasswordThreeConsecutiveCharactersNotAllowedConstraint","constructor","maxSequence","arguments","length","undefined","_defineProperty2","default","_maxSequence","id","hasValidation","defaultMessage","parameters","hasNoSequenceOfIdenticalCharacters","value","_context","_filter","split","call","char","i","indexOf","some","sequence","_repeat","_includes","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass PasswordThreeConsecutiveCharactersNotAllowedConstraint\n implements IConstraintModel\n{\n _maxSequence: number;\n\n /**\n */\n constructor(maxSequence: number = 2) {\n this._maxSequence = maxSequence;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Password.ThreeConsecutiveCharactersNotAllowed\";\n }\n\n /**\n */\n get maxSequence(): number {\n return this._maxSequence;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Must not contain any character more than twice consecutively\";\n }\n\n /**\n */\n get parameters(): { \"max-sequence\": number } {\n return {\n \"max-sequence\": this.maxSequence,\n };\n }\n\n /**\n */\n hasNoSequenceOfIdenticalCharacters(value: string): boolean {\n return !value\n .split(\"\")\n .filter((char, i) => value.indexOf(char) === i)\n .some((char) => {\n const sequence = char.repeat(this.maxSequence + 1);\n return value.includes(sequence);\n });\n }\n\n /**\n */\n validate(value: string): boolean {\n return this.hasNoSequenceOfIdenticalCharacters(value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default PasswordThreeConsecutiveCharactersNotAllowedConstraint;\n"],"mappings":";;;;;;;;;;;AAGA;AACA;AACA,MAAMA,sDAAsD,CAE5D;EAGE;AACF;EACEC,WAAWA,CAAA,EAA0B;IAAA,IAAzBC,WAAmB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;IAAA,IAAAG,gBAAA,CAAAC,OAAA;IACjC,IAAI,CAACC,YAAY,GAAGN,WAAW;EACjC;;EAEA;AACF;EACE,IAAIO,EAAEA,CAAA,EAAW;IACf,OAAO,0DAA0D;EACnE;;EAEA;AACF;EACE,IAAIP,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACM,YAAY;EAC1B;;EAEA;AACF;EACEE,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,OAAO,8DAA8D;EACvE;;EAEA;AACF;EACE,IAAIC,UAAUA,CAAA,EAA+B;IAC3C,OAAO;MACL,cAAc,EAAE,IAAI,CAACV;IACvB,CAAC;EACH;;EAEA;AACF;EACEW,kCAAkCA,CAACC,KAAa,EAAW;IAAA,IAAAC,QAAA;IACzD,OAAO,CAAC,IAAAC,OAAA,CAAAT,OAAA,EAAAQ,QAAA,GAAAD,KAAK,CACVG,KAAK,CAAC,EAAE,CAAC,EAAAC,IAAA,CAAAH,QAAA,EACF,CAACI,IAAI,EAAEC,CAAC,KAAKN,KAAK,CAACO,OAAO,CAACF,IAAI,CAAC,KAAKC,CAAC,CAAC,CAC9CE,IAAI,CAAEH,IAAI,IAAK;MACd,MAAMI,QAAQ,GAAG,IAAAC,OAAA,CAAAjB,OAAA,EAAAY,IAAI,EAAAD,IAAA,CAAJC,IAAI,EAAQ,IAAI,CAACjB,WAAW,GAAG,CAAC,CAAC;MAClD,OAAO,IAAAuB,SAAA,CAAAlB,OAAA,EAAAO,KAAK,EAAAI,IAAA,CAALJ,KAAK,EAAUS,QAAQ,CAAC;IACjC,CAAC,CAAC;EACN;;EAEA;AACF;EACEG,QAAQA,CAACZ,KAAa,EAAW;IAC/B,OAAO,IAAI,CAACD,kCAAkC,CAACC,KAAK,CAAC;EACvD;;EAEA;AACF;EACE,IAAIa,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEcP,sDAAsD","ignoreList":[]}
1
+ {"version":3,"file":"PasswordThreeConsecutiveCharactersNotAllowedConstraint.js","names":["PasswordThreeConsecutiveCharactersNotAllowedConstraint","constructor","maxSequence","_defineProperty2","default","_maxSequence","id","hasValidation","defaultMessage","parameters","hasNoSequenceOfIdenticalCharacters","value","_context","_filter","split","call","char","i","indexOf","some","sequence","_repeat","_includes","validate","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js"],"sourcesContent":["// @flow\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass PasswordThreeConsecutiveCharactersNotAllowedConstraint\n implements IConstraintModel\n{\n _maxSequence: number;\n\n /**\n */\n constructor(maxSequence: number = 2) {\n this._maxSequence = maxSequence;\n }\n\n /**\n */\n get id(): string {\n return \"Constraint.Password.ThreeConsecutiveCharactersNotAllowed\";\n }\n\n /**\n */\n get maxSequence(): number {\n return this._maxSequence;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n return \"Must not contain any character more than twice consecutively\";\n }\n\n /**\n */\n get parameters(): { \"max-sequence\": number } {\n return {\n \"max-sequence\": this.maxSequence,\n };\n }\n\n /**\n */\n hasNoSequenceOfIdenticalCharacters(value: string): boolean {\n return !value\n .split(\"\")\n .filter((char, i) => value.indexOf(char) === i)\n .some((char) => {\n const sequence = char.repeat(this.maxSequence + 1);\n return value.includes(sequence);\n });\n }\n\n /**\n */\n validate(value: string): boolean {\n return this.hasNoSequenceOfIdenticalCharacters(value);\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default PasswordThreeConsecutiveCharactersNotAllowedConstraint;\n"],"mappings":";;;;;;;;;;;AAGA;AACA;AACA,MAAMA,sDAAsD,CAE5D;EAGE;AACF;EACEC,WAAWA,CAACC,WAAmB,GAAG,CAAC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IACnC,IAAI,CAACC,YAAY,GAAGH,WAAW;EACjC;;EAEA;AACF;EACE,IAAII,EAAEA,CAAA,EAAW;IACf,OAAO,0DAA0D;EACnE;;EAEA;AACF;EACE,IAAIJ,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACG,YAAY;EAC1B;;EAEA;AACF;EACEE,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,OAAO,8DAA8D;EACvE;;EAEA;AACF;EACE,IAAIC,UAAUA,CAAA,EAA+B;IAC3C,OAAO;MACL,cAAc,EAAE,IAAI,CAACP;IACvB,CAAC;EACH;;EAEA;AACF;EACEQ,kCAAkCA,CAACC,KAAa,EAAW;IAAA,IAAAC,QAAA;IACzD,OAAO,CAAC,IAAAC,OAAA,CAAAT,OAAA,EAAAQ,QAAA,GAAAD,KAAK,CACVG,KAAK,CAAC,EAAE,CAAC,EAAAC,IAAA,CAAAH,QAAA,EACF,CAACI,IAAI,EAAEC,CAAC,KAAKN,KAAK,CAACO,OAAO,CAACF,IAAI,CAAC,KAAKC,CAAC,CAAC,CAC9CE,IAAI,CAAEH,IAAI,IAAK;MACd,MAAMI,QAAQ,GAAG,IAAAC,OAAA,CAAAjB,OAAA,EAAAY,IAAI,EAAAD,IAAA,CAAJC,IAAI,EAAQ,IAAI,CAACd,WAAW,GAAG,CAAC,CAAC;MAClD,OAAO,IAAAoB,SAAA,CAAAlB,OAAA,EAAAO,KAAK,EAAAI,IAAA,CAALJ,KAAK,EAAUS,QAAQ,CAAC;IACjC,CAAC,CAAC;EACN;;EAEA;AACF;EACEG,QAAQA,CAACZ,KAAa,EAAW;IAC/B,OAAO,IAAI,CAACD,kCAAkC,CAACC,KAAK,CAAC;EACvD;;EAEA;AACF;EACE,IAAIa,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEcJ,sDAAsD","ignoreList":[]}
@@ -27,8 +27,8 @@ const HIDE = "hide";
27
27
  * Depending attributes hint logic
28
28
  */
29
29
  class DependentAttribute extends _BaseLayoutHintRule.default {
30
- constructor() {
31
- super(...arguments);
30
+ constructor(...args) {
31
+ super(...args);
32
32
  (0, _defineProperty2.default)(this, "_action", void 0);
33
33
  (0, _defineProperty2.default)(this, "_control", void 0);
34
34
  (0, _defineProperty2.default)(this, "_operator", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"DependentAttribute.js","names":["_BaseLayoutHintRule","_interopRequireDefault","require","_constants","_ChoiceAttributeModel","_BooleanAttributeModel","_exceptions","EQUALS","INCLUDES","NOT_EQUALS","NOT_INCLUDES","NOT_IS_EMPTY","IS_EMPTY","SHOW","HIDE","DependentAttribute","BaseLayoutHintRule","constructor","arguments","_defineProperty2","default","isApplicableForHint","hint","regex","RegExp","DEPENDENT_ATTRIBUTE","test","getRuleInstance","initHint","rule","OPERATORS","DEPENDENT_ATTRIBUTE_CONTROL","isEmpyNotIsEmptRegex","result","match","action","control","operator","options","ConfigurationException","_action","_control","_operator","_options","_context","_map","split","call","option","_trim","processEqualsOptions","controlAttribute","ChoiceAttributeModel","BooleanAttributeModel","every","_context2","_includes","selected","processIncludesOptions","some","_context3","handleOperator","length","getControlAttribute","attributes","attribute","getAttributeByLayoutHint","process","processLayoutHintRules","isHidden","hide","label","_default","exports"],"sources":["../../../../src/models/attributes/layouthint-rules/DependentAttribute.js"],"sourcesContent":["// @flow\nimport BaseLayoutHintRule from \"./BaseLayoutHintRule\";\n\nimport {\n DEPENDENT_ATTRIBUTE_CONTROL,\n DEPENDENT_ATTRIBUTE,\n} from \"../../../constants\";\n\nimport ChoiceAttributeModel from \"../ChoiceAttributeModel\";\nimport BooleanAttributeModel from \"../BooleanAttributeModel\";\n\nimport { ConfigurationException } from \"../../../exceptions\";\n\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\nconst EQUALS = \"equals\";\nconst INCLUDES = \"includes\";\nconst NOT_EQUALS = \"notEquals\";\nconst NOT_INCLUDES = \"notIncludes\";\nconst NOT_IS_EMPTY = \"notIsEmpty\";\nconst IS_EMPTY = \"isEmpty\";\n\nconst SHOW = \"show\";\nconst HIDE = \"hide\";\n\n/**\n * Depending attributes hint logic\n */\nclass DependentAttribute extends BaseLayoutHintRule {\n _action: string;\n _control: string;\n _operator: string;\n _options: Array<string>;\n\n /**\n */\n static checkHintApplicability: boolean = true;\n\n /**\n */\n static isApplicableForHint(hint: string): boolean {\n const regex = new RegExp(\n `^${DEPENDENT_ATTRIBUTE}\\\\s?(${SHOW}|${HIDE})`,\n \"i\",\n );\n\n return regex.test(hint);\n }\n\n /**\n * Used on initHint to create an instance of this rule\n */\n static getRuleInstance(): DependentAttribute {\n return new DependentAttribute();\n }\n\n /**\n */\n static initHint(hint: string): any {\n const rule = this.getRuleInstance();\n\n const OPERATORS = `${EQUALS}|${INCLUDES}|${NOT_EQUALS}|${NOT_INCLUDES}|${NOT_IS_EMPTY}|${IS_EMPTY}`;\n const regex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})\\\\s(.*)`,\n \"i\",\n );\n const isEmpyNotIsEmptRegex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})`,\n \"i\",\n );\n\n const result = hint.match(regex)\n ? hint.match(regex)\n : hint.match(isEmpyNotIsEmptRegex);\n\n if (result) {\n rule.action = result[1];\n rule.control = result[2];\n rule.operator = result[3];\n rule.options = !result[4] ? \"\" : result[4];\n } else {\n throw new ConfigurationException(\n `No dependent information found on layout hint: ${hint}`,\n );\n }\n\n return rule;\n }\n\n /**\n */\n get action(): string {\n return this._action;\n }\n\n /**\n */\n set action(action: string) {\n this._action = action;\n }\n\n /**\n */\n get control(): string {\n return this._control;\n }\n\n /**\n */\n set control(control: string) {\n this._control = control;\n }\n\n /**\n */\n get operator(): string {\n return this._operator;\n }\n\n /**\n */\n set operator(operator: string) {\n this._operator = operator;\n }\n\n /**\n */\n get options(): Array<string> {\n return this._options;\n }\n\n /**\n */\n set options(options: string): void {\n this._options = options.split(\"|\").map((option) => option.trim());\n }\n\n /**\n */\n processEqualsOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (\n controlAttribute instanceof ChoiceAttributeModel ||\n controlAttribute instanceof BooleanAttributeModel\n ) {\n return this.options.every((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with equals operator must be a choice, string or number attribute\",\n );\n }\n\n /**\n */\n processIncludesOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (controlAttribute instanceof ChoiceAttributeModel) {\n return this.options.some((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with includes operator must be a choice attribute\",\n );\n }\n\n /**\n */\n handleOperator(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n switch (this.operator) {\n case EQUALS:\n return this.processEqualsOptions(controlAttribute);\n case INCLUDES:\n return this.processIncludesOptions(controlAttribute);\n case NOT_EQUALS:\n return !this.processEqualsOptions(controlAttribute);\n case NOT_INCLUDES:\n return !this.processIncludesOptions(controlAttribute);\n case NOT_IS_EMPTY:\n return controlAttribute?.selected.length !== 0;\n case IS_EMPTY:\n return controlAttribute?.selected.length === 0;\n default:\n throw new ConfigurationException(\n `Unsupported operator for dependent question: ${this.operator}`,\n );\n }\n }\n\n /**\n */\n getControlAttribute(\n attributes: AttributeCollection,\n ): ChoiceAttributeModel | BooleanAttributeModel | null {\n const attribute = attributes.getAttributeByLayoutHint(\n `${DEPENDENT_ATTRIBUTE_CONTROL}:${this.control}`,\n `${DEPENDENT_ATTRIBUTE_CONTROL}: ${this.control}`,\n );\n\n if (\n attribute instanceof ChoiceAttributeModel ||\n attribute instanceof BooleanAttributeModel\n ) {\n return attribute;\n }\n\n return null;\n }\n\n /**\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n const controlAttribute = this.getControlAttribute(attributes);\n if (!controlAttribute) {\n return;\n }\n\n controlAttribute.processLayoutHintRules(attributes);\n if (controlAttribute.isHidden) {\n attribute.hide();\n return;\n }\n\n const result = this.handleOperator(controlAttribute);\n if (this.action === SHOW) {\n attribute.isHidden = !result;\n } else if (this.action === HIDE) {\n attribute.isHidden = result;\n } else {\n throw new ConfigurationException(\n `Unsupported action ${this.action} for dependent question on attribute: ${attribute.label}`,\n );\n }\n }\n}\n\nexport default DependentAttribute;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DependentAttribute.js","names":["_BaseLayoutHintRule","_interopRequireDefault","require","_constants","_ChoiceAttributeModel","_BooleanAttributeModel","_exceptions","EQUALS","INCLUDES","NOT_EQUALS","NOT_INCLUDES","NOT_IS_EMPTY","IS_EMPTY","SHOW","HIDE","DependentAttribute","BaseLayoutHintRule","constructor","args","_defineProperty2","default","isApplicableForHint","hint","regex","RegExp","DEPENDENT_ATTRIBUTE","test","getRuleInstance","initHint","rule","OPERATORS","DEPENDENT_ATTRIBUTE_CONTROL","isEmpyNotIsEmptRegex","result","match","action","control","operator","options","ConfigurationException","_action","_control","_operator","_options","_context","_map","split","call","option","_trim","processEqualsOptions","controlAttribute","ChoiceAttributeModel","BooleanAttributeModel","every","_context2","_includes","selected","processIncludesOptions","some","_context3","handleOperator","length","getControlAttribute","attributes","attribute","getAttributeByLayoutHint","process","processLayoutHintRules","isHidden","hide","label","_default","exports"],"sources":["../../../../src/models/attributes/layouthint-rules/DependentAttribute.js"],"sourcesContent":["// @flow\nimport BaseLayoutHintRule from \"./BaseLayoutHintRule\";\n\nimport {\n DEPENDENT_ATTRIBUTE_CONTROL,\n DEPENDENT_ATTRIBUTE,\n} from \"../../../constants\";\n\nimport ChoiceAttributeModel from \"../ChoiceAttributeModel\";\nimport BooleanAttributeModel from \"../BooleanAttributeModel\";\n\nimport { ConfigurationException } from \"../../../exceptions\";\n\nimport type AttributeCollection from \"../AttributeCollection\";\nimport type AttributeModel from \"../AttributeModel\";\n\nconst EQUALS = \"equals\";\nconst INCLUDES = \"includes\";\nconst NOT_EQUALS = \"notEquals\";\nconst NOT_INCLUDES = \"notIncludes\";\nconst NOT_IS_EMPTY = \"notIsEmpty\";\nconst IS_EMPTY = \"isEmpty\";\n\nconst SHOW = \"show\";\nconst HIDE = \"hide\";\n\n/**\n * Depending attributes hint logic\n */\nclass DependentAttribute extends BaseLayoutHintRule {\n _action: string;\n _control: string;\n _operator: string;\n _options: Array<string>;\n\n /**\n */\n static checkHintApplicability: boolean = true;\n\n /**\n */\n static isApplicableForHint(hint: string): boolean {\n const regex = new RegExp(\n `^${DEPENDENT_ATTRIBUTE}\\\\s?(${SHOW}|${HIDE})`,\n \"i\",\n );\n\n return regex.test(hint);\n }\n\n /**\n * Used on initHint to create an instance of this rule\n */\n static getRuleInstance(): DependentAttribute {\n return new DependentAttribute();\n }\n\n /**\n */\n static initHint(hint: string): any {\n const rule = this.getRuleInstance();\n\n const OPERATORS = `${EQUALS}|${INCLUDES}|${NOT_EQUALS}|${NOT_INCLUDES}|${NOT_IS_EMPTY}|${IS_EMPTY}`;\n const regex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})\\\\s(.*)`,\n \"i\",\n );\n const isEmpyNotIsEmptRegex = new RegExp(\n `${DEPENDENT_ATTRIBUTE}\\\\s?(\\\\S*)\\\\swhen ${DEPENDENT_ATTRIBUTE_CONTROL}:\\\\s?(.*?)\\\\s*(${OPERATORS})`,\n \"i\",\n );\n\n const result = hint.match(regex)\n ? hint.match(regex)\n : hint.match(isEmpyNotIsEmptRegex);\n\n if (result) {\n rule.action = result[1];\n rule.control = result[2];\n rule.operator = result[3];\n rule.options = !result[4] ? \"\" : result[4];\n } else {\n throw new ConfigurationException(\n `No dependent information found on layout hint: ${hint}`,\n );\n }\n\n return rule;\n }\n\n /**\n */\n get action(): string {\n return this._action;\n }\n\n /**\n */\n set action(action: string) {\n this._action = action;\n }\n\n /**\n */\n get control(): string {\n return this._control;\n }\n\n /**\n */\n set control(control: string) {\n this._control = control;\n }\n\n /**\n */\n get operator(): string {\n return this._operator;\n }\n\n /**\n */\n set operator(operator: string) {\n this._operator = operator;\n }\n\n /**\n */\n get options(): Array<string> {\n return this._options;\n }\n\n /**\n */\n set options(options: string): void {\n this._options = options.split(\"|\").map((option) => option.trim());\n }\n\n /**\n */\n processEqualsOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (\n controlAttribute instanceof ChoiceAttributeModel ||\n controlAttribute instanceof BooleanAttributeModel\n ) {\n return this.options.every((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with equals operator must be a choice, string or number attribute\",\n );\n }\n\n /**\n */\n processIncludesOptions(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n if (controlAttribute instanceof ChoiceAttributeModel) {\n return this.options.some((option) =>\n controlAttribute.selected.includes(option),\n );\n }\n\n throw new ConfigurationException(\n \"Dependent control in combination with includes operator must be a choice attribute\",\n );\n }\n\n /**\n */\n handleOperator(\n controlAttribute: ChoiceAttributeModel | BooleanAttributeModel,\n ): boolean {\n switch (this.operator) {\n case EQUALS:\n return this.processEqualsOptions(controlAttribute);\n case INCLUDES:\n return this.processIncludesOptions(controlAttribute);\n case NOT_EQUALS:\n return !this.processEqualsOptions(controlAttribute);\n case NOT_INCLUDES:\n return !this.processIncludesOptions(controlAttribute);\n case NOT_IS_EMPTY:\n return controlAttribute?.selected.length !== 0;\n case IS_EMPTY:\n return controlAttribute?.selected.length === 0;\n default:\n throw new ConfigurationException(\n `Unsupported operator for dependent question: ${this.operator}`,\n );\n }\n }\n\n /**\n */\n getControlAttribute(\n attributes: AttributeCollection,\n ): ChoiceAttributeModel | BooleanAttributeModel | null {\n const attribute = attributes.getAttributeByLayoutHint(\n `${DEPENDENT_ATTRIBUTE_CONTROL}:${this.control}`,\n `${DEPENDENT_ATTRIBUTE_CONTROL}: ${this.control}`,\n );\n\n if (\n attribute instanceof ChoiceAttributeModel ||\n attribute instanceof BooleanAttributeModel\n ) {\n return attribute;\n }\n\n return null;\n }\n\n /**\n */\n process(attribute: AttributeModel, attributes: AttributeCollection): void {\n const controlAttribute = this.getControlAttribute(attributes);\n if (!controlAttribute) {\n return;\n }\n\n controlAttribute.processLayoutHintRules(attributes);\n if (controlAttribute.isHidden) {\n attribute.hide();\n return;\n }\n\n const result = this.handleOperator(controlAttribute);\n if (this.action === SHOW) {\n attribute.isHidden = !result;\n } else if (this.action === HIDE) {\n attribute.isHidden = result;\n } else {\n throw new ConfigurationException(\n `Unsupported action ${this.action} for dependent question on attribute: ${attribute.label}`,\n );\n }\n }\n}\n\nexport default DependentAttribute;\n"],"mappings":"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","ignoreList":[]}
@@ -19,8 +19,7 @@ class BaseCollection {
19
19
  /**
20
20
  * Construct base collection
21
21
  */
22
- constructor() {
23
- let initCollection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
22
+ constructor(initCollection = []) {
24
23
  (0, _defineProperty2.default)(this, "_collection", void 0);
25
24
  this.collection = initCollection;
26
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCollection.js","names":["_full","require","BaseCollection","constructor","initCollection","arguments","length","undefined","_defineProperty2","default","collection","_collection","add","items","all","Array","isArray","removeByIndex","itemIndex","_context","_context2","_slice","call","hasItems","isEmpty","size","first","last","get","index","find","callbackfn","thisArg","_context3","_find","filter","_context4","_filter","some","every","map","_context5","_map","forEach","sort","compareFn","_context6","_sort","sorted","_context7","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseCollection.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T,\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): this {\n return klona(this);\n }\n}\n\nexport default BaseCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseCollection.js","names":["_full","require","BaseCollection","constructor","initCollection","_defineProperty2","default","collection","_collection","add","items","all","Array","isArray","removeByIndex","itemIndex","_context","_context2","_slice","call","hasItems","length","isEmpty","size","first","last","get","index","find","callbackfn","thisArg","_context3","_find","filter","_context4","_filter","some","every","map","_context5","_map","forEach","sort","compareFn","_context6","_sort","sorted","_context7","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseCollection.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\n/**\n * Base class for collections of models\n */\nclass BaseCollection<T> {\n _collection: Array<T>;\n\n /**\n * Construct base collection\n */\n constructor(initCollection: Array<T> = []) {\n this.collection = initCollection;\n }\n\n /**\n * Retrieve current collection\n */\n get collection(): Array<T> {\n return this._collection;\n }\n\n /**\n * Replace current collection with a new collection\n */\n set collection(collection: Array<T>) {\n this._collection = collection;\n }\n\n /**\n * Add an other collection, array of items or single item to this collection;\n */\n add(items: BaseCollection<T> | Array<T> | T): BaseCollection<T> {\n if (items instanceof BaseCollection) {\n this.collection = [...this.collection, ...items.all];\n } else if (Array.isArray(items)) {\n // $FlowExpectedError[incompatible-type]\n this.collection = [...this.collection, ...items];\n } else {\n this.collection = [...this.collection, items];\n }\n\n return this;\n }\n\n /**\n * Remove an item from the collection by it's index.\n */\n removeByIndex(itemIndex: number) {\n if (itemIndex > -1) {\n this.collection = [\n ...this.collection.slice(0, itemIndex),\n ...this.collection.slice(itemIndex + 1),\n ];\n }\n }\n\n /**\n * Indicates if the collection has items\n */\n get hasItems(): boolean {\n return this.length > 0;\n }\n\n /**\n * Indicates if collection is empty\n */\n get isEmpty(): boolean {\n return !this.hasItems;\n }\n\n /**\n * Retrieve all items in collection\n */\n get all(): Array<T> {\n return this.collection;\n }\n\n /**\n * Get the size of this collection\n */\n get size(): number {\n return this.length;\n }\n\n /**\n * Get the size of this collection\n */\n get length(): number {\n return this.collection.length;\n }\n\n /**\n * Return first link in collection\n */\n get first(): T | null {\n return this.collection[0] ?? null;\n }\n\n /**\n */\n get last(): T | null {\n return this.collection[this.collection.length - 1] ?? null;\n }\n\n /**\n */\n get(index: number): T | null {\n return this.collection[index] ?? null;\n }\n\n /**\n * Find item\n */\n find(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): T | null {\n return this.collection.find(callbackfn, thisArg) ?? null;\n }\n\n /**\n * Filter items\n */\n filter(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): Array<T> {\n return this.collection.filter(callbackfn, thisArg);\n }\n\n /**\n * Check if at least one item occurs\n */\n some(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): boolean {\n return this.collection.some(callbackfn, thisArg);\n }\n\n /**\n */\n every(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ): boolean {\n return this.collection.every(callbackfn, thisArg);\n }\n\n /**\n */\n map<U>(\n callbackfn: (value: T, index: number, array: Array<T>) => U,\n thisArg?: T,\n ): Array<U> {\n return this.collection.map<U, ?T>(callbackfn, thisArg);\n }\n\n /**\n */\n forEach(\n callbackfn: (value: T, index: number, array: Array<T>) => any,\n thisArg?: any,\n ) {\n this.collection.forEach(callbackfn, thisArg);\n }\n\n /**\n */\n sort(compareFn?: (a: T, b: T) => number): Array<T> {\n return this.collection.sort(compareFn);\n }\n\n /**\n * Retrieve an alphabetically sorted array of items\n */\n get sorted(): Array<T> {\n return this.collection.sort();\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): this {\n return klona(this);\n }\n}\n\nexport default BaseCollection;\n"],"mappings":"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","ignoreList":[]}
@@ -20,11 +20,10 @@ class BaseModel {
20
20
  /**
21
21
  * constructor
22
22
  */
23
- constructor(data, contributions) {
24
- let modelOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
25
- origin: "",
26
- contextPath: (0, _constants.getBasePathModularUI)()
27
- };
23
+ constructor(data, contributions, modelOptions = {
24
+ origin: "",
25
+ contextPath: (0, _constants.getBasePathModularUI)()
26
+ }) {
28
27
  (0, _defineProperty2.default)(this, "_data", void 0);
29
28
  (0, _defineProperty2.default)(this, "_contributions", void 0);
30
29
  (0, _defineProperty2.default)(this, "_layouthint", void 0);
@@ -46,8 +45,7 @@ class BaseModel {
46
45
  /**
47
46
  * Retrieve property from the data object of the model, mostly used internal
48
47
  */
49
- getData(propName) {
50
- let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
48
+ getData(propName, defaultValue = null) {
51
49
  return this.data[propName] ?? defaultValue;
52
50
  }
53
51
 
@@ -61,8 +59,7 @@ class BaseModel {
61
59
  /**
62
60
  * Retrieve property from the contributions of the model, mostly used internal
63
61
  */
64
- getContribution(propName) {
65
- let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
62
+ getContribution(propName, defaultValue = null) {
66
63
  return this.contributions[propName] ?? defaultValue;
67
64
  }
68
65
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","arguments","length","undefined","origin","contextPath","getBasePathModularUI","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","getData","propName","defaultValue","layouthint","hasData","_keys","connectKey","key","_connectKey","dehydrate","options","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { ModelOptions } from \"../types\";\nimport { getBasePathModularUI } from \"../../constants\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n _modelOptions: ModelOptions;\n\n /**\n * constructor\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions: ModelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n },\n ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n this._modelOptions = modelOptions;\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n */\n get modelOptions(): ModelOptions {\n return this._modelOptions;\n }\n\n /**\n */\n get origin(): string {\n return this.modelOptions.origin || \"\";\n }\n\n /**\n */\n get contextPath(): string {\n return this.modelOptions.contextPath || getBasePathModularUI();\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n options: this._modelOptions,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","origin","contextPath","getBasePathModularUI","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","getData","propName","defaultValue","layouthint","hasData","_keys","length","connectKey","key","_connectKey","dehydrate","options","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { ModelOptions } from \"../types\";\nimport { getBasePathModularUI } from \"../../constants\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n _modelOptions: ModelOptions;\n\n /**\n * constructor\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions: ModelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n },\n ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n this._modelOptions = modelOptions;\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n */\n get modelOptions(): ModelOptions {\n return this._modelOptions;\n }\n\n /**\n */\n get origin(): string {\n return this.modelOptions.origin || \"\";\n }\n\n /**\n */\n get contextPath(): string {\n return this.modelOptions.contextPath || getBasePathModularUI();\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n options: this._modelOptions,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":"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","ignoreList":[]}
@@ -19,8 +19,7 @@ class ResourceModel extends _BaseModel.default {
19
19
  /**
20
20
  * constructor
21
21
  */
22
- constructor() {
23
- let modularuiResponse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _ModularUIResponse.default();
22
+ constructor(modularuiResponse = new _ModularUIResponse.default()) {
24
23
  super(modularuiResponse.data, modularuiResponse.contributions, modularuiResponse.modelOptions);
25
24
  (0, _defineProperty2.default)(this, "_key", void 0);
26
25
  (0, _defineProperty2.default)(this, "_locale", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceModel.js","names":["_ModularUIResponse","_interopRequireDefault","require","_BaseModel","_LinkCollection","_exceptions","ResourceModel","BaseModel","constructor","modularuiResponse","arguments","length","undefined","ModularUIResponse","data","contributions","modelOptions","_defineProperty2","default","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","IllegalStateException","isApplicableModel","IllegalArgumentException","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","linksData","Array","isArray","linksContrubtions","self","LinkCollection","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","_context","_context2","flattenModels","_concat","call","flattenErrors","setChildModels","dehydrate","_context3","_map","childModel","_default","exports"],"sources":["../../../src/models/base/ResourceModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(\n modularuiResponse.data,\n modularuiResponse.contributions,\n modularuiResponse.modelOptions,\n );\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Property to render name of a model, is original name after transpilation\n */\n static get modelName(): string {\n throw new IllegalStateException(`No modelName set on the resource model`);\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\",\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`,\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n const linksData = Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links;\n\n const linksContrubtions = {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n };\n\n this._links = new LinkCollection(\n linksData,\n linksContrubtions,\n this.modelOptions,\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n *\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n if (downloadLink) {\n return downloadLink;\n }\n\n return null;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): this {\n const flattenModels = [].concat(...models);\n const flattenErrors = [].concat(errors);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels, flattenErrors);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void {\n if (!models && !errors) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate(),\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ResourceModel.js","names":["_ModularUIResponse","_interopRequireDefault","require","_BaseModel","_LinkCollection","_exceptions","ResourceModel","BaseModel","constructor","modularuiResponse","ModularUIResponse","data","contributions","modelOptions","_defineProperty2","default","_key","key","_locale","locale","_childModels","_lastServerUpdate","Date","now","modelName","IllegalStateException","isApplicableModel","IllegalArgumentException","Error","lastServerUpdate","type","resourcetype","getContribution","label","links","_links","linksData","Array","isArray","linksContrubtions","self","LinkCollection","downloadLink","getLinksByGroup","first","selflink","getLinkByKey","selfhref","href","getInitialChildModelLinks","childModels","addChildModels","models","errors","_context","_context2","flattenModels","_concat","call","flattenErrors","setChildModels","dehydrate","_context3","_map","childModel","_default","exports"],"sources":["../../../src/models/base/ResourceModel.js"],"sourcesContent":["// @flow\nimport ModularUIResponse from \"../../modularui/ModularUIResponse\";\n\nimport BaseModel from \"./BaseModel\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../exceptions\";\n\nimport type LinkModel from \"../links/LinkModel\";\nimport type Href from \"../href/Href\";\nimport type { ModularUIModel, IModelWithChildModels } from \"../types\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc\n */\nclass ResourceModel extends BaseModel implements IModelWithChildModels {\n _key: string;\n _locale: string;\n _childModels: Array<ModularUIModel>;\n _links: LinkCollection;\n _lastServerUpdate: number;\n\n /**\n * constructor\n */\n constructor(modularuiResponse: ModularUIResponse = new ModularUIResponse()) {\n super(\n modularuiResponse.data,\n modularuiResponse.contributions,\n modularuiResponse.modelOptions,\n );\n\n this._key = modularuiResponse.key;\n this._locale = modularuiResponse.locale;\n this._childModels = [];\n\n this._lastServerUpdate = Date.now();\n }\n\n /**\n * Property to render name of a model, is original name after transpilation\n */\n static get modelName(): string {\n throw new IllegalStateException(`No modelName set on the resource model`);\n }\n\n /**\n * Returns true when the model is supported based on configuration found in contributions\n *\n * @abstract\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n if (!(data instanceof ModularUIResponse)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a ModularUIResponse\",\n );\n }\n\n throw new Error(\"No isApplicableModel condition set on resourcemodel\");\n }\n\n /**\n */\n get lastServerUpdate(): number {\n return this._lastServerUpdate;\n }\n\n /**\n */\n set lastServerUpdate(lastServerUpdate: number) {\n this._lastServerUpdate = lastServerUpdate;\n }\n\n /**\n */\n get locale(): string {\n return this._locale;\n }\n\n /**\n * Retrieve key\n */\n get key(): string {\n return this._key;\n }\n\n /**\n * Get type of model\n *\n * @abstract\n */\n get type(): string {\n throw new IllegalStateException(\n `No type set on the resource model with key ${this.key}`,\n );\n }\n\n /**\n * Retrieve type of resource\n */\n get resourcetype(): string {\n return this.getContribution(\"resourcetype\", \"unknown\");\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Getting the links of the resource\n */\n get links(): LinkCollection {\n if (!this._links) {\n const linksData = Array.isArray(this.data._links)\n ? this.data._links[0]\n : this.data._links;\n\n const linksContrubtions = {\n self: {\n resourcetype: this.resourcetype,\n },\n ...this.contributions._links,\n };\n\n this._links = new LinkCollection(\n linksData,\n linksContrubtions,\n this.modelOptions,\n );\n }\n return this._links;\n }\n\n /**\n */\n set links(links: LinkCollection) {\n this._links = links;\n }\n\n /**\n *\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n if (downloadLink) {\n return downloadLink;\n }\n\n return null;\n }\n\n /**\n * Get self link of model\n */\n get selflink(): LinkModel {\n const selflink = this.links.getLinkByKey(\"self\");\n\n if (selflink === null) {\n throw new IllegalStateException(\n `Could not find self link for ${\n this.key === null ? \"unknown\" : this.key\n }`,\n );\n }\n\n return selflink;\n }\n\n /**\n * Return default self link of resource\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n * Add links to expand on initialization of this model\n *\n * @abstract\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return [];\n }\n\n /**\n * Retrieve links of expanded child models\n */\n get childModels(): Array<ModularUIModel> {\n return this._childModels;\n }\n\n /**\n * Add child models to this model\n */\n addChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): this {\n const flattenModels = [].concat(...models);\n const flattenErrors = [].concat(errors);\n\n this._childModels = flattenModels;\n\n this.setChildModels(flattenModels, flattenErrors);\n\n return this;\n }\n\n /**\n * Template to set expanded child models\n * Use this hook to separate the retrieved child models into the correct models.\n *\n * @abstract\n * @example <caption>Put all models of instance List and GroupingPanel into the panels property</caption>\n */\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>,\n ): void {\n if (!models && !errors) {\n throw new IllegalArgumentException(\"No models send to setChildModels\");\n }\n }\n\n /**\n */\n dehydrate(): Object {\n return {\n ...super.dehydrate(),\n key: this._key,\n locale: this._locale,\n // $FlowFixMe[missing-type-arg]\n childModels: this._childModels.map<ModularUIModel>(\n (childModel: ModularUIModel) => childModel.dehydrate(),\n ),\n };\n }\n}\n\nexport default ResourceModel;\n"],"mappings":"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","ignoreList":[]}
@@ -16,8 +16,8 @@ var _Settings = require("../../constants/Settings");
16
16
  /**
17
17
  */
18
18
  class BusinessScenarioModel extends _ConceptDetailModel.default {
19
- constructor() {
20
- super(...arguments);
19
+ constructor(...args) {
20
+ super(...args);
21
21
  (0, _defineProperty2.default)(this, "_scenarioSteps", void 0);
22
22
  }
23
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BusinessScenarioModel.js","names":["_ConceptDetailModel","_interopRequireDefault","require","_ConceptTypeDetailModel","_Settings","BusinessScenarioModel","ConceptDetailModel","constructor","arguments","_defineProperty2","default","type","modelName","isApplicableModel","data","isOfConceptType","_links","concepttype","href","conceptTypeHref","settingNames","Array","isArray","TypeError","pathToKmt","conceptTypeSettings","STEP","getSetting","PERSONA","SYSTEM","SCENARIO","decodedConceptTypeHref","decodeURIComponent","some","settingName","conceptTypeSetting","_endsWith","call","getInitialChildModelLinks","_context","_context2","childModelLinks","scenarioStepLinks","_map","_filter","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","push","setChildModels","models","errors","conceptTypeModel","_find","model","ConceptTypeDetailModel","conceptType","scenarioSteps","i","selfhref","_scenarioSteps","actors","forEach","scenarioStep","_context3","relationsToActor","newRelationToActor","actor","key","_default","exports"],"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return BusinessScenarioModel.isOfConceptType(\n data?.data?._links?.concepttype?.href,\n [\"SCENARIO\"],\n );\n }\n\n /**\n */\n static isOfConceptType(\n conceptTypeHref: ?string,\n settingNames: Array<\"STEP\" | \"PERSONA\" | \"SCENARIO\" | \"SYSTEM\">,\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n // Check if settingNames is an array\n if (!Array.isArray(settingNames)) {\n throw new TypeError(\"settingNames must be an array\");\n }\n\n const pathToKmt = \"/Library/KMTs/Business scenarios.bixml\";\n\n const conceptTypeSettings = {\n STEP: getSetting(\"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE\", [\n `${pathToKmt}/ScenarioStep`,\n ]),\n PERSONA: getSetting(\"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE\", [\n `${pathToKmt}/Persona`,\n ]),\n SYSTEM: getSetting(\"BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE\", [\n `${pathToKmt}/System`,\n ]),\n SCENARIO: getSetting(\"BUSINESS_SCENARIO_CONCEPT_TYPE\", [\n `${pathToKmt}/BusinessScenario`,\n ]),\n };\n\n const decodedConceptTypeHref = decodeURIComponent(conceptTypeHref);\n\n return settingNames.some(\n (settingName) =>\n Array.isArray(conceptTypeSettings[settingName]) &&\n conceptTypeSettings[settingName].some((conceptTypeSetting) =>\n decodedConceptTypeHref.endsWith(conceptTypeSetting),\n ),\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = super.getInitialChildModelLinks();\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n [\"STEP\"],\n ),\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel,\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models, errors);\n\n const scenarioSteps = [];\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n BusinessScenarioModel.isOfConceptType(\n model.conceptType?.selfhref.path,\n [\"STEP\"],\n )\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n [\"PERSONA\", \"SYSTEM\"],\n ),\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAQA;AACA;AACA,MAAMG,qBAAqB,SAASC,2BAAkB,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;EAAA;EAGrD;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OAAOT,qBAAqB,CAACU,eAAe,CAC1CD,IAAI,EAAEA,IAAI,EAAEE,MAAM,EAAEC,WAAW,EAAEC,IAAI,EACrC,CAAC,UAAU,CACb,CAAC;EACH;;EAEA;AACF;EACE,OAAOH,eAAeA,CACpBI,eAAwB,EACxBC,YAA+D,EACtD;IACT,IAAI,CAACD,eAAe,EAAE;MACpB,OAAO,KAAK;IACd;;IAEA;IACA,IAAI,CAACE,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,EAAE;MAChC,MAAM,IAAIG,SAAS,CAAC,+BAA+B,CAAC;IACtD;IAEA,MAAMC,SAAS,GAAG,wCAAwC;IAE1D,MAAMC,mBAAmB,GAAG;MAC1BC,IAAI,EAAE,IAAAC,oBAAU,EAAC,qCAAqC,EAAE,CACtD,GAAGH,SAAS,eAAe,CAC5B,CAAC;MACFI,OAAO,EAAE,IAAAD,oBAAU,EAAC,wCAAwC,EAAE,CAC5D,GAAGH,SAAS,UAAU,CACvB,CAAC;MACFK,MAAM,EAAE,IAAAF,oBAAU,EAAC,uCAAuC,EAAE,CAC1D,GAAGH,SAAS,SAAS,CACtB,CAAC;MACFM,QAAQ,EAAE,IAAAH,oBAAU,EAAC,gCAAgC,EAAE,CACrD,GAAGH,SAAS,mBAAmB,CAChC;IACH,CAAC;IAED,MAAMO,sBAAsB,GAAGC,kBAAkB,CAACb,eAAe,CAAC;IAElE,OAAOC,YAAY,CAACa,IAAI,CACrBC,WAAW,IACVb,KAAK,CAACC,OAAO,CAACG,mBAAmB,CAACS,WAAW,CAAC,CAAC,IAC/CT,mBAAmB,CAACS,WAAW,CAAC,CAACD,IAAI,CAAEE,kBAAkB,IACvD,IAAAC,SAAA,CAAA1B,OAAA,EAAAqB,sBAAsB,EAAAM,IAAA,CAAtBN,sBAAsB,EAAUI,kBAAkB,CACpD,CACJ,CAAC;EACH;;EAEA;AACF;EACEG,yBAAyBA,CAAA,EAAqB;IAAA,IAAAC,QAAA,EAAAC,SAAA;IAC5C,MAAMC,eAAe,GAAG,KAAK,CAACH,yBAAyB,CAAC,CAAC;IAEzD,MAAMI,iBAAiB,GAAG,IAAAC,IAAA,CAAAjC,OAAA,EAAA6B,QAAA,OAAAK,OAAA,CAAAlC,OAAA,EAAA8B,SAAA,OAAI,CAACK,mBAAmB,CAACC,GAAG,EAAAT,IAAA,CAAAG,SAAA,EAEjDO,QAAQ,IACPA,QAAQ,CAACC,SAAS,KAAK,UAAU,IACjC3C,qBAAqB,CAACU,eAAe,CACnCgC,QAAQ,CAACE,OAAO,CAACC,eAAe,EAAEC,IAAI,EACtC,CAAC,MAAM,CACT,CACJ,CAAC,EAAAd,IAAA,CAAAE,QAAA,EACKQ,QAAQ,IAAKA,QAAQ,CAACE,OAAO,CAACG,WAAW,CAAC,CAAC,CAAC;IAEpD,IAAIV,iBAAiB,CAACW,MAAM,GAAG,CAAC,EAAE;MAChCZ,eAAe,CAACa,IAAI,CAAC,GAAGZ,iBAAiB,CAAC;IAC5C;IAEA,OAAOD,eAAe;EACxB;;EAEA;AACF;EACEc,cAAcA,CAACC,MAA6B,EAAEC,MAA4B,EAAE;IAC1E;IACA,MAAMC,gBAAyC,GAAG,IAAAC,KAAA,CAAAjD,OAAA,EAAA8C,MAAM,EAAAnB,IAAA,CAANmB,MAAM,EACrDI,KAAK,IAAKA,KAAK,YAAYC,+BAC9B,CAAC;IAED,IAAIH,gBAAgB,EAAE;MACpB,IAAI,CAACI,WAAW,GAAGJ,gBAAgB;IACrC;IAEA,IAAI,CAACb,mBAAmB,CAACU,cAAc,CAACC,MAAM,EAAEC,MAAM,CAAC;IAEvD,MAAMM,aAAa,GAAG,EAAE;IACxB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,MAAM,CAACH,MAAM,EAAEW,CAAC,EAAE,EAAE;MACtC,MAAMJ,KAAK,GAAGJ,MAAM,CAACQ,CAAC,CAAC;MAEvB,IACEJ,KAAK,YAAYtD,2BAAkB,IACnCD,qBAAqB,CAACU,eAAe,CACnC6C,KAAK,CAACE,WAAW,EAAEG,QAAQ,CAACd,IAAI,EAChC,CAAC,MAAM,CACT,CAAC,EACD;QACAY,aAAa,CAACT,IAAI,CAACM,KAAK,CAAC;MAC3B;IACF;IAEA,IAAI,CAACG,aAAa,GAAGA,aAAa;EACpC;;EAEA;AACF;EACE,IAAIA,aAAaA,CAACP,MAAiC,EAAE;IACnD,IAAI,CAACU,cAAc,GAAGV,MAAM;EAC9B;;EAEA;AACF;EACE,IAAIO,aAAaA,CAAA,EAA8B;IAC7C,OAAO,IAAI,CAACG,cAAc;EAC5B;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAA4B;IACpC,MAAMA,MAAM,GAAG,EAAE;IAEjB,IAAI,CAACJ,aAAa,CAACK,OAAO,CAAEC,YAAY,IAAK;MAAA,IAAAC,SAAA;MAC3C,MAAMC,gBAAgB,GAAG,IAAAZ,KAAA,CAAAjD,OAAA,EAAA4D,SAAA,GAAAD,YAAY,CAACxB,mBAAmB,EAAAR,IAAA,CAAAiC,SAAA,EACtDvB,QAAQ,IACPA,QAAQ,CAACC,SAAS,KAAK,UAAU,IACjC3C,qBAAqB,CAACU,eAAe,CACnCgC,QAAQ,CAACE,OAAO,CAACC,eAAe,EAAEC,IAAI,EACtC,CAAC,SAAS,EAAE,QAAQ,CACtB,CACJ,CAAC;MAED,MAAMqB,kBAAkB,GACtBD,gBAAgB,IAChB,CAACJ,MAAM,CAAClC,IAAI,CAAEwC,KAAK,IAAKA,KAAK,CAACC,GAAG,KAAKH,gBAAgB,CAACtB,OAAO,CAACyB,GAAG,CAAC;MAErE,IAAIH,gBAAgB,IAAIC,kBAAkB,EAAE;QAC1CL,MAAM,CAACb,IAAI,CAACiB,gBAAgB,CAACtB,OAAO,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,OAAOkB,MAAM;EACf;AACF;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAlE,OAAA,GAEcL,qBAAqB","ignoreList":[]}
1
+ {"version":3,"file":"BusinessScenarioModel.js","names":["_ConceptDetailModel","_interopRequireDefault","require","_ConceptTypeDetailModel","_Settings","BusinessScenarioModel","ConceptDetailModel","constructor","args","_defineProperty2","default","type","modelName","isApplicableModel","data","isOfConceptType","_links","concepttype","href","conceptTypeHref","settingNames","Array","isArray","TypeError","pathToKmt","conceptTypeSettings","STEP","getSetting","PERSONA","SYSTEM","SCENARIO","decodedConceptTypeHref","decodeURIComponent","some","settingName","conceptTypeSetting","_endsWith","call","getInitialChildModelLinks","_context","_context2","childModelLinks","scenarioStepLinks","_map","_filter","relationsCollection","all","relation","direction","concept","concepttypeHref","path","asLinkModel","length","push","setChildModels","models","errors","conceptTypeModel","_find","model","ConceptTypeDetailModel","conceptType","scenarioSteps","i","selfhref","_scenarioSteps","actors","forEach","scenarioStep","_context3","relationsToActor","newRelationToActor","actor","key","_default","exports"],"sources":["../../../src/models/concepts/BusinessScenarioModel.js"],"sourcesContent":["// @flow\nimport ConceptDetailModel from \"./ConceptDetailModel\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ConceptLinkModel from \"./ConceptLinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n */\nclass BusinessScenarioModel extends ConceptDetailModel {\n _scenarioSteps: Array<ConceptDetailModel>;\n\n /**\n */\n get type(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"BusinessScenario\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return BusinessScenarioModel.isOfConceptType(\n data?.data?._links?.concepttype?.href,\n [\"SCENARIO\"],\n );\n }\n\n /**\n */\n static isOfConceptType(\n conceptTypeHref: ?string,\n settingNames: Array<\"STEP\" | \"PERSONA\" | \"SCENARIO\" | \"SYSTEM\">,\n ): boolean {\n if (!conceptTypeHref) {\n return false;\n }\n\n // Check if settingNames is an array\n if (!Array.isArray(settingNames)) {\n throw new TypeError(\"settingNames must be an array\");\n }\n\n const pathToKmt = \"/Library/KMTs/Business scenarios.bixml\";\n\n const conceptTypeSettings = {\n STEP: getSetting(\"BUSINESS_SCENARIO_STEP_CONCEPT_TYPE\", [\n `${pathToKmt}/ScenarioStep`,\n ]),\n PERSONA: getSetting(\"BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE\", [\n `${pathToKmt}/Persona`,\n ]),\n SYSTEM: getSetting(\"BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE\", [\n `${pathToKmt}/System`,\n ]),\n SCENARIO: getSetting(\"BUSINESS_SCENARIO_CONCEPT_TYPE\", [\n `${pathToKmt}/BusinessScenario`,\n ]),\n };\n\n const decodedConceptTypeHref = decodeURIComponent(conceptTypeHref);\n\n return settingNames.some(\n (settingName) =>\n Array.isArray(conceptTypeSettings[settingName]) &&\n conceptTypeSettings[settingName].some((conceptTypeSetting) =>\n decodedConceptTypeHref.endsWith(conceptTypeSetting),\n ),\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const childModelLinks = super.getInitialChildModelLinks();\n\n const scenarioStepLinks = this.relationsCollection.all\n .filter(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n [\"STEP\"],\n ),\n )\n .map((relation) => relation.concept.asLinkModel());\n\n if (scenarioStepLinks.length > 0) {\n childModelLinks.push(...scenarioStepLinks);\n }\n\n return childModelLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel,\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models, errors);\n\n const scenarioSteps = [];\n for (let i = 0; i < models.length; i++) {\n const model = models[i];\n\n if (\n model instanceof ConceptDetailModel &&\n BusinessScenarioModel.isOfConceptType(\n model.conceptType?.selfhref.path,\n [\"STEP\"],\n )\n ) {\n scenarioSteps.push(model);\n }\n }\n\n this.scenarioSteps = scenarioSteps;\n }\n\n /**\n */\n set scenarioSteps(models: Array<ConceptDetailModel>) {\n this._scenarioSteps = models;\n }\n\n /**\n */\n get scenarioSteps(): Array<ConceptDetailModel> {\n return this._scenarioSteps;\n }\n\n /**\n */\n get actors(): Array<ConceptLinkModel> {\n const actors = [];\n\n this.scenarioSteps.forEach((scenarioStep) => {\n const relationsToActor = scenarioStep.relationsCollection.find(\n (relation) =>\n relation.direction === \"outgoing\" &&\n BusinessScenarioModel.isOfConceptType(\n relation.concept.concepttypeHref?.path,\n [\"PERSONA\", \"SYSTEM\"],\n ),\n );\n\n const newRelationToActor =\n relationsToActor &&\n !actors.some((actor) => actor.key === relationsToActor.concept.key);\n\n if (relationsToActor && newRelationToActor) {\n actors.push(relationsToActor.concept);\n }\n });\n\n return actors;\n }\n}\n\nexport default BusinessScenarioModel;\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAQA;AACA;AACA,MAAMG,qBAAqB,SAASC,2BAAkB,CAAC;EAAAC,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;EAAA;EAGrD;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,kBAAkB;EAC3B;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACC,IAAuB,EAAW;IACzD,OAAOT,qBAAqB,CAACU,eAAe,CAC1CD,IAAI,EAAEA,IAAI,EAAEE,MAAM,EAAEC,WAAW,EAAEC,IAAI,EACrC,CAAC,UAAU,CACb,CAAC;EACH;;EAEA;AACF;EACE,OAAOH,eAAeA,CACpBI,eAAwB,EACxBC,YAA+D,EACtD;IACT,IAAI,CAACD,eAAe,EAAE;MACpB,OAAO,KAAK;IACd;;IAEA;IACA,IAAI,CAACE,KAAK,CAACC,OAAO,CAACF,YAAY,CAAC,EAAE;MAChC,MAAM,IAAIG,SAAS,CAAC,+BAA+B,CAAC;IACtD;IAEA,MAAMC,SAAS,GAAG,wCAAwC;IAE1D,MAAMC,mBAAmB,GAAG;MAC1BC,IAAI,EAAE,IAAAC,oBAAU,EAAC,qCAAqC,EAAE,CACtD,GAAGH,SAAS,eAAe,CAC5B,CAAC;MACFI,OAAO,EAAE,IAAAD,oBAAU,EAAC,wCAAwC,EAAE,CAC5D,GAAGH,SAAS,UAAU,CACvB,CAAC;MACFK,MAAM,EAAE,IAAAF,oBAAU,EAAC,uCAAuC,EAAE,CAC1D,GAAGH,SAAS,SAAS,CACtB,CAAC;MACFM,QAAQ,EAAE,IAAAH,oBAAU,EAAC,gCAAgC,EAAE,CACrD,GAAGH,SAAS,mBAAmB,CAChC;IACH,CAAC;IAED,MAAMO,sBAAsB,GAAGC,kBAAkB,CAACb,eAAe,CAAC;IAElE,OAAOC,YAAY,CAACa,IAAI,CACrBC,WAAW,IACVb,KAAK,CAACC,OAAO,CAACG,mBAAmB,CAACS,WAAW,CAAC,CAAC,IAC/CT,mBAAmB,CAACS,WAAW,CAAC,CAACD,IAAI,CAAEE,kBAAkB,IACvD,IAAAC,SAAA,CAAA1B,OAAA,EAAAqB,sBAAsB,EAAAM,IAAA,CAAtBN,sBAAsB,EAAUI,kBAAkB,CACpD,CACJ,CAAC;EACH;;EAEA;AACF;EACEG,yBAAyBA,CAAA,EAAqB;IAAA,IAAAC,QAAA,EAAAC,SAAA;IAC5C,MAAMC,eAAe,GAAG,KAAK,CAACH,yBAAyB,CAAC,CAAC;IAEzD,MAAMI,iBAAiB,GAAG,IAAAC,IAAA,CAAAjC,OAAA,EAAA6B,QAAA,OAAAK,OAAA,CAAAlC,OAAA,EAAA8B,SAAA,OAAI,CAACK,mBAAmB,CAACC,GAAG,EAAAT,IAAA,CAAAG,SAAA,EAEjDO,QAAQ,IACPA,QAAQ,CAACC,SAAS,KAAK,UAAU,IACjC3C,qBAAqB,CAACU,eAAe,CACnCgC,QAAQ,CAACE,OAAO,CAACC,eAAe,EAAEC,IAAI,EACtC,CAAC,MAAM,CACT,CACJ,CAAC,EAAAd,IAAA,CAAAE,QAAA,EACKQ,QAAQ,IAAKA,QAAQ,CAACE,OAAO,CAACG,WAAW,CAAC,CAAC,CAAC;IAEpD,IAAIV,iBAAiB,CAACW,MAAM,GAAG,CAAC,EAAE;MAChCZ,eAAe,CAACa,IAAI,CAAC,GAAGZ,iBAAiB,CAAC;IAC5C;IAEA,OAAOD,eAAe;EACxB;;EAEA;AACF;EACEc,cAAcA,CAACC,MAA6B,EAAEC,MAA4B,EAAE;IAC1E;IACA,MAAMC,gBAAyC,GAAG,IAAAC,KAAA,CAAAjD,OAAA,EAAA8C,MAAM,EAAAnB,IAAA,CAANmB,MAAM,EACrDI,KAAK,IAAKA,KAAK,YAAYC,+BAC9B,CAAC;IAED,IAAIH,gBAAgB,EAAE;MACpB,IAAI,CAACI,WAAW,GAAGJ,gBAAgB;IACrC;IAEA,IAAI,CAACb,mBAAmB,CAACU,cAAc,CAACC,MAAM,EAAEC,MAAM,CAAC;IAEvD,MAAMM,aAAa,GAAG,EAAE;IACxB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,MAAM,CAACH,MAAM,EAAEW,CAAC,EAAE,EAAE;MACtC,MAAMJ,KAAK,GAAGJ,MAAM,CAACQ,CAAC,CAAC;MAEvB,IACEJ,KAAK,YAAYtD,2BAAkB,IACnCD,qBAAqB,CAACU,eAAe,CACnC6C,KAAK,CAACE,WAAW,EAAEG,QAAQ,CAACd,IAAI,EAChC,CAAC,MAAM,CACT,CAAC,EACD;QACAY,aAAa,CAACT,IAAI,CAACM,KAAK,CAAC;MAC3B;IACF;IAEA,IAAI,CAACG,aAAa,GAAGA,aAAa;EACpC;;EAEA;AACF;EACE,IAAIA,aAAaA,CAACP,MAAiC,EAAE;IACnD,IAAI,CAACU,cAAc,GAAGV,MAAM;EAC9B;;EAEA;AACF;EACE,IAAIO,aAAaA,CAAA,EAA8B;IAC7C,OAAO,IAAI,CAACG,cAAc;EAC5B;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAA4B;IACpC,MAAMA,MAAM,GAAG,EAAE;IAEjB,IAAI,CAACJ,aAAa,CAACK,OAAO,CAAEC,YAAY,IAAK;MAAA,IAAAC,SAAA;MAC3C,MAAMC,gBAAgB,GAAG,IAAAZ,KAAA,CAAAjD,OAAA,EAAA4D,SAAA,GAAAD,YAAY,CAACxB,mBAAmB,EAAAR,IAAA,CAAAiC,SAAA,EACtDvB,QAAQ,IACPA,QAAQ,CAACC,SAAS,KAAK,UAAU,IACjC3C,qBAAqB,CAACU,eAAe,CACnCgC,QAAQ,CAACE,OAAO,CAACC,eAAe,EAAEC,IAAI,EACtC,CAAC,SAAS,EAAE,QAAQ,CACtB,CACJ,CAAC;MAED,MAAMqB,kBAAkB,GACtBD,gBAAgB,IAChB,CAACJ,MAAM,CAAClC,IAAI,CAAEwC,KAAK,IAAKA,KAAK,CAACC,GAAG,KAAKH,gBAAgB,CAACtB,OAAO,CAACyB,GAAG,CAAC;MAErE,IAAIH,gBAAgB,IAAIC,kBAAkB,EAAE;QAC1CL,MAAM,CAACb,IAAI,CAACiB,gBAAgB,CAACtB,OAAO,CAAC;MACvC;IACF,CAAC,CAAC;IAEF,OAAOkB,MAAM;EACf;AACF;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAlE,OAAA,GAEcL,qBAAqB","ignoreList":[]}
@@ -227,8 +227,7 @@ class ConceptDetailModel extends _ResourceModel.default {
227
227
  /**
228
228
  * Get source reference collection
229
229
  */
230
- getSourceReferenceCollection() {
231
- let availableLocales = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
230
+ getSourceReferenceCollection(availableLocales = []) {
232
231
  if (!this._sourceReferences) {
233
232
  this._sourceReferences = new _SourceReferenceCollection.default(this.getSourceReferencesForCurrentLanguage(availableLocales), this.entryDate, this.modelOptions);
234
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConceptDetailModel.js","names":["_ResourceModel","_interopRequireDefault","require","_ConceptRelationCollection","_SourceReferenceCollection","_ConceptTypeDetailModel","_Constants","ConceptDetailModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","_relations","ConceptRelationCollection","data","relations","entryDate","modelOptions","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_find","call","model","ConceptTypeDetailModel","conceptType","key","getData","selfhref","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","diagramLinks","getLinksByGroup","_conceptType","label","conceptLabel","modelCategory","taxonomyType","formula","labels","_context","labelTypes","_map","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filter","_includes","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context0","getSourceReferenceCollection","availableLocales","arguments","length","undefined","_sourceReferences","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context1","_context12","availableLanguagesInSourceReferences","sourceReference","substring","currentLanguagePostfix","locale","_context10","_context11","_endsWith","availableLanguages","split","value","isOfConceptType","conceptTypeId","exports"],"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type {\n ModularUIModel,\n labelsJSON,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type Href from \"../href/Href\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Model for concept details, available through modelcatalog\n */\nexport default class ConceptDetailModel extends ResourceModel {\n _relations: ConceptRelationCollection;\n _conceptType: ?ConceptTypeDetailModel;\n _sourceReferences: SourceReferenceCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._relations = new ConceptRelationCollection(\n this.data.relations,\n this.entryDate,\n this.modelOptions,\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ConceptDetail\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n const relationsCollectionLinks =\n this.relationsCollection.getInitialChildModelLinks();\n\n if (conceptTypeLink) {\n conceptTypeLink.isCacheable = true;\n return [conceptTypeLink, ...relationsCollectionLinks];\n }\n\n return relationsCollectionLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel,\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models, errors);\n }\n\n /**\n * Retrieve concept detail identifier as key for this model\n */\n get key(): string {\n return this.getData(\"_id\", \"concept\");\n }\n\n /**\n * Getting the self link of this Concept\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.entryDate) {\n href.setParameter(TIMEVERSION_FILTER_NAME, this.entryDate);\n } else {\n href.removeParameter(TIMEVERSION_FILTER_NAME);\n }\n\n return href;\n }\n\n /**\n * Available diagrams for the concept, most of the time just one\n */\n get diagramLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"diagram\");\n }\n\n /**\n * Get conceptType of concept\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n */\n set conceptType(conceptType: ?ConceptTypeDetailModel) {\n this._conceptType = conceptType;\n }\n\n /**\n * Get concept label\n */\n get label(): string {\n return this.data.conceptLabel;\n }\n\n /**\n * Get model category of the concept\n */\n get modelCategory(): string {\n return this.getData(\"modelCategory\", \"\");\n }\n\n /**\n * Get taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id,\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id),\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id,\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id,\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type),\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = [],\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate,\n this.modelOptions,\n );\n }\n\n return this._sourceReferences;\n }\n\n /*\n * Retrieve all sourceReferenceTypes that are valid for the current language\n * Used by sourceRef collection\n */\n /**\n */\n getSourceReferencesForCurrentLanguage(\n availableLocales: Array<string>,\n ): Array<Object> {\n const LANGUAGE_POSTFIX_LENGTH = 3;\n if (this.data.sourceReferences) {\n const availableLanguagesInSourceReferences =\n this.data.sourceReferences.map((sourceReference) =>\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n );\n\n const currentLanguagePostfix = `_${this.locale}`;\n\n if (\n availableLanguagesInSourceReferences.includes(currentLanguagePostfix)\n ) {\n // return all sourceReferences that end with language that is selected\n return this.data.sourceReferences.filter((sourceReference) =>\n sourceReference.type.endsWith(currentLanguagePostfix),\n );\n }\n\n const availableLanguages = availableLocales.map(\n (locale) => `_${locale.split(\"-\")[0]}`,\n );\n\n // return all sourceReferences that do not end with language postfix\n return this.data.sourceReferences.filter(\n (sourceReference) =>\n !availableLanguages.includes(\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n ),\n );\n }\n return [];\n }\n\n /**\n * Retrieve modelcatalog.js\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n\n /**\n * Indicates if the given concept type id or href exists in the hierarchy of concept types for this concept\n */\n isOfConceptType(conceptTypeId: string): boolean {\n return this.conceptType?.isOfConceptType(conceptTypeId) ?? false;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,0BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,uBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAcA;AACA;AACA;AACe,MAAMK,kBAAkB,SAASC,sBAAa,CAAC;EAK5D;AACF;EACEC,WAAWA,CAACC,iBAAoC,EAAE;IAChD,KAAK,CAACA,iBAAiB,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAEzB,IAAI,CAACC,UAAU,GAAG,IAAIC,kCAAyB,CAC7C,IAAI,CAACC,IAAI,CAACC,SAAS,EACnB,IAAI,CAACC,SAAS,EACd,IAAI,CAACC,YACP,CAAC;EACH;;EAEA;AACF;EACE,IAAIC,IAAIA,CAAA,EAAW;IACjB,OAAO,eAAe;EACxB;;EAEA;AACF;EACE,WAAWC,SAASA,CAAA,EAAW;IAC7B,OAAO,oBAAoB;EAC7B;;EAEA;AACF;EACE,OAAOC,iBAAiBA,CAACN,IAAuB,EAAW;IACzD,OACEA,IAAI,CAACO,aAAa,CAACC,YAAY,IAC/BR,IAAI,CAACO,aAAa,CAACC,YAAY,KAAK,eAAe;EAEvD;;EAEA;AACF;EACEC,yBAAyBA,CAAA,EAAqB;IAC5C,MAAMC,eAAe,GAAG,IAAI,CAACC,KAAK,CAACC,YAAY,CAAC,aAAa,CAAC;IAC9D,MAAMC,wBAAwB,GAC5B,IAAI,CAACC,mBAAmB,CAACL,yBAAyB,CAAC,CAAC;IAEtD,IAAIC,eAAe,EAAE;MACnBA,eAAe,CAACK,WAAW,GAAG,IAAI;MAClC,OAAO,CAACL,eAAe,EAAE,GAAGG,wBAAwB,CAAC;IACvD;IAEA,OAAOA,wBAAwB;EACjC;;EAEA;AACF;EACEG,cAAcA,CAACC,MAA6B,EAAEC,MAA4B,EAAE;IAC1E;IACA,MAAMC,gBAAyC,GAAG,IAAAC,KAAA,CAAAvB,OAAA,EAAAoB,MAAM,EAAAI,IAAA,CAANJ,MAAM,EACrDK,KAAK,IAAKA,KAAK,YAAYC,+BAC9B,CAAC;IAED,IAAIJ,gBAAgB,EAAE;MACpB,IAAI,CAACK,WAAW,GAAGL,gBAAgB;IACrC;IAEA,IAAI,CAACL,mBAAmB,CAACE,cAAc,CAACC,MAAM,EAAEC,MAAM,CAAC;EACzD;;EAEA;AACF;AACA;EACE,IAAIO,GAAGA,CAAA,EAAW;IAChB,OAAO,IAAI,CAACC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;EACvC;;EAEA;AACF;AACA;EACE,IAAIC,QAAQA,CAAA,EAAS;IACnB,MAAM;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACC,QAAQ;IAE9B,IAAI,IAAI,CAAC3B,SAAS,EAAE;MAClB0B,IAAI,CAACE,YAAY,CAACC,kCAAuB,EAAE,IAAI,CAAC7B,SAAS,CAAC;IAC5D,CAAC,MAAM;MACL0B,IAAI,CAACI,eAAe,CAACD,kCAAuB,CAAC;IAC/C;IAEA,OAAOH,IAAI;EACb;;EAEA;AACF;AACA;EACE,IAAIK,YAAYA,CAAA,EAAmB;IACjC,OAAO,IAAI,CAACtB,KAAK,CAACuB,eAAe,CAAC,SAAS,CAAC;EAC9C;;EAEA;AACF;AACA;EACE,IAAIV,WAAWA,CAAA,EAA4B;IACzC,OAAO,IAAI,CAACW,YAAY;EAC1B;;EAEA;AACF;EACE,IAAIX,WAAWA,CAACA,WAAoC,EAAE;IACpD,IAAI,CAACW,YAAY,GAAGX,WAAW;EACjC;;EAEA;AACF;AACA;EACE,IAAIY,KAAKA,CAAA,EAAW;IAClB,OAAO,IAAI,CAACpC,IAAI,CAACqC,YAAY;EAC/B;;EAEA;AACF;AACA;EACE,IAAIC,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACZ,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAIa,YAAYA,CAAA,EAAW;IACzB,OAAO,IAAI,CAACb,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;EAChD;;EAEA;AACF;AACA;EACE,IAAIZ,mBAAmBA,CAAA,EAA8B;IACnD,OAAO,IAAI,CAAChB,UAAU;EACxB;;EAEA;AACF;AACA;EACE,IAAI0C,OAAOA,CAAA,EAAW;IACpB,OAAO,IAAI,CAACxC,IAAI,CAACwC,OAAO;EAC1B;;EAEA;AACF;AACA;EACE,IAAIC,MAAMA,CAAA,EAAsB;IAAA,IAAAC,QAAA;IAC9B,OAAO,IAAI,CAAClB,WAAW,IAAI,IAAI,CAACA,WAAW,CAACmB,UAAU,GAClD,IAAAC,IAAA,CAAA/C,OAAA,EAAA6C,QAAA,OAAI,CAAClB,WAAW,CAACmB,UAAU,EAAAtB,IAAA,CAAAqB,QAAA,EAAMG,SAAS,IAAK;MAAA,IAAAC,SAAA;MAC7C,MAAMC,OAAO,GAAG,IAAI,CAAC/C,IAAI,CAACyC,MAAM,GAC5B,IAAArB,KAAA,CAAAvB,OAAA,EAAAiD,SAAA,OAAI,CAAC9C,IAAI,CAACyC,MAAM,EAAApB,IAAA,CAAAyB,SAAA,EAAOV,KAAK,IAAKA,KAAK,CAAChC,IAAI,KAAKyC,SAAS,CAACG,GAAG,CAAC,GAC9D,CAAC,CAAC;MAEN,OAAO;QACL,GAAGH,SAAS;QACZ,GAAGE;MACL,CAAC;IACH,CAAC,CAAC,GACF,EAAE;EACR;;EAEA;AACF;AACA;EACEE,oBAAoBA,CAACC,GAAkB,EAAqB;IAAA,IAAAC,SAAA;IAC1D,OAAO,IAAAC,OAAA,CAAAvD,OAAA,EAAAsD,SAAA,OAAI,CAACV,MAAM,EAAApB,IAAA,CAAA8B,SAAA,EAASf,KAAiB,IAAK,IAAAiB,SAAA,CAAAxD,OAAA,EAAAqD,GAAG,EAAA7B,IAAA,CAAH6B,GAAG,EAAUd,KAAK,CAACY,GAAG,CAAC,CAAC;EAC3E;;EAEA;AACF;AACA;EACE,IAAIM,iBAAiBA,CAAA,EAAwB;IAAA,IAAAC,SAAA;IAC3C,OAAO,IAAI,CAAC/B,WAAW,IAAI,IAAI,CAACA,WAAW,CAACgC,aAAa,GACrD,IAAAZ,IAAA,CAAA/C,OAAA,EAAA0D,SAAA,OAAI,CAAC/B,WAAW,CAACgC,aAAa,EAAAnC,IAAA,CAAAkC,SAAA,EAAME,YAAY,IAAK;MAAA,IAAAC,SAAA;MACnD,MAAMX,OAAO,GAAG,IAAI,CAAC/C,IAAI,CAAC2D,UAAU,GAChC,IAAAvC,KAAA,CAAAvB,OAAA,EAAA6D,SAAA,OAAI,CAAC1D,IAAI,CAAC2D,UAAU,EAAAtC,IAAA,CAAAqC,SAAA,EACjBE,QAAQ,IAAKA,QAAQ,CAACxD,IAAI,KAAKqD,YAAY,CAACT,GAC/C,CAAC,GACD,CAAC,CAAC;MAEN,OAAO;QACL,GAAGS,YAAY;QACf,GAAGV;MACL,CAAC;IACH,CAAC,CAAC,GACF,EAAE;EACR;;EAEA;AACF;AACA;EACEc,yBAAyBA,CAACX,GAAkB,EAAuB;IAAA,IAAAY,SAAA;IACjE,OAAO,IAAAV,OAAA,CAAAvD,OAAA,EAAAiE,SAAA,OAAI,CAACR,iBAAiB,EAAAjC,IAAA,CAAAyC,SAAA,EAASF,QAAQ,IAC5C,IAAAP,SAAA,CAAAxD,OAAA,EAAAqD,GAAG,EAAA7B,IAAA,CAAH6B,GAAG,EAAUU,QAAQ,CAACZ,GAAG,CAC3B,CAAC;EACH;;EAEA;AACF;AACA;EACE,IAAIe,aAAaA,CAAA,EAA4B;IAAA,IAAAC,SAAA,EAAAC,SAAA;IAC3C,MAAMC,aAAa,GAAG,IAAI,CAAClE,IAAI,CAACkE,aAAa,GACzC,IAAAtB,IAAA,CAAA/C,OAAA,EAAAmE,SAAA,OAAI,CAAChE,IAAI,CAACkE,aAAa,EAAA7C,IAAA,CAAA2C,SAAA,EAAMG,YAAY,IAAK;MAAA,IAAAC,SAAA;MAC5C,MAAMC,kBAAkB,GACtB,IAAI,CAAC7C,WAAW,IAChB,IAAAJ,KAAA,CAAAvB,OAAA,EAAAuE,SAAA,OAAI,CAAC5C,WAAW,CAAC8C,iBAAiB,EAAAjD,IAAA,CAAA+C,SAAA,EAC/BG,gBAAgB,IAAKJ,YAAY,CAAC/D,IAAI,KAAKmE,gBAAgB,CAACvB,GAC/D,CAAC;MAEH,OAAO;QACL,GAAGqB,kBAAkB;QACrB,GAAGF;MACL,CAAC;IACH,CAAC,CAAC,GACF,EAAE;IAEN,MAAMK,0BAA0B,GAC9B,IAAI,CAAChD,WAAW,IAAI,IAAI,CAACA,WAAW,CAAC8C,iBAAiB,GAClD,IAAAlB,OAAA,CAAAvD,OAAA,EAAAoE,SAAA,OAAI,CAACzC,WAAW,CAAC8C,iBAAiB,EAAAjD,IAAA,CAAA4C,SAAA,EAASM,gBAAgB,IAAK;MAC9D,IAAI,CAAC,IAAI,CAACvE,IAAI,CAACkE,aAAa,EAAE;QAC5B,OAAO,IAAI;MACb;MAEA,OAAO,CAAC,IAAI,CAAClE,IAAI,CAACkE,aAAa,CAACO,IAAI,CACjCC,YAAY,IAAKA,YAAY,CAACtE,IAAI,KAAKmE,gBAAgB,CAACvB,GAC3D,CAAC;IACH,CAAC,CAAC,GACF,EAAE;IAER,OAAO,CAAC,GAAGkB,aAAa,EAAE,GAAGM,0BAA0B,CAAC;EAC1D;;EAEA;AACF;AACA;EACEG,qBAAqBA,CAACC,IAAmB,EAA2B;IAAA,IAAAC,SAAA;IAClE,OAAO,IAAAzB,OAAA,CAAAvD,OAAA,EAAAgF,SAAA,OAAI,CAACd,aAAa,EAAA1C,IAAA,CAAAwD,SAAA,EAASH,YAAY,IAC5C,IAAArB,SAAA,CAAAxD,OAAA,EAAA+E,IAAI,EAAAvD,IAAA,CAAJuD,IAAI,EAAUF,YAAY,CAACtE,IAAI,CACjC,CAAC;EACH;;EAEA;AACF;AACA;EACE0E,4BAA4BA,CAAA,EAEC;IAAA,IAD3BC,gBAA+B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAEpC,IAAI,CAAC,IAAI,CAACG,iBAAiB,EAAE;MAC3B,IAAI,CAACA,iBAAiB,GAAG,IAAIC,kCAAyB,CACpD,IAAI,CAACC,qCAAqC,CAACN,gBAAgB,CAAC,EAC5D,IAAI,CAAC7E,SAAS,EACd,IAAI,CAACC,YACP,CAAC;IACH;IAEA,OAAO,IAAI,CAACgF,iBAAiB;EAC/B;;EAEA;AACF;AACA;AACA;EACE;AACF;EACEE,qCAAqCA,CACnCN,gBAA+B,EAChB;IACf,MAAMO,uBAAuB,GAAG,CAAC;IACjC,IAAI,IAAI,CAACtF,IAAI,CAACuF,gBAAgB,EAAE;MAAA,IAAAC,SAAA,EAAAC,UAAA;MAC9B,MAAMC,oCAAoC,GACxC,IAAA9C,IAAA,CAAA/C,OAAA,EAAA2F,SAAA,OAAI,CAACxF,IAAI,CAACuF,gBAAgB,EAAAlE,IAAA,CAAAmE,SAAA,EAAMG,eAAe,IAC7CA,eAAe,CAACvF,IAAI,CAACwF,SAAS,CAC5BD,eAAe,CAACvF,IAAI,CAAC6E,MAAM,GAAGK,uBAChC,CACF,CAAC;MAEH,MAAMO,sBAAsB,GAAG,IAAI,IAAI,CAACC,MAAM,EAAE;MAEhD,IACE,IAAAzC,SAAA,CAAAxD,OAAA,EAAA6F,oCAAoC,EAAArE,IAAA,CAApCqE,oCAAoC,EAAUG,sBAAsB,CAAC,EACrE;QAAA,IAAAE,UAAA;QACA;QACA,OAAO,IAAA3C,OAAA,CAAAvD,OAAA,EAAAkG,UAAA,OAAI,CAAC/F,IAAI,CAACuF,gBAAgB,EAAAlE,IAAA,CAAA0E,UAAA,EAASJ,eAAe;UAAA,IAAAK,UAAA;UAAA,OACvD,IAAAC,SAAA,CAAApG,OAAA,EAAAmG,UAAA,GAAAL,eAAe,CAACvF,IAAI,EAAAiB,IAAA,CAAA2E,UAAA,EAAUH,sBAAsB,CAAC;QAAA,CACvD,CAAC;MACH;MAEA,MAAMK,kBAAkB,GAAG,IAAAtD,IAAA,CAAA/C,OAAA,EAAAkF,gBAAgB,EAAA1D,IAAA,CAAhB0D,gBAAgB,EACxCe,MAAM,IAAK,IAAIA,MAAM,CAACK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACtC,CAAC;;MAED;MACA,OAAO,IAAA/C,OAAA,CAAAvD,OAAA,EAAA4F,UAAA,OAAI,CAACzF,IAAI,CAACuF,gBAAgB,EAAAlE,IAAA,CAAAoE,UAAA,EAC9BE,eAAe,IACd,CAAC,IAAAtC,SAAA,CAAAxD,OAAA,EAAAqG,kBAAkB,EAAA7E,IAAA,CAAlB6E,kBAAkB,EACjBP,eAAe,CAACvF,IAAI,CAACwF,SAAS,CAC5BD,eAAe,CAACvF,IAAI,CAAC6E,MAAM,GAAGK,uBAChC,CACF,CACJ,CAAC;IACH;IACA,OAAO,EAAE;EACX;;EAEA;AACF;AACA;EACE,IAAIpF,SAASA,CAAA,EAAkB;IAC7B,OAAO,IAAAkD,OAAA,CAAAvD,OAAA,MAAI,CAACG,IAAI,IAAU+B,kCAAuB,CAAC,EAAEqE,KAAK,IAAI,IAAI;EACnE;;EAEA;AACF;AACA;EACEC,eAAeA,CAACC,aAAqB,EAAW;IAC9C,OAAO,IAAI,CAAC9E,WAAW,EAAE6E,eAAe,CAACC,aAAa,CAAC,IAAI,KAAK;EAClE;AACF;AAACC,OAAA,CAAA1G,OAAA,GAAAL,kBAAA","ignoreList":[]}
1
+ {"version":3,"file":"ConceptDetailModel.js","names":["_ResourceModel","_interopRequireDefault","require","_ConceptRelationCollection","_SourceReferenceCollection","_ConceptTypeDetailModel","_Constants","ConceptDetailModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","_relations","ConceptRelationCollection","data","relations","entryDate","modelOptions","type","modelName","isApplicableModel","contributions","resourcetype","getInitialChildModelLinks","conceptTypeLink","links","getLinkByKey","relationsCollectionLinks","relationsCollection","isCacheable","setChildModels","models","errors","conceptTypeModel","_find","call","model","ConceptTypeDetailModel","conceptType","key","getData","selfhref","href","selflink","setParameter","TIMEVERSION_FILTER_NAME","removeParameter","diagramLinks","getLinksByGroup","_conceptType","label","conceptLabel","modelCategory","taxonomyType","formula","labels","_context","labelTypes","_map","labelType","_context2","setting","_id","getLabelElementByIds","ids","_context3","_filter","_includes","conceptProperties","_context4","propertyTypes","propertyType","_context5","properties","property","getConceptPropertiesByIds","_context6","textfragments","_context7","_context9","textFragments","textFragment","_context8","textFragmentConfig","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context0","getSourceReferenceCollection","availableLocales","_sourceReferences","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context1","_context12","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","_context10","_context11","_endsWith","availableLanguages","split","value","isOfConceptType","conceptTypeId","exports"],"sources":["../../../src/models/concepts/ConceptDetailModel.js"],"sourcesContent":["// @flow\nimport ResourceModel from \"../base/ResourceModel\";\nimport ConceptRelationCollection from \"./ConceptRelationCollection\";\nimport SourceReferenceCollection from \"./SourceReferenceCollection\";\nimport ConceptTypeDetailModel from \"./ConceptTypeDetailModel\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type {\n ModularUIModel,\n labelsJSON,\n textfragmentJSON,\n propertyJSON,\n} from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type Href from \"../href/Href\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type LinkCollection from \"../links/LinkCollection\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Model for concept details, available through modelcatalog\n */\nexport default class ConceptDetailModel extends ResourceModel {\n _relations: ConceptRelationCollection;\n _conceptType: ?ConceptTypeDetailModel;\n _sourceReferences: SourceReferenceCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this._relations = new ConceptRelationCollection(\n this.data.relations,\n this.entryDate,\n this.modelOptions,\n );\n }\n\n /**\n */\n get type(): string {\n return \"ConceptDetail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ConceptDetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ConceptDetail\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const conceptTypeLink = this.links.getLinkByKey(\"concepttype\");\n const relationsCollectionLinks =\n this.relationsCollection.getInitialChildModelLinks();\n\n if (conceptTypeLink) {\n conceptTypeLink.isCacheable = true;\n return [conceptTypeLink, ...relationsCollectionLinks];\n }\n\n return relationsCollectionLinks;\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n // $FlowExpectedError[incompatible-type]\n const conceptTypeModel: ?ConceptTypeDetailModel = models.find(\n (model) => model instanceof ConceptTypeDetailModel,\n );\n\n if (conceptTypeModel) {\n this.conceptType = conceptTypeModel;\n }\n\n this.relationsCollection.setChildModels(models, errors);\n }\n\n /**\n * Retrieve concept detail identifier as key for this model\n */\n get key(): string {\n return this.getData(\"_id\", \"concept\");\n }\n\n /**\n * Getting the self link of this Concept\n */\n get selfhref(): Href {\n const { href } = this.selflink;\n\n if (this.entryDate) {\n href.setParameter(TIMEVERSION_FILTER_NAME, this.entryDate);\n } else {\n href.removeParameter(TIMEVERSION_FILTER_NAME);\n }\n\n return href;\n }\n\n /**\n * Available diagrams for the concept, most of the time just one\n */\n get diagramLinks(): LinkCollection {\n return this.links.getLinksByGroup(\"diagram\");\n }\n\n /**\n * Get conceptType of concept\n */\n get conceptType(): ?ConceptTypeDetailModel {\n return this._conceptType;\n }\n\n /**\n */\n set conceptType(conceptType: ?ConceptTypeDetailModel) {\n this._conceptType = conceptType;\n }\n\n /**\n * Get concept label\n */\n get label(): string {\n return this.data.conceptLabel;\n }\n\n /**\n * Get model category of the concept\n */\n get modelCategory(): string {\n return this.getData(\"modelCategory\", \"\");\n }\n\n /**\n * Get taxonomy type\n */\n get taxonomyType(): string {\n return this.getData(\"taxonomyType\", \"default\");\n }\n\n /**\n * Get concept relations collection\n */\n get relationsCollection(): ConceptRelationCollection {\n return this._relations;\n }\n\n /**\n * Get concept formula\n */\n get formula(): string {\n return this.data.formula;\n }\n\n /**\n * Get additional labels of concept\n */\n get labels(): Array<labelsJSON> {\n return this.conceptType && this.conceptType.labelTypes\n ? this.conceptType.labelTypes.map((labelType) => {\n const setting = this.data.labels\n ? this.data.labels.find((label) => label.type === labelType._id)\n : {};\n\n return {\n ...labelType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get label elements by id\n */\n getLabelElementByIds(ids: Array<string>): Array<labelsJSON> {\n return this.labels.filter((label: labelsJSON) => ids.includes(label._id));\n }\n\n /**\n * Get concept properties\n */\n get conceptProperties(): Array<propertyJSON> {\n return this.conceptType && this.conceptType.propertyTypes\n ? this.conceptType.propertyTypes.map((propertyType) => {\n const setting = this.data.properties\n ? this.data.properties.find(\n (property) => property.type === propertyType._id,\n )\n : {};\n\n return {\n ...propertyType,\n ...setting,\n };\n })\n : [];\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<propertyJSON> {\n return this.conceptProperties.filter((property) =>\n ids.includes(property._id),\n );\n }\n\n /**\n * Get Text fragments\n */\n get textfragments(): Array<textfragmentJSON> {\n const textFragments = this.data.textFragments\n ? this.data.textFragments.map((textFragment) => {\n const textFragmentConfig =\n this.conceptType &&\n this.conceptType.textFragmentTypes.find(\n (textFragmentType) => textFragment.type === textFragmentType._id,\n );\n\n return {\n ...textFragmentConfig,\n ...textFragment,\n };\n })\n : [];\n\n const notConfiguredTextFragments =\n this.conceptType && this.conceptType.textFragmentTypes\n ? this.conceptType.textFragmentTypes.filter((textFragmentType) => {\n if (!this.data.textFragments) {\n return true;\n }\n\n return !this.data.textFragments.some(\n (textfragment) => textfragment.type === textFragmentType._id,\n );\n })\n : [];\n\n return [...textFragments, ...notConfiguredTextFragments];\n }\n\n /**\n * Get text fragments by id\n */\n getTextFragmentByKeys(keys: Array<string>): Array<textfragmentJSON> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type),\n );\n }\n\n /**\n * Get source reference collection\n */\n getSourceReferenceCollection(\n availableLocales: Array<string> = [],\n ): SourceReferenceCollection {\n if (!this._sourceReferences) {\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n this.entryDate,\n this.modelOptions,\n );\n }\n\n return this._sourceReferences;\n }\n\n /*\n * Retrieve all sourceReferenceTypes that are valid for the current language\n * Used by sourceRef collection\n */\n /**\n */\n getSourceReferencesForCurrentLanguage(\n availableLocales: Array<string>,\n ): Array<Object> {\n const LANGUAGE_POSTFIX_LENGTH = 3;\n if (this.data.sourceReferences) {\n const availableLanguagesInSourceReferences =\n this.data.sourceReferences.map((sourceReference) =>\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n );\n\n const currentLanguagePostfix = `_${this.locale}`;\n\n if (\n availableLanguagesInSourceReferences.includes(currentLanguagePostfix)\n ) {\n // return all sourceReferences that end with language that is selected\n return this.data.sourceReferences.filter((sourceReference) =>\n sourceReference.type.endsWith(currentLanguagePostfix),\n );\n }\n\n const availableLanguages = availableLocales.map(\n (locale) => `_${locale.split(\"-\")[0]}`,\n );\n\n // return all sourceReferences that do not end with language postfix\n return this.data.sourceReferences.filter(\n (sourceReference) =>\n !availableLanguages.includes(\n sourceReference.type.substring(\n sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH,\n ),\n ),\n );\n }\n return [];\n }\n\n /**\n * Retrieve modelcatalog.js\n */\n get entryDate(): string | null {\n return this.data.filter?.[TIMEVERSION_FILTER_NAME]?.value ?? null;\n }\n\n /**\n * Indicates if the given concept type id or href exists in the hierarchy of concept types for this concept\n */\n isOfConceptType(conceptTypeId: string): boolean {\n return this.conceptType?.isOfConceptType(conceptTypeId) ?? false;\n }\n}\n"],"mappings":"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","ignoreList":[]}