@beinformed/ui 1.65.23 → 1.65.25

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 (299) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/esm/builder/mergeLayoutHintConfigurations.js +6 -5
  3. package/esm/builder/mergeLayoutHintConfigurations.js.flow +11 -5
  4. package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
  5. package/esm/constants/Settings.js +4 -1
  6. package/esm/constants/Settings.js.flow +3 -3
  7. package/esm/constants/Settings.js.map +1 -1
  8. package/esm/hooks/__tests__/useAuthentication.spec.js.flow +100 -132
  9. package/esm/hooks/useAuthentication.js +21 -11
  10. package/esm/hooks/useAuthentication.js.flow +29 -26
  11. package/esm/hooks/useAuthentication.js.map +1 -1
  12. package/esm/hooks/useModelCatalog.js +1 -1
  13. package/esm/hooks/useModelCatalog.js.flow +1 -1
  14. package/esm/hooks/useModelCatalog.js.map +1 -1
  15. package/esm/hooks/useModularUI.js +1 -1
  16. package/esm/hooks/useModularUI.js.flow +1 -1
  17. package/esm/hooks/useModularUI.js.map +1 -1
  18. package/esm/i18n/Locale.js +3 -1
  19. package/esm/i18n/Locale.js.flow +2 -2
  20. package/esm/i18n/Locale.js.map +1 -1
  21. package/esm/models/actions/ActionCollection.js +1 -1
  22. package/esm/models/actions/ActionCollection.js.flow +3 -3
  23. package/esm/models/actions/ActionCollection.js.map +1 -1
  24. package/esm/models/application/ApplicationModel.js +6 -1
  25. package/esm/models/application/ApplicationModel.js.flow +7 -2
  26. package/esm/models/application/ApplicationModel.js.map +1 -1
  27. package/esm/models/attributes/ChoiceAttributeModel.js +3 -5
  28. package/esm/models/attributes/ChoiceAttributeModel.js.flow +3 -5
  29. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  30. package/esm/models/attributes/CompositeAttributeModel.js +1 -1
  31. package/esm/models/attributes/CompositeAttributeModel.js.flow +1 -1
  32. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  33. package/esm/models/attributes/NumberAttributeModel.js +3 -1
  34. package/esm/models/attributes/NumberAttributeModel.js.flow +2 -1
  35. package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
  36. package/esm/models/attributes/StringAttributeModel.js +5 -4
  37. package/esm/models/attributes/StringAttributeModel.js.flow +4 -4
  38. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  39. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
  40. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.flow +1 -1
  41. package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  42. package/esm/models/base/BaseModel.js +6 -5
  43. package/esm/models/base/BaseModel.js.flow +7 -5
  44. package/esm/models/base/BaseModel.js.map +1 -1
  45. package/esm/models/base/ResourceModel.js +6 -7
  46. package/esm/models/base/ResourceModel.js.flow +4 -4
  47. package/esm/models/base/ResourceModel.js.map +1 -1
  48. package/esm/models/concepts/ConceptDetailModel.js +16 -16
  49. package/esm/models/concepts/ConceptDetailModel.js.flow +16 -19
  50. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  51. package/esm/models/concepts/SourceReferenceCollection.js +1 -1
  52. package/esm/models/concepts/SourceReferenceCollection.js.flow +1 -2
  53. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  54. package/esm/models/content/ContentLinkModel.js +6 -6
  55. package/esm/models/content/ContentLinkModel.js.flow +6 -6
  56. package/esm/models/content/ContentLinkModel.js.map +1 -1
  57. package/esm/models/filters/BaseFilterModel.js +3 -5
  58. package/esm/models/filters/BaseFilterModel.js.flow +4 -5
  59. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  60. package/esm/models/filters/StringFilterModel.js +3 -2
  61. package/esm/models/filters/StringFilterModel.js.flow +2 -2
  62. package/esm/models/filters/StringFilterModel.js.map +1 -1
  63. package/esm/models/form/FormModel.js +1 -1
  64. package/esm/models/form/FormModel.js.flow +1 -2
  65. package/esm/models/form/FormModel.js.map +1 -1
  66. package/esm/models/form/FormObjectModel.js +1 -1
  67. package/esm/models/form/FormObjectModel.js.flow +2 -3
  68. package/esm/models/form/FormObjectModel.js.map +1 -1
  69. package/esm/models/href/Href.js +2 -2
  70. package/esm/models/href/Href.js.flow +2 -2
  71. package/esm/models/href/Href.js.map +1 -1
  72. package/esm/models/index.js +2 -2
  73. package/esm/models/index.js.flow +1 -2
  74. package/esm/models/index.js.map +1 -1
  75. package/esm/models/links/normalizeLinkJSON.js +1 -1
  76. package/esm/models/links/normalizeLinkJSON.js.flow +1 -1
  77. package/esm/models/links/normalizeLinkJSON.js.map +1 -1
  78. package/esm/modularui/Authenticate.js +7 -2
  79. package/esm/modularui/Authenticate.js.flow +4 -2
  80. package/esm/modularui/Authenticate.js.map +1 -1
  81. package/esm/modularui/ModularUIRequest.js +2 -5
  82. package/esm/modularui/ModularUIRequest.js.flow +2 -6
  83. package/esm/modularui/ModularUIRequest.js.map +1 -1
  84. package/esm/modularui/UploadRequest.js +3 -1
  85. package/esm/modularui/UploadRequest.js.flow +3 -1
  86. package/esm/modularui/UploadRequest.js.map +1 -1
  87. package/esm/react-client/client.js +22 -10
  88. package/esm/react-client/client.js.flow +17 -11
  89. package/esm/react-client/client.js.map +1 -1
  90. package/esm/react-client/contextPath.js +3 -1
  91. package/esm/react-client/contextPath.js.flow +2 -1
  92. package/esm/react-client/contextPath.js.map +1 -1
  93. package/esm/redux/_i18n/I18nActions.js.flow +1 -1
  94. package/esm/redux/_i18n/I18nActions.js.map +1 -1
  95. package/esm/redux/_i18n/I18nReducer.js +1 -4
  96. package/esm/redux/_i18n/I18nReducer.js.flow +1 -4
  97. package/esm/redux/_i18n/I18nReducer.js.map +1 -1
  98. package/esm/redux/_modularui/ModularUIActions.js +1 -4
  99. package/esm/redux/_modularui/ModularUIActions.js.flow +3 -7
  100. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  101. package/esm/redux/_modularui/ModularUIConnector.js +2 -5
  102. package/esm/redux/_modularui/ModularUIConnector.js.flow +2 -2
  103. package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
  104. package/esm/redux/_modularui/ModularUIReducer.js +6 -3
  105. package/esm/redux/_modularui/ModularUIReducer.js.flow +2 -2
  106. package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
  107. package/esm/redux/_modularui/ModularUISelectors.js +12 -18
  108. package/esm/redux/_modularui/ModularUISelectors.js.flow +13 -14
  109. package/esm/redux/_modularui/ModularUISelectors.js.map +1 -1
  110. package/esm/redux/_modularui/withModularUI.js.flow +2 -2
  111. package/esm/redux/_modularui/withModularUI.js.map +1 -1
  112. package/esm/redux/actions/Application.js +32 -4
  113. package/esm/redux/actions/Application.js.flow +34 -5
  114. package/esm/redux/actions/Application.js.map +1 -1
  115. package/esm/redux/actions/Authorization.js +23 -26
  116. package/esm/redux/actions/Authorization.js.flow +30 -30
  117. package/esm/redux/actions/Authorization.js.map +1 -1
  118. package/esm/redux/actions/Error.js +2 -0
  119. package/esm/redux/actions/Error.js.flow +5 -4
  120. package/esm/redux/actions/Error.js.map +1 -1
  121. package/esm/redux/actions/Form.js.flow +1 -1
  122. package/esm/redux/actions/Form.js.map +1 -1
  123. package/esm/redux/actions/FormAttributeSet.js.flow +1 -1
  124. package/esm/redux/actions/FormAttributeSet.js.map +1 -1
  125. package/esm/redux/actions/FormAutosave.js.flow +1 -1
  126. package/esm/redux/actions/FormAutosave.js.map +1 -1
  127. package/esm/redux/actions/FormAutosubmit.js.flow +1 -1
  128. package/esm/redux/actions/FormAutosubmit.js.map +1 -1
  129. package/esm/redux/actions/FormAutoupdate.js.flow +1 -1
  130. package/esm/redux/actions/FormAutoupdate.js.map +1 -1
  131. package/esm/redux/actions/FormValidations.js.flow +1 -1
  132. package/esm/redux/actions/FormValidations.js.map +1 -1
  133. package/esm/redux/actions/Notification.js.flow +3 -3
  134. package/esm/redux/actions/Notification.js.map +1 -1
  135. package/esm/redux/actions/Preferences.js +4 -4
  136. package/esm/redux/actions/Preferences.js.flow +6 -10
  137. package/esm/redux/actions/Preferences.js.map +1 -1
  138. package/esm/redux/actions/SignIn.js +2 -4
  139. package/esm/redux/actions/SignIn.js.flow +4 -7
  140. package/esm/redux/actions/SignIn.js.map +1 -1
  141. package/esm/redux/actions/SignOut.js.flow +1 -1
  142. package/esm/redux/actions/SignOut.js.map +1 -1
  143. package/esm/redux/actions/__tests__/Application.spec.js.flow +67 -29
  144. package/esm/redux/actions/__tests__/Authorization.spec.js.flow +77 -83
  145. package/esm/redux/connectors/Form.js.flow +2 -2
  146. package/esm/redux/connectors/Form.js.map +1 -1
  147. package/esm/redux/connectors/FormAttributeSet.js.flow +2 -5
  148. package/esm/redux/connectors/FormAttributeSet.js.map +1 -1
  149. package/esm/redux/connectors/Progress.js.flow +1 -1
  150. package/esm/redux/connectors/Progress.js.map +1 -1
  151. package/esm/redux/connectors/SignIn.js.flow +1 -1
  152. package/esm/redux/connectors/SignIn.js.map +1 -1
  153. package/esm/redux/connectors/SignOut.js.flow +1 -1
  154. package/esm/redux/connectors/SignOut.js.map +1 -1
  155. package/esm/redux/reducers/ModelCatalogReducer.js +7 -9
  156. package/esm/redux/reducers/ModelCatalogReducer.js.flow +8 -9
  157. package/esm/redux/reducers/ModelCatalogReducer.js.map +1 -1
  158. package/esm/redux/store/configureStore.js +9 -2
  159. package/esm/redux/store/configureStore.js.flow +13 -2
  160. package/esm/redux/store/configureStore.js.map +1 -1
  161. package/esm/redux/types.js.flow +33 -5
  162. package/esm/redux/types.js.map +1 -1
  163. package/esm/utils/browser/Cache.js +3 -1
  164. package/esm/utils/browser/Cache.js.flow +2 -1
  165. package/esm/utils/browser/Cache.js.map +1 -1
  166. package/esm/utils/browser/__tests__/Cookies.spec.js.flow +2 -1
  167. package/esm/utils/datetime/DateTimeUtil.js +6 -5
  168. package/esm/utils/datetime/DateTimeUtil.js.flow +5 -11
  169. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  170. package/esm/utils/datetime/__tests__/DateTimeFormat.spec.js.flow +0 -6
  171. package/esm/utils/fetch/universalFetch.js +7 -8
  172. package/esm/utils/fetch/universalFetch.js.flow +13 -14
  173. package/esm/utils/fetch/universalFetch.js.map +1 -1
  174. package/esm/utils/fetch/xhr.js +2 -5
  175. package/esm/utils/fetch/xhr.js.flow +2 -6
  176. package/esm/utils/fetch/xhr.js.map +1 -1
  177. package/esm/utils/helpers/createHref.js +2 -1
  178. package/esm/utils/helpers/createHref.js.flow +1 -1
  179. package/esm/utils/helpers/createHref.js.map +1 -1
  180. package/esm/utils/helpers/createUUID.js +2 -1
  181. package/esm/utils/helpers/createUUID.js.flow +1 -1
  182. package/esm/utils/helpers/createUUID.js.map +1 -1
  183. package/esm/utils/number/parseNumbers.js +4 -3
  184. package/esm/utils/number/parseNumbers.js.flow +3 -3
  185. package/esm/utils/number/parseNumbers.js.map +1 -1
  186. package/lib/builder/mergeLayoutHintConfigurations.js +6 -5
  187. package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
  188. package/lib/constants/Settings.js +4 -1
  189. package/lib/constants/Settings.js.map +1 -1
  190. package/lib/hooks/useAuthentication.js +21 -11
  191. package/lib/hooks/useAuthentication.js.map +1 -1
  192. package/lib/hooks/useModelCatalog.js +1 -1
  193. package/lib/hooks/useModelCatalog.js.map +1 -1
  194. package/lib/hooks/useModularUI.js +1 -1
  195. package/lib/hooks/useModularUI.js.map +1 -1
  196. package/lib/i18n/Locale.js +3 -1
  197. package/lib/i18n/Locale.js.map +1 -1
  198. package/lib/models/actions/ActionCollection.js +1 -1
  199. package/lib/models/actions/ActionCollection.js.map +1 -1
  200. package/lib/models/application/ApplicationModel.js +6 -1
  201. package/lib/models/application/ApplicationModel.js.map +1 -1
  202. package/lib/models/attributes/ChoiceAttributeModel.js +3 -5
  203. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  204. package/lib/models/attributes/CompositeAttributeModel.js +1 -1
  205. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  206. package/lib/models/attributes/NumberAttributeModel.js +3 -1
  207. package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
  208. package/lib/models/attributes/StringAttributeModel.js +5 -4
  209. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  210. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
  211. package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
  212. package/lib/models/base/BaseModel.js +6 -5
  213. package/lib/models/base/BaseModel.js.map +1 -1
  214. package/lib/models/base/ResourceModel.js +6 -7
  215. package/lib/models/base/ResourceModel.js.map +1 -1
  216. package/lib/models/concepts/ConceptDetailModel.js +16 -16
  217. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  218. package/lib/models/concepts/SourceReferenceCollection.js +1 -1
  219. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  220. package/lib/models/content/ContentLinkModel.js +6 -6
  221. package/lib/models/content/ContentLinkModel.js.map +1 -1
  222. package/lib/models/filters/BaseFilterModel.js +3 -5
  223. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  224. package/lib/models/filters/StringFilterModel.js +3 -2
  225. package/lib/models/filters/StringFilterModel.js.map +1 -1
  226. package/lib/models/form/FormModel.js +1 -1
  227. package/lib/models/form/FormModel.js.map +1 -1
  228. package/lib/models/form/FormObjectModel.js +1 -1
  229. package/lib/models/form/FormObjectModel.js.map +1 -1
  230. package/lib/models/href/Href.js +2 -2
  231. package/lib/models/href/Href.js.map +1 -1
  232. package/lib/models/index.js.map +1 -1
  233. package/lib/models/links/normalizeLinkJSON.js +1 -1
  234. package/lib/models/links/normalizeLinkJSON.js.map +1 -1
  235. package/lib/modularui/Authenticate.js +7 -2
  236. package/lib/modularui/Authenticate.js.map +1 -1
  237. package/lib/modularui/ModularUIRequest.js +2 -5
  238. package/lib/modularui/ModularUIRequest.js.map +1 -1
  239. package/lib/modularui/UploadRequest.js +3 -1
  240. package/lib/modularui/UploadRequest.js.map +1 -1
  241. package/lib/react-client/client.js +22 -10
  242. package/lib/react-client/client.js.map +1 -1
  243. package/lib/react-client/contextPath.js +4 -1
  244. package/lib/react-client/contextPath.js.map +1 -1
  245. package/lib/redux/_i18n/I18nActions.js.map +1 -1
  246. package/lib/redux/_i18n/I18nReducer.js +1 -4
  247. package/lib/redux/_i18n/I18nReducer.js.map +1 -1
  248. package/lib/redux/_modularui/ModularUIActions.js +1 -4
  249. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  250. package/lib/redux/_modularui/ModularUIConnector.js +2 -5
  251. package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
  252. package/lib/redux/_modularui/ModularUIReducer.js +6 -3
  253. package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
  254. package/lib/redux/_modularui/ModularUISelectors.js +12 -18
  255. package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
  256. package/lib/redux/_modularui/withModularUI.js.map +1 -1
  257. package/lib/redux/actions/Application.js +33 -4
  258. package/lib/redux/actions/Application.js.map +1 -1
  259. package/lib/redux/actions/Authorization.js +23 -26
  260. package/lib/redux/actions/Authorization.js.map +1 -1
  261. package/lib/redux/actions/Error.js +2 -0
  262. package/lib/redux/actions/Error.js.map +1 -1
  263. package/lib/redux/actions/Form.js.map +1 -1
  264. package/lib/redux/actions/FormAttributeSet.js.map +1 -1
  265. package/lib/redux/actions/FormAutosave.js.map +1 -1
  266. package/lib/redux/actions/FormAutosubmit.js.map +1 -1
  267. package/lib/redux/actions/FormAutoupdate.js.map +1 -1
  268. package/lib/redux/actions/FormValidations.js.map +1 -1
  269. package/lib/redux/actions/Notification.js.map +1 -1
  270. package/lib/redux/actions/Preferences.js +4 -4
  271. package/lib/redux/actions/Preferences.js.map +1 -1
  272. package/lib/redux/actions/SignIn.js +2 -4
  273. package/lib/redux/actions/SignIn.js.map +1 -1
  274. package/lib/redux/actions/SignOut.js.map +1 -1
  275. package/lib/redux/connectors/Form.js.map +1 -1
  276. package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
  277. package/lib/redux/connectors/Progress.js.map +1 -1
  278. package/lib/redux/connectors/SignIn.js.map +1 -1
  279. package/lib/redux/connectors/SignOut.js.map +1 -1
  280. package/lib/redux/reducers/ModelCatalogReducer.js +7 -9
  281. package/lib/redux/reducers/ModelCatalogReducer.js.map +1 -1
  282. package/lib/redux/store/configureStore.js +9 -2
  283. package/lib/redux/store/configureStore.js.map +1 -1
  284. package/lib/redux/types.js.map +1 -1
  285. package/lib/utils/browser/Cache.js +3 -1
  286. package/lib/utils/browser/Cache.js.map +1 -1
  287. package/lib/utils/datetime/DateTimeUtil.js +6 -5
  288. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  289. package/lib/utils/fetch/universalFetch.js +7 -8
  290. package/lib/utils/fetch/universalFetch.js.map +1 -1
  291. package/lib/utils/fetch/xhr.js +2 -5
  292. package/lib/utils/fetch/xhr.js.map +1 -1
  293. package/lib/utils/helpers/createHref.js +2 -1
  294. package/lib/utils/helpers/createHref.js.map +1 -1
  295. package/lib/utils/helpers/createUUID.js +3 -1
  296. package/lib/utils/helpers/createUUID.js.map +1 -1
  297. package/lib/utils/number/parseNumbers.js +4 -3
  298. package/lib/utils/number/parseNumbers.js.map +1 -1
  299. package/package.json +9 -9
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
9
+ var _replaceAll = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/replace-all"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
10
11
  var _AttributeModel = _interopRequireDefault(require("./AttributeModel"));
11
12
  var _ConstraintCollection = _interopRequireDefault(require("./input-constraints/ConstraintCollection"));
@@ -125,7 +126,7 @@ class StringAttributeModel extends _AttributeModel.default {
125
126
  constraints.add(new _RegexConstraint.default({
126
127
  messageKey: "Constraint.ZipCode.InvalidFormat",
127
128
  defaultMessage: "Must be a valid Dutch ZIP code, e.g. 1234 AB",
128
- regex: new RegExp("^[1-9][0-9]{3} ?[a-zA-Z]{2}$", "gi")
129
+ regex: /^[1-9]\d{3} ?[a-z]{2}$/gi
129
130
  }));
130
131
  } else if (this.isEmail() && this.regexp) {
131
132
  constraints.add(new _RegexConstraint.default({
@@ -192,7 +193,7 @@ class StringAttributeModel extends _AttributeModel.default {
192
193
  if (this.isBSN()) {
193
194
  return this.formatBSN(value);
194
195
  }
195
- return value.replace(/ {2}/gi, " \u00A0");
196
+ return (0, _replaceAll.default)(value).call(value, " ", " \u00A0");
196
197
  }
197
198
 
198
199
  /**
@@ -202,7 +203,7 @@ class StringAttributeModel extends _AttributeModel.default {
202
203
  return "";
203
204
  }
204
205
  if (this.isIBAN() || this.isZipcode() || this.isBSN()) {
205
- return value.replace(/[^a-z0-9,]/gi, "");
206
+ return (0, _replaceAll.default)(value).call(value, /[^a-z0-9,]/gi, "");
206
207
  }
207
208
  return value;
208
209
  }
@@ -238,7 +239,7 @@ class StringAttributeModel extends _AttributeModel.default {
238
239
  if (typeof this.value === "string") {
239
240
  const formattedValue = this.formatValue(this.value);
240
241
  // fix for rendering of multiple spaces
241
- return formattedValue.replace(/ {2}/gi, " \u00A0");
242
+ return (0, _replaceAll.default)(formattedValue).call(formattedValue, " ", " \u00A0");
242
243
  }
243
244
  return this.value == null ? "" : this.value;
244
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: new RegExp(\"^[1-9][0-9]{3} ?[a-zA-Z]{2}$\", \"gi\"),\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","_replaceAll","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: /^[1-9]\\d{3} ?[a-z]{2}$/gi,\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replaceAll(\" \", \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replaceAll(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replaceAll(\" \", \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -104,7 +104,7 @@ class DatetimeFormatConstraint {
104
104
  if (!hasDateTime) {
105
105
  this._id = "Constraint.DateTime.MissingValue";
106
106
  return false;
107
- } else if (!new RegExp("[+-](0[0-9]|1[0-4]):[0-5][0-9]").test(value)) {
107
+ } else if (!/[+-](0\d|1[0-4]):[0-5]\d/.test(value)) {
108
108
  this._id = "Constraint.DateTime.MissingOffset";
109
109
  return false;
110
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatetimeFormatConstraint.js","names":["_DateTimeUtil","require","_constants","DatetimeFormatConstraint","constructor","type","format","formatLabel","_context","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_formatLabel","id","_id","hasValidation","defaultMessage","parameters","offsets","DateTimeUtil","getTimezoneOffsets","daylight","label","standard","formatUtil","TimestampUtil","validate","value","hasFormat","isIncludeTimeOffsetInDateTimes","hasDateTime","RegExp","test","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DatetimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n isIncludeTimeOffsetInDateTimes,\n} from \"../../../constants\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DatetimeFormatConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _formatNoOffset: string;\n _formatLabel: string;\n\n _id: string = \"Constraint.DateTime.MissingValue\";\n\n /**\n */\n constructor(type: string, format: string, formatLabel: string) {\n this._type = type;\n this._format = format;\n this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, \"\").trim();\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n return \"Please select ${daylight-label} or ${standard-label}\";\n }\n return \"Date and time should both be entered\";\n }\n\n /**\n */\n get parameters():\n | { format: string }\n | { \"daylight-label\": ?string, \"standard-label\": ?string } {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n const offsets = DateTimeUtil.getTimezoneOffsets();\n return {\n \"daylight-label\": offsets.daylight?.label,\n \"standard-label\": offsets.standard?.label,\n };\n }\n return { format: this.formatLabel };\n }\n\n /**\n */\n get formatUtil(): typeof TimestampUtil | typeof DateTimeUtil {\n if (this.type === \"timestamp\") {\n return TimestampUtil;\n }\n\n return DateTimeUtil;\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n if (this.formatUtil.hasFormat(value, this.format)) {\n return true;\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n const hasDateTime = this.formatUtil.hasFormat(\n value,\n this._formatNoOffset,\n );\n if (!hasDateTime) {\n this._id = \"Constraint.DateTime.MissingValue\";\n return false;\n } else if (!new RegExp(\"[+-](0[0-9]|1[0-4]):[0-5][0-9]\").test(value)) {\n this._id = \"Constraint.DateTime.MissingOffset\";\n return false;\n }\n }\n\n return false;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DatetimeFormatConstraint;\n"],"mappings":";;;;;;;;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAD,OAAA;AAOA;AACA;AACA,MAAME,wBAAwB,CAA6B;EAQzD;AACF;EACEC,WAAWA,CAACC,IAAY,EAAEC,MAAc,EAAEC,WAAmB,EAAE;IAAA,IAAAC,QAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,eAJjD,kCAAkC;IAK9C,IAAI,CAACC,KAAK,GAAGN,IAAI;IACjB,IAAI,CAACO,OAAO,GAAGN,MAAM;IACrB,IAAI,CAACO,eAAe,GAAG,IAAAC,KAAA,CAAAJ,OAAA,EAAAF,QAAA,GAAAF,MAAM,CAACS,OAAO,CAACC,iCAAsB,EAAE,EAAE,CAAC,EAAAC,IAAA,CAAAT,QAAM,CAAC;IACxE,IAAI,CAACU,YAAY,GAAGX,WAAW;EACjC;;EAEA;AACF;EACE,IAAIF,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACM,KAAK;EACnB;;EAEA;AACF;EACE,IAAIQ,EAAEA,CAAA,EAAW;IACf,OAAO,IAAI,CAACC,GAAG;EACjB;;EAEA;AACF;EACE,IAAId,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACM,OAAO;EACrB;;EAEA;AACF;EACE,IAAIL,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACW,YAAY;EAC1B;;EAEA;AACF;EACEG,aAAaA,CAAA,EAAY;IACvB,OAAO,IAAI;EACb;;EAEA;AACF;EACE,IAAIC,cAAcA,CAAA,EAAW;IAC3B,IAAI,IAAI,CAACF,GAAG,KAAK,mCAAmC,EAAE;MACpD,OAAO,sDAAsD;IAC/D;IACA,OAAO,sCAAsC;EAC/C;;EAEA;AACF;EACE,IAAIG,UAAUA,CAAA,EAE+C;IAC3D,IAAI,IAAI,CAACH,GAAG,KAAK,mCAAmC,EAAE;MACpD,MAAMI,OAAO,GAAGC,0BAAY,CAACC,kBAAkB,CAAC,CAAC;MACjD,OAAO;QACL,gBAAgB,EAAEF,OAAO,CAACG,QAAQ,EAAEC,KAAK;QACzC,gBAAgB,EAAEJ,OAAO,CAACK,QAAQ,EAAED;MACtC,CAAC;IACH;IACA,OAAO;MAAEtB,MAAM,EAAE,IAAI,CAACC;IAAY,CAAC;EACrC;;EAEA;AACF;EACE,IAAIuB,UAAUA,CAAA,EAA+C;IAC3D,IAAI,IAAI,CAACzB,IAAI,KAAK,WAAW,EAAE;MAC7B,OAAO0B,2BAAa;IACtB;IAEA,OAAON,0BAAY;EACrB;;EAEA;AACF;EACEO,QAAQA,CAACC,KAAa,EAAW;IAC/B,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,KAAK;IACd;IAEA,IAAI,IAAI,CAACH,UAAU,CAACI,SAAS,CAACD,KAAK,EAAE,IAAI,CAAC3B,MAAM,CAAC,EAAE;MACjD,OAAO,IAAI;IACb;IAEA,IAAI,IAAA6B,yCAA8B,EAAC,CAAC,EAAE;MACpC,MAAMC,WAAW,GAAG,IAAI,CAACN,UAAU,CAACI,SAAS,CAC3CD,KAAK,EACL,IAAI,CAACpB,eACP,CAAC;MACD,IAAI,CAACuB,WAAW,EAAE;QAChB,IAAI,CAAChB,GAAG,GAAG,kCAAkC;QAC7C,OAAO,KAAK;MACd,CAAC,MAAM,IAAI,CAAC,IAAIiB,MAAM,CAAC,gCAAgC,CAAC,CAACC,IAAI,CAACL,KAAK,CAAC,EAAE;QACpE,IAAI,CAACb,GAAG,GAAG,mCAAmC;QAC9C,OAAO,KAAK;MACd;IACF;IAEA,OAAO,KAAK;EACd;;EAEA;AACF;EACE,IAAImB,qBAAqBA,CAAA,EAAY;IACnC,OAAO,KAAK;EACd;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA/B,OAAA,GAEcP,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"DatetimeFormatConstraint.js","names":["_DateTimeUtil","require","_constants","DatetimeFormatConstraint","constructor","type","format","formatLabel","_context","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_formatLabel","id","_id","hasValidation","defaultMessage","parameters","offsets","DateTimeUtil","getTimezoneOffsets","daylight","label","standard","formatUtil","TimestampUtil","validate","value","hasFormat","isIncludeTimeOffsetInDateTimes","hasDateTime","test","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DatetimeFormatConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n isIncludeTimeOffsetInDateTimes,\n} from \"../../../constants\";\n\nimport type { IConstraintModel } from \"../../types\";\n\n/**\n */\nclass DatetimeFormatConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _formatNoOffset: string;\n _formatLabel: string;\n\n _id: string = \"Constraint.DateTime.MissingValue\";\n\n /**\n */\n constructor(type: string, format: string, formatLabel: string) {\n this._type = type;\n this._format = format;\n this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, \"\").trim();\n this._formatLabel = formatLabel;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n return this._id;\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get formatLabel(): string {\n return this._formatLabel;\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n get defaultMessage(): string {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n return \"Please select ${daylight-label} or ${standard-label}\";\n }\n return \"Date and time should both be entered\";\n }\n\n /**\n */\n get parameters():\n | { format: string }\n | { \"daylight-label\": ?string, \"standard-label\": ?string } {\n if (this._id === \"Constraint.DateTime.MissingOffset\") {\n const offsets = DateTimeUtil.getTimezoneOffsets();\n return {\n \"daylight-label\": offsets.daylight?.label,\n \"standard-label\": offsets.standard?.label,\n };\n }\n return { format: this.formatLabel };\n }\n\n /**\n */\n get formatUtil(): typeof TimestampUtil | typeof DateTimeUtil {\n if (this.type === \"timestamp\") {\n return TimestampUtil;\n }\n\n return DateTimeUtil;\n }\n\n /**\n */\n validate(value: string): boolean {\n if (!value) {\n return false;\n }\n\n if (this.formatUtil.hasFormat(value, this.format)) {\n return true;\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n const hasDateTime = this.formatUtil.hasFormat(\n value,\n this._formatNoOffset,\n );\n if (!hasDateTime) {\n this._id = \"Constraint.DateTime.MissingValue\";\n return false;\n } else if (!/[+-](0\\d|1[0-4]):[0-5]\\d/.test(value)) {\n this._id = \"Constraint.DateTime.MissingOffset\";\n return false;\n }\n }\n\n return false;\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DatetimeFormatConstraint;\n"],"mappings":"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","ignoreList":[]}
@@ -20,10 +20,7 @@ class BaseModel {
20
20
  /**
21
21
  * constructor
22
22
  */
23
- constructor(data, contributions, modelOptions = {
24
- origin: "",
25
- contextPath: (0, _constants.getBasePathModularUI)()
26
- }) {
23
+ constructor(data, contributions, modelOptions = {}) {
27
24
  (0, _defineProperty2.default)(this, "_data", void 0);
28
25
  (0, _defineProperty2.default)(this, "_contributions", void 0);
29
26
  (0, _defineProperty2.default)(this, "_layouthint", void 0);
@@ -32,7 +29,11 @@ class BaseModel {
32
29
  this._data = data;
33
30
  this._contributions = contributions;
34
31
  this._layouthint = new _LayoutHintCollection.default(this.getContribution("layouthint", []));
35
- this._modelOptions = modelOptions;
32
+ this._modelOptions = {
33
+ origin: "",
34
+ contextPath: (0, _constants.getBasePathModularUI)(),
35
+ ...modelOptions
36
+ };
36
37
  }
37
38
 
38
39
  /**
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","origin","contextPath","getBasePathModularUI","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 ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n\n this._modelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n ...modelOptions,\n };\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":";;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,SAAS,CAAC;EAOd;AACF;AACA;EACEC,WAAWA,CACTC,IAAY,EACZC,aAAqB,EACrBC,YAA0B,GAAG,CAAC,CAAC,EAC/B;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IACA,IAAI,CAACC,KAAK,GAAGL,IAAI;IACjB,IAAI,CAACM,cAAc,GAAGL,aAAa;IACnC,IAAI,CAACM,WAAW,GAAG,IAAIC,6BAAoB,CACzC,IAAI,CAACC,eAAe,CAAC,YAAY,EAAE,EAAE,CACvC,CAAC;IAED,IAAI,CAACC,aAAa,GAAG;MACnBC,MAAM,EAAE,EAAE;MACVC,WAAW,EAAE,IAAAC,+BAAoB,EAAC,CAAC;MACnC,GAAGX;IACL,CAAC;EACH;;EAEA;AACF;AACA;EACE,IAAIF,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACK,KAAK,IAAI,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;EACES,OAAOA,CAACC,QAAgB,EAAEC,YAAiB,GAAG,IAAI,EAAO;IACvD,OAAO,IAAI,CAAChB,IAAI,CAACe,QAAQ,CAAC,IAAIC,YAAY;EAC5C;;EAEA;AACF;AACA;EACE,IAAIf,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACK,cAAc,IAAI,CAAC,CAAC;EAClC;;EAEA;AACF;AACA;EACEG,eAAeA,CAACM,QAAgB,EAAEC,YAAiB,GAAG,IAAI,EAAO;IAC/D,OAAO,IAAI,CAACf,aAAa,CAACc,QAAQ,CAAC,IAAIC,YAAY;EACrD;;EAEA;AACF;EACE,IAAId,YAAYA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAACQ,aAAa;EAC3B;;EAEA;AACF;EACE,IAAIC,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACT,YAAY,CAACS,MAAM,IAAI,EAAE;EACvC;;EAEA;AACF;EACE,IAAIC,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACV,YAAY,CAACU,WAAW,IAAI,IAAAC,+BAAoB,EAAC,CAAC;EAChE;;EAEA;AACF;AACA;EACE,IAAII,UAAUA,CAAA,EAAyB;IACrC,OAAO,IAAI,CAACV,WAAW;EACzB;;EAEA;AACF;AACA;EACE,IAAIU,UAAUA,CAACA,UAAyB,EAAE;IACxC,IAAI,CAACV,WAAW,GAAG,IAAIC,6BAAoB,CAACS,UAAU,CAAC;EACzD;;EAEA;AACF;AACA;EACE,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAAC,KAAA,CAAAf,OAAA,EAAY,IAAI,CAACJ,IAAI,CAAC,CAACoB,MAAM,GAAG,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAIC,UAAUA,CAACC,GAAW,EAAE;IAC1B,IAAI,CAACC,WAAW,GAAGD,GAAG;EACxB;;EAEA;AACF;AACA;EACE,IAAID,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACE,WAAW;EACzB;;EAEA;AACF;AACA;EACEC,SAASA,CAAA,EAAsB;IAC7B,OAAO;MACLxB,IAAI,EAAE,IAAI,CAACK,KAAK;MAChBJ,aAAa,EAAE,IAAI,CAACK,cAAc;MAClCe,UAAU,EAAE,IAAI,CAACE,WAAW;MAC5BE,OAAO,EAAE,IAAI,CAACf;IAChB,CAAC;EACH;;EAEA;AACF;AACA;EACEgB,SAASA,CAAC1B,IAAuB,EAAE;IACjC,IAAI,CAACuB,WAAW,GAAGvB,IAAI,CAACqB,UAAU;EACpC;;EAEA;AACF;AACA;EACEM,KAAKA,CAAA,EAAQ;IACX,OAAO,IAAAC,WAAK,EAAC,IAAI,CAAC;EACpB;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA1B,OAAA,GAEcN,SAAS","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
8
+ var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
9
9
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
11
11
  var _ModularUIResponse = _interopRequireDefault(require("../../modularui/ModularUIResponse"));
@@ -169,10 +169,9 @@ class ResourceModel extends _BaseModel.default {
169
169
  /**
170
170
  * Add child models to this model
171
171
  */
172
- addChildModels(models, errors) {
173
- var _context, _context2;
174
- const flattenModels = (0, _concat.default)(_context = []).call(_context, ...models);
175
- const flattenErrors = (0, _concat.default)(_context2 = []).call(_context2, errors);
172
+ addChildModels(models = [], errors = []) {
173
+ const flattenModels = (0, _flat.default)(models).call(models);
174
+ const flattenErrors = (0, _flat.default)(errors).call(errors);
176
175
  this._childModels = flattenModels;
177
176
  this.setChildModels(flattenModels, flattenErrors);
178
177
  return this;
@@ -194,13 +193,13 @@ class ResourceModel extends _BaseModel.default {
194
193
  /**
195
194
  */
196
195
  dehydrate() {
197
- var _context3;
196
+ var _context;
198
197
  return {
199
198
  ...super.dehydrate(),
200
199
  key: this._key,
201
200
  locale: this._locale,
202
201
  // $FlowFixMe[missing-type-arg]
203
- childModels: (0, _map.default)(_context3 = this._childModels).call(_context3, childModel => childModel.dehydrate())
202
+ childModels: (0, _map.default)(_context = this._childModels).call(_context, childModel => childModel.dehydrate())
204
203
  };
205
204
  }
206
205
  }
@@ -1 +1 @@
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":[]}
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","flattenModels","_flat","call","flattenErrors","setChildModels","dehydrate","_context","_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 = models.flat();\n const flattenErrors = errors.flat();\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":[]}
@@ -153,7 +153,7 @@ class ConceptDetailModel extends _ResourceModel.default {
153
153
  */
154
154
  get labels() {
155
155
  var _context;
156
- return this.conceptType && this.conceptType.labelTypes ? (0, _map.default)(_context = this.conceptType.labelTypes).call(_context, labelType => {
156
+ return this.conceptType?.labelTypes ? (0, _map.default)(_context = this.conceptType.labelTypes).call(_context, labelType => {
157
157
  var _context2;
158
158
  const setting = this.data.labels ? (0, _find.default)(_context2 = this.data.labels).call(_context2, label => label.type === labelType._id) : {};
159
159
  return {
@@ -176,7 +176,7 @@ class ConceptDetailModel extends _ResourceModel.default {
176
176
  */
177
177
  get conceptProperties() {
178
178
  var _context4;
179
- return this.conceptType && this.conceptType.propertyTypes ? (0, _map.default)(_context4 = this.conceptType.propertyTypes).call(_context4, propertyType => {
179
+ return this.conceptType?.propertyTypes ? (0, _map.default)(_context4 = this.conceptType.propertyTypes).call(_context4, propertyType => {
180
180
  var _context5;
181
181
  const setting = this.data.properties ? (0, _find.default)(_context5 = this.data.properties).call(_context5, property => property.type === propertyType._id) : {};
182
182
  return {
@@ -198,16 +198,16 @@ class ConceptDetailModel extends _ResourceModel.default {
198
198
  * Get Text fragments
199
199
  */
200
200
  get textfragments() {
201
- var _context7, _context9;
201
+ var _context7, _context0;
202
202
  const textFragments = this.data.textFragments ? (0, _map.default)(_context7 = this.data.textFragments).call(_context7, textFragment => {
203
- var _context8;
204
- const textFragmentConfig = this.conceptType && (0, _find.default)(_context8 = this.conceptType.textFragmentTypes).call(_context8, textFragmentType => textFragment.type === textFragmentType._id);
203
+ var _context8, _context9;
204
+ const textFragmentConfig = ((_context8 = this.conceptType) == null ? void 0 : Function.call.bind((0, _find.default)(_context9 = _context8.textFragmentTypes), _context9))?.(textFragmentType => textFragment.type === textFragmentType._id);
205
205
  return {
206
206
  ...textFragmentConfig,
207
207
  ...textFragment
208
208
  };
209
209
  }) : [];
210
- const notConfiguredTextFragments = this.conceptType && this.conceptType.textFragmentTypes ? (0, _filter.default)(_context9 = this.conceptType.textFragmentTypes).call(_context9, textFragmentType => {
210
+ const notConfiguredTextFragments = this.conceptType?.textFragmentTypes ? (0, _filter.default)(_context0 = this.conceptType.textFragmentTypes).call(_context0, textFragmentType => {
211
211
  if (!this.data.textFragments) {
212
212
  return true;
213
213
  }
@@ -220,8 +220,8 @@ class ConceptDetailModel extends _ResourceModel.default {
220
220
  * Get text fragments by id
221
221
  */
222
222
  getTextFragmentByKeys(keys) {
223
- var _context0;
224
- return (0, _filter.default)(_context0 = this.textfragments).call(_context0, textfragment => (0, _includes.default)(keys).call(keys, textfragment.type));
223
+ var _context1;
224
+ return (0, _filter.default)(_context1 = this.textfragments).call(_context1, textfragment => (0, _includes.default)(keys).call(keys, textfragment.type));
225
225
  }
226
226
 
227
227
  /**
@@ -230,7 +230,7 @@ class ConceptDetailModel extends _ResourceModel.default {
230
230
  getSourceReferenceCollection(availableLocales = []) {
231
231
  if (!this._sourceReferences) {
232
232
  let sectionReferenceTypes = [];
233
- if (this.conceptType && this.conceptType.sectionReferenceTypes) {
233
+ if (this.conceptType?.sectionReferenceTypes) {
234
234
  sectionReferenceTypes = this.conceptType.sectionReferenceTypes;
235
235
  }
236
236
  this._sourceReferences = new _SourceReferenceCollection.default(this.getSourceReferencesForCurrentLanguage(availableLocales), sectionReferenceTypes, this.entryDate, this.modelOptions);
@@ -247,21 +247,21 @@ class ConceptDetailModel extends _ResourceModel.default {
247
247
  getSourceReferencesForCurrentLanguage(availableLocales) {
248
248
  const LANGUAGE_POSTFIX_LENGTH = 3;
249
249
  if (this.data.sourceReferences) {
250
- var _context1, _context12;
251
- const availableLanguagesInSourceReferences = (0, _map.default)(_context1 = this.data.sourceReferences).call(_context1, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
250
+ var _context10, _context13;
251
+ const availableLanguagesInSourceReferences = (0, _map.default)(_context10 = this.data.sourceReferences).call(_context10, sourceReference => sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH));
252
252
  const currentLanguagePostfix = `_${this.locale}`;
253
253
  if ((0, _includes.default)(availableLanguagesInSourceReferences).call(availableLanguagesInSourceReferences, currentLanguagePostfix)) {
254
- var _context10;
254
+ var _context11;
255
255
  // return all sourceReferences that end with language that is selected
256
- return (0, _filter.default)(_context10 = this.data.sourceReferences).call(_context10, sourceReference => {
257
- var _context11;
258
- return (0, _endsWith.default)(_context11 = sourceReference.type).call(_context11, currentLanguagePostfix);
256
+ return (0, _filter.default)(_context11 = this.data.sourceReferences).call(_context11, sourceReference => {
257
+ var _context12;
258
+ return (0, _endsWith.default)(_context12 = sourceReference.type).call(_context12, currentLanguagePostfix);
259
259
  });
260
260
  }
261
261
  const availableLanguages = (0, _map.default)(availableLocales).call(availableLocales, locale => `_${locale.split("-")[0]}`);
262
262
 
263
263
  // return all sourceReferences that do not end with language postfix
264
- return (0, _filter.default)(_context12 = this.data.sourceReferences).call(_context12, sourceReference => !(0, _includes.default)(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
264
+ return (0, _filter.default)(_context13 = this.data.sourceReferences).call(_context13, sourceReference => !(0, _includes.default)(availableLanguages).call(availableLanguages, sourceReference.type.substring(sourceReference.type.length - LANGUAGE_POSTFIX_LENGTH)));
265
265
  }
266
266
  return [];
267
267
  }
@@ -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","_sourceReferences","sectionReferenceTypes","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 let sectionReferenceTypes = [];\n if (this.conceptType && this.conceptType.sectionReferenceTypes) {\n sectionReferenceTypes = this.conceptType.sectionReferenceTypes;\n }\n\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n sectionReferenceTypes,\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":[]}
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","_context0","textFragments","textFragment","_context8","_context9","textFragmentConfig","Function","bind","textFragmentTypes","textFragmentType","notConfiguredTextFragments","some","textfragment","getTextFragmentByKeys","keys","_context1","getSourceReferenceCollection","availableLocales","_sourceReferences","sectionReferenceTypes","SourceReferenceCollection","getSourceReferencesForCurrentLanguage","LANGUAGE_POSTFIX_LENGTH","sourceReferences","_context10","_context13","availableLanguagesInSourceReferences","sourceReference","substring","length","currentLanguagePostfix","locale","_context11","_context12","_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?.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?.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 = 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 = 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 let sectionReferenceTypes = [];\n if (this.conceptType?.sectionReferenceTypes) {\n sectionReferenceTypes = this.conceptType.sectionReferenceTypes;\n }\n\n this._sourceReferences = new SourceReferenceCollection(\n this.getSourceReferencesForCurrentLanguage(availableLocales),\n sectionReferenceTypes,\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,EAAEmB,UAAU,GAC/B,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,EAAEgC,aAAa,GAClC,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,EAAAC,SAAA;MAC5C,MAAMC,kBAAkB,GAAG,EAAAF,SAAA,OAAI,CAAC5C,WAAW,qBAAA+C,QAAA,CAAAlD,IAAA,CAAAmD,IAAA,KAAApD,KAAA,CAAAvB,OAAA,EAAAwE,SAAA,GAAhBD,SAAA,CAAkBK,iBAAiB,GAAAJ,SAAA,KAC3DK,gBAAgB,IAAKP,YAAY,CAAC/D,IAAI,KAAKsE,gBAAgB,CAAC1B,GAC/D,CAAC;MAED,OAAO;QACL,GAAGsB,kBAAkB;QACrB,GAAGH;MACL,CAAC;IACH,CAAC,CAAC,GACF,EAAE;IAEN,MAAMQ,0BAA0B,GAAG,IAAI,CAACnD,WAAW,EAAEiD,iBAAiB,GAClE,IAAArB,OAAA,CAAAvD,OAAA,EAAAoE,SAAA,OAAI,CAACzC,WAAW,CAACiD,iBAAiB,EAAApD,IAAA,CAAA4C,SAAA,EAASS,gBAAgB,IAAK;MAC9D,IAAI,CAAC,IAAI,CAAC1E,IAAI,CAACkE,aAAa,EAAE;QAC5B,OAAO,IAAI;MACb;MAEA,OAAO,CAAC,IAAI,CAAClE,IAAI,CAACkE,aAAa,CAACU,IAAI,CACjCC,YAAY,IAAKA,YAAY,CAACzE,IAAI,KAAKsE,gBAAgB,CAAC1B,GAC3D,CAAC;IACH,CAAC,CAAC,GACF,EAAE;IAEN,OAAO,CAAC,GAAGkB,aAAa,EAAE,GAAGS,0BAA0B,CAAC;EAC1D;;EAEA;AACF;AACA;EACEG,qBAAqBA,CAACC,IAAmB,EAA2B;IAAA,IAAAC,SAAA;IAClE,OAAO,IAAA5B,OAAA,CAAAvD,OAAA,EAAAmF,SAAA,OAAI,CAACjB,aAAa,EAAA1C,IAAA,CAAA2D,SAAA,EAASH,YAAY,IAC5C,IAAAxB,SAAA,CAAAxD,OAAA,EAAAkF,IAAI,EAAA1D,IAAA,CAAJ0D,IAAI,EAAUF,YAAY,CAACzE,IAAI,CACjC,CAAC;EACH;;EAEA;AACF;AACA;EACE6E,4BAA4BA,CAC1BC,gBAA+B,GAAG,EAAE,EACT;IAC3B,IAAI,CAAC,IAAI,CAACC,iBAAiB,EAAE;MAC3B,IAAIC,qBAAqB,GAAG,EAAE;MAC9B,IAAI,IAAI,CAAC5D,WAAW,EAAE4D,qBAAqB,EAAE;QAC3CA,qBAAqB,GAAG,IAAI,CAAC5D,WAAW,CAAC4D,qBAAqB;MAChE;MAEA,IAAI,CAACD,iBAAiB,GAAG,IAAIE,kCAAyB,CACpD,IAAI,CAACC,qCAAqC,CAACJ,gBAAgB,CAAC,EAC5DE,qBAAqB,EACrB,IAAI,CAAClF,SAAS,EACd,IAAI,CAACC,YACP,CAAC;IACH;IAEA,OAAO,IAAI,CAACgF,iBAAiB;EAC/B;;EAEA;AACF;AACA;AACA;EACE;AACF;EACEG,qCAAqCA,CACnCJ,gBAA+B,EAChB;IACf,MAAMK,uBAAuB,GAAG,CAAC;IACjC,IAAI,IAAI,CAACvF,IAAI,CAACwF,gBAAgB,EAAE;MAAA,IAAAC,UAAA,EAAAC,UAAA;MAC9B,MAAMC,oCAAoC,GACxC,IAAA/C,IAAA,CAAA/C,OAAA,EAAA4F,UAAA,OAAI,CAACzF,IAAI,CAACwF,gBAAgB,EAAAnE,IAAA,CAAAoE,UAAA,EAAMG,eAAe,IAC7CA,eAAe,CAACxF,IAAI,CAACyF,SAAS,CAC5BD,eAAe,CAACxF,IAAI,CAAC0F,MAAM,GAAGP,uBAChC,CACF,CAAC;MAEH,MAAMQ,sBAAsB,GAAG,IAAI,IAAI,CAACC,MAAM,EAAE;MAEhD,IACE,IAAA3C,SAAA,CAAAxD,OAAA,EAAA8F,oCAAoC,EAAAtE,IAAA,CAApCsE,oCAAoC,EAAUI,sBAAsB,CAAC,EACrE;QAAA,IAAAE,UAAA;QACA;QACA,OAAO,IAAA7C,OAAA,CAAAvD,OAAA,EAAAoG,UAAA,OAAI,CAACjG,IAAI,CAACwF,gBAAgB,EAAAnE,IAAA,CAAA4E,UAAA,EAASL,eAAe;UAAA,IAAAM,UAAA;UAAA,OACvD,IAAAC,SAAA,CAAAtG,OAAA,EAAAqG,UAAA,GAAAN,eAAe,CAACxF,IAAI,EAAAiB,IAAA,CAAA6E,UAAA,EAAUH,sBAAsB,CAAC;QAAA,CACvD,CAAC;MACH;MAEA,MAAMK,kBAAkB,GAAG,IAAAxD,IAAA,CAAA/C,OAAA,EAAAqF,gBAAgB,EAAA7D,IAAA,CAAhB6D,gBAAgB,EACxCc,MAAM,IAAK,IAAIA,MAAM,CAACK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACtC,CAAC;;MAED;MACA,OAAO,IAAAjD,OAAA,CAAAvD,OAAA,EAAA6F,UAAA,OAAI,CAAC1F,IAAI,CAACwF,gBAAgB,EAAAnE,IAAA,CAAAqE,UAAA,EAC9BE,eAAe,IACd,CAAC,IAAAvC,SAAA,CAAAxD,OAAA,EAAAuG,kBAAkB,EAAA/E,IAAA,CAAlB+E,kBAAkB,EACjBR,eAAe,CAACxF,IAAI,CAACyF,SAAS,CAC5BD,eAAe,CAACxF,IAAI,CAAC0F,MAAM,GAAGP,uBAChC,CACF,CACJ,CAAC;IACH;IACA,OAAO,EAAE;EACX;;EAEA;AACF;AACA;EACE,IAAIrF,SAASA,CAAA,EAAkB;IAC7B,OAAO,IAAAkD,OAAA,CAAAvD,OAAA,MAAI,CAACG,IAAI,IAAU+B,kCAAuB,CAAC,EAAEuE,KAAK,IAAI,IAAI;EACnE;;EAEA;AACF;AACA;EACEC,eAAeA,CAACC,aAAqB,EAAW;IAC9C,OAAO,IAAI,CAAChF,WAAW,EAAE+E,eAAe,CAACC,aAAa,CAAC,IAAI,KAAK;EAClE;AACF;AAACC,OAAA,CAAA5G,OAAA,GAAAL,kBAAA","ignoreList":[]}
@@ -20,7 +20,7 @@ class SourceReferenceCollection extends _BaseCollection.default {
20
20
  constructor(sourceReferences = [], sectionReferenceTypes = [], entryDate = null, modelOptions) {
21
21
  super();
22
22
  this.collection = sourceReferences ? (0, _map.default)(sourceReferences).call(sourceReferences, sourceReference => {
23
- const sectionReferenceType = (0, _find.default)(sectionReferenceTypes).call(sectionReferenceTypes, sectionReferenceType => sectionReferenceType._id === sourceReference.type);
23
+ const sectionReferenceType = (0, _find.default)(sectionReferenceTypes).call(sectionReferenceTypes, type => type._id === sourceReference.type);
24
24
  return new _SourceReferenceModel.default({
25
25
  typeLabel: sectionReferenceType?.label,
26
26
  ...sourceReference
@@ -1 +1 @@
1
- {"version":3,"file":"SourceReferenceCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_SourceReferenceModel","SourceReferenceCollection","BaseCollection","constructor","sourceReferences","sectionReferenceTypes","entryDate","modelOptions","collection","_map","default","call","sourceReference","sectionReferenceType","_find","_id","type","SourceReferenceModel","typeLabel","label","byTypes","types","_context","_filter","sourceRef","_includes","exports"],"sources":["../../../src/models/concepts/SourceReferenceCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport SourceReferenceModel from \"./SourceReferenceModel\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n * Source reference collection\n */\nexport default class SourceReferenceCollection extends BaseCollection<SourceReferenceModel> {\n /**\n */\n constructor(\n sourceReferences: Array<Object> = [],\n sectionReferenceTypes: Array<Object> = [],\n entryDate: ?ISO_DATE = null,\n modelOptions?: ModelOptions,\n ) {\n super();\n\n this.collection = sourceReferences\n ? sourceReferences.map((sourceReference) => {\n const sectionReferenceType = sectionReferenceTypes.find(\n (sectionReferenceType) =>\n sectionReferenceType._id === sourceReference.type,\n );\n return new SourceReferenceModel(\n { typeLabel: sectionReferenceType?.label, ...sourceReference },\n entryDate,\n modelOptions,\n );\n })\n : [];\n }\n\n /**\n */\n byTypes(types: string): Array<SourceReferenceModel> {\n return this.filter((sourceRef) => types.includes(sourceRef.type));\n }\n}\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACe,MAAME,yBAAyB,SAASC,uBAAc,CAAuB;EAC1F;AACF;EACEC,WAAWA,CACTC,gBAA+B,GAAG,EAAE,EACpCC,qBAAoC,GAAG,EAAE,EACzCC,SAAoB,GAAG,IAAI,EAC3BC,YAA2B,EAC3B;IACA,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,UAAU,GAAGJ,gBAAgB,GAC9B,IAAAK,IAAA,CAAAC,OAAA,EAAAN,gBAAgB,EAAAO,IAAA,CAAhBP,gBAAgB,EAAMQ,eAAe,IAAK;MACxC,MAAMC,oBAAoB,GAAG,IAAAC,KAAA,CAAAJ,OAAA,EAAAL,qBAAqB,EAAAM,IAAA,CAArBN,qBAAqB,EAC/CQ,oBAAoB,IACnBA,oBAAoB,CAACE,GAAG,KAAKH,eAAe,CAACI,IACjD,CAAC;MACD,OAAO,IAAIC,6BAAoB,CAC7B;QAAEC,SAAS,EAAEL,oBAAoB,EAAEM,KAAK;QAAE,GAAGP;MAAgB,CAAC,EAC9DN,SAAS,EACTC,YACF,CAAC;IACH,CAAC,CAAC,GACF,EAAE;EACR;;EAEA;AACF;EACEa,OAAOA,CAACC,KAAa,EAA+B;IAAA,IAAAC,QAAA;IAClD,OAAO,IAAAC,OAAA,CAAAb,OAAA,EAAAY,QAAA,OAAI,EAAAX,IAAA,CAAAW,QAAA,EAASE,SAAS,IAAK,IAAAC,SAAA,CAAAf,OAAA,EAAAW,KAAK,EAAAV,IAAA,CAALU,KAAK,EAAUG,SAAS,CAACR,IAAI,CAAC,CAAC;EACnE;AACF;AAACU,OAAA,CAAAhB,OAAA,GAAAT,yBAAA","ignoreList":[]}
1
+ {"version":3,"file":"SourceReferenceCollection.js","names":["_BaseCollection","_interopRequireDefault","require","_SourceReferenceModel","SourceReferenceCollection","BaseCollection","constructor","sourceReferences","sectionReferenceTypes","entryDate","modelOptions","collection","_map","default","call","sourceReference","sectionReferenceType","_find","type","_id","SourceReferenceModel","typeLabel","label","byTypes","types","_context","_filter","sourceRef","_includes","exports"],"sources":["../../../src/models/concepts/SourceReferenceCollection.js"],"sourcesContent":["// @flow\nimport BaseCollection from \"../base/BaseCollection\";\nimport SourceReferenceModel from \"./SourceReferenceModel\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n * Source reference collection\n */\nexport default class SourceReferenceCollection extends BaseCollection<SourceReferenceModel> {\n /**\n */\n constructor(\n sourceReferences: Array<Object> = [],\n sectionReferenceTypes: Array<Object> = [],\n entryDate: ?ISO_DATE = null,\n modelOptions?: ModelOptions,\n ) {\n super();\n\n this.collection = sourceReferences\n ? sourceReferences.map((sourceReference) => {\n const sectionReferenceType = sectionReferenceTypes.find(\n (type) => type._id === sourceReference.type,\n );\n return new SourceReferenceModel(\n { typeLabel: sectionReferenceType?.label, ...sourceReference },\n entryDate,\n modelOptions,\n );\n })\n : [];\n }\n\n /**\n */\n byTypes(types: string): Array<SourceReferenceModel> {\n return this.filter((sourceRef) => types.includes(sourceRef.type));\n }\n}\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA;AACA;AACA;AACe,MAAME,yBAAyB,SAASC,uBAAc,CAAuB;EAC1F;AACF;EACEC,WAAWA,CACTC,gBAA+B,GAAG,EAAE,EACpCC,qBAAoC,GAAG,EAAE,EACzCC,SAAoB,GAAG,IAAI,EAC3BC,YAA2B,EAC3B;IACA,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,UAAU,GAAGJ,gBAAgB,GAC9B,IAAAK,IAAA,CAAAC,OAAA,EAAAN,gBAAgB,EAAAO,IAAA,CAAhBP,gBAAgB,EAAMQ,eAAe,IAAK;MACxC,MAAMC,oBAAoB,GAAG,IAAAC,KAAA,CAAAJ,OAAA,EAAAL,qBAAqB,EAAAM,IAAA,CAArBN,qBAAqB,EAC/CU,IAAI,IAAKA,IAAI,CAACC,GAAG,KAAKJ,eAAe,CAACG,IACzC,CAAC;MACD,OAAO,IAAIE,6BAAoB,CAC7B;QAAEC,SAAS,EAAEL,oBAAoB,EAAEM,KAAK;QAAE,GAAGP;MAAgB,CAAC,EAC9DN,SAAS,EACTC,YACF,CAAC;IACH,CAAC,CAAC,GACF,EAAE;EACR;;EAEA;AACF;EACEa,OAAOA,CAACC,KAAa,EAA+B;IAAA,IAAAC,QAAA;IAClD,OAAO,IAAAC,OAAA,CAAAb,OAAA,EAAAY,QAAA,OAAI,EAAAX,IAAA,CAAAW,QAAA,EAASE,SAAS,IAAK,IAAAC,SAAA,CAAAf,OAAA,EAAAW,KAAK,EAAAV,IAAA,CAALU,KAAK,EAAUG,SAAS,CAACT,IAAI,CAAC,CAAC;EACnE;AACF;AAACW,OAAA,CAAAhB,OAAA,GAAAT,yBAAA","ignoreList":[]}
@@ -115,11 +115,11 @@ class ContentLinkModel extends _BaseModel.default {
115
115
  const selfHref = new _Href.default(this.data._links.self.href, "", this.modelOptions);
116
116
  const href = selfHref.path;
117
117
  const sourceId = this.section ? href.substring(startURI.length, href.lastIndexOf("/")) : href.substring(startURI.length);
118
- if (this.section != null) {
118
+ if (this.section == null) {
119
+ selfHref.path = `${startURI}${encodeURIComponent(sourceId)}`;
120
+ } else {
119
121
  const encodedSection = encodeURIComponent(this.section);
120
122
  selfHref.path = `${startURI}${encodeURIComponent(sourceId)}/${encodedSection}`;
121
- } else {
122
- selfHref.path = `${startURI}${encodeURIComponent(sourceId)}`;
123
123
  }
124
124
  return selfHref;
125
125
  }
@@ -164,12 +164,12 @@ class ContentLinkModel extends _BaseModel.default {
164
164
  if (selflink === null) {
165
165
  throw new Error(`Could not find self link for ${this.key === null ? "unknown" : this.key}`);
166
166
  }
167
- if (!selflink.href.state) {
167
+ if (selflink.href.state) {
168
+ selflink.href.state.fragment = this.fragment;
169
+ } else {
168
170
  selflink.href.state = {
169
171
  fragment: this.fragment
170
172
  };
171
- } else {
172
- selflink.href.state.fragment = this.fragment;
173
173
  }
174
174
  return selflink;
175
175
  }